asp.net segnaposto nella testa di una pagina
-
28-09-2019 - |
Domanda
Ho una pagina che include JavaScript che ho solo voglia di correre in certe condizioni. Per fare questo ho messo gli script in un asp: segnaposto
Questo sembra in realtà per il lavoro, ma quando si esegue un debug sulla pagina ottengo il seguente avviso.
Elemento 'segnaposto' non è un elemento conosciuto. Ciò può verificarsi se v'è un errore di compilazione nel sito Web o il file web.config manca.
Se mi muovo i segnaposto nel corpo della pagina l'avvertimento va, ma questo significa che sono rimasto con gli script nel corpo che voglio anche evitare. Qualcuno ha qualche suggerimenti sulle migliori prassi per questo scenario ?? grazie
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
Soluzione
È possibile includere il file JS direttamente dal codice dietro:
If (some condition is true) Then
Page.ClientScript.RegisterClientScriptInclude("jQuery", "jquery-version.js")
End If
Altri suggerimenti
Un paio di modi che si adattano alle vostre esigenze sono:
In primo luogo, si potrebbe cambiare il tag <head>
a <head id="header" runat="server">
allora questo consente di aggiungere in modo dinamico qualsiasi cosa in esso, per es.
dim lt as new Literal()
lt.text = "<script type='text/javascript' src='pathtojavascriptfile'></script>"
me.Header.Controls.Add(lt)
Oppure si potrebbe creare una stringa pubblica sulla tua pagina, poi bastone il javascript in questo.
Public _JS come stringa
Load
_JS = "alert('here');" ' Or what ever your javascript is
ASPX pagina
<head>
<script type="text/javascript" src="jquery-version.js"></script>
<script type="text/javascript">
$().ready(function(){
<%=(me._JS) %>
});
</script>
</head>
Si potrebbe considerare esaminando la ClientScriptManager. Questo vi permetterà di iniettare script nell'intestazione correttamente utilizzando qualsiasi condizioni di cui avete bisogno.
Script Compreso personalizzato client nelle pagine ASP.NET
ClientScriptManager Classe