wordpress 3.8.1 版本安装 ck编辑器插件 4.0 js错误 Uncaught TypeError: Cannot read property 'add' of undefined
安装插件后 不能正常预览
问题代码区域
c.onSubmit.add(function() {}) 的错误
下面是 wp中的js代码 那位大什么帮忙 解读一番也好
run: function() {
var b = this;
this.checkPost(), this.schedule = a.schedule({
time: 15e3,
func: function() {
wp.autosave.local.save()
},
repeat: !0,
protect: !0
}),
a("form#post").on("submit.autosave-local",
function() {
var c = "undefined" != typeof tinymce && tinymce.get("content"),
d = a("#post_ID").val() || 0;
c && !c.isHidden() ? c.onSubmit.add(function() {
wp.autosave.local.save({
post_title: a("#title").val() || "",
content: a("#content").val() || "",
excerpt: a("#excerpt").val() || ""
})
}) : b.save({
post_title: a("#title").val() || "",
content: a("#content").val() || "",
excerpt: a("#excerpt").val() || ""
}), wpCookies.set("wp-saving-post-" + d, "check")
})
},
在autosave.min.js文件中
错误提示 Uncaught TypeError: Cannot read property 'add' of undefined
没太看懂这个js 关键是 ckeditor.utils.js 和这个文件的关系 以及 如何调用,作用域是什么完全搞不清楚。
function autosave_parse_response(a) {
var b, c, d = wpAjax.parseAjaxResponse(a, "autosave");
return d && d.responses && d.responses.length && (d.responses[0].supplemental && (c = d.responses[0].supplemental, jQuery.each(c, function(a, b) {
a.match(/^replace-/) && jQuery("#" + a.replace("replace-", "")).val(b)
})), d.errors || ((b = parseInt(d.responses[0].id, 10)) && autosave_update_slug(b), d.responses[0].data && jQuery(".autosave-message").text(d.responses[0].data))), d
}
function autosave_saved(a) {
blockSave = !1, autosave_parse_response(a), autosave_enable_buttons()
}
function autosave_saved_new(a) {
blockSave = !1;
var b, c = autosave_parse_response(a);
c && c.responses.length && !c.errors ? (b = parseInt(c.responses[0].id, 10), b && (notSaved = !1, jQuery("#auto_draft").val("0")), autosave_enable_buttons(), autosaveDelayPreview && (autosaveDelayPreview = !1, doPreview())) : autosave_enable_buttons()
}
function autosave_update_slug(a) {
"undefined" != makeSlugeditClickable && jQuery.isFunction(makeSlugeditClickable) && !jQuery("#edit-slug-box > *").size() && jQuery.post(ajaxurl, {
action: "sample-permalink",
post_id: a,
new_title: fullscreen && fullscreen.settings.visible ? jQuery("#wp-fullscreen-title").val() : jQuery("#title").val(),
samplepermalinknonce: jQuery("#samplepermalinknonce").val()
}, function(a) {
if ("-1" !== a) {
var b = jQuery("#edit-slug-box");
b.html(a), b.hasClass("hidden") && b.fadeIn("fast", function() {
b.removeClass("hidden")
}), makeSlugeditClickable()
}
})
}
function autosave_loading() {
jQuery(".autosave-message").html(autosaveL10n.savingText)
}
function autosave_enable_buttons() {
jQuery(document).trigger("autosave-enable-buttons"), wp.heartbeat && wp.heartbeat.hasConnectionError() || setTimeout(function() {
var a = jQuery("#submitpost");
a.find(":button, :submit").removeAttr("disabled"), a.find(".spinner").hide()
}, 500)
}
function autosave_disable_buttons() {
jQuery(document).trigger("autosave-disable-buttons"), jQuery("#submitpost").find(":button, :submit").prop("disabled", !0), setTimeout(autosave_enable_buttons, 5e3)
}
function delayed_autosave() {
setTimeout(function() {
blockSave || autosave()
}, 200)
}
var autosave, autosavePeriodical, fullscreen, doPreview, autosaveLast = "",
autosaveDelayPreview = !1,
notSaved = !0,
blockSave = !1,
autosaveLockRelease = !0;
jQuery(document).ready(function(a) {
autosaveLast = a("#wp-content-wrap").hasClass("tmce-active") && "undefined" != typeof switchEditors ? wp.autosave.getCompareString({
post_title: a("#title").val() || "",
content: switchEditors.pre_wpautop(a("#content").val()) || "",
excerpt: a("#excerpt").val() || ""
}) : wp.autosave.getCompareString(), autosavePeriodical = a.schedule({
time: 1e3 * autosaveL10n.autosaveInterval,
func: function() {
autosave()
},
repeat: !0,
protect: !0
}), a("#post").submit(function() {
a.cancel(autosavePeriodical), autosaveLockRelease = !1
}), a('input[type="submit"], a.submitdelete', "#submitpost").click(function() {
blockSave = !0, window.onbeforeunload = null, a(":button, :submit", "#submitpost").each(function() {
var b = a(this);
b.hasClass("button-primary") ? b.addClass("button-primary-disabled") : b.addClass("button-disabled")
}), "publish" == a(this).attr("id") ? a("#major-publishing-actions .spinner").show() : a("#minor-publishing .spinner").show()
}), window.onbeforeunload = function() {
var b, c = "undefined" != typeof tinymce ? tinymce.activeEditor : !1;
if (c && !c.isHidden()) {
if (c.isDirty()) return autosaveL10n.saveAlert
} else if (b = fullscreen && fullscreen.settings.visible ? wp.autosave.getCompareString({
post_title: a("#wp-fullscreen-title").val() || "",
content: a("#wp_mce_fullscreen").val() || "",
excerpt: a("#excerpt").val() || ""
}) : wp.autosave.getCompareString(), b != autosaveLast) return autosaveL10n.saveAlert
}, a(window).unload(function(b) {
autosaveLockRelease && (b.target && "#document" != b.target.nodeName || a.ajax({
type: "POST",
url: ajaxurl,
async: !1,
data: {
action: "wp-remove-post-lock",
_wpnonce: a("#_wpnonce").val(),
post_ID: a("#post_ID").val(),
active_post_lock: a("#active_post_lock").val()
}
}))
}), a("#post-preview").click(function() {
return "1" == a("#auto_draft").val() && notSaved ? (autosaveDelayPreview = !0, autosave(), !1) : (doPreview(), !1)
}), doPreview = function() {
a("input#wp-preview").val("dopreview"), a("form#post").attr("target", "wp-preview").submit().attr("target", "");
var b = navigator.userAgent.toLowerCase(); - 1 != b.indexOf("safari") && -1 == b.indexOf("chrome") && a("form#post").attr("action", function(a, b) {
return b + "?t=" + (new Date).getTime()
}), a("input#wp-preview").val("")
}, a("#title").on("keydown.editor-focus", function(b) {
var c;
9 == b.which && (b.ctrlKey || b.altKey || b.shiftKey || ("undefined" != typeof tinymce && (c = tinymce.get("content")), c && !c.isHidden() ? a(this).one("keyup", function() {
a("#content_tbl td.mceToolbar > a").focus()
}) : a("#content").focus(), b.preventDefault()))
}), "1" == a("#auto_draft").val() && a("#title").blur(function() {
this.value && "1" == a("#auto_draft").val() && delayed_autosave()
}), a(document).on("heartbeat-connection-lost.autosave", function(b, c, d) {
if ("timeout" === c || 503 == d) {
var e = a("#lost-connection-notice");
wp.autosave.local.hasStorage || e.find(".hide-if-no-sessionstorage").hide(), e.show(), autosave_disable_buttons()
}
}).on("heartbeat-connection-restored.autosave", function() {
a("#lost-connection-notice").hide(), autosave_enable_buttons()
})
}), autosave = function() {
var a, b, c = wp.autosave.getPostData();
return blockSave = !0, c.autosave ? "block" == jQuery("#TB_window").css("display") ? !1 : (a = wp.autosave.getCompareString(c), a == autosaveLast ? !1 : (autosaveLast = a, jQuery(document).triggerHandler("wpcountwords", [c.content]), autosave_disable_buttons(), b = "1" == c.auto_draft ? autosave_saved_new : autosave_saved, jQuery.ajax({
data: c,
beforeSend: autosave_loading,
type: "POST",
url: ajaxurl,
success: b
}), !0)) : !1
}, window.wp = window.wp || {}, wp.autosave = wp.autosave || {}, function(a) {
wp.autosave.getPostData = function() {
var b, c, d = "undefined" != typeof tinymce ? tinymce.activeEditor : null,
e = [],
f = {
action: "autosave",
autosave: !0,
post_id: a("#post_ID").val() || 0,
autosavenonce: a("#autosavenonce").val() || "",
post_type: a("#post_type").val() || "",
post_author: a("#post_author").val() || "",
excerpt: a("#excerpt").val() || ""
};
if (d && !d.isHidden()) {
if (d.plugins.spellchecker && d.plugins.spellchecker.active) return f.autosave = !1, f;
"mce_fullscreen" == d.id && tinymce.get("content").setContent(d.getContent({
format: "raw"
}), {
format: "raw"
}), tinymce.triggerSave()
}
return "undefined" != typeof fullscreen && fullscreen.settings.visible ? (f.post_title = a("#wp-fullscreen-title").val() || "", f.content = a("#wp_mce_fullscreen").val() || "") : (f.post_title = a("#title").val() || "", f.content = a("#content").val() || ""), a('input[id^="in-category-"]:checked').each(function() {
e.push(this.value)
}), f.catslist = e.join(","), (b = a("#post_name").val()) && (f.post_name = b), (c = a("#parent_id").val()) && (f.parent_id = c), a("#comment_status").prop("checked") && (f.comment_status = "open"), a("#ping_status").prop("checked") && (f.ping_status = "open"), "1" == a("#auto_draft").val() && (f.auto_draft = "1"), f
}, wp.autosave.getCompareString = function(b) {
return "object" == typeof b ? (b.post_title || "") + "::" + (b.content || "") + "::" + (b.excerpt || "") : (a("#title").val() || "") + "::" + (a("#content").val() || "") + "::" + (a("#excerpt").val() || "")
}, wp.autosave.local = {
lastSavedData: "",
blog_id: 0,
hasStorage: !1,
checkStorage: function() {
var a = Math.random(),
b = !1;
try {
sessionStorage.setItem("wp-test", a), b = sessionStorage.getItem("wp-test") == a, sessionStorage.removeItem("wp-test")
} catch (c) {}
return this.hasStorage = b, b
},
getStorage: function() {
var a = !1;
return this.hasStorage && this.blog_id && (a = sessionStorage.getItem("wp-autosave-" + this.blog_id), a = a ? JSON.parse(a) : {}), a
},
setStorage: function(a) {
var b;
return this.hasStorage && this.blog_id ? (b = "wp-autosave-" + this.blog_id, sessionStorage.setItem(b, JSON.stringify(a)), null !== sessionStorage.getItem(b)) : !1
},
getData: function() {
var b = this.getStorage(),
c = a("#post_ID").val();
return b && c ? b["post_" + c] || !1 : !1
},
setData: function(b) {
var c = this.getStorage(),
d = a("#post_ID").val();
if (!c || !d) return !1;
if (b) c["post_" + d] = b;
else {
if (!c.hasOwnProperty("post_" + d)) return !1;
delete c["post_" + d]
}
return this.setStorage(c)
},
save: function(b) {
var c, d, e = !1;
return b ? (c = this.getData() || {}, a.extend(c, b), c.autosave = !0) : c = wp.autosave.getPostData(), c.autosave ? (d = wp.autosave.getCompareString(c), d == this.lastSavedData ? !1 : (c.save_time = (new Date).getTime(), c.status = a("#post_status").val() || "", e = this.setData(c), e && (this.lastSavedData = d), e)) : !1
},
init: function(b) {
var c = this;
this.checkStorage() && (a("#content").length || a("#excerpt").length) && (b && a.extend(this, b), this.blog_id || (this.blog_id = "undefined" != typeof window.autosaveL10n ? window.autosaveL10n.blog_id : 0), a(document).ready(function() {
c.run()
}))
},
run: function() {
var b = this;
this.checkPost(), this.schedule = a.schedule({
time: 15e3,
func: function() {
wp.autosave.local.save()
},
repeat: !0,
protect: !0
}),
a("form#post").on("submit.autosave-local",
function() {
var c = "undefined" != typeof tinymce && tinymce.get("content"),
d = a("#post_ID").val() || 0;
c && !c.isHidden() ? c.onSubmit.add(function() {
wp.autosave.local.save({
post_title: a("#title").val() || "",
content: a("#content").val() || "",
excerpt: a("#excerpt").val() || ""
})
}) : b.save({
post_title: a("#title").val() || "",
content: a("#content").val() || "",
excerpt: a("#excerpt").val() || ""
}), wpCookies.set("wp-saving-post-" + d, "check")
})
},
compare: function(a, b) {
function c(a) {
return a.toString().replace(/[\x20\t\r\n\f]+/g, "")
}
return c(a || "") == c(b || "")
},
checkPost: function() {
var b, c, d, e, f = this,
g = this.getData(),
h = a("#post_ID").val() || 0,
i = wpCookies.get("wp-saving-post-" + h);
if (g) return i && (wpCookies.remove("wp-saving-post-" + h), "saved" == i) ? (this.setData(!1), void 0) : (a("#has-newer-autosave").length || (b = a("#content").val() || "", c = a("#title").val() || "", d = a("#excerpt").val() || "", a("#wp-content-wrap").hasClass("tmce-active") && "undefined" != typeof switchEditors && (b = switchEditors.pre_wpautop(b)), "check" != i && this.compare(b, g.content) && this.compare(c, g.post_title) && this.compare(d, g.excerpt) || (this.restore_post_data = g, this.undo_post_data = {
content: b,
post_title: c,
excerpt: d
}, e = a("#local-storage-notice"), a(".wrap h2").first().after(e.addClass("updated").show()), e.on("click", function(b) {
var c = a(b.target);
c.hasClass("restore-backup") ? (f.restorePost(f.restore_post_data), c.parent().hide(), a(this).find("p.undo-restore").show()) : c.hasClass("undo-restore-backup") && (f.restorePost(f.undo_post_data), c.parent().hide(), a(this).find("p.local-restore").show()), b.preventDefault()
}))), void 0)
},
restorePost: function(b) {
var c;
return b ? (this.lastSavedData = wp.autosave.getCompareString(b), a("#title").val() != b.post_title && a("#title").focus().val(b.post_title || ""), a("#excerpt").val(b.excerpt || ""), c = "undefined" != typeof tinymce && tinymce.get("content"), c && !c.isHidden() && "undefined" != typeof switchEditors ? (c.undoManager.add(), c.setContent(b.content ? switchEditors.wpautop(b.content) : "")) : (a("#content-html").click(), a("#content").val(b.content)), !0) : !1
}
}, wp.autosave.local.init()
}(jQuery);
ckeditor 中的js
var editorCKE;
jQuery(document).ready(function () {
ckeditorSettings.configuration['on'] = {
configLoaded : function ( evt ) {
if (typeof(ckeditorSettings.externalPlugins) != 'undefined') {
var externals=new Array();
for (var x in ckeditorSettings.externalPlugins) {
CKEDITOR.plugins.addExternal(x, ckeditorSettings.externalPlugins[x]);
externals.push(x);
}
}
evt.editor.config.extraPlugins += (evt.editor.config.extraPlugins ? ','+externals.join(',') : externals.join(','));
if (evt.editor.config[evt.editor.config.toolbar +'_removeButtons']);
evt.editor.config.removeButtons = evt.editor.config[evt.editor.config.toolbar +'_removeButtons'];
CKEDITOR.addCss(evt.editor.config.extraCss);
}
};
CKEDITOR.on( 'instanceReady', function( ev )
{
var dtd = CKEDITOR.dtd;
for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) )
{
ev.editor.dataProcessor.writer.setRules( e, ckeditorSettings.outputFormat);
}
ev.editor.dataProcessor.writer.setRules( 'br',
{
breakAfterOpen : true
});
ev.editor.dataProcessor.writer.setRules( 'pre',
{
indent: false
});
editorCKE = CKEDITOR.instances['content'];
});
if (ckeditorSettings.textarea_id != 'comment'){
edInsertContentOld = function () {
return ;
};
if(typeof(window.edInsertContent) != 'undefined'){
edInsertContentOld = window.edInsertContent;
}
window.edInsertContent = function (myField, myValue) {
if(typeof(CKEDITOR) != 'undefined' && typeof(editorCKE) != 'undefined'){
editorCKE.insertHtml(myValue);
} else {
edInsertContentOld(myField, myValue);
}
};
var autosaveOld = function () {
return ;
};
if(typeof(window.autosave) != 'undefined'){
autosaveOld = window.autosave;
}
if(typeof(window.switchEditors) != 'undefined') {
window.switchEditors.go = function(id, mode) {
if ('tinymce' == mode || 'tmce' == mode) {
jQuery('#'+id).closest('.html-active').removeClass('html-active').addClass('tmce-active');
ckeditorOn(id);
} else {
jQuery('#'+id).closest('.tmce-active').removeClass('tmce-active').addClass('html-active');
ckeditorOff(id);
jQuery('.js .theEditor').attr('style', 'color: black;');
}
};
}
}
//if qTranslate plugin enabled
if ( ckeditorSettings.qtransEnabled ){
//custom version of switchEditors function when qTranslate plugin is enabled
if(typeof(window.switchEditors) != 'undefined') {
window.switchEditors.go = function(id, lang) {
id = id || 'content';
lang = lang || 'toggle';
if ( 'toggle' == lang ) {
if ( ed && !ed.isHidden() )
lang = 'html';
else
lang = 'tmce';
} else if( 'tinymce' == lang )
lang = 'tmce';
var inst = tinyMCE.get('qtrans_textarea_' + id);
var vta = document.getElementById('qtrans_textarea_' + id);
var ta = document.getElementById(id);
var wrap_id = 'wp-'+id+'-wrap';
// update merged content
if(inst && ! inst.isHidden()) {
tinyMCE.triggerSave();
} else {
qtrans_save(vta.value);
}
// check if language is already active
if(lang!='tmce' && lang!='html' && document.getElementById('qtrans_select_'+lang).className=='wp-switch-editor switch-tmce switch-html') {
return;
}
if(lang!='tmce' && lang!='html') {
document.getElementById('qtrans_select_'+qtrans_get_active_language()).className='wp-switch-editor';
document.getElementById('qtrans_select_'+lang).className='wp-switch-editor switch-tmce switch-html';
}
if(lang=='html') {
if ( inst && inst.isHidden() )
return false;
if ( inst ) {
vta.style.height = inst.getContentAreaContainer().offsetHeight + 20 + 'px';
inst.hide();
}
jQuery("#"+wrap_id).removeClass('tmce-active');
jQuery("#"+wrap_id).addClass('html-active');
setUserSetting( 'editor', 'html' );
} else if(lang=='tmce') {
if(inst && ! inst.isHidden())
return false;
if ( tinyMCEPreInit.mceInit[id] && tinyMCEPreInit.mceInit[id].wpautop )
vta.value = this.wpautop(qtrans_use(qtrans_get_active_language(),ta.value));
if (inst) {
inst.show();
} else {
qtrans_hook_on_tinyMCE(id);
}
jQuery("#"+wrap_id).removeClass('html-active');
jQuery("#"+wrap_id).addClass('tmce-active');
setUserSetting('editor', 'tinymce');
} else {
// switch content
qtrans_assign('qtrans_textarea_'+id,qtrans_use(lang,ta.value));
}
}
}
jQuery('#edButtonHTML').addClass('active');
jQuery('#edButtonPreview').removeClass('active');
if(ckeditorSettings.textarea_id != 'comment'){
ckeditorSettings.textarea_id = 'qtrans_textarea_content';
ckeditorSettings.configuration['on'].getData = function (evt) {
evt.data.dataValue = evt.data.dataValue.replace(/(^<\/p>)|(<p>$)/g, '');
evt.data.dataValue = evt.data.dataValue.replace(/^<p>(\s|\n|\r)*<p>/g, '<p>');
evt.data.dataValue = evt.data.dataValue.replace(/<\/p>(\s|\n|\r)*<\/p>(\s|\n|\r)*$/g, '<\/p>');
qtrans_save(evt.data.dataValue);
};
if ( jQuery('#'+ckeditorSettings.textarea_id).length && typeof CKEDITOR.instances[ckeditorSettings.textarea_id] == 'undefined' ) {
CKEDITOR.replace(ckeditorSettings.textarea_id, ckeditorSettings.configuration);
editorCKE = CKEDITOR.instances[ckeditorSettings.textarea_id];
//add afterCommandExec exect to last created CKEditor instance
editorCKE.on( 'afterCommandExec', function(ev) {
afterCommandEvent(ev);
});
}
window.tinyMCE = tinymce = getTinyMCEObject();
}
}else {
if(ckeditorSettings.autostart && (typeof getUserSetting == 'undefined' || getUserSetting('editor') === '' || getUserSetting('editor') == 'tinymce')){
ckeditorOn();
}
}
jQuery("#update-gallery").click(function(){
updateCkeGallery();
});
if (ckeditorSettings.excerpt_state && jQuery("textarea#excerpt").length > 0 && jQuery("#postexcerpt-hide").attr('checked') == 'checked') {
//ckeditorOn('excerpt');
CKEDITOR.replace('excerpt', ckeditorSettings.configuration);
}
if (typeof window.tinyMCE != 'undefined') {
if (typeof QTags != 'undefined') {
jQuery(".row-actions span.reply a").live('click', function(){
if (typeof CKEDITOR.instances['replycontent'] != 'undefined') {
ckeditorOff('replycontent');
}
CKEDITOR.replace('replycontent', {'basicEntities' : false, 'entities': false,'toolbar_Comments' : [{ name: 'basicstyles', items : [ 'Bold','Italic','Underline'] }, { name: 'links', items : [ 'Link','Unlink' ] },{ name: 'paragraph', items : [ 'NumberedList','BulletedList'] }, { name: 'insert', items : [ 'Image' ] } ], 'toolbar' : 'Comments'});
});
jQuery("#replyrow a.save").unbind('click').live('click', function(){
var data = null;
if (typeof CKEDITOR.instances['replycontent'] != 'undefined') {
data = CKEDITOR.instances['replycontent'].getData();
}
if (data != null && data.length > 0 ) {
jQuery('textarea#replycontent').html(data);
ckeditorOff('replycontent');
}
commentReply.send();
return;
});
jQuery("#replyrow a.cancel").unbind('click').live('click', function(){
commentReply.revert()
ckeditorOff('replycontent');
return;
});
QTags.getInstance = function (editor_id) {
return window.tinyMCE;
}
}
}
});
function ckeditorOn(id) {
var instance;
if (typeof(id) != 'undefined' && typeof(CKEDITOR.instances[id]) == 'undefined' )
{
setUserSetting( 'editor', 'tinymce' );
jQuery('#quicktags').hide();
jQuery('#edButtonPreview').addClass('active');
jQuery('#edButtonHTML').removeClass('active');
instance = CKEDITOR.replace(id, ckeditorSettings.configuration);
}
if ( jQuery('textarea#'+ckeditorSettings.textarea_id).length && (typeof(CKEDITOR.instances) == 'undefined' || typeof(CKEDITOR.instances[ckeditorSettings.textarea_id]) == 'undefined' ) && jQuery("#"+ckeditorSettings.textarea_id).parent().parent().attr('id') != 'quick-press') {
instance = CKEDITOR.replace(ckeditorSettings.textarea_id, ckeditorSettings.configuration);
if(ckeditorSettings.textarea_id == 'content') {
setUserSetting( 'editor', 'tinymce' );
jQuery('#quicktags').hide();
jQuery('#edButtonPreview').addClass('active');
jQuery('#edButtonHTML').removeClass('active');
}
else if(ckeditorSettings.textarea_id == 'comment') {
var labelObj = jQuery('#'+ckeditorSettings.textarea_id).prev('label');
if (labelObj){
labelObj.hide();
}
}
}
if (typeof(instance) != 'undefined') {
//add afterCommandExec exect to last created CKEditor instance
instance.on( 'afterCommandExec', function(ev) {
afterCommandEvent(ev);
});
}
}
function ckeditorOff(id) {
if (typeof(id) != 'undefined')
{
editorCKE = CKEDITOR.instances[id];
}else
{
editorCKE = CKEDITOR.instances[ckeditorSettings.textarea_id];
}
if(typeof(editorCKE) != 'undefined'){
editorCKE.destroy();
if(ckeditorSettings.textarea_id == 'content') {
setUserSetting( 'editor', 'html' );
jQuery('#quicktags').show();
jQuery('#edButtonHTML').addClass('active');
jQuery('#edButtonPreview').removeClass('active');
}
}
}
if ( !ckeditorSettings.qtransEnabled ){
var tinymce = window.tinyMCE = getTinyMCEObject();
}
function getTinyMCEObject()
{
var tinymce = window.tinyMCE = (function () {
var tinyMCE = {
isOpera : function() {
return CKEDITOR.env.opera;
},
onAddEditor : { add : function() {
// this function did nothing else apart from resizing TinyMCE
} },
get : function (id) {
var instant = {
isHidden : function (){
editor = CKEDITOR.instances[id];
if (typeof editorCKE == 'undefined') editorCKE = editor;
if(typeof(editor) != 'undefined')
{
return false;
}else{
return true;
}
},
isDirty : function (){
return false;
},
execCommand : function (command, integer, val) {
if(command == 'mceSetContent') {
editorCKE.setData(val);
}
if (command == 'mceInsertContent')
{
editorCKE.insertHtml(val);
}
},
onSaveContent : {
add : function (func) {
window.tinymceosc = func;
}
},
getContentAreaContainer : function () {
return {
offsetHeight : editorCKE.config.height
};
},
hide : function () {
ckeditorOff(id);
},
show : function () {
ckeditorOn(id);
},
save : function(){
return;
},
focus : function(){
return;
},
plugins: {}
};
return instant;
},
execCommand : function (command, integer, val) {
if(command == 'mceAddControl'){
ckeditorSettings.textarea_id = val;
if(ckeditorSettings.autostart) {
ckeditorOn();
} else {
document.getElementById('qtrans_textarea_content').removeAttribute('style');
}
}
},
triggerSave : function(param) {
if(typeof(CKEDITOR) != 'undefined' && typeof(editorCKE) != 'undefined')
editorCKE.updateElement();
},
activeEditor : {
isHidden : function (){
return false;
},
isDirty : function (){
return false;
},
focus : function (){
return;
},
plugins : {},
execCommand : function(command, state, text)
{
if (command == "mceInsertContent")
{
//test if image has caption and make necessary text format
pattern = /\[caption(.*)\]<.*>(.*)\[\/caption\]/i;
if (pattern.test(text)) {
replace_match = pattern.exec(text);
text = text.replace(/<img (.*) \/>/g, function( match, cont )
{
cont = cont.replace(/class="(.*)"/g, function( match, cont ){
tmp = 'class="' + cont + ' wp-caption"';
return tmp;
});
tmp = '<img ' + cont + ' data-cke-caption=\'' + replace_match[1] + '\' data-cke-caption-text=\'' + replace_match[2] + '\' />' ;
return tmp;
});
}
//setTimeout is required in IE8 when inserting Image gallery from an external modal dialog
if (typeof editorCKE == 'undefined') editorCKE = CKEDITOR.instances[ckeditorSettings.textarea_id];
setTimeout(function(){
editorCKE.insertHtml(text);
}, 0);
}
},
selection : {
getBookmark : function(name) {
return '';
}
},
windowManager : {
bookmark: {}
}
},
EditorManager :{
activeEditor: {
selection : {
getNode : function(){
var obj = jQuery(editorCKE.document.getBody().getHtml());
var index = 0;
jQuery.each(obj,function(i, val){
var images = jQuery("img",jQuery(val));
jQuery.each(images, function(key, value){
if (jQuery(value).hasClass('wpGallery, cke_wpgallery'))
{
index = i;
return;
}
});
});
if (obj.length === 0)
{
obj = document.createElement("p");
return obj;
}
return obj[index];
},
getBookmark : function(name) {
return ;
}
},
dom :{
select : function(selector) {
//get CKEditor content
var obj = editorCKE.document.getBody().getHtml();
images = editorCKE.document.getElementsByTag('img');
if ( typeof images.$ == 'undefined' || images.$.length == 0) return [];
for (var i in images.$)
{
if ( typeof images.$[i] != 'undefined' && ((CKEDITOR.env.ie && images.$[i].className == 'wpGallery, cke_wpgallery') || images.$[i].classList == 'wpGallery, cke_wpgallery'))
{
var element = new CKEDITOR.dom.element(images.$[i]);
index = i;
break;
}
}
var results =[];
if (typeof element != 'undefined')
{
results[0] = images.$[index];
return results;
}else
{
return [];
}
},
getAttrib : function(el, selector)
{
return jQuery(el).attr(selector);
},
//function to set new gallery attributes
setAttrib : function(el, selector, value)
{
//get CKEditor content
var obj = editorCKE.document.getBody().getHtml();
images = editorCKE.document.getElementsByTag('img');
for (var i in images.$)
{
if ( typeof images.$[i] != 'undefined' && ((CKEDITOR.env.ie && images.$[i].className == 'wpGallery, cke_wpgallery') || images.$[i].classList == 'wpGallery, cke_wpgallery'))
{
var element = new CKEDITOR.dom.element(images.$[i]);
element.setAttribute('title', value);
element.setAttribute('data-gallery', '['+value+']');
}
}
},
decode : function(text) {
return text;
},
hasClass : function(element, name)
{
var hasClass = jQuery(element).attr('class');
var pattern = /wpGallery/;
return pattern.test(hasClass);
}
}
},
get : function(id) {return;}
},
DOM :{
removeClass : function(id, className) {return;},
addClass : function(id, className) {return;}
},
addI18n : function(language, param){
return ;
}
};
return tinyMCE;
})();
return tinymce;
}
var tinyMCEPreInit = {
mceInit : function(){
language : 'en';
}
};
var tinyMCEPopup = {
onInit : {
add : function() {return ;}
},
editor : {
windowManager : {
createInstance : function(id) {return; }
}
}
};
/*
* Function to move cursor after fake gallery image. Turn on frame show
*/
function updateCkeGallery()
{
jQuery("#add_image").unbind('click');
jQuery("#add_image").bind('click',function(){
return true;
});
}
function afterCommandEvent(ev)
{
if (ev.data.name != 'maximize') { return; }
//if maximize button was clicked hide/show WP admin bar - prevention of hiding buttton under WP admin bar
if (ev.data.command.state == CKEDITOR.TRISTATE_ON) { jQuery("#wpadminbar").hide() } else { jQuery("#wpadminbar").show() }
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论