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

切换网页时遇到的尴尬事,老师们来看一眼指点我一个明白

[复制链接]
  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2022-11-10 15:30:59 | 显示全部楼层 | 阅读模式
    悬赏66油猫币已解决
    当前页面为第一页面,点击 =>
    new Promise(function (resolve, reject) {
        window.open("打开另一个页面", "_blank");
        resolve(prompt("请写入您在第二页获取的数据"));
    }).then (function (person) {
        if (person) {
            console.log("获取成功");
        }
        else {
            console.log("获取失败");
        }
    });
    => 此时已经打开了第二页面,在第一页面 prompt命令 有几率性的执行
    打开了第二页面获取数据后返回 =>
    prompt命令 执行了就是执行了,没执行等它狗曰的一万年也没影
    那么问题是:切换页面的时候这些命令是没来得及触发?是处于什么样的状态?是休眠了还是被销毁了?如何改善

    最佳答案

    查看完整内容

    [md]![image.png](data/attachment/forum/202211/10/163234xb9vtohzrtb91gxa.png) 好像被拦截了,我允许之后,有时候会要我输入prompt,有时候不用 貌似是一个几率性的问题 我也不知道如何解释,看起来是当页面在后台时,prompt会始终返回null 而且如果弹出成功,那么对应的网站无法加载 如果对于网站加载成功,那么这个窗口会弹出失败 基于这个想法,我使用`GM_openInTab`打开新页面,但是发现又回到了第一个问题页面在后台 ...
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 213 天

    [LV.7]常住居民III

    305

    主题

    4197

    回帖

    4061

    积分

    管理员

    积分
    4061

    管理员荣誉开发者油中2周年生态建设者喜迎中秋油中3周年挑战者 lv2

    发表于 2022-11-10 15:31:00 | 显示全部楼层

    image.png

    好像被拦截了,我允许之后,有时候会要我输入prompt,有时候不用

    貌似是一个几率性的问题

    我也不知道如何解释,看起来是当页面在后台时,prompt会始终返回null

    而且如果弹出成功,那么对应的网站无法加载

    如果对于网站加载成功,那么这个窗口会弹出失败

    基于这个想法,我使用GM_openInTab打开新页面,但是发现又回到了第一个问题页面在后台时,prompt会始终返回null

    或者能不能这样?

    // ==UserScript==
    // @name         New Userscript
    // @namespace    https://bbs.tampermonkey.net.cn/
    // @version      0.1.0
    // @description  try to take over the world!
    // @author       You
    // @match        https://bbs.tampermonkey.net.cn/thread-3599-1-1.html
    // @grant GM_openInTab
    // ==/UserScript==
    
    new Promise(function (resolve, reject) {
        GM_openInTab("https://bbs.tampermonkey.net.cn/");
        const fn = function () {
            console.log(document.hidden)
            if (!document.hidden) {
                window.removeEventListener("visibilitychange", fn);
                resolve(prompt("请写入您在第二页获取的数据"));
            }
        }
        window.addEventListener("visibilitychange", fn);
    }).then(function (person) {
        console.log(person);
        if (person) {
            console.log("获取成功");
        }
        else {
            console.log("获取失败");
        }
    });

    点评

    依稀,太完美了。100%触发。老师你那还缺人不?想去给您舔脚趾头  发表于 2022-11-10 17:19
    上不慕古,下不肖俗。为疏为懒,不敢为狂。为拙为愚,不敢为恶。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-30 00:00
  • 签到天数: 122 天

    [LV.7]常住居民III

    29

    主题

    601

    回帖

    542

    积分

    专家

    积分
    542

    油中2周年生态建设者油中3周年挑战者 lv2

    发表于 2023-8-1 13:26:13 | 显示全部楼层
    纠正:100%触发这话说的太满了,搜狗浏览器不触发
    回复

    使用道具 举报

    发表回复

    本版积分规则

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