我如何把这个jQuery变成javascript?

时间:2011-06-20 00:07:46

标签: javascript jquery mootools

我在这个site上有一个facebook连接按钮,这里是代码

 <fb:login-button onlogin="javascript:jfbc.login.login_button_click();"
 perms="email,publish_stream,user_about_me,user_hometown,user_location,user_birthday,user_religion_politics,user_interests,user_activities,user_website" 
size="medium" v="2"><a class="fb_button fb_button_medium">
<span class="fb_button_text"\>Login With Facebook</span></a></fb:login-button>

我希望通过javascript调用触发此按钮并进行研究我发现这个jquery似乎它会做的伎俩(虽然没有经过测试)我想知道是否有一个平等的javascript或mootool因为jquery不是安装。如果我找不到解决方案,我可以安装它。或者,如果有人对如何触发此Facebook按钮有另一个想法

$("fb\:login-button").trigger("click");

6 个答案:

答案 0 :(得分:2)

您应该只能调用内联调用的相同代码:

jfbc.login.login_button_click();

答案 1 :(得分:2)

有两种方法可以“触发”听众:

  1. 直接致电(例如element.onclick()
  2. 将一个事件发送到侦听器将响应的DOM
  3. 第一种方法的问题在于它不会复制冒泡事件,因此监听器可能无法按预期工作(例如,没有关联的事件对象或冒泡,监听器的关键字可能没有正确设置)。

    第二个问题是某些浏览器不允许以编程方式调度事件来执行某些操作(例如,单击链接)。此外,在某些浏览器中,您必须使用W3C dispatchEvent,而在其他浏览器中则使用Microsoft fireEvent

    因此,除非侦听器专门设计为使用一种方法或另一种方法并且被正确调用,否则成功触发侦听器的可能性非常低。

    PS。有些库提供了自己的事件系统,自定义事件和非冒泡事件的冒泡,但在这种情况下,您必须使用该库设置和触发侦听器,否则它可能不会响应上述任何一种方法。 / p>

答案 2 :(得分:0)

我想它会像

document.getElementsByTagName("fb\:login-button")[0].click();

我确信使用处理click事件的“普通”DOM元素会很好用;但是,我并不完全确定它可以在所有浏览器中使用fb:login-button元素填充到HTML中。你必须让我知道。

答案 3 :(得分:0)

看起来你应该可以这样做:

document.body.getElementsByTagName("fb\:login-button")[0].click();

答案 4 :(得分:0)

看起来你想要一个名称空间元素选择器,所以你应该使用:

document.getElementsByTagNameNS('fb', 'login-button')[0].click();

:是命名空间分隔符。

答案 5 :(得分:0)

我今晚遇到了这个问题,绝对在iframe上放置了一个新的按钮图像,并计划使用指针事件:无法通过并点击iframe,但我正在寻找一个跨浏览器的解决方案,在这里你去。

jQuery('.button_fb_connect').live('click', function(){  FB.login() })

点击新元素后,只需运行js函数FB.login(),显然你可以使用你想要的任何事件。

当然是jQuery,但这就是你想要的功能,而不仅仅是一个简单的点击事件触发器。