Javascript 单击类按钮

Javascript 单击类按钮,javascript,.net,awesomium,Javascript,.net,Awesomium,所以这只是一个小的个人项目,我正在使用.net中的awesomium。所以在awesomium中,我打开了这个浏览器,我想点击这个按钮,上面有这个代码 <a class="buttonright" >&nbsp;Bump&nbsp;</a> Bump 但考虑到它是一个类而不是一个按钮,我很难找到一种方法来“点击”它。我的计划是在awesomium中使用javascript来点击它,但也许我是从错误的方向开始的 谢谢根据您对活动的处理方式,您可以走很多路

所以这只是一个小的个人项目,我正在使用.net中的awesomium。所以在awesomium中,我打开了这个浏览器,我想点击这个按钮,上面有这个代码

<a class="buttonright" >&nbsp;Bump&nbsp;</a>
Bump
但考虑到它是一个类而不是一个按钮,我很难找到一种方法来“点击”它。我的计划是在awesomium中使用javascript来点击它,但也许我是从错误的方向开始的


谢谢

根据您对活动的处理方式,您可以走很多路

最简单的是:

<script type="text/javascript">
  function buttonRight_onclick(event, sender)
  {
     alert("HEY YOU CLICKED ME!");
  }
</script>


<a class="buttonright" click="buttonRight_onclick(event, this)">

功能按钮右键单击(事件、发送方)
{
警惕(“嘿,你点击我了!”);
}
而如果您使用的是像jQuery这样的框架,您可以这样做:

<script type="text/javascript">
  $(document).ready(function() {
    $(".buttonright").on("click", function(event) {
      alert("HEY YOU CLICKED ME!");
    });
  });
</script>

<a class="buttonright" >Bump</a>
<a class="buttonright" >Also bump</a>

$(文档).ready(函数(){
$(.buttonright”)。在(“单击”上,函数(事件){
警惕(“嘿,你点击我了!”);
});
});
碰撞
还撞

功能按钮\u onclick(事件、发送方)
{
警报(“单击按钮!”);
}
更新:
经过大量的评论(来回)后,我建立了一个小提琴,使用了这个代码的工作版本(这里的代码也可以工作,但需要一些调试)。fiddle中的
eventTrigger
函数已删除了所有注释,但我添加了该函数的一个示例用法,其中大量地添加了注释。
浏览、翻阅、玩转并熟悉其中使用的代码和概念。玩得开心:


如果“找到单击它的方法”的意思是:如何以编程方式单击此锚元素,那么您可以使用以下内容:

这是一种X浏览器,略显冗长,但却很全面:

var eventTrigger = function(node, event)
{
    var e, eClass,
        doc = node.ownerDocument || (node.nodeType === (document.DOCUMENT_NODE || 9) ? node : document);
        //after checking John Resig's Pro JavaScript Techniques
        //the statement above is best written with an explicit 9
        //Given the fact that IE doesn't do document.<NODE_CONSTANT>:
        //doc = node.ownerDocument || (node.nodeType === 9 ? node : document);
    if (node.dispatchEvent)
    {//dispatchEvent method is present, we have an OK browser
        if (event === 'click' || event.indexOf('mouse') >= 0)
            eClass = 'MouseEvents';//clik, mouseup & mousedown are MouseEvents
        else
            eClass = 'HTMLEvents';//change, focus, blur... => HTMLEvents
        //now create an event object of the corresponding class
        e = doc.createEvent(eClass);
        //initialize it, if it's a change event, don't let it bubble
        //change events don't bubble in IE<9, but most browsers do
        //e.initEvent(event, true, true); would be valid, though not standard
        e.initEvent(event, !(event === 'change'), true);
        //optional, non-standard -> a flag for internal use in your code
        e.synthetic = true;//mark event as synthetic
        //dispatch event to given node
        node.dispatchEvent(e, true);
        //return here, to avoid else branch
        return true;
    }
    if (node.fireEvent)
    {//old IE's use fireEvent method, its API is simpler, and less powerful
        //a standard event, IE events do not contain event-specific details
        e = doc.createEventObject();
        //same as before: optional, non-standard (but then IE never was :-P)
        e.synthetic = true;
        //~same as dispatchEvent, but event name preceded by "on"
        node.fireEvent('on' + event, e);
        return true;//end IE
    }
    //last-resort fallback -> trigger any directly bound handler manually
    //alternatively throw Error!
    event = 'on' + event;
    //use bracket notation, to use event's value, and invoke
    return node[event]();//invoke "onclick"
};
这应该具有单击锚元素的效果

