草庐IT

安全事件

全部标签

javascript - 捕获所有事件(javascript)

我希望能够捕获所有创建和分派(dispatch)的事件,并在发生这种情况时触发一些回调。此外,我希望能够在事件与事件监听器配对时随时触发回调。问题包括:动态添加的元素、阻止传播或冒泡的事件以及动态生成的自定义事件。我想可能需要一个dispatchEvent之类的原型(prototype),但我不确定。这可能吗? 最佳答案 一些事件基础:事件在作为事件目标的DOM对象(通常是元素)“上”调度。事件可以首先向下传播到捕获阶段的子元素。这个阶段很少使用,因为它直到最近才被一些广泛使用的浏览器支持。事件可以在冒泡阶段传播到父元素。这个阶段很

javascript - Node.js 事件发射器 : How to bind a class context to the event listener and then remove this listener

有没有办法在事件监听器方法中访问类上下文并有可能删除监听器?示例1:import{EventEmitter}from"events";exportdefaultclassEventsExample1{privateemitter:EventEmitter;constructor(privatetext:string){this.emitter=newEventEmitter();this.emitter.addListener("test",this.handleTestEvent);this.emitter.emit("test");}publicdispose(){this.emi

javascript - 等待窗口加载事件注册服务 worker

我在GoogleWorkboxdocumentation中偶然发现了这个片段://Checkthatserviceworkersareregisteredif('serviceWorker'innavigator){//Usethewindowloadeventtokeepthepageloadperformantwindow.addEventListener('load',()=>{navigator.serviceWorker.register('/sw.js');});}如果没有窗口load事件处理程序,页面加载究竟是如何变得性能下降的?ServiceWorker尽早连接通常不是

javascript - Javascript 事件监听器是否需要在删除它们所附加的元素之前被删除?

假设我已将各种事件监听器附加到各种表单元素。后来,我想删除整个表格。是否有必要(或建议)注销存在于表单及其元素上的任何事件处理程序?如果是这样,删除元素集合上所有监听器的最简单方法是什么?不这样做的后果是什么?如果重要的话,我正在使用Prototype。这就是我实际在做的事情。我有一个简单的表格,如下所示:我观察输入的各种事件,例如:$('foo').observe('keypress',onFooKeypress);$('bar').observe('keypress',onBarKeypress);等等表单通过AJAX提交,响应是表单的新副本。我用新表单的副本替换旧表单,执行类似$

javascript - 任何 View 模型 dom 更新的 Knockout JS 事件

每当通过Knockout.JS更新DOM时,我需要运行一段jqueryui代码。我意识到这可以使用自定义绑定(bind)来完成,但这似乎与特定的View模型有关,我想在全局范围内进行,所以每当它发生在它触发的任何View模型上时?假设我总是希望在所有带有“needsdate”类的文本框上使用JQuery日期选择器,而不是将其添加到我的每个View模型中,如果我可以在全局范围内这样做就太好了。这可能吗? 最佳答案 如果您不打算动态添加/删除元素,那么您可以像往常一样将它们连接起来。但是,如果您正在处理动态内容(例如使用修改了其项目的o

javascript - 如何检测窗外的 MouseUp 事件?

我正在寻找jQuery解决方案来检测窗口外的mouseup。也就是说,当鼠标在窗口内被按下,在仍然向下的状态下被拖到外面,然后在外面释放时,就是事件应该触发的时候。我尝试了document.mouseup=function(){},但没有帮助。我试着按照这个例子here,但无法正确理解它(我什至发表评论寻求帮助,但还没有帮助..:() 最佳答案 我有一个使用此事件的网站,它按照您的描述工作:$(window).on('mouseup',function(){//yourcodehere});注意:仅在jQuery1.8.3中测试过,

javascript - 我应该将我的 .on ('click' ) 事件附加到文档或元素吗

昨天我正在阅读关于.on()的jQuery文档,其中指出:Avoidexcessiveuseofdocumentordocument.bodyfordelegatedeventsonlargedocuments但是今天,我正在看这个JSPERF当点击事件附加到文档时,我注意到性能更好。所以现在,我很困惑。性能测试与文档背道而驰? 最佳答案 此处的JSPerf正在测试附加事件的速度,而不是它们对累积页面性能的影响。这是测试错误的东西!Javascript事件在DOM中一直传播到文档根目录。这意味着如果您在document上有一个on(

javascript - 使用 Sinon 测试 JavaScript 点击事件

我正在尝试进行一些测试,以便能够更好地理解如何结合使用Mocha、Chai、Sinon和jQuery来测试DOM事件。我想检查单击div元素时是否正确触发了警报功能。我知道HTML元素的设置是正确的jQuery,但我不完全确定如何为下面的代码生成通过测试。特别奇怪的是,在我的浏览器中打开HTML文件时出现一个对话框,所以我知道行'$('#thingy').trigger('click')'正在做我期望的事情。我目前收到以下消息,'TypeError:objectisnotafunction'我的测试文件tests.js中的相关部分describe('DOMtests-divelemen

javascript - 选项卡/浏览器关闭时触发 Angularjs 事件

我想在AngularjsController中触发JS代码。我有这个:$scope.$on('$destroy',function(){alert('page1');});当我离开使用该Controller的页面时,它工作正常,但当我关闭选项卡/浏览器时它不工作。当标签页/浏览器关闭时,我是否需要使用其他代码来触发JS代码? 最佳答案 来自Angular文档:$destroy();Removesthecurrentscope(andallofitschildren)fromtheparentscope.Removalimpliest

javascript - 如何将参数传递给 meteor 中的模板事件?

如何将值传递给模板事件HTMLText1//passa=1Text2//passa=2JavascriptTemplate.Header.events({'click.testClass':function(event,template){console.log(a)//printavalues}}); 最佳答案 您需要设置适当的数据上下文,例如使用子模板:HTML{{>testtext="Text1"a=1}}{{>testtext="Text2"a=2}}{{text}}JSTemplate.test.events({"clic