兼容所有浏览器的设为首页与显示小策略
作者:aoao 来源:样式之美 发布时间:2009-01-12 18:50:00
在IE比较简单,大家都知道用setHomePage
来设置,懒人写法:
<a href="#setHomePage" onclick="this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.aoao.org.cn');return false;">Set HomePage</a>
IE的结束了没?当然没有,其实M$还提供了一个神奇的接口给我们:isHomePage
,它是用来干啥呢?它是用来检查一下IE的首页是不是你的,这样我们就可以做设为首页为后就不再显示“设为首页”的效果了。挖哈哈,这里有rank同学写的现成代码,不过我修改了两下,只是写法不同,跟悄悄的加入了广告。
<a href="/setHomePage" id="setHomePage">设为首页</a><!--[if IE]><script type="text/javascript">(function(){ var el=document.getElementById('setHomePage'),url='http://www.aoao.org.cn/',isHp=false; el.style.behavior='url(#default#homepage)'; function check(){ try{ isHp=el.isHomePage(url); }catch(exia){} if(isHp){ //el.style.visibility='hidden' /*AD*/el.innerHTML="《Web标准设计》雷人进行时"; el.href="http://www.baidu.com/";/**/ el=null;url=null;isHp=null;check=null; }else{ el.onclick=function(){ try{ this.setHomePage(url); check(); return false; }catch(exia){return true} } } } check();})();</script><![endif]-->
在inline的情况下,条件注释还是比较帅滴,可能你会问,为什么不把a也放在脚本里输出呢? 其实,我们也可以解决其他浏览器的问题。
Firefox可没有现成的接口可以实现哦,但是,牛人们还是找出来解决方案,看一下Yahoo!的解决方案吧?
囧rz,被雷到的同学自觉举手,我用到这样久的Firefox 还不知道怎样设,试了半天,原来是把链接拖到工具栏的小房子上面,就可以设为首页。
还有好多浏览器,这时我们要派出终极解决方案。写帮助 -_-b ,好了,不会写的同学可以去抄一下yahoo的帮助。
那除了IE怎样识别是否被设为首页呢?可以写 cookies 或者用服务器来记,而有没有必要就看具体的应用了。
其实我们不一定要一直显示设置首页,比如用document.referrer
发现是从搜索或者XX过来的,也许显示成收藏会更适合,像Yahoo!的首页,看到广告的机会比看到设为首页的机率高多了,大家自己把握吧。
兼容所有浏览器收藏全攻略:
IE用
window.external.addFavorite
Win的其他浏览器提示使用
Mac的浏览器提示使用


猜你喜欢
- 今天准备把几个txt文件合并成一个文件时,用f.write方法写入时,发现程序执行完了,本应该十万行左右的txt记录,实际上只被写入了4k多
- 谷歌的potobuf不说了,它很牛B,但是对客户端对象不支持,比如JavaScript就读取不了。Jil很牛,比Newtonsoft.Jso
- 前言Python 是每个程序员都喜欢的语言,因为它易于编码和易于阅读的语法。但是,你知道 python 有一些很酷的技巧可以用来让事情变得更
- py文件不是html文件,当然不能在浏览器里打开。py文件可以用任何编辑器打开,py文件是和txt一样都是普通的文本文件,只是python解
- 本文实例为大家分享了python xlsxwriter创建excel图表的具体代码,供大家参考,具体内容如#coding=utf-8 imp
- 使用if…elif…elif…else 实现switch/case可以使用if…elif…elif..else序列来代替switch/cas
- 目录小游戏规则简介实现初始化游戏窗口游戏逻辑实现玩家类实现月饼类交互逻辑总结中秋佳节就快来临,给各位大佬整个兔子吃月饼的小游戏助助兴,废话不
- 数学模块import mathceil -- 上取整对一个数向上取整(进一法),取相邻最近的两个整数的最大值。import mathres
- 如果查询结果很多,服务器解释你的ASP script将花费大量的时间,因为有许多的Response.Write语句要处理. 如果你将输出的全
- 导语 相信有不少人的闹钟是设成这样的:6:206:306:356:37……起床真是令人
- 前言Qt 自带的工具提示样式不太好看,就算加了样式表也时不时会失效,同时工具提示没有阴影,看起来就更难受了。所以本篇博客将会介绍自定义工具提
- 这次我们讨论的是,区分有单选框的选项和普通的选项~~乍听起来,可能不太理解我说了什么,下面举个例子先~~1、标签的单选~~例如QQ秀的支付流
- PySnooper 在 GitHub 上自嘲是一个“乞丐版”调试工具(poor man's debugger)。一般情况下,在编写
- vue运行为v-on在监听键盘事件时,添加了特殊的键盘修饰符:<input v-on:keyup.13="submit&qu
- 一、TensorFlow介绍1、简介 TensorFlow是一个基于数据流编程(dataflow programming)的符号数学系统,
- jsp登陆验证,网页登陆验证带验证码校验,登录功能之添加验证码part_1:专门用于生成一个验证码图片的类:VerificationCode
- vscode检测到#include错误,请更新includePath。解决方法最近电脑重做,重新安装了一边vscode,但是写代码的时候发现
- 本文实例讲述了Python基于socket模块实现UDP通信功能。分享给大家供大家参考,具体如下:一 代码1、接收端import socke
- 尽管现代浏览器已经支持了众多的CSS3属性,但是大部分设计师和开发人员貌似依然在关注于一些很“主流”的属性,如border-radius、b
- Django添加静态文件有两种方法:首先setting.py配置文件中添加静态文件的路径:STATICFILES_DIRS = [ os.p