将富文本加载到通过ajax加载的innerHTML中

时间:2012-11-08 22:18:14

标签: jquery ajax

我有2个div:主div和secondary,这是在点击主div中的链接时加载的innerHTML页面。在辅助div中是通过python Django插入的注释区域。对于该评论区域,我正在尝试应用富文本jquery插件。我知道在使用ajax时,innerHTML页面中的脚本被剥离,只加载内容。我尝试在主div中引用插件,但它在加载ajax页面之前触发,因此仍未应用富文本。有没有办法在加载页面后触发插件?或者解决这个问题的最佳方法是什么?我可以使用onreadystatechange吗?

主页:

<div class="content">
    <div class="main">
                <!-- bunch of content here -->
            </div>
    <div class="main">
                <!-- loads another HTML page -->
            </div>                

我尝试应用富文本的辅助页面表单字段(在单独的HTML页面上):

<p>{{ form.as_p }}</p>

Javascript加载功能:

var url;
$('.linkQuestion').on('click', 'a', function(ev) {
    url = $(this).attr('href');
    $('.answers').load(url, function(){
        $.getScript('https://s3.amazonaws.com/javascript/richTextEditor.js', function() {
            bkLib.onDomLoaded(function() { nicEditors.allTextAreas() }); 
        });

    }); 
return false;
});

要调用插件:

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

我知道已经有很多类似的问题已经问过,我查看了所有这些问题,但我仍然无法让它工作。非常感谢帮助。

2 个答案:

答案 0 :(得分:1)

使用回调并在ajax请求完成后应用插件。

$('.secondary').load(url, function(){
    // call your plugin here on the content. 
}); 

答案 1 :(得分:0)

你可以这样做吗?

$(document).ready(function() {
    var url;
    $('.main a').on('click', function() {
        url = $(this).attr('href');

        $.get(url, function(result) {
            $('.secondary').html(result);
        }

        return false;
    });
}); 

但是,您需要一个class =“secondary”的元素才能将内容放入

<p class="secondary"></p>