Pull to refresh

Пишем кроссбраузерный UserJS. Пример №2: переопределяем alert()

Reading time1 min
Views2.5K
Начало: Пример №1: меняем логотип Яндексу

Прошлый раз меня спросили: "А из UserJS есть доступ к переменным страницы?".

Ответ: да.

Я покажу пример с функцией alert(). alert — переменная страницы, метод window. Заместо alert может быть любая другая переменная.


Opera и Safari GreaseKit


window.alert = function(){ ... }


Firefox


window.wrappedJSObject.alert = function(){ ... }

Помните window.wrappedJSObject из прошлой статьи? Нет? Тогда goto "Пример №1: меняем логотип Яндексу".

Вариант работающий в Опере, Файрфокс и Safari GreaseKit:

var w = window.wrappedJSObject || window;
w.alert = function(){ ... }

Nice alert, скрипт, который я делал, использует именно этот код.

Google Chrome


В Google Chrome 3 можно было обратиться к window страницы через contentWindow. В Chrome 4 это убрали из соображений безопасности. Говорят, пишите так:

location.href = "javascript:window.alert=function(){ ... }

Примечание: Я вообще не вижу смысла писать UserJS для Хрома. Нужно писать .CRX расширения, они обновляться умеют. Это тот же UserJS, но в архиве (плюс мелочь типа manifest.json). Поэтому, про Хром писать я пока не буду.

Продолжение: Пример №3: TwitPic thumbnails
Tags:
Hubs:
+22
Comments13

Articles

Change theme settings