Greasemonkey: рдЦреЛрд▓реЗ рдЧрдП рдЯреИрдм рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдирд╛?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдирд╡ре░ 2015  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: greasemonkey/greasemonkey

рдЕрдм рдЬрдмрдХрд┐ GM_openInTab рдЕрдм рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣рдо рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╡рд┐рдВрдбреЛ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдИ рдЙрд╕ рдЯреИрдм рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреИрдм рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдкрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рднреА рджреЗрдЦреЗрдВ https://github.com/greasemonkey/greasmonkey/issues/2134
(рдХреЗрд╡рд▓ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдкреНрд░рдпреБрдХреНрдд)

рдпрд╣ рдХреЗрд╡рд▓ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ GM_openInTab рд╢реВрдиреНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХрд╛ рд╕рдВрджрд░реНрдн рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рдПрдХ рдПрдВрдХрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдордХрд╛рдЬ рд╣реЛрдЧрд╛ рдФрд░ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реЛрдЧреА рдЬреЛ рдПрдВрдХрд░ред рдмрдбрд╝реЗ рдкреЗрд▓реЛрдб рдХреЗ рд▓рд┐рдП рдЖрдк рдЙрд╕ рдПрдВрдХрд░ рдХреЛ рдЖрдИрдбреА рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдкреНрд░рд╕рд╛рд░рдг рдЪреИрдирд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЯреИрдм рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдмрд╛рдд рдХрд░ рд╕рдХреЗрдВред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡реЗрдм рд╕рд╛рдордЧреНрд░реА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓реЛрдВ рдХреЛ рд╕реБрди/рд╣реЗрд░рдлреЗрд░ рдХрд░ рд╕рдХрддреА рд╣реИред

рдореИрдВ рдЙрд╕реА рдХрд╛рд░рдг рд╕реЗ рдПрдВрдХрд░реЛрдВ рд╕реЗ рдмрдЪреВрдВрдЧрд╛ред

рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде GM_info.uuid рд▓реЗрдмрд▓ рд╕рдВрдЪрд╛рд░ рдЪреИрдирд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдпреВрдпреВрдЖрдИрдбреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ + рдХрдВрдкреНрдпреВрдЯрд░ + рдкреНрд░реЛрдлрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ рдпрд╣ рдХрд╛рдлреА рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
рдкреБрдирд╢реНрдЪ: рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдмреНрд▓реЙрдХ рдореЗрдВ // <strong i="8">@grant</strong> GM_info рдХреЛ рди рднреВрд▓реЗрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рд╣реИ, рди рдХрд┐ рдПрдХ рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдирдП рдкреГрд╖реНрда рдкрд░ рдЪрд▓ рд░рд╣реА рд╣реИред

@Sasstralis рдЖрдкрдХреЛ рдХреНрдпреЛрдВ рд▓рдЧрддрд╛ рд╣реИ "рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рд╣реИ"? рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ UUID рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ - рдХреЗрд╡рд▓ рдЙрд╕реА рдХрд╛ UUIDред

рдпрд╣рд╛рдБ рдПрдХ рддрд░рдХреАрдм рд╣реИ рдЬреЛ рдореИрдВрдиреЗ reddit рд╕реЗ рд╕реАрдЦреА рд╣реИред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдЪрд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЫрджреНрдо рдХреЛрдб рдХреА рдПрдХ рдЙрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рд▓рдХреНрд╖реНрдп рд╡рд┐рдВрдбреЛ рдФрд░ рдкреИрд░реЗрдВрдЯ рд╡рд┐рдВрдбреЛ рдЙрди рд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ ...

var stringData;

var awakener = window.opener || window.parent;
if(awakener && awakener != window)
{
    //Used when a page is launched from a link so that passData can...well...pass data. But we can't use onload from there so instead we're using postMessage here to convey to the "parent" window that this window is ready to recieve data
    awakener.postMessage("Loaded","*");
}

window.addEventListener("message", messageDetected, false);

clickableThing.onclick = function() {
    var newWindow = window.open(this.href,this.target);
    passData(window,newWindow,dataToPass);
    return false;
};

function messageDetected(event)
{
    if(typeof(event.data) == "string" && event.data != "Loaded")
    {
        stringData = event.data;
    }
}

function passData(mainWindow,target,data)
{
    mainWindow.addEventListener("message", passItOn, false);
    function passItOn(event)
    {
        if(event.source == target) target.postMessage(data,"*");
    }
}

@DoomTay , рдХреГрдкрдпрд╛ рд╕реНрд░реЛрдд рд╕реНрд╡рд░реВрдкрдг рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдкрд▓ рдмреИрдХрдХреНрд╡реЙрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

@ the8472 рдиреЗ рдХрд╣рд╛:

рдкреНрд░рд╕рд╛рд░рдг рдЪреИрдирд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ

рдХрд╛рд╢, рдпрд╣ рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рддрдХрдиреАрдХ рдХреЗрд╡рд▓ Fx38+ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрддреАред рдПрдХ рдЕрдзрд┐рдХ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рдПрдкреАрдЖрдИ рдФрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдЗрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рджреЗрдЦреЗрдВ http://stackoverflow.com/questions/2236828/javascript-communication-between-tabs-windows-with-same-origin/12514384#12514384

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

moham96 picture moham96  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

an-electric-sheep picture an-electric-sheep  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lainverse picture lainverse  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

obskyr picture obskyr  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

darkred picture darkred  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