2017-02-28 253 views
2

我想知道是否有一種工作方式(符合大多數瀏覽器)在屬於同一個域的頁面內顯示其他頁面 - 我剛剛瞭解到IFRAMES不允許這樣做 - 他們只能用於顯示來自外部網站的內容 - 對嗎?替代iframe(相同域名)

戴夫

回答

1

- 它們只能用來顯示來自外部網站的內容 - 對嗎?

有上的<iframe> S(生活水平 - HTML 4)的src屬性沒有限制。


如果你不是特別喜歡當前的HTML標準是如何提供的信息,對<iframe>個看看MDN的頁面 - 有些人覺得它的格式友好。

和任何替代之間的主要區別在於,作用就像獨立的頁面(其不共享與它的父文件資源),而片段/組件/模板負載量爲約一個文檔中創建的佔位符其中來自同一服務器上的另一文件的內容將被放置在解析時間(所以父代中的所有腳本/樣式將應用於該片段,並且由片段加載的任何此類資源也將影響父代)。

片段/組件/模板現在只能通過使用圖書館的(最流行的jQuery的.load()),但很可能會盡可能的HTML一次HTML Components部分將成爲生活水平

雖然有些人可能覺得我應該在這裏提到Shadow DOM,它只是HTML Components一個特例,這樣他們就不會在組件外適用的封裝的樣式和腳本,還提供了一些方便的方法來做到這一點(:host:host():host-context())。
當前,Shadow DOM是一個工作草稿,只能通過瀏覽器使用它,並且只能使用webcomponents.js

+0

謝謝你的友好和非常詳細的答覆。我一直在閱讀多個網站的內容框架無法顯示相同的域名頁面 - 這是不正確的?例如 - http://www.bielousov.com/2012/iframe-same-origin-script-policy/ – Gabriel

+0

恰恰相反。 [相同的來源策略](https://en.wikipedia.org/wiki/Same-origin_policy)限制資源在源文件不同於原始文件時被加載,並且在來源不同時需要額外的腳本/權限。實際上,孩子需要指定允許加載的父母。如果當前父項與規則匹配,則允許該請求並顯示子項。 –

+0

甜 - 你非常花時間向我解釋這個!) – Gabriel