我正在尝试动态加载库脚本文件,如果它们没有被任何其他页面加载。在这里,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控制台错误是,
错误文字是,
SyntaxError: unterminated string literal
$(".container").append('<script src="../static/js/jquery.js">
为什么带有script
标记的html字符串标记为无效?
答案 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")
因为$不是一个函数,它是未定义的!