2017-05-24 2 views
0

私はSwiftで書いているWebスクレーパーセットの関数セットを持っています。JavaScriptCoreライブラリーを使っています... JavaScriptをいくつか実行します。私はウェブからファイルを掻き集めましたが、興味のある機能は2つしかありませんが、ファイルの一部にwindowまたはwindow.currentScript、またはnew window.WeakMapなどのものが含まれています...これらは残念ながら定義されていませんJavaScriptCore。JavaScript/Swift + JavaScriptCore - 定義されていない変数は無視できますか?

これは、例えば、私は取得していたエラーのいずれかです。

:私はその間にやるしようとしてる TypeError: undefined is not an object (evaluating 'window.document.currentScript.src.indexOf')

何かがこのようなモンキーパッチerroringのすべてのものであり、 window={};window.document.currentScript.src={};window.document.currentScript.src.indexOf={}

これをJSに追加します。しかし、もっと良い方法がなければなりません...そうですか?

+0

正規表現を使用する考えはありましたか? ?(?= \ s |; | \)|] | && | \ | \ ||:|}) '...これは完璧ではないが、通常は) – settwi

答えて

0

私がやったことは、windowへの参照を無視していたことです.JSファイルから必要な機能は、ウィンドウやそのプロパティを参照していませんでした。私はいくつかの正規表現のマジック(magix?)を使って、私が望む関数の定義を抽出し、それらの関数のための新しい文字列を作りました。そして、その文字列をJSContext.evaluateScriptに渡しました。これが誰かを助けることを願っています

関連する問題