2010-06-18 24 views
17

Sử dụng Javascript Tôi cần phải tìm ra cách tốt nhất để thêm một yếu tố iframe đó là:Javascript: thêm yếu tố iframe sau khi trang đã được nạp

  1. hoàn toàn ẩn từ người sử dụng.
  2. Được tạo sau khi trang đã được tải đầy đủ. tức là hoàn toàn không phô trương với người dùng và không ảnh hưởng đến việc tải hình ảnh và các tập lệnh khác, v.v., theo bất kỳ cách nào.

Trả lời

47

Bạn có thể thêm một ẩn iframe như thế này:

var iframe = document.createElement('iframe'); 
iframe.style.display = "none"; 
iframe.src = /* your URL here */; 
document.body.appendChild(iframe); 

Nếu bạn cần phải làm điều đó trên tải trang, bạn chỉ có thể đặt mã có liên quan trong một thẻ script ở phần cuối của tài liệu của bạn, hoặc treo nó lên thông qua windowload sự kiện (window.onload = yourFunction;), mặc dù sự kiện windowload xảy ra khá muộn trong quá trình tải trang. Và tất nhiên, giống như nhiều thứ liên quan đến JavaScript trên trình duyệt, bạn có thể thấy cuộc sống của mình dễ dàng hơn một chút nếu bạn sử dụng thư viện như Prototype, jQuery, Closure hoặc any of several others, vì chúng có thể làm nổi bật sự khác biệt của trình duyệt. (Điều đó nói rằng, các mã trên sẽ làm việc trên bất kỳ trình duyệt tôi quen thuộc với.) Thư viện thường sẽ cung cấp một cách để làm việc ngay sau khi trang được tải, nhưng sớm hơn windowload thường xảy ra. jQuery cung cấp chức năng ready; Prototype cung cấp sự kiện dom:loaded; vv

Ví dụ, nếu bạn đặt này vào cuối của thẻ body của bạn, nó sẽ tạo ra các iframe sau mọi thứ khác đã nạp (bao gồm tất cả các hình ảnh, windowload không cháy, cho đến khi tất cả hình ảnh đã tải) :

<script type='text/javascript'> 
window.onload = function() { 
    var iframe = document.createElement('iframe'); 
    iframe.style.display = "none"; 
    iframe.src = /* your URL here */; 
    document.body.appendChild(iframe); 
}; 
</script> 
+0

Tôi cần thực hiện việc tải trang "sau" ... và tôi không muốn hiển thị nội dung iframe theo bất kỳ cách nào ảnh hưởng đến việc tải trang web. – EddyR

+0

@EddyR: Đó là lý do tại sao bạn đặt thẻ tập lệnh ở cuối tài liệu. Nhưng nếu bạn muốn chắc chắn ở lại hoàn toàn ngoài cách tải hình ảnh, hãy làm điều đó trong 'window.onload'. Sự kiện đó xảy ra sau * mọi thứ * khác được thực hiện tải, bao gồm tất cả hình ảnh. Tôi đã cập nhật với một ví dụ. –

+0

ok ... gotcha. thx – EddyR

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