Ich versuche, JQuery mit einigen Asp.net-Seiten zu verwenden, die Masterseiten verwenden, und ich habe Probleme mit dem Laden der JQuery-Javascript-Datei.JQuery mit MasterPage in ASP.NET
Wenn ich die Datei im Markup der Masterseite enthalten, es funktioniert ganz gut auf den Seiten, die in demselben Verzeichnis wie die Master-Seite sind:
<script src="jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
aber das bricht für Seiten, die nicht sind im selben Verzeichnis wie die Masterseite. Masterseiten erben den Pfad der Seite, auf der sie enthalten sind, sodass der relative Pfad zur JQuery-JS-Datei für verschiedene Seiten unterschiedlich ist. Und natürlich kann ich in der Master-Datei keine verschiedenen relativen Pfade haben, da es nur einen von ihnen gibt.
Ich konnte einen absoluten Pfad verwenden:
<script src="/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
aber das bricht, wenn die Website als virtuelles Verzeichnis installiert ist.
Mein nächster Versuch war die „~“ verwenden, um den Stamm der Website anzuzeigen.
<script src="~/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
Aber das Script-Tag nicht verstehen, die ~“
Also habe ich versucht zu tun . in der Code-Behind von OnInit() ich habe versucht:
string url = "~/jquery/jquery-1.4.2.min.js";
url = this.ResolveUrl(url);
Page.ClientScript.RegisterClientScriptInclude("jquery_js", url);
Und das gibt mir Fehler bei der JQuery JavaScript läuft ich im Markup der Seite einige Javascript haben.
$(document).ready(function()
{
...
}
und ich bekomme "$" ist undefiniert. Ich habe eine Warnung an den Anfang von jquery-1.4.2.min.js hinzugefügt, und es wird geladen, aber nachdem dieses Bit Javascript in der ASPX-Datei ausgeführt wurde.
Ich versuchte ScriptManager.RegisterClientScriptInclude(), stattdessen mit dem gleichen Ergebnis.
Was ist der HTML-Code, den Ihr letztes Beispiel tatsächlich generiert? Wird es nach dem Skript-Tag eingefügt, das Ihren $ (document) .ready-Handler enthält? – Goyuix
Nein. Und das ist das Problem. (Oder das letzte Problem. Wenn es nicht für die Masterseite gewesen wäre, hätte ich die Links vor dem Skript einfügen können. Das Hinzufügen der Links aus dem Code-Behind ließ mich nicht kontrollieren, wo sie hingehörten. –