2011-11-28 41 views
7

tôi là tạo ra một dự án web động trong Eclipse (gần như từ đầu) và tôi đã tạo ra một tập tin JSPX nơi tôi đặtBao gồm các file JS (JQuery) trong JSPX file

<head>... 
<script type="text/javascript" src="route/to/scripts/jquery.js"></script> 
<script type="text/javascript" src="route/to/scripts/jquery.ui.js"></script> 
<script type="text/javascript" src="route/to/scripts/something.js"></script> 
</head> 

Tôi có ý định sử dụng Jquery UI sortable và tôi phát hiện ra rằng bằng cách sử dụng JSPX, chỉ có kịch bản đầu tiên tải trong Firefox và IE (trong khi trong opera nó hoạt động ...). Nếu tôi sử dụng JSP đơn giản, cho dù HTML của XHTML, nó tải tất cả các tệp JS.

Có cách nào để bao gồm tất cả các file JS thành công mà không sử dụng

<script> 
<jsp:include ...> 
</script> 

rằng tôi phải nhận thức được? (bởi vì điều này tải kịch bản INTO cuối cùng (X) HTML)

EDIT: Chỉ cần suy nghĩ ... tại sao Opera đọc quyền xhtml trong khi FF và IE không thành công khi đọc các thẻ <script>? Nó có thể là một lỗi?

Trả lời

9

JSPX có hành vi kỳ quặc là nó tự động thu gọn các thẻ không có nội dung. Vì vậy, hiệu quả

<script type="text/javascript" src="route/to/scripts/jquery.js"></script> 
<script type="text/javascript" src="route/to/scripts/jquery.ui.js"></script> 
<script type="text/javascript" src="route/to/scripts/something.js"></script> 

sẽ kết thúc trong trình duyệt như

<script type="text/javascript" src="route/to/scripts/jquery.js" /> 
<script type="text/javascript" src="route/to/scripts/jquery.ui.js" /> 
<script type="text/javascript" src="route/to/scripts/something.js" /> 

đó là không hợp lệ <script> cú pháp (trang rightclick trong trình duyệt và làm View Source để xem nó cho mình). Hành vi trình duyệt chưa được xác định.

Bạn có thể workaround này bằng cách đặt một <jsp:text /> giữa các thẻ

<script type="text/javascript" src="route/to/scripts/jquery.js"><jsp:text /></script> 
<script type="text/javascript" src="route/to/scripts/jquery.ui.js"><jsp:text /></script> 
<script type="text/javascript" src="route/to/scripts/something.js"><jsp:text /></script> 
+0

Vì vậy, nó khá lừa cùng yêu cầu trên IE6 mà yêu cầu một số loại & nbsp, & # 160 hoặc lâu hơn. Tôi sẽ thử nó ngay bây giờ hehe – Alfabravo

+0

Bên trong '', bạn có nghĩa là? Vâng, đó thực sự là một nguyên nhân khác nhau :) – BalusC

+0

Không, trong một số ứng dụng trên Cocoon tôi làm việc, mọi người đặt thẻ với thẻ đóng nhưng không có bất cứ điều gì giữa và các công cụ serialized rõ ràng là tốt. Bằng cách nào đó, IE6 không nhận được JS trừ khi một số khoảng trắng (" ") được thêm vào giữa các thẻ cho mỗi tập lệnh. Cũng xảy ra với các thẻ "a" có hình nền và không có văn bản, hình ảnh của chúng không hiển thị trừ khi một số không gian được thêm vào. – Alfabravo

Các vấn đề liên quan