現在、システムに EnvJS をセットアップしています (ここからインストール)。私の最終的な目標は、ページを読み込み、JavaScript プロセスを数秒間実行してから、dom を読み取って目的の情報を取得することです。ただし、 setTimeout() を機能させて自分の命を救うことはできません(またはその点についてはJQuery)。
プロセスを開始するphpスクリプトがあります:
...
$ENVJS_PATH = "/var/www/project/src/envjs";
$RHINO_JAR = "rhino/js.jar";
$INIT_SCRIPT = "init.js";
$output = shell_exec("java -jar $ENVJS_PATH/$RHINO_JAR -opt -1 $ENVJS_PATH/$INIT_SCRIPT");
echo "Response from javascript:<br/> $output";
...
init.js ファイルは次のようになります。
load('/var/www/project/src/envjs/dist/env.rhino.js');
print("Loaded env.rhino.js<br/>");
// temporarily commented out
//var url = "http://www.ken-soft.com";
//window.location = url;
//print("<br/>Loaded "+url+"<br/>");
// Problem starts here
var runAfterPause=function() {
print("got here..."); // never gets called
print(document.getElementById('some_id').innerHTML);
}
setTimeout(runAfterPause, 3000); //wait three seconds before continuing
// i have also tried setTimeout("runAfterPause()", 3000);
print("<br/>End<br/>");
これに関する知識は大歓迎です。ありがとう。