Autor Zpráva
Jirka_0
Profil *
Zdravím,
v JavaScriptu jsem docela dlouho nedělal, a tak se chci zeptat, jak se zkopíruje označený text na stránce do schránky (jakoby simulace CTRL + C).
Jde mi o to, že si dělám takový skript do Firefoxu, že po kliknutí na záložku mě to automaticky otevře nový panel a dá mi označené slovo vyhledat v Googlu.

Díky
Witiko
Profil
Nejedná se o mojí tvorbu, pouze o moji úpravu cizí práce. Funkce navrátí označený text, případně false, pokud není schopná text získat.

function getSel() {
  if(document.getSelection) {
    return document.getSelection();
  } else if (document.selection&&document.selection.createRange) {
    return document.selection.createRange().text;
  } else {
    return false;
  }
}
Jirka_0
Profil *
Tak to by fungovalo, teďka jen, jak udělám, aby se otevřelo nové okno (v lepším případě panel, ale to bude asi těžší [možná pomůže, že to bude jen pro FF]).
Výsledek pak hodím sem.
Díky.
Jirka_0
Profil *
Tak jsem skončil u tohoto:

javascript:var oznacenyText;if(document.getSelection) { oznacenyText = document.getSelection(); } else if (document.selection&&document.selection.createRange) { oznacenyText = document.selection.createRange().text; } window.open("http://www.google.cz/search?q="+oznacenyText);

Skoro to dělá to, co má.. Chyba je taková, že v původním panelu (kde ten text označím) se vše vymaže a zobrazí se jen "[object Window]" a titulek se nastaví právě na ten javascriptový kód.
Witiko
Profil
Pokud jde o bookmarklet jen pro firefox, vystačíš si jen s getSelection. Toto by mělo fungovat:

javascript:window.open("http://www.google.cz/search?q="+encodeURIComponent(document.getSelection()));void(0);


A toto by mělo fungovat ve všech prohlížečích:

javascript:var txt = document.getSelection?document.getSelection():document.selection.createRange().text;if(txt)window.open("http://www.google.cz/search?q="+encodeURIComponent(txt));void(0);
Jirka_0
Profil *
To je přesně ono, díky.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: