找回密码
 立即注册
搜索
楼主: normanzb

[软件] IE这婊子怎么又开始userAgent spoof了

[复制链接]
发表于 2014-1-16 10:35 | 显示全部楼层
newdasemo 发表于 2014-1-16 10:30
话说gecko到底算啥?mozilla再世?

差不都吧

互联网诞生,大家都是渣渣
新功能,mozilla专用->其他人出同样功能后都伪装成mozilla
新功能,gecko专用->其他人出同样功能后都伪装成gecko
回复

使用道具 举报

     
发表于 2014-1-16 10:37 | 显示全部楼层
>>它只知道这么一改从大多数网站“看起来”“能浏览”,才不管因此网页开发人员有多蛋疼。
这说得不对,至少ie9开始都是“看起来能浏览”的吧。显然不是这个目的。
他们的逻辑无非是,现在我们标准了,那么我们改下ua,你就当我xxx用吧。

实际上也确实没给人带来什么麻烦吧?
另外用ua当判断依据本来就不是很好的做法。我不知道要纠结什么。
回复

使用道具 举报

 楼主| 发表于 2014-1-16 10:38 | 显示全部楼层
ch_ch 发表于 2014-1-16 10:20
> 如果浏览器都说自己是mozilla,那么这本身就是一句废话,那么你难道从来不奇怪,既然是一句废话,为什么 ...

你看看博客原文啊,微软是删掉MSIE,目的就是为了混淆别人,这点人家自己都承认了。

如果你说自己是mozilla,然后又说是like gecko,然后又没说你是什么其他浏览器的时候,通常会认为是firefox
回复

使用道具 举报

 楼主| 发表于 2014-1-16 10:39 | 显示全部楼层
allenz 发表于 2014-1-16 10:28
究竟为什么国内这么多网站只能用老版jquery,你懂的,这可不是因为洋鬼子不负责任 ...

我不懂啊,纯粹是一个前两年的项目,放在那里暂时没人维护而已。

升级jquery你以为没有成本吗?那么多breaking changes

而且到后来,jquery里干脆没有ua检测了,那我的老项目怎么办?代码都改一边是吗?
回复

使用道具 举报

 楼主| 发表于 2014-1-16 10:41 | 显示全部楼层
uroko 发表于 2014-1-16 10:37
>>它只知道这么一改从大多数网站“看起来”“能浏览”,才不管因此网页开发人员有多蛋疼。
这 ...

我也知道ua判断不是好办法,但是原因我上面说了,恕不重复
回复

使用道具 举报

发表于 2014-1-16 10:42 | 显示全部楼层
ch_ch 发表于 2014-1-16 10:20
> 如果浏览器都说自己是mozilla,那么这本身就是一句废话,那么你难道从来不奇怪,既然是一句废话,为什么 ...

233333,这种检测逻辑本来就是非标啊
回复

使用道具 举报

 楼主| 发表于 2014-1-16 10:44 | 显示全部楼层
newdasemo 发表于 2014-1-16 10:30
话说gecko到底算啥?mozilla再世?

mozilla 本来是组织的名字,在ua里面最早就是指netscape浏览器本身。后来微软抢了这个名字,netscape只好在ua末尾加上netscape。gecko是layout引擎
回复

使用道具 举报

发表于 2014-1-16 10:47 来自手机 | 显示全部楼层
说白了就是不想改,那做android通讯录适配的是不是要跳楼了,
回复

使用道具 举报

 楼主| 发表于 2014-1-16 10:47 | 显示全部楼层
ch_ch 发表于 2014-1-16 10:20
> 如果浏览器都说自己是mozilla,那么这本身就是一句废话,那么你难道从来不奇怪,既然是一句废话,为什么 ...

什么叫“微软大概考虑隔壁presto,webkit,blink都带gecko,那我也带个gecko没问题吧?”

最早写上like gecko就是微软自己,就是微软带的坏头,现在HTML5市场上吃不开,又故伎重演而已。

不过like gecko,语义上倒没有大问题,声称mozilla才是比较傻逼的事情,声称自己是mozilla,结果好多netscape的api不支持。
回复

使用道具 举报

头像被屏蔽
     
发表于 2014-1-16 10:53 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2014-1-16 10:53 | 显示全部楼层
allenz 发表于 2014-1-16 10:47
说白了就是不想改,那做android通讯录适配的是不是要跳楼了,

