我无法弄清楚我在哪里出错了。在其他浏览器中,它可以正常工作:
function main__pageeditor_new_body_SetUrl()
{
function getUrlParam(parentObject, paramName)
{
var reParam = new RegExp('(?:[\?&]|&)' + paramName + '=([^&]+)', 'i') ;
var match = parentObject.location.search.match(reParam) ;
return (match && match.length > 1) ? match[1] : '' ;
}
var funcNum = getUrlParam(this, 'CKEditorFuncNum');
this.opener.CKEDITOR.tools.callFunction(funcNum, arguments[0]);
}
但是在IE中你会收到这个错误:
'this.opener.CKEDITOR' is null or not an object
为什么这不起作用?
答案 0 :(得分:1)
对于任何想知道的人 - 这有很大的帮助:
http://docs.cksource.com/CKEditor_3.x/Developers_Guide/File_Browser_(Uploader)/Custom_File_Browser
答案 1 :(得分:0)
window.opener并不总是在IE8中工作。我认为您可以将站点放在“受信任区域”中,以便它允许window.opener工作。
如果两个窗口位于不同的域中,则由于原始策略相同,它将无法在任何浏览器中运行。
答案 2 :(得分:0)
请一次测试什么是NULL ??
this.opener
or
this.opener.CKEDITOR
答案 3 :(得分:0)
window.opener正常工作。 试穿 Window Opener
接下来,我想在CKEDITOR上尝试这个,所以我去了CKEDITOR DEMO
在那里,我使用开发人员工具栏打开了一个弹出窗口' window.open ',在弹出窗口中,我执行了以下代码,工作正常。
>>String(this.opener.CKEDITOR.tools.callFunction);
响应
"function(f){var g=e[f];return g&&g.apply(window,Array.prototype.slice.call(arguments,1));}"
此时一切都适合我,我会要求您上传您的代码。
答案 4 :(得分:0)
我遇到了问题window.opener在http:/ localhost:8080中运行的Web应用程序中获取null。如果我放置了IP地址/主机名而不是localhost,那么这个问题就不会发生了。
让我们检查一下,我坚信这个解决方案很有帮助。
答案 5 :(得分:-1)
您的“此”上下文可能会发生变化,具体取决于您使用该功能的方式。
改变:
this.opener.CKEDITOR.tools.callFunction(funcNum, arguments[0]);
为:
window.opener.CKEDITOR.tools.callFunction(funcNum, arguments[0]);
这样可以解决吗?