Derzeit habe ich zwei HTML-Dateien. Eine namens index.html und eine andere namens editor.htmlFühren Sie JavaScript-Funktion in einer anderen HTML-Datei in einem Skript-Tag
Inside index.html Ich habe einen iframe von editor.html Darüber ist iframe auch ein Benachrichtigungssystem, das ich gemacht habe. Um eine Benachrichtigung verwendet es eine Funktion ausführen ich geschaffen, die kann wie so verwendet werden:
Notification("msg");
Diese Funktion funktioniert gut, wenn ich es so nennen aus dem Inneren der index.html, da die Funktion der HTML-Code der index.html modifiziert (via .innerHTML). Ein Problem zeigt sich, wenn ich es von der editor.html versuchen und rufen
Auch mit dem editor.html in index.html wie dies an der Spitze der index.html hinzugefügt:
<script src="editor.html"></script>
Und ich schrieb dies im editor.html:
<script src="index.html"></script>
Wenn ich versuche, und die Benachrichtigungsfunktion von der editor.html laufe ein Fehler ist, da die Funktion in der index.html ist und modifiziert index.html, nicht Editor .html.
Beachten Sie, dass in jedem der index.html und editor.html das Javascript in einem Tag ist, da es andere HTML in der Datei gibt. Danke und bitte stellen Sie Fragen, wenn Sie eine weitere Bestätigung benötigen.
Eine Seite kann nie Code auf einem anderen direkt ausführen. Sie können nur über ['Window.postMessage()'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) kommunizieren und Daten übertragen. Innerhalb des iframe wäre dies 'window.parent.postMessage()' und von außerhalb des iframe 'document.querySelector ('iframe'). ContentWindow.postMessage()'. Sie müssen außerdem einen Ereignis-Listener für das Ereignis "message" auf jeder Empfangsseite anhängen. – Siguza
Können Sie ein Beispiel mit seperaten index.html und editor.html geben? Eine Möglichkeit, Funktion und Parameter weiterzugeben? –