直接从浏览器执行JavaScript文件

这听起来像一个琐事,但我真的需要知道.

如果您将HTML文件的URL放在浏览器的“位置”栏中,则会呈现该HTML.这就是浏览器的全部目的.

如果您给它一个JPG,或SWF,甚至PDF,它将为这些数据类型做正确的事情.

但是,如果您给它一个JavaScript文件的URL,它将显示该文件的文本.我想要的是直接执行该文件.

现在,我知道如果你使用javascript:协议,它将执行URL的文本,但这不是我需要的.

我可以将URL指向一个HTML文件,该文件由单个< script>标签反过来指向JavaScript文件,但是由于我自己的隐藏原因,我不能这样做.

如果http://example.com/file.js中的文件完全由

 alert("it ran");

而且我把这个URL放在位置栏中,我想要“运行”弹出来作为警报.

我怀疑这是可能的,但我希望反对希望有一个标题或MIME类型或类似的东西,我可以设置,奇迹般地使这种情况发生.

这不可能.浏览器不知道JavaScript应该运行什么内容;例如窗口的属性是什么?如果您认为可以提出一些随机的默认值,那么文档的行为呢?如果有人做document.body.innerHTML =“foo”应该怎么办?

JavaScript与图像或HTML页面不同,取决于它运行的上下文.该上下文可能是一个HTML页面,或者它可以是一个Node服务器环境,甚至可能是Windows Scripting Host.但是,如果您只是浏览到一个URL,浏览器就不知道应该在哪个上下文中运行该脚本.

作为解决方法,可能使用about:blank作为主机页面.然后,您可以通过在URL栏中粘贴以下内容将脚本插入到文档中,为其提供适当的执行上下文:

javascript:(function () { var el = document.createElement("script"); el.src = "PUT_URL_HERE"; document.body.appendChild(el); })();
http://stackoverflow.com/questions/7717382/executing-a-javascript-file-directly-from-the-browser

转载注明原文:直接从浏览器执行JavaScript文件