Je veux exécuter JavaScript lorsque le document est prêt sans trop de surcharge de syntaxe. L'idée est d'utiliser Site.Master
et ContentPlaceholder
:jQuery document.ready + Asp.Net ContentPlaceholder provoque des problèmes d'intuition Visual Studio
<script type="text/javascript">
$(document).ready(function() {
<asp:ContentPlaceHolder ID="OnReadyScript" runat="server" />
});
</script>
et dans les pages héritées il suffit d'écrire un code simple:
<asp:Content ID="Content3" ContentPlaceHolderID="OnReadyScript" runat="server">
$("#Login").focus();
</asp:Content>
Il fonctionne très bien, mais Visual Studio se plaint et donne des avertissements.
L'avertissement sur la page type est Expected expression
à la ligne <asp:ContentPlaceHolder
.
Dans avertissement pages héritées est Could not find 'OnReadyScript' in the current master page or pages.
J'ai essayé d'utiliser Writer.Write
à la page principale pour rendre balise script
et le code d'emballage:
<% Writer.Write(@"<script type=""text/javascript"">$(document).ready(function() {"); %>
<asp:ContentPlaceHolder ID="OnReadyScrit" runat="server" />
<% Writer.Write(@"});"); %>
, mais le rendu des pages se termine après l'ouverture balise de script est rendu. Html se termine essentiellement par
<script type="text/javascript">
Comment puis-je le faire fonctionner?
Identique à 'Writer.Write' - rendu se termine après l'ouverture balise' script'. '$ (document) ...' n'est pas rendu. On dirait qu'il existe une sorte de protection intégrée de l'injection JavaScript dans Asp.Net. –