WinJS - 忽略 iframe 中的 JavaScript 错误

4
我正在构建一个使用iframe显示网页的WinJS应用程序。在测试和运行应用程序时,我遇到了“访问被拒绝”的错误。我并不想与iframe内容交互,只是想显示网页。
这是我在应用程序中显示外部网页的方式。
<iframe src="http://imgur.com/Yk299"></iframe>

这是错误抛出的一个示例。

Exception was thrown at line 17, column 363 in       
http://partner.googleadservices.com/gampad/google_ads_gpt.js

0x80070005 - JavaScript runtime error: Access is denied.

我不知道如何处理这个问题。

如果这些错误可以被忽略,是否有办法设置Visual Studio忽略它们?

帮助将是非常好的。

3个回答

2
根据脚本的功能和对应用程序的重要性,有几种选择。从您提供的链接中看起来,有很多异常是由Google广告服务引起的;还有其他来自不同来源的权限被拒绝的异常。
您可以通过打开异常设置(如下所示)或转到Visual Studio菜单中的“调试>异常...”选项(Ctrl+Alt+E),来控制哪些异常会触发调试器中断。

enter image description here

您还可以在 iframe 上设置 sandbox 属性。例如,设置以下内容可以消除所有异常:
<iframe src="http://imgur.com/Yk299" sandbox="allow-top-navigation"></iframe>

当然,这对应用程序安全具有潜在的重大影响,因此仅针对您已经审核并信任其内容的网站进行此操作。

非常感谢您抽出时间来帮助我。这些错误让我疯狂了,同时我也学到了一些新东西。 - RadiantHex

1
为什么不使用WinJS WebView,例如:

<x-ms-webview id="webview" src="http://www.google.com" style="width: 1024px; height: 768px;">
</x-ms-webview>

他们说这是从WinJS应用程序内部引用外部页面的首选方式。

0

它们不能被忽略。这种保护是内置于网络浏览器中的。您不允许访问具有不同域的iframe的内容。您必须构建自己的渲染器。


我并不是试图访问iframe的内容。问题在于iframe内部的JavaScript错误干扰了应用程序的调试,而这些错误在Chrome/IE10/Firefox上并不会出现。 - RadiantHex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接