不想改没问题,所以没有喷chrome不是吗?

但是不要带这个坏头啊?微软就是带坏头的人那。现在mozilla 5/ like gecko这几个字符串整天在互联网上传几亿次都不止,但是又没实际作用。
回复

使用道具 举报

     
发表于 2014-1-16 10:58 | 显示全部楼层
normanzb 发表于 2014-1-16 10:41
我也知道ua判断不是好办法,但是原因我上面说了,恕不重复

你的原因我看不懂。
你一开始为什么要判断ie?因为它表现和别的不同,你要单独处理。
现在它表现相同了,你不需要单独处理了,旧的包袱,后面他可能会慢慢丢掉。他直接帮你改好,不是很省心么?

如果因为ua变了银联判断出错,好吧,它们是屎一直在给旧ie生存土壤不是公认的嘛?怎么反过来怪微软。
那些ie才能用的ActiveX,不都是可以typeof判断出来的?
回复

使用道具 举报

 楼主| 发表于 2014-1-16 11:03 | 显示全部楼层
newdasemo 发表于 2014-1-16 10:53
mozilla我记得先是netspace Navigator的内部代号吧,后来netscape被事实终结时他们的大牛才组建了mozilla ...

mozilla是内部代号,mozilla是后来才有的组织这也没错,我上面描述有问题我错了。
但是主要是netscape 4的ua里面,直接就写mozilla,没有写netscape。

然后微软带了坏头,在ua里加上了mozilla。

我觉得如果IE兼容mozilla,那么就真的做到兼容mozilla,这样别人就不会说IE什么,但是微软事实上又不兼容mozilla,喜欢自己搞一套。或者在ua里写上like mozilla,这样别人也能知道你其实是兼容引擎而不是netscape。

当然这些都是历史了,现在微软又故伎重施,伪装成别的浏览器。干脆不告诉你他是IE了。

那干脆chrome也不要说自己是chrome,safari也不要说自己是safari,opera也不要说是opera,都写上webkit blink拉倒咯?
回复

使用道具 举报

头像被屏蔽
     
发表于 2014-1-16 11:07 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2014-1-16 11:10 | 显示全部楼层
本帖最后由 normanzb 于 2014-1-16 11:19 编辑
uroko 发表于 2014-1-16 10:58
你的原因我看不懂。
你一开始为什么要判断ie?因为它表现和别的不同,你要单独处理。
现在它表现相同了, ...

1. 我的初衷是判断firefox,逻辑是 if (firefox) then apply workaround
2. 但是我用的是jquery 1.4,jquery你要判断是火狐,你得取 jQuery.browser.mozilla的值。
3. jQuery判断是否是mozilla家浏览器内核的逻辑,里面判断了是否有MSIE,chrome,webkit等标示,如果都没有,那么就是mozilla家浏览器内核。这个逻辑基本没问题,因为大家都说自己是mozilla,那么只好在其他家浏览器都判否后才能确实人moz家……,不直接看firefox这个字符串的原因,因为还有seamonkey之类的吧?

看这个帖子,中招的看来不是我一个人 http://stackoverflow.com/questio ... ail-to-detect-ie-11
回复

使用道具 举报

 楼主| 发表于 2014-1-16 11:12 | 显示全部楼层
uroko 发表于 2014-1-16 10:58
你的原因我看不懂。
你一开始为什么要判断ie?因为它表现和别的不同,你要单独处理。
现在它表现相同了, ...

IE能模拟firefox的bug吗?不能的话,我为调整firefox bug写的代码,不就“错误的”弄到IE上去了吗?
回复

使用道具 举报

 楼主| 发表于 2014-1-16 11:13 | 显示全部楼层
本帖最后由 normanzb 于 2014-1-16 11:17 编辑
newdasemo 发表于 2014-1-16 11:07
那就直接判断是不是Trident好了,反正别的浏览器都不会用它的

哎哟,我说了好多次了。
1. jQuery不判断trident的,我们哪有闲心自己写ua检测。
2. trident是引擎的名字,不是浏览器名字,"那干脆chrome也不要说自己是chrome,safari也不要说自己是safari,opera也不要说是opera,都写上webkit blink拉倒咯?"3. 一些老项目代码不是说改就改,放那边要不是有人报不能用了我都不知道怎么回事。
回复

使用道具 举报

