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 设置为忽略它们?

帮助会很棒。

4

3 回答 3

2

有几个选项,具体取决于您对脚本正在执行的操作的舒适程度以及它们对您的应用程序的重要性。您提供的链接似乎有不少例外来自 Google 广告服务;还有其他来自不同来源的权限被拒绝。

您可以通过在遇到第一个异常时打开异常设置(如下所示)或转到 Visual Studio 菜单中的 Debug>Exceptions... 选项 (Ctrl+Alt+E) 来控制哪些异常将触发调试器中的中断.

在此处输入图像描述

您还可以在 iframe 上设置沙盒属性。例如,设置以下内容消除了所有异常:

<iframe src="http://imgur.com/Yk299" sandbox="allow-top-navigation"></iframe>

当然,这可能会对应用程序的安全性产生重大影响,因此仅对内容经过您审查和信任的网站执行此操作。

于 2013-01-07T18:12:48.043 回答
1

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

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

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

于 2014-02-14T20:11:59.993 回答
0

他们不能被忽视。该保护内置于网络浏览器中。您不能访问具有不同域的 iframe 的内容。您必须构建自己的渲染器。

于 2013-01-07T16:50:27.700 回答