[英]Dynamic Iframe IE Name Issue
這似乎是一個常見問題,而且我所看到的解決方案似乎對我沒有用。
我們有一個動態生成並插入的iframe,並帶有一個提交給它的表單。 在FF和IE8中工作正常,但是在7中,我們遇到了iframe名稱問題(IE不想使用element.name或element.setAttribute(“ name”,)來設置iframe名稱)。
因此,我已將代碼轉換為以下代碼:
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模式的IE顯示propdescName的屬性。 這種差異會導致這種形式的錯火嗎? 還是我錯過了其他東西?
謝謝,Psy
(PS。請在iframe變量名稱上不要抱怨iFrame:p)
我認為您可以使用document.createElement('<iframe name="trafficreport">');
但是我不確定它是否被稱為document.createElement('IFRAME')
是否可以,即使在IE中也可以。
我們正在使用動態iframe將跨域JSONP調用沙盒化,並且在IE中可以正常工作。 我使用的代碼是:
var ifr = (/MSIE (6|7|8)/).test(navigator.userAgent) ?
document.createElement('<iframe name="'+id+'">'):
document.createElement('iframe');
ifr.name = id;
您可以在此處單擊“演示”鏈接來查看工作示例 。 如果該演示有效,則表明您的代碼有問題,如果不起作用,則說明您的IE配置有問題。
唯一適用於我的解決方案是通過將元素注入DOM后更改名稱:
window.frames [名稱]。名稱=名;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.