小编Nai*_*ani的帖子

当使用客户端函数填充 DOM 时,如何等待所有图像从 puppeteer 中的 page.evaluate 函数加载

我试图让代码执行等待所有图像加载,然后puppeteer截取屏幕截图。当调用 initData() 函数时,我的 DOM 被填充,该函数在客户端 js 文件中定义。延迟或超时是一种选择,但我相信必须有更有效的方法来做到这一点。

    (async (dataObj) => {
             const url = dataObj.url;
             const payload = dataObj.payload;
             const browser = await puppeteer.launch({ headless: false,devtools:false});
             const page = await browser.newPage();
             await page.goto(url,{'waitUntil': 'networkidle0'});

             await page.evaluate((payload) => {
               initData(payload);
                //initData is a client side function that populates the DOM, need to wait 
                //here till the images are loaded. 
               },payload)

             await page.setViewport({ width: 1280, height: 720 })
             await page.screenshot({ path: 'test.png' });
             await browser.close();
    })(dataObj)
Run Code Online (Sandbox Code Playgroud)

提前致谢。

javascript screenshot node.js google-chrome-headless puppeteer

8
推荐指数
1
解决办法
5914
查看次数

显示给定输入数字的数据集中所有可能的字母组合

我想要实现的是从给定的输入数字中获取字母组合.例如.如果我输入111,输出应该是['AAA','KA','AK'].如果输入为1111,则输出应为['AAAA','KAA','AKA','AAK','KK'].部分工作代码如下,我得到['K','K']输入111:

    <html>
<head>
    <h1>Javascript</h1>
</head>
<body>
    <script>
        var dataset =   
        {A:'1',B:'2',C:'3',D:'4',E:'5',F:'6',G:'7',H:'8',I:'9',
       J:'10',K:'11',L:'12',M:'13',N:'14',O:'15',P:'16',Q:'17',R:'18',
        S:'19',T:'20',U:'21',V:'22',W:'23',X:'24',Y:'25',Z:'26'};

        var arr = [];
        var z;  
        var result = [];

        var find = function(input){
            for(var key in dataset) {
                if(dataset[key] === input) {
                    return key;
                }
            }
        }

        var foo = function(x){
            z = x.toString();

            for(var i=0;i<z.length;i++){
                arr.push(z.charAt(i));
            }


            for(var i=0;i<arr.length;i++){
                if(arr[i]+arr[i+1] <= 26){
                    var returnedkey = find(arr[i]+arr[i+1]);
                    result.push(returnedkey);
                }               
            }

        }

        foo(111);
        console.log(arr);
        console.log(result);

    </script>
</body>
Run Code Online (Sandbox Code Playgroud)

我很困惑如何进一步,哪个是正确的方法,提前谢谢!

javascript arrays object

5
推荐指数
1
解决办法
86
查看次数