Начало: Пример №1: меняем логотип Яндексу
Прошлый раз меня спросили: "А из UserJS есть доступ к переменным страницы?".
Ответ: да.
Я покажу пример с функцией alert(). alert — переменная страницы, метод window. Заместо alert может быть любая другая переменная.
Помните window.wrappedJSObject из прошлой статьи? Нет? Тогда goto "Пример №1: меняем логотип Яндексу".
Вариант работающий в Опере, Файрфокс и Safari GreaseKit:
Nice alert, скрипт, который я делал, использует именно этот код.
В Google Chrome 3 можно было обратиться к window страницы через contentWindow. В Chrome 4 это убрали из соображений безопасности. Говорят, пишите так:
Примечание: Я вообще не вижу смысла писать UserJS для Хрома. Нужно писать .CRX расширения, они обновляться умеют. Это тот же UserJS, но в архиве (плюс мелочь типа manifest.json). Поэтому, про Хром писать я пока не буду.
Продолжение: Пример №3: TwitPic thumbnails
Прошлый раз меня спросили: "А из 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