在使用Javascript在框架中加载PDF时,我在IE9中遇到了相当奇怪的行为。文档将加载一次,但任何后续调用都将导致SCRIPT65535: Invalid calling object
。
我正在使用Javascript构建我的网址并通过top.framename.location.href='file1.pdf'
加载。如果您在框架中以PDF开头,则会在第一次调用脚本时触发错误。
因此,您似乎不再允许修改加载Adobe Reader插件(版本10)的框架的location.href
属性。与HTML文档相同的代码工作正常。
有人知道为什么会改变这种行为,并且除了使用<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">
使用IE8仿真之外还有解决方法吗?
我也不是在寻找完全避免使用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>
答案 0 :(得分:0)
看看这里:
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浏览器。
错误消失了,我的网络应用程序运行正常。
答案 1 :(得分:0)
有同样的问题。
在IE9中,框架对象被一些不包含location
属性的PDF对象替换。因此,第二次无法使用location
更新框架网址。
您可以使用window.open()
解决此问题window.open('1.pdf', 'otherframe');