我有一个特殊的情况,我希望用户在标准WordPress登录页面上输入密码。我用一行javascript填写用户名:
document.getElementById(\'user_login\').value = \'username\';
默认情况下,焦点从用户名字段开始。我想让焦点从密码字段开始。。。
document.getElementById(\'user_pass\').focus();
但这不起作用。看起来它可能会先关注密码字段,然后再返回用户名字段。
知道为什么会发生这种情况以及如何解决吗?
(我不想只隐藏用户名字段,我需要实际管理员才能像往常一样登录。这个特殊的自动填充用户名只能访问网站的一小部分。我不想出于其他原因使用受密码保护的页面。)
最合适的回答,由SO网友:RiddleMeThis 整理而成
这听起来像是一个时间问题,在脚本运行之后可能已经有一些JS在运行了。
尝试将JS包装在$(窗口)中。load(),这将在加载其他页面资产后运行该函数,并应修复计时问题。
例如
$(window).load(function() {
document.getElementById(\'user_pass\').focus();
});
Here is some info 关于$(文档)之间的差异。ready()vs$(窗口)。加载()。