<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
var WinAlerts = window.alert;
window.alert = function (e) {
    if (e != null && e.indexOf("试用到期")>-1)
    {
        //和谐了
    }
    else
    {
        WinAlerts (e+'s');
    }
};
alert('a');
</script>
</head><body>
</body>
</html>chrome下没问题阿

解决方案 »

  1.   

    请问 e+'s' 这个 S 指的是什么东西或是什么意思呢?
      

  2.   

    你的目的不是重写alert吗?
      

  3.   

    那个字符串 s 是为了验证 WinAlerts (e+'s'); 确实被执行到了
    也就是 alert 方法确实被覆盖了用新的方法(函数)体去覆盖老的方法(函数)体,是再正常不过的事情了
    不知道你说的“不好使”是怎么回事在你的代码中,你保存了原 alert 方法的引用,所以还可以通过这个引用去访问
    如果你不保存引用,那也就不知道原来的方法(函数)是怎么回事了前几天有人在讨论如何保护 js 代码,其实这就是方法之一
    总是用新的覆盖掉旧的,让你很难跟踪到实际执行的是什么
      

  4.   

    估计是新手,你说这么多他不能理解的,看他2楼在问什么。。
    保护代码就是在prototype里复制一份