【问题标题】:Including javascript library from HTML body包括来自 HTML 正文的 javascript 库
【发布时间】:2013-12-10 11:02:41
【问题描述】:

我想从我的 HTML 正文中将一个 javascript 库包含到我的 HTML 页面中。我在正文中加入了以下脚本:

<script type = "text/javascript" >
var scriptHeader = document.createElement('script');
scriptHeader.setAttribute("type","text/javascript")
scriptHeader.setAttribute("src", 'http://dygraphs.com/dygraph-combined.js' );
if (typeof scriptHeader!="undefined") {
    document.getElementsByTagName("head")[0].appendChild(scriptHeader);
    // alert( "Success!!" );
}
else {

}
</script>

现在我把我的 JS 称为

<script type = "text/javascript">
var plot = new Dygraph( 
               // ... create new graph
</script>

没有“警报”,这是行不通的。它在扔

ReferenceError: Dygraph is not defined

我认为这是一个同步问题。我该如何解决这个问题?

【问题讨论】:

  • 这是因为您在页面渲染后将脚本元素添加到页面中,因此浏览器没有下载脚本,因此它不知道 Dygraph

标签: javascript sync dygraphs


【解决方案1】:

$.getScript 怎么用?

$.getScript("someScript.js", function () {
    // use it here
});

编辑

没有 jQuery:

var el = document.createElement('script');
el.async = true;
el.src = 'http://jsfiddle.net/js/moo-clientcide-1.3.js?jobofferinsidebar';
el.onload = function(){
    alert('loaded');
    // use here
};

el.onerror = function(){
    alert('fail');
};

document.head.appendChild( el );

这里是fiddle

【讨论】:

  • 问题是我不能使用 jQuery 或任何其他 JS 库。我无法控制 HTML 头部的内容(它是由我的主引擎生成的,我不应该编辑它)。我唯一能做的就是在 HTML 的正文部分编写任何脚本。
猜你喜欢
  • 1970-01-01
  • 2015-02-23
  • 1970-01-01
  • 2014-04-19
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 2012-02-05
  • 1970-01-01
相关资源
最近更新 更多