我正在尝试对网页排序进行逆向工程。我可以访问源代码,但它有数千个文件,因此我希望找到一种方法来缩小搜索范围以获得我想要的内容。
该页面的图片中包含单词new。单击它时,将执行客户端操作。我说客户端,因为使用Fiddler进行监控并不显示服务器请求。
无论如何,javascript函数都会执行。
我要做的是找到执行的脚本。使用F12开发人员工具,我去检查被点击的元素,并且...我已经停在我的轨道上。
<a href="javascript:void(0);" title="Create" tabindex="0" class="ClassName">
<img src="/_imgs/add_10.png" class="PictureClass">New</a>
javascript:void(0)如何执行脚本?也许我错了,它正在制作服务器回发?
任何指针都会受到赞赏。
作为更新,所有指针都非常有用,但我仍然无法找到被解雇的事件......但这部分是由于必须关注其他一些问题。
导致我遇到困难的一件事是有一个不断运行的脚本,所以当我暂停执行时,@ Hafthor表示chrome dev工具在页面上放置了一个蓝色模态,我无法点击任何控件。
答案 0 :(得分:3)
void(0)
是“无所事事”构造,应避免使用javascript:
协议,因为建议使用click事件处理程序和return false
或使用{{取消事件1}}
void表示“什么都不返回”,如果你不在javascript协议中这样做,你就会冒着调用返回一个然后在页面中显示的值的风险。
示例(使用不显眼的JS更好地服务,但作为示例显示)
preventDefault
如果允许,会弹出一个窗口,但会呈现
<a href="javascript:window.open('somepage.html','_blank')">Click</a>
在带有链接的页面中。
[Object object]
不会因为void会抑制window.open的返回值,并且实际上类似于
<a href="javascript:void(window.open('somepage.html','_blank'))">Click</a>
再次不建议使用内联事件处理程序。
您看到的脚本仍然可以从外部添加到链接
<a href="#" onclick="window.open('somepage.html','_blank'); return false">Click</a>
不会受到void(0)
的阻碍更好的选择可能是
window.onload=function() {
document.getElementsByClassName("ClassName")[0].onclick=function() {
newImage();
}
}
答案 1 :(得分:1)
我使用的方法是从Safari或Chrome加载页面,打开调试器,按暂停,然后单击“创建”按钮,它应该在JavaScript的第一个执行位置中断。