有没有办法通过自定义事件传递附加数据?

2023-12-15

我需要在两个自主用户脚本之间传递数据 - 理想情况下不接触unsafeWindow对象 - 我认为使用自定义事件是可行的方法。我想到了这样的事情(为了示例的目的,让我们忽略 MSIE 模型):

addEventListener("customEvent", function(e) {
  alert(e.data);
});

var custom = document.createEvent("HTMLEvents");
custom.initEvent("customEvent", true, true);
custom.data = "Some data...";
dispatchEvent(custom);

这在标准 Javascript 环境和一个用户脚本内工作得很好,但是当用户脚本触发该事件并在其外部或另一个用户脚本内捕获时,data财产是undefined在铬中。我想我可以将传递的数据保存在sessionStorage,但远非天衣无缝。还有其他优雅的解决方案吗?完美需要并且可以实现,我能感觉到。


是的,您可以使用MessageEvent or a CustomEvent.

用法示例:

//Listen for the event
window.addEventListener("MyEventType", function(evt) {
    alert(evt.detail);
}, false);

//Dispatch an event
var evt = new CustomEvent("MyEventType", {detail: "Any Object Here"});
window.dispatchEvent(evt);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有没有办法通过自定义事件传递附加数据? 的相关文章

  • Oo 任何 IDE 中的 javascript 代码补全

    你知道有什么IDE可以自动完成这种代码吗 我这里有一个 javascript 类生成器 function var core bind function method scope if method instanceof Function t
  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • VBA / HTML / jQuery 选择自动完成 - 在列表中选择

    我正在尝试使用 Excel 中的 VBA 在网站的列表中选择一个值 这不是一个 正常列表 该网站使用 jQuery 选择自动完成 如下所示 example http davidwalsh name demo jquery chosen ph
  • 在网页上的文本框中键入内容时删除所有空格

    我如何在用户打字时即时删除输入到文本框中的空格 function var txt myTextbox var func function txt val txt val replace s g txt keyup func blur fun
  • 仅一页 JavaScript 应用程序

    您是否尝试过单页 Web 应用程序 即浏览器仅从服务器 获取 一页 其余部分由客户端 JavaScript 代码处理 此类 应用程序页面 的一个很好的例子是 Gmail 对于更简单的应用程序 例如博客和 CMS 使用这种方法有哪些优点和缺点
  • 在闪亮的数据表中为每个单元格显示工具提示或弹出窗口?

    有没有什么方法可以为 r闪亮数据表中的每个单元格获取工具提示 有很多方法可以获取悬停行或列 但我找不到一种方法来获取行和列索引并为每个单元格显示不同的悬停工具提示 任何人都可以修改以下代码吗 library shiny library DT
  • Ebay api GetSellerList,解析响应 XML

    我正在使用 eBay 交易 api 来获取当前列出的卖家股票 我正在使用 GetSellerList 调用 我在解析 xml 时遇到问题 然后将其插入到网站商店中 这是 xml 请求
  • Javascript - 将值从下拉框传递到 Google Maps API

    我正在使用 Google 地图 API 为一家出租车公司创建报价表 目前 用户在 2 个文本框中输入出发点和接载点 API 会计算两点之间的距离以及行程费用 我正在尝试添加两个具有设定位置的下拉框 以便用户可以选择这些位置之一或使用文本框输
  • Google Chrome 106 可拖动导致元素消失

    使用拖放元素时 绝对定位元素中包含的大多数其他元素都会从屏幕上消失 如果我调整窗口大小 这些元素会出现 但在开始拖动时会再次消失 我在最新版本的 Google Chrome 106 和 Beta 版本 107 0 5304 18 以及现在的
  • 未捕获的错误:找不到模块“jquery”

    我在用Electron https github com atom electron制作桌面应用程序 在我的应用程序中 我正在加载一个外部站点 Atom 应用程序之外 可以说http mydummysite index html http
  • 如何使JavaScript函数在Eclipse“大纲视图”中可见?

    我有这样的代码 但如果它在匿名函数中定义 则无法打开函数大纲 类没有问题 我该如何概述something2 请分享一些提示 我可以将所有函数标记为构造函数 但这是无效的方法 start of track event required deb
  • IE11不监听MSFullscreenChange事件

    我正在尝试使用 Bigscreen js 在 IE11 中使用全屏 但 IE11 不监听 MS FullscreenChange 事件 document addEventListener MSFullscreenChange functio
  • 为什么“tbody”不设置表格的背景颜色?

    我在用 tbody 作为 CSS 选择器来设置background color在一个表中 我这样做是因为我有多个 tbody 表内的部分 它们具有不同的背景颜色 我的问题是 当使用border radius在细胞上 细胞不尊重backgro
  • Nodejs mysql 获取正确的时间戳格式

    我在用着mysqljs https github com mysqljs mysql得到结果后sql我变得不同TimeStamp格式如下 created at Sat Jul 16 2016 23 52 54 GMT 0430 IRDT 但
  • JavaScript onresize 事件多次触发

    我在尝试仅在触发 onresize 事件时运行一次函数时遇到一些麻烦 我已经看过这个问题DOM onresize 事件 https stackoverflow com questions 1500312 javascript onresiz
  • Jquery - 通过在字符串中构建 id 的 id 获取元素

    我在使用 jquery 元素时遇到问题 我正在 var 中构造名称 例如 var myId myGotId myId attr title changed myId 返回空 我想通过 id 获取我的元素 但动态构建我的 Id 连接字符串 编
  • 使用异步调用时如何从 javascript 更新元刷新?

    我有一个系统 它使用元刷新来注销页面 该系统会在空闲用户后进行清理 不用担心 服务器也会导致会话超时 我开始通过 ajax 进行一些操作 不是真正的 xml 但这不是重点 我可以运行从异步请求返回的javascript 所以我想知道是否可以
  • 如何在打字稿文件中导入没有定义文件的js库

    随着我们的项目变得越来越大 我想从 JavaScript 切换到 TypeScript 以帮助进行代码管理 然而 我们使用许多库作为 amd 模块 我们不想将其转换为 TypeScript 我们仍然想将它们导入 TypeScript 文件
  • 如何在 gulp.src 中使用基本正则表达式?

    我正在尝试选择两个文件gulp src highcharts js and highcharts src js 当然 我知道我可以使用数组表达式显式添加这两个表达式 但出于学习目的 我尝试为它们编写一个表达式 我读过可以使用简单的正则表达式
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没

