-2

例:

<script type="text/javascript">
    function test() {
        console.log("Hello world");
    }
</script>

どのように電話しtest()ますか?

編集:これを正しく説明しませんでした。

node.js の request モジュールを使用して、javascript 関数を含む外部 html ファイルをロードしています。

request.get(options, function (error, response, body) {
    if (error && response.statusCode !== 200) {
    }
    else {
        jsdom.env({
            html: body,
            scripts: ["../jquery-1.6.4.min.js"]
        }, function (err, window) {
            var $ = window.jQuery;

「本体」で関数を呼び出すための構文を探しています。

4

4 に答える 4

5

したがって、ここでの問題は、デフォルトでは、jsdom.envマークアップの処理中に見つかった JavaScript を実行しないことです。

これらの機能をオンにする必要があります。

jsdom.env({
  // ...
  features : {
    FetchExternalResources : ['script'],
    ProcessExternalResources : ['script']
  }
});

FetchExternalResourcesリソースのバイトを収集するために jsdom がネットワーク/ディスク全体にアクセスする必要があるかどうかを制御します

ProcessExternalResourcesまたは取得したスクリプトを実行するかどうかを制御します

これらの名前は、将来追加される他のリソース タイプ (画像、CSS など) を含むように選択されていることに注意してください。ここでの考え方は、適切なデフォルトを提供することですが、jsdom の動作に影響を与える多くの回転可能なノブを用意することです。

于 2011-12-10T08:12:27.493 に答える
3

ページ上の他の関数と同じように呼び出すだけです。jQuery はフレームワークであり、JS 関数の実行には必要ありません。

于 2011-12-01T16:49:13.447 に答える
1

うーん...おそらく私は一緒に行くだろう

test();

しかし、それは jquery ではなく、単純な古い JavaScript です。

于 2011-12-01T16:49:52.020 に答える
1

これを試して:

 ...

     function (err, window) {
                    var $ = window.jQuery;
                    window.test();

...

あなたも試すことができます:

<script type="text/javascript" id="myscript">
    function test() {
        console.log("Hello world");
    }
</script>

その後:

function (err, window) {
                        var $ = window.jQuery;
                        (1,window.eval)( $("#myscript").html() );
                        window.test();
于 2011-12-01T20:43:04.170 に答える