Autor | Zpráva | ||
---|---|---|---|
TPav303 Profil |
#1 · Zasláno: 6. 5. 2013, 12:15:22
Dobrý den, měl bych obecný dotaz a poprosil bych případně pouze o nasměrování.
Ve svém zaměstnání využívám systém, který mi na intranetu ve webovém prohlížeči zobrazuje prvky formuláře, které vyplňuji a následně odešlu. Jelikož mám tyto data, které vkládám do tohoto systému již v elektronické podobě, zajímalo by mě, zda by šlo udělat nějaký skript na to, který by mi tato data sám vyplnil do formuláře na intranetových stránkách. Přičemž nemám oprávnění skript zapsat do kódu, který mi tyto stránky generuje a nemám rovněž přístup k souborům serveru. Zajímalo by mě zda lze nějaký takový skript vytvořit a využít. Odkud by se pak mohl spouštět. Pokud bych tento problém měl popsat přeneseně, tak by mě například zajímalo zda můžu vytvořit a odkud můžu spustit skript, který mi vyplní a odešle vyhledávací pole na stránce seznam.cz nějakou mojí přednastavenou hodnotou..;) Budu vděčný za jakoukoli radu, jsem v tomto směru dost zvědavý. Kdybyste měl někdo odkaz na nějaký podobný obslužný skript, budu Vám moc vděčný. S pozdravem TPav303 - Tomáš |
||
_es Profil |
#2 · Zasláno: 6. 5. 2013, 12:34:43
TPav303:
Viď: Bookmarklet. Alebo, do niektorých prehliadačoch idú začleniť vlastné skripty aj inými spôsobmi. |
||
TPav303 Profil |
#3 · Zasláno: 6. 5. 2013, 15:44:02
Děkuji za rychlou odpověď, zodpovídá tu část dotazu, jak javascript spustit.
Zajímalo by mě tedy dále jestli jsou nějaké předdefinované funkce jak osadit určité pole formuláře na stránce a jak do něj vložit hodnotu..;) |
||
TPav303 Profil |
#4 · Zasláno: 6. 5. 2013, 17:40:18
Tak jsem našel zajímavý tip tady:
Adresování prvků dokumentu » Změna hodnoty políčka formuláře Ale ať jsem se snažil zapsat bookmarklet jakkoli podle návodu tak se mi hodnotu do pole těchto formulářů: Různý zápis přístupu k políčku formuláře vložit nepodařilo. Konkrétně jsem zkoušel následující: javascript:document.forms[0][0].value="ahoj"; ..i různé malé obměny, ale neúspěšně.. Určitě už to nebude chtít mnoho.. Dokáže někdo prosím zapsat ten bookmarklet tak aby byl funkční? Budu Vám moc vděčný..;) Tom |
||
TPav303 Profil |
#5 · Zasláno: 7. 5. 2013, 08:30:10
Napadá prosím někoho jak ten bookmarklet upravit, aby byl funkční, nebo kam bych se měl obrátit pro radu?
|
||
_es Profil |
#6 · Zasláno: 9. 5. 2013, 14:12:38
TPav303:
„jak ten bookmarklet upravit, aby byl funkční“ To ti bez živej ukážky asi ťažko niekto poradí. Jednak je tá „funkčnosť“ závislá od stránky, kde má „fungovať“ a tiež nie je celkom jasné, čo to má robiť. |
||
Chamurappi Profil |
#7 · Zasláno: 9. 5. 2013, 16:12:23
Reaguji na TPava303:
„Konkrétně jsem zkoušel následující“ … a stránku ti přepsalo slovo „ahoj“, že? Musíš zajistit, aby příkaz v bookmarkletu neměl návratovou hodnotu. To se dělá třeba operátorem void :
javascript:void(document.forms[0][0].value="ahoj"); Některé prohlížeče také brání tomu, aby skript zapsaný přímo do adresního řádku zasahoval do stránky. Ale ve formě bookmarklety to funguje. |
||
preca1 Profil |
_es:
No on tam právěže tu živou ukázku má :). Je jí ta stránka na JPW (2. odkaz). Pro testovací účely se pokouší změnit první z těch 4 inputů. Mně osobně to teda taky nejde (ve FF). Udělal sem si záložku s odkazem javascript:document.formular.policko.value='ahoj'; Chamurappi: To je ono. Jaktože nefunguje javascript:document.formular.policko.value='ahoj'; return false; ?
|
||
Chamurappi Profil |
#9 · Zasláno: 9. 5. 2013, 17:39:52
Reaguji na precu1:
Příkaz return nefunguje, protože bookmarklet není funkce, ale normální globální blok skriptu. I normální příkazy mívají návratovou hodnotu, celkovou návratovou hodnotu bookmarkletu určuje poslední příkaz, takže krom obalení void em by fungovalo třeba připsat za středník undefined; .
Vrátit false nepomůže, protože jediná hodnota, která zabrání přepsání existujícího dokumentu, je undefined . Posuzování pravdivosti (přetypování na boolean) se tady neděje.
|
||
preca1 Profil |
#10 · Zasláno: 9. 5. 2013, 17:48:02
Super, děkuju za vysvětlení :).
|
||
TPav303 Profil |
#11 · Zasláno: 10. 5. 2013, 16:51:37
Děkuji všem co se angažují ve zodpovězení mého dotazu.. Po Chamurappiho úpravě už je to funkční. Jen bych měl ještě dotaz, v naprosté většině je to funkční, ale například na stránce seznam.cz tento bookmarklet nijak nereaguje, čím to je?
|
||
Davex Profil |
TPav303:
„na stránce seznam.cz tento bookmarklet nijak nereaguje, čím to je?“ Že by mínusem v id formuláře?
Stejně jako Chamurappiho příklad [#7] mi toto na úvodní stránce funguje. javascript:void(document.getElementById("inet-f").q.value="rozbij seznam") |
||
preca1 Profil |
#13 · Zasláno: 10. 5. 2013, 18:41:46
Můžeš ukázat kód bookmarkletu pro Seznam a přesně na jaké URL ho zkoušíš?
|
||
TPav303 Profil |
#14 · Zasláno: 11. 5. 2013, 08:18:57
javascript:void(document.getElementById("inet-f").q.value="rozbij seznam")
Dobře, té funkcionalitě rozumím, ale vychází mi tedy z toho, že formuláře, které mají své id jsou z "proměnné" forms vyčleněny. Nebo respektive, že "proměnná" forms uchovává informace pouze o jednoznačně neidentifikovaných formulářích. Moc děkuji..;) |
||
Davex Profil |
#15 · Zasláno: 11. 5. 2013, 11:40:53
TPav303:
„vychází mi tedy z toho, že formuláře, které mají své id jsou z "proměnné" forms vyčleněny“ Ne. Ve forms je kolekce všech formulářů na stránce. Použil jsem jen jiný přístup.
Chamurappiho příklad funguje také po drobné úpravě. javascript:void(document.forms["inet-f"].q.value="rozbij seznam") |
||
Časová prodleva: 11 let
|
0