今天有個一個需求如下:
點擊連結後回到上一頁,這麼簡單的東西竟然有雷 !!!
首先我們來寫個簡單的範例:
<script> function clickEvent_back() { history.back(); } function clickEvent_go() { history.go(-1); } $('a').on('click', function (event) { event.preventdefault() return false; }) </script> <h1>onclick</h1> <a href="#" onclick="history.back()">history.back()</a> <a href="#" onclick="history.go(-1)">history.go(-1)</a> <h1>href</h1> <a href="javascript: history.back()">history.back()</a> <a href="javascript: history.go(-1)">history.go(-1)</a> <h1>onclick call method</h1> <a href="#" onclick="clickEvent_back()">history.back()</a> <a href="#" onclick="clickEvent_go()">history.go(-1)</a> <h1>href call method</h1> <a href="javascript: clickEvent_back()">history.back()</a> <a href="javascript: clickEvent_go()">history.go(-1)</a>
畫面如圖:
不管點擊哪種onclick
觸發的返回上一頁皆無反應,但有趣的是寫在href
裡面的卻都正常
有問題的瀏覽器:
- Safari
- Safari – WebView (in app)
正常運作的瀏覽器:
- Chrome
- Chrome (mobile app)
- Edge
- IE 11
看來Chrome比較聽話 …