一 .简介
1. 使用JavaScript操作Dom进行DHTML开发。(js脚本语言,dom(html页面的模型,dom树),dhtml动态网页,对应关系类似于用c#语言在vs平台开发web服务器程序)
2.CSS+JavaScript+Dom=DHTML
二 .事件
1.和winform的事件一样。
2.可以直接在标签内写事件/在head里面写事件
三.window对象(*对象,根对象,当前浏览器的窗口)
(1)常见方法:
alert:弹出消息框
confirm:弹出确定/取消选择框
navigat:跳转到指定页面(ie浏览器支持,其他浏览器不一定支持)
setIterval:每隔一段时间执行指定函数(不推荐使用代码来做参数)
clearIterval:取消间隔执行
timeout:延迟一段时间执行指定函数代码(不推荐使用代码来做参数)
cleartimeout:取消延迟执行
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题页</title>
<script type="text/javascript">
//函数一般不写在标签内。
function mousedown() {
alert("请点击我");
}
function f1() {
alert("1");
}
function f2() {
alert("2");
}
function confirmademo() {
if (confirm("是否进入?")) {
alert("进入了");
setInterval
}
else {
alert("取消进入");
}
}
var IntervalDomTitel;//表示为全局变量。
function startInterval() {
IntervalDomTitel = setInterval("alert('hello')", 1000);
}
</script>
</head>
<!-- 默认有效区域是body,只有一条div的大小。所以要加入换行符来扩大body的区域-->
<body>
<input type="button" onclick="document.ondblclick=f1" value="关联dom双击事件1" />
<input type="button" onclick="document.ondblclick=f1" value="关联dom双击事件2" />
//comfir用来提示是否继续操作
<input type="button" value="comfirtest" onclick="confirmademo()" />
<!-- 如果属性值本身就含有双引号则使用单引号,或者双引号里面使用单引号,不能一样。-->
<!-- navigate只有webbrowser引擎支持,火狐等不支持,尽量避免使用。-->
<input type="button" value="navigatetest" onclick="navigate('HTMLPage.htm');" />
<input type="button" value="Interval" onclick="startInterval()" />
<input type="button" value="StopInterval" onclick="clearInterval(IntervalDomTitel);" />
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>实现标题走马灯效果</title>
<script type="text/javascript">
//尽量避免使用全局变量,js的全局变量都是放在window下的,不同的页面就是不同的window,比如子页面访问父页面变量test,window.parent.test
var Intervas;
function setIntervas(dirparams) {
var srcroll;
clearInterval(Intervas);
function srcroll() {
if (dirparams == "left") {
var title = document.title;
var fistch = title.charAt(0);
var leftstr = title.substring(1, title.length);
//substring() 方法返回的子串包括 start 处的字符,但不包括 stop 处的字符
document.title = leftstr + fistch;
}
if (dirparams == "right") {
var title = document.title;
var laststr = title.charAt(title.length - 1);
var rightstr = title.substring(0, title.length - 1);
document.title = laststr + rightstr;
}
}
//setInterval(code, delay);这里code参数将字符串解析为代码。而普通的alert("a")都是解析为字符串。
Intervas = setInterval(srcroll, 500);
}
</script>
</head>
<body>
<input type="button" id="left" onclick="setIntervas('left')" />
<input type="button" id="right" onclick="setIntervas('right')" />
</body>
</html>
(2)常见的属性
(2.1)location 属性:herf 用来设置当前窗口的url,可以跳转到指定页面;方法:reload()重新载入,刷新页面。
(2.2)event属性:非常重要的属性,用来获取发生事件时的信息,事件不局限于window对象,所有元素的事件都可以通过event属性来取得相关信息、
altkey,ctrlkey,shiftkey属性,bool类型,表示事件发生的时候改键是否被按下;
clientX,clientY获取当事件发生时,鼠标在window窗口的坐标;
srceenX,srceenY事件发生时候,鼠标在屏幕的坐标;
returnValue属性,bool类型,如果设置为false就会取消默认事件的继续处理(在事件处理之前,进行判断,false就不执行事件,true继续执行。如页面离开之前,给个判断是否离开/或者跳转链接之前给个判断是否继续访问)
srcElement:获取事件源的对象
keyCode:发生事件时的按键值
button:发生事件时鼠标的按键值(左1,右2,同时为3)
(2.3) screen对象 获取屏幕分辨率属性。
(2.4)cilpboardData(粘贴板)对象 :当复制的时候,oncopy(粘贴,剪贴对应on+单词。)方法被触发。return false就是禁止复制。对粘贴板的操作 clearData("Text"),getData("Text"),setData("Text",val)。示例:直接复制别人的博文,文章结尾会附加转载来源。思路:复制博文到粘贴板-(过一小会比如0.1秒去修改)在粘贴板修改博文。直接在元素中.是找不到事件的,要手动输入oncopy。
(2.5)history对象:操作历史记录。back();forward();go(-1);go(1)。分别为后退/前进...
(2.6)document对象。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>window对象</title>
<script type="text/javascript">
//window.location.href
//跳转到指定的链接,常用的页面跳转方法
function gourl() {
location.href = "实现标题走马灯的效果.htm";
}
//window.event
//事件触发的时候,是否点击了alt键
//是就弹出消息框“alt被点击了”,否就弹出消息框“普通点击”
function downevent() {
if (event.altKey) {
alert("alt被点击了");
}
else {
alert("普通点击");
}
}
//oncopy事件:事件结束后延迟0.1,往粘贴板中的内容最后添加当前url。
function oncopymgr() {
setTimeout("var s = clipboardData.getData('Text');s = s+location.href;clipboardData.setData('Text',s);", 100);
}
//window.event.returnValue
//事件执行之前进行判断是否继续执行事件
</script>
</head>
<!-- 思维有错,这是是界面上点击复制,然后提示不能复制,不允许复制。而不是直接禁用掉右键的复制。-->
<body oncopy="oncopymgr()">
<!-- window.event.altKey示例-->
<input id="downevent" type="button" onclick="downevent()" value="点击事件" />
<!-- window.location.href示例-->
<input id="gourl" type="button" onclick="gourl()" value="跳转到指定的页面" />
<!-- window.event.returnValue-->
<!--注意属性名称,还有事件引用函数是不加;的和js脚本的格式一样,false是bool类型,不是string类型,不能加引号,和C#一样 -->
<!-- window.event.returnValue示例1 禁止访问链接-->
<a href="实现标题走马灯的效果.htm" onclick="alert('禁止访问!');window.event.returnValue=false;">百度</a>
<!-- window.event.returnValue示例2 禁止表单提交 可以用来客户端表单校验-->
<form action="Dom事件.htm">
<input type="submit" onclick="alert('禁止提交表单,数据有问题!');window.event.returnValue=false;" />
<!-- 粘贴板数据操作:clipboardData,天啊,别粗心大意,浪费青春啊。-->
这里是一些文章。
<input type="button" value="分享给好友" onclick="clipboardData.setData('Text',window.location.href);alert('已经把当前地址放在粘贴板中');" />
<!--禁止粘贴事件 -->
<input type="text" onpaste="alert('为了你的充值安全,请手动输入!');return false;" />
</form>
</body>
</html>