2014-01-09 147 views

回答

2

我不確定我是否正確理解你的問題。

我們可以通過調用

iframeEl.contentWindow.document

然後我們可以控制HTML,它裏面的CSS得到的iframe文檔。

要小心同源策略:

我們只能控制iframe中相同的來源主要頁面。

1

你想有一個頁面看起來像這樣(摘要):

<html> 
...mypage header... 
<iframe src="otherpage.com" class="myclass" /> 
...mypage footer... 
</html> 

,對嗎?

使用JavaScript,你可以改變的除外「otherpage.com」的內容什麼。您可以更改iframe等的類。我建議使用jquery,因爲它提供了簡單的方法來操作HTML DOM

如果你想改變的iframe內容的外觀,那麼你可以這樣做,但我會強烈建議不要它。如果你決定這樣做,你可以檢查this post解釋如何使用jQuery。你也可以查看this post這是我從這個複製來源:

var frm = frames['frame'].document; 
var otherhead = frm.getElementsByTagName("head")[0]; 
var link = frm.createElement("link"); 
link.setAttribute("rel", "stylesheet"); 
link.setAttribute("type", "text/css"); 
link.setAttribute("href", "style.css"); 
otherhead.appendChild(link); 

我想事情沒有JavaScript的那麼容易。由於安全原因,您無法執行父網站託管的JavaScript以影響iframe目標。如果你有目標站點在你的控制之下,那麼你可以使用一些跨域的通信(你可以看到this post),但這也不是一個微不足道的任務。

一般來說,操縱iframe內容意味着您系統的功能取決於您無法控制的其他系統的功能。你明白,當你這樣做時,你對你的系統的依賴性非常大。如果iframe內容中的內容發生更改,則代碼依賴於它。 我強烈勸阻你遵循這條道路。

希望我幫了忙!