There are 5 previous versions of this script.
// ==UserScript==
// @name ticker
// @namespace smk
// @description addsTicker
// @include *
// ==/UserScript==
var flashvars=[
['textLoading','Loading ...'],
['fetchOnStart','true'],
['updateInterval','0'],
['readyCallback','YAHOO.Finance.Ticker.swfCallback'],
['isPaused','0'],
['speed','2'],
//please edit the below line to customize the ticker, below is an example, before the question mark is the descriptor
['symbols','CWGIX,BXC,GOOGLE?GOOG']
];
var otherOptions={
'updateTime':15*60*1000
};
var flashvarsStr="";
function addTicker(){
if(GM_getValue("iframe",-1)==-1) GM_setValue("iframe",0);
var iframe=GM_getValue("iframe");
//alert(document.evaluate("//iframe",document,null,7,null).snapshotLength);
GM_setValue("iframe",iframe+document.evaluate("//iframe",document,null,7,null).snapshotLength);
if(iframe>0) GM_setValue("iframe",iframe-1);
else if(ticker=document.getElementById('yahooFinanceTickerGreasemonkey')){
//update
ticker.innerHTML=ticker.innerHTML;
}else{
if(document.getElementById('yahooFinanceTickerGreasemonkey')==null){
var i;
var ticker=document.createElement('div');
ticker.style.backgroundColor="black";
//enable scrolling
var symbols,symbolsIndex;
for(i=0;i<flashvars.length;i++) if(flashvars[i][0]=='symbols'){symbolsIndex=i; break;}
if(symbolsIndex>0 && (symbols=flashvars[symbolsIndex][1]) && symbols.length>0){
for(var times=30/symbols.replace(/,.*?\?/,",").length,i=0;i<times;i++) symbols+=","+flashvars[symbolsIndex][1];
flashvars[symbolsIndex][1]=escape(symbols);
}
for(i=0;i<flashvars.length;i++){
flashvarsStr+=flashvars[i][0]+"="+flashvars[i][1]+((i!=flashvars.length-1)?"&":"");
}
ticker.id='yahooFinanceTickerGreasemonkey';
ticker.innerHTML=
'<embed type="application/x-shockwave-flash" src="http://us.js2.yimg.com/us.yimg.com/i/us/fi/swf/financeticker_1.12.swf"'+
'allowscriptaccess="always" '+
'flashvars="'+flashvarsStr+'"'+
' width="100%" height="20px">';
document.body.appendChild(ticker);
}
}
if(otherOptions.updateTime && otherOptions.updateTime) window.setTimeout(addTicker,''+otherOptions.updateTime);
}
window.addEventListener('load',addTicker,false);
