我想说我想更改Chrome扩展程序中所选标签的内容。我想用come
替换fly
的每一次出现。
如何动态更改单词?
到目前为止,我到达了document
和replace
所有出现的单词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")' });
});
但什么都没发生。也没有错误。
答案 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}
。