2016-05-29 46 views
0

getElementByIdを使用できますが、別のページから使用できますか?getElementById別のページ

「ページ1」にボタン機能がありますが、「ページ1」から「ページ2」までのiframeにはボタンが機能しません。私はこの問題を解決するために長く努力しましたが、おそらく "ページ1"からgetElementByIdを使用して "ページ2"に入れようとする以外は解決策を見つけることはできません。

ありがとう。

+0

あなたが "2ページにiframeのページ1" とはどういう意味ですか?ボタンを含むiframeを含むウェブページを持っていると言ってもいいですか? – darrylyeo

+0

そのフレームのwindow.documentオブジェクトを取得する必要があります。 – jaibatrik

+0

あなたのコードを投稿してください。 – frnt

答えて

0

getElementById()を使用して要素を取得し、page2に含めるには、外部のjavascriptファイルを使用する必要があると思います。

0

contentDocument私はあなたが欠けていると思います。

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

2ページの関数を1ページ(あなたの例では)で動作させたい。ページ2には、iframeがページ1に表示されても機能しないボタンがあります。そのボタンをページ1に追加するだけで動作するかもしれません。 – Caesium

+0

アクションが他のページの両方のページに影響を与えるように更新されました。 –

+0

page2.htmが1ページの 'function()'を呼び出すように再度編集しました。 –