wloadiwyg编辑器.load页面

时间:2012-08-25 19:52:53

标签: javascript jquery ajax wysiwyg

我遇到了以下问题:

我有我的index.html页面,带有div#content。在这个div中,我通过我的js

加载页面
//JavaScript Document
$(document).ready(function() {
    $('#loader').load('pages/loader.php').hide();
    $('#content_container').load('pages/dashboard.php');
    //$('.dashboard_quick_news').load('pages/quicknews.php');
});

$('.content_link').click(function(){
    var href = $(this).attr('href');
    $('#loader').show();
    $('#content_container').hide().load(href).delay(1800).fadeIn('normal');
    $('#loader').load('pages/loader.php').delay(1000).fadeOut();
    return false;   

});

现在一切正常,加载的页面就像它们应该显示的那样。 虽然在我加载的一个页面中,但我包含了一个令人信服的编辑器(Nicedit)

<script type="text/javascript" src="../../nicedit/nicEdit.js"></script>
        <script type="text/javascript">
            bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
        </script>

当我通过索引加载此页面时(使用.load函数),wysiwyg编辑器不显示(也使用TinyMCE测试)。当我只访问页面独立(通过URL)时,所见即所得的编辑器显示完美,因此路径设置正确。还使用我的索引中包含的wysiwyg js进行了测试

为了测试.load页面是否包含javascript,我在wysiwyg编辑器的页面上插入了一个警告。 虽然wysiwyg编辑器没有显示,但此警报确实显示。

有人知道如何解决这个问题吗?

全部感谢

1 个答案:

答案 0 :(得分:0)

您是否检查过生成的DOM并查看编辑器标记是否已附加到您的页面?

这些WYSIWYG编辑器中的大多数(全部?)都使用iframe。我不确定他们如何决定它的大小,但我想,因为你发送textarea作为参数,他们使用该textarea的维度。因此,请确保textarea的大小足够大并检查注入的iframe是否足够大。

编辑:

如果在启动编辑器时不知道你的textarea在哪里就很难找到问题(请更多代码?)。

我认为问题出现在bkLib.onDomLoaded中,它在DOM加载的那一刻运行。但是,jQuery的ready()确实(几乎)做了同样的事情。因此,当您调用load()来获取页面内容时,DOM已经被加载,因此bkLib.onDomLoaded将不会运行。

您需要做的是在请求的.php页面加载后实例化编辑器:

$('#content_container').load('pageWithEditorScript.php', function() {
    nicEditors.allTextAreas();
});