你怎么看到哪个Javascript脚本生成了某个html行?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了你怎么看到哪个Javascript脚本生成了某个html行?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3033字,纯文字阅读大概需要5分钟。
内容图文
我有一些疯狂的应用程序几乎100%通过操纵DOM完成,我发现自己处于改变它的一些不幸的位置.由于可能有大约100个不同的脚本,上帝知道什么,我不知道我应该在哪个文件中进行更改.所以,我想问一下,有没有办法(使用Firebug或类似的东西)知道某个特定的HTML生成的位置?我是C开发人员,所以我不是很擅长这个,它让我发疯.
解决方法:
是否在页面加载时添加了所有元素,或者部分地添加到用户输入的响应中? (点击等)
>对于添加了对您的操作的响应的内容,您可以在“脚本”选项卡中使用Firebug的“Break On Next”按钮.要激活BON,您必须单击它,或者,在just-shipped Firebug 1.10.0a8中,使用键盘快捷键ALT-CTRL-B(当您将事件侦听器绑定到鼠标移动时非常有用).然后,当任何JS要响应你的点击等而执行时,你会遇到一个断点.
>对于在页面加载时添加的东西,你可以使用扩展原生函数的技巧(这可能听起来很疯狂 – 是的,不要在生产中这样做!),如appendChild, insertBefore, replaceChild.只需在顶部插入适当的代码您的主HTML文件,所以下面的所有代码将“看到”更改.
不幸的是,由于a bug,这在Firefox中不起作用.但是在Opera中也可以使用,我想在Chrome中也是如此.
扩展本机函数时,可以在将节点添加到页面之前注入任何代码.例如,调用console.log或创建断点,以检查当前页面状态.您可以尝试使用断点来查看这些函数中的可用变量属性,以调整您推送到console.log的内容.
对于此代码:
<!doctype html>
<html>
<head>
<script type="text/javascript">
// this should work in Firefox but it does not -- https://bugzilla.mozilla.org/show_bug.cgi?id=618379
// works at least in Opera, probably Chrome too
Node.prototype._appendChild = Node.prototype.appendChild;
Node.prototype.appendChild = function(child) {
console.log("appending " + child + " to " + this);
return this._appendChild(child); // call the original function with the original parameters
}
// this works in Firefox
document._createElement = document.createElement;
document.createElement = function(tagName){
console.log("creating " + tagName);
return this._createElement(tagName);
}
</script>
</head>
<body>
<script type="text/javascript">
var p = document.createElement("p");
p.appendChild( document.createTextNode("abc"));
document.body.appendChild(p);
</script>
</body>
</html>
Opera输出:
creating p appendChild.html:14
appending [object Text] to [object HTMLParagraphElement] appendChild.html:7
appending [object HTMLParagraphElement] to [object HTMLBodyElement] appendChild.html:7
为了克服Firefox的弱点(你无法覆盖appendChild),你可以使用这个技巧:将代码置于HTML的顶部
<script>
Node.prototype._appendChild = function(child) {
console.log("appending " + child + " to " + this);
return this.appendChild(child)
};
</script>
然后,通过创建auto-responders (WMV tutorial, 9.9 MB)使用Fiddler proxy,您可以使用._appendChild手动替换对.appendChild的所有调用(您可以使用记事本“在所有打开的文件中查找替换”).创建自动响应程序和手动篡改请求可能是平凡的,但它非常强大.要快速创建自动应答器规则,请在Fiddler处于活动状态时加载页面,然后拖放文件,如下图所示.对于每个文件,右键单击并从菜单中选择“生成文件”(这将在桌面上放置文件)或在自己的不同位置创建文件. (最好打开Fiddler生成的文件并从中删除响应头; BTW“生成文件”仅在响应头为200时才放入实际内容,因此请确保使用CTRL-F5加载页面以跳过缓存).
内容总结
以上是互联网集市为您收集整理的你怎么看到哪个Javascript脚本生成了某个html行?全部内容,希望文章能够帮你解决你怎么看到哪个Javascript脚本生成了某个html行?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。