susisoy
小狐狸
小狐狸
  • UID15579
  • 注册日期2006-11-08
  • 最后登录2006-11-20
  • 发帖数1
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:1831回复:0

这个错误是为什么?顺便问一下contentDocument 又是什么东西?

楼主#
更多 发布于:2006-11-08 17:20
contentDocument 是什么东西?

我在用 iframe 时无法访问其内部元素,之后在网上找了一下就找到了这个东东,但不知是不是 document 对象,但无论是不是,我这儿还有另一个问题,很纳闷儿,如下:


<script>
var is_msie=(navigator.appName=="Microsoft Internet Explorer")?true:false;

var resdocument=(is_msie?frames("resiframe").document:frames["resiframe"].contentDocument);

function resHandle(type){
if(type==1){ // 显示资源列表
resdocument.getElementById("upload").style.display="none";
resdocument.getElementById("list").style.display="block";
}else if(type==2){ // 显示资源上传
resdocument.getElementById("list").style.display="none";
resdocument.getElementById("upload").style.display="block";
}else{ // 隐藏资源管理
resdivVisibility();
focus();
}
}
</script>


IE 中没问题,但 Firefox 错误如下:
错误: resdocument.getElementById("list") has no properties



但我要是改成如下就没问题,IE和Firefox都正常:
<script>
var is_msie=(navigator.appName=="Microsoft Internet Explorer")?true:false;

function resHandle(type){
var resdocument=(is_msie?frames("resiframe").document:frames["resiframe"].contentDocument);

if(type==1){ // 显示资源列表
resdocument.getElementById("upload").style.display="none";
resdocument.getElementById("list").style.display="block";
}else if(type==2){ // 显示资源上传
resdocument.getElementById("list").style.display="none";
resdocument.getElementById("upload").style.display="block";
}else{ // 隐藏资源管理
resdivVisibility();
focus();
}
}
</script>


我只看出来区别在于:
前者:resdocument 为一个全局变量,
后者:resdocument 为 resHandle 函数里的一个局部变量。

另外,两无论是哪个,在 resHandle() 中添加 alert(resdocument) 均输出 IE(object),Firefox(HTMLIframeDocument)
游客

返回顶部