我必須在我的網頁div中包含一個網頁。我想用iframe
這樣的東西來完成DIV
。基本上,我將爲我的div提供一個URL,並且必須在其內部打開它...在現代HTML中,我們是否有這樣的東西?我無法使用框架,因爲某些瀏覽器對框架有問題。在div中包含一個網頁
回答
沒有。您不能在另一個div元素中嵌入完整的HTML文檔,因爲這是一個塊級元素,並且W3C已經定義了其中可能包含的內容。
但有一個解決方法。請按照下列步驟:
- 獲取使用文件AJAX(jQuery的岩石,請使用)
- 提取
<body>
元素的內容並把它你div
元素中 - 獲取
<head>
元素的所有鏈接和腳本並將它們追加到現有pgae的<head>
元素中。
你應該使用iframe。這基本上是iframes的用途。如果你堅持使用現代瀏覽器,無論如何他們不會有iframe問題(不會超過你將不得不面對的使用div的代替)...
您可以使用iframe或如果你決定使用jQuery負荷函數(http://api.jquery.com/load/),你需要避免交叉腳本編寫腳本的問題 - 你需要創建某種proxie的看看這個:WebBrowser Control: Disable Cross Site XSS Filtering or another way to process JS in full on HTML
本應該是問題本身,但是OP澄清了他不想使用iframe
的原因是因爲不允許幀間通信。那麼,這不是代理+ postMessage無法解決。
我相信根本沒有辦法實際將完整的文檔嵌入到另一個文檔中,保留諸如樣式和腳本等的分離之類的東西,而不用某種意義上的框架。
這實際上是賽義德迴應的延伸。爲了解決跨站點腳本問題,您必須在自己的服務器上編寫一個腳本,該腳本執行CURL調用來嵌入網頁。然後,您的JavaScript將調用此腳本,並將該URL作爲GET/POST參數傳遞。
我同意很多其他人在這裏,這是一個情況下,你真的應該只使用一個iframe ...我相信你可以設置沒有src標記的iframe,並手動將其中的內容。這意味着你不需要採取賽義德建議分解頭部和身體的步驟。但是,您仍然需要我描述的腳本來解決跨站腳本問題。
嘗試使用<object>
元素:
<div style="margin: 0 auto; width:100%; height:400px;">
<object type="text/html" data="**URL to page**"
style="width:100%; height:100%; margin:1%;">
</object>
</div>
它兼容哪些瀏覽器/版本? – checksum
- 1. 在Lotus網頁中包含一個JSP
- 2. 如何在另一個div上包含包含文本的div?
- 3. 在使用JQuery的DIV中包含一個php頁面
- 4. 用另一個div替換包含數據網格的div
- 5. 在html頁面中包含一個gif
- 6. 點擊div並轉到另一個div包含的頁面
- 7. 將網頁的index.php包含在另一個目錄中。
- 8. 使包含表格的一個div分爲兩個div,其中包含表格
- 9. 我如何使一個div包含在一個flex div內
- 10. 在一個內容div上浮動一個包含三個div的div div
- 11. 具有動態的(如更改/更新,例如,博客頁面)包含在一個div中的div包含在同一個div中
- 12. 如何包含我在另一個DIV中創建的DIV?
- 13. 在網頁中包含動態圖像
- 14. 包含在DIV
- 15. 包含在DIV
- 16. 在網頁中包含php文件包含功能
- 17. 讓頁面在整個頁面溢出其包含的div
- 18. WordPresspress:在另一個頁面中包含一頁的內容
- 19. 如何在一個div中包含每個三個列表?
- 20. 包含外部網頁的一部分
- 21. 在多個HTML頁面中包含相同的DIV
- 22. 將多個包含JavaScript的HTML頁面包含到一個PHP頁面中
- 23. JavaScript在網頁上拖/放一個Div
- 24. 放大一個div當它在網頁
- 25. 如何測試一個div包含另一個DIV
- 26. Python/Django - 在一個div中包含一定數量的項目
- 27. 的Javascript:檢查是否頁面包含一個特定的div
- 28. 如何包含另一個頁面的div?
- 29. 將一個div放在兩個圖像的內部,其中一個div包含一個div
- 30. 如何在另一個頁面中包含一個刮表
我懷疑,你必須使用'iframe'少的問題比你會通過重新'用'div' iframe'功能。您使用'iframes'(或'frame's)時遇到哪些瀏覽器有問題? –
找不到任何投票下來,這只是一個簡單的問題,因爲Chrome瀏覽器不允許幀間通信 – Varun
Chrome允許幀間通信。沒有CORS,它不允許域間通信,但這是根據規範。 – Quentin