Autor Zpráva
tito100
Profil
zdravým. pokúšam sa pomocou innerHTML vložit na stránku html text v ktorom sa nachádza aj javascript. v tom javascripte sú nadefinované premenné ktoré sa potom zobrazujú , problem však je, že mi to nefunguje. predpokladám teda že vložený javascript sa nenáčita .

ked som skúšal či nemám chybu inde . tak som nahradil tie premenné globalnymi ktore su načitane mormálne. a to fungovalo. takže chybo může byř len v tom.

ako teda mám načítat premenné JS pomocou ajaxu ?
vopred vdaka

pridavam ešte html ktre sa načita pomocou inhertHTML a ajaxu
<script language="JavaScript" type = "text/javascript" charset="utf-8">
DalsiNazvy[10]='<tr><td><div class="table-padding">ščřžžý</div></td></tr><tr><td><div class="table-padding">ččřžýáFDSFSDF</div></td></tr>';
DalsiObce[10] ='<tr><td><div class="table-padding">ěščř</div></td></tr><tr><td><div class="table-padding">čřřžý</div></td></tr>';
Poznamka[10]  ='<tr><td><div class="table-padding"></div></td></tr>';
Nahlad[10]    ='';
</script>
<table>
		<tr>
      <th><div class="table-padding">signatura</div></th>
      <th><div class="table-padding">uzemie</div></th>
      <th><div class="table-padding">uzemie nemecky</div></th>
      <th><div class="table-padding">okres</div></th>
      <th><div class="table-padding">rok</div></th>

      <th><div class="table-padding">ostatne</div></th>
      <th><div class="table-padding">nástroje</div></th>
    </tr>
    <tr>
      <td><div class="table-padding">0004</div></td>
      <td><div class="table-padding">ščšěččě</div></td>
      <td><div class="table-padding">Albrechtitzěšč</div></td>

      <td><div class="table-padding"> Žïár nad Sázavouěščř</div></td>
      <td><div class="table-padding">1833</div></td>
      <td>
        <img src="gfx/nazev.png" onmouseover="HelpBox.show(event,helpTable('Další názvy',DalsiNazvy[10]));" onmouseout="HelpBox.close();" title="" alt=""/>
        <img src="gfx/obce.png" onmouseover="HelpBox.show(event,helpTable('Další obce',DalsiObce[10]));" onmouseout="HelpBox.close();" title="" alt=""/>
        <img src="gfx/rok.png" onmouseover="HelpBox.show(event,helpTable('Poznámka',Poznamka[10]));" onmouseout="HelpBox.close();" title="" alt=""/>
      </td>

      <td>
        <img src="gfx/search.png" onmouseover="HelpBox.show(event,helpTable('náhled',Nahlad[10]));" onmouseout="HelpBox.close();" title="" alt=""/>
        <img src="gfx/mapa.png" onmouseover="HelpBox.show(event,helpTable('zobrazit mapu',''));" onmouseout="HelpBox.close();" title="" alt=""/>
      </td>
    </tr>
</table>

a tie premenne mam nadefinovane v hlavičke dokumentu
var DalsiNazvy = new Array();
var DalsiObce = new Array();
var Poznamka = new Array();
var Nahlad = new Array();

ešte doda. nevypiše mi to žiadnu chybu v JS konzole . ale ta premenna je proste prazdna
Chamurappi
Profil
Reaguji na tita100:
ked som skúšal či nemám chybu inde . tak som nahradil tie premenné globalnymi ktore su načitane mormálne
Nerozumím. Vždyť teď jsou ty proměnné také globální.
V kódu žádnou chybu nevidím, prosím o odkaz na živou ukázku.

