在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点击按钮呢?
答案 0 :(得分:4)
早些时候尝试提供帮助:
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()
仅适用于input
和button
等元素。
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-2651361
onclick
将出现在1990年而不是Google。他们应该使用addEventListener
。
尝试设置断点并查看在单击时调用的功能。然后直接调用该函数。
要触发点击事件处理程序,可以使用createEvent加dispatchEvent。
参见示例:http://jsfiddle.net/DzVg9/
请注意,Google Plus实际上可能正在使用mousedown
或mouseup
个事件。
答案 2 :(得分:0)
您确定使用$(":1vq.post")
精确选择按钮吗?也许您需要将其更改为$("#:1vq.post")
或类似的东西(我不确定JQuery如何处理:
和.
字符。