繁体   English   中英

使用 jQuery 加载外部脚本且无异步

[英]Loading external script with jQuery and no async

我需要在两秒钟后在页面上的特定位置加载一个外部脚本并且没有异步。 换句话说,脚本需要在两秒后准确地加载到我在页面 HTML 中放置的位置。 当我使用以下代码时,出现控制台错误:

无法在“文档”上执行“写入”:除非显式打开,否则无法从异步加载的外部脚本写入文档。

setTimeout(function(){
   $.ajax({
        url: 'https://example.com/embed.js',
        async: false,
        dataType: "script",
    });
}, 2000);

如果我将 async 设置为 false,为什么会出现该错误?

如果我将 async 设置为 false,为什么会出现该错误?

async属性仅适用于 XHR 请求(并且它触发的功能无论如何都已被弃用)。 您说dataType: "script",因此请求是通过将<script>元素注入文档而不是使用 XHR 来处理的。

我需要在两秒钟后在页面上的特定位置加载一个外部脚本并且没有异步。 换句话说,脚本需要在两秒后准确地加载到我在页面 HTML 中放置的位置。

鉴于外部脚本使用document.write ,我认为这是不可能的。

您应该改写它以使用 DOM 操作。

通过使用document.currentScript ,您可以确定<script>元素在 DOM 中的位置并在那里插入内容。

正在加载的脚本用于第三方表单(Kajabi),我无法更改他们使用 document.write 的方式

对此讨厌的方法是让它写入一个设置为display: none in CSS 的元素,然后在计时器上切换显示值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM