Не, если алерт пернести в самое начало скрипта, он, конечно, работает. Вот, например, в следующем скрипте алерт срабатывает, а вот замена - нет.
alert('asdf');
document.addEventListener (
'load',
function ()
{
document.body.innerHTML = document.body.innerHTML.replace(/работает/gi, 'пашет');
},
false
);
Явно ведь, что косяк в русском языке! Ведь попытка заменить 'Kolyaj' на 'asdfasfd' была почти успешной. "Почти", потому что замены сделаны были, а вот местный ДжаваСкрипт работать перестал (кнопочки типа "процитировать", "выделить курсивом" и т.д.). Пришлось отключать плагин и перезагружать страницу. В чем глюк? |
На счет МэджикФанкшн. В мануале сказано следующее:
Цитата:
|
Цитата:
потому что все отлично "пашет" тестировал опять таки на этой странице. все работает как с русским языком, так и с английским. Уважаемый.Для кого пишутся мои посты и даются ссылки? вы читали темы, указанные мною полностью? тогда почему вы все еще пытаетесь пользоватся этим способом замены? да, этот вариант портит JS. да, он передергивает страницу.да, в указанных мною темах есть скрипты также не лишенные глюков, но которые получше чем этот,и не портят JS к примеру. и они также работают отлично с русским языком, как и этот. почему у вас не получается работать с русским языком, я понятия не имею. выложите код простейшей страницы, на которой у вас не срабтывает замена русских слов, и мы посмотрим что не так. какой у вас браузер?в другом пробовали? короче говоря пробуйте скрипты из указанных мною тем. исправляйте в них глюки, и будет вам счастье |
Цитата:
|
Цитата:
правда в коде страницы есть обработчики повешенные с помощью атрибута. вот почему они не работают, не понятно. но, в любом случае такой заменоя пользоватся не стоит. самый лучший вариант, работать исключительно с текстовыми нодами в индивидуальном порядке. писал человеку из одного вышеупомянутого треда доведенную до ума версию скрипта. тормозов нету.нажал, и оно почти мигом проделало все замены, не нарушая DOM-структуру, и меняя ее только там где надо(там замена с добавлением тегов требовалась, поэтому текстовые ноды естественно менялись на набор нод с тегами и без) |
Ладно бог с ней, с заменой. За ссылки спасибо, конечно. За скрипты в особенности. А что с МаджикФанкшн-то не так?
У меня опера 9.25. |
Код, который вокруг определения showBanner в вражеском скрипте, покажите.
|
Вот целиком весь тег с вражеской функцией.
<script type="text/javascript">
<!--
var showBanner = function(id, onScroll, size, params){
var cm=(document.compatMode=="CSS1Compat"),de=document.documentElement,db=document.body;
var code=function(){
var rnd = Math.round(Math.random()*1000000000), src = 'http://porno-xxx.ru/cgi-bin/erle.cgi?'+params;
return '<iframe src="'+src+'" id="'+id+'_'+rnd+'" frameborder="0" vspace="0" hspace="0" '+size+' marginwidth="0" marginheight="0" scrolling="no" style="overflow:hidden"></iframe>';
};
var banner = obj = document.getElementById(id);
if (!obj)return;
if (!onScroll) { obj.innerHTML = code(); return; }
var ar_top = parseInt(obj.style.height)/2;
while(obj.offsetParent){ ar_top += obj.offsetTop; obj = obj.offsetParent; }
var ar_scroll = function(){
var ch = self.innerHeight || cm && de.clientHeight || db.clientHeight;
var st = self.pageYOffset || cm && de.scrollTop || db.scrollTop;
if (ar_top > st && st + ch > ar_top) {
removeEvent(window, 'scroll', ar_scroll);
banner.style.visibility = "visible";
banner.innerHTML = code();
}
};
addEvent(window, 'scroll', ar_scroll);
ar_scroll(id, size, params);
};
onDomReady(function(){
//addEvent(window, 'load', function(){
new showBanner("banner001", false, 'width="120" height="300"', 'sid=103715&bt=30&pz=1&sz=m_35_44&rnd=' + Math.round(Math.random() * 100000000));
new showBanner("banner002", true, 'width="600" height="90"', 'sid=103715&bt=19&pz=1&sz=m_35_44&rnd=' + Math.round(Math.random() * 100000000));
//clean AR
var c = document.cookie.split(/\s*;\s*/);
var date = new Date(); date.setTime(1); var exp = date.toGMTString();
for (var i=0;i<c.length;i++) {
var n = c[i].split('=')[0];
if (n.substr(0, 3) == "ar_") {
document.cookie = n + "= ; expires=" + exp + "; path=/";
}
}
});
//-->
</script>
Выше я намеренно для простоты писал, что showBanner имеет только 2 аргумента. Сути это не меняет. |
Зная оперу, можно предположить, что в данном случае ей нужен defineMagicVariable.
|
Знакомый код :lol:
|
| Часовой пояс GMT +3, время: 01:37. |