tinymce与子域 跨域

本文不会去讨论不同域之间的跨域,但是会谈到父子域等域处理上的问题,主要结合的是tinymce编辑器。

准备将系统中的一些静态部分分离出去,tinymce这个大块头首当其冲。
分离出去后自然要面临跨域问题。
初始化编辑器没有问题,但是部分编辑器插件将无法使用,这些插件都为pop模式。

父子域名,子域间
例如:我要将静态部分、主程序部分别分部署到  
http://static.a.com http://www.a.com
由于以pop模式弹出的窗口位于域static.a.com,主窗口位于:www.a.com.这样导致了权限上的问题。

解决方案子域之间的跨域问题,当然就是设置document.domain属性,本来准备自己来实现。
测试后发现tinymce在tiny_mce_popue.js 中已经实现了。通过查询参数mcd_rdomain来将主域传递到
弹出窗口。

IP地址,不同端口
子域之间的跨域问题得到解决,那么如果采用IP形式,不同的端口呢?针对这个tinymce无法
自动来实现跨域(实际这个已经不是跨域的问题了),这样我们可以手动设置域:
例如设置成:document.domain = "50.6.2" .(IP:192.50.6.2)
因为使用IP通常为内部开发过程。

注意点

一、

针对tinymce内置的实现,提出一点问题: 内置获取域的方式为:
// User already specified a document.domain value
if (document.domain && lo.hostname != document.domain)
    tinymce.relaxedDomain = document.domain;

// Setup document domain if tinymce is loaded from other domain
if (!tinymce.relaxedDomain && tinymce.EditorManager.baseURI.host != lo.hostname && lo.hostname)
    document.domain = tinymce.relaxedDomain = lo.hostname.replace(/.*\.(.+\..+)$/, '$1');

他是取域名的后面两个部分.
例如域名为 www.a.com.cn
取到的域为com.cn,这样他会设置当前的域为com.cn以及将所有弹出窗口的域也设置成com.cn
这样的设置显然处在一个极大的安全问题。
所以强烈建议如果需要设置document.domain请手动设置。


二、
对document.domain的设置是只能往高级设置而不能逆过来的 。
例如:static.a.com.cn
我可以设置成 a.com.cn.但是设置成a.com.cn后无法再设置成static.a.com.cn

 

转载于:https://www.cnblogs.com/5yplan/archive/2009/01/21/1379293.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值