2012-06-06 36 views
6

CẤP: IE phiên bản 7 và 8 không hiển thị được cập nhật IMG SRC thay đổi được thực hiện trong JavaScriptIE không hiển thị được cập nhật thay đổi IMG SRC thực hiện trong Javascript

Bạn có thể thấy những gì tôi có nghĩa là nếu bạn đi đến URL bên dưới, và bên trái dưới (3) Tôi muốn một lớp lót khác nhau, bạn chọn một trong các mẫu màu; cho phép nói rằng bạn chọn "Asahi Chartreuse". Lưu ý rằng không có gì xảy ra với bản xem trước ở bên trái. NHƯNG sau đó nếu bạn tiếp tục và chọn một mẫu khác, bạn sẽ thấy bản xem trước ở ca bên trái để hiển thị Asahi Chartreuse. Vì vậy, nó là một phía sau. Đây là lý do tại sao tôi tin rằng đó là một vấn đề "làm mới". Nó hoạt động trong Chrome tốt.

Trong IE: Lưu ý nếu bạn nhấp vào một số điều khiển khác, quá trình làm mới sẽ xảy ra.

Bạn có thể xem mã ở đây: https://www.casemodo.com/test.asp

GÌ Tôi đã cố gắng cho FAR:

Tôi đã thử thêm tiêu đề để nói "no-cache".

Tôi đã thử thêm "?" và số ngẫu nhiên sau tên tệp png.

Tôi đã thử đặt tiêu điểm() thành hình ảnh sau khi thay đổi src.

Tôi đã thử, sau khi thay đổi src, yêu cầu style.display bị ẩn và sau đó hiển thị.

Tôi đã thử tạo hộp nhập văn bản ẩn (và không ẩn) trên trang rồi đặt tiêu điểm() thành nó sau khi thay đổi img src.

Tôi đã thử đặt window.focus().

Tôi đã thử (như bạn thấy bây giờ) thiết lập cảnh báo sau khi thay đổi src.

GUESS: Có vẻ như bây giờ là công cụ JavaScript chỉ tạm dừng sau khi tôi đặt src UNTIL bạn bấm thủ công (lấy nét) ở một nơi khác trên màn hình. Vì vậy, nó thậm chí không bao giờ được tất cả các kịch bản mà tôi đã thử ở trên.

+0

Vui lòng chỉ cho chúng tôi mã của bạn (html + js) – iddo

Trả lời

0

Tôi đã thấy các vấn đề tương tự về IE được giải quyết với việc gán lại nội dung dường như kỳ lạ của innerHTML. Giả sử "container" là một biến tham chiếu đến parentNode của img. Hãy thử "container.innerHTML = container.innerHTML". Điều này gây ra một tái dựng hình và có thể mang lại img errant vào cuộc sống.

2

Cố gắng sử dụng onclick thay vì onchange. Cái sau không hoạt động tốt với một số phần tử biểu mẫu trong một số trình duyệt.

1

Các bình luận về câu hỏi:

  • Vui lòng gửi kèm một đoạn mã trong câu hỏi.
  • JavaScript có phải là sự kiện thay đổi hay không?
  • Nếu trình duyệt của khách hàng là Google Chrome, nó có hoạt động không? (Âm thanh giống như hình thức khác-IE-hình ảnh-src-lỗi.)
  • Trang trình diễn mà bạn đã liên kết đến đã được thay đổi kể từ khi câu hỏi này được đăng; khi tôi viết điều này, nhấp vào một tập hợp mẫu khiến nguyên nhân tải trang khác.

Một gợi ý:

  • Sử dụng setTimeout, do đó thay đổi thực tế xảy ra khi các đám cháy sự kiện thời gian chờ, thay vì trong ban event GUI. Ví dụ, nếu javascript ban đầu là

    SomeFunction(); 
    

    thay đổi này để

    setTimeout(SomeFunction, 10); 
    

    (nơi image.src = newURL; được thực hiện bên trong SomeFunction)

7

Đặt thuộc tính src null, sau đó đặt url mới của bạn:

trong jquery :

var myImg = $('#myImg'); 
myImg.attr('src', null); 
myImg.attr('src', newUrl); 

trong js thẳng:

var myImg = document.getElementById('myImg'); 
myImg.src = null; 
myImg.src = newUrl 

này làm việc cho tôi - nó được lái xe cho tôi điên!

+0

Chỉ hoạt động một lần :(Sau đó, IE sử dụng bộ nhớ cache img ngay cả khi tôi sử dụng url như http://example.com/img/my.jpg?rand=231123 – Yevgen

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