JavaScript focus()函数不使用';t在页面加载时聚焦文本区域
我有以下代码JavaScript focus()函数不使用';t在页面加载时聚焦文本区域,javascript,html,Javascript,Html,我有以下代码 焦点问题 // 下面是上述代码的JSFIDLE演示: 为什么页面加载时焦点不在文本区域框上?单击链接时,焦点确实转到textarea框,但我也希望在页面加载时焦点转到textarea框。为什么没有发生 注意:我知道textarea的HTML5自动聚焦属性。但是这个问题是关于为什么上面的JavaScript代码没有执行我想要执行的操作。您正在从onload处理程序内部执行.focus()语句,该处理程序本身在onload处理程序中定义。不会调用此内部onload,因为在定义
焦点问题
//
下面是上述代码的JSFIDLE演示:
为什么页面加载时焦点不在文本区域框上?单击链接时,焦点确实转到textarea框,但我也希望在页面加载时焦点转到textarea框。为什么没有发生
注意:我知道textarea的HTML5自动聚焦属性。但是这个问题是关于为什么上面的JavaScript代码没有执行我想要执行的操作。您正在从
onload
处理程序内部执行.focus()
语句,该处理程序本身在onload
处理程序中定义。不会调用此内部onload
,因为在定义它时,onload
事件将发生。试试这个:
window.onload=function(){
var text = document.getElementById('text')
text.focus()
window.onhashchange = function() {
text.focus()
}
}
您的演示,已更新:执行此操作
<script type='text/javascript'>
window.onload=function(){
var text = document.getElementById('text')
text.focus();
window.onhashchange = function() {
text.focus();
}
}
</script>
window.onload=function(){
var text=document.getElementById('text')
text.focus();
window.onhashchange=函数(){
text.focus();
}
}
我认为它确实有效,@Sergio您有没有解释一下为什么添加输入文本字段可以解决这个问题?@Sergio我的问题不是针对JSFIDLE的。在这个问题中复制粘贴我的代码并将其粘贴到一个文件,比如foo.html,然后用Firefox打开它,同样的问题也会发生。是的,在@nnnn引起我的注意后,我明白了这一点。你有一个范围问题,我认为他的解释是你问题的答案(应该是公认的答案)。