在nightmarejs中获取加载的SCRIPT变量

时间:2017-11-06 14:39:22

标签: javascript nightmare

我希望在噩梦中使用script.js时从加载的.evaluate()中获取值。所以,让我们说在某些网站上有这个基本的HTML ...

<!doctype html>
<head>
<title> far-away-website.com</title>
    <script src="script.js"></script>
 <script src="script-two.js"></script>
</head>

<body>
  <div> DOM stuff</div>
</body>
</html>

而且script.js有这个......

​func.prototype.hasData = function() {
                return this.data
            }

如何在梦魇中从this.data获取.evaluate()的值?...

var Nightmare = require('nightmare');
var nightmare = Nightmare({
    // waitTimeout: 60000, // in ms
    openDevTools: {
        //mode: 'detach'
    },
    show: true
})
nightmare.goto('https://www.far-away-website.com')

    .evaluate(() => {
            return this.data // needed from script.js
    })

.then((data) => {
console.log(data)
})

P.S。在chrome dev工具中使用this.data可以看到watch的值。

1 个答案:

答案 0 :(得分:0)

以下代码仅显示this仅指该对象。如果该对象位于全局窗口中,则可以通过创建对象并使用.hasData()函数属性来访问它。

否则您无法访问this.data,因为它位于不同的功能范围内。您可以阅读更多有关如何通过阅读某些材料来利用它的信息。

另外,你没有共享一个真正有效的网站/代码,没有它也无济于事。

详细了解这一点,herehere。 阅读有关范围的更多信息,here