javascript - एक ही पृष्ठ पर कई बार Greasemonkey स्क्रिप्ट चलाएं, कई बार?
ajax (2)
मैं Greasemonkey, जावास्क्रिप्ट, वास्तव में सभी यूआई सामान के लिए बिल्कुल नया हूँ।
आवश्यकता: पृष्ठ लोड होने के बाद एक बार जीएस द्वारा उपयोगकर्तास्क्रिप्ट चलाया जाता है। हालांकि, मुझे रीफ्रेश किए बिना कई बार चलाने के लिए एक ही स्क्रिप्ट की आवश्यकता है
केस का प्रयोग करें: पूर्व में, Amazon.com खोज अजाक्स का उपयोग करके होती है। मुझे खोज परिणामों में एक कस्टम तत्व एम्बेड करने की आवश्यकता है।
जब भी एक ही पृष्ठ में एक खोज होती है तो परिणाम के साथ-साथ खोज-परिणाम-div में मेरी सामग्री को इंजेक्ट करने की आवश्यकता होती है (कोई पेज रीफ्रेश नहीं होता है)
मेरी वर्तमान स्क्रिप्ट केवल पेज रीफ्रेश के साथ ही चलती है।
मुझे उम्मीद है कि स्पष्टीकरण स्पष्ट है। कृपया मदद करे।
आप अपने कॉलबैक को कॉल करने के लिए DOMNodeInserted
ईवेंट का उपयोग कर सकते हैं, उदाहरण के लिए:
document.addEventListener('DOMNodeInserted', function() { alert('hi') }, false);
ध्यान दें कि ईवेंट पृष्ठ संरचना में किसी भी बदलाव से ट्रिगर किया जाएगा, इसलिए आपको यह जांचना होगा कि आप सही परिवर्तन को लक्षित कर रहे हैं।
सबसे आसान, सबसे मजबूत तरीका waitForKeyElements () उपयोगिता का उपयोग करना है ।
यहां एक पूर्ण स्क्रिप्ट है जो अमेज़ॅन खोज परिणामों को बदलने के लिए jQuery और waitForKeyElements
का उपयोग waitForKeyElements
है:
// ==UserScript==
// @name _Amazon Search, alter results
// @include http://www.amazon.com/s/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// ==/UserScript==
/*- The @grant directive is needed to work around a design change
introduced in GM 1.0. It restores the sandbox.
*/
function addCustomSearchResult (jNode) {
//***** YOUR CODE HERE *****
jNode.prepend (
'<div id="result_000" class="fstRow">Buy my stuff, instead!</div>'
);
}
waitForKeyElements ("#atfResults", addCustomSearchResult);