有没有办法更改 chrome 扩展弹出窗口的 position/location?
Is there a way to change the position/location of a chrome extension popup?
我正在尝试开发一个 chrome 扩展,我想知道是否有办法改变 chrome 扩展弹出窗口的位置,以及我是否可以将其设为粘性元素.例如,名为 Equatio 的扩展程序会显示一个类似粘性的弹出窗口,当其图标被单击时,该弹出窗口会保留在用户屏幕的底部。我希望能够做到这一点,而且,我正在使用 Manifest Version 3(如果有帮助的话)。
我已经试过了:
- 使用 CSS 位置更改位置 属性
- 使用 Chrome 信息栏(不起作用)
- 使用 window.open()(也不适用于我的目的)
对于未来来到这里的任何人:
正如评论中提到的那样,无法重新定位内置弹出窗口。该评论还提到,“该扩展只是在网页中添加了一个 DOM 元素。”这就是我想要达到的目标。为此,您将以下代码添加到您的内容脚本中:
let div = document.createElement(div);
div.id = 'toolbar';
document.body.appendChild(div);
fetch(chrome.runtime.getURL('foo.html'))
.then((response) => response.text())
.then((data) => {
document.getElementById('toolbar').innerHTML = data;
});
此代码将 div 注入页面底部,然后获取外部 HTML 文件 (foo.html) 并更改 div 的内容。要使 div 留在视口内,您可以将 CSS 添加到 HTML 文件。
我正在尝试开发一个 chrome 扩展,我想知道是否有办法改变 chrome 扩展弹出窗口的位置,以及我是否可以将其设为粘性元素.例如,名为 Equatio 的扩展程序会显示一个类似粘性的弹出窗口,当其图标被单击时,该弹出窗口会保留在用户屏幕的底部。我希望能够做到这一点,而且,我正在使用 Manifest Version 3(如果有帮助的话)。
我已经试过了:
- 使用 CSS 位置更改位置 属性
- 使用 Chrome 信息栏(不起作用)
- 使用 window.open()(也不适用于我的目的)
对于未来来到这里的任何人:
正如评论中提到的那样,无法重新定位内置弹出窗口。该评论还提到,“该扩展只是在网页中添加了一个 DOM 元素。”这就是我想要达到的目标。为此,您将以下代码添加到您的内容脚本中:
let div = document.createElement(div);
div.id = 'toolbar';
document.body.appendChild(div);
fetch(chrome.runtime.getURL('foo.html'))
.then((response) => response.text())
.then((data) => {
document.getElementById('toolbar').innerHTML = data;
});
此代码将 div 注入页面底部,然后获取外部 HTML 文件 (foo.html) 并更改 div 的内容。要使 div 留在视口内,您可以将 CSS 添加到 HTML 文件。