如何在 Greasemonkey 脚本中模拟按键?

2024-04-22

我在网上找到了很多关于如何使用的信息initEvent and dispatchEvent功能 https://developer.mozilla.org/en-US/docs/DOM/element.dispatchEvent,但我一生都无法让它们在实践中发挥作用。

I'm trying to get a script to press the Enter key every 5 seconds. My userscript code (minus irrelevant metadata) is below:

// ==UserScript==
// @namespace      http://userscripts.org/scripts/show/153134
// @require        https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js
//
// @grant          unsafeWindow
//
// ==/UserScript==

$(function(){
window.setInterval(function(){
    var ev = document.createEvent("KeyboardEvent");
    ev.initKeyEvent("keypress", true, false, window, 0, 0, 0, 0, 13, 13);
        window.dispatchEvent(evt);
}, 5000);
});

在用户脚本上检查我的脚本,看看它的工作效果有多差(添加一个用户包含域并在任何<textarea>)。是 Greasemonkey 不让其通过,还是我需要做一些不同的事情?


该代码中存在复制粘贴错误。
不要使用window.dispatchEvent(evt);;
use window.dispatchEvent(ev);

将事件发送至window可能也不是您所需要的。 (或者也可能是。链接到目标页面。)

也许将事件发送到文档:

document.body.dispatchEvent(ev);

或者将其发送到特定节点:

var targetNode  = document.querySelector ("#content textarea"); // Etc.
targetNode.dispatchEvent (ev);


或者,由于您使用的是 jQuery:

var ev = $.Event('keypress');
ev.which = 13; // Carriage-return (Enter)
$('body').trigger(ev);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Greasemonkey 脚本中模拟按键? 的相关文章

