簡體   English   中英

Firefox Addon 如何無法從 Popup JS 訪問瀏覽器頁面 DOM?

[英]Firefox Addon How to cannot access browser page DOM from the Popup JS?

您好我正在嘗試在 Firefox 中開發小型簡單彈出擴展,我是 Firefox 擴展開發框架的新手。

我用這個樣板來加速這個過程

我通過覆蓋 popup.html 文件並添加此行,在id = testid1的彈出窗口中添加了一個小按鈕

<a id="testid1" href="#" class="js-options">Test</a>

我通過覆蓋 popup.js 文件中的 popup.addEventListener 添加了相應的 EventListener

popup.addEventListener("click", function (e) {
  if (e.target && e.target.matches("#testid1 ")) {

  var element_from_popup_html = document.getElementById("elementid1").value;
  var element_from_web_page = document.getElementById("elementid2").value;
  alert('it work');
}}

我確保此事件列表器正確觸發並使用警報正常工作。 我正在嘗試從 DOM Element1(彈出頁面內)和 Element2(來自 webbrowser)中獲取 2 個元素

我無法得到:element_from_web_page!!

我有 document.getElementById("elementid2") 是 NULL。

所以在挖掘了更多之后:這里的文檔是popup.html,我應該如何訪問這個webbrowser瀏覽的頁面。 我曾經為此使用文檔關鍵字!

還發現我可以通過使用 _ext2.default.and_put_the_chosen_api_here 從 mozilla 使用 Javascript API 但我只需要通過 id 查找簡單的 dom?

在閱讀了有關 Firefox 擴展的更多信息后,我設法解決了我的問題。 所以基本上我所做的是管理彈出文檔而不是網頁。 為了與 webbrowser 當前頁面交互,我需要更改另一種類型的 js,稱為content script ,它與我正在編輯的 popup.js javascript 文件(類似於背景腳本)不同。

所以基本上我不得不在文檔方面使用背景和內容腳本之間的通信。

在 content_script.js 上,我使用一些 eval function 與網頁進行了交互。

暫無
暫無

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

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