如何在页面加载后加载脚本标记?

时间:2017-11-11 02:52:22

标签: javascript php html

我正在尝试在页面加载后立即加载广告脚本。通常,广告脚本看起来像这样

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

请注意,它上面已有<script>标记,删除它不会呈现广告。因此,无论如何,它都必须在那里,而且不应该修改内部的东西。

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

我试图这样做,在加载<script>标签上午餐

<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>

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

PS。我是Javascript的新手,所以更多的耐心将不胜感激。我也想避免使用jQuery。

4 个答案:

答案 0 :(得分:0)

快速搜索延迟加载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>

答案 1 :(得分:0)

嗯,有两个主要错误:

  1. window.onload = load; (不是onLoad)
  2. 在函数声明中编写<script>

    是没有意义的
    <script>
        function load() {
            //this is were the add goes
            someVar = thisValue;
            somethingElse
        }
        window.onload = load;
    </script>
    
  3. 你不能写那样的东西吗?

    如果你不能,至少尝试将<script>移到<body>的末尾。

      

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

    如果你真的需要<script id="someId" language="javascript">, 只是这样放置:

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

答案 2 :(得分:0)

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

d3.select('input').on('keydown', () => d3.event.stopPropagation())

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

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.
});

如果您希望新的JS在加载JS文件后立即启动,请按照以下步骤操作:

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

Click here for jsFiddle example

答案 3 :(得分:-1)

尝试这种方式:

<script async src="url_to_ad"></script> 它可能会奏效。脚本元素上的boolean async属性允许外部JavaScript文件在可用时运行,而不会首先延迟页面加载。