Tennis3.0 发表于 2024-9-5 21:36:12

在设计器中运行工程后,不要在新的标签页中打开

作为活字格开发人员,每次在设计器中运行工程后,希望刷新当前标签页,不要在新的标签页中重复打开应用。

发表于 2024-9-6 11:15:25

您想要实现一个功能:当在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:06



有效果

Tennis3.0 发表于 2024-9-6 11:33:00

胡 发表于 2024-9-6 11:17
有效果

谢谢,稍后我试一下,然后来反馈。
我突然意识到我提的需求可能跟活字格没有关系,应该是浏览器的行为。

lovert 发表于 2024-9-6 17:24:00

Tennis3.0 发表于 2024-9-6 11:33
谢谢,稍后我试一下,然后来反馈。
我突然意识到我提的需求可能跟活字格没有关系,应该是浏览器的行为。

你点击保存工程后,在浏览器F5刷新即可,不需要点击运行

Simon.hu 发表于 2024-9-6 18:31:21

lovert 发表于 2024-9-6 17:24
你点击保存工程后,在浏览器F5刷新即可,不需要点击运行

刘亦菲的方案趋势很牛逼,但是有点子麻烦。
我个人推荐这个方案,这是大部分人的选择,省事简单
哈哈~

Tennis3.0 发表于 2024-9-8 16:56:59

胡 发表于 2024-9-6 11:17
有效果

试过了,的确有效,最佳答案。

Brian.Zhang 发表于 2024-9-9 17:43:49

Tennis3.0 发表于 2024-9-8 16:56
试过了,的确有效,最佳答案。

{:5_110:}
页: [1]
查看完整版本: 在设计器中运行工程后,不要在新的标签页中打开