2012-12-18 69 views
0

我試圖追加到$('body'),但有些網站在iframe中使用完整的html頁面,這意味着它 - 頁面有兩個 - 或更多 - body標籤,我試圖使用$('body')。first(),但沒有運氣,有任何想法? html標籤也一樣。阻止jQuery追加到iframe

編輯1:根據請求顯示一些代碼,我會進一步解釋,我創建一個鉻擴展,附加一個固定的div到當前頁面,一切正常工作時,只有一個html/body標籤,除了div被附加到頁面中的所有html/body標籤之外,正如有人所說的「給它一個ID」,我不能,這不是我的頁面,我不能真正控制生成的服務器DOM,我只能注入它,反正這裏是處理附加div的代碼。

formDiv = jQuery('<div/>', { 
    id : 'fform', 
    class :'_fform', 
    html : fhtml, 
    style : 'left:' + document.body.scrollLeft + ';top:' + document.body.scrollTop 
}) 

$('html').first().append(formDiv); 

編輯2:我懷疑它是與在現在的Chrome擴展程序清單 「all_frames」。

+0

給一個ID? – 472084

+0

$('body')。first()應該可以工作,即使只有一個主體。你能告訴我們一些代碼嗎? – Moseleyi

+0

'$('body')。append('stuff here');'不會將任何內容附加到iframe,只能附加到當前文檔中的任何''標籤。請澄清問題,如果可能的話,在jsfiddle中構造一個測試用例。 –

回答

1

檢查網站是否有框架,並採取相應措施?

formDiv = jQuery('<div/>', { 
     id : 'fform', 
    'class' :'_fform', 
     html : fhtml, 
     style : 'left:' + document.body.scrollLeft + ';top:' + document.body.scrollTop 
}); 
if (top === self) { 
    $('html').append(formDiv); 
} else { 
    $(parent.document).append(formDiv); 
} 

在另一方面,你通常需要訪問contextWindow追加到一個iFrame,所以只是針對常規標籤should'nt是一個問題。

+0

你以間接的方式回答了我,它是chrome清單文件中的「all_frames」選項,一旦我將它設置爲默認值(false),現在事情就像它應該的那樣工作。 –