Этот скрипт пытается включить jQuery первым делом:
(function()
{
if (typeof unsafeWindow.jQuery == 'undefined')
{
var GM_Head = document.getElementsByTagName('head')[0] || document.documentElement, GM_JQ = document.createElement('script');
GM_JQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
GM_JQ.type = 'text/javascript';
GM_JQ.async = true;
GM_Head.insertBefore(GM_JQ, GM_Head.firstChild);
}
GM_wait();
})();
Эта проблема заключается в том, что jQuery гарантированно будет загружен при переполнении стека ... если его нет, у вас гораздо большие проблемы. Этой замены jQuery не должно произойти, так как она влияет как на уже зарегистрированные плагины (затем на нюкинг), так и на использование более новой версии jQuery, которую в настоящее время делает Stack Exchange, что означает и другие потенциально разрушительные изменения.
Поскольку сценарию не требуется ни одна из последних функциональных возможностей, весь вышеуказанный фрагмент должен быть просто:
GM_wait();
Что касается других проблем, есть еще несколько $
конфликтов ... но вы все еще хотите быть в безопасности в отношении порядка загрузки здесь. Вот более дешевая и все еще безопасная версия, которая ... ну, работает:
var idListString = GM_getValue('idList', '');
var idList = idListString.split(',');
GM_setValue('idList', idList.join(','));
GM_wait();
function GM_wait() {
if (typeof unsafeWindow.jQuery == 'undefined') {
window.setTimeout(GM_wait, 100);
return;
}
unsafeWindow.jQuery(function($) {
var link = $('<a href="#"><em>(Too Stupid)</em></a>').click(removeQuestion);
$('div.question-summary').each(function (index, questionSummaryDiv) {
var id = getId(questionSummaryDiv.id);
if (idList.indexOf(id) != -1) {
$(questionSummaryDiv).hide();
} else {
$('div.started', questionSummaryDiv).append(link.clone(true));
}
});
});
}
function getId (idString) {
return idString.split('-')[2];
}
function removeQuestion () {
var q = unsafeWindow.jQuery(this).closest("div.question-summary").hide(250);
idList.push(getId(q.attr("id")));
setTimeout(function() {
GM_setValue('idList', idList.join(','));
}, 0);
return false;
}