2016-09-17 4 views
1

Вот мой код:.click() не работает при загрузке страницы, но работает в консоли

<script> 
    document.getElementById("test").click(); 
</script> 

Есть ли причина, почему он не вызывает щелчок(); при загрузке страницы, но когда я делаю это в консоли для Firefox, он работает. Почему это и как я это исправить?

EDIT: Я также попытался это:

<script> 
    $(document).ready(function() { 
    $('#test').trigger('click'); 
}); 
</script> 

еще не работает ...

+0

Вы пытаетесь получить доступ к элементу, прежде чем он будет загружен в DOM? –

+1

'window.addEventListener ('load', function() {document.getElementById ('test'). Click();}, false);' Проблема в том, что скрипт выполняется до того, как браузер проанализировал html и создал кнопка. Этот код ждет, когда документ завершит загрузку, прежде чем пытаться нажать кнопку. – enhzflep

+0

Как элемент с этим идентификатором размещен на странице? Пожалуйста, покажите это нам, чтобы мы могли помочь лучше (и, возможно, показать свой обработчик событий?) –

ответ

3

Поскольку вы не публикуйте всю страницу, я думаю, что самая высокая вероятность, что " test "не загружается при выполнении сценария. Если вы хотите, чтобы ваши скрипты получить запустился, вы должны использовать

$(document).ready(function() { 
    $("#test").click(); 
}); 

Рабочий пример:

</!DOCTYPE html> 
<html> 
<head> 
    <title>Test Page</title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
    <script type="text/javascript"> 
     function printTest() { 
      alert('test') 
     } 
    </script> 
</head> 
<body> 
<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#test").click(); 
    }); 
    // document.getElementById("test").click(); 
</script> 
<button id="test" onclick="printTest()"> Click Me</button> 
</body> 
</html> 
0

Не видя остальную часть кода, мне нужно угадать здесь. Учитывая, что ваш код терпит неудачу, когда в документе, но функционирует так, как ожидалось, когда он вводится в консоль после загрузки страницы, достаточно разумно предположить, что DOM еще не завершил загрузку.

Чтобы справиться с этим, мы присоединяем функцию к событию загрузки объекта window. После того, как файлы HTML/CSS/JS были загружены и проанализированы, событие запускается. Мы обрабатываем это событие путем поиска и нажатия на нужную кнопку.

window.addEventListener('load', onDocLoaded, false); 
 

 
function onDocLoaded(evt) 
 
{ 
 
    document.getElementById('test').click(); 
 
}
<button id='test' onclick='alert("you clicked the test button");'>Click me</button>

0

иметь в виду, чтобы включить библиотеку jquery Befor вы другие. этот jquery google CDN предоставляет различную версию jquery online cdn. используйте один из них, и надежда после этого поможет вам.

см. Эту рабочую демонстрационную версию. ....

<html> 
 
<head></head> 
 
<title></title> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 

 
<style> 
 
#mybutton{ 
 
\t width: 100px; 
 
\t height: 50px; 
 
\t color: white; 
 
\t background-color: orange; 
 
\t border: 0; 
 
\t border-radius: 5px; 
 
\t font-family: monospace; 
 
\t cursor: pointer; 
 
} 
 

 
</style> 
 

 
<body> 
 

 
<button id="mybutton">Click me to see th alert</button> 
 

 

 

 
<script type="text/javascript"> 
 

 
$("#mybutton").click(function(){ 
 
\t alert("jquery and click event is working fine. ..."); 
 
}); 
 

 

 
</script> 
 
</body> 
 

 
</html>

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