Frage

Zum Beispiel:

script.js:

function functionFromScriptJS() {
    alert('inside functionFromScriptJS');
}

iframe.html:

<html>
<head>
<script language="Javascript" src="script.js"></script>
</head>
<body>

<iframe>
  <body>
     <script language="JavaScript">
       functionFromScriptJS();
     </script> 
  </body> 
</iframe>

</body>
<html>

Der obige Aufruf functionFromScriptJS () funktioniert nicht.

Die erste Vermutung parent.functionFromScriptJS () ist auch nicht funktioniert.

Ist es möglich, eine derartige externe Funktion von einem Iframe zuzugreifen, wenn der ist, nicht in dem iframe selbst, sondern im übergeordneten Dokument?

@Edit: So war mein Fehler, dass ich das Dokument innerhalb des iframe-Tag legen, und ich sould es in einer separaten Datei gesetzt und durch das src attrubute des Tags angegeben. In diesem Fall parent.functionFromScriptJS () funktioniert.

War es hilfreich?

Lösung

Iframes unterstützen keine Inline-Inhalt. Sie müssen das src-Attribut verwenden, um eine andere Datei zu verweisen. Der innere Text des <iframe> Tag wird an Browser angezeigt werden, die Iframes nicht unterstützen.

Beispiel:

<iframe src="someFile.html" width="100%" height="300px">
  <p>Your browser does not support iframes.</p>
</iframe>

Wenn Sie Ihre Seite geladen haben, dann sollten Sie in der Lage sein, das Skript aufrufen parent.functionFromScriptJS(); mit

Andere Tipps

Die beste Lösung hier denke ich würde nicht einen Iframe zu verwenden (wenn auch nicht formal veraltet, es erscheint nicht in der XHTML 1.1 Spezifikation) und eine AJAX zu verwenden erhält die Seite zu packen und in eine <div> laden

Dann werden JavaScript-Funktionen wie gewohnt arbeiten!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top