簡體   English   中英

使用沒有 Greasemonkey 的 Javascript 擴展使用 Firefox 擴展動態更改網頁內容

[英]Change content of a webpage dynamically with a Firefox extension using Javascript without Greasemonkey

我想更改網頁的內容以放置根據網頁更改的元素。

eg I'd like to display a div element with the text "You are on http://www.google.com " when a user is on the website http://www.google.com but when a user goes to http ://www.yahoo.com div 應更改並顯示“您在http://www.yahoo.com上”。

我正在尋找的是某種開始的例子(我希望不是第一個想到這種技巧的人)。

這是在頁面上獲取內容的一種方法,以顯示當前的 URL。 這不是正確的方法,但它會帶來一些明顯的變化。

這些步驟將從上面提到的hello world 示例開始,並對其進行修改以在 web 頁面上注入一些文本。

獲取原始文件

  1. 擴展文件本地保存在您的計算機上。
  2. 將 XPI 文件重命名為 starter.zip
  3. 將 starter.zip 的內容復制到新文件夾“showUrl”中,以便您可以編輯文件。
  4. 在文本編輯器中打開 browserOverlay.js(在 showUrl/content/ 中)

插入新代碼

  1. 菜單項工具 | 你好世界:| 你好世界! 將觸發此方法:

      XULSchoolChrome.BrowserOverlay = { /** * 向用戶說“你好”。  */ sayHello: function(aEvent) { // 代碼從這里開始。
  2. 將此代碼添加到“sayHello”function

      sayHello: function(aEvent) { try { // gBrowser 是一個全局值 var document = gBrowser.contentDocument;
     var doc_bodies = document.getElementsByTagName('body'); var doc_body = doc_bodies[0]; var first_element = doc_body.firstChild; var url_div = gBrowser.contentDocument.createElement('div'); url_div.id = 'added-by-firefox-extension'; url_div.innerHTML = document.URL; // add the url at the top of the document body doc_body.insertBefore( url_div, first_element ); // add the url at the end of the document body doc_body.appendChild( url_div ); } catch(e) { alert(e); }
  3. 壓縮 showUrl 的內容

  4. 將 zip 文件的擴展名更改為 xpi
  5. 將 xpi 文件拖放到 firefox
  6. 導航到 web 頁面
  7. 打開菜單項工具 | 你好世界! | 你好世界!

對我來說,主要的痛點是弄清楚如何使用 gBrowser 來訪問 web 頁面。

您正在尋找一個名為Greasemonkey的現有 Firefox 附加組件(在 java 腳本極客中非常流行)。 它使您可以通過 userscripts 通過java腳本動態更改網頁內容。

http://userscripts.org/已經有很多用戶腳本可供您使用。 向他們學習並修改它以供您使用。

你的問題過於籠統。 為了開始開發 Firefox 擴展,您需要執行許多步驟。 有很多文檔和示例可以幫助您從這里開始: https://developer.mozilla.org/en/extensions

您應該學習XUL (和帶有綁定XBL )到 append XUL-DOM-Nodes。 您不應該將 HTML 節點 append HTML 節點添加到 HTML 文檔。 請參閱擴展部分,了解如何構建擴展。

你可以這樣做:

從兩個隱藏 div 開始:第一個將有一個 js 條件(例如 onChange),它將使用站點的 URL 編寫(在 js 加載之后)。 然后js更改將包含第一個div的值的innerHTML(或僅class,如果您使用css使標簽可見)。

這很簡單:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM