Cela semble être un problème commun, et les solutions que j'ai vues ne semblent pas fonctionner pour moi.Dynamic Iframe IE Name Numéro
Nous avons un iframe généré et généré dynamiquement, avec un formulaire qui lui est soumis. Fonctionne bien dans FF et IE8, mais dans 7 nous obtenons le problème de nom iframe (IE ne veut pas définir le nom iframe en utilisant element.name ou element.setAttribute ("name",)).
J'ai converti notre code sur ceci:
function insertTrafRepiFrame(){ var contDiv = document.getElementById('trafficReportDiv'); if(contDiv != null){ var iFrame; try{ iFrame = document.createElement('IFRAME'); }catch(ex){ iFrame = document.createElement('<iframe name="trafficreport">'); } iFrame.name = "trafficreport"; iFrame.id = "trafficreport"; iFrame.style.border = 0; iFrame.src = "http://www.frixo.com/widget/widget-report-area.aspx?road=all%38map=small%38latitude=51.1421%38longitude=-0.07545%38radius=50%38roadsearch=no%38roadlink=yes%38reporttype=full"; while(contDiv.hasChildNodes()){ contDiv.removeChild(contDiv.firstChild); } contDiv.appendChild(iFrame); } }
Avec cette forme:
<form name="traffic_report" id="traffic_report" target="trafficreport" action="http://www.frixo.com/widget/widget-report.aspx" onsubmit="javascript:return CheckResponse(this);" method="get"> <div id="trafficRepFormInps"> <input type="hidden" name="map" value="small" /> <input type="hidden" name="roadsearch" value="no" /> <input type="hidden" name="roadlink" value="yes" /> <input type="hidden" name="reporttype" value="full" /><br /> <label for="road">Type a road below, i.e. M23:</label><br /> <input name="road" value="M23" id="road" class="citysearchbox" type="text" /> </div> </form>
Ce que j'ai remarqué est que dans les outils de développement, le mode IE 7 montre l'iframe un attribut de submitName, où le mode 8 affiche un attribut de propdescName. Cette divergence pourrait-elle causer un mauvais fonctionnement de ce formulaire? Ou ai-je manqué quelque chose d'autre?
Merci, Psy
(PS iFrame se plaint de Pas plus iframe nom de la variable s'il vous plaît. P)
Le createElement ('IFRAME') n'est pas un problème, car il s'agit du bit non-ie, et il fonctionne très bien dans ff en utilisant cette méthode. – Psytronic
Désolé je ne comprends pas ce qui ne fonctionne pas. Pour moi, la clause catch dans votre code ne sera jamais appelée car même dans IE7, la clause try sera couronnée de succès. Je me souviens d'un moment douloureux pour faire l'exemple du lien ci-dessus pour travailler dans IE, en particulier avec l'attribut name. Peut être si vous mettez un débogueur (Visual Web Express peut s'exécuter à distance). Et vous verrez les étapes et peut être repérer une différence. – Mic
Ah, désolé, oui. J'ai mal compris ce que vous essayiez de dire. J'ai changé les deux déclarations dans le try catch, et tester maintenant. – Psytronic