IE 搜索引擎被劫持

今天突然发现IE的搜索引擎又被劫持到了百度联盟… 然后很不爽地发现, 那串url非常眼熟, 又是用utf8xxx的形式, 想把劫持者的联盟账号伪装成编码, 以骗过广大人民… 因为之前遇到过, 就很自然地联想到了Qvod Player… 大家懂的. 这款软件通过添加一款IE插件来达到劫持的目的, 所以只要禁用相关插件就可以了. 之前一次, 好像叫Qvod Extend, 不过这次更猛, 直接挂上了Baidu的名号… 弄得我找了半天才找到.
插件名称是{xxxx-xxx-xxx…}这种形式的, 大家找找看, 禁用掉应该就可以了~

IE地址栏被劫持

今天偶然在地址栏输入了一些东西,看看会不会自动搜索,结果还真的自动搜索了.乍一看是百度,觉得不爽,想改成Google,但又不知道在哪里改.

然后突然发现,此百度还非一般的百度,而是百度联盟.看来有人又来劫持流量了…但是,一般来说,这种url上都会有一个账号信息啊,我怎么没看到?我又一次看了看那个url,http://www.baidu.com/s?wd=word&tn=utf8kb_adr&abar=0,发现我被障眼法了,它前面来了个utf8,我还以为是编码信息,过了很久才反应过来…

确定是被恶意劫持后,我开始到网上搜索解决方案,看到得最多的说是UrlSearchHooks这一个注册表项背篡改,在注册表里找到并删除即可.我抱着莫大的希望试了试,结果失败了…后来过了很久,看到哪里说,可能是加载项的问题,于是试了试,首先将目标锁定在一个叫QvodExtend的加载项上,禁用,没想到重启浏览器,居然成功了!原来,罪魁就是你啊!

好吧,总算解决了,呵呵.

JS在IE和FF中的语法兼容

在前端开发的浏览器兼容工作中,我觉得主要分为CSS样式兼容和Javascript脚本兼容,而脚本兼容又分为浏览器实现的兼容和语法本身的兼容,下面我会对我所了解的JS在不同浏览器中语法的细小差别做一个归纳。

一、函数声明
函数声明(姑且这样说)有两种方法:
function abc(){};
var abc=function(){};
这两个都是通用的,只是效果有些许不同,但试想下面一种情况:
var obj={};
//直接赋值一个函数
obj.abc=function(){};
//用function关键字声明
function obj.abc(){};
这两种写法都能正确的在IE中运行,但第二种却无法在FF中使用,于是,兼容的做法就是使用第一种。

二、函数的嵌套
有时我们会把函数嵌套在if语句中,虽然我不知道这是不是一个坏习惯,但它在不同的浏览器中的确存在不同。一般情况下,如果我们使用function关键字来声明一个函数,它似乎会在一开始就完成初始化,所以我们可以在前面的代码里使用后面的函数,但函数写在if里呢?惨痛的调试经验告诉我,FF不会在if中优先初始化,也就是说,在FF的if中,function关键字声明的函数等价于var声明的函数,它们会逐语句执行。这时如果把要用到的函数写在了后面,就会不幸地报错了。不过在IE里,它是允许的。兼容的方法也就是将函数写在前面,或者写在if之外。

额,写完了才发现都是关于函数的,等我搜索完我的脑袋,要是还有就再加。