【问题标题】:document.domain in JS breaks Sitecore Page EditorJS 中的 document.domain 会破坏 Sitecore 页面编辑器
【发布时间】:2015-01-08 04:03:14
【问题描述】:

我有一个 Sitecore 站点,我需要在其中实现一个 iframe 通信解决方案,该解决方案需要我在父页面 (sitecore) 和子页面(外部托管在子域上)的 JS 中设置 document.domain = "mydomain.com" )。

如果我将 document.domain = "mydomain.com" 放置在我网站的任何地方的 JS 中,Sitecore 中的页面编辑器和预览都会开始抛出 JS 错误,例如五彩纸屑,并且大多数功能上它会损坏。当我删除它时,一切都会恢复正常。很奇怪。

关于为什么会发生这种情况以及我们如何解决它有什么想法吗?谢谢。

【问题讨论】:

    标签: sitecore


    【解决方案1】:

    根据https://developer.mozilla.org/en-US/docs/Web/API/document.domain,您只能将 document.domain 设置为当前站点的“超级域”,因此任何跨域恶作剧都不起作用。我看不到您正在使用的域是什么,所以在不知道的情况下,我只能在这里猜测。

    如果您确实想进行跨域通信,您可以试试 window.postMessage https://developer.mozilla.org/en-US/docs/Web/API/window.postMessage

    【讨论】:

    • 感谢您的回复。只要 iframe 页面是子域,document.domain 就可以正常工作。我们已经在许多网站(非 Sitecore)上使用了这种方法。这是我们第一个尝试过的 Sitecore 站点...仍然很好奇为什么添加这一行会使 Sitecore 失去理智 :)。无论如何,我们决定使用 go with postMessage 作为我们的解决方案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多