Lightbox:无法从iframe访问父javascript obj

时间:2015-02-26 10:59:58

标签: javascript iframe ckeditor highslide

我正在使用灯箱(highslide JS / highslide.com),当打开时会显示一个WYSIWYG Javascript编辑器(CKEditor / ckeditor.com)。我这样称呼灯箱(或扩展器):

<a href="script.php" onclick="return hs.htmlExpand(this,{objectType:'iframe'})">click here</a>

在父页面中,我为编辑器添加了javascript:

<script type="text/javascript" src="ckeditor/ckeditor.js"></script>

ckeditor.js的第一行(截断)是:

(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;if(!window.CKEDITOR)window.CKEDITOR=(function()

我的问题是,编辑器在扩展器中不起作用 - TypeError:parent.window.hs.CKEDITOR未定义

为了解决这个问题,我需要调用script.php中的ckeditor.js,这会使扩展程序变慢,因为它必须再次拉出JS文件,即使父窗口已经这样做了。

因此在iframe中调用CK编辑器:

<script type="text/javascript">
CKEDITOR.replace( 'bodytext' ,
{
basePath : '/admin/ckeditor/'
});
</script>

我尝试使用'parent' , 'parent.window', 'window'前缀CKEDITOR但没有成功

如果有任何解决方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定我是否正确理解了您的问题,但基于:

  

在父页面中,我为编辑器添加了javascript:

我的回答是 - 您必须将ckeditor.js包含在您使用它的同一文档中。