2011-04-19 23 views
10

Khi tôi bao gồm tệp js sau (với jquery trong đó), tôi nhận được lỗi trong Firebug "XML không thể là toàn bộ chương trình"XML không thể là toàn bộ chương trình

JS tệp bao gồm tham chiếu: nội dung tập tin

<script src="~/Scripts/scriptname.js" type="text/javascript"></script> 

JS:

$("[id*='txtAddress1S']") 
    .blur(function(){ 
    $("[id*='txtAddress1S']") 
     .val().match(
      /\b[p]*(ost)*\.*\s*[o|0]*(ffice)*\.*\s*b[o|0]x\b/i)&& 
     (alert("Packages are not deliverable to a Post Office Box. 
     \nPlease provide a different shipping address."), 
    $("[id*='txtAddress1S']").focus()) 
    }); 

Cảm ơn trước!

+6

Đó là một lỗi Firebug lạ. – BoltClock

+2

Tệp js không chứa thẻ 'script', phải không? –

+0

Trang của bạn cũng có jquery * .js hoặc jquery * min.js không? – justkt

Trả lời

10

Có thể là thuộc tính của tập lệnh src không được hiểu đúng với số ~ và được phân tích cú pháp dưới dạng thẻ rỗng <script> thay thế. Sử dụng đường dẫn đầy đủ đến tệp javascript hoặc đường dẫn tương đối với trang đang tải trên:

<script src="/full/path/to/Scripts/scriptname.js" type="text/javascript"></script> 
<script src="../relative/to/Scripts/scriptname.js" type="text/javascript"></script> 
+0

Đây là nó. Firefox không thích ~ trong đường dẫn tương đối của tôi. – s15199d

+0

@ s15199d Rất vui được trợ giúp. –

4

Vì một số lý do, tệp kịch bản của bạn đang được Firefox xử lý dưới dạng tệp XML. Tôi đoán là bạn đã bao gồm các thẻ script trong tệp Javascript của mình. Ví dụ.

<script> 
    $("[id*='txtAddress1S']").blur(function(){$("[id*='txtAddress1S']").val().match(/\b[p]*(ost)*\.*\s*[o|0]*(ffice)*\.*\s*b[o|0]x\b/i)&&(alert("Packages are not deliverable to a Post Office Box.\nPlease provide a different shipping address."),$("[id*='txtAddress1S']").focus())}); 
</script> 

Bạn không cần script thẻ trong tệp JS bên ngoài.

Các lỗi tương đương trong Chrome là

Uncaught SyntaxError: Unexpected token <

0

Chụp từ hông: Tôi thực sự đã nhận lỗi này bởi vì tôi đã thêm một ánh xạ ký tự đại diện cho aspnet_isapi.dll trong IIS của tôi 5.1/WinXP (đối với một số công việc liên quan MVC) . Điều này có nghĩa là các tệp .js được IIS xử lý khác nhau. Khi tôi xóa bản đồ, lỗi bạn mô tả biến mất.

0

Chỉ có lỗi tương tự. Đảm bảo tệp javascript chứa tệp < script>. Một khi chúng được rút khỏi tệp bao gồm của bạn, lỗi sẽ biến mất (giả sử đó là tất cả những gì sai).

1

Tôi tìm thấy một lý do khác cho "XML can't be the whole program trong FF và Uncaught SyntaxError: Unexpected token < trong Chrome. Trong trường hợp của tôi, mọi thứ đều thất bại với ScriptResource.axd.

Lý do là tôi đang phân phát một số trang từ https và tôi có người quản lý chuyển đổi giữa các yêu cầu http và https tùy thuộc vào những gì hiện được yêu cầu. Do cấu hình không đúng, người quản lý đang phân phối ScriptResource.axd luôn trên http, điều này đã gây ra lỗi trên các trang https.

1

Tôi đã gặp lỗi này cùng ngày hôm nay. Trong trường hợp của tôi, đó là vì tôi không sử dụng mã HTML cho các ký tự đặc biệt trong URL của tôi khi thực hiện yêu cầu AJAX. Ví dụ ...

Sử dụng &amp; thay vì sử dụng &

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