5

これが可能かどうかはわかりませんが、私のシナリオは次のとおりです。

約 10 個の aspx ファイルに同じ javaScript 関数があります。これらのすべてのページからこれを削除し、すべてのページにグローバルなメインの javaScript ファイル (main.js) に配置することで、保守が容易になります。現在の aspx ページの JavaScript コードは次のようになります。

var regEx_gaid = <%= regEx["regEx_gaid"] %>; 
var regEx_wCard = <%= regEx["regEx_wildCard"] %>; 
var regEx_fCss = <%= regEx["regEx_flattenCss"] %>; 
var regEx_iCss = <%= regEx["regEx_inlineCss"] %>;
...

function doSomething() {
   // do something with those variables declared above.
}

main.js でこれらの変数のサーバー側の値を取得する方法がわかりません。

また、これも関連する可能性があります:

内部の "regEx"<%= regEx["regEx_gaid"] %>はサーバー側の辞書コレクションで、"regEx_gain" は regEx 辞書の値にアクセスするためのキーです。

ありがとう。

4

3 に答える 3

1

スクリプトをに追加してmain.js.aspxからに移動し、main.js.aspxをjavascriptファイルとして使用できますか?main.jsmain.js.aspx

main.js.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="main.aspx.cs" Inherits="TempProject.js.main" %>
var regEx_gaid = <%= regEx["regEx_gaid"] %>; 
var regEx_wCard = <%= regEx["regEx_wildCard"] %>; 
var regEx_fCss = <%= regEx["regEx_flattenCss"] %>; 
var regEx_iCss = <%= regEx["regEx_inlineCss"] %>;

CodeBehind:

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "application/javascript";
    }

その他のファイル:

<script type="text/javascript" src="js/main.js.aspx"></script>
于 2012-08-03T01:58:50.550 に答える
1

変数の内容を出力するだけの別の ASP ページを持つことができます。次に、JavaScript からそのページへの AJAX 要求を行うことができます。

省略形に JQuery を使用する:

var regEx_gaid = "";

$.get('regex_gaid.aspx', function(data) {
  regEx_gaid = data;
});
于 2012-08-03T01:08:13.287 に答える
1

ページでは、 RegisterStartupScriptを使用して、これらの JavaScript 変数を各ページで動的に作成できます。

this.ClientScript.RegisterStartupScript(this.GetType(), "MainVars", "var regEx_gaid = '" + regex_gaid.ClientID + "';", true);

私たちはこのメカニズムを広範囲に使用します: コントロール変数をコード ビハインドに登録し (それらは各ページに出力されます)、中央のスクリプトでそれらを使用します (main.js と同様)。

于 2012-08-03T00:56:13.110 に答える