load页面中的wysiwyg编辑器

wysiwyg editor within .load page

本文关键字:wysiwyg 编辑器 load      更新时间:2023-09-26

我面临以下问题:

我有一个index.html页面,里面有一个div#内容。在这个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;   
});

现在,这一切都很好,加载的页面会显示出来。虽然在我加载的一个页面中,我包含了一个wysiwy编辑器(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编辑器显示完美,因此路径设置正确。还用我的索引中包含的wysiwyg js进行了测试

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

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

感谢allready

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

这些所见即所得编辑器中的大多数(全部?)都使用iframe。我不确定他们是如何决定它的大小的,但我想,由于你发送了一个文本区域作为参数,他们使用了该文本区域的尺寸。因此,请确保文本区域的大小足够大,并检查注入的iframe是否足够大。

编辑:

当编辑器启动时,如果不知道文本区域在哪里,很难确定问题所在(请提供更多代码?)。

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

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

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