检测输入元素的属性(类型)变化

时间:2021-06-17 12:31:33

标签: javascript html jquery security passwords

如何在java Script或jquery中的Inspection中限制将输入类型密码更改为文本。如果有人尝试打开开发者菜单中的输入类型密码元素并尝试将类型从密码更改为文本,这会使密码出现在文本框中。

如果我们可以检测到任何可能起作用的属性更改,但我不确定如果我们从开发者菜单进行更改是否会起作用。

1 个答案:

答案 0 :(得分:0)

这是一个有趣的问题,在 javascript 中,我们没有任何直接的方法可以检测 javascript 中的类型或属性更改。我遇到了同样的问题,然后经过一些研究,我发现这可以通过 Mutation 观察器来完成。 在这段代码中,我为 HTMLElement 创建了一个扩展方法,我们所要做的就是获取该 HTMLElement 的引用并调用此扩展函数并传递我们希望在属性更改时运行的回调。

HTMLElement.prototype.onAttributeChange = function (c) {
    let observer = new MutationObserver(c);
    observer.observe(this,{attributes:true});
};
var elem=document.getElementById("txtpassword");
elem.onAttributeChange(function(){
        alert("attribute changed");
});
<html>
    <title> 
    </title>
    <head>
    </head>
    <body>
        <input type="password" name="password" id="txtpassword" >
        
    </body>
</html>