Mimochodem, u interního skriptu nemá smysl atribut charset.
tito100
Profil
Chamurappi:
ukazka zmazana
klikni vpravo na vyhladavanie. so pola Name napíš :lb . a daj vyhladat.
ked sa zobrazý zoznam . tak ked nájdeš kurzorom na ikonky napríklad ikonka domčeka. tak tam sa zobrazý okienko z názvom. ovšem tam by nemal byř len názov. ale aj obsah ktorý je uložený v tých načítaných premenných.
este raz doplnim. teraz ked som to skušal. a dal som namiesto premennej pramo text, ktry bol obsahom tej premennej. tak to funguje. až na to že tým pádom nemůžem použit style="". lebo tam dochádza k narušeniu uvodzoviek
Chamurappi
Profil
Reaguji na tita100:
so pola Name napíš :lb . a daj vyhladat
Nic. Vyskočil alert a konec.

Teď jsem si přečetl znovu tvůj dotaz a pochopil jsem, že narážíš na to, že <script>y dosazené do dokumentu pomocí innerHTML se nevyhodnocují. Ber to jako fakt. Není to chyba, je to vlastnost. Mohl bys ji obejít tím, že regulárním výrazem najdeš obsahy <script>ů a provedeš eval, ale to není moc hezké.

K čemu potřebuješ, aby dotyčné proměnné byly v poli? Proč je nemůžeš umístit přímo do hodnoty atributu? Nebo alespoň to z nich, co je proměnlivé (a zbytek mít v proměnných)?

až na to že tým pádom nemůžem použit style="". lebo tam dochádza k narušeniu uvodzoviek
Stačí, když ty uvozovky zapíšeš entitou.
tito100
Profil
Chamurappi
nieje to len o uvodzovkach.
ked si všimneš hornu lištu. tam sú takisto tie isté ikonky. a po výbere zo zoznamu potrebujem prepísař ich obsah. a to pomocou spomínaných premenných.
ja zi zatial dakujem. skúsim sa pozriet na to eval .
vravýš že to nieje hezké. existuje lepšie riešenie ?
edit
popripade keby som chcel použit to eval. kde to mám dat ? kedze javascript sa nacita pomocou ajaxu. moze sa to dat do onLoad to tej tabulky ktora sa nacita spoločne s ním ?
Chamurappi
Profil
Reaguji na tita100:
existuje lepšie riešenie ?
Použil bych <iframe>.

keby som chcel použit to eval. kde to mám dat ?
Dovnitř AJAXu, tam, kde nastavuješ innerHTML.

moze sa to dat do onLoad to tej tabulky ktora sa nacita spoločne s ním ?
Nemůže, tabulky nemají událost onload.
tito100
Profil
to ma nenapadlo. takže vytvorit neviditelny iframe. pomocou ktoreho načitat samotny JS ?
budú potom platit premené toho framu aj v rodičovskom okne? alevo to ešte treba ošetrit?
btv : to toho vyhladavania bolo treba napisat len lb . alebo ad alebo niečo . v DB su len 4 zaznamy.
a mnohokrat dakujem :-)
_es
Profil
tito100:
budú potom platit premené toho framu aj v rodičovskom okne?
Nedávno som na to odpovedal . Pre premenné to platí rovnako ako pre funkcie.
Chamurappi
Profil
Reaguji na tita100:
takže vytvorit neviditelny iframe
Nemusí být neviditelný. Celá ta hlavní část, která se mění, může být <iframe>, ne?
JS umí komunikovat napříč rámy. Akorát si musíš uvědomit, co je kde.

btv : to toho vyhladavania bolo treba napisat len lb . alebo ad alebo niečo . v DB su len 4 zaznamy.
Máš to rozbité, v Exploreru to nedělá nic.
tito100
Profil
Chamurappi:
Celá ta hlavní část, která se mění, může být <iframe>
to moze. ale ucim sa ajax, a tak to chcem spravit cez to.
riesenie som nasiel. priamo ich dam do funkcie ako argumenty, a ta funkcia vytvory premenne

Máš to rozbité, v Exploreru to nedělá nic.
ono mne to zobazuje vo všetkých prehliadačoch (akurat na linuxe na mozile 2.0 mi blby bublinky). ale to bude asi tým že ich mam najnovšie. vdaka za upozornenie :-), skúsim nainštalovat steršie verzie

_es:
Nedávno som na to odpovedal .
určite prečítam.

ešte raz dakujem. spravím to tým najednoduchším sposobom. a to cez tu funkciu.

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:

0