假设你的thinyMCE实例是用下面的代码初始化的
// initialize tinyMCE in page
tinyMCE.init({
mode: "textareas",
theme: "advanced"
});
并且您在页面的某处有某种按钮。出于本提示的目的,我不会给它任何 ID,但你可以。现在,使用 jQuery,您可以轻松地将事件处理程序附加到该按钮,该按钮将通过 AJAX 调用您的服务器并获取您想要放置 tinyMCE 编辑器的内容。完成这项工作的代码如下所示。
$(function() {
$("button").bind("click", function() {
var ed = tinyMCE.get('content');
ed.setProgressState(1); // Show progress
$.getJSON('/page/12.json', { /* your data */
}, function(data) {
ed.setProgressState(0); // Hide progress
ed.setContent(data["body"]);
}
});
});
});
您可以在 button.click 上看到 ajax 将调用 url /page/12.json 它将返回 JSON 作为响应。该响应的最低限度可能是:
{
title: "Page title",
body: "<html><head><title>Page title</title>......</html>"
}
我附加了匿名函数作为回调,它将处理来自服务器的响应。并隐藏在 ajax 调用之前显示的进度指示器。
关于 JSON
JSON 是 JavaScript Object Notation 的缩写。这是JavaScript代码!!!所以不要对此感到困惑。使用 JSON,您可以创建 javascript 对象,该对象可以具有您稍后可以在代码中使用的属性来访问该对象“持有”的特定数据的和平。如果对您来说更容易,您可以将其视为某种数据结构。
无论如何,为了向您展示如何手动创建此 JSON,请查看以下示例
var data = new Object();
data.title = "Page title";
data.body = "<html....";
或
var data = {
title: "page title",
body: "<html...."
};
其实是一样的。
如果您想了解有关 JSON 的更多信息,请将您的浏览器指向 http://json.org。
===== 替代 =====
json 解决方案的替代方案可能只是对服务器的平面 ajax 调用,响应可以是纯 HTML(根据您的问题,我可以假设您已经拥有类似的东西)。因此,除了调用$.getJSON,您还可以使用$.get(url, callback); 来做同样的事情。我的答案顶部的代码不会发生巨大变化。您将获得 HTML 字符串,而不是获取 JSON 作为响应。
----------- 底线 -------
我更喜欢 JSON,因为它以后可以很容易地用其他属性扩展,所以以后没有痛苦的代码更改;)