document.ready函数在iframe中不起作用

时间:2013-11-19 00:34:47

标签: javascript jquery iframe

在父页面中,我有一个像这样的iframe:

<iframe src="facts.php" style="width:320px; height:500px; border:hidden" id="facts">  </iframe>

在那个iframe里面我有一个像这样的jQuery函数,

<script type="text/javascript">
$(document).ready(function(){
    $('#demo').hide();
    $('.vticker').easyTicker();
});
</script>

但是在加载父页面时不会触发此函数。你能解释一下如何解决这个问题吗?

3 个答案:

答案 0 :(得分:4)

在iframe中尝试此操作。

<script type="text/javascript" src="js/Jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#demo').hide();
    $('.vticker').easyTicker();
});
</script>

您遇到此问题,因为父JavaScript无法访问iframe中的事件。最好将脚本包含在iframe源代码中。

答案 1 :(得分:1)

这对我来说似乎是跨界脚本。 首先在你的iframe中尝试这个:

<script>
    $(document).ready(function()
    {
        alert("iFrame is ready");
    });
</script>

如果这不起作用,请检查是否以正确的方式包含jQuery。

请记住:您的iframe是一个完整的自我网站。主框架和iframe之间没有通信。 这意味着如果您在iframe中使用Javascript,则只能操纵iframe中的HTML代码。 如果您想在iframe之外操作HTML元素,则需要在主框架中包含Javascript。

答案 2 :(得分:1)

我面临同样的问题。我正在使用相对路径来添加jQuery文件。

<script type="text/javascript" src="js/Jquery.js"></script>

通过添加'/'解决了我的问题。

<script type="text/javascript" src="/js/Jquery.js"></script>