2010-04-14 32 views
15

मुझे जावास्क्रिप्ट के माध्यम से सभी पेज रीडायरेक्शन को रोकने की आवश्यकता है।पेज रीडायरेक्ट को कैसे रोकें

मेरे पास कुछ स्क्रिप्ट है जो पृष्ठ को किसी अन्य स्थान पर रीडायरेक्ट करेगी। मैं jquery या जावास्क्रिप्ट के माध्यम से अपने पृष्ठ पर सभी पेज पुनर्निर्देशन को कैसे रोक सकता हूं।

उत्तर

1

यह केवल लिंक क्लिक के माध्यम से पुनर्निर्देश रहा है, jQuery में आप यह कर सकते हैं: अगर यह एक मौजूदा पृष्ठ रीडायरेक्ट है

$(".someClass a").unbind('click'); 

, आप हमें एक तरह से अनुप्रेषित क्या है के बारे में कुछ और जानकारी देनी होगी , तो हम आगे मदद कर सकते हैं।

आशा यह आप

+1

जो मान लेंगे कि सभी एंकर jQuery से बंधे हैं। यह सुनिश्चित करने के लिए कि किसी को $ (ए) .unbind ('क्लिक'), $ (ए)। डीई(), $ (ए) .removeAttr ('onClick') – jAndy

+0

jQuery> = 1.7 में उपयोग करना चाहिए, आपको '। '.unbind()' – developius

0

AFAIK यह संभव नहीं होगा मदद करता है, के बाद से पेज पुनर्निर्देशन कई मायनों में हो सकता है। वह एक एंकर टैग पर क्लिक कर सकता है, अलग-अलग क्रिया के साथ एक फॉर्म जमा कर सकता है, बटन पर क्लिक करके विंडो.लोकेशन सेट कर सकता है और सर्वर कोड को पुनर्निर्देशन के लिए आमंत्रित कर सकता है।

और आप इनमें से कई का पता लगाने में सक्षम नहीं होंगे।

2

यदि मैं आपको सही ढंग से समझ रहा हूं, तो आपको उपयोगकर्ताओं को पृष्ठ से दूर जाने से रोकने की आवश्यकता है?

यदि हां, तो मार्कोस Placona का जवाब यह का एक हिस्सा है - हालांकि सब क्या आप वास्तव में जरूरत है:

$("a").click(function(e) { e.preventDefault(); }); 

आप भी लोगों को F5 मेरा अनुमान है कि हिट करने के लिए नहीं करना चाहते? वैसे यह कठिन है। कुंजी प्रेस पर डिफ़ॉल्ट रोकना, क्रॉस-ब्राउज़र भयानक है। लेकिन कोड है कि कुछ ब्राउज़र में काम की एक जोड़ी यहाँ नीचे हैं:

function disableF5() { // IE 
    document.onkeydown = function() { 
     if (window.event && window.event.keyCode == 116) { // Capture and remap F5 
      window.event.keyCode = 505; 
     } 
     if (window.event && window.event.keyCode == 505) { // New action for F5 
     return false; // Must return false or the browser will refresh anyway 
     } 
    } 
} 
function disableF5v2() { // FIREFOX 
    $(this).keypress(function(e) { 
     if (e.keyCode == 116) { 
      e.preventDefault(); 
    return false; 
     } 
    }); 
} 

हालांकि, क्रॉस-ब्राउज़र मुद्दा आंशिक रूप से के साथ हल किया जा सकता है -

window.onbeforeunload = function(e) { 
    var message = "Your confirmation message goes here.", e = e || window.event; 
    // For IE and Firefox 
if (e) { 
    e.returnValue = message; 
} 
// For Safari 
    return message; 
}; 

आशा है कि सभी वैसे भी मदद करता है। कोड का आखिरी बिट इस साइट here पर किसी अन्य प्रश्न से है। रोब

+0

की बजाय बंद() 'गंभीरता से, किसी को राहुल के जवाब को वोट देने की आवश्यकता है। उन्होंने यह भी कहा होगा कि "आपके पास एक पृष्ठ पर टेक्स्ट नहीं हो सकता है, पूर्ण-रोक"। – LiverpoolsNumber9

2

क्या आप एक आईफ्रेम ब्रेकर को रोकने की कोशिश कर रहे हैं? कुछ ऐसा:

<script language="JavaScript" type="text/javascript"> 
<!-- 
function breakout_of_frame() 
{ 
    if (top.location != location) { 
    top.location.href = document.location.href ; 
    } 
} 
--> 
</script> 

यदि ऐसा है, तो आप नहीं कर सकते।

+1

एचटीएमएल 5 'सैंडबॉक्स' iframes का समर्थन करता है। "सामग्री को अपने शीर्ष-स्तरीय ब्राउज़िंग संदर्भ पर नेविगेट करने के लिए रोकें"। http://www.w3schools.com/tags/att_iframe_sandbox.asp – kev

38

आप निम्न कार्य करके रीडायरेक्ट को रोक सकते हैं।

<script language="JavaScript" type="text/javascript"> 
    //<![CDATA[ 
     window.onbeforeunload = function(){ 
      return 'Are you sure you want to leave?'; 
     }; 
    //]]> 
</script> 

सुनिश्चित नहीं है कि सभी ब्राउज़र इसका समर्थन करते हैं लेकिन उसे चाल चलनी चाहिए।

+0

सही काम करता है! धन्यवाद – vrunoa

+0

मेरे लिए काम किया। धन्यवाद –

संबंधित मुद्दे