Это, кажется, общая проблема, и решения, которые я видел, похоже, не работают для меня.
У нас есть динамически сгенерированный и вставленный iframe с формой, которая ему подчиняется. Отлично работает в FF и IE8, но в 7 мы получаем проблему с именем iframe (IE не хочет устанавливать имя iframe, используя element.name или element.setAttribute ("name",)).
Итак, я преобразовал наш код в это:
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);
}
}
С помощью этой формы:
<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>
Что я заметил, так это то, что в инструментах разработчика IE в режиме 7 показывает iframe атрибут submitName, где в режиме 8 отображается атрибут propdescName. Может ли это несоответствие стать причиной пропуска формы? Или я что-то упустил?
Спасибо,
Psy
(PS. Никаких стонов по поводу iFrame над именем переменной iframe, пожалуйста: p)