有没有一个更简单的(本机也许?)方法,包括一个外部脚本文件在谷歌Chrome浏览器?

目前我是这样做的:

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

当前回答

如果任何人,因为他的脚本违反了script-src的“内容安全策略”或“因为不安全的eval'是不允许的”而加载失败,我将建议使用我的相当小的模块注入器作为dev-tools片段,那么你将能够像这样加载:

进口(“https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js”) 犹豫(()= > alert('今天是${时刻().format (dddd)} ')); < script src = " https://raw.githack.com/shmuelf/PowerJS/master/src/power-moduleInjector.js " > < /脚本>

这个解决方案是可行的,因为:

它在xhr中加载库-这允许从控制台进行CORS,并避免了script-src策略。 它使用xhr的同步选项,允许您停留在控制台/代码片段的上下文中,因此您将有权限对脚本进行评估,而不会被视为不安全的评估。

其他回答

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);

你可以获取脚本作为文本,然后求值:

eval(await (await fetch('http://example.com/file.js')).text())

在chrome中,你最好的选择可能是在开发人员工具中的源代码下的snippet选项卡。

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

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

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

例如,要下载Angular1,你需要输入:

fetch('https://cdnjs.cloudflare.com/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 */ })

如果你刚开始学习javascript,不想花时间创建一个完整的网页,只是为了嵌入测试脚本,只需在Chrome浏览器的新选项卡中打开开发工具,然后单击控制台。

然后输入一些测试脚本:例如。

console.log('Aha!') 

然后在每一行后按Enter(由Chrome提交执行)

或者加载你自己的“外部脚本文件”:

document.createElement('script').src = 'http://example.com/file.js';

然后调用你的函数:

console.log(file.function('驨ꍬ啯ꍲᕤ'))

测试在谷歌Chrome 85.0.4183.121