2013-05-07 56 views
2

我正在爲使用JavaScript和HTML的公司構建Windows 8應用程序。我有一個加載公司網頁的iframe,但在嘗試訪問iframe的contentDocument屬性時會得到「訪問被拒絕」。 iframe顯示頁面,但我無法訪問它的屬性(如歷史記錄)。應用程序和網頁都位於同一網絡上的公司內部。我讀過當iframe父頁與iframe中的頁面位於不同域時出現「訪問被拒絕」錯誤。Windows 8 App iframe嘗試訪問Intranet上的網頁內容

  1. 如何獲取應用程序的iframe以訪問contentDocument,因爲它不能在Web服務器上運行?
  2. 有沒有辦法將應用程序設置爲與網頁相同的域?
+0

你想完成什麼,也許有另一種方式?信息是否可以通過postMessage跨越邊界進行傳播? – 2013-05-09 00:14:49

+0

我目前有一個可以完成公司任務的應用程序。有應用程序中的公司網站鏈接,我們不希望啓動IE來查看它們。由於兩個應用程序不能存在於兩個不同的監視器上,因此IE將該應用程序置於後臺,這是我們不想要的。這就是我們使用iframe的原因。我們遇到的問題是,當您在iframe中導航時,應用中的後退按鈕沒有跟蹤導航到iframe中的站點的那些頁面和用戶,無法返回一頁。我想跟蹤這些頁面並將它們添加到應用程序後退按鈕或我創建的一個。 – 2013-05-10 01:15:21

+0

我沒有公司網站的控制權,所以我沒有看到如何讓postMessage工作。不會編碼聽我的消息,因此它可以發送信息返回在網頁上需要?用戶可以通過應用導航到許多頁面。 – 2013-05-10 01:19:46

回答

2

您的本地應用程序將始終運行在不同的上下文中(稱爲本地上下文)。 Web上的HTML內容將位於Web上下文中。

在這裏看到的是什麼更多的上下文信息/是不允許的: Features and restrictions by context

我不知道的方式來設置相同的域名,但你可以在這裏下「來試用列出的技術網頁額外訪問「。我個人並沒有在你的場景中嘗試過。

How to link to external web pages

上下文之間的通信這裏描述通過PostMessage函數一般需要地方:Developing Secure Apps

我會看到,如果你想要的信息可以通過postMessage的傳達。