我想编写一个点击输入框的脚本。
这是一个例子,其中 focus() 应该做到这一点,但事实并非如此!为什么?
代码.gs:
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('myFile');
}
myFile.html:
<input type="text" id="new" onchange="adding(this)"/>
<div id="data"></div>
<script>
document.getElementById('new').focus();
function adding(a){
document.getElementById('data').innerHTML += a.value;
a.value = '';
}
</script>
我也尝试过将 focus() 放入其自己的函数中,并拥有一个其 onload 调用该函数的 body 元素,但没有成功。
有效的是有一个按钮,其 onclick 调用该函数,因此 focus() 最终会变为事件状态。我可以使用其他事件来触发它吗?
我使用的是 Chromebook。这可能是问题所在吗?
最佳答案
这是 Caja 有意做出的安全决定。某些容易(在网络上)严重恶意滥用的函数,例如submit()和focus(),只能在用户启动的事件(例如单击按钮)的上下文中执行。
关于focus - 无法使用 HtmlService 简单地强制将焦点集中在独立 Google 应用程序中的文本输入上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15387457/