Тема: Greasemonkey/Scriptish: Автообновление Ajax страниц
Доброго дня. Пишу небольшой скриптик для Firefox+Greasemonkey/Scriptish, но столкнулся с проблемкой.
Страница Ajax-овая. И при обновлении контента, мои изменения на странице исчезают.
Пример
Вот сайт http://juicystudio.com - небольшая страница для тестирования Ajax.
Пишу для нее тестовый код который просто меняет цвет текста.
// ==UserScript==
// @id test@js
// @name for http://juicystudio.com
// @include http://juicystudio.com/*
// ==/UserScript==
(function () {
document.getElementById('update').setAttribute('style','color:red');
})();
При клике на ссылку [Generate random fact], элемент <p> именяет свое содержимое и весь мой красный текст идет к черту.
Я придумал 2 варианта.
1. Это использовать setInterval(...), то есть через какой то промежуток времени запускать мою функцию.
// ==UserScript==
// @id test@js
// @name for http://juicystudio.com
// @include http://juicystudio.com/*
// ==/UserScript==
(function () {
setInterval(function(){document.getElementById('update').setAttribute('style','color:red')},2000);
})();
Но мне почему то кажется что это плохой подход, напрягать браузер скриптом не стоит.
2. Еще как вариант это повесить на сылку свой обработчик.
// ==UserScript==
// @id test@js
// @name for http://juicystudio.com
// @include http://juicystudio.com/*
// ==/UserScript==
(function () {
document.getElementById('fact').addEventListener( "click", function(){setTimeout("document.getElementById('update').setAttribute('style','color:red')",2000)}, false);
})();
Это неплохо когда всего 1 ссылка на странице. А если их тьма? Тогда придется вешать на все.
Вот хотелось бы спросить. А есть еще какие то варианты, что бы добиться моей цели?