2014-05-06 59 views
0

我想在加載網頁時自動運行一個函數,然後我想讓它在執行後重新運行該函數。如何在加載運行後提供使用javascript調用函數的選項

如果我的零件不在數據庫中,下面的代碼將起作用,如果使用document.write代替使用alert來顯示零件,但是如果我使用document.write,則再次搜索的按鈕消失。我想這是因爲按鈕沒有被重新初始化。我移動了一下,什麼都沒有,並嘗試重新加載網頁,這是功能性的,但由於時間的原因而不令人滿意。

有沒有辦法防止按鈕消失,或者您推薦更好的方法?

在此先感謝。

<!DOCTYPE HTML> 

<html> 

<body> 
     <input id="clickMe" type="button" value="Search for Another Part" onclick="search_part();" /> 
     <script type="text/javascript"> 

      function search_part() 
      {         
        var part = prompt("Stackoverflow example: "); 

        if(typeof part === 'undefined') 
        { 
          alert("That part is not in the database.") 
        } 
        else 
        { 
          document.write(part) 
        } 
      } 
      window.onload = search_part(); 

      document.getElementById("Button").onclick = search_part; 

    </script> 

+0

http://stackoverflow.com/questions/4537963/what-are-alternatives-to-document-write和http://stackoverflow.com/questions/10873942/document-write-clears-page – Andy

回答

1

DOM被加載後,document.write替換網頁上的所有內容。相反,您可能希望在主體上具有元素容器並在其中顯示消息。

<input id="clickMe" type="button" value="Search for Another Part"> 

<div id="messages-here"></div> 

<script type="text/javascript"> 

    function search_part() { 
     var part = prompt("Stackoverflow example: "); 

     if (typeof part === 'undefined') { 
      alert("That part is not in the database."); 
     } else { 
      document.getElementById('messages-here').innerHTML = part; 
     } 
    } 

    window.onload = search_part(); 

    document.getElementById("clickMe").onclick = search_part; 

</script> 
+0

謝謝。這是有幫助的,我沒有意識到document.write被壓垮了。 –

相關問題