Javascript 延迟加载数据属性为-Pinterest的脚本

Javascript 延迟加载数据属性为-Pinterest的脚本,javascript,pinterest,Javascript,Pinterest,我有这个代码,我想推迟10秒后加载 我尝试的是: <script> $(document).ready(function(){ jQuery.loadScript = function (url, callback) { jQuery.ajax({ url: url, dataType: 'script', success: callback, async: tr

我有这个代码,我想推迟10秒后加载

我尝试的是:

<script>
$(document).ready(function(){
    jQuery.loadScript = function (url, callback) {
        jQuery.ajax({
            url: url,
            dataType: 'script',
            success: callback,
            async: true
        });
    };

    setTimeout(function() {
        $.loadScript("https://assets.pinterest.com/js/pinit.js", function(){
            // Do nothing for now
        });
    }, 10000);
});
</script>

$(文档).ready(函数(){
jQuery.loadScript=函数(url,回调){
jQuery.ajax({
url:url,
数据类型:“脚本”,
成功:回调,
异步:true
});
};
setTimeout(函数(){
$.loadScript(“https://assets.pinterest.com/js/pinit.js“,函数(){
//现在什么都不要做
});
}, 10000);
});
具有不同的变体以包括数据pin hover=“true”部分,但没有任何帮助

有什么想法吗


谢谢大家!

最终使用jquery和纯js完成:

<script>
$(document).ready(function() {
    setTimeout(function () {
        (function(d,s,id){
            var js,fjs = d.getElementsByTagName(s)[0];
            if(d.getElementById(id)){return;}
            js=d.createElement(s);
            js.id=id;
            js.setAttribute("data-pin-hover", true);
            js.src="https://assets.pinterest.com/js/pinit.js";
            fjs.parentNode.insertBefore(js,fjs);
            }(document, "script", "pinterest-x3f")
        );
    }, 10000);
});
</script>

$(文档).ready(函数(){
setTimeout(函数(){
(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id)){return;}
js=d.createElement;
js.id=id;
setAttribute(“数据针悬停”,true);
js.src=”https://assets.pinterest.com/js/pinit.js";
fjs.parentNode.insertBefore(js,fjs);
}(文件,“脚本”,“pinterest-x3f”)
);
}, 10000);
});

我认为jQuery的ajax方法无法做到这一点,相反,您可以创建一个元素并向其中添加属性

就你而言:

$(document).ready(function(){
        function loadScript(src, attributes) {
            // creates a <script> tag and append it to the page
            // this causes the script with given src to start loading and run when complete
            let script = document.createElement('script');
            script.src = src;
            for(const element in attributes) {
                script.setAttribute(element, attributes[element]);
            }
            console.log(script)
            document.body.append(script);
        }

        setTimeout(function() {
            let attributes = {
                    'data-pin-hover' : true,
                    defer: '',
                    async: '',
                }

            loadScript("https://assets.pinterest.com/js/pinit.js", attributes, function(){
                // nothing
            });
        }, 10000);
    });
$(文档).ready(函数(){
函数加载脚本(src,属性){
//创建标记并将其附加到页面
//这将导致具有给定src的脚本开始加载并在完成时运行
让script=document.createElement('script');
script.src=src;
for(属性中的常量元素){
setAttribute(元素,attributes[element]);
}
console.log(脚本)
document.body.append(脚本);
}
setTimeout(函数(){
让属性={
“数据针悬停”:true,
延迟:'',
异步:“”,
}
加载脚本(“https://assets.pinterest.com/js/pinit.js,属性,函数(){
//没什么
});
}, 10000);
});