javascript - 如何从 .html 文件中运行 .hta 文件而不要求下载它

标签 javascript html hta

我想从 .html 文件中运行 .hta 文件,而无需浏览器要求下载它。它应该在浏览器中 html 页面的 iframe 中运行。我正在使用的代码是这样的-

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<iframe src="app.hta">
</body>
</html>

问题是浏览器要求下载 hta 文件,但它希望它自动运行。

hta文件代码是这样的-

<html>
<head>
    <title>Application Executer</title>
    <HTA:APPLICATION ID="oMyApp" 
        APPLICATIONNAME="Application Executer" 
        BORDER="no"
        CAPTION="no"
        SHOWINTASKBAR="yes"
        SINGLEINSTANCE="yes"
        SYSMENU="yes"
        SCROLL="no"
        WINDOWSTATE="normal">
    <script type="text/javascript" language="javascript">
        function RunFile() {
        WshShell = new ActiveXObject("WScript.Shell");
        WshShell.Run("c:/app.exe", 1, false);
        }
    </script>
</head>
<body>
    <input type="button" value="Run Notepad" onclick="RunFile();"/>
</body>
</html>

最佳答案

实际上你打不开HTAiframe 内,即使主应用程序是 HTA。 HTA 有自己的操作系统窗口,就像浏览器或任何 .exe 一样。

您可以做的就是将脚本放入常规 html 文件中。根据 IE 的安全设置,它会执行代码,或者要求用户允许执行,或者抛出错误。

另请注意,ActiveX 仅适用于 Internet Explorer。正如 Dark Falcon 所说,允许从 Web 执行 ActiveX 将带来巨大的安全风险。因此,不建议尝试在公共(public)网站上执行此类操作。

如果这是 Intranet 应用程序,您可以将主应用程序更改为 HTA。然后,您可以将运行记事本按钮(和脚本)添加到主应用程序或设置了application=yesiframe。此外,受信任的站点 (html) 可以运行 ActiveX,而不会出现提示或错误。

关于javascript - 如何从 .html 文件中运行 .hta 文件而不要求下载它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16739539/

相关文章:

javascript - jsonpatch 数组中的所有元素

javascript - 如何使用 Protractor 测试 contenteditable 字段?

javascript - 如果输入具有特定类别,则需要更改单选值

javascript - 如何使用 div url 的 jQuery 加载不同的内容

javascript - 如何通过html()发送图像标签

vbscript - 使用 .HTA 和 VBScript 打开 CD 上的文件

javascript - JavaScript 对象的动态深度设置

javascript - 如何使用 javascript 或 selenium 获取图像的背景 url

excel - 使用 Excel,尝试从外部 HTA 中查找真正使用过的范围

batch-file - 如何将退出状态从 HTA (vbscript) 返回到调用批处理文件