2017-12-21 17 views
0

Guten Tag, wie kann ich verhindern, dass eine HTML-Datei versucht, auf den EventListener zuzugreifen, der für eine andere HTML-Datei nach der Verwendung von window.location gedacht ist. Beide HTML-Dateien verwenden die gleiche externe js-Datei .Uncaught TypeError: Kann die Eigenschaft 'addEventListener' des Nullfehlers nicht lesen

dank

meinen Code

index.html

<body> 

<form id=form> 
    <input type="button" value="submit"> 
</form> 

<script src="main.js"></script> 
</body> 

post.html Datei

<body> 
    <script src="main.js"></script> 
</body> 

main.js Datei

document.getElementById("form").addEventListener("click", function(e){ 
    console.log("hello"); 
    window.location = "post.html"; 
    e.preventDefault(); 
}); 
+0

Nun, als Sie es über eine bestimmte ID oder etwas binden, müssen oder Logik hinzufügen, um zu sehen, ob es auf der Seite ..... – epascarello

+1

Es gibt eine Reihe von Möglichkeiten, aber Am einfachsten (und am besten) wäre es, den Elementen auf Ihren beiden Seiten unterschiedliche Bezeichner (z. B. eine ID oder Klasse) zu geben. Dann aktualisieren Sie einfach Ihr JavaScript, um nur das einzigartige Element auf der gewünschten Seite anzusprechen. Auch Ihre '' ID benötigt Anführungszeichen. –

+0

Ich gab dem Formular-Tag in der index.html-Datei eine ID des Formulars. es leitet an die post.html-Datei weiter, gibt aber immer noch den addeventlistener-Fehler –

Antwort

0

Eine Möglichkeit, dies zu lösen wäre Ihre Veranstaltung Zuhörer um eine if Anweisung wickeln, die den Pfad überprüft.

if (window.location.pathname === '/index.html') { 
 
    // do stuff in here that you want to execute for the index.html page 
 
    document.getElementById("form").addEventListener("click", function(e){ 
 
     console.log("hello"); 
 
     window.location = "post.html"; 
 
     e.preventDefault(); 
 
    }); 
 
}

Verwandte Themen