Javascript是什么? Js是一种轻量级网络脚本语言,用来向html页面添加交互行为。它是一种解释性语言即不需要预编译就能执行。
Javascript能做什么?①js可以讲动态的变量放入html页面。将js代码放入html代码中执行,如document.write(“<ht>”+name+”</h1>”) 就可以将name变量写入html页面中。②js可以监听事件。如当页面载入完成时或者用户进行鼠标或者键盘操作时,onload,onmousemove,onfocus等事件。③js可以读取且编辑html 的内容,document.getElementById(“nv”).innerHtml=”hello world”,即可改变id为nv组件的html代码。④js可用来验证数据合法性,前台验证(可以简单被绕过)。If(document.getElementById(“name”).length>20) return false; 验证文本长短。⑤js可用来检测访问者的浏览器,根据浏览器的不同来载入相应页面,常用于浏览器的兼容性。navigator.userAgent.toLowerCase().indexOf("firefox") 就检测是否是firefox浏览器。⑥js可用来创建cookie。document.cookie=name+"="+value+expires+"; path=/";
如何在html代码中嵌入js?①直接在html代码中<script type="text/javascript">alert(“hello world”);</script>。②调用外部的js文件。<script src=out/helloworld.js></scirpt>,甚至可以调用第三方站点上的js(安全问题)。
常用的js代码
1、 最简单的alert(“hello world”),常用来发送一则消息提醒用户。 2、 确认框,confirm(“确认要删除吗?”)3、 提示框,prompt(“文本”,”默认值”)4、 自定义js函数:<html><head><script type="text/javascript">function printHello(){ alert("hello world");}</script></head><body><input type="button" value="click" οnclick="printHello()"></body></html>5、页面事件,js可以监视浏览器事件Onclick事件,ondbclick(双击事件),onload(页面载入事件),onUnload(关闭页面事件),onfocus(获取焦点事件),onblur(失去焦点事件),onchange(改变事件),onsubmit(提交表单事件),onmouseover(鼠标进入组件事件),onmouseOut(鼠标离开组件事件),onerror(加载文档或者图像失败事件),onkeydown(某个键被按下事件)等。事件常被用在xss渗透中。6、 字符串处理函数。①字符串长度 name.length即返回name的长度。②indexOf()计算字符串中指定字符第一次出现的位置。③match()用来查找字符串中特定的字符。④replace()替换字符串的一些字符。常用来过滤用户输入的内容。⑤toLowerCase()、toUpperCase()将字符串转换为小、大写。⑥concat()连接两个字符串。⑦slice()提取字符串的片段。7、 Date函数。var now =new Date();即可新建一个时间对象。①now.getTime()获取从1970年到当前的毫秒数。②setFullYear()设置具体的日期。now.setFullYear(1990,1,1),即可把日期设置为1990年1月1日的当前时间。③toUTCString()将当前日期转化为字符串。Sat, 27 Oct 2012 02:49:24 GMT。④getDay()获取当前是一周中的第几天。类似有getDate, getMonth, getFullYear, getHours, getMinutes(), getSeconds。⑤parse()返回从1970年1月1日到指定日期的毫秒数。8、 Js Html DOM对象。①window:js中的顶层对象。Window表示浏览器窗口。每当<body>或者<frameset>标签出现时,window对象就被创建。其实前面的一些函数都是这个对象内部的函数,alert,其实全写是window.alert。open()用于打开一个新的浏览器窗口。浏览器窗口。②Navigator:包含客户端浏览器的相关信息,前面判断浏览器的类型就是用它。appCodeName:返回浏览器代码名;appMinorVersion返回浏览器次级版本;appName返回浏览器名称;appVersion返回浏览器平台和版本信息;userAgent返回user-agent头部的值。③Screen包含客户端显示屏的信息。④History包含浏览器访问历史。history.length返回浏览器历史记录的url数量;history.back()加载上一个url(和点击浏览器后退按钮效果一样);history.forward()加载下一个url;history.go()加载指定的url。⑤Location包含当前URL的信息。hash返回从#开始的url;host返回主机名;href完整的url;pathname当前url的路径部分;search返回从? 开始的url部分。Assign()加载指定的文档,reload()重新加载当前文档,replace()用新的文档替换当前文档。
有意思的例子
1、 记录键盘动作:document.οnkeypress=function(){window.status+=String.fromCharCode(window.event.keyCode);}该命令用于将用户在浏览器中的键盘动作保存在window.status中。在浏览器中运行该命令,随便在网页中输入写字符,然后运行命令:window.status,可以看到status中保存了刚才的键盘动作。
2、 IE获取剪切板内容(需要用户允许):<html><body><script>alert(window.clipboardData.getData("text")); </script></body></html>设置剪切板内容:window.clipboardData.setData("text","set by javascript");因为安全问题:firefox和chrome禁用clipboard。3、 利用JS进行location重定向,钓鱼网站。Location.href=4、 调用本地程序(IE)<html><body><script> var o=new ActiveXObject(‘WScript.shell’); o.run(‘cmd.exe’); </script> </body></html>5、 操作本地文件。<html><body><script>var fso = new ActiveXObject("Scripting.FileSystemObject");var file1 = fso.CreateTextFile("d:\yeetrack.com.txt",true);</script></body></html>//读取本地文件<html><body><script>if(typeof window.ActiveXObject != 'undefined'){ var content = "";try { var fso = new ActiveXObject("Scripting.FileSystemObject");var reader = fso.openTextFile("D:\yeetrack.com.txt", 1);while(!reader.AtEndofStream) { content += reader.readline();content += "n";}reader.close();alert(content);}catch (e) { alert("Internet Explore read local file error: n" + e);}}</script></body></html>