### 常用JavaScript代码详解
#### 禁止页面正文选取
在网页开发中,有时需要禁止用户选中文档中的文本,这可以通过简单的JavaScript代码实现。以下代码演示了如何阻止用户选择页面上的文本:
```javascript
<body oncontextmenu="return false" ondragstart="return false" onselectstart="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false" onmouseup="document.selection.empty()">
```
- **`oncontextmenu="return false"`**:阻止浏览器默认的右键菜单弹出。
- **`ondragstart="return false"`**:阻止元素被拖拽。
- **`onselectstart="return false"`**:阻止文本被选中(IE/Opera)。
- **`onselect="document.selection.empty()"`**:清除当前的选择(仅IE)。
- **`oncopy="document.selection.empty()"`**:阻止复制操作(IE)。
- **`onbeforecopy="return false"`**:阻止复制操作(Firefox/Chrome)。
- **`onmouseup="document.selection.empty()"`**:鼠标释放时清空选择。
#### 阻止图片被保存
为了防止图片被直接下载或保存,可以设置`GALLERYIMG`属性为`no`:
```html
<img src="mypicture.jpg" height="100px" width="100px" GALLERYIMG="no">
```
这通常用于一些版权图片,阻止用户通过右键点击“另存为”来保存图片。需要注意的是,这种做法只能起到一定程度的防护作用,并不能完全阻止有技术能力的用户获取图片源文件。
#### 防止页面被嵌套
下面这段代码确保页面不会被其他框架或窗口嵌套:
```javascript
<script language="javascript">
<!-- if (self != top) { top.location = self.location; } -->
</script>
```
此段代码检查当前页面是否位于顶级窗口中,如果不是,则将当前页面重定向到顶级窗口,从而避免页面被恶意嵌入其他网站中。
#### 页面定时刷新
为了定时刷新页面,可以使用`<meta>`标签:
```html
<meta http-equiv="Refresh" content="30">
```
这里的`30`表示30秒后自动刷新页面。也可以通过设置`content`属性为一个网址来实现页面跳转:
```html
<meta http-equiv="refresh" content="30;URL=url">
```
其中`url`是你希望跳转的页面地址。
#### 关闭当前窗口
如果你希望用户点击某个链接后关闭当前窗口,可以使用以下方法:
```html
<body>
<object id="close" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11">
<param name="Command" value="Close">
</object>
<script language="javascript">
function shutwin() {
close.click();
return;
}
</script>
<a href="javascript:shutwin();">关闭窗口</a>
```
当用户点击“关闭窗口”链接时,将调用`shutwin()`函数,触发关闭动作。
#### 显示随机图片
如果你想在页面上显示随机的图片,可以使用以下代码:
```html
<body>
<script language="javascript">
//...
var today = new Date();
var jran = today.getTime();
function rnd() {
var ia = 9301;
var ic = 49297;
var im = 233280;
jran = (jran * ia + ic) % im;
return jran / (im * 1.0);
}
function rand(number) {
return Math.ceil(rnd() * number);
}
document.write("<CENTER>");
for (var i = 1; i <= 1; i++) {
var myNum = rand(10); // 随机显示10张图片之一
if (myNum == 1) document.write("<img src='photo/back.jpg'>");
// 更多条件...
}
document.write("</CENTER>");
//...
</script>
```
该代码通过生成随机数并根据不同的值显示不同的图片。可以根据需要修改图片路径及数量。