灯箱:can';t从iframe访问父javascript对象

灯箱:can';t从iframe访问父javascript对象,javascript,iframe,ckeditor,highslide,Javascript,Iframe,Ckeditor,Highslide,我使用的是一个lightbox(highslide JS/highslide.com),打开它时会显示一个WYSIWYG Javascript编辑器(CKEditor/CKEditor.com)。我这样称呼灯箱(或扩展器): 我的问题是编辑器不能在扩展器中工作-TypeError:parent.window.hs.CKEDITOR未定义 要解决这个问题,我需要在script.php中调用ckeditor.js,这会使扩展器打开缓慢,因为它必须再次拉取js文件,即使父窗口已经这样做了 因此在ifr

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

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

要解决这个问题,我需要在script.php中调用ckeditor.js,这会使扩展器打开缓慢,因为它必须再次拉取js文件,即使父窗口已经这样做了

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

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

CKEDITOR.replace('bodytext',
{
基本路径:'/admin/ckeditor/'
});
我尝试在CKEDITOR前面加上
'parent'、'parent.window'、'window'
前缀,但都没有成功

如果有解决办法


谢谢大家!

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

在父页面中,我包括编辑器的javascript:

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

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

嗨,我让它以这种方式工作,在我的lightbox中再次调用js。JS文件超过300kb,所以我只想将其加载到父页面中,从而打开lightbox。这是不可能的吗?当你第一次加载文件时,它将被浏览器缓存。这是我认为应该发生的事情,但Firebug显示,每次我打开lightbox时,它都会将其全部拉下来,结果是200。事实上,我刚刚想到了一件事,稍后我会在办公室报告:)当Firebug打开时,它可能会禁用缓存。使用Chrome开发工具也可以尝试同样的方法,但请确保禁用“在开发工具打开时禁用缓存”选项。实际上-这可能更复杂,因为服务器的设置也可能会影响结果。在任何情况下,如果所有配置都正确,文件都应该被缓存。嗨,在写我的最后一条评论时,我确实想检查服务器配置,是的,我在.htaccess中禁用了上面目录中某个JSON的缓存,并且忘了它已传播到我的lightbox。Firebug足够在家里看到它,现在在办公室我可以确认。我将把我的JSON移动到另一个目录,并在那里放置一个local.htaccess。谢谢
(function(){if(window.CKEDITOR&&window.CKEDITOR.dom)return;if(!window.CKEDITOR)window.CKEDITOR=(function()
<script type="text/javascript">
CKEDITOR.replace( 'bodytext' ,
{
basePath : '/admin/ckeditor/'
});
</script>