2011-05-26 76 views
1

可能重複:
JavaScript works on Safari 3 but not on newer versions爲什麼我的代碼不能在所有瀏覽器中工作?

下面的JavaScript正在與IE瀏覽器而不是在Safari/Firefox中:

function loadframe() { 
    var iframeEl = document.getElementById("ifrm"); 
    if (!iframeEl) { 

     var el = document.createElement('<iframe id="ifrm" width="80" height="80" src=\'<!--EP CLASS="com.epiphany.presentation.ServerURLWriter" ACTION="campaign_segment_load" TEMPLATE="campaign\\campaign_segments" -->\' onload="dw_display(\'ifrm\',\'segmentspn\')" ></iframe>'); 

     document.body.appendChild(el); 
     return true; 
    } 
    return false; 
} 

任何人能發現這個問題?

回答

2

將HTML字符串傳遞給document.createElement()的能力是Internet Explorer的專有功能。其他瀏覽器不允許你這樣做。

一個可能的解決方案是創建一個包裝元素,並將其設置爲innerHTML爲您在那裏的HTML字符串。

function loadframe() { 
    var iframeEl = document.getElementById("ifrm"); 
    if (!iframeEl) { 
     var el = document.createElement('div'); 
     el.innerHTML = '<iframe id="ifrm" width="80" height="80" src=\'<!--EP CLASS="com.epiphany.presentation.ServerURLWriter" ACTION="campaign_segment_load" TEMPLATE="campaign\\campaign_segments" -->\' onload="dw_display(\'ifrm\',\'segmentspn\')" ></iframe>'; 

     document.body.appendChild(el); 
     return true; 
    } 
    return false; 
} 

請注意,你的HTML也無效—你不能有一個屬性內的HTML註釋。

+0

脫帽安迪...優秀...謝謝你非常......它在Safari上工作,但不在Mozilla中工作......無論如何,這是非常棒的幫助。我們修改它以在Mozilla中工作。 – hancok 2011-05-26 11:11:11

相關問題