2010-04-14 5 views
15

javascript를 통해 모든 페이지 리디렉션을 중지해야합니다.페이지 리디렉션을 중지하는 방법

페이지를 다른 위치로 리디렉션하는 스크립트가 있습니다. jquery 또는 javascript를 통해 페이지의 모든 페이지 리디렉션을 중지하는 방법은 무엇입니까? 그것은 단지 링크 클릭을 통해 리디렉션 있다면

답변

1

, jQuery를 당신이이 작업을 수행 할 수 있습니다

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

를가 기존 페이지 리디렉션의 경우, 당신은 우리에게 가지 이것이 리디렉션 대해 좀 더 많은 정보를 제공해야합니다 그래서 우리는 더 많은 것을 도울 수 있습니다. 페이지 리디렉션을 여러 가지 방법으로 발생할 수 있기 때문에

희망이, 당신이

+1

모든 앵커가 jQuery에 바인딩되어 있다고 가정합니다. – jAndy

+0

jQuery> = 1.7에서는'()를 사용해야합니다. '.unbind() '대신 off()'를 사용한다. – developius

0

AFAIK이 할 수 없습니다 수 있습니다. 그는 앵커 태그를 클릭하고, 다른 액션으로 폼을 제출하고, button.location을 다른 페이지로 설정하고, 서버 코드를 리다이렉션으로 호출 할 수 있습니다.

그리고 이들 중 많은 부분을 감지 할 수 없습니다.

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. Rob

+0

진지하게, 누군가 Rahul의 답을 내려야한다. 그는 "당신은 페이지에 텍스트를 넣을 수 없다"고 말한 적이 있습니다. – LiverpoolsNumber9

2

iframe 차단기를 중지하려고합니까? 다음과 같이 입력하십시오 :

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

만약 그렇다면, 그렇게 할 수 없습니다.

+1

HTML5는 '샌드 박스'iframe을 지원합니다. "콘텐츠가 최상위 수준의 탐색 컨텍스트를 탐색하지 못하게합니다". 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

나를 위해 일했습니다. 감사 –

관련 문제