例:
www.site.com/index.php#hello
Run Code Online (Sandbox Code Playgroud)
使用jQuery,我想将值hello放在变量中:
var type = …
Run Code Online (Sandbox Code Playgroud) 最近,我注意到,有时当我在谷歌搜索,谷歌可以通过将如哈希片段突出网页的相关部分此:
https://example.com/ #:~:text=You%20may%20use%20this%20domain%20in%20literature%20without%20prior%20coordination%20or%20asking%20for%20permission。
它会滚动到“您可以在没有事先协调或征得许可的情况下在文献中使用这个域。” 并突出显示它。
我想知道这是什么魔法,它是任何 RFC 或 Web 标准的一部分,还是我正在使用的谷歌浏览器?还是 Google 注入/提供的某种 JavaScript 补丁?
我们如何检测 Next.js 项目的 URL 哈希变化?
我不想每次 slug 更改时都重新加载页面。
我无法使用,<Link>因为我的所有数据都来自数据库
示例:
http://example/test#url1
当单击从
到 的
标签时
http://example.com/test#url2
尝试了下面的方法,但这似乎仅适用于路径更改。
import React, { useEffect,useState } from 'react';
import { useRouter } from 'next/router'
const test = () => {
const router = useRouter();
useEffect(() => {
console.log(router.asPath);
}, [router.asPath]);
return (<></>);
};
export default test;
Run Code Online (Sandbox Code Playgroud) 我的 Flask 程序收到以下请求,其中包含一些数据#:
https://som.thing.com/callback#data1=XXX&data2=YYY&data3=...
Run Code Online (Sandbox Code Playgroud)
我需要读取data1参数,但这似乎不起作用:
@app.route("/callback")
def get_data():
data = request.args.get("data1")
print(data)
Run Code Online (Sandbox Code Playgroud) 我正在开发一个 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)