讓我們假設你的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阿賈克斯將調用URL /page/12.json
將返回JSON作爲響應。該響應的最低限度可以是:
{
title: "Page title",
body: "<html><head><title>Page title</title>......</html>"
}
我連着匿名函數回調將處理來自服務器的響應。並隱藏在ajax調用之前顯示的進度指示器。
關於JSON
JSON是縮短JavaScript對象符號的。這是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);
來做同樣的事情。我答案頂部的代碼不會發生顯着變化。作爲響應而不是創建JSON,您將獲得HTML格式的字符串。
-----------底線-------
我更喜歡JSON,因爲它可以很容易地後與其他屬性擴展,所以沒有痛苦的代碼更改後;)
如果httpRequest響應是你用老的替換的html比你不得不重新初始化thinyMCE,而是這樣做,我會建議你使用JSON作爲響應,只需更新textarea的值 –
你能詳細說明一下嗎?我從來沒有使用JSON,但聽起來像你理解我的問題。我將如何實現這一點? – user982853
我會加入回答 –