javascript - 单击时将网页上选定的文本添加到注入(inject)的侧边栏 Chrome 扩展中的字段内

标签 javascript html google-chrome google-chrome-extension

嗨,我有一个 chrome 扩展程序,单击时会注入(inject)侧边栏。我想要的是,如果我在网页上选择一个位置,然后单击扩展程序,它会自动用所选文本填充位置输入栏并调用iframe 内的 Maps API,以位置名称作为查询。

最佳答案

我在代码中发现了一些问题。

背景.js

var place = window.getSelection().toString()不应该放置在这里。您无法在背景页面中选择文本。您可以删除此行。

就像评论中所说,您应该替换已弃用的 chrome.tabs.getSelected 通过chrome.tabs.query({active: true}, callback); ,了解有关此功能的更多信息 here .

脚本.js

嗅觉代码是handleRequest功能。您已设定条件,第一个不执行任何操作,第二个(如果我很好理解的话)显示侧边栏。

所以我认为问题就在这里。您应该移动 place = window.getSelection().toString();声明第一个条件,然后调用sendResponse({data : place}) 。这样,您应该将页面中选择的文本发送回后台脚本。

function handleRequest(request, sender, sendResponse)
{
    if (request.method == "getSelection")
    {
       place = window.getSelection().toString();
       console.log("sending to background : " + place);
       sendResponse({data: place});
    }

    if (request.callFunction == "toggleSidebar")
    {
       toggleSidebar();
       console.log("adasda");
    }
}

所有代码

你应该进行清理。有很多无用的评论,您应该删除。它将提高代码的可读性,以便更好地调试。

关于javascript - 单击时将网页上选定的文本添加到注入(inject)的侧边栏 Chrome 扩展中的字段内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31233047/

相关文章:

css - 覆盖 Chrome 中密码输入的默认字体大小以匹配 Firefox

javascript - 从嵌套的对象数组中提取对象

javascript - 如果使用相同的类单击按钮,则在 for 循环中获取最接近的输入(JQuery)

python - 在 Python 中监控使用 Internet Explorer、Opera、Chrome、Firefox 和 Safari 访问的网站

css - 使用 Chrome 开发工具在实时站点上测试本地背景图像?

html - 垂直堆叠按钮

javascript - 自动更改正文字体大小

javascript - react-router - 将 Prop 传递给处理程序组件

javascript - 两个独立的滚动区域简单的解决方案

html - 不使用 HTML 文本可以制作纯背景吗?