如何调试隐藏输入字段值的JavaScript修改?
我有一个带有角度JS前端的Laravel5.2应用程序。我遇到了一个问题,它首先表现为CSRF令牌不匹配异常。进一步调试,我发现,虽然包含CSRF值的隐藏输入字段被正确生成和填充,但在页面加载期间,该值有时会从DOM中删除 这是原始DOM元素的外观:如何调试隐藏输入字段值的JavaScript修改?,javascript,jquery,angularjs,laravel,debugging,Javascript,Jquery,Angularjs,Laravel,Debugging,我有一个带有角度JS前端的Laravel5.2应用程序。我遇到了一个问题,它首先表现为CSRF令牌不匹配异常。进一步调试,我发现,虽然包含CSRF值的隐藏输入字段被正确生成和填充,但在页面加载期间,该值有时会从DOM中删除 这是原始DOM元素的外观: <input type="hidden" name="_token" value="foo-bar"> 显然,进行修改的代码必须是JavaScript。我试图搜索与输入类型和名称相关的DOM绑定,但结果为空。类似地,似乎没有查找父
<input type="hidden" name="_token" value="foo-bar">
显然,进行修改的代码必须是JavaScript。我试图搜索与输入类型和名称相关的DOM绑定,但结果为空。类似地,似乎没有查找父DOM元素的绑定
然后我注意到了一件更奇怪的事情:我可以将该字段重命名为不同的“name”属性,甚至可以更改字段类型(比如说“text”),并且仍然会删除值。我发现任何21个或更多字符的值都会被擦除。保留20个字符的值
我已经检查了每一行自定义JS代码,没有找到罪魁祸首。没有对字段名或值长度的引用
安装了很多composer软件包,有很多不同的供应商,还有Angular和jQuery UI,我无法合理地搜索大量的JS,因为我实际上没有什么可搜索的(甚至无法搜索20/21的值,因为grep
显示了数千个结果)
Chrome允许我在输入元素上设置一个断点,并说当属性更改时应该触发断点。。。除非它不会触发
关于如何追踪问题根源还有其他想法吗?好吧,一天后我终于找到了问题所在:“Adblock Plus for YouTube”扩展安装在我的Chrome浏览器中。这个扩展已经安装了很多年,但直到现在才随机开始引起问题。禁用它会修复问题,重新启用它会重新引入问题
通过消除过程发现的。仍然没有很好的方法来调试我描述的问题。我不能确切地理解问题是什么,但看起来您只是想知道是什么改变了隐藏输入的值,对吗?尝试将事件侦听器绑定到输入并检查
事件
参数@塞吉奥伦-是的,没错。我将回顾jQuery的事件侦听器,看看是否有办法查看绑定到元素的所有内容。。。我想我记得以前做过一次。谢谢你的提示!我已经看过了,没有任何事件绑定到该元素。所以有些东西正在搜索它,修改它的值(删除它),然后继续。。。