相关疑难解决方法(0)

如何确定Windows默认浏览器(在开始菜单的顶部)

如何确定Windows默认浏览器(位于开始菜单的顶部)?

我正在使用VB6,但可能适应其他代码没有问题.

Stack Overflow上有类似的问题,但它们似乎提供了错误的答案.

例如,密钥HKEY_LOCAL_MACHINE\Software\Clients\StartMenuInternet \在我的PC上列出了Internet Explorer和Firefox.

并且.html关联也失败了,因为HTML文件与IE相关联,但Firefox是我的默认浏览器.

请注意,我不想实际打开浏览器,只需获取它的名称即可.

browser windows vb6

8
推荐指数
2
解决办法
3万
查看次数

当 url 包含本地文件的片段时,Javafx getHostServices().showDocument 不起作用

我正在开发一个 javafx 应用程序,要求是单击超链接时,它会在浏览器中打开给定的 url。我有这个与以下工作

url = "files/file.html";
getHostServices().showDocument(url);
Run Code Online (Sandbox Code Playgroud)

但是,当 url 包含自动聚焦页面特定部分的 id 时,浏览器永远不会启动。没有错误,似乎没有记录任何内容表明出现任何问题,浏览器永远不会打开。无法找到遇到此问题的其他人或任何潜在的解决方案。

太棒了;如何让以下内容实际工作并在浏览器中打开?

String url = "files/file.html#section";
getHostServices().showDocument(url);
Run Code Online (Sandbox Code Playgroud)

另外,这似乎只是本地文件的问题。以这种方式打开 https 网站效果很好

更新: 感谢 Sai 的精彩帖子,听起来官方的结论是,这是一个比 Java 更深层次的问题,并且只是出于与数据注入相关的安全原因而被阻止。不会假装理解,但我找到了一个基于此链接的解决方案(再次由 Sai 在下面共享),更具体地说,是在该答案中共享的此链接,并希望将其包含在未来任何困惑的人中。我还更新了标题以更具体地解决问题。

所以基本上,获得所有功能的唯一真正的方法是创建一个临时文件,然后打开该文件,自动重定向到带有片段的正确文件,然后删除它。基本代码如下:

public static void openWebPage(String url) {
    String tmpPath = "path/to/.tmp/temp.html";
    File tempFile = File(tmpPath);
    if (!tempFile.exists()) {
        tempFile.mkdirs();
    } else {
        tempFile.delete();
    }
    tempFile.createNewFile();
    FileWriter tempFileWriter = FileWriter(tmpPath);
    tempFileWriter.write("<html><meta http-equiv=Refresh content=\"0; url=$url\"><body></body></html>");
    tempFileWriter.close();
    Main.getStaticHostServices().showDocument(tmpPath);
}
Run Code Online (Sandbox Code Playgroud)

java javafx kotlin url-fragment

3
推荐指数
1
解决办法
72
查看次数

标签 统计

browser ×1

java ×1

javafx ×1

kotlin ×1

url-fragment ×1

vb6 ×1

windows ×1