特定秒后运行javascript

时间:2017-07-18 21:30:20

标签: javascript php html

我正在使用此代码在我的网站上添加javascript:

<script type="text/javascript" src="https://www.fileoasis.net/contentlockers/load.php?id=6f29997ae5eebe6d78b97e842d1c3835"></script>

是否有任何解决方案可以在网站加载后几秒钟内运行/加载此脚本?

3 个答案:

答案 0 :(得分:1)

如果外部库中有函数,请照常加载,然后在主页代码中添加:

 // When the DOM is built...
 window.addEventListener("DOMContentLoaded", function(){
   // Run the named function after the specified delay
   setTimeout(externalFunctionName, millisecondDelay);  
 });

如果该外部库中没有命名函数,则将该库中的所有代码包装在命名函数中,并使用上述技术。

答案 1 :(得分:0)

试试这个:

<script>

setTimeout(function()
{
  var s = document.createElement("script");
  s.type = "text/javascript";
  s.src = "https://www.fileoasis.net/contentlockers/load.php?id=6f29997ae5eebe6d78b97e842d1c3835";
  $("head").append(s);
} , 3000);//3 seconds

</script>

答案 2 :(得分:0)

其中一些答案显示了如何使用jQuery加载脚本。

使用纯JavaScript:

<script>
  function loadScript() {
    console.log('Loading');
    var secondsToWait = 3;

    setTimeout(function() {
      var s = document.createElement("script");
      s.type = "text/javascript";
      s.src = "https://www.fileoasis.net/contentlockers/load.php?id=6f29997ae5eebe6d78b97e842d1c3835";
      var head = document.getElementsByTagName("head")[0];
      head.appendChild(s);
    }, secondsToWait * 1000);
  }
  window.addEventListener("DOMContentLoaded", loadScript);
</script>

您可以使用Web开发人员工具中的newtwork选项卡验证其加载情况。

Google加载他们的脚本如下:

<script>
  (function(i, s, o, g, r, a, m) {
    i['GoogleAnalyticsObject'] = r;
    i[r] = i[r] || function() {
      (i[r].q = i[r].q || []).push(arguments)
    }, i[r].l = 1 * new Date();
    a = s.createElement(o), m = s.getElementsByTagName(o)[0];
    a.async = 1;
    a.src = g;
    m.parentNode.insertBefore(a, m)
  })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
</script>

这相当于:

var a=document.createElement("script");
a.async = 1;
a.src = "https://www.google-analytics.com/analytics.js";
var m = document.getElementsByTagName("script")[0];
m.parentNode.insertBefore(a, m); //insert the srcipt before the first script on the page.

考虑到大多数网页的script代码中都有<head>代码,与使用document.getElementsByTagName("head")[0].appendChild相同。

jQuery loads scripts使用相同的方法将创建的脚本元素附加到head标记:

var script, callback;
    return {
        send: function( _, complete ) {
            script = jQuery( "<script>" ).prop( {
                charset: s.scriptCharset,
                src: s.url
            } ).on(
                "load error",
                callback = function( evt ) {
                    script.remove();
                    callback = null;
                    if ( evt ) {
                        complete( evt.type === "error" ? 404 : 200, evt.type );
                    }
                }
            );

            // Use native DOM manipulation to avoid our domManip AJAX trickery
            document.head.appendChild( script[ 0 ] );
        },
        abort: function() {
            if ( callback ) {
                callback();
            }
        }
};