主题: 设置了 document.domain 后权限问题 |
作者: Ankyo Lin, 发布日期: 2011-11-20 16:14:45, 浏览数: 7016 |
KindEditor版本: 4.0.3 BUG再现步骤:
项目类似于QQ邮箱,每个页面都设了 document.domain
编辑器会出现没有权限的问题
1. 上传图片时,访问 upload_json 这个文件就会提示没权限
虽然我解决了这问题,就是在 upload_json 返回请求呈现页面时加了一句
Response.Write("<script type="text/javascript">document.domain = 'xxx.com';</script>");
但是觉得很别扭,不是好的解决方案
2. 还有,就是word格式粘贴也会提示没权限
3. 还有,就是回发数据后,再访问编辑器的的变量也会提示没权限
例,当前页的一个 iframe 回发了数据,当前页是没刷新的,那个回发了 iframe 这样访问就会提示没有权限
parent.editor
期望结果: 期望解决设置 document.domain 的权限问题 |
作者: Ankyo Lin, 发布日期: 2011-11-20 16:17:35 |
还有,因为我看了源码是动态写 iframe 的,也尝试过在动态创建 iframe 时,给 iframe 的 document 设置 domain,但是这方法不行
|
回复 |
作者: Roddy, 发布日期: 2011-11-20 18:06:20 |
以前偷懒只处理了加载时的document.domain,具体功能有iframe时没有做处理。 动态生成iframe时需要做一些处理的,可以参考 kindeditor.js里的KEdit.prototype.init,通过isDocumentDomain搜索能看到。 |
回复 |
作者: Ankyo Lin, 发布日期: 2011-11-21 15:24:09 |
回复Roddy:
这个 isDocumentDomain 我试了多次,试过直接给设为 true,还是不行
我研究了一下 CKEditor,它里面有一个 isCustomDomain 的,估计是针对设置了 document.domain 的情况
还有,你们代码里获得当前域名,可以直接这样写 location.hostname |
回复 |
作者: Ankyo Lin, 发布日期: 2011-11-22 09:36:57 |
已有比较好的办法解决问题
就是担心你们升级了,我又要改 |
回复 |
作者: 踏雪追魂, 发布日期: 2012-05-21 09:58:34 |
什么解决方法啊,说一下啊
|
回复 |
作者: 踏雪追魂, 发布日期: 2012-05-21 10:08:19 |
回复Ankyo Lin:什么解决方法啊,说一下啊
|
回复 |
作者: jasen2002, 发布日期: 2012-08-09 11:58:24 |
改一下这个方法就行了。 function _iframeDoc(iframe) {iframe = _get(iframe); var obj= null; try{ obj = iframe.contentDocument || iframe.contentWindow.document; }catch(j) { iframe.src=iframe.src; if(_IE && _V < 7){ window.showModalDialog('javascript:document.write("<script>window.setTimeout(function() {window.close();},50);</script>")'); } } return obj || iframe.contentWindow.document; }
//这一句不能少,少了就是不行 iframe.src=iframe.src;
|
回复 |