event

前端禁用f12,右键菜单等

空扰寡人 提交于 2020-02-26 22:50:06
说明: 如果使用vue或者是react项目的话,将代码写在生命周期函数中,组件加载完毕的生命周期中,如果是使用的原生的就写在script标签中 禁用f12 document . onkeydown = function ( ) { if ( window . event && window . event . keyCode == 123 ) { alert ( "F12被禁用" ) ; event . keyCode = 0 ; event . returnValue = false ; } if ( window . event && window . event . keyCode == 13 ) { window . event . keyCode = 505 ; } if ( window . event && window . event . keyCode == 8 ) { alert ( str + "\n请使用Del键进行字符的删除操作!" ) ; window . event . returnValue = false ; } } 屏蔽右键菜单 document . oncontextmenu = function ( event ) { if ( window . event ) { event = window . event ; } try { var

鼠标事件:拖动文档元素

房东的猫 提交于 2020-02-26 15:16:18
鼠标事件对象几个重要的属性: clientX: 窗口坐标,加上垂直滚动可以得到文档纵坐标 clientY: 窗口坐标,加上水平滚动可以得到文档横坐标 altKey: boolean值,点击时是否按下了alt键 ctrlKey: boolean值,点击时是否按下了ctrl键 metaKey: boolean值,点击时是否按下了meta键 shiftKey: boolean值,点击时是否按下了shift键 button 点击时按下的是鼠标的哪个键(不同浏览器的赋值不同,不易使用) 收录拖动文档元素的js: /** * 拖动绝对定位的HTML元素 * 该方法依赖之前收集的getScrollOffset方法 */ function drag( elementToDrag, event ){ // 初始化鼠标位置,转换为文档坐标 var scroll = getScrollOffset(), startX = event.clientX + scroll.x, startY = event.clientY + scroll,y, // 这里假设了elementToDrag的offsetParent是文档的body元素,似乎会有问题 origX = elementToDrag.offsetLeft, origY = elementToDrag.offsetTop, deltaX =

React学习:form表单

六月ゝ 毕业季﹏ 提交于 2020-02-26 11:00:08
在React中,form表单元素和其他的DOM不一样,因为表单元素通常会保留一个内部的state状态。 1.受控组件 class NameForm extends React.Component { constructor(props) { super(props); this.state = {value: ''}; this.handleChange = this.handleChange.bind(this); this.handleSubmit = this.handleSubmit.bind(this); } handleChange(event) { this.setState({value: event.target.value}); } handleSubmit(event) { alert('提交的名字: ' + this.state.value); event.preventDefault(); } render() { return ( <form onSubmit={this.handleSubmit}> <label> 名字: <input type="text" value={this.state.value} onChange={this.handleChange} /> </label> <input type="submit" value="提交"

吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:Listener介绍

余生长醉 提交于 2020-02-25 22:21:01
<%-- 网站: <a href="http://www.crazyit.org">疯狂Java联盟</a> author yeeku.H.lee kongyeeku@163.com version 1.0 Copyright (C), 2001-2016, yeeku.H.Lee This program is protected by copyright laws. Program Name: Date: --%> <%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %> <%@ page import="java.sql.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> 测试ServletContextListener </title> <meta name="website" content="http://www.crazyit.org" /> </head

[C++] epoll server实例

时光毁灭记忆、已成空白 提交于 2020-02-25 19:56:43
// IO多路复用,事件驱动+非阻塞,实现一个线程完成对多个fd的监控和响应,提升CPU利用率 // epoll优点: // 1.select需要每次调用select时拷贝fd,epoll_ctl拷贝一次,epoll_wait就不需要重复拷贝 // 2.不需要像select遍历fd做检查,就绪的会被加入就绪list,遍历list完成处理 // 3.没有最大连接限制,与最大文件数目相关:cat /proc/sys/fs/file-max,与内存相关 // epoll实现相关: // 1.epoll_ctl,将fd的event使用RB tree保存,读写O(logN); // 2.一旦有event,内核负责添加到rdlist链表 // 3.epoll_wait检查链表看是否有事件,并进行处理 // Ref // https://www.cnblogs.com/lojunren/p/3856290.html // http://blog.chinaunix.net/uid-28541347-id-4273856.html // Question: // 是否需要每个event一个实例? #include <cstdlib> /* exit() */ #include <cstdio> /* perror(): 打印信息+发生错误的原因,可用于定位。 */ #include

修改flex应用默认的装载界面

柔情痞子 提交于 2020-02-25 14:20:40
flex应用看久了,一个默认的装载loading界面就会导致审美疲劳,下面提供一种方法,让你可以自定义你的装载界面。 1,在src目录下建立自定义类,两个文件代码如下: Preloader.as package com.preloader { import mx.preloaders.DownloadProgressBar; import flash.display.Sprite; import flash.events.ProgressEvent; import flash.events.Event; import mx.events.FlexEvent; import mx.managers.SystemManager; import mx.managers.BrowserManager; import flash.utils.Timer; import flash.events.TimerEvent; public class Preloader extends DownloadProgressBar { public var m_Progress: ProgressBar; private var m_Timer: Timer; public function Preloader(): void{ super(); var browser: BrowserManager;

addEventListener()、attachEvent()和removeEventListener()、detachEvent()的差别?

烂漫一生 提交于 2020-02-25 11:56:13
addEventListener()和attachEvent()的差别? addEventListener:在HTML元素上绑定事件,FF、chrome、opera、safari及IE9浏览器以上的支持 attachEvent:在HTML元素上绑定事件。仅仅有IE浏览器支持 attachEvent语法: element.attachEvent(event, function) event:事件名。注意要使用“on”前缀,如 onclick function:指定事件触发时运行的函数 var outerDiv = document.getElementById("outerDiv"); outerDiv.attachEvent("onclick", outerFn); addEventListener语法: element.addEventListener(event, function, useCapture) event:事件名,注意不使用“on”前缀。如 click function:指定事件触发时运行的函数 useCapture:指定事件是否在捕获或冒泡阶段运行。 true:在捕获阶段运行 false:在冒泡阶段进行。默认值为false; var outerDiv = document.getElementById("outerDiv"); outerDiv

EventBus源码解析(对应3.2.0版本)

亡梦爱人 提交于 2020-02-24 20:19:35
1. 注册EventBus: register(Object subscriber) 获取该subscriber的SubscribeMethod列表; List<SubscriberMethod> subscriberMethods 执行 subscriberMethodFinder.findSubscriberMethods(subscriberClass) 获取 List<SubscriberMethod> ; 执行 findUsingReflectionInSingleClass() 反射获取subscriber中所有methods,Subscribe注解的Method会记录在 SubscriberMethodFinder.FindState.subscriberMethods() ; 遍历SubscribeMethod列表执行 subscribe(subscriber, subscriberMethod) ; 更新 Map<Class<?>, CopyOnWriteArrayList<Subscription>> subscriptionsByEventType ,该字段表示:某个Event对应哪些@Subscribe注解的方法; 更新 Map<Object, List<Class<?>>> typesBySubscriber ,该字段表示

vue组件数据通信总结全面

醉酒当歌 提交于 2020-02-24 18:52:39
背景: 初始Vue.js,了解组件时Vue的主要构成部分,但组件内部的作用域是相对独立的部分,组件之间的关系一般如下图: 组件A与组件B、C之间是父子组件,组件B、C之间是兄弟组件,而组件A、D之间是隔代的关系 那么对于这些不同的关系,本文主要分享了他们之间可以采用的几种数据通信方式。例如Props、$emit/$on、Vuex等。可以根据使用场景选择适合的使用方式。 一、Prop / $emit 1、Prop是你可以在组件上注册的一些自定义特性。当一个值传递给一个Prop特性的时候,它就变成了那个组件实例的一个属性。父组件向子组件传值,通过绑定属性来向子组件传入数据,子组件通过Props属性获取对应数据 //父组件 <template> <div> <child :title="title"></child> </div> </template> <script> import Child from './child.vue' export defalut{ name:'parent', data(){ return{ title:'我是父组件给的' } }, components:{ Child } } </script> //子组件 <template> <div> <p>{{title}}</p> </div> </template> <script> export

DOJO 八 event dojo/on

时光怂恿深爱的人放手 提交于 2020-02-24 08:51:42
官网教程: Events with Dojo 在元素上绑定events,需要引用包dojo/on,通过on方法来实现。 < button id = "myButton" >Click me!</ button > < div id = "myDiv" >Hover over me!</ div > require([ "dojo/on" , "dojo/dom" , "dojo/dom-style" , "dojo/mouse" , "dojo/domReady!" ], function (on, dom, domStyle, mouse) { var myButton = dom.byId( "myButton" ), myDiv = dom.byId( "myDiv" ); on(myButton, "click" , function (evt){ domStyle.set(myDiv, "backgroundColor" , "blue" ); }); on(myDiv, mouse.enter, function (evt){ domStyle.set(myDiv, "backgroundColor" , "red" ); }); var handler = on(myDiv, mouse.leave, function (evt){ domStyle.set