Mal*_*lio 21 javascript browser
这听起来像是一个琐事问题,但我真的需要知道.
如果您将HTML文件的URL放在浏览器的位置栏中,它将呈现该HTML.这是浏览器的全部目的.
如果你给它一个JPG,或一个SWF,甚至PDF,它将为这些数据类型做正确的事情.
但是,如果您给它一个JavaScript文件的URL,它将显示该文件的文本.我想要的是直接执行该文件.
现在,我知道如果你使用javascript:协议,它将执行URL 的文本,但这不是我需要的.
我可以将URL指向由单个<script>标记组成的HTML文件,而该标记又指向JavaScript文件,但出于我自己的隐藏原因,我不能这样做.
如果文件http://example.com/file.js完全由
alert("it ran");
Run Code Online (Sandbox Code Playgroud)
我把那个URL放在位置栏中,我希望"它跑"以弹出警报.
我怀疑这是可能的,但我希望 - 反对 - 希望有一个标题或MIME类型或类似的东西我可以设置并奇迹般地实现这一点.
Dom*_*nic 14
这是不可能的.浏览器不知道JavaScript应该运行的上下文; 例如,什么属性window?如果你认为它可以提出一些随机默认值,那么行为document呢?如果有人做document.body.innerHTML = "foo"了应该发生的事情?
与图像或HTML页面不同,JavaScript依赖于它运行的上下文.该上下文可以是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); })();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57043 次 |
| 最近记录: |