乐闻世界logo
搜索文章和话题

Tampermonkey

Tampermonkey 是一款流行的用户脚本管理器,它允许用户在各种主流浏览器上安装并运行所谓的“用户脚本”(user scripts)。用户脚本是小段的 JavaScript 代码,可以修改网页的功能和外观,增强浏览器的功能,或者自动化某些网页操作。Tampermonkey 使得管理和配置这些脚本变得非常方便。
Tampermonkey
Tampermonkey 如何在谷歌搜索框中设置文本?
在使用Tampermonkey时,我们能通过编写一段 JavaScript 脚本来实现在 Google 搜索框中自动填充特定的文本。这种功能可以用于多种目的,比如测试、快速搜索固定词汇等。 ### 步骤1:创建一个新脚本 首先,您需要在 Tampermonkey 扩展中创建一个新的用户脚本。可以点击浏览器扩展图标,选择“添加新脚本”。 ### 步骤2:编写脚本 接下来,在脚本编辑器中编写以下 JavaScript 代码: ```javascript // ==UserScript== // @name Google Search Autofill // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match https://www.google.com/* // @grant none // ==/UserScript== (function() { 'use strict'; // 监听页面加载完成 window.addEventListener('load', function() { // 选择 Google 搜索框 var searchInput = document.querySelector('input[name="q"]'); // 判断搜索框是否存在 if (searchInput) { // 设置搜索框的值 searchInput.value = "Tampermonkey"; } }); })(); ``` 这段脚本的主要工作是在页面加载完成后,寻找 Google 的搜索输入框(其 `name` 属性通常为 `"q"`),并设置其值为 `"Tampermonkey"`。 ### 步骤3:保存并测试 保存脚本后,打开一个新的 Google 搜索页面,您应该看到搜索框自动被填充上了“Tampermonkey”。 ### 特别注意 - 确保脚本在正确的 URL 下运行(如上述代码中的 `@match` 标签所示)。 - 考虑到谷歌可能会更新其页面结构,如果脚本突然不工作,可能需要检查并更新选择器或其他逻辑。 通过这种方式,您可以根据需要修改脚本,以实现在 Google 搜索框中自动设置不同的文本或进行其他操作。
阅读 9 · 7月21日 21:27
如何使用Tampermonkey重新加载另一个选项卡?
在使用Tampermonkey重新加载另一个浏览器标签页的情况中,基本上需要借助于浏览器提供的特定API来实现跨标签页的脚本运行。由于浏览器的安全策略,直接从一个标签页控制另一个标签页通常是受到限制的,但可以通过以下步骤来尝试实现: ### 1. 使用存储机制(localStorage 或 sessionStorage) #### 步骤: 1. **设置监听器** 在每个标签页的Tampermonkey脚本中,添加事件监听器来监听存储变更。 ```javascript // 监听localStorage的变更 window.addEventListener('storage', function(e) { if (e.key === 'reloadRequest') { window.location.reload(); } }); ``` 2. **发送重载信号** 在需要触发重载的标签页脚本中,通过更改存储的值来发送重载请求。 ```javascript // 发出重载请求 localStorage.setItem('reloadRequest', Date.now()); ``` #### 示例场景: 假设你在使用Tampermonkey开发一个需要多标签协同工作的工具,比如在一个标签页中进行操作后需要自动刷新另一个标签页以更新数据。通过上述代码,当用户在一个标签页进行特定操作(比如点击一个按钮或提交表单)时,就可以触发其他所有监听此事件的标签页重新加载。 ### 2. 使用浏览器扩展 由于Tampermonkey脚本运行在比较严格的沙盒环境中,他们没有直接操作其他标签的权限。如果需要更高级的控制,考虑开发一个浏览器扩展可能是更好的选择,因为扩展通常拥有更广泛的API来管理标签页。 #### 步骤: 1. 开发一个简单的浏览器扩展。 2. 使用扩展API来检测特定事件并执行标签页重载。 ```javascript chrome.tabs.reload(tabId); ``` #### 示例场景: 开发一个用于项目管理的工具,当用户在一个标签页中更新了项目状态后,需要其他所有与该项目相关的标签页自动刷新以显示最新状态。 ### 结论: 由于浏览器和Tampermonkey的安全限制,直接从一个脚本控制另一个标签的能力是有限的。使用localStorage来实现跨标签通信是一种可行的方法,但在需求更复杂时,开发一个专门的浏览器扩展可能是更合适的解决方案。
阅读 8 · 7月21日 21:09
油猴脚本内如何检测用户脚本是否是从 Chrome 商店安装的?
首先,需要明确的是,油猴脚本(Tampermonkey)通常是通过油猴扩展来管理和运行的,而油猴扩展本身并不直接提供接口来判断一个脚本是否来自Chrome商店。但是,我们可以通过一些间接的方式来推断或检测。 ### 技术方案 **1. 检查脚本的元数据:** 每个油猴脚本都会有一段元数据区域,这通常包含了脚本的来源、版本号等信息。虽然这个部分可以被脚本作者自定义,但如果规定从Chrome商店下载的脚本必须包含特定的标记或者链接,我们就可以通过解析这些元数据来判断脚本是否来自Chrome商店。 ```javascript // ==UserScript== // @name 示例脚本 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 试一试 // @author 你的名字 // @match http://*/* // @grant none // @fromStore true // ==/UserScript== (function() { 'use strict'; if (GM_info.script.fromStore === 'true') { console.log('这个脚本是从Chrome商店安装的'); } else { console.log('这个脚本不是从Chrome商店安装的'); } })(); ``` **2. 使用浏览器API检查扩展来源:** 这种方法更复杂,需要脚本能够访问到浏览器的扩展API,例如 `chrome.management` API。通过这个API,我们可以获取到所有已安装扩展的详细信息,包括其来源信息。但是,这通常需要用户授予额外的权限,而且油猴脚本本身限制了一些API的使用。 **3. 服务器端验证:** 如果你有控制服务器的权限,你可以要求所有从Chrome商店安装的脚本在安装时进行一次服务器验证,服务器记录下所有验证过的脚本ID。之后,脚本在执行时可以向服务器发送请求,查询自身ID是否在验证列表中。 ### 结论 由于油猴脚本的开放性和自定义性非常高,纯粹从脚本自身来确定其是否来自Chrome商店存在一定的困难和不确定性。通常,结合元数据标记和服务器端验证会是一个相对可行的方法。需要注意的是,这些方法都有可能被绕过,因此安全性和准确性不能完全保证。在实际应用中,可以根据具体情况选择最适合的方法。
阅读 17 · 6月27日 16:06
如何从 Chrome 控制台中使用Tampermoney API?
在Chrome控制台中使用Tampermonkey API主要涉及几个步骤,我将逐一进行说明。 首先,确保您已经在Chrome浏览器中安装了Tampermonkey扩展程序。Tampermonkey是一个流行的用户脚本管理器,通过它可以管理和运行所谓的用户脚本,这些脚本可以改变网页的行为和外观。 ### 步骤 1: 安装Tampermonkey扩展 - 打开Chrome浏览器,前往Chrome网上应用店。 - 搜索“Tampermonkey”,找到它并点击“添加到Chrome”。 ### 步骤 2: 创建新用户脚本 - 安装完毕后,点击浏览器右上角的Tampermonkey图标,选择“创建新脚本...”。 - 这将打开Tampermonkey的脚本编辑器。 ### 步骤 3: 使用API编写脚本 - 在脚本编辑器中,您可以开始编写Javascript代码来使用Tampermonkey提供的API。例如,您可以使用`GM_xmlhttpRequest`来进行跨域请求,或者使用`GM_setValue`和`GM_getValue`来存储和检索数据。 例如,下面是一个简单的脚本,它使用`GM_xmlhttpRequest`来获取一个网页的内容并在控制台中打印出来: ```javascript // ==UserScript== // @name Example Script // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match *://*/* // @grant GM_xmlhttpRequest // ==/UserScript== (function() { 'use strict'; GM_xmlhttpRequest({ method: "GET", url: "https://example.com", onload: function(response) { console.log("Response from example.com: ", response.responseText); } }); })(); ``` ### 步骤 4: 保存并测试脚本 - 点击编辑器的“文件”菜单,选择“保存”。 - 打开一个新的标签页,访问匹配用户脚本中`@match`指令规定的URL模式的网站,检查控制台以确认脚本是否按预期工作。 ### 注意事项 - 使用Tampermonkey API时,确保在脚本元数据区块(即头部注释中的`@grant`部分)正确声明了所需的API权限。 - 为确保安全和效率,避免在不必要的页面上运行脚本,这可以通过合理配置`@match`来实现。 通过上述步骤,您就可以在Chrome控制台中成功使用Tampermonkey API来增强您的浏览体验或进行页面调试。
阅读 17 · 6月27日 12:16
如何通过 Tampermonkey 在浏览器新标签中打开 link 链接?
在使用 Tampermonkey 脚本管理器实现在浏览器中新标签打开链接的功能时,首先需要确保已经在浏览器中安装了 Tampermonkey 扩展。接下来,可以按照以下步骤创建和使用一个简单的脚本来实现这一功能: ### 步骤 1: 安装 Tampermonkey 1. 打开浏览器(例如 Chrome)。 2. 访问 Chrome 网上应用店或其他浏览器的相应扩展商店。 3. 搜索 “Tampermonkey” 并选择添加到浏览器中。 4. 安装后,确保扩展程序已启用。 ### 步骤 2: 创建新脚本 1. 单击浏览器右上角的 Tampermonkey 图标。 2. 选择 “创建新脚本...”。 3. 这将打开 Tampermonkey 的脚本编辑器。 ### 步骤 3: 编写脚本 在脚本编辑器中,可以编写一个简单的脚本,使所有链接默认在新标签页中打开。以下是一个基本的脚本示例: ```javascript // ==UserScript== // @name Open Links in New Tab // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author Your Name // @match *://*/* // @grant none // ==/UserScript== (function() { 'use strict'; // 获取页面上所有的链接元素 var links = document.getElementsByTagName("a"); // 遍历每个链接,设置其 target 属性为 “_blank” for (var i = 0; i < links.length; i++) { links[i].target = "_blank"; } })(); ``` ### 步骤 4: 保存并测试脚本 1. 在脚本编辑器中,点击“文件”菜单,然后选择“保存”。 2. 打开任何网页试试点击链接,如果链接在新标签页中打开,那么脚本工作正常。 ### 示例说明 在这个脚本中,我们首先通过 `getElementsByTagName` 获取页面上所有的 `<a>` 元素(即链接)。然后,我们遍历这些链接,并将每个链接的 `target` 属性设置为 `_blank`。这意味着当点击这些链接时,它们将在新的浏览器标签中打开。 以上就是通过 Tampermonkey 在浏览器中自动设置链接在新标签页中打开的一个基本示例。这种方式可以非常方便地对所有网页生效,而不需要手动修改网页代码。
阅读 20 · 6月27日 12:16