JQuery和框架 - $(document).ready不起作用
我有一个页面,在js和jQuery中有一些代码,它工作得很好。但不幸的是,我所有的网站都非常老,并且使用框架。所以当我在一个框架中加载我的页面时,$(document).ready()
不会启动。
我的框架是这样的:
<frameset rows="79,*" frameBorder="1" frameSpacing="1" bordercolor="#5996BF" noresize> <frame name="header" src="Operations.aspx?main='Info.aspx'" marginwidth="0" marginheight="0" scrolling="no" noresize frameborder="0">
<frame name="main" src="Info.aspx" marginwidth="0" marginheight="0" scrolling="auto" noresize frameborder="0">
</frameset>
我的页面加载到main
框架。我该怎么办?
回答:
$(document).ready()
没有理由不被调用。 确保您的页面包含一个包含到jquery.js
。尝试用空白的HTML页面做一个简单的测试,并且只是提醒一下,看看是否有其他问题。
如果你要使用这个包含了框架的定义HTML页面中,记住,没有文件在那里,你将不得不使用
回答:
你试图把jQuery代码内Info.aspx页面?
回答:
我不知道这是否是最好的解决方案,但是当我删除$(document).ready()
并保留其身体时,一切都很完美。
回答:
不知道你在做什么,但我有一个更古老的经典asp应用程序运行在框架外,我最近添加了jQuery功能,它工作的很好。 $(document).ready()在框架内工作正常,但如果您希望在另一个框架中引用DOM,则必须使用框架的onload事件来通知您框架的DOM何时加载。无可否认,我使用了iFrames,但概念应该是一样的。
回答:
如果你想火的onload
事件的框架,然后按照下列步骤:
分配一个
id
和name
每个<frame>
标签。确保id
和name
属性值相同。使用下面的代码来触发
onload
事件的帧的:$("frameName").ready(function() {
// Write your frame onload code here
}
回答:
我想这是我在iframe与DOMContentLoaded有类似的问题。我写了a blog post about it。
回答:
我曾尝试在另一则留言中提到的方法:
$("#frameName").ready(function() { // Write you frame on load javascript code here
});
,并没有为我工作。
这个做:
$("#frameName").load(function() { //code goes here
});
即使该事件不会很快火 - 等待,直到图像和CSS已加载也。
回答:
下面的方式也为我工作:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> <script>
$(window.parent.frames[0].document).ready(function() {
// Do stuff
});
</script>
的[0]指示它是文档中的第一帧中,[1]将是第二帧,等等。如果您无法控制标记,这样做特别好,并且它仍在使用文档。
回答:
我已经工作了很长时间这篇文章...这是我的解决方案。
的test.html
<!DOCTYPE HTML> <html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
document.write('<frameset><frame name="frame_content" id="frame_content"></frame></frameset>');
$('#frame_content').attr('src', 'test2.html');
$('#frame_content').load(function()
{
if('${"#header"}' != '') {
$("#header", frame_content.document).remove();
}
});
if($('#frame_content').complete) $('#frame_content').trigger("load");
</script>
</head>
</html>
test2.html
<!DOCTYPE HTML> <html>
<head>
</head>
<body>
<div id="header">You will never see me, cause I have been removed!</div>
</body>
</html>
回答:
我知道这是一个老话题。但为了帮助你们中的一些人达到此页面,这里是我的解决方案:
$($("#frameName")[0].contentWindow.document).ready(function() { // Write you frame onready code here
});
回答:
无需修改标记。只需修复选择器。它应该是:
$("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
以上是 JQuery和框架 - $(document).ready不起作用 的全部内容, 来源链接: utcz.com/qa/263443.html