[英]Click a button made from div with JavaScript?
在 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
是 null。 那么我如何点击 JavaScript 的按钮呢?
编辑:在与开始这个问题的 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/ 。 单击运行,然后单击发表评论。
click()
仅适用于input
和button
等元素。
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-2651361
onclick
将出现在 1990 年,而不是在 Google。 他们应该使用addEventListener
。
试着设置一个断点,看看function在点击时被调用了什么。 然后直接调用function。
要触发单击事件处理程序,可以使用createEvent和dispatchEvent 。
参见示例: http://jsfiddle.net/DzVg9/
请注意,Google Plus 实际上可能正在使用mousedown
或mouseup
事件。
你确定你用$(":1vq.post")
准确地选择了按钮吗? 也许您需要将其更改为$("#:1vq.post")
或类似的东西(我不确定 JQuery 如何处理:
和.
字符)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.