URL / एड्रेस बार से जावास्क्रिप्ट फ़ंक्शन को कॉल करें


112

क्या URL से जावास्क्रिप्ट फ़ंक्शन को कॉल करना संभव है? मैं मूल रूप से एक तरीके से जेएस विधियों का लाभ उठाने की कोशिश कर रहा हूं जिनके पास स्रोत तक पहुंच नहीं है।

कुछ इस तरह: http://www.example.com/mypage.aspx?javascript:printHelloWorld()

मुझे पता है कि अगर आप javascript:alert("Hello World");एड्रेस बार में डालेंगे तो यह काम करेगा।

मुझे संदेह है कि इसका उत्तर नहीं है, लेकिन आश्चर्य है कि क्या ऐसा करने का कोई तरीका था।


3
आपके URL को किस व्यवहार को प्रदर्शित करना होगा - क्या आप उस साइट के संदर्भ में जावास्क्रिप्ट निष्पादित करना चाहते हैं?
१०:०४

http:यूआरआई के शुरू में ब्राउज़र "मैं आपको एक HTTP अनुरोध बनाना चाहते", इसलिए HTTP यह होता है का अनुरोध बताता है। मेरे आसपास कोई रास्ता नहीं है, मुझे लगता है।
कांस्टेंटिन

7
अगर मैं javascript:alert("Hi");अपने फ़ायरफ़ॉक्स (28.0) एड्रेस बार में पेस्ट करता हूं और एंटर दबाता हूं, तो कुछ नहीं होता है। शायद यह अक्षम हो गया है? ... हां, जाहिरा तौर पर इसे अक्षम कर दिया गया है क्योंकि बेवकूफों को उनके एड्रेस बार में कुछ भी पेस्ट करने के लिए आश्वस्त किया जा सकता है। यहां जानकारी मिली: stackoverflow.com/a/18782801/111036
mivk

1
कॉपी पेस्ट काम नहीं करता है, लेकिन यदि आप इसे टाइप करते हैं, तो यह काम करता है, ऐसा लगता है कि यह अक्षम नहीं है, लेकिन चिपकाए जाने पर पार्स किया गया।
बभनी शंकर मिश्रा

1
नोट: यह केवल फ़ायरफ़ॉक्स में काम करता है जब 1. आप एक वास्तविक (खाली नहीं) पृष्ठ पर हों और 2. आपने स्पष्ट रूप से इससे पहले "जावास्क्रिप्ट:" डाल दिया हो।
एंड्रयू

जवाबों:


59

कोई हाइपरलिंक से नहीं है, नहीं। तब तक नहीं जब तक कि पृष्ठ में इसके लिए विशेष रूप से स्क्रिप्ट न हो और यह कुछ पैरामीटर के लिए जाँच कर रहा हो .... लेकिन आपके प्रश्न के लिए, नहीं, इसके लिए ब्राउज़रों में कोई अंतर्निहित समर्थन नहीं है।

हालाँकि ऐसे बुकमार्क हैं जिन्हें आप अपने एड्रेस बार से जावास्क्रिप्ट फ़ंक्शंस को जल्दी से चलाने के लिए बुकमार्क कर सकते हैं; यकीन नहीं है कि अगर यह आपकी आवश्यकताओं को पूरा करता है, लेकिन यह उतना ही करीब है जितना इसे मिलता है।


5
मैं मूल रूप से एक पृष्ठ पर जेएस विधियों का लाभ उठाने की कोशिश कर रहा हूं जिनके पास स्रोत तक पहुंच नहीं है।
DazManCat

27

एड्रेस बार में लिखें

javascript:alert("hi");

सुनिश्चित करें कि आप शुरुआत में लिखते हैं: जावास्क्रिप्ट:


1
यह Google Chrome संस्करण 80.0.3987.132 (आधिकारिक बिल्ड) (64-बिट) पर काम नहीं करता है । Chrome स्वचालित रूप javascript:से पता बार से उपसर्ग को अलग करता है।
18

2
@stomy आपको javascript:मैन्युअल रूप से टाइप करने की जरूरत है , दुर्भाग्य से
wjandrea

24

आप डेटा यूआरआई का उपयोग कर सकते हैं। उदाहरण के लिए: data:text/html,<script>alert('hi');</script>

अधिक जानकारी के लिए यात्रा करें: https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs


1
मैंने हमेशा सोचा था कि डेटा url केवल छवियों के लिए है, धन्यवाद यह वास्तव में आश्चर्यजनक है :)
फरीद अलन्नरूटी

2
आप इसे url में जोड़ नहीं सकते।
vivek_23

कुछ ब्राउज़र इसे एक संदेश के साथ रोक सकते हैं:Navigation to toplevel data: URI not allowed (Blocked loading of: “data:text/html,<script>alert('hi');</script>”)
Aleksandr Ryabov

यह Google Chrome संस्करण 80.0.3987.132 (आधिकारिक बिल्ड) (64-बिट) पर काम करता है ।
पेट

उस में काम करता है Chrome 80.0.3987.162 (Official Build) (64-bit)और मेंFirefox 72.0.2 (64 bit)
एलेक्स Pandrea

6

/test.html#alert('heello ')

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

13
ध्यान दें कि यह उपयोगकर्ता इनपुट का मूल्यांकन बहुत खतरनाक अभ्यास है और इसे आमतौर पर अनुमति नहीं दी जानी चाहिए।
domenukk

6
हां, यह काफी पागल है। ऐसे कार्यस्थल हैं जहां आपको इस प्रकार के पागलपन के कारण निकाल दिया जाएगा।
जैकब

6
यह @domenukk द्वारा इंगित की गई क्रॉस-साइट स्क्रिप्टिंग (XSS) मुद्दों को प्रतिबिंबित करता है।
pavanw3b

6

आप फॉलोइंग भी रख सकते हैं

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

अपने HTML- कोड के लिए, और जब आप 'मुझे क्लिक करें' हाइपरलिंक पर क्लिक करते हैं, तो जावास्क्रिप्ट url- बार में दिखाई देगा और अलर्ट संवाद दिखाई देगा


5
जावास्क्रिप्ट किस ब्राउज़र में url- बार में दिखाई देगा ? मैंने ऐसा कभी नहीं देखा। (मैं जावास्क्रिप्ट जानता हूं: लिंक काम करता है, मैं सिर्फ यूआरएल बार के बारे में बात कर रहा हूं)
शॉन पैट्रिक फ्लोयड

न तो मुझे पता है कि आप जेएस को पता बार में टाइप कर सकते हैं
DazManCat

यह वही है जिसकी मुझे तलाश थी, इसे क्या कहा जाता है?
थोरसुमोनर

4

window.location.hashसंपत्ति के बारे में :

किसी URL का एंकर भाग लौटाएं।


उदाहरण 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"

निर्वासन 2:

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

उदाहरण 3:

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

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

case "#admin":  

}

3

एड्डी के उत्तर का उपयोग करना बहुत अच्छी तरह से काम करता था क्योंकि मुझे उसी तरह की समस्या थी। बस अपने यूआरएल को मापदंडों के साथ कहें: "www.mypage.html # myAnchor"

फिर, mypage.html में:

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

2

आप इस स्थिति का उपयोग कर सकते हैं: उदाहरण के लिए, आपके पास एक पृष्ठ है: http://www.example.com/page.php फिर उस पृष्ठ में। इस कोड को डालें:

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

फिर, जब भी आप इस url पर जाएँ: http://www.example.com/page.php?doaction=blabla

तब अलर्ट स्वचालित रूप से कहा जाएगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.