ब्लॉक "डॉक्यूमेंट.लोकेशन" जावास्क्रिप्ट को एक पेज पर रीडायरेक्ट किया जाता है


2

मेरे पास एक साइट है जहां मैं पृष्ठ को स्क्रिप्ट टैग में एक डॉक्यूमेंट.लोकेशन का उपयोग करके पुनः लोड होने से रोकना चाहता हूं। मैं फ़ायरफ़ॉक्स में यह कैसे कर सकता हूं?

जवाबों:


2

वास्तव में, Greasemonkey ब्लॉक नहीं करेगा यदि HTML कोड में एक इनलाइन जावास्क्रिप्ट ब्लॉक होता है जैसे कि कोई रीडायरेक्ट:

<script type="text/javascript">
var url = "http://google.com";
document.location.replace(url);
</script>

Greasemonkey, हालांकि विशिष्ट कार्यों के लिए कॉल को ब्लॉक करने के लिए इस्तेमाल किया जा सकता है - बस उन्हें अधिलेखित करें :)। यदि उपरोक्त एक फ़ंक्शन कॉल में लिपटे हुए थे जैसे:

<script type="text/javascript">
function redirect_to(url)
{
  document.location.replace(url);
}
</script>

तो फिर तुम सिर्फ Greasemonkey में समारोह को फिर से परिभाषित कर सकते हैं:

function redirect_to(url){ return true }

ब्लॉक इनलाइन को फ़ायरफ़ॉक्स के माध्यम से रीडायरेक्ट करता है

अनिवार्य रूप से फ़ायरफ़ॉक्स किसी location.href.replaceविशेष साइट से तथाकथित जैसे विन्यास के माध्यम से किसी भी डोम हेरफेर को रोकना संभव बनाता है : कॉन्फ़िगर करने योग्य सुरक्षा नीतियां (CAPS)

चेतावनी का एक शब्द: ध्यान दें कि आपकी सुरक्षा सेटिंग्स तब उस डोमेन से सभी कॉल को ब्लॉक कर देंगी location.href.replace। यदि कोई एप्लिकेशन उस कॉल का उपयोग करता है, तो कॉल को अनुमति देने और दूसरों को ब्लॉक करने का कोई तरीका नहीं है।

स्थान .href.replace को ब्लॉक करने के लिए CAPS सेट करना

इस कार्य के लिए आपको Greasemonkey की आवश्यकता नहीं है। फ़ायरफ़ॉक्स एक अंतर्निहित क्षमता के आधार पर / प्रति साइट के आधार पर DOM ऑब्जेक्ट्स के गुणों / विधियों तक पहुंच को रोकने के लिए आता है। इसे विन्यास योग्य सुरक्षा नीतियां (CAPS) कहा जाता है और इसे 1 में वर्णित किया गया है ।

एक सरल गाइड जो सबसे सरल मामला है:

  1. फ़ायरफ़ॉक्स बंद करें
  2. अपने प्रोफ़ाइल फ़ोल्डर का पता लगाएँ
  3. इस फ़ोल्डर के भीतर फ़ाइल user.js का पता लगाएँ। यदि यह मौजूद नहीं है, तो इसे एक पाठ संपादक (नोटपैड, विम, आदि) के साथ बनाएं ।
  4. निम्न पंक्तियों को user.js में जोड़ें:

    user_pref ("क्षमता.पुलिस.पॉलिकनेम", "नोफ्रेमबस्टर"); user_pref ("क्षमता.पोलिश.नोफ्रैमबस्टर.साइट्स", " http://www.annoying-site.com ); user_pref ("क्षमता.पोलिश.नोफ्रैमबस्टर.लोकेशन .replace", "noAccess");

बेशक, आपको अपने फ़्रेम को रीडायरेक्ट करने से रोकने के लिए डोमेन को बदलना होगा।

मेरे ब्लॉग (justaddwater.dk) से अधिक गहन स्पष्टीकरण प्राप्त करें: फ़्रेमबस्टर जावास्क्रिप्ट के लिए फ़ायरफ़ॉक्स टिप


1

यदि आप फ़ायरफ़ॉक्स में मौजूद डिबगिंग फ़ीचर का उपयोग करने में सहज हैं , तो घड़ी विधि मेरे लिए काम करती है:

document.watch('location', function() {
    return '#';
});

मुझे MDN पर प्रदर्शन इत्यादि के बारे में चेतावनियों की प्रयोज्यता के बारे में निश्चित नहीं है , शायद किसी को इस स्थिति में कुछ अंतर्दृष्टि है।


0

GreaseMonkey Firefox के लिए ऐड-ऑन बिल्कुल ऐसा करने के लिए बनाया गया है।


मैं इनलाइन स्क्रिप्ट को हटाने के लिए इसे कॉन्फ़िगर करने का तरीका नहीं जानता।
zacharyliu

क्या आप उस वास्तविक स्क्रिप्ट को दिखाने के लिए अपने प्रश्न को संपादित कर सकते हैं जिसे आप ब्लॉक करना चाहते हैं?
कार्लफ़ नोव

वास्तव में, ग्रीसीकेम ऐसा नहीं करेगा यदि स्क्रिप्ट ब्लॉक इनलाइन है। मेरे अतिरिक्त उत्तर को देखें
जेस्पर रॉन-जेनसन

0

YesScript एक्सेंशन को आज़माएं ।

YesScript आपको उन साइटों को ब्लैकलिस्ट करने देता है जिन्हें जावास्क्रिप्ट चलाने की अनुमति नहीं है।

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