2012-01-10 31 views
6

Tôi có một liên kết (thẻ 'a'). Tôi đang cố gắng nhấp vào nó bằng javascript. Trong khi .click(); làm tốt trong FF en IE nó không thành công trong Chrome. (chrome cho biết đối tượng không có phương thức nhấp chuột).Mô phỏng nhấp chuột vào thẻ 'a' trong Chrome

kích hoạt 'onclick' hoặc chuyển hướng đến 'href' sẽ không thực hiện công việc.

bất kỳ ý tưởng nào về cách thực hiện việc này? Tốt hơn là tôi sẽ không nhận được toàn bộ Thư viện chỉ vì điều này.

Trả lời

1
var event = document.createEvent("MouseEvents"); 
      event.initMouseEvent("click", true, true, window, 
       0, 0, 0, 0, 0, 
       false, false, false, false, 
       0, null); 
      element.dispatchEvent(event); 

nên làm việc trong chrome

+0

nó không, nó chỉ là IE –

+0

@ Dr.Molle - sai lầm của tôi, câu trả lời chỉnh sửa. – amal

1

Tôi hiểu bạn không muốn thư viện nhưng dấu chân của người này khá nhỏ, bạn có thể sử dụng event.simulate cho việc này. nó là một PrototypeJS lib, nhưng tôi chắc chắn rằng việc chuyển đổi sẽ rất dễ dàng.

Để sử dụng nó trong nguyên mẫu bạn sẽ gọi:

$('my_anchor').simulate('click'); 

Nó hoạt động qua trình duyệt không có vấn đề.

+0

Cảm ơn đã nhắc nhở để chỉ sử dụng phương pháp của thư viện. .. trong trường hợp của mootools, .fireEvent ('click') là một trong những quyền. – joelhardi

-1

Nếu bạn biết jQuery chỉ cần tạo một chức năng ẩn danh và nghe cho sự kiện onclick. Bạn sẽ cần chỉ định một lớp hoặc id cho bạn href,

ví dụ: HTML:

<a href='' id='clickMe'>Click here</a> 

jQuery:

$(function() { 
    $("#clickMe").click(function() { 
    ... the action you wish to perform ... 
    }) 
}) 

Hope this helps. Dave

+0

điều này chỉ nghe cho một sự kiện nhấp chuột, op muốn 'mô phỏng' một lần nhấp. – epoch

+0

Điểm hợp lệ, tôi nên đọc kỹ thông báo op hơn! – detheridge02

0

tôi sử dụng này:

function dispatchEvent(el, e) 
{ 
    // console.log("dispatching"); 

    if ("createEvent" in document) 
    { 
     var evt = document.createEvent("HTMLEvents"); 
     evt.initEvent(e, false, true); 
     el.dispatchEvent(evt); 
    } 
    else 
    { 
     el.fireEvent("on" + e); 
    } 

} 

dispatchEvent(document.getElementById("mylink"), "click"); 
Các vấn đề liên quan