带有jQuery插件的TinyMCE外部图像列表

时间:2012-03-14 21:27:02

标签: jquery image list jquery-plugins tinymce

我正在尝试使用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使用外部图像列表的经验,可能会看到我在这里做错了什么?

1 个答案:

答案 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。这似乎解决了这个问题,我的图像列表现在正在正确加载。