2010-04-08 17 views
7

Mam witrynę, na której próbuję zaimplementować MessageBox oparty na interfejsie jQuery na mojej stronie wzorcowej. Strony treści są uporządkowane według folderów obszaru biznesowego, tj. "~/Branding/Contracts.aspx". Uważam, że po załadowaniu takiej strony zawartości, jQuery, która jest przywoływana na stronie wzorcowej, jak poniżej, nie ładuje się. Zakładam, że dzieje się tak dlatego, że przeglądarka prosi o "Branding/Scripts/jQuery". Co mogę z tym zrobić? Nie mam operatora "root" w zwykłym tagu "script".jQuery nie ładuje się na stronie wzorcowej, gdy strona zawartości znajduje się w folderze podrzędnym

<script src="/Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<script src="Scripts/jquery-1.3.2.js" type="text/javascript"></script> 
<script src="Scripts/jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script> 

Odpowiedz

9

wykorzystać te informacje w swojej MasterPage

<script src="<%= ResolveUrl("~/Scripts/jquery-1.3.2.js") %>" type="text/javascript" /> 

Proszę dać mi znać, jeśli stoją dowolny kłopoty dalej.

+0

Moje dwa centy. Znacznik ''. '

1

Jedną z opcji jest „outsourcing” wezwanie do jQuery coś jak Googles AJAX libraries. Zapewni to dodatkową korzyść dla klientów, którzy mogą mieć dostęp do buforowanej wersji jQuery.

używam http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js

To przyzwyczajenie pomóc, jeśli masz inne niestandardowe skrypty oczywiście. W tym celu używam następujących elementów na stronie ładowania strony głównej, aby załadować moje wspólne sciprty.

 HtmlGenericControl myJs = new HtmlGenericControl(); 
     myJs.TagName = "script"; myJs.Attributes.Add("type", "text/javascript"); 
     myJs.Attributes.Add("language", "javascript"); //don't need it usually but for cross browser. 
     myJs.Attributes.Add("src", ResolveUrl("~/scripts/jquery-ui-1.7.2.custom.min.js")); 
     this.Page.Header.Controls.Add(myJs); 

Zwykle skonfigurowany jako funkcja z makietą dla ścieżki skryptu ułatwiającej ładowanie wielu plików js.

Oda do kodu ma Fantatic artykuł na Master Pages i tego typu rzeczy:

http://odetocode.com/Articles/450.aspx

0

Wiem, że jest stary, ale ktoś może się z nim zetknąć, tak jak ja. W każdym razie możesz zarejestrować te skrypty za pomocą obiektu ASP ScriptManager.

<asp:ScriptManager ID="ScriptManager" runat="server"> 
    <Scripts> 
     <asp:ScriptReference Path="Scripts/jquery-1.8.3.js" /> 
     <asp:ScriptReference Path="Scripts/bootstrap.js" /> 
     <asp:ScriptReference Path="Scripts/general.js" /> 
    </Scripts> 
</asp:ScriptManager> 

Pozwoli to na ładowanie skryptów bez użycia strony.ResolveUrl. Chyba tylko preferencję.

Powiązane problemy