<script>
var containers = new Array("test1", "test2");
</script>
此结果是2个iframe,由id和他的名字标识。好。完美,工作。然后,在每个iframe内部,它调用一个文档。在本文档中,我有一个名为play()
的函数。
我正在通过返回警报来测试play()
。每当我点击一个按钮,它就会起作用:
$("#viewport .next").click(function(){
document.getElementById(containers[current]).contentWindow.play();
});
这很有效。完美。但是我把这个函数用来触发文档就绪,它不起作用。
$(function() {
document.getElementById(containers[current]).contentWindow.play();
});
它回到我身边:
Uncaught TypeError: Object [object Window] has no method 'play'
我做错了什么? 谢谢!
修改
尝试在iframe上应用onload。没工作。
var initialFrame = containers[qual];
initialFrame.onload = function() {
document.getElementById(initialFrame).contentWindow.play();
};
EDIT2
出于某种原因,它开始工作了。谢谢!
答案 0 :(得分:1)
首先等待load
的{{1}}事件。
iframe
答案 1 :(得分:0)
您通常会像这样监听iframe的加载事件:
$("#iframe").load(function(){
// iframe is loaded
});
...但我最近遇到了麻烦,所以我反复检查iframe的内容,直到它加载为止,如下所示:
function loadFrame() {
if($('body', $('#iframe').contents()).length != 1) {
setTimeout(loadFrame,500);
}
else {
// iframe is loaded
}
};
loadFrame();
不确定这是否是最佳解决方案,但确实有效。