gpt4 book ai didi

Javascript 在 Chrome 中返回 null,在源代码中返回 HTML 元素

转载 作者:搜寻专家 更新时间:2023-11-01 04:23:05 25 4
gpt4 key购买 nike

我正在尝试在 Chrome 的控制台中阅读此 HTML:

<span id="lblSummaryFreight">Kr 79</span>

使用这个 JS:

document.getElementById('lblSummaryFreight').innerHTML;

但是,在页面加载后,运行此行将返回 null 或无效。如果我检查元素然后运行代码,它会按预期工作并返回“Kr 79”。那么,这是我不知道的某种 DOM 问题,还是特定于浏览器的问题?

我将其用作 Google 跟踪代码管理器中的变量,它在 50% 的情况下都有效。我无权访问网页本身的源代码,因此我需要依靠这种相当笨拙的方式来获取数据。

很多关于此的帖子表明这是因为脚本在 DOM 准备就绪之前被触发,但我认为这不是问题,因为我还在页面加载后在控制台中对此进行了测试(并且存在 HTML 元素),并且在 Google 跟踪代码管理器中,我已指定应在 DOM 准备就绪后触发该代码。

有什么线索吗?

编辑/澄清:我无法更改页面本身的代码,只能读取输出源,我正在尝试通过 GTM 使用 JS

最佳答案

似乎无法解决这个问题,而且这似乎是某些古怪来源的错误,我将尝试找出另一种方法来获取我需要的数据。

我学到了什么:

  • 这个问题似乎是 Chrome 特有的,因为它适用于其他浏览器。实现此代码的 GTM 标记在约 50% 的情况下返回正确值这一事实支持这一点
  • 在 Android 原生浏览器中测试该页面,它也会返回“undefined”。重新加载触发代码的页面后,它会返回正确的值。
  • 整个 DOM 在控制台中似乎不可用。也试过这个:

    document.getElementsByClassName('complete').length

返回 0,但源代码中大约有 10 个该类的实例。检查页面上的任何位置后,它返回正确的数字。

  • 运行脚本的任何延迟都无济于事,只有元素的符号检查或重新加载页面才有帮助。

所以我的结论是,这个网页的构建方式在某种程度上与某些浏览器的风格背道而驰 - 似乎源代码在加载后就从内存中消失了。但这远远超出了我的理解水平。

感谢所有的输入!

关于Javascript 在 Chrome 中返回 null,在源代码中返回 HTML 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38894306/

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