Мне нужен собственный нижний колонтитул анализа страниц на каждом сайте, который я посещаю ... поэтому я использовал метод для присоединения JQuery к unsafeWindow.
Затем я создаю плавающий нижний колонтитул на странице. Я хочу иметь возможность вызывать команды в меню, выполнять некоторую обработку, а затем помещать результаты в нижний колонтитул. К сожалению, иногда это работает, иногда нет.
В функции printOutput должно быть не менее двух предупреждений. Иногда срабатывает только один, потом (вылетает?) Без ошибок? На других страницах оба оповещения срабатывают, и он находит элемент, но не добавляет дополнительный текст. (например, www.linode.com)
Обновление страницы, затем повторное выполнение команды printOutput, кажется, всегда работает.
Кто-нибудь знает, что происходит ???
Пользовательский скрипт может быть установлен по адресу:
http://www.captionwizard.com/test/page_analysis.user.js
// ==UserScript==
// @name page_analysis
// @namespace markspace
// @description Page Analysis
// @include http://*/*
// ==/UserScript==
(function()
{
// Add jQuery
var GM_JQ = document.createElement('script');
GM_JQ.src = 'http://code.jquery.com/jquery-1.4.2.min.js';
GM_JQ.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(GM_JQ);
var jqueryActive = false;
//Check if jQuery's loaded
function GM_wait()
{
if(typeof unsafeWindow.jQuery == 'undefined')
{ window.setTimeout(GM_wait,100); }
else
{ $ = unsafeWindow.jQuery; letsJQuery(); }
}
GM_wait();
function letsJQuery()
{
jqueryActive = true;
setupOutputFooter();
}
/******************************* Analysis FOOTER Functions ******************************/
function printOutput(someText)
{
alert('printing output');
if($('div.analysis_footer').length)
{
alert('is here - appending');
$('div.analysis_footer').append('<br>' + someText);
}
else
{
alert('not here - trying again');
setupOutputFooter();
$('div.analysis_footer').append('<br>' + someText);
}
}
GM_registerMenuCommand("Test Output", testOutput, "k", "control", "k" );
function testOutput()
{
printOutput('testing this');
}
function setupOutputFooter()
{
$('<div class="analysis_footer">Page Analysis Footer:</div>').appendTo('body');
$('div.analysis_footer').css('position','fixed').css('bottom', '0px').css('background-color','#F8F8F8');
$('div.analysis_footer').css('width','100%').css('color','#3B3B3B').css('font-size', '0.8em');
$('div.analysis_footer').css('font-family', '"Myriad",Verdana,Arial,Helvetica,sans-serif').css('padding', '5px');
$('div.analysis_footer').css('border-top', '1px solid black').css('text-align', 'left');
}
}());