首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Google扩展:将用户高亮显示的网页文本传递给browser_action

Google扩展:将用户高亮显示的网页文本传递给browser_action
EN

Stack Overflow用户
提问于 2010-03-05 02:03:52
回答 1查看 1.7K关注 0票数 1

我正在开发一个Chrome扩展,我需要将突出显示的文本传递到browser_action中。我在Google中找到了下面的代码,在编写时它仍然有效--但是它不再工作了。

有人知道另一种解决办法吗?

background.html:

代码语言:javascript
运行
AI代码解释
复制
<html>
  <head>
    <script type="text/javascript">
      var selection_callbacks = [];

      function getSelection(callback) {
        selection_callbacks.push(callback);
        chrome.tabs.executeScript(null, { file: "contentscript.js" });
      };

      chrome.extension.onRequest.addListener(function (request) {
        var callback = selection_callbacks.shift();
        callback(request);
      });
    </script>
  </head>
  <body>
  </body>
</html>

popup.html:

代码语言:javascript
运行
AI代码解释
复制
<html>
  <head>
    <script type="text/javascript">
      function onSelection(text) {
        document.getElementById("output").innerHTML = text;
      }
      chrome.extension.getBackgroundPage().getSelection(onSelection);
    </script>
  </head>
  <body>
    <div id="output">
      This should be replaced with the selected text
    </div>
  </body>
</html>

contentscript.js:

代码语言:javascript
运行
AI代码解释
复制
chrome.extension.sendRequest(window.getSelection().toString());
EN

回答 1

Stack Overflow用户

发布于 2010-03-06 20:03:52

您可以使用一个真正的内容脚本,而不是用chrome.extension.executeScript将JavaScript注入页面。然后,您可以让background.html使用chrome.tabs.sendRequest请求内容脚本进行选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2385862

复制
相关文章

相似问题

领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文