2013-02-23 57 views
1

我已经写了一个javascript函数来创建简单的内容iframe,其工作正常在所有浏览器IE9,8,7和铬,但不工作在Mozilla Firefox中,什么是我的代码问题?即使在控制台中没有任何异常。动态创建的内容在Firefox中的iframe问题

function (parent, child, cssfile, jsfilepath) { 

     var iframe = document.createElement('iframe'); 
     iframe.id = ('MyID' + Math.floor((Math.random() * 1000000000000000000) + 1)); 
     iframe.frameBorder = '0'; 
     iframe.scrolling = 'no'; 
     iframe.marginWidth = '0'; 
     iframe.marginHeight = '0'; 
     iframe.hspace = '0'; 
     iframe.vspace = '0'; 
     iframe.allowTransparency = "true"; 

     parent.appendChild(iframe); 

     var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; 

     var inter = window.setInterval(function() { 
      if(iframeDoc.readyState == "complete") { 
       window.clearInterval(inter); 

       iframeDoc.body.innerHTML = child; 

       iframeDoc.body.style.background = "transparent"; 

       addExternalCss(cssfile, iframeDoc); 
       addEmbedCss('body {margin:0px; padding:0px;}', iframeDoc); 
       addJs(jsfilepath, iframeDoc); 
      } 
     },100); 
    } 

编辑

只是在Firebug显示的是空白的iframe

<iframe scrolling="no" frameborder="0" id="MyId350236077714409500" marginwidth="0" marginheight="0"> 

<html><head></head><body></body></html> 

</iframe> 
+0

是否禁用了所有插件,看是否其中一人被阻止内容? – Zefiryn 2013-02-23 07:14:55

+0

哪种插件?火狐插件? – 2013-02-23 07:19:17

+0

是的,尝试暂时停用所有插件并检查页面是否正常工作。如果是这样,请逐个打开它们以找出哪一个导致问题。 – Zefiryn 2013-02-23 11:40:03

回答

1

我发现我的答案

function (parent, child, cssfile, jsfilepath) { 

     var iframe = document.createElement('iframe'); 
     iframe.id = ('MyID' + Math.floor((Math.random() * 1000000000000000000) + 1)); 
     iframe.frameBorder = '0'; 
     iframe.scrolling = 'no'; 
     iframe.marginWidth = '0'; 
     iframe.marginHeight = '0'; 
     iframe.hspace = '0'; 
     iframe.vspace = '0'; 
     iframe.allowTransparency = "true"; 

     parent.appendChild(iframe); 



     var inter = window.setInterval(function() { 
      // put inside function 
      var iframeDoc = iframe.contentDocument || iframe.contentWindow.document; 

      if(iframeDoc.readyState == "complete") { 
       window.clearInterval(inter); 

       iframeDoc.body.innerHTML = child; 

       iframeDoc.body.style.background = "transparent"; 

       addExternalCss(cssfile, iframeDoc); 
       addEmbedCss('body {margin:0px; padding:0px;}', iframeDoc); 
       addJs(jsfilepath, iframeDoc); 
      } 
     },100); 
    }