如何让TinyMCE弹出窗口在Django上运行,其中“静态”和“动态”页面是从不同的域提供的?

我遇到了TinyMCE和Django的问题.我正在使用TinyMCE模块进行基本的表单字段支持.

当TinyMCE想要使用弹出窗口时出现问题:

在我的开发环境中,提供静态页面

static.wdw.ms.local:8888

和Django页面由wdw.ms.local:8000提供

(在制作中,.local:XXXX被删除)

如果我单击html按钮中的编辑,(或拼写检查或任何有弹出窗口的内容),弹出窗口将失败. Firebug告诉我“tinymce”.是null(tinymce对象)

我编辑了tiny_mce_popup.js并尝试了这些设置

document.domain =’wdw.ms.local:8000′;
以及’wdw.ms.local’,’static.wdw.ms.local’,’static.wdw.ms:8888′

他们都给出了这个错误(如Firebug中所示):

Permission denied for <http://wdw.ms.local:8000> to get property Window.tinymce from     <http://wdw.ms.local:8000>.
[Break on this error] var tinymce=null,tinyMCEPopup,tinyMCE;ti...nyMCEPopup.init();    
tinyMCEPopup._wait();\ntiny_mce_popup.js (line 5)

有关如何使其工作的任何想法?

(之前已经在这里提出了类似的问题,但所有的解决方案都涉及到改变那个document.domain设置,这对我不起作用.如果你查看这些类似问题的评论,你会注意到很多其他人已经无法让这个工作)

最佳答案 将其添加到页面上的tinyMCE.init调用之前:

document.domain = 'mydomain.com';
tinyMCE.init({
   ...
});

然后将tiny:mce_popup.js中的值更改为:

document.domain = 'mydomain.com'; 

注意:此解决方案适用于Django网站.

参考:http://wiki.moxiecode.com/index.php/TinyMCE:Cross_domain_loading

点赞