2012-10-19 19 views
30

Tôi muốn mở tệp pdf trong khung nội tuyến. Tôi đang sử dụng mã sau đây:Cách mở tệp PDF trong <iframe>?

<a class="iframeLink" href="https://something.com/HTC_One_XL_User_Guide.pdf" 
    jQuery1640737952376988841="85"> User guide </a> 

Nó đang mở trong Firefox nhưng không mở trong IE8.

Có ai biết cách làm cho nó hoạt động tốt cho IE không?

+5

1) Giá trị thuộc tính 'lớp' phải nằm trong dấu ngoặc kép. 2) Cái gì là thuộc tính jQuery-ish? 3) Theo cách nào bạn chỉ ra rằng điều này nên ở trong một 'iframe' ở tất cả? – David

Trả lời

16

Đây là mã để liên kết HTTP (S) tiếp cận PDF từ một :

<iframe src="https://research.google.com/pubs/archive/44678.pdf" 
    width="800px" height="600px" > 

Fiddle: http://jsfiddle.net/cEuZ3/1545/

EDIT: và bạn có thể sử dụng Javascript, từ thẻ <a> (onclick sự kiện) để đặt thuộc tính SRC của iFrame tại thời gian chạy ...

CHỈNH SỬA 2: Xuất hiện, đó là lỗi (nhưng có cách giải quyết):

PDF files do not open in Internet Explorer with Adobe Reader 10.0 - users get an empty gray screen. How can I fix this for my users?

+0

Trên thực tế tôi đã sao chép từ trình gỡ lỗi IE đó là lý do tại sao jquerry và những thứ khác đang đến ... khác khôn ngoan lớp cũng nằm trong các mã. Và nó làm việc tốt cho mozilla .. – user1753210

+0

tôi đã thử liên kết của bạn và vẫn còn nếu bạn sẽ cố gắng chạy sau đó nó sẽ mở PDF trong trình đọc acrobat không có trong khung nội tuyến trong IE. Nhưng nếu bạn sẽ thử điều tương tự trong chrome hoặc mozilla thì nó hoạt động tốt như dự định. Nhưng tôi muốn mở nó trong khung nội tuyến cho IE cũng – user1753210

+0

Hoạt động tốt trong trình duyệt máy tính để bàn nhưng không hoạt động trong trình duyệt di động ...bạn có thể giúp tôi để làm cho nó hoạt động được không? – Gathole

37

Sử dụng iframe để "hiển thị" một PDF sẽ không hoạt động trên tất cả các trình duyệt; nó phụ thuộc vào cách trình duyệt xử lý các tệp PDF. Một số trình duyệt (chẳng hạn như Firefox và Chrome) có PDF được tích hợp sẵn cho phép chúng hiển thị nội tuyến PDF ở đâu đó như một số trình duyệt cũ hơn (có lẽ phiên bản cũ hơn của IE cố gắng tải xuống tệp thay thế).

Thay vào đó, tôi khuyên bạn nên kiểm tra PDFObject thư viện Javascript để nhúng tệp PDF vào tệp HTML. Nó xử lý khả năng tương thích trình duyệt khá tốt và rất có thể sẽ hoạt động trên IE8.

Trong HTML, bạn có thể thiết lập một div để hiển thị các file PDF:

<div id="pdfRenderer"></div> 

Sau đó, bạn có thể có mã Javascript để nhúng một PDF trong div rằng:

var pdf = new PDFObject({ 
    url: "https://something.com/HTC_One_XL_User_Guide.pdf", 
    id: "pdfRendered", 
    pdfOpenParams: { 
    view: "FitH" 
    } 
}).embed("pdfRenderer"); 
+1

Điều này không có gì khác ngoài việc tải bản pdf trong iframe ... –

+5

Đó là điểm. Nhưng nó tải PDF vào một đối tượng thay vì một khung nội tuyến. Xem http://pdfobject.com/markup/index.php –

+0

Nếu bạn không muốn đường dẫn src của tệp pdf được hiển thị trong thẻ dữ liệu đối tượng thì sao? –

5

Nó cũng quan trọng để đảm bảo rằng máy chủ web gửi tệp có Content-Disposition = inline. này có thể không phải là trường hợp nếu bạn đang đọc tập tin bản thân và gửi nội dung của nó vào trình duyệt:

trong php nó sẽ giống như thế này ...

...headers... 
header("Content-Disposition: inline; filename=doc.pdf"); 
...headers... 

readfile('localfilepath.pdf') 
-4

Làm điều đó như thế này:

<iframe src="http://samplepdf.com/sample.pdf" width="800px" height="600px"></iframe> 

Hãy nhớ đóng thẻ iframe.

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