khi tôi đặt thẻ img, tôi tạo thuộc tính src động. Có cách nào kiểm tra nếu src (đường dẫn mà hình ảnh được nằm) thực sự tồn tại với javascript để tránh bị:xem nếu src của img tồn tại
Trả lời
Bạn có thể sử dụng các sự kiện error
:
var im = document.getElementById('imageID'); // or select based on classes
im.onerror = function(){
// image not found or change src like this as default image:
im.src = 'new path';
};
Version Inline:
<img src="whatever" onError="this.src = 'new default path'" />
Hoặc
<img src="whatever" onError="doSomething();" />
<img>
thẻ hỗ trợ các sự kiện:
abort
(onAbort)error
(onerror)load
(onLoad)
Thông tin thêm:
Tôi thấy trong các diễn đàn khác, rằng nó không hoạt động trong IE, đúng không? –
@Mr: Làm việc cho tôi: http://jsbin.com/egohud – Sarfraz
Phải, cảm ơn! Có lẽ các phiên bản trước đó, những người biết xD cảm ơn. –
bạn có thể thực hiện cuộc gọi ajax trước (với head
phương pháp) và xem mã máy chủ trở lại hoặc bạn có thể sử dụng onerror
sự kiện thay đổi url hoặc làm cho nó ẩn, ví dụ
<img src="notexist.jpg" onerror="this.style.visibility = 'hidden'">
(Tôi đã sử dụng thuộc tính inline chỉ để giải thích ý tưởng)
Ví dụ tuyệt vời. Làm việc như một say mê. –
Bạn đang tiếp cận này một cách sai lầm.
Khi bạn tạo liên kết của mình với tập lệnh phía máy chủ, hãy kiểm tra xem liệu tệp có tồn tại hay không (bằng cách sử dụng file_exists()
trong PHP chẳng hạn).
Bạn không nên dựa vào JavaScript khi bạn có thể làm điều đó ở phía máy chủ, vì JavaScript có thể được thay đổi và vô hiệu hóa.
Tự hỏi mình làm cách nào để tạo thuộc tính src=
và kiểm tra xem tệp có tồn tại hay không và cung cấp giải pháp thay thế.
Nếu bạn tạo src động với javascript bạn có thể sử dụng này:
var obj = new Image();
obj.src = "http://www.javatpoint.com/images/javascript/javascript_logo.png";
if (obj.complete) {
alert('worked');
} else {
alert('doesnt work');
}
Hình ảnh tồn tại trong đường dẫn sau, nhưng nó nói 'không hoạt động' khi tôi chạy đoạn mã. Có phải vì 'chính sách nguồn gốc giống nhau' không? – yalpertem
đó là vì, obj.complete return false. mã được thực hiện ngay lập tức. trong khi trạng thái chưa hoàn thành. vì vậy nó luôn đi đến khối khác –
- 1. Biến cho img src =
- 2. Kiểm tra nếu img src trống sử dụng jQuery
- 3. Xem nếu trường tồn tại trong lớp
- 4. Thẻ SRC IMG và JavaScript
- 5. <img src> w/timeout?
- 6. Nếu tồn tại hoặc tồn tại?
- 7. Nhận src của phần tử img từ div?
- 8. Thay đổi IMG SRC bằng Javascript
- 9. Python 2.7 Beautiful Soup img src Extract
- 10. XSS tấn công với javascript trong img src thuộc tính
- 11. JavaScript nếu var tồn tại
- 12. Nếu Điều kiện tồn tại của dịch vụ
- 13. Tạo nếu không tồn tại
- 14. Tự động thay thế thuộc tính img src bằng jQuery
- 15. Tại sao tôi không thể làm <img src="C:/localfile.jpg">?
- 16. Kiểm tra nếu KeyValuePair tồn tại với LINQ của FirstOrDefault
- 17. làm thế nào để có được giá trị img src
- 18. HTML/Javascript xoá dữ liệu từ img src thuộc tính
- 19. Phát hiện nếu phiên PHP tồn tại
- 20. Thay đổi img src trong thiết kế đáp ứng?
- 21. Kiểm tra sự tồn tại của thư mục và tạo ra nếu không tồn tại
- 22. XSLT nếu thuộc tính tồn tại/else
- 23. XPath để phân tích cú pháp "SRC" từ thẻ IMG?
- 24. jQuery để kiểm tra hình ảnh tồn tại nếu đầu 404 ẩn nó
- 25. Cách xem tệp .img?
- 26. Kết hợp thuộc tính SRC của thẻ IMG bằng cách sử dụng preg_match
- 27. Chỉ mkdir nếu nó không tồn tại
- 28. PHP nếu có nhiều biến tồn tại
- 29. MySQL: Chèn nếu khóa ngoài tồn tại
- 30. Tạo tệp nếu tệp không tồn tại
bạn có thể muốn xem xét sử dụng một kịch bản phía máy chủ để kiểm tra này như các trình duyệt có thể Javascript bị vô hiệu. – rogerlsmith
Xác định "thực sự tồn tại".Vì chính sách xuất xứ giữa nhiều miền, bạn sẽ không thể kiểm tra hình ảnh mà trình duyệt truy xuất từ trang web từ xa bằng Javascript, vì vậy những gì bạn đang yêu cầu có thể là không thể. Bạn có thể gửi URL đến máy chủ và tải xuống tệp, nhưng đó là ý tưởng tồi từ quan điểm bảo mật. – Borealid
Tôi đã tìm thấy bài đăng này. Nó sẽ giúp bạn. http://www.irt.org/script/52.htm –