日期:2014-05-16  浏览次数:20459 次

100分求助!JS在代码同一个域中访问页面中的frame的document对象提示没有权限?
如题,我在页面中用JS代码访问同域中一个frame,首先判断window.top.frame名是否存在,true的话在访问window.top.frame名.document对象,这个时候几报错了,提示没有权限.
  我估计是那个frame已经加载了,所以判定为true.但是又没有加载完毕,所以document对象访问不到.
  请教下大家有没有解决的办法,多谢 !很急,再线等!
分不多,再次表示感谢!

------解决方案--------------------
写到
window.onload = function () {
//这里就可以了....
}
------解决方案--------------------
几种方法解决
1、把代码写在iframe里,取代码的时候用parent
2、写在onreadystatechange事件中,例如
<iframe name= "iframe1 " id= "iframe1 " src= "http://www.google.cn ">
</iframe>
<script language=javascript>
var obj=document.getElementById( "iframe1 ")

obj.onreadystatechange=function()
{
alert(obj.readyState)
if(obj.readyState== "complete ")
{
alert( "ok ")
//在这里写
}
}


</script>
3、把代码写在setTimeout函数中,拖延一点时间
------解决方案--------------------
写在onreadystatechange里是不错的选择。同时提供另外一种方法:
比如:
(function(){
if(iframe.document.body){
doSomething();
}else{
setTimeout(arguments.callee,10);
}
})();
这样代码就会自动在对象加载完后运行了。