0

我面临以下问题:

我有我的 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 函数)加载此页面时,所见即所得编辑器不显示(也使用 TinyMCE 进行了测试)。当我只是单独访问页面(通过 URL)时,所见即所得编辑器显示完美,因此路径设置正确。还使用包含在我的索引中的所见即所得 js 进行了测试

为了测试 .load 页面是否可能不包含 javascript,我使用所见即所得编辑器在页面上插入了一个警报。此警报确实显示,尽管所见即所得编辑器没有显示。

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

已经谢谢了

4

1 回答 1

0

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

大多数(全部?)这些所见即所得的编辑器都使用 iframe。我不确定他们是如何决定它的大小的,但我想既然您将 textarea 作为参数发送,他们会使用该 textarea 的尺寸。因此,请确保 textarea 的大小足够大,并检查注入的 iframe 是否足够大。

编辑:

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

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

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

$('#content_container').load('pageWithEditorScript.php', function() {
    nicEditors.allTextAreas();
});
于 2012-08-25T20:15:44.460 回答