http://madisonlane.businesscatalyst.com 我试图让div#的签署职位上面的div#底部。 除IE6和IE7以外的所有浏览器都能正常工作。 任何人都可以看到这里的问题是什么? 此外IE6显示额外的198px到div#底部的顶部。
在IE浏览器中,我可以用(非常非标准的,但工作)的jQuery做到这一点 if ($.browser.msie) $(document).keydown(function(e) { if (e.keyCode == 8) window.event.keyCode = 0;}); 但是有可能以一种在Firefox上运行的方式,或者以一种跨浏览器的方式来获得奖金? 作为logging: $(document).keydown(function(e) { if (e.keyCode == 8) e.stopPropagation(); }); 什么也没做。 $(document).keydown(function(e) { if (e.keyCode == 8) e.preventDefault(); }); 解决了这个问题,但是在页面上显示退格键不可用,这比原来的行为还要糟糕。 编辑:我这样做的原因是,我不是创build一个简单的网页,而是一个大型的应用程序。 仅仅因为你在错误的地方退下了空位而失去了10分钟的工作是令人难以置信的烦恼。 防止错误与烦人用户的比例应该在1000/1以上,防止退格键导航返回。 编辑2:我不是试图阻止历史导航,只是意外。 EDIT3:@brentonstrines评论(因为这个问题非常受欢迎,所以转移到这里):这是一个长期的“修复”,但是你可以在Chromium bug后面支持你改变webkit的行为
如其他地方详细说明的那样,另外显然众所周知的是,Internet Explorer(绝对版本7,以及某些情况下,版本8)不实现关键函数,特别是在Array (比如forEach , indexOf等)。 在这里和那里有很多解决方法,但是我想将合适的,规范的实现集合放到我们的站点中,而不是复制,粘贴或者破解我们自己的实现。 我find了js-methods ,看起来很有希望,但是我以为我会在这里看看另一个库是否更受推荐。 一些其他的标准: 对于浏览器已经实现的那些函数( js-methods在这里performance得相当好),这个库应该是一个没有操作的东西。 非GPL ,请尽pipeLGPL是可以接受的。
像其他人一样,我需要在Internet Explorer 6和Internet Explorer 7上testing我的代码。现在,Internet Explorer 8为开发人员提供了一些非常棒的工具,我希望使用这些工具。 我也想用Internet Explorer 8开始testing我的代码,因为它很快就会发布。 问题是:如何在同一台机器上运行Internet Explorer 6,Internet Explorer 7和Internet Explorer 8。 到目前为止,Internet Explorer 6和Internet Explorer 7已经使用了多个IE 。 但是,在安装Internet Explorer 8之后,人们已经报告了Internet Explorer 6的问题(请参阅上一句中链接的页面上的注释)。这些错误与表单字段中的焦点有关。 运行Internet Explorer 7并不重要,因为Internet Explorer 8可以使用Internet Explorer 7渲染引擎,但是我们仍然需要Internet Explorer 6。 如何在同一台计算机上运行Internet Explorer 6,Internet Explorer 7和Internet Explorer 8?
如果他们正在使用v9之前的Internet Explorer版本,我想将我们的网站用户跳转到错误页面。 只是不值得花时间和金钱来支持IE pre-v9 。 所有其他非IE浏览器的用户都很好,不应该被反弹。 这是build议的代码: if(navigator.appName.indexOf("Internet Explorer")!=-1){ //yeah, he's using IE var badBrowser=( navigator.appVersion.indexOf("MSIE 9")==-1 && //v9 is ok navigator.appVersion.indexOf("MSIE 1")==-1 //v10, 11, 12, etc. is fine too ); if(badBrowser){ // navigate to error page } } 这个代码会诀窍吗? 为了避免一些可能会以我的方式发表的意见: 是的,我知道用户可以伪造他们的useragentstring。 我不关心。 是的,我知道编程专业人员更喜欢嗅探function支持而不是浏览器types,但是我不觉得这种方法在这种情况下是合理的。 我已经知道,所有(相关的)非IE浏览器都支持我需要的function,所有pre-v9 IE浏览器都不支持。 检查整个网站的function将是一个浪费。 是的,我知道有人试图访问使用IE v1 (或> = 20)的网站不会得到“badBrowser”设置为true,警告页面将不会正确显示。 这是我们愿意承担的风险。 是的,我知道微软有“有条件的评论”,可以用于精确的浏览器版本检测。 IE不再支持IE […]
正在使用下面的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") { […]
如果您已经使用过任意长度的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 […]
我有一些在IE浏览器中工作的JavaScript代码,其中包含以下内容: myElement.innerText = "foo"; 但是,似乎'innerText'属性在Firefox中不起作用。 有一些Firefox相当于? 还是有更通用的,可以使用跨浏览器的属性?