JS脚本返回未定义而不是预期的字符串

时间:2017-03-21 03:34:07

标签: javascript

我基本上已经制作了一个程序,它将通过一个网站并获取某些图像。这不是难,只是有点复杂。我正在运行下面的JS代码点击正确的页面,检查每100ms加载的gallery元素,然后最后将整个对象记录为字符串。大多数都有效,但是当获得console.log(...);时,我得到未定义的主要返回,然后我将字符串作为辅助字符串。这不会到期,因为我的程序只能拦截主要记录的值,而不是任何辅助节点。下面是我的代码和示例输出。谢谢!

代码:

document.getElementById('tlcItem_47871').click();
var checkExist = setInterval(function() {
    if ($('.pgFooterThumblist').length) {
        clearInterval(checkExist);
        var ele = document.getElementsByClassName('pgFooterThumb');
        console.log(JSON.stringify(ele));
    }
}, 100);

Ex输出:

/*Primary Output(First)*/<- undefined
/*Secondary Output(Second)*/<- {"0":{},"1":{},"2":{},"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"9":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"16":{},"17":{},"18":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"25":{},"26":{},"27":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"34":{},"35":{},"36":{},"37":{},"38":{},"39":{},"40":{},"41":{},"42":{},"43":{},"44":{},"45":{},"46":{},"47":{},"48":{},"49":{},"50":{},"51":{},"52":{},"53":{},"54":{},"55":{},"56":{},"57":{},"58":{},"59":{},"60":{},"61":{},"62":{},"63":{},"64":{},"65":{},"66":{},"67":{},"68":{},"69":{},"70":{},"71":{},"72":{},"73":{},"74":{},"75":{},"76":{},"77":{},"78":{},"79":{},"80":{},"81":{},"82":{},"83":{},"84":{},"85":{},"86":{},"87":{},"88":{},"89":{},"90":{},"91":{},"92":{},"93":{},"94":{},"95":{},"96":{},"97":{},"98":{},"99":{},"100":{},"101":{},"102":{},"103":{},"104":{},"105":{},"106":{},"107":{},"108":{},"109":{},"110":{},"111":{},"112":{},"113":{},"114":{},"115":{},"116":{},"117":{},"118":{},"119":{},"120":{},"121":{},"122":{},"123":{},"124":{},"125":{},"126":{},"127":{},"128":{},"129":{},"130":{},"131":{},"132":{},"133":{},"134":{},"135":{},"136":{},"137":{},"138":{},"139":{},"140":{},"141":{},"142":{},"143":{},"144":{},"145":{},"146":{},"147":{},"148":{},"149":{},"150":{},"151":{},"152":{},"153":{},"154":{},"155":{},"156":{},"157":{},"158":{},"159":{},"160":{},"161":{},"162":{},"163":{},"164":{},"165":{},"166":{},"167":{},"168":{},"169":{},"170":{},"171":{},"172":{},"173":{},"174":{},"175":{},"176":{},"177":{},"178":{},"179":{},"180":{},"181":{},"182":{},"183":{},"184":{},"185":{},"186":{},"187":{},"188":{},"189":{},"190":{},"191":{},"192":{},"193":{},"194":{},"195":{},"196":{},"197":{},"198":{},"199":{},"200":{},"201":{},"202":{},"203":{},"204":{},"205":{},"206":{},"207":{},"208":{},"209":{},"210":{},"211":{},"212":{},"213":{},"214":{},"215":{},"216":{},"217":{},"218":{},"219":{}}
编辑:在我所拥有的工作流程中,我能够在我的c ++中设置我的JS脚本,然后我可以将javascript运行到加载的网页中。唯一的问题是runJavascript()函数将获取输出的第一个值并使用它。没办法,所以我需要尽快输出字符串。

1 个答案:

答案 0 :(得分:1)

这不是一个正确的答案。我只是为了上下文而离开。

假设所有需要避免控制台记录未定义的值,这就足够了:

document.getElementById('tlcItem_47871').click();
var checkExist = setInterval(function() {
    if ($('.pgFooterThumblist').length) {
        clearInterval(checkExist);
        var ele = document.getElementsByClassName('pgFooterThumb');
        var loggedOutput = JSON.stringify(ele);
        if (loggedOutput) {
            console.log(loggedOutput);
        }
    }
}, 100);

这假设您的C代码以某种方式拦截此控制台日志。通常在JavaScript中,如果你需要一个函数的值,你需要使用return语句将它传递回调用者,但似乎你可能有一个独特的情况,这是不需要的。