2016-05-29 38 views
0

Ist es möglich, eine getElementById aber von einer anderen Seite zu verwenden?getElementById eine andere Seite

Ich habe eine Tastenfunktion auf einer "Seite 1", aber dann versuche ich, Iframe "Seite 1" auf "Seite 2" der Button würde nicht funktionieren. Ich versuchte lange und schwer, dieses Problem zu beheben, aber ich würde keine Lösung finden, außer vielleicht einen getElementById von "Seite 1" zu verwenden und in "Seite 2" zu setzen.

+0

Was meinst du mit "iframe Seite 1 bis Seite 2"? Willst du damit sagen, dass du eine Webseite mit einem iframe hast, die eine Schaltfläche enthält? – darrylyeo

+0

Sie müssen das window.document Objekt dieses Rahmens erhalten. – jaibatrik

+0

Veröffentlichen Sie Ihre Codes. – frnt

Antwort

0

ich denke, dass Sie eine externe Javascript-Datei verwenden sollten, um die Elemente mit getElementById() zu erhalten, und fügen Sie es in die Seite2.

0

contentDocument ist, was ich denke, dass Sie fehlen.

page1.htm

<html> 
<script type="text/javascript"> 
    function buttonFunction() 
    { document.getElementById("myFrame").contentDocument.getElementById("page2Elem").innerHTML="From Page 1"; 
    }; 
    function page2Function() 
    { alert("Page 2 caused this alert!"); 
    }; 
</script> 
<body> 
    <input type="button" value="click" onclick="buttonFunction();"> 
    <br> 
    <iframe id="myFrame" src="page2.htm"></iframe> 
    <div id="fromPage2">no messages</div> 
</body> 
</html> 

page2.htm

<html> 
<script type="text/javascript"> 
    function callPage1() 
    { window.parent.document.getElementById('fromPage2').innerHTML='Hello from page 2'; 
    window.parent.page2Function(); 
    }; 
</script> 
<body> 
    <div id="page2Elem">Page 2 Element</div> 
    <input type="button" value="Call Page 1" onclick="callPage1();"> 
</body> 
</html> 
+0

Ich möchte eine Funktion von Seite 2 auf Seite 1 (in Ihrem Beispiel) arbeiten. Es gibt eine Schaltfläche auf Seite 2, die nicht funktioniert, wenn ich Iframe auf Seite 1, also ich dachte, wenn ich nur diese Schaltfläche zu Seite 1 hinzufügen kann es funktionieren. – Caesium

+0

Aktualisiert, damit die Aktion beide Seiten von der anderen beeinflussen kann. –

+0

Nochmals bearbeitet, sodass page2.htm eine 'function()' auf Seite 1 aufruft. –