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标签实现跨站脚本攻击
image-20210809144718521
应用 document.body.appendChild() 执行添加/创建(否则不显示)