Внешний список изображений TinyMCE с плагином jQuery - PullRequest
2 голосов
/ 15 марта 2012

Я пытаюсь использовать внешний список изображений с редактором TinyMCE, который инициализируется с помощью плагина jQuery MoxieCode, но я получаю ошибку от самого 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 голосов
/ 15 марта 2012

Ошибка была обнаружена в строке 1402 для неинициализированной версии editor_template.js.Код, который вызвал проблему, был:

if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)

Метод getAttrib() принимает до трех аргументов, третий является значением по умолчанию, которое возвращается, если указанный атрибут не существует,Изменяя код на:

if (ed.dom.getAttrib(ed.selection.getNode(), 'class', '').indexOf('mceItem') != -1)

Пустая строка, а не false, возвращается, когда нет атрибута класса.Это, похоже, решило проблему, и мой список изображений теперь загружается правильно.

...