【问题标题】:Process.Start(url) with anchor in the urlProcess.Start(url) 在 url 中带有锚点
【发布时间】:2010-03-08 20:21:06
【问题描述】:

我正在尝试使用 Process.Start 在默认浏览器中启动本地 html 文件。

一个示例网址如下:

"file:///C:/Documentation/HelpContent/default_CSH.htm#SectionA/Topic1.htm"

问题是,“#SectionA/Topic1.htm”位由于某种原因被剥离,因此该信息不会传递给浏览器。但是,对于非本地 url,它确实可以正常工作。

有谁知道我怎样才能让它工作,还是某种预防性安全问题?

谢谢

【问题讨论】:

  • 在浏览器地址栏中粘贴地址是否有效?尝试从锚标签中删除 / 字符...
  • 是的,我同意。该 URL 中有两个文件名,这有点奇怪。
  • 不幸的是 / 是必需的 - url 是这样的,因为它在另一个框架中启动 Topic1.htm(这是 MadCap Flare 的 WebHelp 输出)

标签: .net url flare madcap


【解决方案1】:

iexplore.exe 上使用Process.Start,这样您就可以专门指定URL 作为其参数:

System.Diagnostics.Process.Start("iexplore.exe", @"file:///c:/dir/file.html#anchor");

【讨论】:

  • 谢谢 - 暂时使用这种方法。真的我需要能够在默认浏览器中打开它,而不是限制在 IE 中。
【解决方案2】:

如果您让操作系统确定默认浏览器,则无法在浏览器中启动带有锚点的 URL。完成这项工作的唯一方法是将浏览器的可执行文件指定为 binarycoder 为 IE 编写的。它对 Firefox 的工作方式相同。

最好的解决方案显然是从注册表中确定默认浏览器的路径,然后专门调用该可执行文件。

【讨论】:

  • Here 是一篇不错的文章,向您展示了如何从注册表中获取默认浏览器路径
猜你喜欢
  • 2016-08-26
  • 2023-03-25
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 2013-02-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多