2010-03-18 55 views
0

以下代碼在IE中引發了兩次警報,但未在Firefox中引發。請幫忙。click()(javascript)方法在FF中不起作用

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 

<SCRIPT LANGUAGE="JavaScript"> 
<!-- 
    function myFunction(){ 
     alert('myfunc'); 
     document.getElementById('mylabel').click(); 
    } 
//--> 
</SCRIPT> 

</HEAD> 

<BODY> 
    <p id='mylabel' onclick="alert('you reached');"></p> 


    <input type='button' value="Click me" onclick='myFunction();'/> 
</BODY> 
</HTML> 

感謝

+0

Look http://stackoverflow.com/a/17633164/2777092 – KingRider 2016-12-20 10:23:23

回答

2

Firefox只對表單元素(如按鈕)具有click()函數。但是,您可以直接調用onClick函數;您可在線路更改爲

document.getElementById('mylabel').onclick(); 

這在Firefox或IE(但要注意,它需要的功能確實存在,你知道它在這個例子中)。

另外請注意,您實際上並未模擬對該元素的點擊(例如,如果還有其他事情會發生這樣的點擊,比如還會充當點擊容器,他們會贏得'沒有發生)。您只需獲得可以在點擊上運行並直接運行的功能。因此,對於需要模擬點擊的所有情況,這不是一個解決方案。

+0

甜蜜的工作! – bragboy 2010-03-18 15:45:03

3

有上的元素沒有click方法。你在使用任何圖書館嗎?

通常你必須做類似element.fireEvent('click')(原型,mootools的)

element.click()(jQuery的)

更新 - 類似的問題:How do I programmatically click on an element in JavaScript?

看起來像一個醜陋的和脆弱的解決方案,如果我是你我只是包括jQuery,並讓它處理所有的瀏覽器怪癖。

+0

但在IE瀏覽器中工作 – bragboy 2010-03-18 15:32:55

+0

IE支持許多不屬於標準Javascript實現的部分,但它們在其他瀏覽器中不起作用。 – adamJLev 2010-03-18 15:33:44

+0

好的..但是笏會是工作嗎?有沒有一種方法可以做到這一點,而不使用像jQuery這樣的庫? – bragboy 2010-03-18 15:34:24

0

因爲<p>標記沒有方法單擊。