JavaScript将焦点更改为正在重置的密码字段登录页面

时间:2019-06-26 作者:willfalcon

我有一个特殊的情况,我希望用户在标准WordPress登录页面上输入密码。我用一行javascript填写用户名:

document.getElementById(\'user_login\').value = \'username\';
默认情况下,焦点从用户名字段开始。我想让焦点从密码字段开始。。。

document.getElementById(\'user_pass\').focus();
但这不起作用。看起来它可能会先关注密码字段,然后再返回用户名字段。

知道为什么会发生这种情况以及如何解决吗?

(我不想只隐藏用户名字段,我需要实际管理员才能像往常一样登录。这个特殊的自动填充用户名只能访问网站的一小部分。我不想出于其他原因使用受密码保护的页面。)

1 个回复
最合适的回答,由SO网友:RiddleMeThis 整理而成

这听起来像是一个时间问题,在脚本运行之后可能已经有一些JS在运行了。

尝试将JS包装在$(窗口)中。load(),这将在加载其他页面资产后运行该函数,并应修复计时问题。

例如

$(window).load(function() {
    document.getElementById(\'user_pass\').focus();
});
Here is some info 关于$(文档)之间的差异。ready()vs$(窗口)。加载()。

相关推荐

Enqueuing javascript files

我试图将一个JS文件(位于/JS/example script.JS)排队,只是为了在页面加载时得到一个警报。有人能告诉我我做错了什么吗?在我的示例脚本中。js公司:jQuery(document).ready(function($) { alert(\"hi\"); }); 在我的函数文件中:function my_theme_scripts() { wp_enqueue_script( \'example-script\', get_template_di