我知道这应该没那么难,但是我在Google上找不到答案。
我想执行一段JavaScript,将焦点从任何元素上清除,而无需提前知道焦点在哪个元素上。它必须在firefox 2以及更现代的浏览器上工作。
有什么好方法吗?
做你想做的事,用 document.activeElement.blur()
如果需要支持Firefox 2,也可以使用以下命令:
function onElementFocused(e)
{
if (e && e.target)
document.activeElement = e.target == document ? null : e.target;
}
if (document.addEventListener)
document.addEventListener("focus", onElementFocused, true);
.focus()
然后.blur()
您页面上的其他任意内容。由于只有一个元素可以具有焦点,因此将其转移到该元素,然后将其删除。
document.activeElement.blur();
在IE9上无法正常工作-如果活动元素是文档正文,则会模糊整个浏览器窗口。最好检查这种情况:
if (document.activeElement != document.body) document.activeElement.blur();
使用TypeScript时,此处提供的答案均不完全正确,因为您可能不知道所选元素的种类。
因此,这将是首选:
if (document.activeElement instanceof HTMLElement)
document.activeElement.blur();
此外,我不鼓励使用接受的答案中提供的解决方案,因为由此产生的模糊不属于官方规格的一部分,并且可能随时中断。
dummyElem.focus()其中dummyElem是一个隐藏对象(例如,具有负的zIndex)?
您可以调用window.focus();
但移动或失去焦点势必会干扰使用Tab键浏览页面的任何人。
您可以收听键码13,如果按下Tab键,则放弃效果。
使用jQuery,它的公正性是: $(this).blur();
本文地址:http://javascript.askforanswer.com/ninruheqingchujavascriptdezhongdian.html
文章标签:focus , javascript
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
文章标签:focus , javascript
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
评论已关闭!