禁用页面部分JavaScript方法的具体实现
本文讨论的方法本人并没有在实际项目中应用过 因为我还没有遇到有这样需要的项目 但试验发现可行 一 我的想法来源 JavaScipt 是好东西 它的出现让网页页面表现形式更活泼 当然好处绝不仅仅就这些 而近些年来红红火火的AJAX应用更让人开始重视JavaScipt小语言(好些 程序牛人不把它看作语言 最多是脚本称号 甚至看不起搞脚本的人)的应用 现在好些博客官网开放脚本权限 允许用户自定义脚本来丰富自己的空间 特别像一 些技术类专业博客 提供了相当宽松的开发环境 但是我们也发现好些博客会对某些脚本方法作限制 注意 我这里说的是部分限制 如果是全部限制那是很简单的 事 直接把<script>脚本块过滤掉就行了 但是部分限制又是如何做到的呢? 因为我在之前的项目中没有遇到这样的问题 所以也没有作过多的深入研究 一开始只是凭感觉想到用“替换”方法 很显然这样的方法行不通 因为可能会出错 比如我要禁用alert方法 现有下面那段代码
复制代码 代码如下: window alert( Some message );现 在要让上面那段代码失效 只要让alert变一下就行了 比如把它全部改成大写ALERT 这样又肯定会报脚本错误的 但还是可以用 try{}catch{}把ALERT包含起来 但这对禁用语包的识别又是一大难题 而且还会有这样的错误 把 document write( alert some message );中的alert也替换了 后来我想到了方法重写 重写要禁用的方法 并让它什么也不做 结果证明真的可行 但并不知道是不是一个科学的方法 我拿出来与大家共同讨论一下 二 具体实现 先看下面的代码 实现了对“alert” “write”两个方法的禁用
复制代码 代码如下: window alert=function(){} document write=function(){} window alert( Alert some message ); document write( Write some message ); lishixinzhi/Article/program/Java/JSP/201311/20270