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
事件,请按照下列步骤操作:
-
为每个
标记分配
id
和name
。 确保id
和name
属性值相同。 -
使用以下代码来触发帧的
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
You will never see me, cause I have been removed!
不知道你想要做什么,但我有一个更老的经典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页面中使用它,请记住那里没有文档,您将不得不使用