dom引用只能在IE中正常工作

时间:2011-10-25 16:04:32

标签: javascript html variables

我有一个javascript函数,我从我页面中的图像onClick事件调用。

基本上,该函数设置一个引用同一页面内元素的变量。

这里是如何调用该函数(注意,html是使用PHP打印的,但不要认为这对html本身有任何影响):

 echo "<img src='site/images/apps/show.gif' onClick='apps()' id='appbutton' style='#'>"; 

这是脚本引用的内容:

<iframe frameborder="0" name="app_frame" src="site/apps.html" width="0%" height="100%" scrolling="no"></iframe>

最后,以下是它的引用方式以及使用它做了什么:

<script type="text/javascript">
 function apps()
 {
 var element = document.getElementById("app_frame");
 if (element.width == '0%')
 {
    parent.document.getElementById("frame").setAttribute("width","100%");
    parent.document.getElementById("app_frame").setAttribute("width","0%");
    parent.document.getElementById("appbutton").setAttribute("src","site/images/apps/show.gif");
parent.document.getElementById("wthrbutton").style.visibility="hidden";
 }
 else
 {
    parent.document.getElementById("frame").setAttribute("width","65%");
    parent.document.getElementById("app_frame").setAttribute("width","35%");
    parent.document.getElementById("appbutton").setAttribute("src","site/images/apps/hide.gif");
    parent.document.getElementById("wthrbutton").style.visibility="visible";
 }
 }
 </script>

主要问题在函数的第一行,var element = document.getelementbyid。

Firefox,Chrome和Safari都有这方面的问题,而且似乎都没有设置变量,这使得脚本的其余部分无用,因为整个过程围绕变量。

任何人都知道将该元素设置为可在这些浏览器中使用的变量的任何其他方式吗?

由于

1 个答案:

答案 0 :(得分:2)

这是因为app_frame的id没有任何内容。您已将iframe的名称设置为app_frame。将您的iframe代码更改为:

<iframe frameborder="0" name="app_frame" id="app_frame" src="site/apps.html" width="0%" height="100%" scrolling="no"></iframe>

An article pointing out this quirk in IE

MSDN's doc on getElementById states it returns names or id