Autor Zpráva
peteo
Profil
asi hodinu som čítal všetky príspevky na túto tému, skúšal som a predsa sa musím opýtať:

mám script:

<iframe id="text1" name="aaa" src="x.htm" style="visibility:hidden;height:0;width:0"></iframe>
<script>
d=window.aaa.document;
d.open('text/html');
x=d.getElementsByTagName('P')[0];
document.write(x);
d.close();
</script>

ktorý je v podstate úplne jasný. Ale:

vypisuje: undefined

pričom v dokumente v iframe x.htm má každý tag <P> id="text1", teda <P id "text1">.
pri zmene na

x=d.getElementsByTagName('P');

vypisuje: [object]

x=d.getElementById('text1');

vypisuje: null.

Ako to mám urobiť, aby mi to vypísalo obsah medzi tagmi <P> a </P> v iframe?

Ďakujem za pomoc.
peta
Profil *
peteo
pričom v dokumente v iframe x.htm má """"""každý"""""" tag <P> id="text1", teda <P id "text1">.
pri zmene na ...

To slovicko "každý" je velmi dulezite, protoze podle definice je ID jedinecne.
To znamena, ze stejne ID smi existovat MAX 1x.
Naproti tomu, treba NAME a CLASS smi existovat vicekrat.
<input type=radio name=aaa value=1>
<input type=radio name=aaa value=2>
<input type=radio name=aaa value=3>
<p class=aaa>
<i class=aaa>
<table class=aaa>
Dale, kdyby sis dal tu praci a pohledal na inetu, co dela funkce getElementById() tak by ses dozvedel, ze vrati 1 objekt s danym ID,
Naproti tomu funkce getElementsByTagName('P') vrati serii objektu (ElementSSS). V cemz je docela rozdil.
peteo
Profil
OK.
Spravené.
Aj tak vracia x=d.getElementsByTagName('P'); hlášku [object] a ja potrebujemvypísať obsah objektu.
:-(
Leo
Profil
Co je to "obsah objektu"? Leo
peteo
Profil
Co je to "obsah objektu"?

Aby mi to nevypísalo [object], čo je, predpokladám ten <tag>, ale jeho obsah, teda to, čo je medzi tagmi <tag> a </tag>.
peta
Profil *
x=d.getElementsByTagName('P')
[object]
co treba y=x[0], kdyz je to pole objektu?
nebo y=x.childNodes[0]
alert(y.innerHTML);
peteo
Profil
peta

nefunguje.

Ide o to, že potrebujem obsah toho <p>blablabla</p> do premennej, aby som ho mohol porovnávať s iným textom (v inej premennej) a v prípade zhody (i čiastočnej) vypísať obsah toho tagu.

Mám to síce ošetrené v php:

<?
echo "Hľadané slovo: <font color=red>".$slovo."</font><br>";
$strednik=chr(59);
$meno=Array("0-9","a", "aaa", "aaaa", "b", "c","cs","d","dj","e","eee","f","g","h","ch","i","iii","j","k","l","lj ","m","n","nj","o","oe","ooo","p","q","r","rs","s","sz","t","tj","u"," uuu","v","w","x","y","z","zs");
$najdene=0;

for ($i=0; $i<=42; $i++){
$riadok=1;
$subor = file("http://lexikon.sk.sweb.cz/".$meno[$i].".htm");
$text = $subor[$riadok];
while ($text<>"")
{
$test=eregi($slovo,$text);
if ($test)
{
echo "<p>".$text."</p><br>";
$najdene=$najdene+1;
}
$riadok=$riadok+1;
$text = $subor[$riadok];
}
}

$testnajdene=($najdene==0);
if ($testnajdene) echo " <font color=red><script>alert('Hľadanie ukončené. Nenájdené žiadne heslo.')".$strednik."</script></font>";
$testnajdene=($najdene==1);
if ($testnajdene) echo "<font color=red><script>alert('Hľadanie ukončené. Nájdené ".$najdene." heslo.')".$strednik."</script></font>";
$testnajdene=($najdene==2);
if ($testnajdene) echo "<font color=red><script>alert('Hľadanie ukončené. Nájdené ".$najdene. " heslá.')".$strednik."</script></font>";
$testnajdene=($najdene==3);
if ($testnajdene) echo "<font color=red><script>alert('Hľadanie ukončené. Nájdené ".$najdene. " heslá.')".$strednik."</script></font>";
$testnajdene=($najdene==4);
if ($testnajdene) echo "<font color=red><script>alert('Hľadanie ukončené. Nájdené ".$najdene. " heslá.')".$strednik."</script></font>";
$testnajdene=($najdene>4);
if ($testnajdene) echo "<font color=red><script>alert('Hľadanie ukončené. Nájdených ".$najdene. " hesiel.')".$strednik."</script></font>";
?>

ale hosting, kde som, nepodporuje php a musím to presmerovaváť na iný web.
A hosting nechcem meniť, lebo aj vo vyhľadávačoch a zoznamoch stránka tu funguje celkom na dobrých pozíciách.
Možno teda to php-ečko pomôže ozrejmiť môj problém - prečo to potrebujem v javaskripte.
Vďaka za každú radu.
Toto téma je uzamčeno. Odpověď nelze zaslat.