在Chrome控制台中包含JavaScript文件

有没有更简单的(本地或许?)的方式来包括一个外部脚本文件在谷歌Chrome浏览器? 目前我正在这样做:

document.head.innerHTML+='<script src="http://example.com/fil.js"></script>'; 

appendChild()是更原始的方式:

 var script = document.createElement('script'); script.type = 'text/javascript'; script.src = 'script.js'; document.head.appendChild(script); 

你使用一些AJAX框架? 使用jQuery,它将是:

 $.getScript('script.js'); 

如果你没有使用任何框架,然后看到哈门的答案。

(也许这是不值得使用jQuery来做这个简单的事情( 或者也许是这样 ),但如果你已经加载它,那么你也可以使用它。我见过的网站有jQuery加载,例如与Bootstrap,但仍然直接使用DOM API并不总是可移植的,而不是使用已经加载的jQuery,很多人都没有意识到即使getElementById()在所有浏览器上都不能一致地工作 – 看到这个答案了解详情)

更新:

我写了这个答案已经有好几年了,我认为在这里值得指出,今天你可以使用:

  • SystemJS
  • ModuleLoader组件
  • jspm.io

dynamic加载脚本。 这些可能与阅读这个问题的人有关。

另请参阅: Guy Bedford的Fluent 2014演讲:ES6模块的实用工作stream程 。

在现代浏览器中,您可以使用获取来下载资源( Mozilla文档 ),然后eval执行它。

例如要下载Angular1,你需要input:

 fetch('ajax/libs/angular.js/1.5.8/angular.min.js') .then(response => response.text()) .then(text => eval(text)) .then(() => { /* now you can use your library */ }) 

在Chrome中,最佳选项可能是“开发人员工具”中“源”下的“摘录”选项卡。

它将允许您编写和运行代码,例如,在about:空白页面中。

更多信息,请访问: https : //developers.google.com/web/tools/chrome-devtools/debug/snippets/?hl = zh_CN

 var el = document.createElement("script"), loaded = false; el.onload = el.onreadystatechange = function () { if ((el.readyState && el.readyState !== "complete" && el.readyState !== "loaded") || loaded) { return false; } el.onload = el.onreadystatechange = null; loaded = true; // done! }; el.async = true; el.src = path; var hhead = document.getElementsByTagName('head')[0]; hhead.insertBefore(el, hhead.firstChild); 

作为@ maciej-bukowski 上面^^^的答案的后续,在现在的浏览器(截至到2017年春季),支持asynchronous/等待您可以加载如下。 在这个例子中,我们加载了html2canvas库:

 async function loadScript(url) { let response = await fetch(url); let script = await response.text(); eval(script); } let scriptUrl = 'ajax/libs/html2canvas/0.4.1/html2canvas.min.js' loadScript(scriptUrl);