I když teda hlavní problém je v tom, co se děje v akci při window.addEventListener("blur", ...); to se spouští v kontextu okna, co se zrovna opouští, předpokládám? Čili asi mi to moc nepomůže.
Chm... chápu.. snad. Zkusím. Díky.
Neexistuje způsob, jak zjistit, jestli má fokus tab, který obsahuje dokument s daným frame? Tím bych se vyhnul možná tanečkům s eventy.
Detekuj v obsluze podle vlastností toho window, co je to zač. Například z location nebo parent. Když to nebude ono, tak return.
Dotaz (stejný jako v Greasemonkey)
window.addEventListener("focus", ...);
Stránka, co má framesety/framy.
Potřebuju detekovat změnu fokusu TABu, tohle ale detekuje i změnu rámce/frame v tom tabu/stránce (mám skript navázaný na jeden frame). Jak na to, aby to fungovalo na celý tab?
Jde mi o FF.
Dík :-) hledal jsem "user" a pak "script" :)))
podle toho, na co se chces ptat. kus tady a kus asi vedle v
greasemonkey.
Dotaz
Má cenu se tady ptát na userscripty?
Tak jako prednost davam taky, ale ja obvykle pridavam string ktery dostanu AJAXem ... to se pak atomizuje blbe :-).
Parsuje i neparsuje. Doporučuji pročíst dokumentaci
http://api.jquery.com/jQuery/#jQuery2A především už kvůli tam zmíněným nástrahám dávám přednost atomizování formou řetězených fcí při tvorbě i byť jediného elementu.
jQuery ten string parsuje? Myslel jsem, ze pouziva innerHTML jako
html() ... i kdyz je pravda, ze u append chybi ten warning, ze to nefunguje v XML ...
Vytvořit prázdný prvek a pak mu nastavit obsah je snadnější a efektivnější, než nechat jQuery parsovat ten string. Nebo mi to tak prostě jen přijde.
DOM refreshnout nepotrebuje. Maximalne jestli jQuery ma nejakou cache ... co treba zkusit $('#container p'), jinak receno vyhnout se te tride?
a pro poučení důvod toho wtz? není nějak možné refreshnout DOM?
Tak to wtz. Ale chápal jsem to tak, že to vkládané HTML včetně tagu máš někde ve stringu, takže to jde spíš o něco jako $('#container').append(str);
pixy: díky, to funguje, nefungovalo mi:
$('#container').append('<p class="trida">Nějaký kus HTML…</p>');
setTimeout(function(){ $('.trida').fadeOut(); }, 5000);
Možná jsem suchar, ale v těhle případech raději konzervativně píšu $('<p />').html('Nějaký kus HTML…')
A hlavně ho máš v tom mujDiv.
Jestli spic správně chápu, jde o něco takového:
var delay = 3000, $elm = $('<p>Nějaký kus HTML…</p>');
$('#container').append($elm);
// ...
setTimeout(function(){
$elm.fadeOut();
},delay);
Ano?
Nevím, co přesně myslíš HTML stringem. Zkus dát příklad. Já mluvím o např.
var mujDiv = $("<div />").addClass("hokus");
$("body").append(mujDiv);
A pak ti $(".hokus") musí vrátit minimálně ten tvůj nově vytvořený <div class="hokus"></div>.
a funguje to i při přidání HTML stringu?
Nevím, jestli tě dobře chápu, ale ty přidáš nějaký prvek do DOMu a pak jej skrze $('selector') nenajdeš?
Jestli ano, tak tam máš zaručeně nějakou nehezkou chybu, protože to je naprosto bazální funkčnost.