CKEditor 4 – выбор якорей из нескольких редакторов

CKEditor 4 – выбор якорей из нескольких редакторов

Допустим ситуацию, когда контент страницы разделен на несколько редакторов, в первом содержится оглавление статьи с якорными ссылками, а во втором основной текст с расставленными якорями.

CKEditor 4

Проблема заключается в том, что при добавлении якорной ссылки, в списке не будет якорей из других редакторов, что усложняет работу контент менеджера.

CKEditor 4 - в списке не будет якорей из других редакторов

Исправить это можно изменив файл плагина /ckeditor/plugins/link/dialogs/link.js или заменить его на готовый link.js

JS код там сжат, для форматирования можно применить сервис
http://tools.seo-auditor.com.ru/javascript-formatter/

Итак, нужно закомментировать оригинальный код сбора якорей (строки 125-130) и после вставить новый который проходит по всем редакторам.

//f = new CKEDITOR.dom.nodeList(a.document.$.anchors);
//c = 0;
//for (e = f.count(); c < e; c++) h = f.getItem(c), d[c] = {
//    name: h.getAttribute("name"),
//    id: h.getAttribute("id")
//}

for(var instanceName in CKEDITOR.instances) {
	div = $('<div>').html(CKEDITOR.instances[instanceName].getData());
	div.find('a').each(function() {
		if (!$(this).attr('href')) {
			name = $(this).attr('name');
			id = $(this).attr('id');
			if (id.length > 0 || name.length > 0) {
				d.push({name: name, id: id});							
			}						
		}
	});
}
JS

После изменений нужно сбросить кеш браузера.

03.04.2018, обновлено 30.12.2019
3514

Комментарии

, чтобы добавить комментарий.

Другие публикации

Список MIME типов
Ниже приведён список MIME-заголовков и расширений файлов.
25023
+7
Работа с cookie в JavaScript
Сookies или куки – это данные в виде пар ключ=значение, которые хранятся в файлах на компьютере пользователя. Для хранимых данных существуют несколько ограничений...
57267
+9
Фиксированное горизонтальное меню с активными пунктами
Пример горизонтального меню для лэндингов, в котором реализовано...
12600
+3
Загрузка файлов на сервер PHP
В статье приведен пример формы и php-скрипта для безопасной загрузки файлов на сервер, возможные ошибки и рекомендации при работе с данной темой.
72251
+22
Перебор ячеек таблицы jQuery
Обойти ячейки таблицы можно с помощью jQuery метода each, например следующий код выводит текст из всех ячеек в консоль.
24231
+3
Манипуляции с элементами jQuery
Сборник методов jQuery для управления элементами DOM.
22447
+5