【问题标题】:click() (javascript) method is not working in FFclick() (javascript) 方法在 FF 中不起作用
【发布时间】:2011-01-29 02:06:08
【问题描述】:

以下代码在 IE 中按预期抛出两个警报,但在 Firefox 中则没有。请帮忙。

<!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>

谢谢

【问题讨论】:

标签: javascript javascript-events


【解决方案1】:

Firefox 仅对按钮等表单元素具有 click() 函数。但是,您可以直接调用 onClick 函数;您可以将行更改为

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

这在 firefox 或 IE 中有效(但请注意,它要求该函数实际存在,您知道在本示例中它确实存在)。

另外请注意,您实际上并没有模拟对该元素的点击(因此,例如,如果这种点击会做其他事情,例如还充当对容器的点击,它们就不会发生)。您只是获得了单击即可运行的功能,然后直接运行它。因此,它并非适用于所有需要模拟点击的情况。

【讨论】:

    【解决方案2】:

    元素上没有click 方法。你在使用任何库吗?

    通常你必须做类似element.fireEvent('click')(原型,mootools)的事情

    element.click() (jquery)

    更新-类似问题:How do I programmatically click on an element in JavaScript?

    看起来像一个丑陋而脆弱的解决方案,如果我是你,我会只包含 jQuery 并让它处理所有浏览器怪癖。

    【讨论】:

    • IE 支持很多不属于标准 Javascript 实现的东西,但它们在其他浏览器中不起作用。
    • 好的..但是解决办法是什么?有没有办法在不使用像 jQuery 这样的库的情况下做到这一点?
    • 看起来 Firefox 在某些元素上确实支持click,但它仍然不是标准的一部分,因此是一种不好的做法。 developer.mozilla.org/en/DOM/element.click
    【解决方案3】:

    因为

    标签没有click方法。

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-12
      • 1970-01-01
      • 2021-08-07
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      相关资源
      最近更新 更多