1

我的 html 文档中有一个超链接

<a href="file://c:/directory/file.txt">click</a>

当我单击超链接时,指定的文件会在浏览器本身中打开。

是否可以在记事本或崇高文本或任何文本编辑器中打开该文件,这是文件类型的默认程序(在本例中为 txt)。我可以在 javascript 或 jquery 中以编程方式进行吗?有什么办法吗?

注意:这只是一个独立的应用程序。我开发了一个插件,它在给定源目录中的所有文件中搜索我作为输入给出的模式,并打印出该目录中包含该模式的所有文件名。它打印到输出报告 html 文件。我只是想将文件路径名链接到默认编辑器,以便他可以编辑并保存。没有安全问题。可以做到吗?

如果没有,还有其他方法可以完成这项任务吗?我可以生成任何格式的输出报告。请帮忙。

4

4 回答 4

3

正如其他人所提到的,您可能无法在不损害浏览器安全性的情况下执行此操作。但我遇到了一个可以帮助的链接。

<script type="text/javascript" language="javascript">
    function RunFile() {
        WshShell = new ActiveXObject("WScript.Shell");
        WshShell.Run("c:/windows/system32/notepad.exe", 1, false);
    }
</script>

编辑:这会打开一个空的记事本,它只适用于 Windows。您可以js用来区分不同的操作系统并相应地运行它们的默认文本编辑器,但我不会走这条路。为什么不使用在线编辑器呢?

于 2013-07-02T14:55:44.620 回答
2

由于安全原因HTML/JavaScript不允许访问本地文件系统。

http://en.wikipedia.org/wiki/JavaScript#Security

JavaScript 和 DOM 为恶意作者提供了通过 Web 传递脚本以在客户端计算机上运行的可能性。浏览器作者使用两个限制来控制这种风险。首先,脚本在沙箱中运行,它们只能执行与 Web 相关的操作,而不是创建文件等通用编程任务。其次,脚本受同源策略的约束:来自一个网站的脚本无法访问发送到另一个站点的用户名、密码或 cookie 等信息

您必须发出服务器请求才能获取资源。

于 2013-07-02T14:53:11.150 回答
1

在不损害浏览器安全性的情况下,您无法做到这一点。您必须修改 TXT 的浏览器 MIME 类型和关联的默认程序。如果它在您的本地网络上,并且您在域上,并且每个用户在他们的计算机上都具有管理员权限,那么理论上您可以进行注册表破解并更改在外部编辑器中打开文本文件的默认设置,但这会损害安全性,如果您在域网络中,那么您的管理员权限可能会从本地计算机上被剥夺。

于 2013-07-02T14:51:15.417 回答
0

我正在寻找类似的东西并找到了解决方案。也许有人会发现它很有用。如果您只想在自己的计算机上执行此操作,它可以工作。

于 2020-05-30T08:09:37.100 回答