2016-09-17 1 views
1

Hier ist mein Code:.click() nicht beim Laden der Seite arbeiten, sondern arbeitet in der Konsole

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

Gibt es einen Grund, warum es nicht den Klick auslöst(); auf Seite laden, aber wenn ich es in der Konsole für Firefox mache, funktioniert es. Warum ist das und wie repariere ich es?

EDIT: Ich habe versucht, auch diese:

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

noch nicht funktioniert ...

+0

Sind Sie versuchen, das Element zuzugreifen, bevor es in das DOM geladen wird? –

+1

'window.addEventListener ('load', function() {document.getElementById ('test'). Click();}, false);' Das Problem ist, dass das Skript ausgeführt wird, bevor der Browser den HTML-Code syntaktisch analysiert und erstellt hat Taste. Dieser Code wartet darauf, dass das Dokument vollständig geladen wird, bevor versucht wird, auf die Schaltfläche zu klicken. – enhzflep

+0

Wie wird das Element mit dieser ID auf der Seite platziert? Bitte zeigen Sie uns das, damit wir besser helfen können (UND vielleicht Ihren Event-Handler zeigen?) –

Antwort

3

Da Sie nicht Ihre ganze Seite veröffentlichen haben, denke ich, die höchste Wahrscheinlichkeit, dass das ist " test "Element wird nicht geladen, wenn das Skript ausgeführt wird. Wenn Sie Ihre Skripte die ausgeführt um sicherzustellen, erhalten möchten, sollten Sie

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

Arbeitsbeispiel verwenden:

</!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

Ohne den Rest des Codes zu sehen, muss ich hier erraten. Da der Code im Dokument fehlschlägt und nach dem Laden der Seite dennoch wie erwartet funktioniert, kann man davon ausgehen, dass das Laden des DOM noch nicht abgeschlossen ist.

Um dies zu umgehen, fügen wir eine Funktion an das load-Ereignis des Fensterobjekts an. Sobald die HTML/CSS/JS-Dateien geladen und analysiert wurden, wird das Ereignis ausgelöst. Wir behandeln dieses Ereignis, indem wir die gewünschte Schaltfläche suchen und anklicken.

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

im Kopf behalten die jquery Bibliothek schließen vor dem Sie andere tun. diese jquery google CDN bieten verschiedene Version von jquery online cdn. Verwende einen von ihnen und hoffe, dir helfen zu können.

verweisen Sie diese Arbeitsdemo. ....

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

Verwandte Themen