阅读:1831回复:0
这个错误是为什么?顺便问一下contentDocument 又是什么东西?
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) |
|