写个js变量手机屏幕出现某个文字时点击某个坐标未出现时等待到出现文字
这个需求可以通过监听DOM元素的变化来实现。
假设我们要监听的文字元素的id为text,点击的坐标为(100, 200),可以使用MutationObserver来监听DOM元素的变化。当文字元素出现时,我们可以获取该元素的位置,然后模拟鼠标点击该位置。
具体实现如下:
// 获取点击的坐标
const x = 100;
const y = 200;
// 监听文字元素的变化
const targetNode = document.getElementById('text');
const observer = new MutationObserver((mutationsList) => {
for (let mutation of mutationsList) {
if (mutation.type === 'childList') {
const textNode = mutation.target;
if (textNode.textContent.includes('某个文字')) {
// 文字出现,模拟鼠标点击坐标
const rect = textNode.getBoundingClientRect();
const posX = rect.left + x;
const posY = rect.top + y;
const event = new MouseEvent('click', {
view: window,
bubbles: true,
cancelable: true,
clientX: posX,
clientY: posY,
});
textNode.dispatchEvent(event);
}
}
}
});
const config = { attributes: true, childList: true, subtree: true };
observer.observe(targetNode, config);
上述代码中,我们通过MutationObserver监听text元素的子节点的变化。当子节点发生变化时,我们判断文字元素的textContent是否包含指定的文字。如果包含,就获取文字元素的位置,然后模拟鼠标点击指定的坐标。如果不包含,就继续等待下一次变化。
需要注意的是,上述代码中模拟鼠标点击的方式只适用于PC端,如果是移动端需要使用touch事件模拟点击。
原文地址: https://www.cveoy.top/t/topic/bCT0 著作权归作者所有。请勿转载和采集!