【问题标题】:How can I open a link in the default web browser from an HTA?如何在默认 Web 浏览器中从 HTA 打开链接?
【发布时间】:2010-09-16 04:07:45
【问题描述】:

我正在开发一个作为 HTA 实现的应用程序。我有一系列链接,我想在系统的默认 Web 浏览器中打开它们。无论默认浏览器如何,使用 <a href="url" target="_blank"> 在 IE 中打开链接。

有没有办法使用默认浏览器?使用 JavaScript 是一种选择。

【问题讨论】:

    标签: javascript browser hta


    【解决方案1】:

    不,很遗憾,我相信这是一个特定于浏览器的实现,它将在同一浏览器中打开带有 target="_blank" 的新链接。

    如果您想在默认浏览器中打开它,那么您需要与操作系统交互,而 JavaScript 无法做到这一点。

    【讨论】:

    • HTA 中的 JScript 可以在“本地”安全区域中运行,因此它可以访问更多的操作系统,包括 ActiveX。
    【解决方案2】:

    创建一个 shell 并尝试运行一个 URL。

    这适用于我的系统(保存为whatever.hta 并执行它)。单击该按钮可在 Firefox 中打开 Google:

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="en">
    <head>
      <title>HTA Test</title>
      <hta:application applicationname="HTA Test" scroll="yes" singleinstance="yes">
      <script type="text/javascript">
      function openURL()
      {
          var shell = new ActiveXObject("WScript.Shell");
          shell.run("http://www.google.com");
      }
      </script>
    </head>
    <body>
    
    <input type="button" onclick="openURL()" value="Open Google">
    
    </body>
    </html>
    

    【讨论】:

    • 这仅在 IE 中实现时有效。不在 Chrome 或 Firefox 中。
    • @Siyah HTA 使用 IE 引擎运行:en.wikipedia.org/wiki/HTML_Application#Execution
    • 我想下载一个使用 blob 创建的文件。如何在 HTA 中做到这一点。它在 chrome 中运行良好。但在 HTA 中给出错误“拒绝访问”
    猜你喜欢
    • 2013-05-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-02
    • 2012-07-18
    • 1970-01-01
    • 2015-08-21
    • 2011-07-26
    相关资源
    最近更新 更多