2015-06-14 46 views
0

我遇到了一個關於javascript事件註冊的奇怪問題。測試文件「的test.html」是:JavaScript事件註冊不能在Android瀏覽器下​​記住

<html> 
<body> 
<input type="button" id="button" value='button' /> 
<script> 
alert('here'); 
document.getElementById('button').onclick = function() {alert('here1');} 
</script> 
</body> 
</html> 

我打開一個網頁瀏覽器空白頁面,如「關於:空白」,然後去「的test.html」,然後點擊Web瀏覽器「返回「按鈕爲」空白「頁面,然後再次點擊」Go Foward「回到」test.html「。

  1. IE和Firefox:

後 「返回」 和 「繼續前進」,改變( '這裏')將無法顯示,但按鈕可以正常工作。 (我認爲這是好的。)

  • 鉻(PC):
  • 後 「返回」 和 「繼續前進」,改變( '這裏')會顯示,並且按鈕可以正常工作。

  • Android瀏覽器:
  • 後 「返回」 和 「繼續前進」,改變( '這裏')將不顯示,且按鈕不能工作。

    (我使用默認的Internet瀏覽器在三星Galaxy,瀏覽器代理信息是 「Mozilla的/ 5.0(Linux的,採用Android 4.3; .../...爲AppleWebKit /移動Safari瀏覽器/」)

    如果我使用:

    <input type="button" id="button" value='button' onclick="..." /> 
    

    按鈕可以在Android網絡瀏覽器中工作

    爲什麼JavaScript事件寄存器可記憶(如IE,FF,鉻)在Android網絡瀏覽器的任何想法

    。?

    我錯過了什麼嗎?非常感謝。

    回答

    0

    我會推薦使用.addEventListener()。

    HTML:

    <!-- Using a button --> 
    <input type="button" id="btn-id" /> 
    
    <!-- Using a form --> 
    <form id="form-id"> 
        <input type="button" /> 
    </form> 
    

    的JavaScript:

    // just a click event 
    document.getElementById('#btn-id') 
    
        .addEventListener('click', function(e) { 
         e.preventDefault(); 
         // do stuff 
        }); 
    
    // or using a form submit 
    document.getElementById('#form-id') 
    
        .addEventListener('submit', function(e) { 
         e.preventDefault(); 
         // do stuff 
        }); 
    

    希望它可以幫助