gpt4 book ai didi

javascript - 将文本附加到选项卡标题?

转载 作者:行者123 更新时间:2023-12-02 18:56:50 25 4
gpt4 key购买 nike

我想让我的扩展程序在选项卡标题末尾附加一个小文本标记(类似于“(已记录!)”),以向用户表明它已注意到给定的选项卡已被查看。下面的代码似乎在调试器中工作(也就是说,调试器告诉我在 if 条件完成后 tab.title 是 [tab.title + (Recorded!)] ),但 chrome 中选项卡的标题不是改变了。我是否需要使用代码刷新选项卡才能看到标题的更改?如果是这样,我该如何做到这一点而不再次触发 onUpdated 监听器?如果没有,我该怎么办?

// get title of updated tab, increment if it has "NYTimes.com" in it (crude equivalent for article)
chrome.tabs.onUpdated.addListener(function(url, changeInfo, Tab)
{
chrome.tabs.getSelected(null, function(tab)
{
var title = tab.title;

if (title.indexOf("NYTimes.com") != -1 && changeInfo.status == "complete")
{
tab.title = title + ' (Recorded!)';
localStorage.setItem('nyt', ++nytCount);
}
});
});

最佳答案

您必须使用内容脚本才能执行此操作。 chrome.tabs API 仅提供对选项卡信息的只读访问。

看来以编程方式注入(inject)( https://developer.chrome.com/trunk/extensions/content_scripts.html#pi )适合您的情况。

由于内容脚本是在一个孤立的世界( https://developer.chrome.com/trunk/extensions/content_scripts.html#execution-environment )中执行的,因此您需要将 <script> 注入(inject)页面并通过在那里设置 document.title 来修改标题。

这是一个示例(替换 tab.title = title + ' (Recorded!)';):

chrome.tabs.executeScript(tab.id, {code: 
"var script = document.createElement('script');" +
"script.appendChild(document.createTextNode('" +
"document.title = document.title + \" (Recoorded!)\";" +
"'));" +
"document.body.appendChild(script);"});

关于javascript - 将文本附加到选项卡标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15256144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com