Помогите адаптировать скрипт для Оперы под Greasemonkey (IMDB: показывает рейтинги фильмов на странице актера)

Я написал небольшой скриптик под Оперу. Он показывает рейтинги IMDB-фильмов прямо на странице актёра:

Screen shot

Подключается тупо через User JavaScript Folder.

Работает следующим образом: на каждый фильм делается обращение к странице фильма, результат распарсивается и отображается. В каждый момент времени идёт одно обращение, чтобы не перенагружать сервера. Поэтому рейтинги отображаются не сразу, а со скоростью 1 фильм в 2 — 3 секунды.

Проблема: скрипт не работает под Firefox/Greasemonkey.

В скрипте я использую jQuery, который подключается самим сайтом IMDB. Но jQuery подключается не в секции head, а в самом низу страницы, поэтому я использую страшную конструкцию

window.onload = (function() {var chain = window.onload; return function() {dm9_imdb_init(); if (chain) chain();}})();

для старта своей функции. Может быть, поэтому, а, может быть, ещё почему-то, скрипт не стартует под Greasemonkey (простые скрипты на нём я запускать умею).

Честно говоря, долго разбираться не было времени. Если у кого есть желание покопаться, или просто умные мысли, буду рад вашей помощи в адаптации скрипта. Можно будет оформить это в отдельный плагин.

Скрипт: dm9.ru/examples/js/imdb/imdb.user.js

P. S. Про оптимизацию. Да, работает всё медленно. Но вариант «сохранить рейтинг у себя на сервере и отдавать за один запрос» противоречит пользовательской лиценции IMDB, и поэтому делать этого нельзя :)
  • Вопрос задан
  • 3000 просмотров
Решения вопроса 1
Guria
@Guria
Насколько я помню, GM скрипты запускаются в изолированном js контексте. Вам необходимо подключать Jquery через механизмы самого GM.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы