;(function($) {
$.extend({
hash : function(name , value) {
function isString(str) {
return typeof str == 'string' && Object.prototype.toString.call(str) === '[object String]';
}
if(!isString(name) || $.trim(name) == '') return;
var reg = new RegExp("[&|#]" + name + "=([^&]*)" , "i");
var hash = location.hash;
if(value || value === null) {
hash = hash.replace(reg , '').replace(/^[#|&]/ , '');
if(value !== null) {
//set a hash
location.hash = hash == '' ? name + "=" + encodeURIComponent(value) : hash + "&" + name + "=" + encodeURIComponent(value) ;
} else {
//delete a hash
location.hash = hash;
}
} else {
//get a hash value
if(reg.test(hash)) {
return decodeURIComponent(RegExp.$1);
} else {
return '';
}
}
}
});
})(jQuery);
分享到:
相关推荐
在某些浏览器中,如 IE6、7、8,原生并不支持 hashchange 事件,因此这个插件通过定时检查 URL hash 来模拟这一事件,确保在这些浏览器中也能正常监听 hash 的变化。这使得开发者无需担心兼容性问题,可以在各种...
超实用的jQuery代码段精选近350个jQuery代码段,涵盖页面开发中绝大多数要点、技巧与方法,堪称史上最实用的jQuery代码参考书,可以视为网页设计与网站建设人员的好帮手。《超实用的jQuery代码段》的代码跨平台、跨...
jQuery的单页内跳转功能就是基于这个理念,它利用URL哈希(#)或者History API来模拟页面间的导航,实现在同一个HTML文档内的不同“视图”间切换。 在jQuery中,我们可以使用`$.fn.scrollTo`插件或自定义函数来实现...
修改插件时,可以添加一个polyfill,使用定时器模拟HashChange事件,确保在这些浏览器中也能正常工作。 6. **状态管理**:在大型应用中,可能需要保存和恢复哈希关联的状态。修改插件以存储和恢复状态数据,如`...
《jQuery Mobile A4 中文手册》是一个专门为开发者和前端设计师准备的详尽参考资料,它涵盖了jQuery Mobile框架的各个方面,帮助用户深入理解和应用这个强大的移动Web开发工具。jQuery Mobile是一款轻量级、高度交互...
jQuery Mobile 是一个专为触摸设备优化的 JavaScript 框架,它扩展了 jQuery 的功能,使其更适合在移动设备上构建响应式和交互式的 web 应用。jQuery Mobile 的核心特性之一是它提供了一系列专为移动环境设计的事件...
4. 支持的浏览器:jQuery history插件支持包括Internet Explorer 6、7和8+,Safari 4和5+,以及Google Chrome 4+在内的多个浏览器版本。对于不支持hashchange事件的浏览器,该插件还提供了一些后备机制来模拟此功能...
jQuery Mobile 是一个基于 jQuery 的 UI 框架,旨在创建一个统一的用户体验,不论用户使用何种移动设备或平台。它主要用于简化移动web应用的开发,允许开发者使用 HTML、CSS 和 JavaScript 编写一次代码,即可在所有...
这个插件通过定时检查Hash值来模拟`hashchange`事件,确保在旧版浏览器中也能实现对Hash变化的监听。 **Hashchangebroker** Hashchangebroker是基于jQuery的一个扩展,它提供了一套方法来处理和管理URL Hash的变化...
`jQuery Scroll To` 是一个流行的 JavaScript 插件,它允许开发者实现平滑、流畅的页面滚动效果。当用户点击带有哈希值(如 `#section1`)的链接时,页面会优雅地滚动到对应的位置,而不是立即跳转。这种效果在现代...
3. **兼容不支持HTML5 History API的浏览器**:对于不支持`pushState`的旧版浏览器(如IE9及更早版本),使用第三方库(如History.js)来模拟类似的功能。这里使用`History.pushState`方法来达到相同的效果。 4. **...
`jQuery之家.url`是一个书签文件,可能包含了关于jQuery学习资源的链接。`readme.html`通常包含项目说明或使用指南。最后,`css`目录下存放着样式表文件,用于定义页面和幻灯片的样式。 实现这个效果的具体步骤包括...
2. **DOM操作**:Prototype 提供了 `$` 和 `$$` 函数,前者用于选取单个元素,后者用于选取多个元素,类似于jQuery的选择器。`Element`对象包含一系列方法,如`observe()`, `stopObserving()`, `hide()`, `show()`, ...
4. 通过hash变化事件监听器监听到URL的hash值发生变化时,获取新的hash值,并使用这个标识再次发送AJAX请求,从而更新页面内容。 5. 如此一来,用户点击浏览器的前进或后退按钮时,浏览器能够从历史记录中获取到带...
在测试Nginx的负载均衡时,通常会搭建多个模拟服务器(如`testserver`),通过修改Nginx配置文件,设置不同的负载均衡策略,然后使用`curl`或浏览器进行请求,观察和分析响应结果,以验证配置的有效性。 在附件中,...
Prototype.js 是一个强大的JavaScript库,它为Web开发提供了一系列实用的功能,主要目的是简化JavaScript的使用,提高开发效率。这个“Prototype中文帮助文档”是专为理解并熟练运用Prototype.js设计的资源,对于...
- **如何写一个 plugin**:plugin 通常需要实现特定的方法来扩展 webpack 的功能。 - **webpack 打包后文件体积过大怎么办**:可以通过优化配置、代码拆分等方式减小打包后的文件体积。 #### 五、前端框架 **1. ...
- **hash 模式:** 使用 URL 的 hash 来模拟一个完整的 URL,在浏览器地址栏中看到的 URL 中带有 # 符号。 - **history 模式:** 利用 HTML5 History 接口来完成 URL 跳转而无需重新加载整个页面。 **实现原理:** ...
Backbone依赖于两个外部库:`Underscore.js`和一个DOM库(如jQuery、Zepto或ender)。`_`是Underscore的别名,如果在环境中没有找到,它会尝试通过`require`导入。`$`变量用于引用DOM库,通常为jQuery,但在移动端...