有没有一种方法可以包装外部JS脚本嵌入懒加载行为,以便只在嵌入视口中时执行?
背景: 我有一个外部javascript嵌入,在运行时生成一个带有调度小部件的iframe。工作得很好,除了当脚本执行时,它会窃取焦点并将您向下滚动到小部件。供应商已经寻找解决方法几个星期了,但它正在破坏我的页面。我否则很喜欢供应商。
Javascript嵌入调用:
<a href=https://10to8.com/book/zgdmlguizqqyrsxvzo/ id="TTE-871dab0c-4011-4293-bee3-7aabab857cfd" target="_blank">See
Online Booking Page</a>
<script src=https://d3saea0ftg7bjt.cloudfront.net/embed/js/embed.min.js> </script> <script>
window.TTE.init({
targetDivId: "TTE-871dab0c-4011-4293-bee3-7aabab857cfd",
uuid: "871dab0c-4011-4293-bee3-7aabab857cfd",
service: 1158717
});
</script>
当我等待供应商修复他们的JS时,我想知道是否延迟加载JS嵌入可以实际上消除糟糕的用户体验。警告:我是JS / webdev新手,所以可能无法做任何复杂的事情。基于计时器的解决方法并不理想,因为当计时器运行完毕时,用户可能仍在查看页面的其他部分。以下是我尝试过的事情及其发生的情况:
我尝试过的事情: 发生了什么: 将async添加到上述一个或两个脚本声明中 要么只显示链接,要么一直抢占焦点。 将type =“module”添加到上述一个或两个脚本声明中 只呈现了链接。 使用适当的延迟加载标签将上述代码包装在iframe中 当我尝试时,它呈现为空白空间。
此外,我意识到这基本上与this相同的问题,但它没有得到任何可行的答案。
<script src=..
插入到您的 DOM 中。查看此 API。 - TKoL