JavaScript安全与防护:经典代码实践
4星 · 超过85%的资源 需积分: 46 64 浏览量
更新于2024-07-20
收藏 96KB DOC 举报
"JavaScript经典代码大全"
在JavaScript编程中,有一些经典的代码片段被广泛使用,以实现特定的功能或优化用户体验。以下是一些示例及其详细解释:
1. 阻止鼠标右键菜单:
`oncontextmenu="window.event.returnValue=false"` 这段代码可以应用于HTML元素上,如`<body>`或`<table>`,用于阻止用户在该元素上点击鼠标右键时显示默认的上下文菜单。
2. 取消文本选择和防止复制:
`<body onselectstart="return false">` 通过这个事件处理函数,你可以防止用户在页面上的文本进行选取和复制操作。
3. 禁止粘贴:
`onpaste="return false;"` 这个代码可以阻止用户在特定输入框或文本区域内使用剪贴板粘贴内容。
4. 阻止复制和剪切:
`oncopy="return false;" oncut="return false;"` 这两个事件处理函数组合起来,可以禁止用户对页面内容进行复制和剪切操作。
5. 设置浏览器地址栏图标:
`<link rel="Shortcut Icon" href="favicon.ico">` 这行代码可以设置网页在浏览器地址栏显示的自定义图标。
6. 收藏夹图标:
`<link rel="Bookmark" href="favicon.ico">` 当用户将网站添加到收藏夹时,这会使得收藏夹内显示指定的图标。
7. 关闭IME输入法:
`<input style="ime-mode:disabled">` 通过设置输入框的样式,可以关闭输入法,适用于不需要输入汉字或特殊字符的场景。
8. 框架页面强制加载:
```javascript
if (window == top) {
top.location.href = "frames.htm";
}
```
这段代码确保页面始终作为顶级窗口打开,而不是被嵌入到其他框架页面中。
9. 防止页面被嵌入到frame中:
```javascript
if (top.location != self.location) {
top.location = self.location;
}
```
类似于上一个示例,这段代码防止了你的页面被其他页面通过frame或者iframe引用。
10. 禁止另存为:
`<noscript><iframe src=*.html></iframe></noscript>` 这段代码在用户尝试“另存为”网页时,可能会阻止他们成功保存整个页面,因为`noscript`标签内的内容在JavaScript启用的情况下不会加载。
11. 查看源代码按钮:
```javascript
<input type="button" value="查看网页源代码" onclick="window.location='view-source:' + 'http://www.51js.com/'">
```
创建一个按钮,点击后用户可以查看页面的源代码。
12. 删除确认提示:
```html
<a href="javascript:if(confirm('确实要删除吗?')) location='boos.asp?&areyou=删除&page=1'">删除</a>
```
在用户点击删除链接时,弹出确认对话框,只有当用户点击“确定”时才会执行删除操作。
13. 获取控件的绝对位置:
```javascript
function getIE(e) {
var t = e.offsetTop;
var l = e.offsetLeft;
// ...
}
```
这是一个函数,用于获取HTML元素相对于其最近的定位祖先元素的顶部和左侧的偏移值。
这些JavaScript代码片段是经典而实用的,它们在网页交互、用户体验以及安全方面都有重要作用。然而,需要注意的是,某些功能(如阻止右键菜单、复制和粘贴)可能会影响正常用户的操作,因此在实际应用中需谨慎使用。
2008-10-14 上传
2009-11-26 上传
2021-05-23 上传
爱吃桃子
- 粉丝: 0
- 资源: 7
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析