Javascript没有在地址栏中添加id
Javascript not adding id in address bar
由于某些原因,这个javascript不会将被点击元素的id添加到地址栏中。它将正确地执行其他操作。
的格式如下:http://jsfiddle.net/4x7La64s/
例如,如果我点击#introduction
我想让它在地址栏中显示它的id像这样:example.com/page.php/#introduction
根据您的代码,在执行以下操作后:
e.preventDefault();
你可以这样做:
var hash = jQuery(this).attr("href"); //Your clicked link
if (window.history && window.history.pushState) {
history.pushState(null, null, 'hash'); // This won't make the page jump to the id
} else {
location.hash = hash; //This will be the fallback for old browsers and this will make the page jump to that id
}
preventDefault
,顾名思义,防止默认动作发生;在锚的情况下,导航到新的URL。
技术定义可以在Mozilla的开发者网络(https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault):
)上找到。取消可取消的事件,但不停止事件的进一步传播。
由于您正在取消事件,浏览器不做任何事情(例如滚动到元素)。
您可以添加以下代码而无需更改其他任何内容:
var hash = this.hash;
if ('history' in window && history.pushState) {
// Add a new state in the browser's history. Does not scroll to the element
// See https://developer.mozilla.org/en-US/docs/Web/API/History/pushState
history.pushState('', '', hash);
} else {
// Fallback for old browsers (mainly IE<9). Scrolls to the element
location.hash = hash;
}
代码在浏览器的历史记录中添加了一个新条目。
请看https://jsfiddle.net/toothbrush7777777/108d4356/的例子
删除默认防止功能:
e.preventDefault();
相关文章:
- 动态添加id's到输入字段
- 通过Couchdb中的更新处理程序添加id和author字段
- 如何在CKEditor中为图像添加ID
- 添加ID's在一个P HTML标签中的一个翡翠模板中
- 向Fabric.js元素添加ID
- 如何添加id和额外的参数到一个放大弹出iframe与youtube视频,所以我可以控制与API youtube播放器
- 创建折叠选项卡并动态添加 ID 和指向 jQuery 中 ID 锚点的链接
- 使用 for 循环,如何迭代对象以向其添加 id 属性
- 在“挖空”中添加 ID
- 避免在向标记添加 ID 时触发 DOMSubtreeModified 事件
- 我无法在 foreach 中向对象添加 ID
- 使用主干视图在模板上动态添加 ID 和类
- 在Angular对象中循环时向HTML添加id
- 为Datatable中的行添加id
- 使用jQuery向子级添加id
- 如何仅在li元素存在的情况下向pre元素添加id
- 如何使用javascript从最近的li元素向pre-tag添加id
- 如何在javascript中向输入字段添加ID
- jQuery或Javascript单击函数更改或添加id
- 将jquery变量连接到字符串,以便添加id's转换为动态生成的输入字段