Не, если алерт пернести в самое начало скрипта, он, конечно, работает. Вот, например, в следующем скрипте алерт срабатывает, а вот замена - нет.
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, время: 18:57. |