2015-10-16 60 views
3

我在我的網站Facebook類似的插件,我試圖通過代碼來獲取Facebook的iframe的conetnt:未捕獲的SecurityError:無法讀取「contentDocument」屬性

iframe[0].contentDocument || iframe[0].contentWindow.document; 

但在控制檯中我得到這個錯誤:

Uncaught SecurityError: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin " http://like2see.co.il " from accessing a frame with origin " https://www.facebook.com ". The frame requesting access has a protocol of "http", the frame being accessed has a protocol of "https". Protocols must match

我做了搜索,我得到這個答案Console displays Uncaught SecurityError所以我很理解,因爲我的網站它沒有使用https,這裏面就有一個解決方案,但我不理解他,也許有人知道另一種解決方案,也可以給我解釋一下那裏提到那個?

+3

錯誤是由您的網站不是「https:// www.facebook.com」引起的 - 您無法跨域讀取內容 – Pointy

+1

這是由於[同源策略](https:// en.wikipedia.org/wiki/Same-origin_policy)。 –

回答

1

除非您禁用瀏覽器的安全功能,否則您不允許跨域和查看Facebook.com上iframe的內容。

在谷歌瀏覽器,你可以用這些啓動標誌禁用安全性,但不建議

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-running-insecure-content --disable-web-security 

加上你的用戶將不會禁用其安全性。

您需要找到另一種方法來做你想做的事情。

關於同源策略的這個other answer可能有助於閱讀。

+0

是否有另一種方式來閱讀javascript的iframe內容? –

+0

僅當它與包含iframe的父頁面位於同一個域中時。抱歉。 – Scott

相關問題