我希望在我访问的每个站点上都有一个自定义页面分析页脚......所以我使用了一种方法将 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');
}
}());