2010-07-28 123 views
0

中的以下html呈現在IE7中,但不會呈現在Firefox或Chrome中?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 > 

回答

0
dynamicFormIframe = (dynamicFormIframe.contentWindow) ? dynamicFormIframe.contentWindow : (dynamicFormIframe.contentDocument.document) ? dynamicFormIframe.contentDocument.document : dynamicFormIframe.contentDocument; 

contentDocument.document是無義;該條款將永遠不會被採納。不支持非標準contentWindow媒體資源的Chrome將回退到使用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字符串分割線和格式錯誤的doctype,是複製和粘貼錯誤?)