2012-04-25 9 views
0

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

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

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

答えて

0

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

次のように行うことができます。しかし、これはのように(一部のブラウザでは動作しません

<!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> 

Iframe.htmlの

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> 

ローカルのファイルシステムからWebページを読み込むと、したがって、このサンプルをWebサーバーに配置し、そのようなブラウザーで開こうとする必要があります。

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

Invoking JavaScript code in an iframe from the parent page

関連する問題