在FF中使用iframe的javascript错误

时间:2012-06-15 14:26:14

标签: javascript

我有以下代码,

var contentFrame = window.document.getElementById("globalSearch");
var content = contentFrame.document.getElementById("globalSearch");
请问有人可以告诉我上面两行之间有什么区别。在FF我收到错误'contentFrame.document未定义'

我的表格如下所示,

<form id="Search" action="<c:url value="/search" />" method="get">
<input .... />           
<iframe style="visibility : hidden;position : absolute;top : 0; border : 1px solid WindowFrame;"frameborder="0"            src="<c:url value="/search" />"
id="globalSearch" name="globalSearch"></iframe></form>

无论如何我可以摆脱上述错误吗?如果有人在jquery中为我提供了适用于所有浏览器的等效代码,我会很高兴。

再次感谢你!


实际上,在我的应用程序中,每个页面都使用了一个模板。模板有页眉,页脚菜单html。下面显示的表单在header.html

中定义
<form id="Search" action="<c:url value="/search" />" method="get"> 
  <input .... />            
  <iframe style="visibility : hidden;position : absolute;top : 0; border : 1px solid WindowFrame;" frameborder="0" src="<c:url value="/search" />" id="globalSearch" name="globalSearch"></iframe>
</form>

这就是代码提供全局搜索iframe id(考虑作为父页面的子元素)的原因,如下所示,

var contentFrame = window.document.getElementById("globalSearch"); 
var content = contentFrame.document.getElementById("globalSearch");                                                    

this->content=$(#globalSearch").contents();会在这种情况下有效吗?请澄清。提前致谢。这非常紧迫。请帮忙。

1 个答案:

答案 0 :(得分:0)

var contentFrame = window.document.getElementById("globalSearch");
var content = contentFrame.document.getElementById("globalSearch");

只有第一个陈述才有意义;第二个依赖于第一个,并会在ID为globalSearch的iframe中搜索globalSearch

顺便说一下,你可以稍微缩短第一个陈述:

var contentFrame = document.getElementById('globalSearch')

您无需指定window