解決windowlocationhref不跳轉的 BUG
阿新 • • 發佈:2018-12-23
今晚寫了程式碼發現了一個小BUG,記錄下。
<form>---------
<p><!--下面按鈕--> <div class="footerContainer"><button id="nextStep" onclick="skip()">下一步</button><p class="clear"></p></div></p></div></form><script>function skip() { window.location.href="educate.html"; }
</script>-----------可以正常跳轉
這塊程式碼是可以正常跳轉的,同樣格式的另外一個頁面卻無法跳轉。查看了資料大概是以下解決方法:
1------
原因是 a標籤的hr e f跳轉會執行在win do w.lo ca tion.h ref設定的跳轉之前:
如果是表單form的話 也會先執行form提交。
提交之後 就已經不在當前頁面了。所以 window.location.href無效。
我的程式碼無a標籤,form也未設定提交,所以1方法不行。
2-----
點選事件中 onclick="checkUser()" 變成 onclick="return checkUser();"
並且在 check user中 return false;這樣的話 a標籤的h r e f也不會執行。 這樣就能win do w. lo cation.h ref順利跳轉。
嘗試方法2失敗。
3-------
如果是form體提交的話還可以把summit改成button呼叫j s提交,這樣win dow.location.href也會在j s提交summit之前執行成功跳轉。
方法3與問題中的程式碼不符合,因為問題程式碼form裡面沒有設定提交。
然後點選按鈕在控制檯打印出一個數字,發現控制檯閃現一下數字就消失了。同時也沒有出錯,打斷點發現
window.location.href="family.html";還是無法跳轉,便察覺不是方法的問題,從佈局下手,然後把按鈕
拉到表單外,問題解決。
<p> <!--下面按鈕--> <div class="footerContainer"> <button id="previous">上一步</button> <button id="nextStep" onclick="skip()" >下一步</button> <p class="clear"></p> </div> </p> </div> </form> <script> function skip() { window.location.href="family.html"; }; </script>--------無法跳轉
修改後,可以正常跳轉,一般控制檯或頁面閃現一下要出現的效果,都可以把按鈕拖到form外面來解決。
<p> <!--下面按鈕--> <div class="footerContainer"> <button id="previous">上一步</button> <p class="clear"></p> </div> </p> </div> </form> <button id="nextStep" onclick="skip()" >下一步</button> <script> function skip() { window.location.href="family.html"; }; </script>------正常跳轉