1. 程式人生 > >解決windowlocationhref不跳轉的 BUG

解決windowlocationhref不跳轉的 BUG

今晚寫了程式碼發現了一個小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>------正常跳轉