2013-01-14 77 views
1

上的Chrome擴展,我想檢測,我的Chrome擴展是否安裝。 通常人們會使用自定義腳本來創建一些

<div id="extensionExists"></div>. 

不過,我想的JavaScript運行的網站之前檢測擴展。 因爲我不想等待圖像完全加載,我使用document.ready()而不是window.onload()。 但是,我無法事先創建一個div。 如果我的內容腳本使用run_at:「document start」,我還無法創建div,如果我使用「document end」,則已經太遲了,document.ready()已經運行。

任何想法?

回答

0

Mhh ......據我所知,沒有乾淨的解決方案。我唯一的想法是使用MutationObserver訪問該文件,然後才完全加載,但我沒有時間,現在正確的測試...

var obs = new WebKitMutationObserver(function (mutations) { 
    console.log(mutations); 
    mutations.forEach(function (mutation) { 
    var newNodes = mutation.addedNodes; 
    console.log(newNodes); 
    // newNodes should now contain a NodeList which contains all nodes that were created right now 
    // you should be able to create your element now 
    // consider using obs.disconnect(); after you have found your entry point. 
    }); 
}); 

obs.observe(document, { childList: true }); 

不保證它會做任何事情。 jsFiddle不允許在文檔之前添加腳本,所以我甚至不能在那裏測試它。

+0

不好意思做任何事情。 我現在的方法是從網頁重定向到其擴展中的修改副本 。 不是最好的,但工程,最糟糕的是,從擴展的網頁 沒有在多功能框中的路徑。 (甚至沒有像擴展名:main.html) – user1977711