簡體   English   中英

加載時運行javascript函數

[英]Run javascript function on load

我正在嘗試使用此腳本在頁面加載時運行功能。 誰能看到什么問題? 我敢肯定,這是愚蠢的錯誤-無法解決。

碼:

<script>

  var text = document.getElementById("myText");

  function changeFontSize(){
  if (window.innerWidth < 600) {
text.style.fontSize = "70px";
      } else {
      text.style.fontSize = "100px";
      }
  }

  window.onresize = changeFontSize;

  </script>

  <script>
  setTimeout(function() changeFontSize, 3000);
  </script>
window.onload = changeFontSize;
window.onresize = changeFontSize;

或者,您可以使用

window.addEventListener("onload", changeFontSize, false);
window.addEventListener("onresize", changeFontSize, false);

  var text = document.getElementById("myText"); function changeFontSize() { if (window.innerWidth < 600) { text.style.fontSize = "70px"; } else { text.style.fontSize = "100px"; } } window.onresize = changeFontSize; setTimeout(changeFontSize, 3000); 
 <p id="myText">Test</p> 

基本上,您在以下方面有語法錯誤:

setTimeout(function()  changeFontSize, 3000);

您不需要function()

  var text = document.getElementById("myText"); function changeFontSize(){ if (window.innerWidth < 600) { text.style.fontSize = "70px"; } else { text.style.fontSize = "100px"; } } window.onload = changeFontSize; window.onresize = changeFontSize; 
 <div id="myText">Test</div> 

首先,不使用setTimeout()來編寫它,它應該是setTimeout(changeFontSize, 3000); 代替。 話雖如此,這將工作:

<script>
    var text = document.getElementById("myText");

    function changeFontSize() {
        if (window.innerWidth < 600) {
            text.style.fontSize = "70px";
        } else {
            text.style.fontSize = "100px";
        }
    }

    window.onresize = changeFontSize;

    changeFontSize();
</script>

正如jperelli所說, window.onload = changeFontSize也可以工作。

如果您想絕對使用onresize而不是onload (我想您想要實現響應),則需要等待頁面加載,否則對象myText將不會在變量文本中初始化該對象(因為它是在DOM中尚不可用)。 請注意,在這種情況下,無需使用setTimeout (無論如何您都會錯誤地使用語法)。

這有效:

<script>

  function changeFontSize(){
      if (window.innerWidth < 600) {
          document.getElementById("myText").style.fontSize = "70px";
      } else {
          document.getElementById("myText").style.fontSize = "100px";
      }
  }

  window.onresize = changeFontSize;

</script>

暫無
暫無

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

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