2014-11-05 149 views
0

我有一個iframe頁面。IE8類型不匹配錯誤?

iframe駐留在同一個域中,所以沒有x域問題。

我需要iframe將它的一些內容複製到父級。

所以我有父頁,象這樣

... 
<div id="some-content"> 
    <iframe src="frame-1.html" style="display:none;"></iframe> 
</div> 
... 

的iframe這是幀1.HTML

<!doctype html> 
<html lang="en"> 
<head> 
</head> 

<body> 
    <div name="content"> 
    <img src="http://placehold.it/300x250/ffffff/E8117F&text=from+frame+1" /> 
    </div> 
    <script> 
    (function() { 
     var content = document.getElementsByName("content")[0]; 
     var iframeName = this.name; 
     var iframeContainer = parent.document.getElementsByName(iframeName)[0].parentNode;0 
     iframeContainer.appendChild(content); 
    })(); 
    </script> 
</body> 
</html> 

它適用於現代的瀏覽器不錯,但未能在IE8/9 ?

我想象的類型不匹配來自內容變量不是類型節點?

任何人都知道我在做什麼錯了?

+0

什麼錯誤你在控制檯? – prog1011 2014-11-05 11:16:20

+0

「類型不匹配」是錯誤逐字記錄 – spinners 2014-11-05 11:18:43

+1

'name'不是'div'支持的屬性..這可能是爲什麼它有問題 – 2014-11-05 11:45:51

回答

1

如果您有問題getElementsByName請改爲querySelectorAll。它在IE8中工作。

var content = document.querySelectorAll('[name="content"]')[0]; 

CSS選擇器功能非常強大,IE8支持足夠的這些功能非常有用。

的屬性選擇在IE8工作的唯一要求是使用HTML5的doctype,

<!DOCTYPE html> 

其中 - 在舊版瀏覽器 - 被滲入嚴格的HTML4。

+0

完美工作,非常感謝 – spinners 2014-11-05 12:04:15