यदि आप @include *
के साथ Greasemonkey स्क्रिप्ट बनाते हैं और यूट्यूब जैसी साइट पर जाते हैं, तो यह हर बार रीफ्रेश होने पर 20+ बार स्क्रिप्ट चलाता है। यह फ़ायरफ़ॉक्स पर है, क्रोम के बारे में निश्चित नहीं है।
क्या इसे रोकने के लिए कोई तरीका है?प्रति पेज लोड केवल एक बार Greasemonkey स्क्रिप्ट चलाएं?
उत्तर
सबसे पहले, आप शायद स्क्रिप्ट को iFrames में चलाने के लिए नहीं चाहते हैं।
आप ब्लॉक कर सकते हैं कि the @noframes
directive जो अब दोनों Greasemonkey और अक्टूबर के रूप में Tampermonkey में काम करता है, 2014
का उपयोग कर पुराने संस्करणों के लिए, या स्क्रिप्ट इंजन है कि @noframes
का समर्थन नहीं करते के लिए, तो आप इस कोड, बस के बाद का उपयोग कर सकते मेटाडाटा ब्लॉक:
if (window.top != window.self) //don't run on frames or iframes
{
//Optional: GM_log ('In frame');
return;
}
दूसरे, आप प्रतीक्षा करें और अपने जीएम कोड आग, एक बार, पृष्ठ लोड पर कर सकते हैं। एक main()
में सब कुछ लपेटें और load
घटना पर इसे कहते है, इसलिए जैसे:
window.addEventListener ("load", LocalMain, false);
function LocalMain() {
// Your code goes here.
}
तीसरा, आप मेटाडाटा ब्लॉक करने के लिए // @exclude
निर्देशों जोड़कर साइट या पृष्ठों को हटा सकते हैं।
कुल मिलाकर, यदि संभव हो तो सार्वभौमिक रूप से शामिल जीएम स्क्रिप्ट से बचने के लिए सबसे अच्छा है।
अन्य विधियां झंडे सेट कर सकती हैं या यूआरएल पैरामीटर के साथ पेज को फिर से लोड कर सकती हैं। ये मुश्किल हो जाते हैं इसलिए उन्हें अंतिम उपाय के रूप में सहेजें।
उदाहरण के लिए आप दिए गए स्थान को एक स्थिर चर में संग्रहीत कर सकते हैं। पृष्ठ लोड पर आपको जांचना होगा, यदि वर्तमान स्थान पहले से ही इस चर में संग्रहीत है।
यदि नहीं, तो आप चर सेट करते हैं और अपना कार्य चलाते हैं, यदि हां कुछ भी नहीं है।
कैसे लगातार चर स्टोर करने के लिए: GM_setValue
- 1. पेज सामग्री प्रदर्शित होने से पहले greasemonkey स्क्रिप्ट कैसे चलाएं?
- 2. एक ही पृष्ठ पर कई बार Greasemonkey स्क्रिप्ट चलाएं, कई बार?
- 3. प्रति मिनट एक बार पृष्ठभूमि में एक पावरहेल स्क्रिप्ट चलाएं
- 4. प्रति मिनट एक बार से अधिक बार क्रोनबॉज कैसे चलाएं?
- 5. कुछ कोड बनाना केवल एक बार चलाएं
- 6. मेरा फ़ंक्शन प्रति पृष्ठ लोड केवल एक बार क्यों चलता है?
- 7. Greasemonkey स्क्रिप्ट संस्करण लगातार
- 8. jQuery.getJSON एक greasemonkey उपयोगकर्ता स्क्रिप्ट के अंदर
- 9. jQuery - केवल एक बार
- 10. एक बार केवल एक बार कॉल करें
- 11. एसवीजी: दस्तावेज लोड होने पर स्क्रिप्ट चलाएं
- 12. फ़ायरफ़ॉक्स एक्सटेंशन बनाम Greasemonkey स्क्रिप्ट?
- 13. Greasemonkey
- 14. Greasemonkey स्क्रिप्ट केवल तब चलता है जब पृष्ठ पुनः लोड है
- 15. लोड show_ads.js एक बार
- 16. अनलॉक पर एक स्क्रिप्ट चलाएं?
- 17. फोर्स keydown घटना केवल एक बार कीकोड प्रति आग
- 18. प्रति उदाहरण एकाधिक वर्कररोल चलाएं
- 19. बूटस्ट्रैप पेज लोड प्रोग्रेस बार एनीमेशन
- 20. डिबगिंग Greasemonkey की तरह स्क्रिप्ट
- 21. iframe Greasemonkey स्क्रिप्ट में अपरिभाषित
- 22. स्क्रॉल घटना कई बार फायरिंग। मैं केवल इसे अधिकतम कह सकता हूं, एक बार प्रति सेकंड
- 23. दिन में एक बार चलाएं
- 24. AJAX अनुरोध पर आग Greasemonkey स्क्रिप्ट
- 25. Greasemonkey स्क्रिप्ट का परीक्षण कैसे करें, खासकर किसी वेबपृष्ठ की स्थानीय प्रति पर?
- 26. पेज से पहले एक jQuery या जावास्क्रिप्ट को कैसे चलाएं
- 27. प्रति फ़ाइल केवल एक वर्ग
- 28. प्रति माह एक बार Heroku में शेड्यूलर ऐड-ऑन कैसे चलाएं?
- 29. एक ऑडियोबफर सॉर्स नोड दो बार चलाएं?
- 30. ओपनएमपी - केवल एक बार
सिर्फ यूट्यूब की जाँच की, वहाँ बहुत कम iframes का था। मेरा सुझाव 'GM_log (location.href) 'और संकीर्ण @ शामिल है। –
यह मेरी समस्या हल हो गया। धन्यवाद! – Joren
@ जोरेन: आपका स्वागत है। मदद करने में खुशी। –