2012-04-25 41 views
0

我试图从父窗口上单击事件调用子窗口的功能。它不适用于Safari和Chrome,但它正在使用Firefox。我使用此代码从父窗口按钮事件调用子窗口的功能从父窗口调用子窗口的功能单击事件不工作Safari和铬

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

静音窗口是在加载到iframe中的子窗口上的功能。

回答

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> 

然而,这不会在某些浏览器工作(如Chrome)如果您从本地文件系统加载网页。所以你需要把这个例子放在一个Web服务器上,然后尝试在这样的浏览器中打开它。

另外,如果你需要对这个主题的更多信息(包括旧版浏览器的支持),您可以阅读一些回答类似的问题在这里:

Invoking JavaScript code in an iframe from the parent page

相关问题