javascript - Chrome 扩展 - 设置点击元素的文本

标签 javascript google-chrome-extension

我正在尝试创建一个允许用户使用预定义文本填充输入字段的扩展。用户应右键单击输入字段,选择选项,代码必须自动设置文本。

经过一些搜索,我知道我需要使用内容脚本,但我不知道如何找到选定的输入字段并更改文本。

事件.js

chrome.contextMenus.create({
    id: "context_positive",
    title: "✔ Positief",
    contexts: ["all"]
});

chrome.contextMenus.onClicked.addListener(function(info, tab) {
    if (tab) {
        if (info.menuItemId === "context_positive"){
            // Call content script and get it to locate the source element and set text value
        }
    }
});

content_script.js

由于您单击了输入字段,因此应该可以使用 document.activeElement 访问它,但在测试期间它通常只会选择 BODY 作为 activeElement..

document.activeElement.innerHTML = "test";

所以我不确定如何从 event.js 操作转到 content_script.js 部分以在选定的输入字段中输入文本。关于如何进行的任何建议?

最佳答案

您可以利用点击事件:

let input = document.querySelector("input");

document.querySelector(".editable").addEventListener("click", function(event) {
  let element = event.target;
  if (element.innerText) {
    element.innerText = input.value;
  }
});
<div class="editable">
  <span>Example text one</span>
  <p>Example text two</p>
  <div>
    <span>Child text example one</span>
    <span>Child text example two</span>
  </div>
  <div>Example text three</div>
</div>

<br><br>
Text to replace: <input type="text">

关于javascript - Chrome 扩展 - 设置点击元素的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58330520/

相关文章:

javascript - 用 jQuery 替换背景图像时找不到图像

javascript - 如何通过javascript函数的返回值生成href链接的内容?

google-chrome-extension - 书签栏单击事件监听器 chrome 扩展

Javascript:自动点击按钮?

javascript - 注入(inject)的 HTML 访问 Chrome API 和全局变量

与 Chrome 的内容安全策略一起工作的 Javascript 模板引擎

javascript - 导航器振动破解 ios 浏览器上的代码

php - jQuery 自定义模板无法正常工作

javascript - 如何使用 Switch 在 Javascript 中构建计算器?

javascript - 如何使用 JavaScript 在其 native 站点上播放/暂停 YouTube 播放器?