点击使用JavaScript制作div的按钮?

时间:2011-07-02 16:40:42

标签: javascript javascript-events google-plus

在Google+中,用于发表评论的按钮来自div:

<div role="button" id=":1vq.post" class="d-s-r tk3N6e-e tk3N6e-e-qc" aria-disabled="false" style="-webkit-user-select: none; " tabindex="0">Post comment</div>  

我想我可以点击它:

document.getElementById(":1vq.post").click();  

但它说该元素没有属性click。我发现onclick为空。那我怎么能用JavaScript点击按钮呢?

3 个答案:

答案 0 :(得分:4)

编辑:在与wong2聊天之后,他们开始提出这个问题并且对这个问题的真正意义进行了大量的失败猜测(问题写得很糟糕),他们想要做的是写一个Greasemonkey用户来制作输入键按下Google+信息流中的“发表评论”按钮。由于我还没有邀请加入Google+,我甚至看不到相关代码,所以我无能为力。这个问题不是要将与Google+相关的任何内容放在您自己的网站中 - 而是要尝试使用Greasemonkey在您自己的浏览器中修改Google网站的行为。

早些时候尝试提供帮助:

id =“:1vq.post”不是合法的CSS ID名称。您不能在选择器名称中使用“:”字符。这会导致多个问题,因为它不仅不是合法字符,而且在CSS选择器语法中也是一个有意义的字符。所以,我看到你有两个问题。

首先,您的选择器逻辑无效。其次,正如其他人所说,你不能只用普通的javascript(例如没有框架)来分配点击。

如果您将选择器逻辑更改为正常工作,则可以使其正常工作(使用jQuery),如下所示:

<div role="button" id="aPost" class="d-s-r tk3N6e-e tk3N6e-e-qc" aria-disabled="false" style="-webkit-user-select: none; " tabindex="0">Post comment</div>

$("#aPost").click(function() {
    alert("I was clicked.");
});

而且,你可以在这个jsFiddle中看到它的实际效果:http://jsfiddle.net/jfriend00/Yfnc7/。单击“运行”,然后单击“发表评论”。

答案 1 :(得分:2)

click()仅适用于inputbutton等元素。

http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-2651361

onclick将出现在1990年而不是Google。他们应该使用addEventListener

尝试设置断点并查看在单击时调用的功能。然后直接调用该函数。


要触发点击事件处理程序,可以使用createEventdispatchEvent

参见示例:http://jsfiddle.net/DzVg9/

请注意,Google Plus实际上可能正在使用mousedownmouseup个事件。

答案 2 :(得分:0)

您确定使用$(":1vq.post")精确选择按钮吗?也许您需要将其更改为$("#:1vq.post")或类似的东西(我不确定JQuery如何处理:.字符。