ページ スクリプトの 1 つに起因すると思われるエラーが表示されます。
file://cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1
return c.apply(undefined,a)}catch(d){webengage.eLog(d);if(!b){throw d}}}else{t
^
TypeError: Cannot call method 'call' of undefined
at new exports.NOT_IMPLEMENTED (/usr/local/lib/node_modules/jsdom/lib/jsdom/browser/utils.js:9:13)
at Object.webengage.eLog (file://cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1:366)
at t.extend.u (file://cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1:19160)
at Object.t.extend.error (file://cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1:19299)
at file://cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1:66518
at Object.webengage.withELog (file://cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1:640)
at Timer.<anonymous> (file://cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1:937)
at Timer.exports.setInterval.timer.ontimeout (timers.js:234:14)
次のコードからこのエラーが発生しています。
try {
var document = jsdom.jsdom(str, null, {});
} catch(e) {
console.log("Got ERROR...");
console.log(e);
}
console.log("Page Document Loaded.");
var window = document.parentWindow;
//console.log(window.document.innerHTML);
console.log(window.innerWidth);
console.log(typeof window.document.getElementsByClassName);
これstr
が以前に取得したhtmlです。印刷された結果、html の innerWidth および typeof getElementsByClassName を確認できます。関数。しかし、約20秒後に上記のエラーが発生し、アプリケーションがクラッシュし、Got ERROR...
上から印刷できなくなります。
私が持っている最初の質問は、最後のものを印刷した後もアプリケーションがまだ実行されているのはなぜですか。これは、window.close() が指定されるまでブラウザでスクリプトが実行され続けるのと同じように、jsdom が実行し続ける通常の動作ですか。
実際の問題は、どうすればこれを解決できるかです。このウィンドウ オブジェクトでいくつかのイベントをトリガーして操作したいのですが、クラッシュし続けます。
スクリプトの URL は少しわかりにくいです。
file://cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1
これは、ページが次の URL を使用して ajax 呼び出しでこのスクリプト リソースを取得しているためです。
//cdn.widgets.webengage.com/js/widget/webengage-min-v-3.0.js:1
jsdom はリソースを取得できますが、このスクリプトにエラーが表示されている行があることを確認しました。