【问题标题】:How to load script tag after page has loaded?页面加载后如何加载脚本标签?
【发布时间】:2020-07-06 10:15:04
【问题描述】:

我正在尝试在页面加载后立即加载广告脚本。通常,广告脚本如下所示

<script id="someId" language="javascript">
    someVar = thisValue;
    somethingElse
</script>

请注意,它已经有一个&lt;script&gt; 标记,删除它不会呈现广告。所以,无论如何它都必须在里面,而且里面的那些东西不应该被修改。

问题在于,我无法尝试将其放入函数中。

我正在尝试这样做,以便在加载时使用 &lt;script&gt; 标签

<script type="text/javascript">
function load() {
    //this is were the add goes
    <script id="someId" language="javascript">
        someVar = thisValue;
        somethingElse
    </script>
}
</script>

然后通过午餐函数

<script type="text/javascript">window.onLoad = load;</script>

所以从技术上讲,这就是我想要做的,但我无法执行此代码。什么是最好的,在页面加载后运行 '' 标记广告?

【问题讨论】:

    标签: javascript php html


    【解决方案1】:

    在页面加载之前或之后处理 jQuery 的简单方法:

    jQuery(function($){
        // Use jQuery code here with $ formatting.
        // Executes BEFORE page finishes loading.
    });
    
    jQuery(document).ready(function($){
        // Use jQuery code here with $ formatting.
        // Executes AFTER page finishes loading.
    });
    

    然后在处理 jQuery 页面加载后的第二部分中,使用 jQuery.getScript() 加载您的 Javascript 文件:

    $.getScript('/js/main.js');
    

    如果您希望新的 JS 在 JS 文件加载后立即启动,只需这样做:

    $.getScript('/js/main.js', function() {
        // Executes AFTER main.js file is loaded.
    });
    

    Click here for jsFiddle example.

    【讨论】:

      【解决方案2】:

      快速搜索延迟加载发现this

      <script>
        var resource = document.createElement('script'); 
        resource.async = "true";
        resource.src = "http://example.com/script.js";
        var script = document.getElementsByTagName('script')[0];
        script.parentNode.insertBefore(resource, script);
      </script>
      

      【讨论】:

      • 嗨,在 script.js 中有 &lt;script&gt; 标签可以吗,我想不是吗?我只是问,因为需要 &lt;script id="someId" language="javascript"&gt; 标签才能使广告正常工作。
      【解决方案3】:

      嗯,有两个主要错误:

      1. window.onload = 加载; (不加载)
      2. 在函数声明中写&lt;script&gt;是没有意义的

        <script>
            function load() {
                //this is were the add goes
                someVar = thisValue;
                somethingElse
            }
            window.onload = load;
        </script>
        

      你不能写这样的东西吗?

      如果你不能,至少,试着把你的&lt;script&gt;移到&lt;body&gt;的末尾。

      将脚本放在元素底部可以提高显示速度,因为脚本编译会减慢显示速度。

      如果你真的需要&lt;script id="someId" language="javascript"&gt;, 就这样放置吧:

          <script id="someId" language="javascript">
              function load() {
                  //this is were the add goes
                  someVar = thisValue;
                  somethingElse
              }
              window.onload = load;
          </script>
      

      【讨论】:

      • 您好,脚本内的代码不应该被修改。只是为了测试,我试过了,但它不起作用,我认为外部脚本阻止我对 &lt;script id="someId" language="javascript"&gt; 标记进行更改。
      • 所以不要改变它。使用第二个。或者你导入一些外部脚本?还有一个:尝试将你的 的末尾
      • 嗨,它也不起作用,页面渲染后,浏览器给我发送空白屏幕。
      • 代码中可能有错误。确保您已使用任何添加代码将&lt;script id="" src="url_to_ad"&gt;&lt;/script&gt; 写入底部
      【解决方案4】:

      试试这个方法:

      &lt;script async src="url_to_ad"&gt;&lt;/script&gt; 它可能会起作用。脚本元素上的布尔异步属性允许外部 JavaScript 文件在可用时运行,而不会首先延迟页面加载。

      【讨论】:

      • 这正是我想要的。
      猜你喜欢
      • 1970-01-01
      • 2011-09-02
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      相关资源
      最近更新 更多