2009-08-07 77 views
1

假設我加載包含以下錨網頁:如何模擬在GreaseMonkey中使用javascript的特定文本點擊錨點?

<a class="someClass" href="#" onClick="gotoPage('http://somepage.org')">Link</a> 

我要的是:一旦加載頁面時,我要生成的onClick對於這種定位的具有文字爲「鏈接」。

請注意,錨點不包含任何與其關聯的ID或名稱。因此document.getelementbyid或document.getelementbyname將不起作用。

回答

3

這是什麼people seemto do能夠在Firefox中一般觸發一個click事件。他們延長HTMLAnchorElement原型與click()功能,像這樣:

HTMLAnchorElement.prototype.click = function() { 
    var evt = this.ownerDocument.createEvent('MouseEvents'); 
    evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null); 
    this.dispatchEvent(evt); 
} 

MDC for initMouseEvent()

如果你有jQuery,你也可以查看trigger()

1

的從https://developer.mozilla.org/en/DOM/event.initMouseEvent工作溶液(其中託默勒格鏈接)非常適合我,它不需要原型或jQuery。

function simulateClick() { 
    var evt = document.createEvent("MouseEvents"); 
    evt.initMouseEvent("click", true, true, window, 
    0, 0, 0, 0, 0, false, false, false, false, 0, null); 
    var cb = document.getElementById("checkbox"); 
    var canceled = !cb.dispatchEvent(evt); 
    if(canceled) { 
    // A handler called preventDefault 
    alert("canceled"); 
    } else { 
    // None of the handlers called preventDefault 
    alert("not canceled"); 
    } 
} 
相關問題