IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

兼容所有浏览器的设为首页与显示小策略

样式之美 2010-04-07 09:11:06 累计浏览 4,029 次
本机暂存

在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!的解决方案吧?

make y! home page@firefox

同分类推荐文章

  1. translateZ() (2026-06-25 21:18:56)
  2. translateY() (2026-06-25 21:17:56)
  3. translateX() (2026-06-25 21:16:01)

查看更多 前端 文章 →

建议继续学习

  1. JQuery实现Excel表格呈现 (累计阅读 48,349)
  2. 深入理解Javascript之执行上下文(Execution Context) (累计阅读 18,404)
  3. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,933)
  4. 图片动态局部毛玻璃模糊效果的实现 (累计阅读 14,849)
  5. 天朝第二代身份证号码的验证机制 (累计阅读 14,762)
  6. HTML 5 的data-* 自定义属性 (累计阅读 14,349)
  7. 分享一个JQUERY颜色选择插件 (累计阅读 14,223)
  8. 什么是全栈工程师? (累计阅读 14,038)
  9. 快速排序(Quicksort)的Javascript实现 (累计阅读 11,735)
  10. 7 天打造前端性能监控系统 (累计阅读 11,187)