2010-08-17 48 views
0

我無法找到以下問題的解決方案:我想在iframe中顯示任何網站並向此iframe添加元素(div)。 由於瀏覽器中的跨腳本預防,這似乎是不可能的。在iframe中創建div

有沒有辦法做到這一點?

回答

1

如果您實際上沒有在iframe中託管域,則不會。最好你可以做的是有一個服務器端代理頁面,它複製HTML並插入div。

0

跨域腳本規則明確地阻止了這一點。即使您現在找到解決方案,我將來也會關注它,這可能是一種破解。如果您沒有在您的iFrame中擁有/託管該域名,則該域名被禁止。

一個代理或門面應用程序,操縱HTML並提供服務可能是可能的,但我無法想象這很容易。

這很可能對您沒有用處,但我知道的唯一被認可的方法是使用HTA,所以如果您的應用程序在可信環境(如公司內聯網或信息亭等)中運行, ,你可以採取HTA的方法:http://msdn.microsoft.com/en-us/library/ms536496%28VS.85%29.aspx

個人HTA給我的毛骨悚然。

0

如果你能做到這一點,你可以輕鬆地加載任何網頁到iframe(可能是用戶登錄的網站)並從那裏提取內容。

把安全話題放在一邊,你的代碼還有另一個問題:你需要在iframe的文檔中創建元素,而不是當前文檔,並再次將它附加到iframe的文檔,而不是iframe對象本身:

function addDiv() { 
    var doc = myFrame.contentDocument, 
     newdiv = doc.createElement("div"); 
    newdiv.innerHTML = "foo"; 
    doc.appendChild(newdiv); 
} 
1

你的目標是?

如果你想重新格式化網頁上的內容或運行腳本,那麼你可能需要代理和複製HTML(如MEDER建議)

如果你只是想在自己的頁面重疊或「插入」的東西你可以嘗試在你自己的頁面上放置一個div,並在你想要的iframe頂部設置它的位置。

我必須這樣做才能將iframe放在swf文件之前。

+0

是的,這就是我想要做的:我想爲網站創建某種疊加層,並在此疊加層中顯示元素。 我只是試圖在iframe上創建一個div。它的工作原理,但我認爲我需要找到一個解決方案,以在iframe內滾動時移動div。 – Bob 2010-08-17 22:33:28