2013-08-04 49 views
24

雖然在其網站上調試jQuery代碼(通過Chrome開發者工具欄)沒有src但仍有內容的iframe?

我注意到,他們的例子Iframe下式給出:

Here - for example有一個樣本,其是Iframe下,但調查後,我看到了I幀沒有SRC

圖爲這一切

enter image description here

問題:

是否可以在不設置SRC的情況下將內容設置爲Iframe?

p.s.這個菜單也顯示我一個空的內容

enter image description here

回答

26

是的,這是可以用來加載一個空(不指定src),後來申請的內容吧腳本。

參見:http://api.jquery.com/jquery-wp-content/themes/jquery/js/main.js(第54行及以下)。

或者乾脆試試:

<iframe></iframe> 

document.querySelector('iframe')[0] 
     .contentDocument.write("<h1>Injected from parent frame</h1>") 
+1

燁,我想這就是它的HTTP :// jsbin。com/ezekuw/4 /編輯 –

+0

$('iframe')[0] .contentDocument.write(「

從父框架

注入」)似乎會導致瀏覽器Tab中的加載圖標不斷旋轉。 – Mike

+0

使用document.close()關閉只寫在同一個域上的 – ChanX

1

先給:

src ="javascript:false;" 
+1

我不這麼認爲,,, HTTP://i.stack.imgur.com/8zghY.png(http://jsbin.com/ezekuw/1/edit) –

3

肯定。你可以到iframedocument對象的引用與

var doc = iframe.contentDocument; 

,然後像你在當前文檔中你可以創建並添加元素。

如果iframe沒有src屬性,它仍將包含空文檔。我相信雖然至少較早的IE版本需要設置src屬性,否則iframe不會有文檔。另外:contentDocument for an iframe

+0

(或ofcourse)....或帶有document.domain的子域.... –

+0

如果設置了src'屬性,那麼是的,內容只能如果加載的文檔來自同一個域,則可以被訪問。 –

+0

我不知道他們爲什麼這樣做......它更容易有小的HTML文件設置爲SRC,而不是讓他們的內容和注入一個iframe ....我真的很想知道這個決定背後是否有什麼 –

3

看起來是這樣的跨瀏覽器的最兼容的解決方案,並且它也被W3C

<iframe src="about:blank"></iframe>