Javascript Django管理弹出窗口已损坏

Javascript Django管理弹出窗口已损坏,javascript,django,django-admin,cross-domain,cross-domain-policy,Javascript,Django,Django Admin,Cross Domain,Cross Domain Policy,我正在从事一个Django项目,作为良好实践的一部分,我的静态内容和媒体都来自于无cookieless域。当然,为了做到这一点,并且仍然使用谷歌分析等工具,我从www.domain.tld提供所有文档,而媒体来自media.domain.tld,静态来自static.domain.tld 这最初导致了TinyMCE(我选择的wywiwyg编辑器)的问题,但通过编辑tiny_mce.js和tiny_mce_popup.js可以很容易地解决这一问题,包括以下行: document.domain=wi

我正在从事一个Django项目,作为良好实践的一部分,我的静态内容和媒体都来自于无cookieless域。当然,为了做到这一点,并且仍然使用谷歌分析等工具,我从www.domain.tld提供所有文档,而媒体来自media.domain.tld,静态来自static.domain.tld

这最初导致了TinyMCE(我选择的wywiwyg编辑器)的问题,但通过编辑
tiny_mce.js
tiny_mce_popup.js
可以很容易地解决这一问题,包括以下行:

document.domain=window.location.hostname.split('.').splice(-2).join('.');
在顶端。这实际上是将我的主编辑窗口的
document.domain
和TinyMCE弹出窗口设置为domain.tld,而不管它们来源于多深的子域。工作良好(并且便于携带)。(我不关心Array.splice()在客户端浏览器中可能不可用,因为TinyMCE仅用于管理,我们可以控制浏览器)

无论如何,我离题了

例如,在我尝试使用Django管理弹出窗口创建一个新的M2M项目之前,一切都很好。弹出窗口显示正常,但无法正确完成作业,因为弹出窗口的文档域设置为www.domain.tld,而主编辑窗口中的document.domain为
domain.tld
(如上所述)

简单,我想,我只需要将相同的JS代码片段添加到admin的base.html文件的主体中。不行。当在JS控制台中测试时,弹出窗口的document.domain确实会根据我包含的代码片段设置为
domain.tld
,但一旦我尝试保存新对象,它就会被重置回
www.domain'tld
(同样经过测试,在JS控制台中提交后),当然,窗口间通信会出现以下故障:

Uncaught TypeError: Property 'dismissAddAnotherPopup' of object \
[object Window] is not a function`
在弹出窗口中,然后:

Unsafe JavaScript attempt to access frame with URL \
http://www.domain.tld/admin/project/object/16/ from frame with URL \
http://www.domain.tld/admin/project/object/add/?_popup=1. The frame being \
accessed set 'document.domain' to 'domain.tld', but the frame requesting access \
did not. Both must set 'document.domain' to the same value to allow access.
在两个窗口中检查
document.domain
,可以发现以下事实:

主窗口:
domain.tld
弹出窗口:
www.domain.tld
(请记住,提交时已更改)

所以,所有你们的专家都有一个问题,在将结果发布回主窗口之前,是否有一些Django JS代码正在重置弹出框的document.domain?或者,重置是使用主窗口的窗口对象执行其命令的副作用吗?如果是先前的,你能告诉我这将在哪里吗?我似乎找不到它可能在哪个文件中。如果是后者,那么拥有无cookieless域+TinyMCE+Django管理弹出窗口的解决方案是什么

非常感谢您提前考虑这个问题