2013-02-11 56 views
9

Tôi đang gặp sự cố khi tải tệp PDF trong khung nội tuyến trong IE bằng cách sử dụng hộp ưa thích. Khi tôi nhấp vào liên kết, tôi nhận được bộ nạp gif và nó chỉ quay mãi mãi. Không có lỗi trong bảng điều khiển hoặc trên trang hoặc bất kỳ thứ gì như thế. Sự cố xảy ra trong tất cả các phiên bản của IE. Tất cả các trình duyệt khác hoạt động tốt. Ngoài ra, tệp PDF là tệp nội bộ.Fancybox bị kẹt khung nội tuyến tải trong IE

Dưới đây là một số mã:


HTML

<!DOCTYPE html> 
    <html lang="en"> 
    <head> 
     <meta charset="utf-8"> 

     <link rel="stylesheet" type="text/css" href=<?php echo base_url("templates/style1/css/jquery.fancybox.css") ?> /> 

     <script src=<?php echo base_url("js/jquery-1.7.2.min.js") ?> type="text/javascript"></script> 
     <script type="text/javascript" src="../js/jquery.fancybox.js"></script> 

    </head> 
    <body> 
     <a class="fancybox-media italic" href="../contract_docs/dummy.pdf" >Test Doc</a> 
    </body> 
</html> 

JS

$(document).ready(function(){ 
     /* fancybox handler */ 
     $('.fancybox-media').fancybox({ 
      openEffect : 'none', 
      closeEffect : 'none', 
      autoSize: true, 
      type : 'iframe' 
     }); 
    }); 

EDIT: Tôi cũng đã cố gắng nâng cấp jQuery, vô ích.

EDIT: Đây là jsFiddle, thực sự đơn giản và không hoạt động trong IE cho tôi.

Trả lời

19

Nó có vẻ như vô hiệu hóa trước khi tải bản sửa lỗi vấn đề với iframe và IE vì vậy hãy thử này:

$(document).ready(function() { 
     /* fancybox handler */ 
     $('.fancybox-media').fancybox({ 
      openEffect: 'none', 
      closeEffect: 'none', 
      autoSize: true, 
      type: 'iframe', 
      iframe: { 
       preload: false // fixes issue with iframe and IE 
      } 
     }); 
    }); 

Thử nghiệm với v2.1.4 Fancybox và IE7.

Kiểm tra JSFIDDLE

+1

Làm việc như một sự quyến rũ! Rất cám ơn, không thể tìm thấy giải pháp ở bất cứ đâu ... – Falantar014

+0

Tuyệt vời, cảm ơn. ditto, hoạt động như một say mê. Tôi đã sử dụng fancybox 2.1.4, với JQuery 1.7.1 và được thử nghiệm chống lại IE9 và IE10. – arcseldon

+2

"preload: false" cũng khắc phục sự cố với trình duyệt chứng khoán Android 4.1.2 (Mobile Safari). Cảm ơn! – Jurgen

-1

tôi chỉ kiểm tra đoạn mã của bạn và nó làm việc cho tôi trong ví dụ 8 và chrome

tôi sử dụng các file tài nguyên từ:

jquery: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.min.js

js: http://fancybox.net/js/fancybox-1.3.4/jquery.fancybox-1.3.4.js

css: http://fancybox.net/js/fancybox-1.3.4/jquery.fancybox-1.3.4.css

mã tôi đã sử dụng:

<!DOCTYPE html> 
<html lang="en" >  
    <head> 
     <meta charset="utf-8"> 

     <link rel="stylesheet" type="text/css" href="http://fancybox.net/js/fancybox-1.3.4/jquery.fancybox-1.3.4.css" /> 

     <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.min.js" type="text/javascript"></script> 
     <script type="text/javascript" src="http://fancybox.net/js/fancybox-1.3.4/jquery.fancybox-1.3.4.js"></script> 
     <script> 
      $(document).ready(function(){ 
       /* fancybox handler */ 
       $('.fancybox-media').fancybox({ 
        openEffect : 'none', 
        closeEffect : 'none', 
        autoSize: true, 
        type : 'iframe' 
       }); 
      }); 
     </script> 

    </head> 
    <body> 
     <a class="fancybox-media italic" href="pdf.pdf" >Test Doc</a> 
    </body> 
</html> 


maybe clear browser cach fix it 
+0

sao chép/dán mã của bạn (và thay đổi pdf) và tất cả tôi nhận được là một lỗi trong giao diện điều khiển: SCRIPT438: Object không hỗ trợ tài sản hoặc phương pháp 'Fancybox' – Falantar014

+1

OP đang sử dụng fancybox v2.x – JFK

+0

nó không phải là từ mã, đó là về jbox fancybox, mã ở trên làm việc –