Soru URL / adres çubuğundan Javascript işlevini çağırın.


URL'den bir javascript işlevi çağırmak mümkün mü?

Gibi bir şey: http://www.example.com/mypage.aspx?javascript:printHelloWorld()

Eğer koyarsan biliyorum javascript:alert("Hello World"); adres çubuğuna çalışacaktır.

Cevabın bundan şüphe etmediğini sanıyorum, ama bunu yapmanın bir yolu olup olmadığını merak ettim.


75
2017-11-12 10:51


Menşei


URL'nizin hangi davranışı göstermesi gerekir? - Javascript'i bu site bağlamında uygulamak ister misiniz? - Pekka 웃
http: URI'nin başlangıcında tarayıcıya "Size bir HTTP isteği yapmanızı istiyorum", yani HTTP isteğini bildirir. Etrafında bir yolu yok, bence. - Constantin
Yapıştırırsam javascript:alert("Hi"); Firefox (28.0) adres çubuğuma girip Enter'a basarsanız hiçbir şey olmuyor. Belki bu devre dışı bırakılmış mı? ... Evet, görünüşe göre devre dışı bırakıldı çünkü aptallar adres çubuğuna herhangi bir şey yapıştırmaya ikna edilmiş olabilir. Buradaki bilgiyi buldum: stackoverflow.com/a/18782801/111036 - mivk
copy paste çalışmıyor, ancak yazdığınızda çalışır, devre dışı değil gibi görünüyor, ancak yapıştırıldığında ayrıştırılıyor. - Bhabani Sankar Mishra
Not: Sadece 1 olduğunda Firefox'ta çalışır. Boş (boş değil) bir sayfa üzerindeyseniz ve 2. bundan önce açıkça "javascript:" ifadesini koymuş olursunuz. - Andrew


Cevaplar:


Köprü yok, hayır. Sayfanın özellikle bunun içinde komut dosyası bulunmadığı ve bazı parametreler için kontrol olmadığı sürece .... ama sorunuz için hayır, bunun için tarayıcılarda yerleşik destek yok.

Bununla birlikte işaretcikler JavaScript işlevlerini adres çubuğunuzdan hızla çalıştırmak için yer işareti koyabilirsiniz; Gereksinimlerinize cevap verip vermediğinden emin değilsiniz, ancak bu kadar yaklaşır.


47
2017-11-12 10:54



Temel olarak, kaynaklara erişimim olmayan bir sayfada JS yöntemlerini çalıştırmaya çalışıyorum. - DazManCat


Adres çubuğuna yaz

javascript:alert("hi");

Başlangıçta yazdığınızdan emin olun: javascript:


13
2017-11-30 05:13





/test.html#alert('heello ')

test.html
<button onClick="eval(document.location.hash.substring(1))">do it</button>

8
2017-11-12 11:02



Bu değerlendirici kullanıcı girdisinin çok tehlikeli bir uygulama olduğunu ve genellikle buna izin verilmemesi gerektiğini unutmayın. - domenukk
Evet, bu oldukça çılgın. Bu tür bir çılgınlık yüzünden kovulacağınız iş yerleri var. - Jacob
Bu, @domenukk tarafından belirtildiği gibi yansıyan siteler arası komut dosyası oluşturma (XSS) sorunlarına yol açar. - pavanw3b


Veri URI'lerini kullanabilirsiniz. Örneğin: data:text/html,<script>alert('hi');</script>

Daha fazla bilgi için ziyaret edin: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs


6
2017-09-07 18:38



Ben her zaman veri url sadece görüntüler için düşündüm, teşekkürler bu gerçekten harika :) - Fareed Alnamrouti


ayrıca aşağıdakileri de ekleyebilirsiniz

<a href='javascript:alert("hello world!");'>Click me</a>

html kodunuza ve 'Beni tıkla' bağlantısına tıkladığınızda, url-çubuğunda javascript görüntülenir ve Uyarı iletişim kutusu görüntülenir


4
2017-11-12 11:03



javascript URL’de görünecek hangi tarayıcıda? Bunu hiç görmedim. (Javascript'i biliyorum: bağlantılar çalışır, sadece URL çubuğundan bahsediyorum) - Sean Patrick Floyd
İkisi de yok. JS'yi adres çubuğuna yazabileceğinizi biliyorum. - DazManCat
Aradığım şey buydu, buna ne deniyor? - ThorSummoner


bu durum gibi kullanabilirsiniz: örneğin, bir sayfanız var: http://www.example.com/page.php sonra bu page.php dosyasında şu kodu ekleyin:

if (!empty($_GET['doaction']) && $_GET['doaction'] == blabla ){
echo '<script>alert("hello");</script>';
}

daha sonra, bu URL’yi ziyaret ettiğinizde: http://www.example.com/page.php?doaction=blabla

daha sonra uyarı otomatik olarak aranacaktır.


2
2018-03-26 13:05





Hakkında window.location.hash özelliği:

Bir URL'nin çapa kısmını döndür.


Örnek 1:

//Assume that the current URL is 

var URL = "http://www.example.com/test.htm#part2";

var x = window.location.hash;

//The result of x will be:

x = "#part2"

Exmaple 2:

$(function(){   
    setTimeout(function(){
        var id = document.location.hash;
        $(id).click().blur();
    }, 200);
})

Örnek 3:

var hash = "#search" || window.location.hash;
window.location.hash = hash; 

switch(hash){   
case "#search":  
    selectPanel("pnlSearch");
    break;    
case "#advsearch":    

case "#admin":  

}

1
2018-03-14 04:16





Eddy'in cevabını kullanmak, benim de aynı problemi yaşadım. URL'nizi şu parametrelerle arayın: "www.mypage.html # myAnchor"

Ardından, mypage.html dosyasında:

$(document).ready(function(){
  var hash = window.location.hash;
  if(hash.length > 0){
    // your action with the hash
  }
});

1
2017-12-29 11:16