正在使用下面的JS,但li onclick不工作在IE8浏览器。 jsfiddle链接: http://jsfiddle.net/sudheera/DUZ3B/14/ HTML <div class="primaryNav fl"> <ul id="hd_vertical" class="productNav"> <li id="hd_test" class="flight"> <span class="navIcon flightIcon hd_test">Test</span> <a class="hd_test" href="http://validator.w3.org/">Flights</a> </li> <li id="hd_test1" class="bus"> <span class="navIcon busIcon hd_test1">Test</span> <a class="hd_test1" href="http://www.w3schools.com/">Buses</a> </li> </ul> </div> JS var changeLocation = function(id) { var _url = document.getElementsByClassName(id)[1].getAttribute('href'); location.href = _url; } document.getElementById("hd_vertical").addEventListener("click",function(e) { if(e.target.nodeName == "LI") { […]
我正在使用Firebug,并有一些像这样的陈述: console.log("…"); 在我的页面。 在IE8(也许更早的版本)我得到脚本错误说'控制台'是未定义的。 我试着把这个放在我的页面顶部: <script type="text/javascript"> if (!console) console = {log: function() {}}; </script> 我仍然得到错误。 任何方式来摆脱错误?
如果您已经使用过任意长度的JavaScript,那么您知道Internet Explorer不会为Array.prototype.indexOf()[包括Internet Explorer 8]实现ECMAScript函数。 这不是一个大问题,因为您可以使用下面的代码扩展您的页面上的function。 Array.prototype.indexOf = function(obj, start) { for (var i = (start || 0), j = this.length; i < j; i++) { if (this[i] === obj) { return i; } } return -1; } 我应该什么时候执行这个? 我是否应该将其包装在我的所有页面中,并检查是否存在原型函数,如果不存在,请继续并扩展Array原型? if (!Array.prototype.indexOf) { // Implement function here } 或者做浏览器检查,如果它是Internet Explorer然后只是实现它? //Pseudo-code if (browser == IE Style […]