Portál AbcLinuxu, 8. listopadu 2025 00:10
Také by mi docela pomohlo, kdyby byl nějaký trik, jak nemuset mít v tom bookmarku celý kód, ale pouze odkaz na js knihovnu. Zkoušel jsem DHTML Way, jenže browser mi nedovolí takto nadrzo dotáhnout script z jiné domény.
Řešení dotazu:
action tagu form můžete uvést libovolné URL, klidně tedy adresu interního systému. Jen možná některé prohlížeče zobrazí varování, že se formulář odesílá do jiné domény, než ze které byl zobrazen.
form tam je, tak vyzkouším, třeba to půjde. Díky
. Zdroj dat je cizí systém (nějaké IBM sledování servisů) a tam vyplněná data tahám do interních evidencí (jde o snahu trošku ulehčit papírování). Javascript uložený v bookmarku mi v tuto chvíli obchází problém se zabezpečením - jinak bych s obsahem na IBM stránkách moc nenadělal. Současné řešení funguje (resp. fungovalo, než zas provedli nějaké změny) tak, že vytáhnu položky které mě zajímají (dílem to je v pojmenovaných polích, dílem to vyzobávám text z buněk tabulky) a odešlu na náš server ve tvaru našeURL¶metr1=hodnota2¶metr2=hodnota2. Problém mám s nečitelností (substituce mezer za %20) a tím pádem údržbou, Navíc chci poladit ještě nějaké věci (např. ověření zalogování do interního systému) a Firebug má s takto puštěným kódem problémy.
Teď zkouším tu myšlenku submitnout celý IBM form na náš server, ale zatím se nedaří - odmítá mi to zpracovat. Předpokládám, že tagy jako input či textarea nakonec protlačím, ale mám obavy, zda se přenese i obsah tabulky (je v ní 80% informací)
Jinak problém je vyřešen. Přitažení externího scriptu jsem ověřoval na lokále. Při aplikaci na IBM webu mi selhal a já to chybně vyhodnotil jako security a ona zrada byla v tom, že ty stránky jsou řešeny pomocí frame. Sice jsem zastříhal ušima při pohledu na tahání knihoven pro AJAX Cross Domain, ale nedocvaklo mi to.
Přikládám použitý kód, byť rozhozený do řádků, aby byl čitelnější. Třeba se bude někomu hodit. Kvůli omezené délce a substituci jsem se snažil vyhýbat mezerám a volit jednoznakové proměnné. Timeout je použit pro to, aby se stihla knihovna, která tu fci obsahuje, před voláním načíst (vylepšením se nebráním
)
u="myURL/ibm2gc.js";
w=this.frames[1].frames[0];
var nacteno;
function aJS(){
if(!nacteno){
d=w.document;
s=d.createElement("script");
s.type="text/javascript";
s.src=u;
d.getElementsByTagName("head")[0].appendChild(s);
nacteno=true;
setTimeout("w.ibm2gc()",100)
}
else{ibm2gc()}
}
aJS()
Takhle vypadá v bookmarku (a to je mnohem čitelnější, než původní řešení)
javascript:u="myURL/ibm2gc.js";w=this.frames[1].frames[0];var%20nacteno;function%20aJS(){if(!nacteno){d=w.document;s=d.createElement("script");s.type="text/javascript";s.src=u;d.getElementsByTagName("head")[0].appendChild(s);nacteno=true;setTimeout("w.ibm2gc()",100)}else{ibm2gc()}}aJS()
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.