如果我在制作一款谷歌浏览器插件的时候,在chrome_url_overrides中设置了新的页面,比如
"chrome_url_overrides" : {
"newtab" : "static/HTML/ntab.html"
}
我要怎么做到让浏览器不提示地址被更改
chrome.tabs.onCreated判断下tab是否新建标签页,是的话update下网址
{
"manifest_version": 3,
"name": "demo",
"version": "1.0.0",
"description": "修改Chrome新建标签页默认打开网址",
"permissions": [ "tabs" ],
"background": {
"service_worker": "background.js"
}
}
chrome.tabs.onCreated.addListener(function (tab) {
if (tab.title =='新标签页')
chrome.tabs.update(tab.id, { url: 'static/HTML/ntab.html' });
});
是我的话,会使用:chrome.tabs.update({url: "my_plugin/static/HTML/ntab.html"});
要让浏览器不提示地址被更改,你需要在你的插件的manifest.json文件中添加permissions属性,并在其中添加chrome://newtab/ URL。具体步骤如下:
在你的插件的manifest.json文件中,找到permissions属性,如果没有就添加它。
在permissions属性中添加chrome://newtab/ URL,如下所示:
"permissions": [
"chrome://newtab/"
],
保存manifest.json文件。
这样,当你的插件打开一个新标签页时,浏览器不会提示地址被更改了。
引用chatGPT作答,当您使用chrome_url_overrides更改Chrome浏览器的默认页面时,浏览器会自动显示地址栏中的新URL。这是浏览器的默认行为,无法更改。
但是,您可以通过使用Chrome API创建一个无地址栏的全屏窗口来解决这个问题。下面是一个示例代码:
chrome.windows.create({
url: 'static/HTML/ntab.html',
type: 'popup',
focused: true,
width: screen.availWidth,
height: screen.availHeight
});
在这个示例中,我们使用了chrome.windows.create方法创建了一个新的浏览器窗口,并且使用type属性设置为"popup"来隐藏地址栏。另外,我们设置窗口的宽度和高度为屏幕的可用宽度和高度,这样就可以占据整个屏幕,看起来就像是全屏窗口一样。
您可以将上述代码添加到您的插件中,以在浏览器启动时打开一个无地址栏的全屏窗口,而不会显示地址栏更改提示。
该回答引用ChatGPT
{
"name": "My Extension",
"version": "1.0",
"manifest_version": 2,
"permissions": [
"tabs"
],
"chrome_url_overrides": {
"newtab": "static/HTML/ntab.html"
},
"background": {
"scripts": ["background.js"]
}
}
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo.status == 'loading') {
chrome.tabs.executeScript(tabId, {file: 'content_script.js'});
}
});
if (document.location.href == chrome.extension.getURL('static/HTML/ntab.html')) {
window.history.pushState(null, null, '/');
}