1

クリックイベント時に親ウィンドウから子ウィンドウの関数を呼び出そうとしています。SafariとChromeでは動作しませんが、Firefoxでは動作します。このコードを使用して、親ウィンドウのボタンイベントから子ウィンドウの関数を呼び出します

var iframeElem = document.getElementById("iframe");
iframeElem.contentWindow.muteVideoSound(); 

ミュートウィンドウは、iframeに読み込まれる子ウィンドウの機能です。

4

1 に答える 1

0

親ウィンドウからiframe内の関数を呼び出そうとしていますか?

これは次のように実行できます。

main_window.html

<!DOCTYPE html>
<html>
<head>
<title>main window</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script>
$(document).ready(function() {
    $("a#update_text_link").click(function(event) {
        event.preventDefault();
        $("iframe#iframe_id")[0].contentWindow.update_text(); // run the function
    });
});
</script>
</head>
<body>
<p><a href="#" id="update_text_link">Update iframe text</a></p>
<iframe src="iframe.html" id="iframe_id"></iframe>
</body>
</html>

iframe.html

<!DOCTYPE html>
<html>
<head>
<title>iframe</title>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script>
function update_text() {
    $("h1").fadeOut(function () {
        $(this).text("Some updated text.").fadeIn();
    });
}
</script>
</head>
<body>
<h1>Some text.</h1>
</body>
</html>

ただし、ローカルファイルシステムからWebページをロードする場合、これは一部のブラウザ(Chromeなど)では機能しません。したがって、この例をWebサーバーに配置してから、そのようなブラウザーで開こうとする必要があります。

また、このトピックに関する詳細情報(古いブラウザーのサポートを含む)が必要な場合は、同様の質問に対するいくつかの回答をここで読むことができます。

親ページからiframeでJavaScriptコードを呼び出す

于 2012-04-25T15:13:54.940 に答える