我正在尝试使用TinyMCE编辑器使用外部图像列表,该编辑器使用MoxieCode的jQuery插件进行初始化,但是我从TinyMCE本身收到错误。
这是初始化TinyMCE的代码:
$code_editors.tinymce({
script_url : '/js/tinymce/jscripts/tiny_mce/tiny_mce.js',
external_image_list_url : "/assets/mce_cache.js",
theme : "advanced",
content_css : "/css/style.css,http://fonts.googleapis.com/css?family=Stint+Ultra+Condensed",
height: '400px',
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left"
});
以下是我的图片列表的内容(此文件位于/assets/mce_cache.js
)
var tinyMCEImageList = new Array(
["2012-birkie-all.jpg", "/assets/Asset-00016_2012-birkie-all.jpg"],
["bike-part-bg-bottom-bracket.png", "/assets/Asset-00010_bike-part-bg-bottom-bracket.png"],
["bike-part-bg-chainrings.png", "/assets/Asset-00011_bike-part-bg-chainrings.png"],
["bike-part-bg-fork-red.png", "/assets/Asset-00015_bike-part-bg-fork-red.png"],
["bike-part-bg-fork.png", "/assets/Asset-00012_bike-part-bg-fork.png"],
["bike-part-bg-frame.png", "/assets/Asset-00013_bike-part-bg-frame.png"],
["bike-part-bg-saddle.png", "/assets/Asset-00014_bike-part-bg-saddle.png"],
["Purge Photo", "/assets/Asset-00022_ePurge-1.jpg"]
);
我得到的错误(在Chrome中)位于editor_template.js:1
(TinyMCE文件)中:
Uncaught TypeError: Object false has no method 'indexOf'
有没有人有TinyMCE使用外部图像列表的经验,可能会看到我在这里做错了什么?
答案 0 :(得分:0)
错误位于editor_template.js
的未分类版本的第1402行。导致问题的代码是:
if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)
getAttrib()
方法最多需要三个参数,如果指定的属性不存在,则第三个参数是返回的默认值。通过将代码更改为:
if (ed.dom.getAttrib(ed.selection.getNode(), 'class', '').indexOf('mceItem') != -1)
当没有class属性时,返回空字符串,而不是false
。这似乎解决了这个问题,我的图像列表现在正在正确加载。