如果您正在寻找一种方法来处理此元素上的单击事件(一个具有
按钮右侧
类的锚点),那么您只需要一个简单的事件侦听器:

document.body.addEventListener('click', function(e)
{
    e = e || window.event;
    var target = e.target || e.srcElement;
    if (target.tagName.toLowerCase() === 'a' && target.className.match(/\bbuttonright\b/))
    {//clicked element was a link, with the buttonright class
        alert('You clicked a button/link thingy');
    }
}, false);
这是最干净的方法(一个事件侦听器处理所有单击事件)。当然,您也可以将处理程序绑定到特定元素:

var buttons = document.querySelectorAll('.buttonright'),
    handler = function(e)
    {
        alert('Clicked!');
    };
for (var i=0;i<buttons.length;++i)
{
    buttons[i].addEventListener('click',handler, false);
}
var buttons=document.querySelectorAll('.buttonright'),
handler=函数(e)
{
警报('Clicked!');
};

对于(var i=0;i@AkleshOP忘了突出显示代码块中的代码。@Thomja它不是一个类,也不是一个按钮,它是一个锚…@Toimothy Groote你每天都能学到新东西!:)后一种方法根本不需要jQ。这只是我在vanillaJS中展示的第二种方法的语法糖分。。。如果您打算在这里使用jQ,
$(document).on('click','.buttonright',function(){})更可取(授权!),同样,我想点击按钮。谢谢你的回复,但我的问题似乎被误解了。使用javascript,我想单击按钮。我不希望在单击事件后触发该事件。@Thomja:triggering a click event是通过JavaScript单击某个事件的方式。对于JS,单击就是一个事件。我在这里发布的最后一个(最详细的)代码片段创建了这个事件,并分派它。我已经将代码的相关部分移到了顶部同时。。。这与模拟单击元素相同。省去事件监听器,使用最后一个片段自动单击链接谢谢大家的帮助真的很感谢!但是,没有根据控制台定义EventI类。你不是用“e=doc.createEvent(eventClass);”来定义它吗?@Thomja:对不起,我错了,那应该是
e=doc.createEvent(eClass),我已经更新了我的答案。备注:如果在某些浏览器中未定义
DOCUMENT\u节点
,请将其替换为
9
。在chromium上,
DOCUMENT\u NODE
是一个常量,但我不知道IE是否实现了这些节点常量,不过tooeventName没有定义。但是我真的很喜欢代码附带的文档!真的帮助了一些不太懂Javascript的人。这里也是一样,我想点击按钮。不要在我点击了上述按钮后触发事件。作为旁白:JS命名约定规定函数名以小写字符开头(除非它们是构造函数),并且是大小写的。在这种情况下,单击的
函数按钮将是正确的函数名称
document.body.addEventListener('click', function(e)
{
    e = e || window.event;
    var target = e.target || e.srcElement;
    if (target.tagName.toLowerCase() === 'a' && target.className.match(/\bbuttonright\b/))
    {//clicked element was a link, with the buttonright class
        alert('You clicked a button/link thingy');
    }
}, false);
var buttons = document.querySelectorAll('.buttonright'),
    handler = function(e)
    {
        alert('Clicked!');
    };
for (var i=0;i<buttons.length;++i)
{
    buttons[i].addEventListener('click',handler, false);
}