1

既存の.jsファイルに関数を配置して(2つの異なるファイルを試しました)、コードを繰り返さなくてもメソッドを複数の場所で使用できるようにしました。関数が混乱していないことを確認するために、単純な関数を作成しました。

function doNothing() {
    alert("Dammit."); 
}

.ascxコントロールのインテリセンスリストにメソッドが表示されますが、ステップインしようとするとすぐに失敗します。

以下は私がファイルを参照しようとした方法であり、メソッドを見る限りは機能しているように見えましたが、機能しません。

<script src="/javascript/messages.js" language="javascript" type="text/javascript"></script>

何か案は?私が犯しているかもしれないよくある間違いはありますか?動作するようです。

注:メソッドが.ascxファイル内にある場合、セミコロンが欠落していても正常に機能します。

4

1 に答える 1

2

IntelliSenseが提案し"/javascript/messages.js"た場合でも、アプリケーションがWebサイトのルートではなく仮想ディレクトリにインストールされていると、パスが間違ってしまいます。たとえば、JavaScriptファイルの完全なURLはhttp://www.example.com/myapp/javascript/messages.jssrcにありますが、属性がで始まるため/、ブラウザはhttp://www.exampleにアクセスします。代わりに.com/javascript / messages.js(「myapp」仮想ディレクトリなし)。

WebFormsを使用している場合はsrc、次のように属性を変更できます。

src='<%= this.Page.ResolveClientUrl("~/javascript/messages.js") %>'
于 2012-04-17T02:46:01.107 に答える