随机推荐

  • 如何使用 python asyncio 编写 Consumer.Producer 代码?

    我的Python版本是3 6 1 我写了一些东西来使用 Python asyncio 实现消费者 生产者模型 但它并没有按预期工作 四个活动均已创建 但没有任何打印导出 async def consumer queue id while T
  • 使用管道时出现“文件名、目录名或卷标语法不正确。”

    当我在我的机器上运行以下命令 或任何带有管道 的命令 时 目录 findstr 目录 我收到以下消息 文件名 目录名或卷标语法不正确 单独运行 dir 命令或 findstr 命令效果很好 卷标是 volC 盘中的卷是 OSDisk卷序列号
  • wpf 中自定义镀铬 Windows

    我尝试使用 WindowStyle None 和AllowsTransparency True 在 wpf 中创建自定义镀铬窗口 但是 当我最大化窗口时 它会覆盖整个屏幕 并超出其边缘 它还会隐藏我的窗口底部的 Windows 栏 屏幕 就
  • 枚举器的行为会根据我们引用它的方式而变化吗?

    将列表枚举器的引用包装在类中似乎会改变其行为 匿名类的示例 public static void Main var list new List
  • 如何在swift中重载赋值运算符

    我想重写 CGFloat 的 运算符 如下所示 func inout left CGFloat right Float left CGFloat right 所以我可以执行以下操作 var A CGFloat 1 var B Float 2
  • SQL Server:计算每月总销售额,包括空月

    我正在尝试计算一个月内产品的总销售额 但我希望它包括任何 空 月份 没有销售额 并且仅选择最近 12 个月 这是我到目前为止的代码 declare ProductNo int set ProductNo 1234 SELECT YEAR o
  • 如何向 MySQL 表添加“权重”并根据这些权重选择随机值?

    我想创建一个表 每行都包含某种权重 然后我想选择概率等于 该行的权重 所有行的权重 的随机值 例如 如果有 5 行 权重为 1000 中的 1 2 3 4 5 我会得到大约 1 15 1000 67 倍第一行 依此类推 该表需要手动填写 然
  • 使用PowerShell查找字符串中的差异

    所以我正在使用 Compare Object 它对于比较文件效果很好 但如果只是字符串呢 有没有办法找出字符串之间的差异 CompareTo 擅长报告存在差异 但不报告差异是什么 例如 PS gt a PowerShell rocks PS
  • Numpy 结构化数组无法完成基本 numpy 操作

    我想操纵namednumpy 数组 加 乘 连接 我定义了结构化数组 types name1 int name2 float a np array 2 3 3 dtype types b np array 4 5 35 dtype type
  • pandas 有没有办法从系列中删除重复项?

    我有一个数据框在 标签 列中有一些用逗号分隔的重复标签 有没有办法从系列中删除重复的字符串 我希望 400 的输出只有博物馆 饮酒 购物 我无法用逗号分割并删除它们 因为该系列中有一些标签具有相似的单词 例如 博物馆 艺术博物馆 购物 因此
  • 下载已部署的GAE应用程序的源代码

    如果我的硬盘上丢失了已部署应用程序的源代码 我可以下载该应用程序的源代码吗 我浏览了应用程序仪表板 但找不到任何选项来检查它 不 您不能 并且没有计划提供此类功能 抱歉 下次考虑投资 VCS 和备份
  • 如何访问AWS Lambda中的标头?

    我正在使用 AWS Api 网关 我已经使用 API Gateway 创建了资源和方法 我创建了 Lambda 函数 用于生成 json 格式的签名 URL 以通过 CloudFront 访问 s3 存储桶 当我使用 GET 方法调用 la
  • CMYK 值作为背景颜色

    我必须使用 RGB 值设置 div 的背景颜色 我能做到这一点 div style width 100px height 100px background color rgb 255 0 0 div 现在 由于我也有 CMYK 0 1 0
  • 在 Active Collab API 中获取分页结果

    我刚刚发现你可以通过传入 page 参数来通过 api 获取分页结果 如下所示 projects client gt get projects 147 time records page 3 gt getJson 有没有办法知道一个项目有多
  • 动态改变jButton图标

    我有一个程序可以检测某些机器何时在线 并创建一个带有绿色 在线 图标的按钮来显示这一点 我想添加功能来定期检查这台机器是否仍然在线 如果不是 请将图标更改为我已经定义的 离线 图标 我知道如何设置图标 但我不知道如何做到这一点 一旦按钮已经
  • 用于重新启动 Raspberry Pi 的 Python 脚本

    我想我想要的是直接的 在 23 小时 59 分钟后重新启动我的 Raspberry Pi 的 Python 脚本 我尝试执行此操作而不是使用 cron 作业设置时间的原因是 Pi 没有用于时钟的板载电池 所以我不在乎时间是什么 如果连接到互
  • 无法通过 Delphi 2010 和 Indy 10.5.5 使用与 Office365 的安全 SMTP 连接

    任何人都可以诊断我使用 Delphi 2010 和 Indy 10 5 5 连接到 smtp office365 com 的失败吗 我已经阅读了 Indy 专家 Remy Lebeau 在这个问题中提供的代码示例 将 INDY 10 SMT
  • ASP.NET MVC ContactsManager 教程中是否有解决依赖注入循环问题的好/正确方法?

    如果您不知道我在说什么 请查看教程并尝试自己添加依赖注入 或者尝试我对问题的解释 Note 此问题不属于 ASP NET 原始教程的范围 本教程仅表明所使用的模式是依赖注入友好的 问题基本上是控制器 ModelStateWrapper 和
  • javascript 函数中的“return this”有什么作用?

    我想知道 return this 在 javascript 函数中做什么 它的目的是什么 假设我们有以下代码 Function prototype method function name func this prototype name
  • 有没有办法通过自定义事件传递附加数据?

    我需要在两个自主用户脚本之间传递数据 理想情况下不接触unsafeWindow对象 我认为使用自定义事件是可行的方法 我想到了这样的事情 为了示例的目的 让我们忽略 MSIE 模型 addEventListener customEvent