2013-01-07 116 views
4

我正在構建一個使用iframe來顯示網頁的WinJS應用程序。WinJS - 忽略iframe javascript錯誤

當測試和運行應用程序時,我遭到「訪問被拒絕」錯誤的轟炸。

我不想與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忽略它們?

幫助會很好。

回答

2

有幾種選擇,取決於您對腳本的操作舒適程度以及對應用程序的重要程度。您提供的來自Google廣告服務的鏈接看起來有不少例外情況;還有其他的來自不同來源的權限被拒絕。

您可以控制哪些異常會在調試器中觸發中斷,當您點擊第一個異常(如下所示)或打開調試>異常...選項(Ctrl + Alt + E)時打開異常設置Visual Studio菜單。

enter image description here

您還可以設置在iframe中sandbox屬性。例如,設置以下消滅了所有的異常:

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

當然,這對應用安全的潛在影響顯著,因此僅適用於您所審覈的內容和信任的網站做到這一點。

+0

非常感謝您抽空幫助我。這些錯誤令我瘋狂,我也學到了一些新東西。 – RadiantHex

0

它們不能被忽略。該保護內置於Web瀏覽器中。您不允許訪問具有不同域的iframe的內容。你必須建立你自己的渲染器。

+0

我沒有試圖訪問iframe的內容。問題是iframe中的javascript錯誤干擾了應用程序調試+這些錯誤不會出現在Chrome/IE10/Firefox上。 – RadiantHex

1

你爲什麼不使用WinJS的WebView,例如:

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

他們說,這是指從WinJS應用程序內外部網頁的首選方式。