我可以禁用自动完成功能吗?

时间:2010-08-11 作者:Bobby Jack

我最近升级到WordPress 3.0,在通过“快速编辑”(例如/wp admin/edit.php)编辑帖子时,自动完成功能有很多问题,例如编辑标签。“自动完成”框通常会使我试图输入文本的文本框变得模糊,有时单击“更新”按钮后会被“甩在后面”。

有没有办法禁用自动完成功能?

UPDATE

澄清一下,这是一个自动完成功能,而不是基于浏览器的功能。

UPDATE 2

看起来我需要删除“load scripts.php”的“suggest”参数,该参数在每个管理页面的底部引用,如下所示:

<script type=\'text/javascript\'
  src=\'http://www.example.com/path/to/wordpress/wp-admin/load-scripts.php?c=1&amp;load=hoverIntent,common,jquery-color,suggest,inline-edit-post\'>
</script>
这似乎是由以下因素产生的:

do_action(\'admin_print_footer_scripts\');
但我在那一点上失去了代码线索-有人吗?

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

我有一个我测试过的解决方案,它是有效的。

标签的自动完成目前是通过向文件admin ajax发出ajax请求来完成的。php。我建议的解决方案是阻止对请求的处理,这样它就不会返回任何结果。我会这样做:

function no_tag_suggest() {
    if( DOING_AJAX == true && $_GET[\'action\'] == \'ajax-tag-search\' && $_SERVER[\'HTTP_REFERER\'] == admin_url( \'edit.php\' ) ) {
        die;
    }
}    
add_action(\'admin_init\', \'no_tag_suggest\');
上一个功能验证:

  1. 如果是ajax请求
  2. 如果操作参数是\'ajax-tag-search\'
  3. 如果引用者url是\'/wp admin/edit\'。php的页面
如果满足这三个条件,则不会返回任何结果,也不会显示标签建议。

如果要从所有页面中删除此自动完成,请不要使用“wp admin/edit”。仅限php,您可以执行以下操作:

function no_tag_suggest() {
    if( DOING_AJAX == true && $_GET[\'action\'] == \'ajax-tag-search\' ) ) {
        die;
    }
}    
add_action(\'admin_init\', \'no_tag_suggest\');
我建议你看看“管理ajax”的代码。php”来查看所有的“action”参数,因此所有的ajax请求都可以用类似的方法终止。

我希望我的解释清楚。如果你想了解更多细节或有任何问题,请尽管问我。

悬赏给我?:)

SO网友:Ben Everard

您可以在浏览器中禁用它,也可以在WP源周围路由并将其删除autocomplete 违规框中的属性:

<input autocomplete="off" />
或者,您可以使用greasemonkey修改页面,以上述方式禁用自动完成。

SO网友:Tom J Nowell

你可以使用这个插件:

Tag Uncomplete

http://wordpress.org/extend/plugins/tag-uncomplete/

它是为那些有大量标签术语的人设计的,但它确实满足了你的需要

SO网友:Jan Fabry

您可以禁用来自服务器的响应,as sorich87 has explained, 或者您可以尝试(更复杂的)禁用启动AJAX请求的javascript的方法。如果你只是移除the suggest library, 这个various places 那叫suggest 函数可能会失败,所以您应该用一个不做任何事情的存根函数来替换它。

SO网友:user57366

你可以通过attr 在html元素中。

$(\'#register_username\').attr(\'autocomplete\',\'off\');

SO网友:Christopher Eller

Autocomplete是一个浏览器功能,但它是一个输入字段参数。

如果一个网站必须符合PCI合规标准,那么如果在输入字段中启用了autocomplete,那么无论任何人的浏览器如何,它都将无法通过PCI。

结束

相关推荐