通过将脚本标记附加到正文

时间:2015-05-20 06:44:59

标签: javascript html

我正在尝试动态加载库脚本文件,如果它们没有被任何其他页面加载。在这里,container只是一个div元素。

if($ === undefined ){
   $(".container").append('<script src="../static/js/jquery.js"></script>')
   $(".container").append('<script src="../static/js/dt_jq_ui.js"></script>');
   $(".container").append('<script src="../static/js/report_app.js"></script>')
}

但是它失败并且firefox控制台错误是, enter image description here

错误文字是,

SyntaxError: unterminated string literal
$(".container").append('<script src="../static/js/jquery.js">

为什么带有script标记的html字符串标记为无效?

5 个答案:

答案 0 :(得分:2)

使用这种方式包含脚本:

(function(){
  var newscript = document.createElement('script');
     newscript.type = 'text/javascript';
     newscript.async = true;
     newscript.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js';
  (document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(newscript);
})();

答案 1 :(得分:2)

  

事件是否进入if block

答案为no,因为$被视为variable

1.实际上未定义的变量&#39;,即它们不存在,因为给定的名称不受当前词汇环境的约束。访问这样的变量会引发错误,但使用typeof won&t;并将返回&#39; undefined&#39;。相反,访问不存在的属性不会抛出错误并返回undefined(并且您可以使用in运算符或hasOwnProperty()方法来检查属性是否确实存在)。

2.现有的未赋值的变量(由于var提升而常见)或已明确设置为undefined的变量。访问这样的变量将返回undefined,typeof将返回&#39; undefined&#39;。

3.已显式设置为null的现有变量。访问这样的变量将返回null,typeof将返回&#39; object&#39;。请注意,这是误导性的:null不是对象,而是Null类型的原始值(其结果是您无法从构造函数返回null - 您必须抛出错误来表示失败)。 / p>

答案 2 :(得分:1)

尝试:

.append('\<script src="../static/js/jquery.js"\>\<\/script\>')

答案 3 :(得分:1)

试试这个

var s = document.createElement("script");
s.type = "text/javascript";
s.src = "../static/js/jquery.js";
$(".container").append(s);

答案 4 :(得分:1)

好吧,如果$未定义,
这会产生错误:

$(".container")

因为$不是一个函数,它是未定义的!