M K*_*M K 8 javascript jquery html5 history
var data = { url: $(this).attr('href'), selector: $(this) };
history.pushState(data, 'foo', $(this).attr('href'));
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我收到一个错误:
组件返回失败代码:0x8000ffff(NS_ERROR_UNEXPECTED)[nsIDOMHistory.pushState]
如果我将选择器更改为字符串,那么错误消失...但我需要jQuery对象,所以我可以在"popstate"事件上触发它点击:s
历史状态中的数据必须是可序列化的.也就是说,它必须可以转换为JSON. $(this)返回一个带有DOM节点的类数组对象,该节点无法转换为JSON.你应该寻找一种不同的方式去做你想要的.
请记住,推送状态只是有用的信息,并不是规范的.如果用户无法通过复制和粘贴地址栏中的URL来获得完全相同的内容,则表示您遇到了问题.
小智 0
扩展 Brian Nickel 和 GregL 的答案,你可以通过执行 $('#'+this.id).attr('href') 来解决这个问题......只要你按照我之前的两个人的建议来 ID DOM。
有时我只能通过以下方式得到我想要的结果:
var $this = $('#'+this.id); //.... before hand ...
Run Code Online (Sandbox Code Playgroud)
它让我的自我认知变得更有创意,例如,我可以$('#'+this.id+'*locator*');
... id='abGGFather'
... id='abGFather'
... id='abFather'
... id='ab'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3584 次 |
| 最近记录: |