2011-10-03 54 views
1

我不知道是否有人可以佈置我應該做的一般邏輯,以實現以下目標:從一個web應用程序訪問鉻擴展

我有一個Chrome擴展,它獲取用戶的書籤列表。

當用戶訪問網頁時,通過擴展程序檢索到的信息被訪問並顯示在網頁上。

我已經有一個擴展名,我想知道如何從網頁訪問它?

+1

爲什麼?你不能只使用_content script_並在用戶訪問它時將數據放在頁面上? – c69

回答

2

要與網頁進行通信,您需要一個將在該網頁上加載的內容腳本。然後你可以然後use events to communicate。內容腳本可以接收來自您的背景頁面的消息,並在必要時將其轉發到網頁。

確保您認真考慮security considerations section。你讓用戶的書籤可用於網頁,你應該非常確定這個網頁應該有權訪問它們。

+0

非常感謝。 – Stpn

1

因此,如果擴展程序的作者寫了擴展名,並對其代碼進行了沙箱處理(這意味着他/她做了一些事情來讓他的變量不在全局名稱空間中),那麼就不會有太多的事情要做能夠做到。所以...檢查作者是否在全局命名空間級別上訪問了他的變量。要做到這一點在Chrome中,轉到頁,打開開發工具,去到控制檯,然後輸入

console.log(window); 

這將顯示您的全局命名空間,並且應該告訴你,你在找什麼。如果您發現任何看起來不像傳統變量或對象或功能的東西,那麼您應該調查這些東西。我希望我可以在這裏給你更清楚的步驟,但是你基本上試圖劫持擴展中的代碼,而這種東西需要大量的測試/調查。

如果全局命名空間中沒有任何異常,那就意味着代碼被沙盒化了,而且你處於一個棘手的地方。從擴展代碼中獲取任何變量/值/對象將很困難。

祝你好運。

+0

哦,我想我解釋失敗了。問題比這個更基礎。我的意思是 - 我實際上寫了一個擴展名,所以我完全控制它。現在我想訪問瀏覽器的數據,這些數據是通過網頁的擴展名檢索的。 – Stpn