Autor Zpráva
Anonymouz
Profil *
Potřeboval bych vytvořit funkci, která by po spuštění zkopírovala URL stránky a pomocí regulárního výrazu vyzobla koncový slug bez lomítka na konci a na začátku. Zkoušel jsem už všechno možné, ale nic nefunguje.

Příklad:
 Jsem na stránce https://diskuse.jakpsatweb.cz/stranka/nahodna-stranka/ na které se spustí script a ve schránce (clipboard) budu mít uloženou část "nahodna-stranka"

Dokáže mi s tím někdo pomoci?
Keeehi
Profil
Získat poslední část URL je jednoduché.
window.location.pathname.split( '/' ).filter(function(n){ return n != "" }).pop()

Ovšem s kopírováním to je složitější. O tom, jak to moc nejde tu máš celý článek. Kopírování do schránky. Tedy pokud to nepotřebuješ jen pro sebe a zrovna by ses trefil i prohlížečem. To by pak šlo.
Anonymouz
Profil *
Tuto funkci uložím do rozšíření (Shortkeys) v Google Chrome, které dovede spouštět makrem i javascript a budu ji využívat zatím pouze já, takže myslím, že by to mohlo fungovat. Díky za pomoc.
Anonymouz
Profil *
Zkusil jsem to udělat dle pokynů vícero způsoby a myslím si, že to píšu dobře, leč to neběží ani v rozšíření ani v ukázce ani nikde.

Můžeš prosím omrknout, zda v tom mám někde chybu já, nebo to prostě opravdu nefunguje? Živá ukázka

Zkoušel jsem i variantu, že se nebude kopírovat koncová část, ale uplně celá url pomocí document.URL, ale také to nic nezkopírovalo.

Na document.write(document.URL) to to funguje, takže si myslím, že je problém někde v tom výběru, který by se měl zkopírovat nebo jak to popsat.
Díky za rady.
_es
Profil
Anonymouz:
Zkusil jsem to udělat dle pokynů
Ako si sa „podľa pokynov“ dopracoval napríklad k príkazu window.getSelection(url);?
Anonymouz
Profil *
Dle odkazu co poslal Keeehi je potřeba část, kterou chci uložit, nejprve označit.
_es
Profil
Anonymouz [#6]:
Kde konkrétne si sa v tom odkazovanom článku dočítal o nejakom argumente metódy getSelection? (window.getSelection(url))
Anonymouz
Profil *
URL je název té proměnné. Když jsem to zkoušel dle toho odkazu bez té proměnné, tak mi to vyhazovalo chybu, že ten rozsah není definovaný. Teď to sice nevyhazuje chybu, ale zase to nefunguje. Mořím se s tím od středy, takže teď už zkouším všechno možné i nemožné.
Keeehi
Profil
Anonymouz:
Když chceš něco zkopírovat, nejdříve musíš to nejdříve označit a pak to teprve můžeš zkopírovat. Když to budeš dělat ručně, vezmeš myš a označíš část textu na stránce. Když to chceš dělat automaticky, tak úplně stejně musíš nejdříve označit část textu na stránce, tentokrát pomocí javascriptu.
Z toho je snad jasné že pokud je text v proměnné, nemůžeš ho nijak označit, protože toho nejsi schopen ani s myší. Musíš nejdříve dostat ten text z proměnné na stránku, tam ho označit a poté zkopírovat.

Problém trochu je, že chrome nedovolí spustit kopírování ihned po načtení stránky ale až po ruční akci. Živá ukázka
Mnohem hezčí řešení mi přijde, když si spustíš akci kopírování ručně a kopírovaný text se podstrčí. Nemusíš mít mít nic vybráno, jen na stránce zmáčkneš ctrl + c a ve schránce se ti objeví, to co chceš. Živá ukázka
Anonymouz
Profil *
Ten článek je dobrej pouze k tomu, aby si člověk přečetl o problematice kopírování, jinak jako mustr pro tento případ (kdy potřebuju kopírovat slug z url prohlížeče) je k ničemu. Zbytečně mě to zamotalo a zbrzdilo.

Nakonec jsem to musel vyřešit úplně jinak pomocí vytvoření nového elementu textarea, ze kterého to následně vytáhnu.

Zde je ukázka - kdyby to někdo potřeboval taky. Živá ukázka


Keeehi:
Zrovna jsme psali nastejno a odeslal jsem to dřív, než jsem viděl tvou zprávu. Mrknu ještě na tvé řešení. Díky za pomoc.
Anonymouz
Profil *
EDIT: Mrknul jsem na tvé řešení a je to super. Ta první ukázka mi trochu připomíná moje řešení, taky tam vytváříš nový element, ze kterého se to kopíruje. Já mám tento javascriptový kód uložený v rozšíření pro chrome, které se spouští klávesovou zkratkou, takže to je ta ruční akce, kterou Chrome vyžaduje a funguje to (moje i tvoje řešení).
To podstrčení kopírovaného textu je taky dobré, akorát je třeba myslet na to, že se to podstrčí i tehdy, když myší označím ve stránce nějaký text a dám pravým tlačítkem kopírovat. Nicméně z obojího jsem se kotel naučil.

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:

Prosím používejte diakritiku a interpunkci.

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