Показать сообщение отдельно
  #14 (permalink)  
Старый 08.03.2009, 15:20
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

не знаю почему у вас не работает этот код.
по крайней мере на простейших страницах он срабатывает.
вот, мой пример рабочей страницы
<html>
<head>
<script type="text/javascript">
window.onload=function(){
document.body.innerHTML = document.body.innerHTML.replace(/AzriMan/g, 'AndryMan');

}
</script>
</head>
<body>
qwe<br/>
azriMan<br/>
qwe<br/>
<table border="1">
	<tr>
		<td>AzriMan</td><td>AzriMa_n</td>
	</tr>
	<tr>
		<td>AzriM_an</td><td>AzriMa_n</td>
	</tr>
</table>
AzriMan<br/>
</body>
</html>

я заменил 'AzriMan' на /AzriMan/g для того, чтобы все вхождения заменялись.без этого тоже работает, но заменяет только первую строку.
с целью разъяснения этой функциипочитайте статью про регулярные выражения

вот еще одна вариация кода по замене, более сложная.
window.onload=function(){
all_elements=document.getElementsByTagName('*');
for(i=0,s=all_elements.length;i<s;i++)
	if(all_elements[i].tagName!="SCRIPT")
		for(j=0,s_=all_elements[i].childNodes.length;j<s_;j++)
			if(all_elements[i].childNodes[j].nodeType==3)
				all_elements[i].childNodes[j].textContent=all_elements[i].childNodes[j].textContent.replace(/AzriMan/g, 'AndryMan');
}

менее компактно.
возмжно более медлено.хотя не факт.
возможно быстрее даже на больших документах.
во всяком случае в этом коде не происходит перерисовки всего дерева, как в предыдущем коде.
в общем, потестите.
Код можно изменять и дополнять разными способами, от разных аспектов вашей задачи.можно сделать рекурсивно(навряд ли код выиграет от этого.скорее проиграет по скорости).
сожно ввести больше тегов-исключений.
ну, да я думаю вы сами дальше разберетесь.
у вас есть на руках два работающих куска кода.дерзайте

Последний раз редактировалось Gvozd, 08.03.2009 в 15:24.
Ответить с цитированием