javascript - 在所有窗口上方运行 hta

标签 javascript vbscript hta

我有一个 HTML 应用程序,我想保留在所有窗口的顶部(也就是说,如果打开/切换到另一个窗口,我希望这个窗口覆盖它)。 JavaScript 解决方案在 Windows 7/IE9 模式下不起作用(不确定是哪个阻碍了它,也无法更改),而且 VBScript 解决方案似乎要么彻底失败,要么依赖于外部组件。我也不能使用模式对话框,因为我需要它位于所有其他窗口之上,而不仅仅是它的父窗口。

并且不要将其标记为 https://stackoverflow.com/questions/24539339/how-to-open-a-hta-window-on-top-of-all-other-windows 的副本,因为该问题(不幸的是仍未得到解答)是指在其他窗口上方打开,而不是保持堆栈位置。

我试过的:

  • 概述了 here 的三个建议。
  • JavaScript 解决方案 here
  • 小 VBScript here
  • 上面的每一个都可能有十几个或更细微的变化。

  • 请记住,我无法下载额外的组件(没有 autoit 或 nircmd)。它应该全部集成到一个文件中,最好是 hta,而不是 zip。

    我的解决方案

    仅略微改编自 Teemu 的解决方案,主要是为了便携性(以防万一)。
    <script language="javascript">
        var locationstore = location.href
        [...]
        window.onload = function () {
            var shell = new ActiveXObject('WScript.Shell'),
                forceModal = function (e) {
                    shell.Run(locationstore, 1, 0);
                };
            top.addEventListener('blur', forceModal, false);
            window.onbeforeunload = function () {
                window.removeEventListener('blur', forceModal, false);
            };
        };
    </script>
    

    最佳答案

    这是一个邪恶的片段。它并不完美,但也许你可以进一步开发它。

    window.onload = function () {
        var shell = new ActiveXObject('WScript.Shell'),
            forceModal = function (e) {
                shell.Run('absolute_path_to_hta', 1, 0);
            };
        top.addEventListener('blur', forceModal, false);
        window.onbeforeunload = function () {
            window.removeEventListener('blur', forceModal, false);
        };
    };
    

    警告:测试此代码段时,HTA 必须在单实例模式下运行。

    关于javascript - 在所有窗口上方运行 hta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25793911/

    相关文章:

    c# - 如何在 Blueprism 中指定列名和数据项?

    javascript - 将 jQuery 添加到 HTA 后,调用 VBScript 过程停止工作

    javascript - 如何增加jqGrid中的行号列宽

    javascript - 访问和刷新 token

    vbscript - 使用现代数组填充 VBscript 数组

    javascript - 单元格范围内的 Google 电子表格脚本正则表达式

    javascript - 在 hta 应用程序中使用具有滚动效果的 HTML 和 Javascript 显示当前日期和时间

    html - HTA 中的问题

    javascript - 正则表达式与我期望的不匹配

    javascript - Fabricjs - setBackgroundImage 为空 URL 导致 _setWidthHeight 中出现空引用错误