在chrome中选中所选选项卡的内容中的一些单词

时间:2016-06-15 09:22:53

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

我想说我想更改Chrome扩展程序中所选标签的内容。我想用come替换fly的每一次出现。

如何动态更改单词?

到目前为止,我到达了documentreplace所有出现的单词come,但无法将更新的内容写入所选标签。

我写的是;

chrome.tabs.getSelected(null,function(tab) {
    updatedContent = document.replace(/come, 'fly');

});

我怎样才能做到这一点?

编辑:我的错误,document.replace运行不正常。

Edit2:根据@Haibara Ai的建议我编辑为;

chrome.tabs.query( {active: true, currentWindow: true} ,function (tabs) { 
    chrome.tabs.executeScript(tabs[0].id, { code: 'document.body.outerHTML.replace(/come/g, "fly")' });
});

但什么都没发生。也没有错误。

1 个答案:

答案 0 :(得分:0)

在扩展的上下文中调用

chrome.tabs.getSelected,而您要访问的dom存在于网页的过程中,您无法直接从后台页面操作它。

要实现您想要的目标,您可以查看chrome.tabs.executeScript,它允许您进行编程注入,示例代码如下:

chrome.tabs.query({active: true, currentWindow: true},
    (tabs) => chrome.tabs.executeScript(tabs[0].id, {code: 'document.replace(/come, "fly");'}));

请注意document.replace效果不佳,您可以使用其他方法,例如document.body.innerHTML.replace

BTW,chrome.tabs.getSelected已弃用,请改用chrome.tabs.query{active: true}