2010-11-07 67 views
16

是否有可能使用jQuery創建元素並向其添加html內容而不指定src屬性?創建一個<iframe>元素並使用jQuery向其添加html內容

的問題是我需要創建一個iframe和我已經有了它的內容(我把它作爲Ajax響應)。不幸的是,我無法指定我從src屬性中得到的響應。我想做類似的事情:

$('<iframe id="someId"/>').append(response).appendTo("#someDiv"); 

回答

34

試試這個:

$('<iframe id="someId"/>').appendTo('#someDiv') 
          .contents().find('body').append(response); 
+2

您可以在將內容添加到iframe之前將其添加到DOM嗎?那會是驚人的Cuz。如果我可以的話,一百萬讚揚 – dezman 2014-02-13 01:05:51

2

爲什麼要使用iframe呢?把它全部放在另一個容器中。除了可以從src屬性加載頁面之外,我無法想象iframe的任何優勢。

我想如果你需要一個iframe用於其他一些目的,比如你加載一個頁面,但你想用ajax響應替換它,你可以使用jQuery替換一個div的iframe並根據需要返回。

另一種可能是,而不是阿賈克斯,修改你的Ajax PHP腳本輸出,你在iframe希望整個頁面。然後使用jQuery用新參數更改iframe中請求頁面的地址以顯示更新的內容。

+1

我發現這個地方是非常有用的情況。我的用戶想要一種方式來打印高動態頁面的特定部分的內容。起初,我打開了一個新窗口,然後用我的內容傳遞給了那個窗口,但彈出窗口很粘。因此,我使用了一個空的iframe來管理內容,然後在iframe上調用window.print:window.frames ['someId']。print(); – 2012-11-16 19:22:14

+0

下面是另一種情況:iframe用於覆蓋IE中的ActiveX控件,否則它們位於任何其他元素之上。但是如果有某種自定義訪問控制,唯一的辦法就是按照正確答案中的步驟進行操作。 – malber 2013-04-18 09:38:51

+0

如果你想報告一個AJAX錯誤,並且該錯誤以HTML頁面的形式返回,那麼將整個錯誤響應粘貼到iframe中是最簡單的(也可能是最好的)。 – mhenry1384 2013-06-13 19:25:13

相關問題