Показать сообщение отдельно
  #51 (permalink)  
Старый 09.04.2009, 11:14
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Zeroglif
Кто ж против применения
А я уж подумал, что вы против.

Сообщение от Zeroglif
В вашем конкретном случае равенство строк не гарантировано. Неужели так сложно проверить? Чего будет на странице до и чего после:

text
<p&gt
alone
Сообщение от Zeroglif
http://msdn.microsoft.com/en-us/library/ms533897.aspx
https://developer.mozilla.org/En/DOM/Element.innerHTML

Я еще раз проверил в разных браузерах. Я очень всматривался пытаясь увидеть разницу. И ее нет.
Вероятно вы используете старый вариант. Я же приводил исправленный вариант уже:
var TextNode = {
	each: function(callback, parent) {
		for (var childNodes = (parent || document.body).childNodes, i = 0; i < childNodes.length; i++) {
			var I = childNodes[i];
			I.nodeType == 1
				? arguments.callee(callback, I)
				: I.nodeType == 3 && callback(I, i);
		}
	}
};

window.onload = function() {
	TextNode.each(function(noda) {
		var v = noda.nodeValue.replace(/(http\:\/\/www\.youtube\.com\/watch\?v\=[0-9a-z]{11})/gi, '<a href="$1">$1</a>');
		if (v != noda.nodeValue) {
			var div = document.createElement('div');
			div.innerHTML = v;
			if (div.firstChild) {
				var f = document.createDocumentFragment();
				do f.appendChild(div.firstChild);
				while (div.firstChild);
				noda.parentNode.replaceChild(f, noda);
			}
		}
	});
};
Ответить с цитированием