简而言之,我的问题是我想Esc通过一行javascript 来执行按钮的效果,例如执行效果Esc点击按钮.我该怎么做 ?
[我有一个jQuery框中的上传,所以我希望当上传完成后,将自动执行转义功能关闭框]
感谢Perfection kills,我们可以使用以下JavaScript来检测事件支持:
function hasEvent(ev) {
var elem = document.createElement('a'),
type = 'on' + ev,
supported = elem[type] !== undefined;
if (!supported) {
elem.setAttribute(type, 'return;');
supported = typeof elem[type] === 'function';
}
elem = null;
return supported;
}
Run Code Online (Sandbox Code Playgroud)
这只适用于我需要的时间:检测mouseenter支持; hasEvent('mouseenter')将在Chrome,Firefox等中返回false,应该如此.
但现在我正在尝试"修复"不支持focusin和focusout事件的浏览器.根据PPK,这基本上只是Firefox.不幸的是,Chrome和Safari被列为"不完整"支持,原因如下:
Safari和Chrome仅使用addEventListener触发这些事件; 不是传统的注册.
一般来说,这很好; addEventListener反正我只会用.但是,它确实意味着检测支持通过elem.onfocusin !== undefined将不起作用.我测试了它,这是真的:
<p>Do I support <a href="#">focusin</a>?</p>
<script>
var elem = document.getElementsByTagName('p')[0];
// hasEvent method defined here
function listener() { …Run Code Online (Sandbox Code Playgroud) javascript javascript-events focusin browser-feature-detection
在雅虎天气页面上,有一个链接标记为C将温度单位从更改Fahrenheit为Celsius.

我正在调试这个动作,并了解在将F转换为C的幕后执行的javascript是什么.调试这些事情的方式是什么?
链接:http://weather.yahoo.com/?w = 2295401
我试图追溯哪个函数挂钩到click事件中.someclass.我打开Chrome Dev Tool并输入
getEventListeners(document.querySelector('.someclass'));
结果就是这样
Object {}
我无法单击并打开它以查找对象的名称或处理单击事件的源代码.
有没有办法找出来?
更新1:
跟随Krasimir的建议如下.可能只有两个事件:mousemove或mouseover.那么我该如何找到处理该事件的确切函数canvas.overlay呢?有太多可以深入研究.

我有许多异步AJAX调用,其结果将被处理.处理发生的顺序无关紧要,但结果需要一次处理一个.所以我想简单地做我的AJAX调用,他们只是把他们的结果放在一个队列中.然后应该在单个线程上处理该队列.这样,结果可以尽快一次处理一次.
最好的方法是什么?我正在使用jQuery,很高兴利用它为此提供的任何设施.
我正在开发iOS节拍器网络应用程序.由于移动safari一次只能播放一个声音,我正在尝试创建一个"音频精灵" - 我可以使用单个音轨的不同片段来生成不同的声音.我有1秒的剪辑,上面有2个半秒的声音.
<audio id="sample" src="sounds.mp3"></audio>
<a href="javascript:play1();">Play1</a>
<a href="javascript:play2();">Play2</a>
<a href="javascript:pauseAudio();">Pause</a>
<script>
var audio = document.getElementById('click');
function play1(){
audio.currentTime = 0;
audio.play();
// This is the problem area
audio.addEventListener('timeupdate', function (){
if (currentTime >= 0.5) {
audio.pause();
}
}, false);
}
function play2(){
audio.currentTime = 0.5;
audio.play();
}
function pause(){
audio.pause();
}
</script>
Run Code Online (Sandbox Code Playgroud)
在JSFiddle上看到它.
正如您所看到的,我试图使用'timeupdate'事件(jPlayer示例)但无济于事.
我见过Remy Sharp关于音频精灵的帖子,但是(A)我无法让它为我工作,而且(B)我宁愿远离库依赖.
有任何想法吗?在此先感谢您的帮助!
更新
我现在使用它setInterval:
function play1(){
audio.currentTime = 0;
audio.play();
int = setInterval(function() …Run Code Online (Sandbox Code Playgroud) 在Windows上使用Internet Explorer我有一个onkeypress事件检测文本框中输入的文本.但是,当输入中文字符时,此事件不会触发.有没有人遇到这个或有解决这个问题的建议?
我正在动态创建一些<div>元素,然后innerHTML用文本填充它们的属性.我正在尝试设置这样的onclick事件处理程序:
myDiv.onclick = function() { alert("Hello!") };
Run Code Online (Sandbox Code Playgroud)
我能做到的.我想要做的是能够在新定义的onclick函数中访问值/ innerHTML(Javascript和DOM的新内容,所以我不确定我正在寻找的是什么术语).我如何访问myDiv为其onclick属性定义的函数内的数据?myDiv将是一个简单的事情:
<div>StackOverflow</div>
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
Onkeydown,我运行以下JavaScript:
function ThisOnKeyDown(el) {
if (el.title == 'textonly') {
!(/^[A-Za-zÑñ-\s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ-\s]/ig, '') : null;
}
if (el.title == 'numbersonly') {
!(/^[0-9]*$/i).test(el.value) ? el.value = el.value.replace(/[^0-9]/ig, '') : null;
}
if (el.title == 'textandnumbers') {
!(/^[A-Za-zÑñ0-9-\s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ0-9-\s]/ig, '') : null;
}
}
Run Code Online (Sandbox Code Playgroud)
这三个标题属性之一被赋予页面上的各种输入字段.只要无效字符被正确删除,代码就会起作用,但直到输入下一个字符为止.我想找到一种简单地拒绝无效输入的方法.我感谢您的帮助!
编辑:我全局创建事件.我是这样做的:
function Globalization() {
var inputs = document.getElementsByTagName('input');
for (i = 0; i < inputs.length; i++) {
inputs[i].onfocus = createEventHandler(
ThisOnFocus, inputs[i]);
inputs[i].onblur = createEventHandler(
ThisOnBlur, inputs[i]);
inputs[i].onkeydown = createEventHandler( …Run Code Online (Sandbox Code Playgroud) 当用户将文件拖到窗口上时,我想在视口上叠加div.
但是,我遇到了事件传播的问题.当我设置的叠加display: block它似乎火了一个dragleave事件,然后又dragenter另,然后dragleave再次,所以它总是在后dragleave状态.当然我打电话e.stopPropagation()和e.preventDefault()事件对象,但它似乎没有什么区别.
在窗口上拖动某些内容时,console.log()输出:
dragenter
dragenter
dragleave
dragenter
dragleave
Run Code Online (Sandbox Code Playgroud)
css.默认#overlay设置为display: none,但会显示是否body有dragenter类:
body {
position: absolute;
height: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: 0;
padding: 0;
}
#overlay {
position: absolute;
height: auto;
width: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: url(bg.png) repeat-x top right, url(bg.png) repeat-x bottom left, url(bg.png) repeat-y top right, url(bg.p …Run Code Online (Sandbox Code Playgroud)