繁体   English   中英

单击带有 JavaScript 的 div 按钮?

[英]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()仅适用于inputbutton等元素。

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

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

试着设置一个断点,看看function在点击时被调用了什么。 然后直接调用function。


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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM