Sichtbarkeit von Skript enthält in einem IFRAME
-
19-08-2019 - |
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.
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!