scoobydoo100
Goto Top

JavaScript Funktion innerhalb einer iFrames wird nicht ausgeführt

Hallo !

Ich habe bislang auf meiner Startseite ein paar Scripte/Funktionen eingefügt, mit welchen ich in Verbindung mit einem Kiosk-Programm (Sitekiosk von provisio) über eine Website externe Programme starten kann.

Das hat bislang einwandfrei geklappt. Jetzt wollte ich die Funktionen (welche also im Head der index.html definiert sind) innerhalb eines iFrames starten und es geht nicht mehr. Die Funktionen sind bislang im Head und Body (onload) hinterlegt gewesen, wie hier als Beispiel:

<html>
   <head>
      <script type="text/javascript">  
         <!--
            function Init_ScriptInterface()
            {
            window.external.InitScriptInterface();
            }
 
            function ExecuteProg()
            {
            SiteKiosk.ExternalApps.Run("c:\\windows\\notepad.exe", true); 
            }
         //-->
      </script>
      <title>Example</title>
   </head>
   <body onload="Init_ScriptInterface();">  
         <a href="javascript:ExecuteProg()">run Notepad</a>  
   </body>
</html>

Hat auf der Startseite immer funktioniert. Jetzt im iFrame geht nichts mehr. Es kommt immer der Fehler im Debug-Fenster von SiteKiosk "Sitekiosk ist undefiniert"... Gibt es hier etwas besonders zu beachten, damit auch die Funktionen im iFrame geladen werden können ?

Vielen Dank im Voraus !

Content-Key: 281686

Url: https://administrator.de/contentid/281686

Ausgedruckt am: 29.03.2024 um 11:03 Uhr

Mitglied: Stalker1337
Lösung Stalker1337 01.09.2015 aktualisiert um 16:20:54 Uhr
Goto Top
Hi,

versuche es mal folgendermaßen:
<script type="text/javascript">  
document.getElementById('Deine IFrame ID').onload = DeineFunktion() {  
}
</script>


und nicht so:

<Iframe onload="DeineFunktion();">  
Mitglied: 114757
Lösung 114757 01.09.2015 aktualisiert um 16:20:46 Uhr
Goto Top
Moin,
aus einem iFrame muss man Funktionen die im Hauptdokument definiert sind so aufrufen:
parent.ExecuteProg();
Object-OnClick-Event von darin geladenem HTML auslösen
http://stackoverflow.com/questions/2161388/calling-a-parent-window-func ...

Beispiel :
<!doctype html>
<html>
<head>
<meta charset="utf-8">  
<title>Demo</title>
<script type="text/javascript">  
function test(){
	alert("Called from iframe");	  
}
</script>
</head>
<iframe frameborder="1" width="200" height="200" src="iframe.html"></iframe>  
<body>
</body>
</html>
und der iFrame-Code:
<!doctype html>
<html>
<head>
<meta charset="utf-8">  
<title>inner iFrame</title>
</head>
<body>
<input type="button" onClick="parent.test()" value="Call Parent Function"/>  
</body>
</html>
Gruß jodel32
Mitglied: scoobydoo100
scoobydoo100 01.09.2015 um 16:17:48 Uhr
Goto Top
Hi, vielen Dank.

Ja, hab gerade Rückmeldung von der Software-Firma bekommen.

Das ganze muss im Frame wie folgt aufgerufen werden:

window.external.InitScriptInterface(document);

Also mit "document" in der Klammer, dann geht's.

Vielen Dank dir /euch !
Mitglied: scoobydoo100
scoobydoo100 01.09.2015 um 16:20:43 Uhr
Goto Top
Ah ok... Vielen Dank ! Jetzt weiß ich das auch mal face-smile

Also, mit dem Tipp von Provisio (ist der Hersteller der Kiosk-SW) "document" in die Klammer zu setzen und damit die Funktion aufzurufen, hat es geklappt.

Sprich:

window.external.InitScriptInterface(document);

Kommt glaube ich auf's gleiche raus...

Also , vielen Dank euch allen !!!!