上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
12
返回列表 发新帖
楼主: tansuo - 

调用函数无法立即执行

[复制链接]
  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6763

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6763

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2023-11-10 09:51:06 | 显示全部楼层
    tansuo 发表于 2023-11-10 09:01
    [md]monitorDomChange()除了这个代码其它代码都是全的,应该没有[/md]

    把ready用addeventlistener替换一下试试
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复
    订阅

    使用道具 举报

  • TA的每日心情
    开心
    2023-12-25 06:51
  • 签到天数: 35 天

    [LV.5]常住居民I

    9

    主题

    56

    回帖

    67

    积分

    初级工程师

    积分
    67

    油中3周年

    发表于 2023-11-10 13:16:47 | 显示全部楼层
    本帖最后由 tansuo 于 2023-11-10 14:35 编辑
    李恒道 发表于 2023-11-10 09:51
    把ready用addeventlistener替换一下试试

    $(document)[0].addEventListener('DOMContentLoaded', async function() {,还是进不去


    我用我原来代码调试一下 发现虽然代码运行到模拟点击那几行代码中,但只有当  console.log(`Element with ID ${id+"_span"} found.`);和
            console.log(targetElement);循环打印完才执行模拟点击,我把那个monitorDomChange()去除了 直接使用document.querySelector获取模拟点击后id为endText里面的数据,目前没有实现运行到模拟点击那几行代码中立即执行模拟点击,下面是完整代码

    // ==UserScript==
    // @name         zh
    // @match        https:///*
    // @grant        GM_registerMenuCommand
    // @grant        GM_getValue
    // @grant        GM_setValue
    // @grant        unsafeWindow
    // @run-at       document-start
    // ==/UserScript==
      var _GM_registerMenuCommand = /* @__PURE__ */ (() => typeof GM_registerMenuCommand != "undefined" ? GM_registerMenuCommand : void 0)();
    // 使用GM_registerMenuCommand注册一个新的菜单项
    _GM_registerMenuCommand("Start Scraping", startScraping);
    function startScraping() {
      // 调用你的函数,设置变量为true
      myFunction()
    }

    function myFunction() {
        console.log(1111);
    //$(document)[0].addEventListener('DOMContentLoaded', async function() {
       $(document).ready( function(){
          console.log(2222);
        // 获取指定 ID 的元素
        const parentElement = document.getElementById('treeDemo');
        // 获取所有子元素
        const childElements = parentElement.children;
        // 遍历所有子元素
        for (let i = 0; i < childElements.length; i++) {
          // 判断当前元素是否为 li 标签
          if (childElements.tagName === 'LI') {//缺个数组方括号里面有个i
            // 获取 li 标签的 ID 并赋值给 document.getElementById()
            const id = childElements.id;//缺个数组方括号里面有个i
            // 在这里可以执行你需要的操作,例如打印 ID 或其他操作
            console.log(`Element with ID ${id+"_span"} found.`);
            const targetElement = document.getElementById(id + "_span"); // Correct the way to concatenate the string.
            console.log(targetElement);
            // 模拟点击事件
            if (targetElement) {
              const event = new MouseEvent('click', {
                bubbles: true,
                cancelable: true,
                view: unsafeWindow,
              });
                     setTimeout(() => {
                      //debugger
                     targetElement.dispatchEvent(event);
                     },5000);
            debugger
            const targetDivSelector = '#endText';
            const targetDiv = document.querySelector(targetDivSelector);
            if (targetDiv) {
              console.log('Found target div:', targetDiv);
              // 在这里可以对目标div进行操作或获取需要的数据
            } else {
              console.log('Target div not found.');
            }

            } else {
              console.log('目标 ul 元素不存在!');
            }
          }
        }
      });
    }



    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-10-28 07:07
  • 签到天数: 193 天

    [LV.7]常住居民III

    712

    主题

    5966

    回帖

    6763

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6763

    荣誉开发者喜迎中秋油中2周年生态建设者

    发表于 2023-11-10 20:17:53 | 显示全部楼层
    tansuo 发表于 2023-11-10 13:16
    $(document)[0].addEventListener('DOMContentLoaded', async function() {,还是进不去

    帮不到哥哥了
    需要哥哥对同步有理解才能实现...
    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。
    回复

    使用道具 举报

    12
    返回列表 发新帖

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表