这似乎是一个常见的问题,而且我所看到的解决方案似乎对我没有用。我们有一个动态生成并插入的iframe,并带有一个提交给它的表单。在FF和IE8中可以正常工作,但是在7中,我们遇到了iframe名称问题(IE不想使用element.name或element.setAttribute(“name”,)设置iframe名称)。所以我已经将代码转换为:函数insertTrafRepiFrame(){ var contDiv = document.getElementById('trafficReportDiv'); if(contDiv!= null){ var iFrame; 尝试{ iFrame = document.createElement('IFRAME'); }捕获{ex} { iFrame = document.createElement(''); } 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); }}使用这种形式: 在下面输入一条道路,即M23: 我注意到的是,在开发人员工具中,IE的7模式显示iframe的SubmitName属性,而8模式的IE显示propdescName的属性。这种差异会导致这种形式的错火吗?还是我错过了其他东西?谢谢,精神病(PS。请在iframe变量名称上不要抱怨iFrame:p) 最佳答案 我想你用document.createElement('<iframe name="trafficreport">');做到了但是我不确定它是否可以调用,因为即使在IE中,document.createElement('IFRAME')也可以。我们正在使用动态iframe将跨域JSONP调用沙盒化,并且在IE中可以正常工作。我使用的代码是:var ifr = (/MSIE (6|7|8)/).test(navigator.userAgent) ? document.createElement('<iframe name="'+id+'">'): document.createElement('iframe'); ifr.name = id;您可以检查working example here,单击“演示”链接。如果该演示有效,则意味着您的代码有问题,如果不起作用,则说明您的IE配置有问题。关于javascript - 动态Iframe IE名称问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2138564/
10-16 20:10