我正在构建一个使用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忽略它们?
帮助会很棒。
答案 0 :(得分:2)
有两个选项,具体取决于您对脚本正在执行的操作的舒适程度以及它们对您的应用程序的重要性。对于您提供的链接,Google广告服务似乎有一些例外情况;还有其他来自不同来源的权限被拒绝。
您可以通过在遇到第一个异常时打开异常设置(如下所示)或转到Debug&gt; Exceptions ...选项(Ctrl + Alt + E)来控制哪些异常会在调试器中触发中断Visual Studio菜单。
您还可以在iframe上设置sandbox属性。例如,设置以下内容消除了所有例外情况:
<iframe src="http://imgur.com/Yk299" sandbox="allow-top-navigation"></iframe>
当然,这对应用安全性具有潜在的重大影响,因此仅针对包含您已审核并信任的内容的网站执行此操作。
答案 1 :(得分:1)
为什么不使用WinJS WebView,例如:
<x-ms-webview id="webview" src="http://www.google.com" style="width: 1024px; height: 768px;">
</x-ms-webview>
他们说这是从WinJS应用程序中引用外部页面的首选方式。
答案 2 :(得分:0)
他们不容忽视。该保护内置于Web浏览器中。您不能访问具有其他域的iframe的内容。你必须建立自己的渲染器。