我编写了一段JavaScript代码,覆盖了原生的alert()方法。 我需要捕获包含alert()执行代码的HTML元素。 前两种情况是示例。 我在console.log中打印了这些元素。
情况1 - 捕获<script>
标签:
HTML: <script> alert(1); </script>
JS:
window.alert = function()
{
console.log(document.currentScript); // <script> is printed
}
案例2 - 捕获 <img>
标签:
HTML: <img src='1' onerror="alert(1)">
JS:
window.alert = function()
{
console.log(arguments.callee.caller.arguments[0].target);
// arguments.callee --> console.log()
// arguments.callee.caller --> onerror(event) {}
// arguments.callee.caller.arguments[0] --> event
// arguments.callee.caller.arguments[0].target --> <img>
}
案例问题 - 捕获标签:
HTML: <a href="javascript:alert(1);">点击这里弹出警告</a>
JS:
window.alert = function()
{
console.log( // how to find <a> element)
}
请不要建议我通过包含
<a>
的ID来修改HTML或类似的方式。请考虑HTML是纯静态的,我无法进行任何修改。我只能添加JavaScript,并且我只想知道如何做到这一点。
{{link1:
元素,其中元素不包含要点击的<a href="javascript:alert(1);">
HTML或文本内容? - guest271314<a>
元素,并从客户端发送必要的数据到服务器。 - verstappen_doodle