2017-11-06 11 views
0

夜間に.evaluate()を使用すると、ロードされたscript.jsから値を取得したいと考えています。だから私はnightmarejsに.evaluate()からthis.dataの値を取得できますか...nightmarejsで読み込まれたSCRIPT変数を取得する

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

を...のは、いくつかのウェブサイト上で、この基本的な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がこれを持っています?

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) 
}) 

PS this.dataの値は、chrome開発ツールでwatchを使用して確認できます。

答えて

0

次のコードは、単にthisがそのオブジェクトのみを参照していることを示しています。そのオブジェクトがグローバルウィンドウにある場合は、オブジェクトを作成し、.hasData()関数プロパティを使用して、そのオブジェクトにアクセスできます。

それ以外の場合はthis.dataにアクセスすることはできません。これは別の機能スコープにあるためです。いくつかの資料を読むことで、それをどのように活用できるかについて詳しく読むことができます。

また、実際のウェブサイト/コードを共有していないので、それがなくても大したことはできません。

herehereについて詳しくは、こちらをご覧ください。 スコープの詳細についてはhereをご覧ください。

関連する問題