【问题标题】:Catch iframe reload with jQuery使用 jQuery 捕获 iframe 重新加载
【发布时间】:2012-07-11 12:15:27
【问题描述】:

我有一个像这样用 jQuery 动态加载的 iframe

jQuery('<iframe id="myFrame" src="iframesrc.php"></iframe>').load(function(){
    // do stuff when loaded
}).prependTo("#myDiv");

而且我想在每次重新加载内部框架时捕获重新加载事件。我试过这个:

jQuery('body').on('load', '#myDiv', function() {
    alert('iframe loaded');
});

但是,无论是在初始加载时还是在 iframe 中点击链接时,我都没有收到任何响应。我做错了什么?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您在上面的示例中寻找 div 的 load 操作,而不是 iframe。试试:

    $("#myFrame").on("load", function () {
        alert("Hi there, hello");
    })
    

    此外,如果您不使用其他库,请使用 $() 访问 jQuery,而不是 jQuery()

    另外请注意,您希望在页面上运行的任何函数都必须绑定到 jQuery 的文档就绪事件,如下所示:

    $(function () {
        // your code goes here
        $("#myFrame").attr("src", "http://google.com"); // <- this works
    })
    
    $("#myFrame").attr("src", "http://google.com"); // <- this does not work
    

    【讨论】:

    • 感谢一百万! jQuery("#myFrame").on("load", function () { alert("Hi there, hello"); }) 完美运行。不知道这是绑定事件的有效方法,因为我太累了,误读了 jQuery 文档;)
    • 很高兴听到这个消息。如果这最能回答您的问题,请务必点击复选框!
    【解决方案2】:

    新网址

    location.assign("http:google.com");
    

    assign() 方法加载一个新文档。

    重新加载

    location.reload();
    

    reload() 方法用于重新加载当前文档。

    【讨论】:

      猜你喜欢
      • 2011-05-14
      • 2014-01-11
      • 2011-03-28
      • 1970-01-01
      • 2019-01-09
      • 2013-06-22
      • 2011-04-18
      • 2015-11-28
      • 1970-01-01
      相关资源
      最近更新 更多