Tôi muốn phát hiện xem thẻ tập lệnh (được tạo động và thêm vào DOM) không tải được. Sự kiện onerror hoạt động, ngoại trừ với các tệp: // URL trong Firefox.Cách phát hiện tải tập lệnh của một tệp: // URL không thành công trong Firefox?
Rất tiếc, không có kỹ thuật nào trong số các kỹ thuật described here (ngoại trừ thời gian chờ, không được chấp nhận trong trường hợp của tôi) có vẻ hoạt động trong Firefox nếu src của thẻ tập lệnh là một tệp: // URL (hoặc URL tương đối và trang được tải qua file: // URL)
Kiểm tra trường hợp:
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'doesnotexist.js');
script.onerror = function() { alert("Loading failed!"); }
document.getElementsByTagName('head')[0].appendChild(script);
tải này trong một trang HTML với một file: // URL. Sự kiện onerror sẽ không thực thi trong Firefox. Tải từ máy chủ web hoặc trên Safari hoặc Chrome và nó sẽ.
Điều này có vẻ giống như một lỗi đối với tôi. Có cách nào biết xung quanh nó không?
Bạn nên chấp nhận câu trả lời cho câu hỏi của mình. – SLaks
@Marcel Korpel: Anh ấy nói rằng thời gian chờ không phải là một lựa chọn, vì vậy điều đó sẽ không hiệu quả. – PleaseStand
Để tham khảo, vấn đề với Firefox không kích hoạt sự kiện 'lỗi' khi URL dựa trên' file: // 'không tải được là [Bugzilla bug 621276] (http://bugzilla.mozilla.org/show_bug.cgi? id = 621276). –