2013-08-21 35 views
7

Tôi đã một iframe đặt trong cơ thể trang của tôi như thế này:tải chỉ ở lại trong Firefox sau iframe tải xong

<iframe src="about:blank" onload="this.contentWindow.document.write('some text')"> 

Nó hoạt động tốt đủ, sự kiện onload thay thế nội dung iframe với "một số văn bản" và thats it .

NHƯNG trong Firefox nó khiến bánh xe quay "chỉ báo tải" cho bạn thấy trang đang được tải để không bao giờ biến mất. Chỉ có văn bản được chèn vào khung nội tuyến, vì vậy không có nội dung nào khác treo xung quanh, đang chờ tải. Khi tôi xóa khung nội tuyến khỏi trang, khung nội dung sẽ xóa sự cố, vì vậy tôi biết, đó là iframe được cho biết đang gây ra sự cố.

Nó hoạt động chính xác trong IE và Chrome.

Bây giờ, tôi có thể làm một cái gì đó như thế này:

<iframe src="about:blank" onload="this.contentWindow.document.write('some text'); t.contentWindow.stop();"> 

nào sửa chữa vấn đề trong Firefox, nhưng nó ngăn chặn bất kỳ hình ảnh trong iframe từ tải (tôi không sử dụng bất kỳ trong ví dụ chèn văn bản, nhưng chúng sẽ được thêm vào sau).

Vì vậy, tôi làm cách nào để sửa lỗi này?

Trả lời

1

Tại sao bạn kích hoạt ghi vào contentWindow bằng cách sử dụng sự kiện tải của cùng một khung nội tuyến ở địa điểm đầu tiên?

Phương pháp thay thế chỉ tạo iframe và tải một số nội dung có hình ảnh vào đó - hoạt động trên firefox như mong đợi. Không phải vấn đề lớn.

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 
function createIframe(){ 
    var f = document.getElementsByTagName('body') [0].appendChild(document.createElement('iframe')); 
    f.contentWindow.document.write('<img src="http://www.funimage.org/uploads/posts/2013-02/1361892989_1_14.jpg" />'); 
} 
</script> 
</head> 
<body onload="createIframe()"> 

</body> 
</html> 
13

Đảm bảo bạn gọi this.contentWindow.document.close(); sau khi ghi vào khung nội tuyến.

+1

Câu trả lời khác không hiệu quả đối với tôi, trong khi câu trả lời này có tác dụng. Chúc mừng! – Campbeln

+1

Điều này đã làm các trick! –