如何从HTA中使用默认的网络浏览器打开链接?

13

我正在开发一个作为HTA实现的应用程序。我有一系列链接,我希望它们在系统默认的Web浏览器中打开。使用<a href="url" target="_blank">会在IE中打开链接,而不管默认浏览器是什么。

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

2个回答

30

创建一个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>

6
只有在IE中实施才有效,Chrome和Firefox不行。 - Siyah
2
@Siyah HTA是使用IE引擎运行的:http://en.wikipedia.org/wiki/HTML_Application#Execution - Jonny Buchanan
我想下载使用Blob创建的文件。如何在HTA中实现?在Chrome中可以正常工作,但在HTA中会出现“访问被拒绝”的错误。 - user2095748

-2

很遗憾,我认为这是一个特定于浏览器的实现,它将在同一浏览器中使用target="_blank"打开新链接。

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


3
HTA内部的JScript可以在"本地"安全区域中运行,因此它可以访问操作系统中更多的内容,包括ActiveX。 - ephemient

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接