JQuery和框架 – $(文档).ready不起作用

我有一个页面,在js和jQuery中有一些代码,它运行得很好。 但不幸的是,我的所有网站都非常陈旧,并使用框架。 因此,当我将页面加载到框架内时, $(document).ready()不会启动。

我的框架集看起来像:

     

我的页面被加载到main框架中。 我该怎么办?

我试过另一条评论中提到的方法:

 $("#frameName").ready(function() { // Write you frame on load javascript code here } ); 

它对我不起作用。

这样做了:

 $("#frameName").load( function() { //code goes here } ); 

即使事件没有快速启动 – 它等待图像和css也加载。

我认为这是我在iframe中使用DOMContentLoaded时遇到的类似问题。

我写了一篇关于它的博客文章 。

如果要为帧启动onload事件,请按照下列步骤操作:

  1. 为每个标记分配idname 。 确保idname属性值相同。

  2. 使用以下代码来触发帧的onload事件:

     $("frameName").ready(function() { // Write your frame onload code here } 

我知道这是一个古老的话题。 但是为了帮助一些到达此页面的人,这是我的解决方案:

 $($("#frameName")[0].contentWindow.document).ready(function() { // Write you frame onready code here }); 

您是否尝试将jQuery代码放在Info.aspx页面中?

以下内容对我也有用:

   

[0]表示它是文档中的第一帧,[1]是第二帧,依此类推。 如果您无法控制标记,并且仍在使用文档就绪,那么这一点尤为出色。

我在这篇文章上工作了很长时间……这是我的解决方案。

的test.html

        

test2.html

         

不知道你想要做什么,但我有一个更老的经典asp应用程序,它运行框架,我刚刚添加了jQueryfunction,它工作得很好。 $(document).ready()在一个框架内工作正常,但是如果你想在另一个框架中引用DOM,你必须使用Frame的onload事件让你知道何时加载了框架的DOM。 不可否认,我使用的是iFrame,但概念应该是相同的。

我不知道它是否是最好的解决方案,但是当我删除$(document).ready()并保持其正文时,一切都运行良好。

无需修改标记。 只需修复选择器。 它应该是:

 $("frame[name='main']").ready(function(){..}); 

 $("#frameName").ready(function(){..}); 

注意:似乎jQuery ready事件多次触发。 确保你的逻辑没问题。

这个答案可能会迟到,但这个回复可能会对像我这样的人有所帮助……

这可以通过原生Javascript代码完成 –

 ifrm2 = var ifrm2 = document.getElementById('frm2'); if (ifrm2.contentDocument.readyState == 'complete') { //here goes the code after frame fully loaded } //id = frm2 is the id of iframe in my page 

$(document).ready()没有理由不被调用。 确保您的页面包含jquery.js包含。 尝试使用空的HTML页面进行简单的测试,只需一个警报即可查看是否存在其他问题。

如果您试图在包含框架定义的HTML页面中使用它,请记住那里没有文档,您将不得不使用