2011-03-25 1 views
1

J'ai un ancien code qui utilise iFrames. Le code s'affiche très bien sur l'écran, cependant, lorsque j'essaie de manipuler certains des éléments via javascript, il ne peut pas les trouver. Par exemple, il est dit que Table est NULL (cependant, je le regarde à l'écran).HTML dans IFrame ne permettant pas l'interaction DOM

Comment puis-je manipuler le code HTML lorsqu'il réside dans un iFrame?

MISE À JOUR: J'ai essayé ce code javascript:

alert(window.frames['iframe_layer1'].document.forms['pagectrls'].elements['ptObj_listbox2'].innerHTML); 

Je suis l'erreur suivante de Firebug: window.frames.iframe_layer1.document.forms.pagectrls.elements.ptObj_listbox2 est définie

Voici une sortie de code de l'iFrame:

<div id="popcont_1" class="popupContainer" style="width: 740px; height: 520px; left: 507px; top: 0px; display: block; z-index: 97;"> 
<iframe id="iframe_layer1" style="width: 738px; display: block;" class="popupFrame" name="iframe_layer1" onload="top.iframeOnload();" src="default.asp?bn=0.7346613&amp;wpo=1&amp;p=1" frameborder="0" scrolling="no"> 
<html> 

<div class="TabPanel" id="paneltab3" name="paneltab3" style="display: inline;"> <div class="colvis">55</div><div style="border: 1px solid rgb(136, 141, 119); position: absolute; width: 198px; z-index: 90; left: 147px; top: 8px; overflow: hidden;" id="ptObj_listbox1main"><div style="z-index: 95; background: none repeat scroll 0% 0% white; overflow-y: auto; overflow-x: hidden; width: 198px; height: 112px; position: relative;" id="ptObj_listbox1div"><table cellspacing="0" cellpadding="0" border="0" style="margin-top: 0px; width: 199px;" id="ptObj_listbox1"><tbody><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row0" lstindx="0" class="LUGridRowHighlight"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Personnel Management</a></td></tr><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row1" lstindx="1" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Safety Management</a></td></tr><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row2" lstindx="2" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">COBRA Administration</a></td></tr><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row3" lstindx="3" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Training Course</a></td></tr><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row4" lstindx="4" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Training Administration</a></td></tr><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row5" lstindx="5" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Job Profile</a></td></tr><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row6" lstindx="6" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Position Control</a></td></tr><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row7" lstindx="7" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Requisition Tracking</a></td></tr><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row8" lstindx="8" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Applicant Management</a></td></tr><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row9" lstindx="9" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Contact Management</a></td></tr><tr ondblclick="lbRowDblClick(this,1, &quot;&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row10" lstindx="10" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Survey</a></td></tr></tbody></table><table style="display: none;" id="ptObj_listbox1archetype"><tbody><tr onclick="lbRowClick(this,&quot;ptObj_listbox1&quot;, &quot;&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=1" id="ptObj_listbox1Row" lstindx="0" class="LUGridRow"><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)"></a></td></tr></tbody></table></div></div><!-- Listbox End --> 

<div style="border: 1px solid rgb(136, 141, 119); position: absolute; width: 198px; z-index: 90; left: 147px; top: 127px; overflow: hidden;" id="ptObj_listbox2main"><div style="z-index: 95; background: none repeat scroll 0% 0% white; overflow-y: auto; overflow-x: hidden; width: 198px; height: 240px; position: relative;" id="ptObj_listbox2div"><table cellspacing="0" cellpadding="0" border="0" style="margin-top: 0px; width: 199px;" id="ptObj_listbox2"><tbody><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row0" lstindx="0" class="LUGridRowHighlight"><td ptcheck="true" style="width: 19px;" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Personal</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-1</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row1" lstindx="1" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Status</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-2</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row2" lstindx="2" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Compensation</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-3</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row3" lstindx="3" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Position History</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-4</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row4" lstindx="4" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Performance Appraisals</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-5</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row5" lstindx="5" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Benefits</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-6</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row6" lstindx="6" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Background</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-7</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row7" lstindx="7" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Medical/Wellness</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-8</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row8" lstindx="8" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Training/Competency</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-9</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row9" lstindx="9" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Attendance</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-10</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row10" lstindx="10" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Timesheet Information</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-11</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row11" lstindx="11" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">Payroll Information</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-12</a></td></tr><tr ondblclick="lbRowDblClick(this,2, &quot;0&quot;);" onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row12" lstindx="12" class="LUGridRow"><td ptcheck="true" class="LUGridCell"><div class="lbCheckTrue"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)">User Fields</a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)">EMP-13</a></td></tr></tbody></table><table style="display: none;" id="ptObj_listbox2archetype"><tbody><tr onclick="lbRowClick(this,&quot;ptObj_listbox2&quot;, &quot;0&quot;);" pturl="ajxcmd.asp?datactrl=&amp;xCmd=LSTRCLICK&amp;xLstNDX=2" id="ptObj_listbox2Row" lstindx="0" class="LUGridRow"><td ptcheck="false" style="width: 19px;" class="LUGridCell"><div class="lbCheckFalse"></div></td><td class="LUGridCell"><a class="dummyLinks" href="javascript:void(0)"></a></td><td class="ColVis"><a class="dummyLinks" href="javascript:void(0)"></a></td></tr></tbody></table></div></div><!-- Listbox End --> 

<input type="button" onclick="btnClick(this, 'ListRowUp');" style="top: 127px; left: 360px; width: 60px; height: 24px;" value="Up" tabindex="-1" id="ptObj_bbutton1" class="ptbutton" pttype="b" ptlayndx="61" ptdisp="false" ptpopup=""><div class="colvis">62</div><input type="button" onclick="btnClick(this, 'ListRowDown');" style="top: 153px; left: 360px; width: 60px; height: 24px;" value="Down" tabindex="-1" id="ptObj_bbutton2" class="ptbutton" pttype="b" ptlayndx="62" ptdisp="false" ptpopup=""><div class="colvis">63</div></div> 


</body></html> 
    </iframe> 
    </div> 
+0

La source iframe appartiennent à un autre domaine? – jackJoe

+0

Vous devriez pouvoir si vous travaillez à partir du cadre parent. Y a-t-il une chance que vous puissiez poster plus de détails pour nous? – whoughton

+0

Quels détails auriez-vous besoin de voir? La source n'appartient pas à un autre domaine. – webdad3

Répondre

2

essayer d'obtenir votre iframe et le contenu de façon suivante

var iframe_layer1 = document.getElementById('iframe_layer1'); 

iframe_layer1.contentWindow.document.forms['pagectrls'] ... // and so on 

aussi si vous connaissez l'ID de l'élément que vous pouvez l'utiliser pour trouver l'élément sans l'aide du formulaire ici, vous pouvez accéder à votre table

vat myTable = iframe_layer1.contentWindow.document.getElementById ('ptObj_listbox2'); alerte (myTable .innerHTML);

1

Si la fenêtre parent et le contenu IFRAME sont en cours de livraison à partir de domaines différents, vous ne serez pas en mesure d'utiliser le javascript pour manipuler le contenu DOM chargé de l'autre domaine. C'est une fonctionnalité de sécurité des navigateurs modernes appelée la politique de même origine.

+0

Je ne pense pas que ce soit ça. Comme il vient du même domaine. Merci quand même. – webdad3

3

Tous les navigateurs modernes vous permettent de déboguer du code ET d'exécuter JavaScript de manière interactive. Ceci est utile dans des cas comme votre - arrêt quand une exception est levée et commencer à diminuer votre déclaration jusqu'à ce que cela fonctionne.

Dans votre cas, il manque probablement un élément (c'est-à-dire que je ne vois pas de balise FORM dans votre exemple de code HTML).

Essayez de déboguer et d'exécuter des instructions interactivement jusqu'à ce que vous trouvez que l'on échoue:

window.frames['iframe_layer1'] 
window.frames['iframe_layer1'].document 
window.frames['iframe_layer1'].document.forms['pagectrls'] 
window.frames['iframe_layer1'].document.forms['pagectrls'].innerHTML 
Questions connexes