Tag: 浏览器检测

浏览器嗅探错误/错误行为的替代方案(不缺少function)

好的,我们都知道浏览器嗅探很糟糕 。 我不打算在这里重新讨论整个辩论,无论如何,SO也不是正确的论坛。 我正在寻找一个问题的解决方案,提出的function检测替代方案似乎没有解决。 在我的特定情况下,它由以下代码触发: $(‘#mysubmit’).click(function() { sendAjaxRequestInsteadOfRealForm($(‘#input1’).val(), $(‘#input2’).val()); return false; }); 现在,我知道这里真正的答案是“不要使用input type=”submit”与jQuery绑定”(除了submit ,我想)。 但是这个代码在我们所有“官方”支持的浏览器上都按预期运行,只有当我们有一个用户碰巧在IE 7中尝试该网站时,这才成为一个问题(即,它绕过了绑定并提交了表单)老式的方式)。 我们不在IE 7上进行测试。因此,我们尝试在首页上使用浏览器检测,并警告用户代理表明其浏览器不受支持的用户。 我不喜欢这样做,但我不清楚替代方案是什么。 我想不出一个能够检测到“允许在提交按钮上单击绑定来替换实际提交”的function检测策略。 这里最好的方法是什么? 编辑澄清:我不是要求上述代码的替代品。 我知道它们是什么。 我问我应该如何检测上面的代码是有问题的,以便它不会达到生产,而不必在IE 7中实际测试它。

在没有特征检测的情况下检测IE9

所以我需要检测IE 9.我知道我应该真正使用function检测,但我不知道是什么function导致我的问题所有我知道的是,即9引起了我的问题。 我已经解决了我的问题(对于那些感兴趣的人,我在这里问了一个关于问题的问题,但实际上,这是无关紧要的)。 现在我想只为IE9实现这个hack修复,因为这是让我头痛的原因。 那么如何检测IE 9的最佳方法呢?

谷歌Chrome嵌入了Windows上的盒子阴影错误,而不是Mac:更好的解决方法?

这仍然是Chrome 5.0.375.125的最新版本,这是撰写本文时的最新Windows版本。 此处会跟踪错误: http : //code.google.com/p/chromium/issues/detail?id = 25334 所以,问题是,如果您使用的是Windows或Linux,并且某人在也具有border-radius的元素上使用了插入框阴影,则会出现错误 – 边框半径被保留,但插入框 – 阴影溢出来,好像它仍然是一个方形盒子。 它在Mac OS X上的Chrome中按预期工作。 使用纹理背景的人不能使用这种黑客,因为它需要不透明的边框颜色。 它也只适用于较小的半径。 这个黑客的两个部分。 一个小Javascript(jQuery + jQuery.client插件): if ($.client.browser == “Chrome” && $.client.os != “Mac”){ $(‘html’).addClass(“inset-radius-hack”); }; 和CSS #div{ -moz-border-radius: 7px; -webkit-border-radius: 7px; border-radius: 7px; -moz-box-shadow: rgba(0, 0, 0, 0.4) 1px 1px 4px 0 inset; -webkit-box-shadow: rgba(0, 0, 0, 0.4) […]

使用jquery.support检查Firefox 3.5

我想使用目前仅支持Firefox 3.5的一些CSS(box-shadow:inset)。 对于所有其他浏览器,通过jQuery,我将不得不插入一些带背景的额外div来实现效果。 我想’奖励’FF3.5用户,如果他们支持CSS,就不用担心那些脚本。 似乎通过jQuery测试浏览器的“正确”方法是使用jQuery.support。 但是,我没有看到/知道我可以测试的任何特定function,这对Firefox 3.5来说是独一无二的。 有这样的事吗? 除此之外,我应该退回并使用jQuery.browser获取渲染引擎版本号,如下所示: 为什么JQuery.browser.version为Firefox 3.5.2返回1.9.1.2 ADDENDUM:我知道有jQuery的浏览器检测插件。 如果一个真的非常非常好,我会考虑它,但是觉得加载一个插件以避免在FF3.5中运行额外的一些function可能会失败。

什么是jquery.browser的快速,纯粹的javascript替换(在jquery 1.9中删除)?

是的,我知道特征检测更可取。 我的代码库中有一个案例,我们使用$.browser.msie和$.browser.version来决定是否渲染一些CSS。 编写代码的开发人员不再和我们在一起了,而且我并不完全明白我应该在这里写什么样的特征检测。 作为一个快速解决方案,实现$ .browser.msie和$ .browser.version的最短方法是什么?

使用jQuery检测Opera的正确方法是什么?

Amazon.com最近更新了他们的javascript,这引起了一些Opera浏览器的问题。 他们的浏览器检测代码看起来像这样,但它有问题: function sitbReaderIsCompatibleBrowser() { if (typeof(jQuery) == ‘undefined’) { return false; } else { var version = jQuery.browser.version || “0”; var splitVersion = version.split(‘.’); return ( (jQuery.browser.msie && splitVersion[0] >= 6) // IE 6 and higher || (jQuery.browser.mozilla && ( (splitVersion[0] == 1 && splitVersion[1] >= 8) // Firefox 2 and higher || (splitVersion[0] […]

如果浏览器不是Internet Explorer 9或更高版本,则显示消息

我想向我的用户展示一个看起来像这样的栏,如果: 浏览器不是IE; 要么 浏览器是IE,但是版本8或更早版本 (请注意,屏幕截图仅用于说明 – 我的网站支持IE 9。) 我找到了这个不错的jQuery插件,但我不想使用弹出窗口。 http://jreject.turnwheel.com/ 我将实现这一点的网站是Sharepoint 2013网站,因此我将使用内容编辑器webpart来包含您提供的HTML内容,并且该栏应位于其他所有内容的顶部。 如果需要,请包含CSS以使其看起来像截图?

jQuery使用jQuery.support NOT jQuery.browser检测IE6

我没有找到使用jquery.support而不是jquery.browser来检测IE6的明确方法。 另外我需要考虑Quirks模式,呃! 我在Stack上看到了几个post,但它们都引用了jquery.browser,而jquery.support的文档有点模糊。 任何有关这方面的帮助都会很棒并且事先感谢。

Zepto回退到jQuery

我正在使用ZeptoJS作为我的网络应用程序,但如果浏览器不支持Zepto,我想回到jQuery。 由于IE是目前唯一不支持的主要浏览器,我很想检测IE: if(navigator.appName == ‘Microsoft Internet Explorer’){ // load jquery } else { // load zepto } 但我更愿意在其他情况下具体检测Zepto支持并使用jQuery。 是否有function检测方法来执行此操作?

我需要一种简单的方法来使用jquery检测CSS3媒体查询支持

我需要一种快速而肮脏的方法来使用jquery检测媒体查询支持。 我定义了一个函数如下: function mediaQueriesEnabled () { var v = parseFloat($.browser.version); if ($.browser.msie) { if (v < 9) return (false); } return (true); } 有人可以帮我解决这个问题吗? 看这个页面: http://caniuse.com/css-mediaqueries 我意识到这里有一些复杂性。 例如,当我测试我的safari版本时,我得到“534.57.2”。 我现在想避免安装modernizr,主要是因为我处于紧张状态,我需要在短期内处理大多数情况。 任何帮助表示赞赏!