禁用页面部分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 ' );

看起来真的很简单,在实际应用的时候,把前面两行单独抽出来存在一个外部JS文件中,并在需要过滤JavaScript方法的页面先加载这个JS文件(也可以在用户编辑内容块的前一行加载这个脚本,这样之前的HTML块中我们管理员或网页制作者还是可以用将要被禁用的方法),这样之后调用被禁用的方法是不起作用的了。

注意:最后提醒一下,还要禁用部分DOM操作方法,比如remove()方法,因为用户可以用DOM的操作方法移除你一开始加载的那个JS文件。


http://www.cnblogs.com/webflash/archive/2009/07/06/1517705.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用JavaScript来实现部分页面出现弹幕的效果。以下是一个简单的实现方法: 1. 首先,在HTML的`<head>`标签中添加以下代码,引入jQuery和弹幕插件: ```html <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/danmaku/dist/danmaku.min.js"></script> ``` 2. 在页面中添加一个容器元素,用于显示弹幕: ```html <div id="danmaku-container"></div> ``` 3. 在JavaScript中,使用以下代码初始化弹幕插件,并添加一些弹幕: ```javascript $(document).ready(function() { var danmaku = new Danmaku($("#danmaku-container")); danmaku.add([ { text: "这是一条弹幕", color: "#ffffff", size: "normal", speed: "normal" }, { text: "这是另一条弹幕", color: "#ff0000", size: "large", speed: "fast" } ]); }); ``` 在上面的代码中,我们首先创建了一个`Danmaku`对象,将其绑定到页面中的容器元素上。然后,我们添加了两条弹幕,分别设置了它们的文本、颜色、字体大小和速度等参数。 4. 最后,通过CSS来控制弹幕的位置和样式: ```css #danmaku-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: 9999; pointer-events: none; } ``` 在上面的代码中,我们将弹幕容器设置为fixed定位,并覆盖整个页面。同时,我们禁用了弹幕容器的鼠标事件,以防止影响页面的交互性。 通过上述代码,我们可以实现一个简单的部分页面出现弹幕的效果。需要注意的是,弹幕插件的参数和样式可以根据实际需求进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值