发表于 2014-1-16 11:18 | 显示全部楼层
我说这种情况可不可以自己patch一下jquery,ms换了一种方法而已,又不是没有办法判断ie,以后trident开放了,或者ms不标trident了你再说臭婊子不迟。
回复

使用道具 举报

 楼主| 发表于 2014-1-16 11:21 | 显示全部楼层
allenz 发表于 2014-1-16 11:18
我说这种情况可不可以自己patch一下jquery,ms换了一种方法而已,又不是没有办法判断ie,以后trident开放了 ...

要认IE,技术上都有办法解决,但是这些都叫做擦屁股,我上来,就是婊一婊微软,干这种鸟事,让别人帮他擦屁股。
回复

使用道具 举报

     
发表于 2014-1-16 11:24 | 显示全部楼层
normanzb 发表于 2014-1-16 11:12
IE能模拟firefox的bug吗?不能的话,我为调整firefox bug写的代码,不就“错误的”弄到IE上去了吗? ...

如果是这种问题的话,你可以改一下判断ie的正则……
可能我前台碰得少,倒是不了解firefox现在有什么严重影响效果的渲染bug。

不过你有闲情一一找多如牛毛的(还有各路套壳山寨)各浏览器的渲染bug,却不愿意自己判断下ua。
我觉得很奇怪……
你早该扔了jquery1.4了啊,他们自己都说ua是a bad idea直接怒删$.browser了……
回复

使用道具 举报

发表于 2014-1-16 11:26 | 显示全部楼层
normanzb 发表于 2014-1-16 11:12
IE能模拟firefox的bug吗?不能的话,我为调整firefox bug写的代码,不就“错误的”弄到IE上去了吗? ...

“ie这婊子居然没有ff的性病!没有就算了,我为了ff带了套,她又不让带套上!不让我上!这臭婊子!”

楼主完全没有获得喷的精髓,应该发帖说ff这婊子bug就是多,想要绕过,结果因为认不出ff还是ie,导致ff能用了ie反而不能用!
然后就会有许多网友上来说:都是微软2b啦,ie欺世盗名!

其实我就想问,lz你自己发的链接里头排名最高的答案有用么?
回复

使用道具 举报

 楼主| 发表于 2014-1-16 11:53 | 显示全部楼层
本帖最后由 normanzb 于 2014-1-16 12:01 编辑
uroko 发表于 2014-1-16 11:24
如果是这种问题的话,你可以改一下判断ie的正则……
可能我前台碰得少,倒是不了解firefox现在有什么严重 ...

真是站着说话一般不腰疼啊

1. 这是一个老项目,升级jquery成本高
2. 即使是其他的ua监测解决方案,多数IE11刚问世的时候也一样有错
3. 别人专业做ua检查我放着不用自己弄?作死么?
4. 这是微软的故意让你识别出错,你一个在浏览器里混的,浏览器厂商要你弄错你还有不错的道理?5. 你以为你今天检查了trident就没问题了?微软想下次想让你认不出他,他就改一个引擎的名字不就行了?然后你的代码又继续出错,反正出错的是你的站点,他的小IE看起来可是更加光鲜亮丽了啊。


回复

使用道具 举报

 楼主| 发表于 2014-1-16 11:58 | 显示全部楼层
nonmoi 发表于 2014-1-16 11:26
“ie这婊子居然没有ff的性病!没有就算了,我为了ff带了套,她又不让带套上!不让我上!这臭婊子!”

楼 ...

听不懂我在说什么吗?补救的方法多得是。

但是微软为了自己的市场份额让一票人为他擦屁股他就是婊子这有错?

正确的比喻是IE婊子做久了现在想洗白,生怕别人认出使她,弄掉MSIE的名字装高大上。结果装出洋相笑掉大牙。
回复

使用道具 举报

头像被屏蔽
     
发表于 2014-1-16 11:59 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

 楼主| 发表于 2014-1-16 12:02 | 显示全部楼层
白左 发表于 2014-1-16 11:59
ua屁大点事儿搞得乌烟瘴气焰嚣张得如同天塌了一般, 这就是阿宅的悲哀吧

承认IE是婊子这屁大点事,ls一些阿宅就是不肯承认,这就是阿宅的悲哀吧。
喜欢给IE舔屁眼,这屁大点的事,你喜欢就尽管去做吧。
回复

使用道具 举报

发表于 2014-1-16 12:10 | 显示全部楼层
normanzb 发表于 2014-1-16 11:58
听不懂我在说什么吗?补救的方法多得是。

