2

特定の条件下でのみ実行したい JavaScript を含むページがあります。これを行うために、スクリプトを asp:placeholder に配置しました

これは実際には機能しているように見えますが、ページでデバッグを実行すると、次の警告が表示されます。

要素 'placeholder' は既知の要素ではありません。これは、Web サイトにコンパイル エラーがある場合、または web.config ファイルが見つからない場合に発生する可能性があります。

プレースホルダーをページの本文に移動すると、警告が表示されますが、それは本文にスクリプトが残っていることを意味しますが、これも避けたいと考えています。このシナリオのベストプラクティスに関するヒントはありますか?? ありがとう

Sub Page_Load(ByVal Sender as Object, ByVal E as EventArgs)

dim lt as new Literal()
lt.text = "<script type='text/javascript' src='scripts/pageLoadAnimations.js'></scr" & "ipt>"
me.Header.Controls.Add(lt)

End Sub
4

3 に答える 3

3

コード ビハインドから直接 JS ファイルを含めることができます。

If (some condition is true) Then
   Page.ClientScript.RegisterClientScriptInclude("jQuery", "jquery-version.js")
End If
于 2010-11-01T12:26:03.587 に答える
1

ニーズに合ったいくつかの方法は次のとおりです。

まず、<head>タグを次のように変更でき<head id="header" runat="server">ます。これにより、動的に何かを追加できます。

dim lt as new Literal()   
lt.text = "<script type='text/javascript' src='pathtojavascriptfile'></script>"  
me.Header.Controls.Add(lt)

または、ページに Public 文字列を作成し、これに JavaScript を貼り付けることもできます。

パブリック _JS を文字列として

Page_Load

_JS = "alert('here');" ' Or what ever your javascript is

ASPXページ

<head>
    <script type="text/javascript" src="jquery-version.js"></script>
    <script type="text/javascript">
       $().ready(function(){
          <%=(me._JS) %>
       });
    </script>
</head>
于 2010-11-01T11:02:45.700 に答える
0

ClientScriptManager を調べることを検討してください。これにより、必要な条件を使用して、スクリプトをヘッダーに適切に挿入できます。

カスタム クライアント スクリプトを ASP.NET ページ
の ClientScriptManager クラスに含める

于 2010-11-01T12:26:26.753 に答える