Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在打开html文件时滚动到html页面的特定部分?_Java_Html - Fatal编程技术网

Java 如何在打开html文件时滚动到html页面的特定部分?

Java 如何在打开html文件时滚动到html页面的特定部分?,java,html,Java,Html,我有一个带有使用说明的html文件。我称之为使用 File htmlFile = new File("Usage.html"); Desktop.getDesktop().browse(htmlFile.toURI()); 这将使用默认浏览器打开html文件,但我希望它滚动到特定部分。 我在html中通过引用id来实现这一点,但是当文件从我的程序中打开时,是否可以滚动到该部分 注意: 这个答案在使用Windows时不起作用,Windows在使用默认程序打开程序时会删除#和剩余字符,这应该由Wi

我有一个带有使用说明的html文件。我称之为使用

File htmlFile = new File("Usage.html");
Desktop.getDesktop().browse(htmlFile.toURI());
这将使用默认浏览器打开html文件,但我希望它滚动到特定部分。 我在html中通过引用id
来实现这一点,但是当文件从我的程序中打开时,是否可以滚动到该部分

注意: 这个答案在使用Windows时不起作用,Windows在使用默认程序打开程序时会删除#和剩余字符,这应该由Windows修复,在Linux上不会出现

您可以手动将哈希附加到url:

URI=htmlFile.toURI(); Desktop.getDesktop().browse(新URI( uri.getScheme(), uri.getUserInfo(), uri.getHost(), uri.getPort(), uri.getPath(), uri.getQuery(), “如何使用”);
我们不能使用简单的+操作,因为我们有一个URI对象,URI没有一个集合组件方法。

您可以使用
Selenium
来完成此操作

WebDriver driver = new ChromeDriver();
driver.get("file:///D:/Usage.html"); // path can be different in your computer

WebElement href = driver.findElement(By.cssSelector("[href*='how-to-use']"));

Actions actions = new Actions(driver);
actions.moveToElement(href).build().performe();

这将在chrome浏览器中打开html文件(如果您愿意可以更改),如果上述答案无效,则滚动到
moveToElement

中的元素

您可以使用散列/参数打开url,但url不应是本地的。 比如说

www.google.com#tar1
将起作用,但

example.html#tar1
不工作[本地主机]

所以,如果你想用hashtag打开本地url,另一种方法是什么呢

首先将html页面写入另一个本地文件,但添加此代码行

<meta http-equiv="refresh" content="0; ,URL=editedfileurl">


因此,现在您可以启动编辑文件而不是原始文件。然后,编辑后的文件将用哈希标记刷新,因此将滚动到所需的锚标记。

该html文件是您的吗?您可以编辑吗?@FastSnail是的,它是我的。您可以从服务器(如www.google.com#tar1)打开url,但不能从本地文件(如example.html#tar1)打开url,您可以使用localhost吗??如果您想在没有服务器的情况下在本地打开它,请阅读我的回答。嗯,这对我不起作用,它不会滚动到指定的部分。@我想我的测试是错误的,这是一个仅适用于Windows的错误,所有程序都有它。它可以在Linux上正常工作,但Windows在打开文件URL的默认程序时会去掉#和剩余部分。啊,我明白了,我想知道为什么它仍然不工作。谢谢。这只适用于Firefox和Internet Explorer。顺便说一句,它能够实现我想要的功能,但它会不断将用户带到特定的部分,这不是很理想。@Csh您不想带什么到特定的部分?我想我不清楚。我只需要在用户单击某个按钮时将其转到该部分。在其他情况下,当用户想要读取html文件时,它应该只是正常加载,而不是自动滚动到定位标记。@Csh因此,您应该只在特定时间编辑html文件。在其他情况下,只需打开原始文件即可