浏览器允许扩展注入代码,操纵DOM等.
多年来,我注意到我正在观看的网站(app)上有很多和各种未被捕获的错误(使用window.onerror),这些错误是由Firefox,Chrome和Internet Explorer(所有版本)上的未知浏览器扩展生成的.
这些错误似乎并没有打断任何事情.现在我想增加这个网站的安全性,因为它将开始处理信用卡.我亲眼目睹了恶意软件/间谍软件感染了浏览器,修改了浏览器扩展(无辜的浏览器扩展,修改为报告给攻击者/脚本小子)作为键盘记录程序(使用琐碎的onkey*事件处理程序,或只是input.value检查).
是否有方法(元标记等)通知浏览器禁止代码注入或读取DOM,标准或非标准?该网页已经是SSL,但这似乎并不重要(如提示浏览器激活更严格的扩展安全性).
.
可能的解决方法(一种拉伸与一种简单的元标记)由他人或我的头脑建议:
修改:Google Chrome会在隐身模式下停用扩展程序,但是,没有标准方法可以检测或自动启用隐身模式,因此必须显示永久警告.
我需要找到附加到#mySelect的所有事件处理程序,如果事件是通过jQuery创建的,我可以得到它,这里alert(e)只显示"change"而不是"click"
JavaScript:
$("#mySelect").change(function(){
alert("changed");
})
$.each($._data( $("#mySelect")[0], "events" ), function(e) {
alert(e);
})
Run Code Online (Sandbox Code Playgroud)
Html:
<select id="mySelect" onclick="alert('hello')" >
<option value="1">option 1</option>
<option value="2">option 2</option>
<option value="3">option 3</option>
<option value="4">option 4</option>
</select>
Run Code Online (Sandbox Code Playgroud) 可能重复:
测试事件处理程序是否绑定到jQuery中的元素
试图做以下(链接是'a'标签的jQuery对象):
link.data("events") //undefined even if link has event handlers
jQuery.data(link, 'events') //undefined always also
jQuery._data(link, 'events') //undefined always also
Run Code Online (Sandbox Code Playgroud)
使用jquery-1.8.3
那么,如何检查元素是否有点击处理程序?
我正在使用Javascript构建一个相当大的应用程序.它是一个可以更改不同视图的单个页面.所有视图都有自己的变量,事件,监听器,元素等.
在处理大型集合和多个事件时,有时可以很好地了解页面上发生了什么.
我知道所有浏览器都有开发人员工具,但有时很难点击所有元素等等.我找不到一些选项.
我感兴趣的一件事是知道当前在页面上收听了多少事件.通过这种方式,我可以确认我没有创建僵尸.
如果溶剂是开发人员工具,请告诉我在哪里查看和做什么.最重要的是,选择哪种浏览器.
我仍然无法相信这是不可能的,但是有一种方法可以循环访问dom并查看使用'addEventListener'附加的所有事件处理程序.这篇文章和许多其他人说没有.
如果是这种情况,那么Chrome的检查员或Firebug等应用程序如何显示它们,他们会这样做?我猜他们可能会以某种方式增加dom的方法,以便他们可以跟踪绑定的内容.
我正在页面中克隆一个textarea,但克隆的元素没有任何主要元素的事件,有没有办法克隆克隆元素中的所有事件?
var dupNode = node.cloneNode(deep);
Run Code Online (Sandbox Code Playgroud) 我正在尝试删除监听器。在控制台中,下面的代码正在运行。当我在 Chrome 扩展中使用代码时,我得到:“Uncaught ReferenceError:getEventListeners 未定义”。为什么会出现这种情况?是否有与“getEventListeners”功能等效的函数?
document.addEventListener('click', fireContentLoadedEvent, false);
function fireContentLoadedEvent () {
console.log ("DOMContentLoaded");
for (let i = 0; i < document.getElementsByClassName("someClass").length; i++) {
plusButton = document.getElementsByClassName("someClass")[i]
if ( getEventListeners(plusButton)["click"].length > 1) {
plusButton.removeEventListener("click", getEventListeners(plusButton).click[1].listener);
}
}
}
Run Code Online (Sandbox Code Playgroud) javascript google-chrome google-chrome-extension referenceerror google-chrome-devtools
我有一个HTML文档.
可以使用javascript获取与文档中特定FORM元素中的每个元素相关联的事件.
var element = document.forms[i].elements[j];
Run Code Online (Sandbox Code Playgroud)
这样我就能得到第i个形式的第j个元素,但是我可以得到与元素相关的事件.
表单中可以有任意数量的元素.我使用的是IE 8.
谢谢
编辑:
实际上我试图将HTML DOM序列化为XML.
我做的是:
createXML : function() {
objSerializeDOM.msg += "";
objSerializeDOM.msg += "<?xml version='1.0' encoding='UTF-8'?>\n\n";
// Get all the forms in a document.
var forms = document.forms;
for ( var i = 0; i < forms.length; i++) {
// Get all the elements on per form basis.
elements = document.forms[i].elements;
objSerializeDOM.msg += "<FORM name=\"" + forms[i].name + "\" method=\"" …
Run Code Online (Sandbox Code Playgroud) 可能重复:
如何使用FireBug(或类似工具)调试Javascript/jQuery事件绑定
如何在调试时从JavaScript节点或JavaScript代码中查找事件侦听器?
如何跟踪像onclick onblur这样的JavaScript事件?
我正在使用Firebug来检查HTML代码和CSS.我需要找到与元素关联的事件和处理程序.
使用Inspect按钮,我可以看到所有的CSS,但找不到事件处理程序.