Сообщение от grusha
|
Меня меньше интересует размер файла , больше интересует его производительность .
|
Ну тогда так вот:
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() {
var callback = function(noda) {
if (noda.nodeValue.indexOf('youtube.com') > -1) {
var v = noda.nodeValue.replace(arguments.callee.regExp, '<a href="$1">$1</a>');
if (v != noda.nodeValue) {
var div = arguments.callee.div;
div.innerHTML = v;
if (div.firstChild) {
var f = arguments.callee.fragment;
do f.appendChild(div.firstChild);
while (div.firstChild);
noda.parentNode.replaceChild(f, noda);
}
}
}
};
callback.regExp = /(http\:\/\/www\.youtube\.com\/watch\?v\=[0-9a-z]{11})/gi;
callback.div = document.createElement('div');
callback.fragment = document.createDocumentFragment();
TextNode.each(callback);
};
Уйти от do-while без появления лишних операций не получается у меня.
Сообщение от grusha
|
И если возможно ,то код который бы работал с библиотекой jQuery .
|
Зачем тут Jquery?
Разве, что вместо window.onload использовать $.ready .
Сообщение от grusha
|
Так же видел в коде windows.onload , моих знаний не так много и наверно я чето не понимаю , но с этим бывают проблемы.
|
Как и сказал x-yuri проблемы будут когда ты захочешь повесить на windows.onload несколько обработчиков.
$.ready в Jquery для того и сделан.