Собственно есть userjs код
Тут самое начало и тут же проблема, как преобразовать в greasemonkey этот код
var cookieName = 'userjs_data';
*!*
opera.addEventListener("BeforeExternalScript",function(l)
{
var m=l.element.getAttribute("src",false);
*/!*
if(m)
{
if(m.search(/^http:\/\//i)!=-1&&m.search(/http:\/\/(\w\.)*mysite\.net(:\d+)?\//i)==-1)
{
l.preventDefault()
}
}
}
,false);
Тут я незнаю чем заменить set(document.getElementById("downl"));
function g()
{
if(location.href.search(/^http:\/\/(www\.)?mysite\.net\/download\/.+\.html$/i)!=-1)
{
*!*
set(document.getElementById("downl"));
*/!*
var o=document.getElementById("dvdownl");
if(o)
{
if(o.md5crypt&&o.md5crypt.value)
{
j(cookieName,e(o.md5crypt.value),0,".mysite.net")
}
o.submit()
}
return
}
Тут пытался заменить var l=document.selectNodes("//a[@href]"); на get...byTagName, ...evaluate не вышло
if(location.href.search(/mysite\.net\/tmpl\/download\.php(\?link=)?/i)!=-1)
{
if(top!=self&&location.href.indexOf("#userjs")==-1)
{
top.location.href=location.href+"#userjs";
return
}
*!*
var l=document.selectNodes("//a[@href]");
*/!*
for(var m=0;m<l.length;m++)
{
if(l[m].href.search(/^http:\/\/(\w+\.)?mysite\.net\/download[\da-f]+\//)!=-1)
{
l[m].onclick=null
}
}
var n=f(cookieName);
k(cookieName,".mysite.net");
......
Ну а тут начинается самое интересное, по идее cookies он должен захватывать и преобразовывать или же нет?
function j(m,o,l,n)
{
o=o?escape(o):"";
n=n?n:"";
l=l?l.toGMTString():"";
document.cookie=m+"="+o+"; domain="+n+"; path=/; expires="+l
}
function f(m)
{
var p=m+"=";
var o=document.cookie.indexOf(p);
if(o==-1)
{
return null
}
var n=document.cookie.indexOf(";",o+p.length);
if(n==-1)
{
n=document.cookie.length
}
var l=p.length;
return unescape(document.cookie.substring(o+l,n))
}
function k(l,m)
{
m=m?m:"";
document.cookie=l+"=; domain="+m+"; path=/; expires="+new Date((new Date).getTime()-100000000000).toGMTString()
}
на Опере работает идеально, но в Firefox (greasemonkey) работать на всю мощь отказывается
Вот что мне удалось сделать(изменил только верх, где addEventListener)
var cookieName = 'userjs_data';
*!*
window.addEventListener("load",function(l)
{ aelements = document.getElementsByTagName("a");
for (l=0;l<aelements.length;l++)
{
var m = aelements[l].getAttribute("src",false);
*/!*
if(m)
{
if(m.search(/^http:\/\//i)!=-1&&m.search(/http:\/\/(\w\.)*mysite\.net(:\d+)?\//i)==-1)
{
l.preventDefault()
}
}
}
}
,false);
Помогите плиз отладить скрипт и где надо что-то добавить/удалить/изменить и т.п.
p.s. Я так полагаю проблема в cookies и в var l=document.selectNodes("//a[@href]"); и ещё Консоль ошибок показывает что неизвестно l.element