javascript - TinyMCE 不启动 ajax 加载的文本区域

标签 javascript jquery html ajax tinymce

我使用$.ajax()将这段html加载到div中

<div class="board-container">
    <form method="post" action="functions.php">
        <input type="hidden" name="function" value="set_boards">
        <div class="row-fluid">
            <div class="span6">
                <h3 class="dark">Student Board</h3>
                <textarea id="board_students" name="board_students">

                </textarea>
                <br>
            </div>
            <div class="span6">
                <h3 class="dark">Instructor Board</h3>
                <textarea id="board_instructors" name="board_instructors">

                </textarea>
                <br>
            </div>
        </div>
        <a href="#" class="btn btn-inverse btn-large btn-center">Update Boards</a>
    </form>
</div>

<script src="libs/tinymce/tinymce.min.js"></script>
<script src="js/board.js"></script>

在 board.js 中,只有一个 TinyMCE 启动函数。

$(function()
{
    tinymce.init({
        menubar : false,
        height: 700,
        selector: "#board_students"
    });
});

由于ajax请求,ready()函数应该被自动调用。我已经用警报进行了测试,我知道该函数被调用。
如果 html 默认位于 div 中,则该代码可以工作,但是当通过 ajax 加载时,不会发生任何情况。这是为什么?

最佳答案

发生这种情况是因为你的ajax异步加载内容,而你的微小初始化函数同步发生,可能是初始化发生在内容放入你的dom之前。另一件事是你不应该在 html data 中加载脚本。 解决这个问题

如果你想异步加载脚本意味着你必须使用 js 创建一个脚本标签元素,例如

    var jsonp = document.createElement("script");
    jsonp.type = "text/javascript";
    jsonp.src = "libs/tinymce/tinymce.min.js";
    document.getElementsByTagName("body")[0].appendChild(jsonp);

或者您可以在页面本身中包含 tinymce.min.js 并在内容加载后初始化 div,如

$.ajax({
         url: url,
         type: type,
         data: data,
         success: function(htmlData){
              $('#DivId').append(htmlData);
              //here internalize tiny mice when its available in dom   
              tinymce.init({
                 menubar : false,
                 height: 700,
                 selector: "#board_students"
              });
         }
   });

试试这个,让我知道这是否有效......!!!

关于javascript - TinyMCE 不启动 ajax 加载的文本区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19998084/

相关文章:

javascript - 如何在 three.js 中使用 Three.Triangle()

javascript - 使用 v-for 反向循环数字范围?

jquery - 获取雅虎!使用 JQuery 和 Google API 的财经 RSS 错误

javascript - HTML:输入按钮在繁忙的网页上卡住

javascript - 如何动态移动 HTML 页面上的按钮?

javascript - 如何从绑定(bind)到具有该元素 id 的元素的类中调用函数?

javascript - DataTables循环遍历表并删除特定列中包含特定字符串的所有行

Javascript RegEx 使用全局修饰符产生不寻常的结果

javascript - 如何使用 javascript/jquery 从本地文件夹自动加载多个图像?

html - 带有滚动条的两列元素