gpt4 book ai didi

javascript - 未捕获的 TypeError : t. querySelectorAll 在初始化嵌入式推文时不是函数

转载 作者:行者123 更新时间:2023-11-29 21:45:11 25 4
gpt4 key购买 nike

我正在使用来自 Twitter 的嵌入式推文 API。如果我从页面加载中获得 html Markdown ,一切都很好。如果我使用稍后添加内容的选项并按 ID 加载推文,它也很有效:

twttr.widgets.load(
document.getElementById("container")
);

这在此处的文档中:https://dev.twitter.com/web/javascript/initialization#init

但是如果我尝试通过类名加载推文:

twttr.widgets.load(
document.getElementsByClassName("containers")
);

我在 Twitter 的 widget.js 中遇到这个错误:

Uncaught TypeError: t.querySelectorAll is not a function

如果我将元素组记录到控制台,我就有了一个合适的组:

enter image description here

我是不是做错了什么或者这是 Twitter 小部件上的错误?

谢谢!

编辑:

自 2015 年 7 月 28 日起,getElementsByClassName 示例已从 Twitter 文档中删除,这要归功于我在 Twitter 开发论坛上发布的另一篇帖子

最佳答案

问题可能来自于 document.getElementsByClassName 返回 NodeList 的事实。不是真正的 javascript Array 对象的类型。另一方面,widgets.load 需要单个元素或元素的 Array。这导致 nodeList 被视为单个元素,并且库尝试对其调用 querySelectorAll,这对于 NodeList 类型不可用。

一个解决方案是在将它传递给 widgets.load 时将该 nodeList 转换为一个真正的数组。

一种方式:

twttr.widgets.load(
Array.prototype.slice.call(document.getElementsByClassName("containers"))
);

这是有效的,因为 NodeList 有一个 length 属性并且是可索引的

关于javascript - 未捕获的 TypeError : t. querySelectorAll 在初始化嵌入式推文时不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31458774/

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