簡體   English   中英

為什么以下JavaScript無法在Internet Explorer和Mozilla中運行,但在谷歌瀏覽器中可以正常工作?

[英]Why following javascript is not working in Internet Explorer & Mozilla but works fine in google chrome?

我在JavaScript中使用會話屬性,然后在if-else中使用它。 該腳本假設在用戶一些錨標記單擊錨標記時運行。

<a id="someId" href="/someurl" onClick="checkSession(this.id)">Link</a>

<a id="someOtherId" href="/someurl" onClick="checkSession(this.id)">Link2</a>

在體內

<script type="text/javascript">

    function checkSomething(clickedId){     

        event.preventDefault();     
        var value= <%=(int) session.getAttribute("key")%>;

        if(value != -1){
            window.location = $('#'+clickedId).attr('href');
        }else {
            alert("Please Select a value first then click on the link.");
            $("#someInput").focus();
        }

    };


</script>

腳本可在chrome上完美運行,但在mozilla和IE上無法運行。 在mozilla上,我可以看到錨標記已與該javascript綁定,但尚未運行。

傳遞事件而不是ID。 另外,您不需要jQuery即可獲取元素的href 只需使用原始JavaScript:

<a id="someId" href="/someurl" onClick="checkSession(event)">Link</a>   
<a id="someOtherId" href="/someurl" onClick="checkSession(event)">Link2</a>

<script>
    function checkSession(event) {
        event.preventDefault();
        var clickedId = event.target.id;
        var href = event.target.href; 

        // etc
    }
</script>

或者,您可以:

<a id="someId" href="javascript:checkSession('/someurl')">Link</a>   
<a id="someOtherId" href="javascript:checkSession('/someOtherurl')">Link2</a>

<script>
    function checkSession(url) {
      var value= <%=(int) session.getAttribute("key")%>;

      if(value != -1){
          window.location = url;
      } else {
          alert("Please Select a value first then click on the link.");
          $("#someInput").focus();
      }

    }
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM