2009-08-19 1 views
2

일부 Ajax 정렬 옵션을 목록에 추가하려고합니다. 지금까지 자바 스크립트없이 내 사이트가 실행되었으므로 이전/모바일 브라우저 또는 스크립트를 사용하지 않은 상태에서 계속 실행하고 싶습니다.JavaScript가 꺼져 있거나 비활성화되어있는 경우 브라우저가 링크로 폴백 할 수있는 가장 좋은 방법은 무엇입니까?

JavaScript가 활성화되어있는 경우 링크를 클릭 할 때 JavaScript 블록을 실행하고 그렇지 않은 경우 해당 링크를 통해 브라우저에 새 페이지가 표시되도록하려면 어떻게해야합니까? 나는 해커 noscript 태그를 멀리하고 싶습니다.

+0

누군가가 질문을 포함하여 페이지의 모든 내용을 방금 다운받습니다. – karim79

+0

그게 이상해. 누군가 나쁜 날을 보내고 있어야 해. – Sam152

답변

7

귀하의 링크는 다른 비 자바 스크립트 페이지를 가리키는 유효한 HREF 값을 필요로하고 클릭 이벤트에서, 당신은 링크를 따라 자바 스크립트를 활성화 브라우저를 방지하기 위해 false를 반환해야합니다

<a id="aboutLink" href="about-us.html">About Us</a> 

$('#aboutLink').click(function() { 
    // ajax content retrieval here... 
    return false; // stop the link action... 
}); 
2

새 페이지의 URL을 HREF에 넣고 onClick 이벤트 처리기에서 false를 반환하여 링크가 중지되는 것을 상상해보십시오. JS가 활성화되어 있지 않으면 onClick이 실행되지 않고 HREF가 수행됩니다.

2

가장 좋은 방법은 attachEvent (IE) 또는 addEventListener (standard) (또는 Prototype, jQuery, MooTools, YUI, Glow 등의 숨겨진 툴킷)을 사용하는 것입니다. JavaScript 내에서 이벤트를 취소하십시오. 이 링크 가정 :

<a href='foo' id='mylink'>Link text</a> 

을 ... 여기에 프로토 타입을 사용하는 예제입니다 :

// Hook up your handler on page load 
document.observe("dom:loaded", function() { 
    // Look up the link, apply your handler 
    $('mylink').observe('click', yourHandler); 
}); 

// Your handler: 
function yourHandler(event) { 
    // Prevent the default action 
    event.stop(); 

    // ...your code here... 
} 

이외의 DOM 요소를 찾을 수있는 많은 방법이 있습니다 당신은 링크에게 ID를 할당 할 필요는 없습니다 ID가 있지만 유용한 예가됩니다.

jQuery, et. 다른 사람은 자신의 버전의 event.stop()을 갖지만 이벤트를 취소하는 것으로 나타납니다.

+0

죄송합니다. 게시물의 jQuery 태그가 누락되어 jQuery 예제를 찾고 있다는 것을 깨닫지 못했습니다. –

+0

멋지다. 그다지 좋은 예가 아니다. – Sam152

5

내가 preventDefault을 사용합니다 :

$('a').click(function(e) { 
    e.preventDefault(); //stop the browser from following 
    $('#someDiv').load('content.php'); 
}); 

<a href="no-script.html">Load content</a> 

을 더 자바 스크립트가없는 경우는 HREF 따라야합니다.

+1

+1 for preventDefault – Wookai

0

JavaScript를 사용하지 않은 것처럼 HTML을 기록한 다음 JavaScript를 활성화 한 상태로보아야하므로 내용을 수정하면됩니다.

JS를 사용하는 경우 사이트로드 속도가 약간 느려지고 빌드하는 동안 약간 이상하게 보일 수 있지만 기능은 유지됩니다. JS가 사용 중지 된 경우 해당 사이트는 그대로 있으며 JS 사용자가 아닌 사용자도 액세스 할 수 있습니다.

+0

아이디어는 UI가 완전히 동일하지만 새 콘텐츠로드 방식이 다릅니다. – Sam152

관련 문제