操作位置.在IE9中使用PDF插件



我在IE9中使用Javascript在框架中加载PDF时遇到相当奇怪的行为。文档将加载一次,但任何后续调用都将导致SCRIPT65535: Invalid calling object

我正在构建我的URL从Javascript和通过top.framename.location.href='file1.pdf'加载。如果您从框架中的PDF开始,它将在脚本的第一次调用时触发错误。

所以,看起来你不再被允许修改加载Adobe Reader插件(版本10)的框架的location.href属性。与HTML文档相同的代码可以正常工作。

有没有人知道为什么这种行为被改变,如果有一个解决方案,而不是使用IE8模拟<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"> ?

我也不寻找完全避免Javascript的解决方案。有很多选择,比如在其他地方构建链接并使用target属性加载它,但我真的很想用Javascript来做这件事。

如果你想测试/复制,你可以使用:

<frameset cols="150,*">
<frame src="toc.html"/>
<frame src="about:blank" name="otherframe"/>
</frameset>

和toc.html:

<a onclick="javascript:top.otherframe.location.href='1.pdf'">pdf1</a><br/>
<a onclick="javascript:top.otherframe.location.href='2.pdf'">pdf2</a>

看这里:

http://forum.jquery.com/topic/internet-explorer-9-jquery-and-divx

当我进入IE9开发人员工具(F12)并在脚本选项卡下,单击启动调试按钮,我得到错误的详细信息:SCRIPT65535:无效调用对象脚本块(2),第72行字符4

当你看脚本第72行时,这一行被高亮显示:

appendChildOriginal(元素);

然后我打开IE9,管理插件,在工具栏和扩展下,看Divx, LLC和禁用Divx Plus Web Player HTML5和Divx HiQ和重新启动IE9浏览器。

错误消失了,我的web应用程序工作完美。

有同样的问题

在IE9中,frame对象被一些不包含location属性的PDF对象所取代。所以第二次你不能用location更新框架url。

你可以使用window.open()

来解决这个问题
window.open('1.pdf', 'otherframe');

相关内容

  • 没有找到相关文章

最新更新