2015-07-13 4 views
1

Я пытаюсь использовать этот скрипт для запуска функции при загрузке страницы. Кто-нибудь может понять, что случилось? Глупая ошибка, я уверен - просто не могу ее решить.Запуск функции javascript при загрузке

Код:

<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> 
+0

Попробуйте использовать window.onload = changeFontSize; –

ответ

2
window.onload = changeFontSize; 
window.onresize = changeFontSize; 

в качестве альтернативы, вы можете использовать

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

попробовал, но это не сработало - я хочу, чтобы javascript запускался один раз, когда окно загружается, а затем с прослушивателем при каждом изменении размера. – dwinnbrown

+0

вы можете иметь оба! :) отредактировал мой ответ – jperelli

+0

нормально, теперь он работает :), но он довольно медленный, есть хорошая одна-две секунды, подождите, пока он его не запустит. Есть идеи? – dwinnbrown

0

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()

+0

, к сожалению, это тоже не сработало ... Я хотел бы запустить функцию один раз когда страница загружается, а затем всякий раз, когда она изменяется. – dwinnbrown

0

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>

+0

спасибо, но это не сработало. javascript должен запускаться один раз при загрузке страницы/таймаута, а затем всякий раз, когда изменяется размер окна. – dwinnbrown

+0

Отредактировал мой код. Теперь попробуйте – Keerthi

0

Начнем с того, 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 также будет работать.

+0

спасибо, но это не сработало. javascript должен запускаться один раз при загрузке страницы/таймаута, а затем всякий раз, когда изменяется размер окна. – dwinnbrown

+0

@ dwinnbrown Вы помещаете блок '

0

Если вы хотите абсолютно использовать 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> 
+0

спасибо, но это не сработало.javascript должен запускаться один раз при загрузке страницы/таймаута, а затем всякий раз, когда изменяется размер окна. – dwinnbrown

Смежные вопросы