js调用方法(4种)
| 语句 | 执行 |
|---|---|
<script>alert(1)</script> |
script标签中执行 –标签外(如body中) 推荐 (不用点击,直接触发) |
<script src="x.js"></script> |
调用执行 –标签外 |
<a href="javascript:alert(1)"></a> |
伪协议触发(javascript不可少)–标签内 推荐 |
<p onclick="alert(1)"></p> |
事件触发 –标签内 |
js事件
| 事件 | 说明 |
|---|---|
| Windows事件 | 针对windows对象触发的事件,应用到body标签 |
| onafterprint | 打印之后触发的事件 |
| onbeforeprint | 打印之前触发的事件 |
| onerror | 发生错误(文件加载错误等)时触发的事件,常跟不存在的图片,用来执行js触发xss漏洞 |
| onload | 页面加载完成后立即发生 |
| onresize | 窗口大小被改变时触发的事件 |
| onunload | 页面下载或刷新网页时触发事件 |
| Form事件 | 由HTML表单内的动作触发的事件,应用到几乎所有的HTML元素,最常用在Form元素 |
| onblur | 当元素失去焦点(鼠标移出等)时触发的事件 |
| onchange | 输入框的值发生变化或者下拉列表框选项触发的事件 |
| onfocus | 当元素获得焦点时触发的事件 |
| onformchange | 当表单被改变时触发的事件 |
| oninput | 当元素获得用户输入时触发的事件 |
| onselect | 元素中文本被选中后触发的事件 |
| onsubmit | 提交表单时触发的事件 |
| Keyboard事件 | |
| onkeydown | 用户按下按键时触发的事件 |
| onkeypress | 用户敲击按钮时触发的事件 |
| onkeyup | 用户释放按键时触发的事件 |
| Mouse事件 | 由鼠标或类似用户动作触发的事件 |
| onclick | 元素上发生鼠标点击时触发的事件 |
| ondblclick | 元素上发生鼠标双击时触发的事件 |
| onmousedown | 当元素上按下鼠标按钮时触发的事件 |
| onmousemove | 当鼠标指针移动到元素上时触发的事件 |
| onmouseover | 当鼠标指针移动到元素上时触发的事件 |
| onmouseout | 当鼠标指针移出元素时触发的事件 |
| onmouseup | 当在元素上释放鼠标按钮时触发的事件 |
更多事件访问文档:https://www.w3school.com.cn/tags/html_ref_eventattributes.asp
DOM操作
| 使用 | 命令 |
|---|---|
| 通过ID获取 | document.getElementById() |
| 通过标签名称获取(结果有多个,以数组形式存放) | docunment.getElementsByTagName() |
| 通过对象名称获取(结果有多个,以数组形式存放) | documemt.getElementsByClassName() |
| document事件操作 | |
|---|---|
| 动态添加事件 | document.getElementById(“x”).addEventListener(“click”,function(){ }) 给img添加点击事件 document.getElementById(“x”).addEventListener(“click”,function(){ alert(“这是图片”) }) |
| 创建标签 | document.createElement(“img”) #创建img标签 创建img标签,并添加属性 img = document.createElement(“img”) img.src = “x.jpg” img.style.width = “100px” … 可以创建script标签实现跨站脚本攻击 ![]() |
| 应用 | document.body.appendChild() 执行添加/创建(否则不显示) |
