Не знаю, как Chrome запускает свои расширения, но я могу рассказать вам о манипуляции с содержанием страницы.
Чтобы обернуть все содержимое дочернего в topbar
DIV в простом JavaScript:
var topbars= document.getElementsByClassName('topbar');
for (var i= topbars.length; i-->0;) {
var span= document.createElement('span');
span.className= 'larger-font';
while (topbars[i].firstChild)
span.appendChild(topbars[i].firstChild);
topbars[i].appendChild(span);
}
(getElementsByClassName является относительно нового API, но Chrome 3 поддерживает его для каждого согласующего элемента, переместить все свои ребенок в. новый пролет элемент, и положить, что промежуток внутри DIV)
или с помощью JQuery, если вы не возражаете тащат большущие рамки в:.
$('.topbar').each(function() {
$(this).contents().wrapAll('<span class="larger-font"></span>');
});
Пока вы может работать на HTML в виде строки, используя что-то вроде:
for (var i= topbars.length; i-->0;)
topbars[i].innerHTML= '<span class="larger-font">'+topbars[i].innerHTML+'</span>';
это должно вообще избегать, так как вы будете serialising и повторно разборе все содержимое узла DIV, в процессе уничтожая любой несериализуемый контент, такой как ссылки на JavaScript, прослушиватели событий и значения полей формы.
+1 для правильного ответа и для бит 'i -> 0;' в цикле 'for'. Очевидно, что это просто и полезно в своем предположении, что 'i' достигает' 0', но я никогда не видел и не думал об использовании условия 'for' condition таким образом. –