2010-06-15 15 views
3

我有一個href,我從中彈出一個彈出窗口,並且我想在我的身體的onload中激活這個。我使用document.getElementbyId("myelement").click(),在IE中可以正常工作,但Firefox不支持。我知道Firefox不支持.click(),但我沒有其他辦法可以做到這一點。Firefox中的.click()方法的替代方法

你可以請建議一個在IE和FF中工作的解決方法嗎?
在此先感謝。

+0

*我知道''.click()'不會被Firefox支持*一些引用會很好... – 2012-11-25 20:58:48

回答

6

你可以做Alsciende建議,或者如果你需要將事件對象,你可以使用dispatchEvent來觸發事件處理程序:

document.body.onload = function() { 
    var element = document.getElementById("element"); 

    if ("click" in element) 
     element.click(); 
    else if ("dispatchEvent" in element) { 
     var evt = document.createEvent("MouseEvents"); 
     evt.initMouseEvent("click", true, true, window, 
      0, 0, 0, 0, 0, false, false, false, false, 0, null); 
     element.dispatchEvent(evt); 
    } 
} 

它使用一個框架有時是有用的,如jQuery,爲您處理這些類型的瀏覽器不一致問題。或多或少,jQuery中相同的代碼將是:

$('#element').click(); 
2

創建一個打開彈出窗口的函數,並在正文onload處理函數以及鏈接onclick處理函數中使用此函數。

function openPopup() { 
    window.open("..."); 
    return false; 
} 

<body onload="openPopup()"> 
... 
<a id="myelement" href="#" onclick="openPopup()">...</a> 
... 
</body> 
0

正是如此,它可以幫助別人,我已經在許多代碼使用見過這個,但如果它在你的情況不能保證,以下是我曾嘗試過 -

'leftclick .divname': '_functionname',

不知道。但是這可能會使用js必須提供的內容。我在一個支持js的骨幹應用中使用它。