Показать сообщение отдельно
  #1 (permalink)  
Старый 05.05.2014, 15:44
Аспирант
Отправить личное сообщение для NapalmRain Посмотреть профиль Найти все сообщения от NapalmRain
 
Регистрация: 17.03.2014
Сообщений: 40

Написание плагина
Доброго всем времени суток.

Пишу плагин для выделения синтаксиса листингов на сайте.
На странице есть элемент
<code type=javascript> // тут код</code>
<code type=php> // тут код</code>

В скрипте:
$('[type=php]').itcode('php');
$('[type=javascript]').itcode('javascript');

и в самом плагине:
$.fn.itcode = function(language) {
		switch (language) {
			case 'php':
				init($(this), phpWords);
				break;
			case 'delphi':
				init($(this), delphiWords);
				break;
			case 'javascript':
				init($(this), javascriptWords);
				break;
			case 'java': break;
			case 'code': break;
			case 'c#': break;
	}
  };

метод init
var init = function (object, arrayOfWords) {
		var words = [];
		for (var k in arrayOfWords) {
			words[arrayOfWords[k]] = arrayOfWords[k];
		}
		if (object.html()!==null) {
			var include = object.html();
			var lines = include.split('\n');
		}
	}

Ну и дальше уже работа со строками.

Всё работает хорошо, когда на странице только один элемент с тегом code, или несколько но с разными типами.
Но если в тексте встречается
<code type=javascript> // тут код</code>
плагин почему-то выбирает содержимое object.html(); из первого встречающегося на странице.
Прошу подсказки, в чём причина данной ситуации и как её решить?

Заранее благодарю!
Ответить с цитированием