Câu hỏi jQuery không tải trên trang chính khi trang nội dung nằm trong thư mục con


Tôi có một trang web nơi tôi đang cố gắng để thực hiện một jQuery UI dựa trên MessageBox trong trang chủ của tôi. Các trang nội dung được sắp xếp theo dõi các thư mục khu vực kinh doanh, ví dụ: '~ / Xây dựng thương hiệu / Hợp đồng.aspx'. Tôi thấy rằng khi tôi tải một trang nội dung, jQuery, được tham chiếu trong trang chính như dưới đây, không tải. Tôi cho rằng điều này là do trình duyệt đang yêu cầu 'Xây dựng thương hiệu / Scripts / jQuery'. Những gì tôi có thể làm gì về điều này? Tôi không có toán tử 'root' trong thẻ 'script' đơn giản.

<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>

7
2018-04-08 07:18


gốc




Các câu trả lời:


Sử dụng nó trong MasterPage

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

Vui lòng cho tôi biết nếu bạn đang gặp phải bất kỳ sự cố nào khác.


10
2018-04-08 07:56



Hai xu của tôi. Các <script> phải được đóng đúng cách. Đó là, nó nên có <script></script>. <script /> sẽ không hoạt động tốt với mã phía máy chủ. Tôi không biết tại sao. Nhưng trong trường hợp của tôi, đó là vấn đề - user007
wow cảm ơn vì điều này nó thực sự làm việc cho tôi .. - Rob


Một tùy chọn là "Thuê ngoài" cuộc gọi của bạn tới jQuery với một cái gì đó như Thư viện AJAX của Google. Điều này sẽ cung cấp cho bạn thêm lợi thế của khách hàng của bạn có thể alreading có một phiên bản cache của jQuery.

tôi sử dụng http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js 

Điều này sẽ không giúp bạn nếu bạn có các kịch bản tùy chỉnh khác của khóa học. Đối với điều đó tôi sử dụng sau đây trên trang tải sự kiện của trang chủ để tải lên sciprts phổ biến của tôi.

        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);

Thông thường, thiết lập như là một hàm với một paremter cho đường dẫn kịch bản để làm cho việc tải lên các tệp js nhiều lần dễ dàng hơn.

Ode To Code có một bài viết tuyệt vời trên trang Master và loại điều này:

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


1
2018-04-08 07:28





Tôi biết điều này là cũ, nhưng ai đó có thể đi qua nó như tôi có. Dù sao, bạn có thể đăng ký các tập lệnh này bằng cách sử dụng đối tượng 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>

Điều này sẽ tiếp tục cho phép các tập lệnh của bạn tải mà không cần sử dụng Page.ResolveUrl. Chỉ là một sở thích tôi đoán.


0
2017-08-10 15:59