在 AJAX 完成之前,不要让其他处理程序处理
Don't let other handlers handle until AJAX is done
所以,我有一个篡改猴子脚本被注入到Twitter中,我想在点击推文按钮时向事件队列的开头添加操作。到目前为止,我的操作已触发,但是return false;
和e.preventDefault()
在向按钮添加单击侦听器或向表单提交侦听器时,没有人阻止表单提交。提交侦听器事件实际上从未被触发,但按钮是触发的。所以,我的问题是,确保:
- 我的操作首先发生
- 在我的 ajax 完成之前不会发生其他操作
我似乎无法停止或找到Twitter提交推文的方式。不幸的是,我的操作触发了一个 ajax 调用,并且该 ajax 调用直到提交推文后才会调用其完成的回调。
更新:我也尝试了e.stopImmediatePropogation()
无济于事。
这只是一个猜测,也许没有多大帮助,但我认为提交的已经是来自Twitter的链接javascript eventListener/function。不知道这是否是如何处理的问题的一部分。
请参阅(打开浏览器控制台以查看输出):
var myApp = new function() {
this.init = function() {
var myForm = document.getElementById('myForm');
//first eventListener
myForm.addEventListener("submit", function(e){
e.preventDefault();
console.log('submit');
});
//second eventListener
myForm.addEventListener("submit", function(e){
e.preventDefault();
console.log('submit2');
e.stopPropagation();
return false;
});
}
};
myApp.init();
<form id="myForm">
<input type="submit" value="click" />
</form>
编辑:我发现了这个,它可能有帮助:如何在调试时或从 JavaScript 代码中查找 DOM 节点上的事件侦听器?
相关文章:
- 生成pdf或其他非html文件时的错误处理
- 将路由处理程序委托给NodeJS+Express中的其他模块
- 停止内部事件处理程序冒泡的其他方法,jQuery
- node.js express处理其他.get尝试
- stopPropagation是否还会阻止同一元素上的其他处理程序运行
- 在 AJAX 完成之前,不要让其他处理程序处理
- 将其他参数传递给事件处理程序
- 在其他事件处理程序之后实现事件处理程序
- 在单击时对元素进行动画处理,并在该元素和其他元素上单击鼠标输入/鼠标离开
- 单击图像,隐藏其他图像并使用JQUERY对图像滑动进行动画处理
- 如何使用 AngularJS 处理文档单击并通知其他控制器
- jQuery:如果其他滚动函数,则进行动画处理
- jQuery调用其他事件处理程序中的事件处理程序函数
- 有没有办法停止 dojo onBlur 事件处理程序中的所有其他事件
- 处理其他元素未处理的 JavaScript 事件
- 可以't让javascript在此页面上运行.(正在处理所有其他页面)
- Javascript回调的处理速度比其他回调更快
- 定义单个函数来处理其他函数的功能
- ajax 调用另一个 url 重置 JsessionId 因此无法继续处理其他链接
- 如何在 CSS 转换期间阻止在事件循环中处理其他消息