随机推荐

  • 为什么 C# 编译器对 double IEnumerable 和 foreach T 感到满意?

    我知道这段代码不起作用 并且以有效的方式编写它没有问题 我想知道编译器如何构建而不出现任何错误 如果您在哪里运行它 您会遇到运行时错误吗 假设数据不为空 using System using System Collections Gener
  • 是否有可能将一个 HMap '转换' 为另一个 HMap

    如果我有一个无形的 https github com milessabin shapeless HMap MappingA 为类型正确定义隐式MappingA K V 我可以安全地将其转换 映射到HMap MappingB class Ma
  • MediaRecorder.AudioSource.VOICE_CALL 不适用于 Android 4.1.2 中的通话录音

    https github com esnyder callrecorder https github com esnyder callrecorder我已应用此源代码来执行通话录音 但它不是录音通话 双向录音 经过大量搜索后 我发现 And
  • 在 C# 中通过 TCP 发送 C 结构体

    我正在编写一个程序 通过 TCP 与一台设备的管理界面进行交互 问题是 设备的文档是用C写的 而我写的程序是用C 写的 我的问题是 文档指定 通信基于基于C结构的API缓冲区 再多的谷歌搜索似乎也无法让我找到这个 API 或如何通过 TCP
  • 重写纯虚函数时使用“override”有什么意义吗?

    例如 class Base virtual void my function 0 class Derived Base void my function override 从我读到的来看 override关键字用于确保我们在重写的函数中具有
  • jQuery Mobile 将下一个输入集中在按键上

    我有一个 jquery 移动网站 其 html 表单由 4 个引脚输入框组成 我希望用户能够在每个输入字段中输入 pin 而不必按 iphone 键盘的 下一步 按钮 我尝试了以下操作 虽然它似乎将焦点设置到第二个输入并插入值 但键盘消失了
  • 在 C# 中重新抛出异常的正确方法是什么? [复制]

    这个问题在这里已经有答案了 这样做是否更好 try catch Exception ex throw Or this try catch Exception ex throw ex 他们做同样的事情吗 这个比那个好吗 您应该始终使用以下语法
  • 如何使用 PHP 发送带有内嵌附加图像的 HTML 电子邮件

    我有一个 PHP 脚本 它发送一封带有附加图像的 HTML 电子邮件 它工作得很好 但是 我无法让附件显示在 img 电子邮件正文中的标签 附件文件名为postcard png服务器上的原始文件名是4e60348f83f2f png 我尝试
  • 在 Python 中生成、填充和绘制六角形晶格

    我想修改我的在方晶格 它是基于代理的生物学模型 上运行的Python脚本 以在六边形宇宙中工作 这就是我在方形模型中创建和初始化二维矩阵的方法 基本上 N 是晶格的大小 R 给出了我需要在算法开始时更改值的矩阵部分的半径 a np zero
  • ws2_32.lib 与 libws2_32.a,有什么区别以及如何将 libws2_32 链接到 NB 项目?

    我使用 NetBeans Windows 和 Cygwin 以及 g 编译器 我正在研究 Windows Sockets 2 我所做的一切都是用 MS 编写的manual http msdn microsoft com en us libr
  • 如何在Google表格中提取多个大写字母的姓名?

    我正在尝试提取数据集的联系人姓名 但是 这些姓名被编译在一个单元格中 而不是按名字 中间名 姓氏 电子邮件等分割 我只需要获取他们的名字 因为我已经有一个仅包含他们的电子邮件的数据集 而不是他们的名字 如何提取多个区分大小写的单词并将其拆分
  • 如何在 jquery.load 过程中添加 jquery load.gif?

    我想用用jQuery load 加载一些内容 如何在加载过程中添加微调器 content load b php abc 假设您的页面上有一个隐藏的微调器 img src spinner gif alt loading style displ
  • Scala 无法推断

    我有一个非常简单的 Spark 代码片段 它在 Scala 2 11 上运行 并在 2 12 后停止编译 import spark implicits val ds Seq val toDF col1 ds foreachPartition
  • VS 2017 RC:我无法更新 Nuget 中的 NETStandard.Library

    从上次 或者可能是最后两次 更新开始 我无法更新 Nuget 中的 NETStandartLibrary 包 我刚刚创建一个新的标准库项目 请参阅此消息 在项目的属性中 版本不同 在 csproj 中
  • 我们如何使用 Angular 按时间戳数据类型对 Firebase Firestore 数据进行排序?

    我有票务发布 Web 应用程序 并且我只会显示那些有效且 24 小时内记录的票证 从现在开始 我在用Firebase 云 Firestore with 角7 getTicketList this ticketData this fireSt
  • UTF-8 可以包含零字节吗?

    UTF 8 字符串可以包含零字节吗 我要通过 ascii 明文协议发送它 我应该使用诸如 base64 之类的东西对其进行编码吗 是的 UTF8 中的零字节是代码点 0 NUL 有no将使用 UTF8 编码的其他 Unicode 代码点 其
  • 在 iPhone 上以编程方式接听来电

    我们如何在 iPhone 上使用 Objective C 以编程方式接听来电 你不能 您甚至没有收到通知或任何有来电的通知 您所能做的就是要求 iPhonemake一个电话 通过tel URI 方案 但您甚至不知道电话是否确实拨打了该号码
  • 如何用 C 生成 HTTP Content-Type 标头?

    所以我正在做一项网络任务 用 C 语言生成一个基本的 HTTP 1 0 Web 服务器 我已经弄清楚了大部分内容 但要求之一是它正确填充标头中的 Content Type 字段 并且我似乎找不到任何方法来自动执行此操作 我已经在使用 fst
  • cmd dir /b/s 加日期

    我正在 Windows XP 中寻找 cmd shell 命令 例如 dir b s 其中包含结果中每个文件的日期和时间值 所有数据 路径 文件名和日期 时间 都需要位于一行上 任何人都可以提供命令来完成此任务吗 谢谢 如果您只想要文件 f
  • 如何在 Greasemonkey 脚本中模拟按键?

    我在网上找到了很多关于如何使用的信息initEvent and dispatchEvent功能 https developer mozilla org en US docs DOM element dispatchEvent 但我一生都无法