我尝试使用Chrome扩展程序内容脚本点击Google文档中的按钮。
在控制台中:
document.getElementsByClassName('docos-input-buttons')[0];
收率:
<div class="docos-input-buttons"><div role="button" class="goog-inline-block jfk-button jfk-button-action docos-input-post docos-input-buttons-post" style="user-select: none;" aria-disabled="false" aria-label="Post Comment" tabindex="0" data-tooltip="Post Comment">Comment</div><div role="button" class="goog-inline-block jfk-button jfk-button-standard docos-input-cancel" tabindex="0" data-tooltip="Discard comment" aria-label="Discard comment" style="user-select: none;">Cancel</div></div>
然后我可以深入了解孩子们:
document.getElementsByClassName('docos-input-buttons')[0].children[0];
收率:
<div role="button" class="goog-inline-block jfk-button jfk-button-action docos-input-post docos-input-buttons-post" style="user-select: none;" aria-disabled="false" aria-label="Post Comment" tabindex="0" data-tooltip="Post Comment">Comment</div>
我认为将.click()添加到document.getElementsByClassName然后会点击这个元素......但显然我错过了一些东西。
当您手动点击按钮(它被设置为按钮)时,会发布Google文档评论。
但是以下结果&#34; undefined&#34;。
document.getElementsByClassName('docos-input-buttons')[0].children[0].click();
如何以编程方式单击普通javascript中的子节点?
答案 0 :(得分:0)
如何以编程方式单击普通javascript中的子节点?
您的代码存在多个问题
根据您分享的代码,您没有课程docos-input-buttons
,请尝试使用docos-input-buttons-post
您尝试访问的children
没有div
。它只有文本节点,可以通过element.childNodes[0]
访问,但不支持click
事件。
为什么不点击div
本身
document.getElementsByClassName('docos-input-buttons-post')[0].click();
或
document.querySelector('docos-input-buttons-post').click();