tampermonkey 脚本跨多个页面运行

2024-05-01

这是我想做的一个例子。 每当我们位于目标网址(即 stackoverflow)时,底部就会出现一个带有按钮的粘性页脚。 在搜索中输入内容的按钮之一是提交表单。之后,它等待页面加载并执行刚刚加载的页面的操作,即单击第一个链接。

我发现仅在提交后单击一下是不可能的,因为页面的框架发生了变化或类似的情况,如何使用 tampermonkey 来做到这一点。

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://stackoverflow.com/
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    $('body').append('<div id="test"><p><button onclick="myFunction()">Click me</button></p></div>');
    $('body').append(
        `<script type="text/javascript">
             function myFunction() {
                 // page 1
                 document.querySelector('#search > div > input').value="tampermonkey";
                 document.forms[0].submit();

                 // page 2 (DOEST WORK)
                 document.querySelector('#question-summary-29592068 > div.summary > div.result-link > h3 > a');
             }
         </script>`
    );

    $('#test').css({'position': 'fixed',
                   'left': '0',
                   'bottom': '0',
                   'width': '100%',
                   'background-color': 'red',
                   'color': 'white',
                   'text-align': 'center',
                   'z-index':'1'
                  });

})();

您的脚本可能无法工作的原因之一是因为在脚本的顶部写着

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://stackoverflow.com/
// @grant        none
// ==/UserScript==


The // @match仅匹配 stackoverflow.com 主页,该主页不包含搜索页面,因此 @match 应该是// @match https://stackoverflow.com/*它确实匹配主页和搜索页面。您还应该将其设置为“Click Me!”按钮仅通过使用显示在主页上if陈述。 如果你愿意的话,我也完全解决了你的问题。

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://stackoverflow.com/*
// @grant        none
// ==/UserScript==

window.onload = function() {
    'use strict';
    if (location.href == "https://stackoverflow.com/search?q=tampermonkey") {
        alert(document.querySelector('#question-summary-29592068 > div.summary > div.result-link > h3 > a'));
    }else {
        $('body').append('<div id="test"><p><button onclick="myFunction()">Click me</button></p></div>');
        $('body').append(
            `<script type="text/javascript">
                 function myFunction() {
                     // page 1
                     document.querySelector('#search > div > input').value="tampermonkey";
                     document.forms[0].submit();
                 }
            </script>`
        );

        $('#test').css({
            'position': 'fixed',
            'left': '0',
            'bottom': '0',
            'width': '100%',
            'background-color': 'red',
            'color': 'white',
            'text-align': 'center',
            'z-index':'1'
        });
    }

};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tampermonkey 脚本跨多个页面运行 的相关文章

随机推荐

  • 类与枚举类作为索引类型

    P0138R2 proposal http www open std org jtc1 sc22 wg21 docs papers 2016 p0138r2 pdf begins with1 有一种非常有用的技术可以引入一种新的整数类型 该
  • 恢复对 ember 数据模型的更改

    有没有办法轻松恢复对 Ember 数据模型的更改 我有一个绑定到编辑视图的模型 此视图使用户能够取消编辑 此时我想恢复对模型的更改 有没有一种简单的方法可以做到这一点 而无需克隆所有值 从 Ember Data 版本 2 开始 不再有交易
  • 在控制台或 Web 应用程序中使用 async/await

    据我了解 async awaitC 中的功能将之间的段分开await每个等待的方法在单独的工作线程上返回后 调用在调用线程上运行的回调方法 调用线程在等待期间是 空闲 的 必须通过某种事件循环在调用线程上安排回调 此事件循环仅存在于 Win
  • C++运行时如何确定抛出的异常的类型?

    如果我执行以下操作 运行时如何确定抛出的异常的类型 它使用 RTTI 吗 try dostuff throws something catch int e catch const char e catch const myexception
  • 在Shiny的conditionalPanel中添加多个条件

    我想知道是否可以添加多个条件conditionalPanel闪亮的 这是一个例子 conditionalPanel condition input SELECT 1 Slider sliderInput D FLAG Parameter X
  • 从 varchar(50) 列表中查找值包含单词的行

    我正在从 t sql 存储过程收集数据以导入到 C 程序中 我想先缩小数据范围 我的数据包含三个字段 描述了它们后面的三个值 我只需要查找描述中具有十几个关键字之一的字段 我正在使用将所有字段与值联合起来的东西 然后 AND TEXT123
  • java hashmaps 的 get() 函数

    我声明了以下哈希图 HashMap
  • 从 AppleScript 路径中提取文件扩展名

    我正在编写一个 Apple 脚本 最终将为 EyeTV 的所有 iTunes 导出标记广告 但我遇到了 AppleScript 路径的一个简单问题 EyeTV 应用程序将其返回为录制位置 这是上下文 set recordingID to 3
  • AttributeError:尝试删除字符时,“列表”对象没有属性“替换”

    我试图通过执行以下操作从字符串中删除字符 kickoff tree xpath id page div 1 div main div article div div 1 section 2 p 1 b 1 text kickoff kick
  • 在 Objective-C 中呈现另一个类的“控制器”

    如何呈现来自另一个类的 UIAlertController 我想知道如何捕获在 B 类中创建但在 A 类中呈现的 UIAlertController 中的 确定 按钮的操作 这就是我调用在 ClassA 的类 ErrorHandler 上创
  • HTML 5

    尽管开放视频标准似乎处于某种危险之中 但它是一个好主意 我看到了一些关于运动跟踪的演示 只是概念验证 但仍然很有趣 现在 我想说像这样的概念really如果能够访问用户的网络摄像头 这将是一种收获 想象一下 双手举在半空中浏览 Flickr
  • Stripe 订阅 Webhook 缺少元数据和 client_reference_id

    我在将 stripe webhook 链接到客户时遇到问题 因为我通常使用 client reference id 或元数据字段 但是订阅 webhook 似乎没有这些字段 例如事件结帐 会话 完成确实包含 client reference
  • Flask_dance:如果没有关联用户,则无法获取 OAuth 令牌

    我想将 Flask dance 与我的应用程序一起迁移 以使用户授权使用谷歌和其他社交网络 我收到此错误 Cannot get OAuth token without an associated user 在我在蓝图和 sqlalchemy
  • Dart 将客户端 Socket 升级为 WebSocket

    Since WebSocket https api dartlang org stable 2 1 0 dart io WebSocket class html在 Dart 中不允许直接设置安全上下文 https api dartlang
  • Windows 上的 npm run start 出现“DEBUG=*”问题

    name apokidsi version 0 717 contributors dependencies angular 1 5 8 angular cookies 1 5 8 angular messages 1 5 8 angular
  • 是否可以将 ServiceStack.Text.JsConfig 设置范围限制为您的库?

    我正在编写一个使用的自定义库ServiceStack Text https github com ServiceStack ServiceStack Text内部 使用我的其他库也可能使用 ServiceStack Text 我想改变一些J
  • 大熊猫群体中的百分位排名

    我不太清楚如何编写函数来完成分组百分位数 我将 1985 年至 2012 年的所有球队都放在一个数据框中 前 10 个如下所示 目前按年份排序 我想给一个百分位LgRnk分组依据Year 例如 1985 年的 23 LgRank 最差球队
  • 将 BeanFactory 注入 Bean

    我想注入一个SpringBeanFactory到由同一个创建的 BeanBeanFactory有什么办法可以这样做吗 顺便说一句 我正在开发一个网络应用程序 如果没有 我知道我可以通过以下方式获得 BeanFactoryRequestCon
  • React Native 中的 ListView 网格

    我正在 React Native 中构建一个简单的应用程序 它从远程 JSON 源获取列表并将其显示在屏幕上 到目前为止 使用优秀的example http www raywenderlich com 99473 introducing r
  • tampermonkey 脚本跨多个页面运行

    这是我想做的一个例子 每当我们位于目标网址 即 stackoverflow 时 底部就会出现一个带有按钮的粘性页脚 在搜索中输入内容的按钮之一是提交表单 之后 它等待页面加载并执行刚刚加载的页面的操作 即单击第一个链接 我发现仅在提交后单击