it-swarm-vi.tech

Tôi có thể tắt tự động hoàn thành không?

Gần đây tôi đã nâng cấp lên WordPress 3.0 và gặp nhiều vấn đề với chức năng tự động hoàn tất khi chỉnh sửa bài đăng qua 'chỉnh sửa nhanh' (ví dụ: /wp-admin/edit.php) - ví dụ: chỉnh sửa thẻ. Hộp tự động hoàn thành thường che khuất hộp văn bản mà tôi đang cố nhập văn bản vào và đôi khi bị 'bỏ lại phía sau' khi nút 'cập nhật' được nhấp.

Có cách nào để vô hiệu hóa tự động hoàn thành?

CẬP NHẬT

Để làm rõ, đây là một tính năngWordpresstự động hoàn thành, không phải làdựa trên trình duyệtone.

CẬP NHẬT 2

Có vẻ như tôi cần xóa đối số 'đề xuất' thành "load-scripts.php", được tham chiếu ở cuối mỗi trang quản trị như vậy:

<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>

Điều đó dường như được tạo ra bởi:

do_action('admin_print_footer_scripts');

nhưng tôi mất dấu vết mã tại thời điểm đó - bất cứ ai?

3
Bobby Jack

Tôi có một giải pháp tôi đã thử nghiệm, và nó hoạt động.

Tự động hoàn tất cho các thẻ hiện được thực hiện thông qua yêu cầu ajax đến tệp admin-ajax.php. Giải pháp tôi muốn đề xuất là chặn việc xử lý yêu cầu để nó không trả về bất kỳ kết quả nào. Tôi sẽ làm :

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');

Hàm trước xác minh:

  1. nếu đó là một yêu cầu ajax
  2. nếu tham số hành động là 'ajax-tag-search'
  3. nếu url của người giới thiệu là trang '/wp-admin/edit.php'

Nếu 3 điều kiện này được đáp ứng, sẽ không có kết quả nào được trả về và các đề xuất thẻ không được hiển thị.

Nếu bạn muốn xóa tự động hoàn tất này khỏi tất cả các trang, không chỉ 'wp-admin/edit.php', bạn có thể làm:

function no_tag_suggest() {
    if( DOING_AJAX == true && $_GET['action'] == 'ajax-tag-search' ) ) {
        die;
    }
}    
add_action('admin_init', 'no_tag_suggest');

Tôi sẽ đề nghị bạn xem mã của 'admin-ajax.php' để xem tất cả các tham số 'hành động' ở đó, do đó tất cả các yêu cầu ajax bạn có thể giết bằng các phương thức tương tự.

Tôi hy vọng lời giải thích của tôi đã rõ ràng. Đừng ngần ngại hỏi tôi nếu bạn muốn biết thêm chi tiết hoặc có bất kỳ câu hỏi.

Tiền thưởng cho tôi? :)

5
sorich87

Bạn có thể vô hiệu hóa nó trong trình duyệt của mình hoặc định tuyến xung quanh nguồn WP và tát thuộc tính autocomplete này trong hộp vi phạm:

<input autocomplete="off" />

Ngoài ra, bạn có thể sử dụng greasemonkey để sửa đổi trang để vô hiệu hóa tự động hoàn thành theo cách được đề cập ở trên.

1
Ben Everard

Bạn có thể sử dụng plugin này:

Thẻ chưa hoàn thành

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

Nó dành cho những người có số lượng điều khoản thẻ rất lớn, nhưng nó thực hiện chính xác những gì bạn muốn

0
Tom J Nowell

Bạn có thể vô hiệu hóa phản hồi từ máy chủ, như sorich87 đã giải thích hoặc bạn có thể thử cách vô hiệu hóa (phức tạp hơn) javascript để bắt đầu yêu cầu AJAX. Nếu bạn chỉ xóa thư viện suggest , nhiềuđịa điểm đó gọi hàm suggest có thể sẽ thất bại, vì vậy bạn nên thay thế nó bằng một hàm còn sơ khai không có gì.

0
Jan Fabry

Bạn có thể chuyển attr trong phần tử html.

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

Tự động hoàn thànhmột chức năng trình duyệt nhưng nó là một tham số trường Nhập liệu.

Nếu một trang web phải đáp ứng các tiêu chuẩn tuân thủ PCI, nó sẽ FAIL PCI nếu tự động hoàn tất được bật trong các trường đầu vào - bất kể trình duyệt của bất kỳ ai.

0
Christopher Eller