2015-01-08 164 views
0

我有一個Sitecore站點,我需要實現一個iframe通信解決方案,它要求我在父頁面(sitecore)中的JS中設置document.domain =「mydomain.com」和子頁面(外部託管在子域上)。JS中的document.domain Sitecore頁面編輯器

如果我把document.domain =「mydomain.com」放在JS的任何地方,JS中的頁面編輯器和預覽都開始拋出像五彩紙屑這樣的JS錯誤,而且大多數功能都被破壞了。當我刪除它時,一切都恢復正常。很奇怪。

有關爲什麼會發生這種情況以及我們如何解決它的任何想法?謝謝。

回答

0

根據https://developer.mozilla.org/en-US/docs/Web/API/document.domain您只能將document.domain設置爲當前站點的「superdomain」,因此任何跨域欺騙都不起作用。我沒有看到你正在使用哪些域名,所以如果不知道,我只能在這裏猜測。

如果您確實想進行跨域通信,您可以給window.postMessage一個鏡頭https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage

+0

感謝您的回覆。只要iframe頁面是子域,document.domain就可以正常工作。我們在很多網站上使用這種方法(非Sitecore)。這是我們第一次嘗試它的Sitecore網站......仍然好奇爲什麼添加一行代碼讓Sitecore失去了它的思想:)。無論如何,我們決定使用postMessage來解決我們的問題。謝謝! – Scott

相關問題