FF Mozilla 擴充套件,與頁面的互動

2021-08-25 17:44:18 字數 1099 閱讀 7470

做ff的擴充套件,有時候避免不了與頁面做些互動。其實ff與頁面的互動利用的是事件的機制。

原理大概是這樣,如果我想從頁面傳一值給ff的extension。

1.在extension裡監聽乙個事件,(這事件是我們自定義的)。

在頁面上該怎麼做呢?既然有監聽,當然也有建立咯。

對了,就是在頁面上建立自定義的事件。

2.不過建立事件之前也先建立乙個自定義的元素,放到documentelement裡去。

3.然後給這個元素新增一些屬性,注意:這裡屬性就是要傳的值。

4;接著建立事件,初始化後再把元素裡的屬性分配到事件裡 。ok,這樣當監聽到這個事件就可以獲取事件的物件,那麼這個事件的所有資訊也可以獲取到了。

如果想從ff傳值給頁面。那就反過來唄~~ 

現在我就簡單地示範一下:

我們先來做乙個怎麼將一些值從頁面傳給ff擴充套件。

以下是乙個頁面。

給ff extension傳值

<?xml version="1.0"?>

看script裡的**就行了,不過這裡既然寫了出來,我就順便說下:

這個id 並不是隨便起的,這個可是 browser.xul 裡的 ******* 的 id, 如果不起這個 id 的話,那麼我們在自己的 xul 裡寫的 ui 就不會出現在瀏覽器的頂部,而是在最底。有興趣的同志可以試下。

這個就是頁面給extension傳值的辦法了。

反過來呢,一樣,不過我們在ff裡做建立事件的時候,注意得給每個瀏覽器標籤加,乙個瀏覽器可以開啟多個標籤。 

給段部分的**:

function todataforpage()}; 

document.addeventlistener("mycustomevt",function(e),false,true);

不過我們得先開啟頁面,好讓觸發事件的監聽功能,然後再去觸發ff extension裡的建立事件的fun吧。

最後給個安裝包吧,可以解壓出來看下源**。不過寫得有點亂。

/files/seasun/ff.rar

單頁面與多頁面的區別

單頁面應用 spa 通俗一點說就是指只有乙個主頁面的應用,瀏覽器一開始要載入所有必須的 html,js,css。所有的頁面內容都包含在這個所謂的主頁面中。但在寫的時候,還是會分開寫 頁面片段 然後在互動的時候由路由程式動態載入,單頁面的頁面跳轉,僅重新整理區域性資源。多頁面 mpa 就是指乙個應用中...

iframe與父頁面 子頁面的互動

父頁面獲取子頁面的window物件 原生js獲取方式 var framewin document.getelementbyid ifr contentwindow 或var framewin document.getelementsbytagname iframe 0 contentwindow 或...

iframe父頁面與子頁面的互動

1.父頁面獲取子頁面的window物件 var childiframewin document.getelementbyid child contentwindow 通過iframe標籤的id獲取獲取到子頁面的window後,就可以通過window獲取到子頁面的物件和方法。2.子頁面獲取父頁面的wi...