从iframe调用函数未加载

时间:2014-02-06 12:53:19

标签: javascript jquery iframe

我试图从iframe内部调用父函数来删除容器div,但它似乎失败了,我不确定为什么。我想知道是否因为iframe在父窗口之前加载,所以函数尚未定义。

这是我的父母html:

<div align="center" id="review-embed-container" style="position: relative;">
    <iframe frameBorder="0" id="review-embed-iframe" src="http://www.trampolinesshop.co.uk/review/Review-Embed.php?code=1&prod_name=test" scrolling="no" width="100%">
    </iframe>
</div>

父母jQuery:

function InjectIframeReview() {
        $("#review-embed-container").hide();
};

现在在Iframe页面中我有php检查是否放置了评论,如果没有评论它会调用此javascript:

<script type="text/javascript">
    window.parent.InjectIframeReview();
</script>

我似乎无法找出函数未正确触发的原因,您可以在此处看到它加载的完整网站:

网站JQuery(功能在387号线上): http://www.trampolinesshop.co.uk/acatalog/custom.js

没有评论的页面(源代码第902行的iframe): http://www.trampolinesshop.co.uk/acatalog/8ft_Skyhigh_Trampoline_and_Safety_Enclosure.html

加载的iframe(没有产品评论,只有javascript): http://www.trampolinesshop.co.uk/review/Review-Embed.php?code=3271d&prod_name=8ft%20Skyhigh%20Trampoline%20and%20Safety%20Enclosure

有评论的网页: http://www.trampolinesshop.co.uk/acatalog/8ft_Fun_Pink_Trampoline.html

加载的iframe(已审核,因此不使用javascript): http://www.trampolinesshop.co.uk/review/Review-Embed.php?code=3269&prod_name=8ft%20Skyhigh%20Pink%20Trampoline%20and%20Safety%20Enclosure

1 个答案:

答案 0 :(得分:4)

Chrome security可能你正在使用chrome。如果您使用的是Chrome,则此问题可能仅影响本地服务器,因为您的Chrome会检查您的域。但是当您上传它时,它将起作用,因为您的域将与iframe域相同。所以现在只需在其他浏览器上查看它。 当您将其上传到实时时,此问题将得到解决。 Check this