HTML:
<div id="WholeNew">
<script>func2()</script>
<img src="x" onerror=func1() />
</div>
JS:
function func1()
{
console.log(arguments.callee.caller.arguments[0].target.parentNode.outerHTML);
}
function func2()
{
console.log(document.currentScript.parentNode.outerHTML);
}
现在查看控制台中的输出:
对于 func1():
<div id="WholeNew">
<script>func2()</script>
<img src="x" onerror=func1() />
</div>
对于 func2():
<div id="WholeNew">
<script>func2()</script>
</div>
为什么两个输出存在差异,因为document.callee.caller.arguments[0].target
offunc1()
document.currentScript.parentNode
中的元素func2()
是相同的<div>
?我需要<div>
from的完整外层HTML func2()
。