javascript - 如何使用 Javascript 访问奇怪 Canvas 中的元素?
问题描述
我对 javascript 很陌生,我一直在研究一个简单的用户脚本,它可以单击网页上的按钮(我无法控制。)我在获取和单击带有侦听器的按钮或 div 时没有问题,但是,那里是我需要单击的一个按钮,它仅在单击第一个按钮后出现。当我检查这个元素时,它给我的只是一个围绕按钮的空画布。我已经浏览了整个源代码,但在任何地方都找不到这些按钮!如何使用 JavaScript 访问它们?这是 Agar.io 中这样一个框和按钮的示例(嘿,这是我能找到的第一个地方!)
这是弹出窗口: 三个按钮弹出窗口
这是与检查元素关联的代码:
<div data-v-9c4d2b0c="" id="openfl-content" style="transform: translate(0%, -50%) scale(0.895); cursor: default;"><canvas style="transform: translateZ(0px); width: 880px; height: 1024px; margin-left: 0px; margin-top: 0px;" width="880" height="1024"></canvas></div>
有人请帮我找到我的按钮!
解决方案
这是我需要单击的一个按钮,该按钮仅在单击第一个按钮后出现
关于延迟按钮出现 - 您可以在 setInverval() 循环中搜索最终按钮:
像这样
const interval = setInterval(function(){
var $wrapper = $('.buttonWrapperOrAnythingThatContainsYourButton');
if ($wrapper.length > 0) {
var $btn = $wrapper.find('[that-buttons-special-attribute]');
if ($btn.length > 0){
$btn.trigger('click'); // or something (if your button is a clickable DOM element), if not - see the comment blow
clearInterval(interval);
}
}
}, 500);
这种方法非常简单,仅适用于可点击的 DOM 元素。如果您的按钮隐藏在画布内的某处 - 您将有更复杂的“点击”模拟,请参阅此答案以了解如何在确切位置单击画布: 在画布 html5 页面上模拟鼠标上下
推荐阅读
- login - 带有安全性和数据库用户的 Symfony 4 登录表单
- group-by - XSLT group on child node
- javascript - 如何将我的代码从多个 if 语句更改为 Switch Case 语句
- perl - $ssh2-> connect('host') 我怎样才能找到应该是什么主机?
- android - 有没有一种简单的方法可以在 Kotlin 中编写代码 if (mWiFiDef.isChecked) {aMutableList.add(mWiFiDef)}?
- database - Laravel - 我如何在查询中获取计数数据?
- c++ - 使用模板定义多个函数的 C++ 通用方法
- ios - Invalid conversion from throwing function of type '(_, _) throws -> ()' to non-throwing function type '(JSON?, Error?) -> Void'
- r - 文件错误(con,“rb”):无法打开连接外部硬盘驱动器 R
- html - 页脚与包装器重叠并发布在我的 HTML 页面上