2009-08-05 43 views
34

Ứng dụng của tôi có hộp thoại phương thức với khung nội tuyến bên trong nó. Tôi đã viết mã jQuery của tôi sao cho khi hộp thoại mở ra, nó đặt thuộc tính 'src' thích hợp của khung nội tuyến để nội dung tải lên. Tuy nhiên, trong thời gian trễ giữa mở hộp thoại và tải nội dung, khung nội tuyến xuất hiện rõ ràng dưới dạng hộp màu trắng. Tôi thích iframe có nền trong suốt hơn.Khung nền trong suốt

Tôi đã thử đặt allowtransparency = "yes" trên khung nội tuyến. Bất kỳ ý tưởng? Cảm ơn!

Trả lời

1

Tại sao không chỉ tải khung hình ra khỏi màn hình hoặc ẩn và sau đó hiển thị nó sau khi tải xong. Bạn có thể hiển thị biểu tượng tải ở vị trí của nó để bắt đầu cung cấp cho người dùng phản hồi ngay lập tức rằng nó đang tải.

+0

Vì không có cách nào đáng tin cậy để biết thời điểm iframe tải xong. Điều hướng iframe được thực hiện bằng cách đặt thuộc tính 'href' của nó, không phải với tải từ xa. – brianjcohen

45

Tôi đã sử dụng này tạo ra một IFrame qua javascript và nó làm việc cho tôi:

// IFrame points to the IFrame element, obviously 
IFrame.src = 'about: blank'; 
IFrame.style.backgroundColor = "transparent"; 
IFrame.frameBorder = "0"; 
IFrame.allowTransparency="true"; 

Không chắc chắn nếu nó làm cho bất kỳ sự khác biệt, nhưng tôi thiết lập các thuộc tính trước khi thêm các IFrame vào DOM. Sau khi thêm nó vào DOM, tôi đặt src của nó thành URL thực.

+7

+1: Không biết về allowTransparency cho đến bây giờ. Cảm ơn :) –

29
<style type="text/css"> 
body {background:none transparent; 
} 
</style> 

có thể làm việc (nếu bạn đặt trong iframe) cùng với

<iframe src="stuff.htm" allowtransparency="true"> 
+2

+1 cho phong cách, bởi vì tôi không có quyền truy cập vào thuộc tính iframe. – Warlock

+1

Không hoạt động với tôi trong Chrome hoặc Firefox – geotheory

1

Đặt màu nền của src không ai sánh kịp và cho phép transparencey.

[WITHIN SCR PAGE STYLE] 
<style type="text/css"> 
    body 
    { 
     background:none transparent; 
    } 
</style> 

[IFRAME] 
<iframe src="#" allowtransparency="true">Error, iFrame failed to load.</iframe> 

LƯU Ý: Tôi viết mã CSS khác một chút so với cách mọi người khác làm.