这个问题似乎只发生在chrome中 这是iframe代码
<!DOCTYPE html>
<html>
<head>
<script>
function blahblah() { alert("test"); }
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test Page</title>
</head>
<body>
<p> lalalalallalala!!! </p>
</body>
</html>
这是我创建iframe的方式
<iframe src="iframetest.html" id="iframetest"></iframe>
然后我尝试调用iframe的blahblah()函数:
$('#iframetest')[0].contentWindow.blahblah()
但这不起作用
答案 0 :(得分:3)
这有效:
<iframe id=iframetest src=iframetest.html></iframe>
<script>
$(window).load(function(){
document.getElementById('iframetest').contentWindow.blahblah();
});
</script>
请注意,我使用了$(window).load
来确保加载了iframe。 <{1}}使用load无法确保加载iframe。
当然,您的iframe必须与父文档具有相同的来源(这也意味着您必须在浏览器的document
中打开文件,而不是http://
)。
编辑:Working demo