2011-11-17 31 views
7

我在我的Chrome擴展中加載了一個網站的iframe,我想注入CSS和JavaScript到網站,但只有當它加載到我的網站擴展iframe(所以當用戶正常瀏覽網站時不會受到影響)。我怎樣才能注入CSS和JavaScript到加載在鉻擴展中的iframe

我感到驚訝的是,當Chrome擴展程序嘗試訪問iframe的內部結構時,即使它們可以進行跨域XHR請求,它們也會應用跨域安全策略。

是否有一個簡單的方法來做到這一點?我雖然可以使用executeScript來完成,但它需要一個選項卡ID。

回答

2

唯一的方法來知道,如果你是在一個炎熱的是window是不是top

if (window == top) { 
    // Not in iframe 
} 
else { 
    // In an iframe 
} 

您只能對內容腳本執行此操作,而不能對樣式表執行此操作。我通常做的是在內容腳本中,我檢查它是否不在頂部窗口中,然後繼續腳本,否則我就結束它。

重溫

  1. 注入的內容腳本爲URL
  2. 在內容腳本,檢查窗口屬性,if (window != top) { loadContentScript() }
  3. 在JavaScript創建CSS,如果你太擔心它影響。如果你使用獨特的ID,你不應該這樣做。

希望有所幫助,我爲此做了幾次延期。

相關問題