在设计器中运行工程后,不要在新的标签页中打开
作为活字格开发人员,每次在设计器中运行工程后,希望刷新当前标签页,不要在新的标签页中重复打开应用。您想要实现一个功能:当在Chrome中打开一个与当前已打开页面地址相同的链接时,浏览器应该刷新现有页面,而不是在新标签页中打开。
这个功能确实不是Chrome的默认行为,但我们可以通过创建一个Chrome扩展来实现这一功能。以下是实现这个功能的步骤:
1. 创建一个新的目录来存放扩展文件。
2. 在该目录中创建以下文件:
a. `manifest.json`
b. `background.js`
3. 在 `manifest.json` 文件中添加以下内容:
```json
{
"manifest_version": 2,
"name": "Same URL Refresher",
"version": "1.0",
"description": "Refreshes existing tab if URL is the same",
"permissions": [
"tabs",
"<all_urls>"
],
"background": {
"scripts": ["background.js"],
"persistent": false
}
}
```
4. 在 `background.js` 文件中添加以下代码:
```javascript
chrome.tabs.onCreated.addListener(function(tab) {
chrome.tabs.query({}, function(tabs) {
for (let existingTab of tabs) {
if (existingTab.id !== tab.id && existingTab.url === tab.pendingUrl) {
chrome.tabs.update(existingTab.id, {active: true});
chrome.tabs.reload(existingTab.id);
chrome.tabs.remove(tab.id);
return;
}
}
});
});
```
5. 安装扩展:
a. 打开Chrome浏览器,进入 `chrome://extensions/`
b. 开启右上角的"开发者模式"
c. 点击"加载已解压的扩展程序"
d. 选择您创建的包含这两个文件的目录
这个扩展的工作原理如下:
1. 它监听新标签页的创建事件。
2. 当新标签页被创建时,它会检查所有现有标签页。
3. 如果发现有现有标签页的URL与新创建的标签页的URL相同:
- 它会激活并刷新现有的标签页
- 然后关闭新创建的标签页
这样,当您尝试打开一个与已有标签页URL相同的链接时,扩展会刷新现有的标签页,而不是在新标签页中打开。
请注意,这个扩展可能会影响一些网站的正常使用,特别是那些依赖于在新标签页中打开相同URL的网站。如果遇到问题,您可以随时禁用或卸载这个扩展。
您是否需要我解释这段代码的具体工作原理,或者您对如何使用这个扩展有任何其他问题吗?
有效果
胡 发表于 2024-9-6 11:17
有效果
谢谢,稍后我试一下,然后来反馈。
我突然意识到我提的需求可能跟活字格没有关系,应该是浏览器的行为。 Tennis3.0 发表于 2024-9-6 11:33
谢谢,稍后我试一下,然后来反馈。
我突然意识到我提的需求可能跟活字格没有关系,应该是浏览器的行为。
你点击保存工程后,在浏览器F5刷新即可,不需要点击运行 lovert 发表于 2024-9-6 17:24
你点击保存工程后,在浏览器F5刷新即可,不需要点击运行
刘亦菲的方案趋势很牛逼,但是有点子麻烦。
我个人推荐这个方案,这是大部分人的选择,省事简单
哈哈~ 胡 发表于 2024-9-6 11:17
有效果
试过了,的确有效,最佳答案。 Tennis3.0 发表于 2024-9-8 16:56
试过了,的确有效,最佳答案。
{:5_110:}
页:
[1]