2016-04-13 6 views
1

jsファイルから別のファイルに関数をアクセスする際に問題があります。

jqueryを使用してこの問題を解決しようとしましたが、動作しないようです。ブラウザでの私のコンソールだけでログに記録します: "http://localhost:58763/orderPicking.js?_=1460542934750を" GET:

http://localhost:58763/orderPicking.js?_=1460542934750 404 (Not Found).

XHRはロードが完了しました。

私のjsはこのように見えます。これは私が他の.jsファイル(機能にアクセスすることができるはず1)は次のようになります

function HelloWorld() { 
    //print Hello World 
    alert("hello world!"); 
} 

ファイル別の.jsからアクセスする機能を有するものです。

test(); 

function test() { 
    $.getScript('orderPicking.js', function() { 
     HelloWorld(); 
    }); 
} 

私はあなたたちは問題のトラブルシューティング私を助けることを願って、私のindex.html

<script type="text/javascript" src="views/OrderPicking/orderPicking.js"</script> 
<script type="text/javascript" src="views/OrderPicking/orderLines.js"></script> 

にこれを追加しました。

+0

ファイル名/場所が正しいですか?おそらくそれはサブフォルダにありますか?ブラウザ/サーバーが、その場所でファイルを見つけることができないと報告しています。 –

+0

はい、私は彼らが正しいと思う、彼らは同じフォルダに配置され、パスはこのように見える "views/OrderPicking /"両方のファイルはここに配置されます " –

+0

簡略化された例を作成し、jsfiddleまたは同様の上に置く。 – datashaman

答えて

1

置き、このコードをのindex.htmlに:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>getScript example</title> 
</head> 
<body> 
    <div id="panel"></div> 

    <script src="http://code.jquery.com/jquery-2.2.3.min.js"></script> 
    <script src="orderLines.js"></script> 
</body> 
</html> 

function test() { 
    $.getScript('views/OrderPicking/orderPicking.js', function (data) { 
     console.log(data); // should be the js file contents 
     HelloWorld(); // should alert 
    }); 
} 

あなたはjQueryの1.5以降を使用している場合は、それはとても似donefailコールバックを使用するのが最善です

このコードをに置くと、同じフォルダ内の012L

$(function() { 
    $.getScript('orderPicking.js', function() { 
    HelloWorld(); 
    }) 
}) 

場所orderPicking.js同じフォルダにでこのコード:

function HelloWorld() { 
    $('#panel').html('<h1>hello world!</h1>'); 
} 

は(同じフォルダ内にいる間)のサーバを実行するためのコマンドラインユーティリティを使用してください。 NBhttp://localhost:8080

php -S localhost:8080 

ブラウズ、あなたはハロー世界を見る必要があります。ファイルプロトコルが動作しません、あなたは、このためにサーバーを使用する必要があります!

上記のコードはin a gistです。警告の代わりにページ上のメッセージが表示されるように若干変更されています。

要旨コードrunning on bl.ocks.org。アラートコールを許可しないサンドボックス環境であるため、代わりにh1タグを追加するように変更しました。

NB getScript URLパラメータは、サイトのルートからの相対パスです。したがって、あなたの場合、getScript( 'views/OrderPicking/orderPicking.js'、...)を使用する必要があります。

+0

回答ありがとうございます。しかし、別の.jsファイルから関数を呼び出すにはどうすればいいですか? –

+0

編集して、別のファイルから関数を呼び出します。そう? – datashaman

+0

お返事ありがとうございます。私は404エラーが発生したら、orderPicking.jsを見つけることができないようです。 –

3

The path will be relative to the page it's loaded from (not the path of your init script) since that's the url the browser will be at when it executes the ajax request.

文書の準備ができた後に(単に$(document).ready(function() { // code });は十分であろう、このためのチェックのいくつかの並べ替えがありますことを確認してください)あなたのjQueryコードが起こっていることを確認してください。それが準備ができていると仮定すると、下がうまくいくはずです。

$.getScript('views/OrderPicking/orderPicking.js') 
    .done(function (script) { 
     HelloWorld(); 
    }) 
    .fail(function (jqxhr, settings, exception) { 
     console.log('something went wrong!'); 
    }); 
+0

返事ありがとうございます。エラー:' Uncaught ReferenceError:HelloWorldが定義されていません '。私は両方の方法を試しました。 –

+0

代わりに 'Commit.orderPicking()。HelloWorld()'を呼び出してみてください – Shakespeare

関連する問題