在我的主页上,我有一个带有搜索文本框的表单。如果您单击输入并在仍然加载页面时开始输入,则会有东西窃取焦点,因此您必须在输入文本框中单击返回。
有没有办法防止这种情况发生?我是否需要找到窃取焦点的内容?
答案 0 :(得分:0)
听起来你的一个脚本正在设置一些专注于加载的东西。
在</body>
之前将其放在HTML的底部。您的控制台将显示正在获得关注的项目的HTML。
<script>
$(window).load(function() { // NB not document ready
console.log($(':focus')[0]);
// alert($(':focus')[0]); // if you don't know what console is
});
</script>
希望元素中有一个ID可以搜索你的脚本,或者有足够的线索让你找到被告知关注加载的内容。然后你可以删除/改变那一行。
<强>附录强>
事实证明这是罪魁祸首
$('#f input#livesearch').clearableTextField();
只有在用户使用该字段时才会需要可清除功能,所以让它使其成为上下文,即只有在给定焦点时,才能使该功能可用。这应该可以阻止顽皮的插件窃取焦点。
$('#f input#livesearch').on('focus', function(){
$(this).clearableTextField();
});
通常最好在上下文中编写 - 你会发现在onload上设置了几十个绑定和“实时”事件的页面,但很少使用它们。如果它是在用户做某事之前不需要发生的事情,或者直到你可以告诉用户要做某事,那就这样写吧。