2011-04-14 74 views
3

我們的網絡應用程序(基於HTML5,SVG & JS)在除谷歌瀏覽器以外的所有瀏覽器中運行良好。不安全的JavaScript嘗試訪問谷歌瀏覽器中的框架

在Google Chrome瀏覽器中,正常的javascript事件運行良好,但是,所有附加到iFrame的javascript事件都未執行。我們得到的錯誤在控制檯:

Unsafe JavaScript attempt to access frame 

目前,該應用程序在本地託管和室內測試過程中這個問題出現了。

使用谷歌搜索引發了很多帖子,但沒有任何具體的解決方案。有什麼建議麼?

+0

請提供頁面和JavaScript代碼的源代碼。這將更容易得到有用的答案(而不是像我這樣:) :) – 2011-04-14 08:20:13

回答

16

作爲一項額外的安全措施,Chrome將每個「文件」路徑視爲自己的起源,而不是將整個「文件」方案視爲單一來源(這是其他瀏覽器所做的)。此行爲僅適用於「文件」網址,您可以通過在啓動時傳遞- 允許文件訪問文件開關,強制Chrome恢復爲單個本地來源(如其他瀏覽器)。

你可以找到與這裏描述的本地起源相關的風險的更多信息:http://blog.chromium.org/2008/12/security-in-depth-local-web-pages.html

+0

謝謝賈斯汀。我想你們倆(弗拉季斯拉夫)都在這裏。我們也在考慮它與文件位置有關。接受你的答案。 – Kayote 2011-04-18 01:46:54

+2

這簡直就是谷歌阻止本地網絡應用程序的方式,並強制人們使用網絡服務器,谷歌可能只是將文件夾名稱視爲同一來源,這會讓生活變得更加輕鬆。 – 2012-10-21 12:33:14

+0

這太可笑了。此安全「功能」有效地防止了_any possible_在本地存儲的網站中存在任何腳本。即使是命令行參數來抑制這種行爲本身聽起來也很荒謬(允許從文件訪問文件?什麼?) – rustyx 2013-04-21 14:34:43

4

請確保iframe和主頁都使用相同的協議(即同時使用https或同時使用http,但不混合)並且位於同一個域(即www.example.com和not example.com和dev.example.com)。也有可能會嘗試使用file://協議,這也會導致此消息。

+0

感謝弗拉迪斯拉夫,使用相同的協議和相同的領域。該文件://是有趣的一點。 – Kayote 2011-04-18 01:45:42

+0

這對我有用 - 並讓我意識到我正在瀏覽fb http。 Wierd ... – 2012-06-22 18:16:30

相關問題