但是微软为了自己的市场份额让一票人为他擦屁股他就是婊子这有 ...

正确的比喻是IE婊子做久了现在想洗白,生怕别人认出使她,弄掉MSIE的名字装高大上。结果有些人用得deprecated了5年的代码认错错人了让人笑掉大牙。

删掉MSIE该喷。删了MSIE就认成firefox也好不到哪里去。

而且你以为删掉MSIE是为了什么?还不是为了给那些用ua sniffing的人擦屁股
回复

使用道具 举报

     
发表于 2014-1-16 12:31 | 显示全部楼层
本帖最后由 flvv 于 2014-1-16 12:34 编辑

总结一下:

网页E使用了浏览器A支持的功能X/针对A的错误Y进行了处理,IE不支持功能X/没有Y问题不需要修复。

-> 因为不想显得落后,新版IE支持功能X了,但是网页E不更新代码的话,IE还是没法显示出功能X的效果。

-> IE伪装成浏览器A,能使用功能X了,但是因为网页E错误的”修复“了错误Y,导致网页E在IE下反而显示不正常了。

-> 因为IE普及率高,而且一般观念认为IE不会有兼容问题,如果有用户使用新版的IE,只会怀疑网页,开发者就被迫去想法处理识别IE。

话说我记得IE11有兼容模式把,没猜错的话那个功能应该就跟UA有关系……。

其实也不用专门来发帖,直接告诉客户新版IE有严重问题你们不支持叫他们换浏览器不就完了么。
回复

使用道具 举报

发表于 2014-1-16 12:33 | 显示全部楼层
本帖最后由 保安 于 2014-1-16 12:37 编辑

IE11这事本来就是微软有病。IE的版本都到11了,突然把IE去掉了。

不是所有软件都可以那么容易升级的。特别是安全敏感的企业。

安全测试从头走一遍,费时费钱,没人愿意。

回复

使用道具 举报

发表于 2014-1-16 13:03 | 显示全部楼层
保安 发表于 2014-1-15 22:33
IE11这事本来就是微软有病。IE的版本都到11了,突然把IE去掉了。

不是所有软件都可以那么容易升级的。特别 ...

没听懂,那也不要升级IE不就行了?
回复

使用道具 举报

发表于 2014-1-16 13:05 | 显示全部楼层
对了,IE11还有一个喷点,字体选择一炮污 会把serif视为一种字体而不是一类字体的大概只有IE11了
回复

使用道具 举报

发表于 2014-1-16 14:26 | 显示全部楼层
烈之斩 发表于 2014-1-16 13:03
没听懂,那也不要升级IE不就行了?

企业内部的软件,当然就可以让IT部门禁止大家升级IE完事。
如果是对外的,你根本不能控制客户用的浏览器。

你们上网看看,检查UA关键字MSIE来确定浏览器的的例子不要太多。
连jQuery的老版本这种都有过这种问题,你们要要求其他普通水平的JS死程5年前就要预知巨硬这种损招可能吗。

关键在于我看不出巨硬这么做有什么必要,一个存在了那么多年的软件,一个UA就会影响你IE11的速度质量了?
你既然非要改UA,何不直接用webkit算了。
回复

使用道具 举报

发表于 2014-1-16 14:33 | 显示全部楼层
保安 发表于 2014-1-16 00:26
企业内部的软件,当然就可以让IT部门禁止大家升级IE完事。
如果是对外的,你根本不能控制客户用的浏览器 ...

IE11这事本来就是微软有病。IE的版本都到11了,突然把IE去掉了。

不是所有软件都可以那么容易升级的。特别是安全敏感的企业。
--
我不是不同意你的意见,只是没搞懂你这两句话的逻辑

既然你的“安全敏感的企业”别的软件不那么容易升级,为啥ie非要升级到最新的11
回复

使用道具 举报

     
发表于 2014-1-16 14:38 | 显示全部楼层
>>连jQuery的老版本这种都有过这种问题
jquery老版本只是提供了方法,我记得文档有明确提示不赞成使用,应该直接检测特性,这不是一个问题。
回复

使用道具 举报

 楼主| 发表于 2014-1-16 15:41 | 显示全部楼层
本帖最后由 normanzb 于 2014-1-16 16:00 编辑
ch_ch 发表于 2014-1-16 12:10
正确的比喻是IE婊子做久了现在想洗白,生怕别人认出使她,弄掉MSIE的名字装高大上。结果有些人用得deprec ...

