gpt4 book ai didi

javascript - outerHTML 数据不完整

转载 作者:行者123 更新时间:2023-11-30 15:56:49 27 4
gpt4 key购买 nike

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 中的元素的 func1() document.currentScript.parentNodefunc2()是一样的<div> ?我需要 <div> 的完整 outerHTML来自 func2() .

最佳答案

问题是当请求 document.currentScript.parentNode 时文档还没有准备好。尝试在 DOMContentLoaded 上检索 outerHTML:

function func2()
{
currentScriptReference = document.currentScript;
document.addEventListener('DOMContentLoaded', function(){
console.log(currentScriptReference.parentNode.outerHTML);
}, false);
}

正在工作的 plunker:https://plnkr.co/edit/koZ1xDlpFacm7r9uY8lC?p=preview

控制台日志结果:

<div id="WholeNew">
<script>func2()</script>
<img src="x">
</div>

关于javascript - outerHTML 数据不完整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38395771/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com