0

次のように、コード ビハインドに Javascript 関数を記述しました。

Page.ClientScript.RegisterClientScriptBlock(
    Page.ClientScript.GetType(),
    "MyScript",
    "<script type='text/javascript'>" +
        "var urls="+s +
        "function carousel(params) { ... }" +
    "</script>");

クライアント側 (ASPX ページのレベル) のコード ビハインドに記述した JavaScript 関数を呼び出すにはどうすればよいですか?

4

4 に答える 4

0

まず、urls 変数が間違っているように見えます。それがあなたの実際のコードかどうかはわかりませんが、すべての行の終わりにある行と改行に対してこれを試してください。

"var urls='"+s + "';\n"

第二に、使用する必要がありますPage.GetType()

その後呼び出すには、通常どおりhtmlページでJS関数として呼び出すことができますが、ASP.Netページで登録して呼び出す場合RegisterStartupScriptは、ページの最後に登録されているので使用する必要があります。

Page.ClientScript.RegisterStartupScript(
    Page.GetType(),
    "callScript",
    "<script type='text/javascript'>" +
        "carousel('"+paramFromServerSide+"');" +
    "</script>");

MSDN のその他の情報

于 2012-07-18T15:12:53.877 に答える
0

重要な注意: これは JavaScript 関数を追加する正当な方法ですが、サーバー側とクライアント側のコードが混在しているため、この方法を使用しないことを強くお勧めします。これを頻繁に行うと、コードベースの保守が困難になります。

あなたの関数はグローバルなクライアント側関数です

関数はグローバル スコープで定義されているため、次のようにクライアント側のスクリプトから直接アクセスできます。

carousel(params);

ただし、他のグローバル関数がそれをオーバーライドしないようにする必要があります (呼び出しようとして予期しない結果が得られた場合に備えて)。

関数はまだ定義されていませんか?

関数が定義されていない理由はたくさんあります。関数に構文エラーがある可能性もあります。

ともかく。グローバル機能は、ブラウザーの開発ツール (Firefox の Firebug または Chrome の開発ツール) を使用していつでも確認できます。押すだけF12で表示されます。スクリプトタグを開いて調べます...

関数が見つからない場合は、コード ビハインドからブラウザー開発ツールのコンソール ウィンドウにコピーして (もちろん、これらの文字列の引用符をサニタイズしながら)、その構文を確認し、ブラウザーがそれをどのように認識しているかを確認できます。:)

于 2012-07-18T14:53:14.260 に答える
0

ここに画像の説明を入力 次のコードを試してください

コードビハインド:

protected void Page_Load(object sender, EventArgs e)
    {
        string s = "Hello"; // change it what ever you have i used it for testing
        Page.ClientScript.RegisterClientScriptBlock(
        Page.GetType(),
       "MyScript",
       "<script type='text/javascript'>" +
        "var urls=" +"'"+s+"';\nfunction carousel() { alert(urls); }" +
        "</script>");     
    }

ボタンコントロールを使用しました。

<asp:Button ID="Button1" runat="server" OnClientClick="carousel();"  Text="Click Me" />

JavaScript関数でパラメータを使用したい場合は

ここに画像の説明を入力 以下のコードを使用してください

コードビハインド:

protected void Page_Load(object sender, EventArgs e)
    {
       string s = "www.stackoverflow.com";
    Page.ClientScript.RegisterClientScriptBlock(
    Page.GetType(),
   "MyScript",
   "<script type='text/javascript'>" +
    "var urls=" +"'"+s+"';\nfunction carousel(param) { alert('param value:'+param+'  s value:'+urls); }" +
    "</script>");         
    }


<asp:Button ID="Button1" runat="server" OnClientClick="carousel(1);" Text="Click Me" />

それがあなたが正しい方向に進むのを助けることを完全に願っています。

于 2012-07-18T15:47:00.433 に答える
0

ページのマークアップでは、関数への参照を作成するだけで済みます。通常は、他の JavaScript 関数の場合と同様に、onClick などのイベント ハンドラーで、次のようにパラメーターを指定する必要があることを理解してください。適切な...例

<input type='button' onclick="carousel(1)"/>
于 2012-07-18T14:52:41.523 に答える