此类小部件通常的工作方式是,脚本将在加载后寻找要“转换”的元素。
您只是在脚本已经嵌入之后动态设置链接的 href - 在您的小提琴中可以工作,因为它发生得足够快,在脚本已经完成加载之前。但是,如果您将设置 hraf 的代码包装到
setTimeout
中,延迟五秒,您应该注意到它停止工作 - 因为脚本在初始化时在链接上找不到有效的 reddit 帖子 URL本身。
有时这些小部件脚本提供了一个您可以调用的方法,让它们再次寻找要转换的元素 - 但我什至找不到这个 reddit 小部件的任何实际文档,所以我不知道这是否是这里也有案例。
通过 Qualtrics 嵌入整个内容,您显然也遇到了类似的问题 - href 设置发生得太晚了。您应该能够解决这个问题,只需在设置链接 href 后插入嵌入脚本即可:
// ...
redditLink.href = randomUrl;
let s = document.createElement("script");
s.src="https://embed.reddit.com/widgets.js"
document.body.appendChild(s);