首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Permission denied错误的解决办法

2012-10-13 
Permission denied异常的解决方法现象:定制一个frame分左右2个帧,左侧是树状菜单展示,通过点击实现右侧页

Permission denied异常的解决方法
现象:

定制一个frame分左右2个帧,左侧是树状菜单展示,通过点击实现右侧页面跳转,frame代码如下:

<frameset cols="200,*" frameborder="no" border="0" framespacing="0" >    <frame src="navigation.bsh" name="menuFrame" scrolling="auto" id="menuFrame" title="menuFrame" />    <frame src="#" name="contentFrame" id="contentFrame" scrolling="auto" title="contentFrame" /></frameset>

当contentFrame要访问的url都运行在Butterfly Server上的时候没有问题,一旦访问外网地址后在回跳其他url就会报异常 Permission denied。

问题分析:

1、创建frame后,我们可以认为menuFrame是左侧帧的句柄,而contentFrame是右侧帧的句柄。

 第一次当我们在menuFrame中调用 parent.contentFrame.window.location

就可以实现contentFrame跳转到任意url,如果我url都在同一域中,contentFrame一直由我们初始化,没有任何问题。一旦url要访问一个外网地址的话,第一次我们初始化了这个contentFrame对象,然后实现跳转,跳转后 contentFrame就会被其他对象初始化,例如跳转到http://www.sohu.com(此步骤不会产生问题)。这之后,contentFrame就不在由我们掌控,而当我们第二次调用parent.contentFrame.window.location的时候,contentFrame的window对象已经指向www.sohu.com, 和menuFrame不在一个域中,浏览器会提示出错“Permission Denied ...”。

解决方法:

在左侧超级链接中要跳转的地址中把contentFrame句柄一直传递,如下:

<a href="www.sohu.com" target="contentFrame">搜狐</a>

这样contentFrame句柄还是一直握在手中,从而解决访问Permission denied异常。

热点排行