如果这是 TinyMCE 的 JQuery 版本,并且您正在从另一台服务器向运行 Django 的服务器提供媒体(包括 TinyMCE .js 文件),这可能适用:您的浏览器将阻止 TinyMCE 脚本访问 Django 管理员来自提供 TinyMCE 的域的 URL。Safari 的错误控制台是最明确的,例如:
Unsafe JavaScript attempt to access frame with URL http://127.0.0.1/~whatever/django-templates/javascript/tiny_mce/jscripts/more stuffhere/anchor.htm
from frame with URL http://127.0.0.1:8000/admin/flatpages/flatpage/1/.
Domains, protocols and ports must match.
文件中有一个设置tiny_mce_popup.js
说明:
// Uncomment and change this document.domain value if you are loading the script cross subdomains
// document.domain = 'moxiecode.com';
但这对我不起作用。您可以尝试打破规则并从 Django 服务器提供 TinyMCE 脚本,或者将脚本添加到修改后的管理模板的 HTML 中……但我确信有更好的解决方案。我没有耐心尝试,虽然我确定它已经完成,但我找不到让 TinyMCE 跨域工作的解决方案。
然而,由于用户可以使用可视化编辑器生成可怕的 HTML/内联 CSS 修改,其他解决方案可能会更好:Textile(Ruby 的 Redcloth 提供可视化反馈- 也许有基于PyTextile或Python-Textile的类似 Python 实现??),或者标记!(JQuery,所以可能会出现同样的问题)它有一个很好的可视化编辑工具栏。
如果您怀疑这种远离“类似文字”的编辑器的做法,<- 该链接是关于该问题的好文章。
后记:在WMD中有一个很好的 Markdown Javascript 实现,它提供了一个类似于 TinyMCE 的工具栏、语义标记样式(所见即所得- '所见即所得')编辑器快捷方式。GitHub 使用了相关的解决方案。