【问题标题】:Preventing iframe postback from calling jQuery 'ready' function on parent防止 iframe 回发在父级上调用 jQuery 'ready' 函数
【发布时间】:2009-07-14 02:55:08
【问题描述】:

我在 jQuery 选项卡布局中有一个 iframe。我正在使用 iframe 上传图像,以模拟 AJAX 文件上传。似乎每当我的 iframe 回发时,它都会导致父页面的 $(document).ready 执行,重置我所在的当前选项卡。

关于如何防止这种情况的任何想法?

    function uploadDone() {

    var data = eval("("+ $('#upload_target').contents().find('body').html() +")");
    if(data.success) {
       $('#upload_summary').append("<img src='" + data.full_path + "' />");
       $('#upload_summary').append("<br />Size: " + data.file_size + " KB");
    }
    else if(data.failure) { //Upload failed - show user the reason.
        alert("Upload Failed: " + data.failure);
    }
}

$(document).ready(function() {

    $('#image_uploader').submit(function() {

        if($.browser.safari || $.browser.opera) {

            $('#upload_target').load(function(){
                setTimeout(uploadDone, 0);
            });

            var iframe = document.getElementById('upload_target');
            var iSource = iframe.src;
            iframe.src = '';
            iframe.src = iSource;

        } else {

            $('#upload_target').load(uploadDone);
        }
    });

});

【问题讨论】:

  • 你能发布你的代码吗?当您在 iFrame 上提交表单并在父页面的 document.ready 中检查该标志时,您不能尝试设置一个标志吗?
  • iframe 中的回发是否会导致父页面中的回发是否正常?

标签: jquery iframe postback tabs


【解决方案1】:

标志是有意义的(正如 SolutionYogi 所提到的)。如果父框架中的 document.ready 只需要执行一次,请将全局标志设置为一个值,您可以在它再次触发时检查该值。

另一种方法是在执行后取消绑定document.ready。 例如。 $(document).unbind('ready')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-28
    • 2014-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多