>웹 프론트엔드 >JS 튜토리얼 >여러 브라우저에서 뒤로 버튼을 클릭한 후 'onload' 이벤트를 안정적으로 트리거하려면 어떻게 해야 합니까?

여러 브라우저에서 뒤로 버튼을 클릭한 후 'onload' 이벤트를 안정적으로 트리거하려면 어떻게 해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-06 03:51:10487검색

How Can I Reliably Trigger the `onload` Event After a Back Button Click Across Different Browsers?

뒤로 버튼 클릭 후 크로스 브라우저 온로드 이벤트 처리

웹 사이트를 탐색할 때 뒤로 버튼을 클릭해도 일반적으로 대부분의 브라우저에서 JavaScript 온로드 이벤트가 트리거되지 않습니다. Internet Explorer의 경우 이는 이러한 이벤트에 의존하는 기능을 구현하는 데 어려움을 겪습니다.

그러나 jQuery의 존재 동작을 활용하는 크로스 브라우저 솔루션:

<body onunload=""><!-- This triggers a page reload -->

이 겉보기에 무해해 보이는 코드는 내용에 관계없이 onunload 이벤트 리스너를 추가하여 브라우저가 Safari, Opera 및 Mozilla에서 페이지를 다시 로드하도록 강제합니다. 이벤트 핸들러.

이 동작을 확인하려면 다음 코드를 사용하세요.

<body onunload="""><!-- This does the trick -->
<script type="text/javascript">
    alert('first load / reload');
    window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>

onunload를 사용한 후 링크를 ​​클릭한 다음 뒤로 버튼을 누르면 페이지가 다시 로드됩니다. 다음 코드를 비교해 보면 onunload가 없으며 돌아갈 때 다시 로드되지 않습니다.

<body><!-- Will not reload on back button -->
<script type="text/javascript">
    alert('first load / reload');
    window.onload = function(){alert('onload')};
</script>
<a href="http://stackoverflow.com">click me, then press the back button</a>
</body>

jQuery 동작을 사용하는 이 솔루션은 클릭 시 뒤로 버튼을 누르면 실행되는 다양한 브라우저에서 onload와 유사한 기능을 구현할 수 있습니다. 눌려있습니다. 그러나 페이지 로드 속도가 느려질 수 있으므로 사용하기 전에 그 필요성을 신중하게 고려해야 합니다.

위 내용은 여러 브라우저에서 뒤로 버튼을 클릭한 후 'onload' 이벤트를 안정적으로 트리거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.