我有一個鏈接('a'標籤)。 我正在嘗試使用javascript單擊它。 雖然.click();在FF en IE中表現不錯,但在Chrome中失敗。 (鉻表示該對象沒有點擊方法)。模擬點擊Chrome中的'a'標籤
觸發'onclick'或重定向到'href'不會完成這項工作。
有關如何做到這一點的任何想法? 最好我不會爲此只得到整個圖書館。
我有一個鏈接('a'標籤)。 我正在嘗試使用javascript單擊它。 雖然.click();在FF en IE中表現不錯,但在Chrome中失敗。 (鉻表示該對象沒有點擊方法)。模擬點擊Chrome中的'a'標籤
觸發'onclick'或重定向到'href'不會完成這項工作。
有關如何做到這一點的任何想法? 最好我不會爲此只得到整個圖書館。
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);
應鉻
我明白你不想要一個圖書館,但這個人的足跡很小,你可以使用event.simulate這個。它是一個PrototypeJS庫,但我相信移植將非常簡單。
要使用它的原型,你會打電話:
$('my_anchor').simulate('click');
它可以跨瀏覽器沒有問題。
感謝您的提醒,只需使用該庫的方法。 ..在mootools的情況下,.fireEvent('click')是正確的。 – joelhardi 2012-02-29 18:44:02
嘗試閱讀引用的帖子那裏作者有相同的問題。
他通過在onLoad回調中運行腳本來解決這個問題;
<body onLoad="DefaultButtonFix()">
Refernece:Click event fires in IE/Firefox, but Chrome is dropping the event assignment
如果你知道的jQuery只需創建一個匿名函數,並聽取了onclick事件。你將需要爲你指定一個類或id href,
例如 HTML:
<a href='' id='clickMe'>Click here</a>
的jQuery:
$(function() {
$("#clickMe").click(function() {
... the action you wish to perform ...
})
})
希望這有助於。 戴夫
這隻會偵聽點擊事件,操作者想要'模擬'點擊。 – epoch 2012-01-10 10:25:28
有效的點,我應該更仔細閱讀操作消息! – detheridge02 2012-01-10 10:34:52
工作在非IE的瀏覽器使用dispatchEvent()
我用這個:
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");
它不是,它是IE-只 – 2012-01-10 10:39:41
@ Dr.Molle - 我的錯誤,編輯答案。 – amal 2012-01-10 10:47:19