2012-05-31 4 views
6

Tôi có một mã nhỏ trong trang của tôi vớiChrome có ngừng chạy một số mã javascript nhất định không vì nó có các ngoại lệ không?

<script type="text/javascript"> 
function doPost() { 
document.forms["form"].submit(); 
} 
    function Func1Delay() 
{ 
setTimeout("doPost()", 0); 
} 

....

<body onload="Func1Delay()"> 

Tôi có lỗi này trong giao diện điều khiển nói

lỗi chưa gặp: Không thể gọi phương thức 'tạo ra' của undefined

và bên phải, đó là do tiện ích mở rộng chrome MeasureIt. Khi tôi tắt nó, kịch bản của tôi hoạt động. Có cách giải quyết nào cho vấn đề này không?

Cảm ơn bạn.

+0

Làm cách nào để "chặn" mã của bạn? –

+1

Tôi cho rằng có thể một phần mở rộng xung đột với JavaScript từ trang. Liệu lỗi vẫn xảy ra nếu mã của bạn không có trong trang? –

+0

Vâng, tôi xóa mã javascript và để cơ thể onload = "functionDelay()" ở đó. Nó vẫn có lỗi đó. – Matt

Trả lời

3

Câu trả lời ngắn gọn là CÓ. Nhưng câu trả lời hoàn chỉnh là KHÔNG, không phải Chrome, mà là một số tiện ích mở rộng can thiệp vào mã của bạn. Ví dụ:

1) Tập lệnh nội dung có thể thêm người nghe và sử dụng stopPropagation. Trong trường hợp này, mã của bạn sẽ không nhận được sự kiện đó. Tôi có thể tạo ra một kịch bản cụ thể hơn khi kịch bản nội dung thất bại và do đó ngăn không cho người nghe khác thực thi.

2) Tập lệnh nội dung có thể gây rối với các yếu tố trên trang của bạn. Nó có thể loại bỏ một số, và thêm nợ của nó. Điều gì sẽ xảy ra nếu phần mở rộng thêm một phần tử SCRIPT với một var hoặc hàm có tên chính xác giống với một trong các phần tử của bạn?

Chúng tôi không thể chắc chắn về cách viết "mã" của tiện ích.

Nhân tiện, có rất nhiều phần mở rộng của Chrome ảnh hưởng đến các trang. Một vài tháng trước, phần mở rộng Skype cho Chrome đã bị kết tội và làm mất ổn định các trang web và phát lại video trong trình duyệt đó.

+0

Tiện ích mở rộng cụ thể đó cũng đã phá vỡ quyền truy cập vào một trong các trang của tôi. – mdiener