gpt4 book ai didi

jquery 不返回 url 哈希

转载 作者:搜寻专家 更新时间:2023-10-31 08:47:05 25 4
gpt4 key购买 nike

我试图检索当前页面的散列值但没有成功。我定位到一个带有这样链接的页面;

http://www.mydomain.com/test.html#hash

我的 test.html jquery 看起来像这样;

$(document).ready(function() {
if (window.location.hash){
console.log ("FOUND HASH");
}else{
console.log ("HASH NOT FOUND");
}
});

无论我做什么,我都得不到哈希值;它总是空的“”。但是,当我使用 Firebug 中断代码并查看 DOM 时,我可以清楚地看到散列值已在 window.location.hash 下正确设置。

我做错了什么?

在此先感谢您的帮助。

答案摘要:事实证明,隐藏我的网址会在整个页面周围创建一个框架包装器,在这种情况下具有不同的端口。散列由父框架保存,但丢失给子框架,jquery 代码无法访问。使用直接非加载地址产生了正确的行为。

最佳答案

散列位于您的顶级框架/窗口上。您的 javascript 不在该顶级窗口中。因此,当您引用 window.location.hash 时,您正在查看框架的 URL,而不是浏览器栏中显示的顶级窗口。

而且,由于您的顶级窗口和内部框架不是相同的域/端口,因此您可能无法在两者之间进行通信。使它们成为相同的域,您可以从顶级窗口(浏览器 URL 栏中显示的内容)获取 window.location.hash。

如果您的域名相同,那么您就不会遇到 same-origin security restrictions ,然后您可以通过以下方式从顶级 URL 获取哈希:

window.top.location.hash

仅供引用,顶级窗口中只有这个(那不是您的 javascript 所在的位置):

<HTML><HEAD>
<META NAME="description" CONTENT="robtune.com">
<META NAME="keywords" CONTENT="">
</HEAD>
<FRAMESET border=0 rows="100%,*" frameborder="no" marginleft=0 margintop=0 marginright=0 marginbottom=0>
<frame src="http://www17.robtune.com:8017/test.html" scrolling=auto frameborder="no" border=0 noresize>
<frame topmargin="0" marginwidth=0 scrolling=no marginheight=0 frameborder="no" border=0 noresize>
</FRAMESET>
</HTML>

关于jquery 不返回 url 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16494058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com