【问题标题】:force load if dynamically inserted script如果动态插入脚本则强制加载
【发布时间】:2018-02-07 21:03:12
【问题描述】:

我正在尝试将脚本标记动态插入到.inner-booking-wrap 元素中,然后该元素将加载预订表格。虽然我在下面使用的方法是命中注定的,它会插入标签但不会总是运行脚本,我从来没有在超时内尝试过它来延迟一点。

$('<script>').attr('src', 'URL_GOES_HERE').appendTo('#booking-form .inner-booking-wrap');

在附加脚本后,有没有办法通过某种强制负载来完成我上面所做的事情?

【问题讨论】:

  • 脚本看起来很奇怪 - 没有结束标记。控制台有错误吗?
  • @andrey.shedko 结束标签会自动添加,所以这不是问题,控制台没有错误,只是非常偶然发现脚本是否会运行
  • 我用纯 JavaScript 做过类似的事情。 Jquery方式对我不起作用。我会发帖给你,一会儿就回答。
  • 我认为加载脚本有问题,可能是$(document).ready(....)里面写的代码?

标签: javascript jquery


【解决方案1】:

试试纯JS:

                <script type="text/javascript">
                    (function() {
                        var parentElement = document.querySelector("head");
                        var theFirstChild = parentElement.firstChild;
                        var ga = document.createElement("script");
                        ga.type = "text/javascript";
                        ga.src = "url_here";
                        parentElement.insertBefore(ga, theFirstChild);
                    })();
                </script>

【讨论】:

  • 我预见到的唯一问题是我需要将脚本标签放在.inner-booking-wrap 元素中(根据我的代码),因为这是放置预订表格的地方。所以不在头脑中,这也可能吗?
  • 我刚刚测试了这个,还是有问题,要么根本没有插入脚本,要么没有加载它?
  • 您可能想尝试eval(),但它存在安全问题。 Eval docs.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-13
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 2014-03-10
  • 1970-01-01
  • 2017-01-21
相关资源
最近更新 更多