Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.03.2009, 12:34
Интересующийся
Отправить личное сообщение для the_name Посмотреть профиль Найти все сообщения от the_name
 
Регистрация: 24.03.2009
Сообщений: 15

User JS! (нужна консультация)
Уважаемые форумчане, помогите пожалуйста разобраться со следующими вопросами:


1. Как при помощи пользовательского JS ПРЕДОТВРАТИТЬ исполнение вражеской функции с чужой странички, если я знаю ее имя (showBanner), но не знаю положения в DOM (странички генерятся динамически, и функция showBanner располагается по разному)?

2. Как в теле хтмл-документа находить и заменять конкретный текст на другой конкретный текст? Например, мне надо везде в документе слово "пищевод" заменить на слово "кирпичи", чтобы весь остальной текст остался нетронутым? Пусть даже этот текст содержится в объявлении тега. То есть чтобы хтмл-текст
"что угодно пищевод <a href="www.ru" пищевод>ссылка</a>"
был заменен на
"что угодно кирпичи <a href="www.ru" кирпичи>ссылка</a>".
Как это сделать?

Сразу скажу, что JS я знаю достаточно поверхностно. Вообще меня больше волнует первый вопрос. Как несложно догадаться, хочу убить злую рекламу. Для этого я использовал следующий скрипт:

if(location.hostname.indexOf('porno-xxx.ru') != -1)
{
document.addEventListener (
    'load',
    function () 
    {
	var bnr = document.getElementById("banner001");
	var prnt = bnr.parentNode;
	prnt.removeChild(bnr);
	bnr = document.getElementById("banner002");
	prnt = bnr.parentNode;
	prnt.removeChild(bnr);
    },
    false
  );	
}


Скрипт работает нормально, но есть проблема. Я удаляю два тега DIV с идентификаторами banner001 и banner002, куда вражеская функция (showBanner) подгружает баннер. Скрипт срабатывает по факту загрузки страницы, и поэтому с момента окончания загрузки баннера до момента окончания загрузки страницы (несколько секунд) баннер красуется на страничке, повергая меня в ярость . Как убить функцию showBanner?!?!?!

На всякий случай опишу врага. Объявляется функция следующим образом:
var showBanner = function(id, params){
код функции
}
При этом лежит она прямо на самой страничке в одном из тегов <script> </script>. Тег нельзя отследить с помощью конструкций типа document.getElementsByTagName("script")[k] и т.п., так как на разных страничках подопытного сайта он лежит то последним, то где-то посередине... Как повезет, короче.

Последний раз редактировалось the_name, 24.03.2009 в 12:46.
Ответить с цитированием
  #2 (permalink)  
Старый 24.03.2009, 12:39
Профессор
Отправить личное сообщение для AzriMan Посмотреть профиль Найти все сообщения от AzriMan
 
Регистрация: 27.02.2009
Сообщений: 215

2. Замена слова посредством Java-script
Ответить с цитированием
  #3 (permalink)  
Старый 24.03.2009, 12:40
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от the_name
Как при помощи пользовательского JS ПРЕДОТВРАТИТЬ исполнение вражеской функции с чужой странички
http://operafan.net/component/option...emagicfunction
Ответить с цитированием
  #4 (permalink)  
Старый 24.03.2009, 13:26
Интересующийся
Отправить личное сообщение для the_name Посмотреть профиль Найти все сообщения от the_name
 
Регистрация: 24.03.2009
Сообщений: 15

Спасибо. Но это не работает:

if(location.hostname.indexOf('porno-xxx.ru') != -1)
{
window.opera.defineMagicFunction (
    'showBanner',
    function (oRealFunc, oThis, oParam1, oParam2) 
    {
	alert('VICTORY!');
    }
  );	
}


Даже сообщение не выскакивает. В чем дело?

Последний раз редактировалось the_name, 24.03.2009 в 13:29.
Ответить с цитированием
  #5 (permalink)  
Старый 24.03.2009, 13:34
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Kolyaj,
разве это не должно работать только в опере?
Ответить с цитированием
  #6 (permalink)  
Старый 24.03.2009, 13:38
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Gvozd,
Сообщение от the_name
User JS! (нужна консультация)

the_name,
а сам скрипт-то хоть запускается?
Ответить с цитированием
  #7 (permalink)  
Старый 24.03.2009, 13:42
Интересующийся
Отправить личное сообщение для the_name Посмотреть профиль Найти все сообщения от the_name
 
Регистрация: 24.03.2009
Сообщений: 15

Сообщение от Gvozd Посмотреть сообщение
Kolyaj,
разве это не должно работать только в опере?
Мне и нужно в опере. Но это не работает! Не работает также и замена:

document.body.innerHTML=document.body.innerHTML.replace(/пищевод/g, 'кирпичи');
Или для русских слов нужно как-то по другому?
Ответить с цитированием
  #8 (permalink)  
Старый 24.03.2009, 13:48
Интересующийся
Отправить личное сообщение для the_name Посмотреть профиль Найти все сообщения от the_name
 
Регистрация: 24.03.2009
Сообщений: 15

Цитата:
а сам скрипт-то хоть запускается
С магической функцией? Видимо, нет. Во всяком случае на запуск showBanner не срабатывает. В консоле ошибок тишина.
Ответить с цитированием
  #9 (permalink)  
Старый 24.03.2009, 13:51
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от the_name
Не работает также и замена:
прекрасно работает.
только что проверил на этой странице же.
я бы на вашем месте читал ссулки даваемые вам, полностью.
там на второй странице есть скрипт, не передергивающий страницу.
также вот, еще одна тема про замену
эти скрипты будут получше, чем простая замена, тем что не перерисовывают страницу.
но есть пара мелких багов(они все описаны), исправление которых предоставляется вам
Ответить с цитированием
  #10 (permalink)  
Старый 24.03.2009, 14:22
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от the_name
Видимо, нет.
alert в начало файла добавьте, у проверьте.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрыть ссылку на js Googert Общие вопросы Javascript 10 21.02.2012 17:29
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44
Кроссдоменный GET запрос. Нужна помощь! notxcain AJAX и COMET 4 07.12.2008 20:55
Загрузка дополнительного js кода с сервера Anonymous2008 Общие вопросы Javascript 5 20.11.2008 12:33
опубликуйте пожалуйста функционал JS scuter Сайт Javascript.ru 21 05.06.2008 17:44