本来就是人手不够没人维护的老项目…… 上面说过无数遍,你为什么就不懂?

老项目你还想怎么办?当时开发的时候未普先知给jQuery开个bug说你穿越回去的知道IE会改?
这事本来就是IE对你的网站怎么显示指手画脚的一件事,人家自己都承认就是故意要让你搞错。

feature detection是不错,但也不是万能灵药,一些情况你没法在运行之前detect:

1. bug随机出现,或者和html上下结构有关
2. bug出现需要配合用户输入的。

一些用detect并不是很完美的情况
1. detect的代码有一小段延时的,会导致你必须等待延时之后运行
2. 一些功能微软声称自己支持了,其实支持的像屎的,比如IE 8 的 Object.defineProperty, IE9 的border radius等
回复

使用道具 举报

 楼主| 发表于 2014-1-16 15:43 | 显示全部楼层
uroko 发表于 2014-1-16 14:38
>>连jQuery的老版本这种都有过这种问题
jquery老版本只是提供了方法,我记得文档有明确提示不赞成使用,应 ...

1. 我就不信你们项目里全是方法检测来解决问题
2. jQuery是后来打算拿掉这个功能,才改文档说要deprecated
回复

使用道具 举报

 楼主| 发表于 2014-1-16 15:44 | 显示全部楼层
烈之斩 发表于 2014-1-16 14:33
IE11这事本来就是微软有病。IE的版本都到11了,突然把IE去掉了。

不是所有软件都可以那么容易升级的。特 ...

他是说对外服务的,客户升级到了IE11。
回复

使用道具 举报

 楼主| 发表于 2014-1-16 15:47 | 显示全部楼层
flvv 发表于 2014-1-16 12:31
总结一下:

网页E使用了浏览器A支持的功能X/针对A的错误Y进行了处理,IE不支持功能X/没有Y问题不需要修复 ...

”直接告诉客户新版IE有严重问题你们不支持叫他们换浏览器不就完了么“

我们不是政府网站好吗……
回复

使用道具 举报

 楼主| 发表于 2014-1-16 15:49 | 显示全部楼层
保安 发表于 2014-1-16 12:33
IE11这事本来就是微软有病。IE的版本都到11了,突然把IE去掉了。

不是所有软件都可以那么容易升级的。特别 ...

终于来了个明白道理的了
回复

使用道具 举报

     
发表于 2014-1-16 15:51 | 显示全部楼层
本帖最后由 uroko 于 2014-1-16 16:01 编辑
normanzb 发表于 2014-1-16 15:43
1. 我就不信你们项目里全是方法检测来解决问题
2. jQuery是后来打算拿掉这个功能,才改文档说要deprecate ...

我确实没用过$.support。
它分得比较细,我的需求好像没用到过那么细。

一般ie678:!-[1,]。
6的话再判断window.XMLHttpRequest。
或者开放给外面用的api要再判断是否在旧ie怪异模式下document.compatMode=="BackCompat"。

用ActiveX的东西则统一typeof判断。typeof出来能用就是能用,不能用就是不能用。

我不认为这比ua困难了。
事实上,ua你还要考虑一堆傻逼像腾讯浏览器、360浏览器、搜狗浏览器等等的ua。虽说它们一般也会在自己ua放“正确”的字符串,但是如果他2一下,占有率又不特别低的话。你就会多出很多“测试浏览器兼容性”的工作,随着时间推移,可能还会不断多出新的“修正bug”工作。:(
回复

使用道具 举报

 楼主| 发表于 2014-1-16 16:01 | 显示全部楼层
uroko 发表于 2014-1-16 15:51
我确实没用过$.support。
它分得比较细,我的需求好像没用到过那么细。

feature detection是不错,但也不是万能灵药,一些情况你没法在运行之前detect:

1. bug随机出现,或者和html上下结构有关
2. bug出现需要配合用户输入的。比如IE的oninput bug

一些用detect并不是很完美的情况:

1. detect的代码有一小段延时的,会导致你必须等待延时之后运行,比如IE的oninput bug
2. 一些功能微软声称自己支持了,其实支持的像屎的,比如IE 8 的 Object.defineProperty, IE9 的border radius, IE9的oninput等
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-9-7 17:29 , Processed in 0.312628 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表