2011-12-01 31 views
-4

例:スクリプトタグで定義されたjavascript関数を呼び出す方法は?

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

どのように私はtest()を呼ぶのでしょうか?

編集:私はこれを正しく説明しませんでした。私はちょうど「身体」で関数を呼び出すための構文を探しています

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; 

私には、JavaScriptの機能を含む外部HTMLファイルをロードするためのNode.jsのリクエストモジュールを使用しています。

答えて

3

jQueryはフレームワークであり、JS関数を実行するためには必要ありません。

1

うーん...おそらく私が

test(); 

で行くと思いますしかし、それはjqueryのではありません、それは昔ながらのjavascriptのです。

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(); 
+0

私は次のエラーメッセージが表示されます。TypeError:Object#には 'test'というメソッドがありません –

+0

@camden_kid、それは関数が正しく実行された場合に定義する必要があります。スクリプトとして渡されたjQueryと同じように、そこにもグローバル関数があります...スクリプトはhtmlのように解析されていますか? https://github.com/tmpvar/jsdom – Esailija

+0

Esailija - 'body'をファイルに書き込むと、スクリプトで定義されているすべての関数を見ることができます。私はあなたが何を意味するのか分からない。私は正しいhtmlデータを取得していることを知っています。私は関数の1つを呼び出す方法を理解できません。私はこれを使用した[http://stackoverflow.com/questions/208016/how-to-list-the-properties-of-a-javascript-object](http://stackoverflow.com/questions/208016/how-to私はここでストローで把握しているが、関数が表示されることを意図していたかどうかはわからないが) 。 –

3

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

あなたは上でこれらの機能を有効にする必要があります:jsdomも

ProcessExternalResourcesかどうかを制御し、リソースのバイトを収集するために、ネットワーク/ディスク全体に到達気にするかどうかを

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

FetchExternalResourcesコントロールまたはフェッチされたスクリプトが実行される

これらの名前は、他のリソースタイプ(read:images、cssなど)を含むように選択されています。将来的に追加される予定です。ここでのアイデアは、正常なデフォルトを提供することですが、jsdomの動作に影響する多くの回転可能なノブを持っています。