我正在VB6应用程序中使用IE的嵌入式(Active X?)实例。
浏览器显示基于所选人员的人口统计信息(显示为列表)。
一切顺利,直到我尝试从列表中快速选择不同的人(尽可能快地随机点击不同的人)。点击几下后,会出现两个错误。
第一个是“ Internet Explorer脚本错误”
它说:
此页面上的脚本出现错误
行:
字符:
错误:
代码:
网址:
要继续在此页面上运行脚本吗?是|否的
(行,字符,错误,代码,网址均为空白)。
第二个错误直接在第一个错误上弹出。
它说:
“来自网页的消息
此对话框中发生错误
错误:53权限被拒绝“
该页面进行多次ajax调用,并且还包含多个iFrame(我认为这些是原因)。
关于如何调试/解决/避免问题的任何建议都将非常受欢迎。
谢谢!
修改
这是错误的图像
Error http://img84.imageshack.us/img84/3647/errori.png
修改
我得到了一个JScript匿名函数,当我碰巧遇到错误时没有可用的源。
修改
我成功地抓住了一些错误。它们似乎主要来自MicrosoftAjax.js
我的主机应用程序根本没有使用MicrosoftAjax.js,但子iFrame应用程序都是asp.Net应用程序。
答案 0 :(得分:5)
经过大量测试并试图弄清楚我是否真的需要编辑MicrosoftAjax.js来解决问题,我终于找到了一个似乎已经解决了这个问题的解决方案。
我补充说,
<script type="text/javascript">
window.onerror = function (e) { return true; }
</script>
到我通过iFrames进入的应用程序的标题,以及父页面。我做了这些改变已经有两天了,到目前为止一直很好(虽然我需要再过几天的测试才能确认它是100%工作的。)
我之前尝试过这个但没有成功,但这是由于脚本的位置。我有其他脚本(如jQuery和MicrosoftAjax)放在它之前。在我的window.onerror脚本被评估之前,这些脚本引发了错误。
另一个有趣的事情是,无论父页面上的错误处理如何,iFrame错误似乎都会冒出来。所以我进入了我们的代码库,并对我所引入的每个应用程序进行了必要的更改。
最后,我要感谢@Jacob在解决此问题时的初步帮助。
修改强>
只是想补充一点,我宁愿修复错误而不是掩埋它,但为了时间的利益,这是我现在已经解决的问题。
答案 1 :(得分:2)
如果您想要取消Javascript错误,请尝试将Silent
的{{1}}属性设置为WebBrowser
。
答案 2 :(得分:1)
我发现大多数IE“权限被拒绝”错误都与在窗口/框架之间共享Javascript对象有关。由于你通过快速随机点击产生它,我猜这与iframes / windows消失有关,而他们的内容仍然被访问。
可以用来避免这些问题的一种策略是永远不要在帧之间共享任何对象。无论在何处创建对象,该框架都应负责所有操作和对其成员的访问。应通过调用“接口”Javascript函数来完全控制外部访问。
答案 3 :(得分:0)
尝试
WebBrowser1.ScriptErrorsSuppressed = true;