Autor Zpráva
peta
Profil *
jak ziskat promennou v JS v iframu?

mam stranku, kde mam vlozeny iframe, treba aaa.htm a v tom iframe je definovan tag script, na ktery nemuzu sahat a je v nem pole hodnot, ktere bych rad nekam pretahl do hlavniho dokumentu.

<iframe id="aaa1" name="aaa" src="aaa.htm" style="visibility:hidden;height:0;width:0"/>
<script>
document.write(window.aaa); // [object Window]
</script>

aaa.htm
<script>
pole=["aaa","bbb"]
</script>
peta
Profil *
document.write(window.aaa.document)
ale na .getElementsByTagName('script').item(8)
mne to uz nepustilo, neco, ze pristup odepren...
peta
Profil *
a jeste dotaz, existuje neco jako PHP print_r nebo fprint_r? co vypise pole objektu...
Dero
Profil
window.aaa.contentWindow.document.getElementsByTagName('SCRIPT').item ... ?
peta
Profil *
"window.aaa.contentWindow.document.getElementsByTagName('SCRIPT')"

Chyba: uncaught exception: OdepYení pYístupu pro získání vlastnosti Window.contentWindow

Dero neco dalsiho?
Dero
Profil
Kolekce frames? To je starší metoda, ale bojím se, že to dopadne úplně stejně.

window.frames[0].contentWindow... ?
Oswald
Profil
peta Pokud obsah iframu není ze stejné domény jako stránka, tak to nepůjde.
peta
Profil *
Oswald
Ok, ale kdyz se dostanu na document, dal by se obsah vytahnout snad do promenne, coz vlastne uz je v poli a z toho pole by to snad nejak melo jit, ne?
Nechci se toho jen tak vzdat, na jedne nejmenovane webce maji JS se jmeny obrazku, ktere by jsem chtel pouzit pro generovani galerie. Takove hackovani javascriptem :)

doslova ten script je tam takto:
<script language="JavaScript" type="text/javascript">
<!--

var browser=null;

if (document.all)
browser = 'ie';
if (!document.all && document.getElementById)
browser = 'nn6';

var obj; var obj2;
var timerID
var old

var seznam_fotek=new Array();
var popis_fotek=new Array();
var blokovana=new Array();
var ktera=1;

seznam_fotek[1]="culiena_15.jpg";
popis_fotek[1]="***Lucijena";
blokovana[1]="";
seznam_fotek[2]="culiena_12.jpg";
popis_fotek[2]=":-)";
blokovana[2]="";
seznam_fotek[3]="culiena_11.jpg";
popis_fotek[3]="jaß";
blokovana[3]="";
seznam_fotek[4]="culiena_16.jpg";
popis_fotek[4]="";
blokovana[4]="";
seznam_fotek[5]="culiena_17.jpg";
popis_fotek[5]="";
blokovana[5]="";
peta
Profil *
a na element A se dostanu, i na body, to mi jak vysvetlis.
//x=window.xkoportret.contentWindow.document.getElementsByTagName('a') ;

V nejhorsim jsem ochoten pristoupit na brutalni PHP script, kdyz uz vim, jak to replacuji a vlozim si to normalne do stranky do JS. Ale chtel jsem to udelat, pokud to pujde, jen v js.
Dero
Profil
Aha, já jsem z toho půvosdního dotazu vyrozuměl, že cílová stránka je na stejné doméně. Pokud není, tak to opravdu nejde.
peta
Profil *
Dero
Sim te, nerikej mi, ze neco nejde.
Ja uprednostnuji pravidlo, ze je vsechno mozne, jen na to treba cas. A na tom zakladam veskere teorie.

Dostal jsem se na tagy SCRIPT a nevim, jak dal.
Jak?
Finta fn :) Po ranu to dobre mysli...

d=window.aaa.document;
d.open('text/html');
x=d.getElementsByTagName('SCRIPT');
document.write(x);
d.close();

Dero A najednou to jde. Jak je to mozne? Ze by to vzdycky slo? :)
peta
Profil *
Oswald Totez co Dero, jak to, ze mi to najednou jde, ikdyz rikas, ze ne?
peta
Profil *
V podstate by to mohlo byt delany jako bookmarky, mozna by to aj bylo lepsi.
Jenom potrebuji, abych nekde zobrazil seznam obrazku, kde nazvy jsou v jinem JS...
Tohle zkudsim promyslet nez se trapit s tagy SCRIPT :)
peta
Profil *
uz mi to funguje jako bookmarklet. Upravil jsem script nejblize podobny "List of images"
http://www.bookmarklets.com/tools/data/index.phtml
Fred
Profil
Máš to někde online?
peta
Profil *
Fred
Mam, ale nechci to zverejnovat, aby to nenahlasili programatorum daneho serveru a ti mi to nezatrhli :)

V podstate pro reseni s bookmarky staci ten zmineny.

Pro iframe se da napsat treba toto:

<form name="f" action="#">
<table>
<tr>
<td>nick <input name="nick" type="text" value="" /></td>
<td><input type="button" value="Nacti" onclick="nacti()" /></td>
</tr>
<tr>
<td><input type="button" value="Ukaz foto" onclick="zobraz()" /></td>
</tr>
</table>
</form>

<iframe id="aaa1" name="aaa" src="http://diskuse.jakpsatweb.cz/" ></iframe>

<script>
function objGet(x)
{var d=document;return (d.getElementById?d.getElementById(x):d.all?d.all[x]:d.layers?d.layers [x]:null);}


t3="http://server.xx/";

function nacti()
{
var i;
i=t3+document.f.nick.value;
objGet("aaa1").src=i;
}


function zobraz()
{
d=window.aaa.document;
d.open('text/html');
x=d.getElementsByTagName('SCRIPT');
document.write(x);
d.close();
}

</script>

... snad jsem na neco nezapomnel, je to jen vytazek z kodu.
Navic ted resim jinej problem, potrebuji ID a to maji zasite na radku <a href=javascript:('neco','neco','idecko')>
peta
Profil *
konkretne k tomu jinemu problemu...
potrebuji najit v dokumentu "SPAN", ktery ma urcity "class", rekneme prvni. V tom spanu je "A" jako nektery z uzlu, tez staci prvni a v tom "A" je uz "href", ktery bych si rozparsoval a zpracoval...

Jinak je ten bookmark v podstate stejny, jako ten zmineny.
peta
Profil *
Kdyby jste to nekdo nekddy potrebovali, tak ve FF funguje jen a pouze toto s item:

a=document.getElementsByTagName('SPAN');
for(i=0;i<a.length;i++)
if(a.item(i).className=='aaaaaa')
{b=a.item(i).childNodes;i=a.length;}

Zkousel jsem to s normalnim polem a[i].className a psalo to chybu
Toto téma je uzamčeno. Odpověď nelze zaslat.

0