簡體   English   中英

IE7中的HTML渲染,但Firefox或Chrome中沒有

[英]HTML Renders in IE7 but not in Firefox or Chrome

<iframe>的以下html在IE7中呈現,但在Firefox或Chrome中不呈現?

var content = "<!DOCTYPE html PUBLIC \"-//WAPFORUM//DTD XHTML Mobile 1.2//EN\"\"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd\">
<html>
 <body style=\"background-color:#0C0C0C; color:#FFFFFF\"> 
 Please Enter the credentials
 <form name=\"dynamicform\">
 <ul class=\"edgetoedge\" style=\"background-color:#0C0C0C;\"><li><div id=\"errorDiv\" style=\"color:red\"> </div></li> <li> <input id=\"Phone Number:_minLength\" type=\"hidden\" value=\"16\" /> </li>
 <li> </ul> </form> </body> </html>"
<script>
.....
var dynamicFormIframe = document.getElementById('dynamicFormIframe');
dynamicFormIframe = (dynamicFormIframe.contentWindow) ? dynamicFormIframe.contentWindow : (dynamicFormIframe.contentDocument.document) ? dynamicFormIframe.contentDocument.document : dynamicFormIframe.contentDocument;
        dynamicFormIframe.document.open();
        dynamicFormIframe.document.write(content);
....</sript>
<body><iframe id="dynamicFormIframe" src=""></frame></body >
dynamicFormIframe = (dynamicFormIframe.contentWindow) ? dynamicFormIframe.contentWindow : (dynamicFormIframe.contentDocument.document) ? dynamicFormIframe.contentDocument.document : dynamicFormIframe.contentDocument;

contentDocument.document是廢話; 該條款將永遠不會被采用。 Chrome瀏覽器不支持非標准的contentWindow屬性,但會退回到使用contentDocument ,它是與contentWindow不同的對象。

您似乎只想要文檔,而不是窗口,因此請先使用標准contentDocument ,然后僅回退到不支持IE的窗口:

var iframe= document.getElementById('dynamicFormIframe');
var idoc= 'contentDocument' in iframe? iframe.contentDocument : iframe.contentWindow.document;
idoc.open();
idoc.write(content);
idoc.close();

(您的示例還存在許多明顯的拼寫錯誤,例如標簽不匹配,JS字符串分割成行以及格式錯誤的文檔類型,這是復制粘貼錯誤嗎?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM