【问题标题】:Weird observation in JQuery / IFramesJQuery / IFrames 中的奇怪观察
【发布时间】:2009-07-15 16:31:13
【问题描述】:

情况是这样的。

function scrollLog(line) { // Assume Firefox
    // alert("weird");
    frames['log'].find(line);
};

这是我在文档准备好时调用的函数。编写的代码并不总是触发。但是,取消注释警报行,并且在警报触发后,查找功能总是会触发。有任何想法吗?

编辑:这可能是由于加载 iframe 的时间未始终完成的 load() 问题吗? (这些是相当大的日志文件)

谢谢,
迈克尔

【问题讨论】:

    标签: jquery html iframe


    【解决方案1】:

    当 javascript 尝试与其他东西通信时,添加警报通常会做一些时髦的事情。我在使用闪光灯时遇到过这种情况,当发出警报会给闪光灯留出时间加载并且它会起作用时。删除警报会破坏一切。

    在这里我要说的是,由于您发出警报,它会给框架加载时间,因此您可以访问它。当您没有警报时,它可能没有完全加载。尝试在访问之前检查框架是否已加载。

    【讨论】:

    • 检查框架是否加载的语法是什么?
    • 你可以做 iframe.onload = function(){} 我猜
    • 警报没有什么奇怪的。 DOM/资源相关的代码有时在你的代码中添加警报时会更好,因为它会阻止执行直到你关闭它,这当然可以有更多的时间来加载你正在使用的 DOM/资源.
    • 这就是我的意思,如果我说得不够清楚,请见谅。当我说时髦时,这是因为当你没有意识到这一点时,它会让一切变得非常难以弄清楚和调试。
    【解决方案2】:

    我认为问题可能是主文档 dom 可以在 iframe 的文档 DOM 加载之前加载。

    您是否尝试过基于框架元素?

    $(frames['log']).ready( function () {});
    

    【讨论】:

    • 是的,我发帖后就是这么想的——快去试试吧。
    • 感谢您的建议,marcgg 的“onload”语法终于奏效了。
    猜你喜欢
    • 2018-05-14
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 2016-08-02
    • 1970-01-01
    相关资源
    最近更新 更多