如下
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>IE6/7不支持hashchange事件</title>
<script type="text/javascript">
function handler(){
alert('triggered')
}
document.onclick = function(){
var t = Math.random();
location.hash = '#' + t;
}
</script>
</head>
<body onhashchange="handler();">
</body>
</html>
点击页面任何地方,响应函数会改变hash值(一个随机数)。给body添加了onhashchange事件,当hash改变时执行handler。
点击页面后,IE6/7中没有反应,IE8/9/10/Safari/Chrome/Firefox/Opera均弹出了“triggered”。即IE6/7不支持hashchange事件。
相关:
http://msdn.microsoft.com/en-us/library/cc288209(v=vs.85).aspx
https://developer.mozilla.org/en/DOM/window.onhashchange
分享到:
相关推荐
然而,在HTML5之前,旧版本的IE(尤其是IE6和IE7)并不支持这个事件,这给开发者带来了困扰。jQuery HashChange插件正是为了填补这一空白,它通过模拟`onhashchange`事件,使得在所有主流浏览器中都能实现哈希监听。...
在某些浏览器中,如 IE6、7、8,原生并不支持 hashchange 事件,因此这个插件通过定时检查 URL hash 来模拟这一事件,确保在这些浏览器中也能正常监听 hash 的变化。这使得开发者无需担心兼容性问题,可以在各种...
5. **兼容性处理**:虽然大部分现代浏览器都支持HashChange事件,但老版本的IE浏览器(如IE8及以下)不支持。修改插件时,可以添加一个polyfill,使用定时器模拟HashChange事件,确保在这些浏览器中也能正常工作。 ...
3. **兼容不支持HTML5 History API的浏览器**:对于不支持`pushState`的旧版浏览器(如IE9及更早版本),使用第三方库(如History.js)来模拟类似的功能。这里使用`History.pushState`方法来达到相同的效果。 4. **...
3. **IE事件模型**:使用`attachEvent`和`detachEvent`,只支持事件冒泡,并且事件处理函数中`this`指向全局对象。 二、事件类型 常见的JavaScript事件包括: - 用户交互:`click`(点击)、`mouseover`(鼠标悬停...
6. **局部刷新与页面状态管理**:Ajax局部刷新带来的问题是,页面的URL不会随着内容的变化而变化,这不利于书签和后退功能。可以通过HTML5的History API(pushState/replaceState)和hashchange事件来解决这个问题。...
对于不支持`hashchange`事件的老版本浏览器,如IE7及以下,可以使用定时器定期检查`hash`值的变化。 ```javascript if (!window.onhashchange) { var lastHash = ''; setInterval(function() { if (lastHash !=...
5. 后备机制:由于某些旧版浏览器(如Safari 4)不支持hashchange事件,插件使用了setInterval来周期性地检查location.hash的变化。对于IE6、7和IE8的兼容模式,插件使用了一个iframe和setInterval的组合来处理。 6...
通过这种方式,即使在不完全支持`hashchange`事件的浏览器中,也能确保路由的正确更新。 总结来说,解决Vue地址栏直接输入路由无效的问题,可以通过调整Vue Router的模式,或者监听`hashchange`事件并在组件内动态...
对于不支持`hashchange`事件的旧版IE(如IE7),可以检测`document.documentMode`属性来判断是否需要采用替代方案。如果`document.documentMode`不存在或者小于8,那么IE8将以IE7模式运行,这时虽然`onhashchange`...
10,则支持hashchange 支持IE9 + npm install npm run watch 提示:用户名/密码为admin / admin 笔记 图书馆 舍夫特元素 客户 client.js var client = require('./lib/client'); var config = require('./config...
通过指定更改规则并为其分配回调,可以轻松地在各种浏览器中处理hashchange事件的库。 内置了对基于Ajax的规则的自动AJAX调用的支持。 支持IE7 +,Chrome 6 +,Safari,Opera 10.6+和FF3.6 +。 没有依赖关系。
2. **监听hashchange事件**:针对IE浏览器,我们可以监听`hashchange`事件,因为IE浏览器对`hash`的改变比较敏感。当`hash`发生变化时,我们手动调用vue-router的`$router.push()`方法来实现页面的跳转。 ```...
WebSocket是实现实时通信的重要技术,面试中可能会问到如何在不支持WebSocket的低版本浏览器中进行兼容。常见的解决方案包括使用Adobe Flash Socket、ActiveX对象(如IE中的HTMLFile)或者通过xhr的长轮询和...
此外,HTML5引入了大量新的API,如LocalStorage、SessionStorage、PostMessage、OfflineApplications、Workers、DragandDrop、HashChange(Event)、HistoryManagement、WebSockets、GeoLocation以及Touch事件等,这些...
8. **html5shiv.js**:这是一个针对不支持HTML5新元素的老版IE浏览器的解决方案,使这些浏览器能够识别并应用HTML5的新标签,如、等。 9. **jquery.hashchange.min.js**:这是另一个jQuery插件,处理浏览器的URL...
现代浏览器(如IE8+、Firefox 3.6+、Chrome 5+、Safari 4.0+)都支持此事件。你可以通过以下方式绑定监听函数: 1. `window.onhashchange = func;` 2. `();">` 3. `window.addEventListener("hashchange", func, ...
- **Hash 路由**:利用 URL 中的 `#` 符号来标识不同的页面状态,监听 `hashchange` 事件来更新页面内容。这种方法不需要支持 HTML5 History API,因此具有更好的兼容性。 **3. WebSocket 兼容性** 为了兼容低版本...
`postMessage`方法在现代浏览器中的支持度非常高,如IE8+,Firefox4+,Chrome8+以及Opera10+。尽管如此,开发时仍需考虑旧版浏览器的兼容性,可能需要借助polyfill库或者采用其他跨域解决方案作为备选。 总结,`...