Mở pdf trong cửa sổ mới javascript

Bây giờ cửa sổ. mở (kết quả) hoàn toàn không hoạt động, nó khóa ứng dụng. Thậm chí có thể làm như thế này? . hoặc làm điều đó trong một trang aspx. Và tôi rất muốn sử dụng kết quả để thay thế, vì thỉnh thoảng tôi không biết tên tệp pdf và cũng không muốn lưu tệp trên ổ cứng. Tôi không phải sử dụng javascript nếu có cách mở pdf trực tiếp từ Bộ điều khiển. Bất kỳ đề xuất sẽ được nhiều đánh giá cao. . )

Bạn có thành phần này có thể hiển thị nhiều loại tệp. Hạn chế duy nhất là yêu cầu kết nối internet mở

Trân trọng,

Marcello

Chào Marcelo,

Cảm ơn bạn đã phản hồi.
Tôi đã thấy thành phần 'Trình xem trước web'. Trong các cuộc thảo luận ở trên, tôi đã thấy rằng, một tệp có thể được mở trong iframe bằng cách đưa ra một liên kết. ( do Paulo Zacarias đăng) dán cùng một bài đăng bên dưới để tham khảo.

"

Những gì bạn đang tìm kiếm có thể được thực hiện với tiện ích iFrame mà bạn có thể tìm thấy trong Tiện ích (WebPattern)

Vì vậy, trong màn hình này, bạn mở qua target=_blank, bạn đặt tiện ích iFrame và xác định SourceURL là tệp PDF bạn muốn tải xuống. Tôi tin rằng điều này nên làm việc

Xin chào ,

Bạn có thể mở tệp pdf bằng cách sử dụng javascript đơn giản.  

var pdf_newTab = cửa sổ. mở("");

pdf_newTab. tài liệu. viết(

""

);

Ghi chú. ứng dụng/pdf là mimetype.  

tham số $. BinaryData- là tham số đầu vào nhị phân

Vui lòng kiểm tra oml đã tải lên.  

Hôm nay, tôi đang cố gắng giải quyết vấn đề này xuất phát từ cùng một vấn đề nhức nhối đã nêu trong bài đăng gốc -- khi tôi xem qua một tệp PDF (mở trong Chrome) để kiểm tra các liên kết được nhúng, nhấp vào bất kỳ liên kết nào trong số chúng dẫn đến việc mở liên kết . Để quay lại tệp, tôi tiếp tục sử dụng nút Quay lại. Bằng cách đó, tệp tự tải lại, buộc tôi phải cuộn đến vị trí của liên kết cuối cùng mà tôi vừa kiểm tra. Quá trình này trở nên rườm rà trong một tệp có hơn 30 trang và nhiều đường liên kết gấp 3 lần

Giải pháp mà tôi thấy phù hợp với mình (đã thử nghiệm trên Chrome, Firefox, Edge) kể từ ngày 7 tháng 8 năm 2022 như sau

  • Tạo tệp PDF có liên kết.
    Trong trường hợp của tôi, tôi đã tạo tệp PDF từ tệp bản trình bày trình chiếu PowerPoint. Sau đó, tôi đã chỉnh sửa một số liên kết đã được nhúng trong tệp PDF đó bằng Adobe Acrobat DC và lưu lại ở đó, nhưng tôi nghi ngờ bước đó tạo ra bất kỳ ý nghĩa nào -- bây giờ bạn có thể biết, nếu liên kết của bạn khác.
  • Tải tệp PDF đó lên dịch vụ Google Drive MIỄN PHÍ.  
  • Sau khi tệp được tải lên, hãy tạo Liên kết có thể chia sẻ từ tệp đó.
    >>>>>>     NHẤP PHẢI VÀO TỆP. >>>>>    CHỌN 'NHẬN LIÊN KẾT' TỪ MENU.
    Trong Quyền truy cập chung của cửa sổ, tôi đã chọn 'Bất kỳ ai có liên kết' như minh họa bên dưới. Sau đó, nhấp vào nút 'Sao chép liên kết'.
  • Khởi chạy một trình duyệt
  • Dán liên kết đã sao chép vào trường địa chỉ url
  • Nhấn Return/Enter sẽ mở tệp PDF trong trình duyệt đó
  • Trong tệp PDF đang mở, nhấp vào liên kết bất kỳ.
    NÓ MỞ TRONG MỘT TAB MỚI. KHÔNG TRONG CÙNG TAB. NHƯNG CŨNG --  KHÔNG CÓ TRONG CỬA SỔ MỚI.


Vì giải pháp này phù hợp với tôi nên tôi đã quyết định thử nghiệm nó trên một số trường hợp khác mà tôi đọc được những người dùng thảo luận ở đây trong bài đăng này. Tôi đã thử nghiệm điều này trên PC của mình bằng trình duyệt Chrome, Firefox và Edge với thành công như nhau trên mỗi trình duyệt.
Tôi cũng đã mở liên kết trong Chrome trên điện thoại di động Android của mình và nhận được kết quả giống hệt nhau.

Tôi không kiểm tra ốp lưng trên máy Mac, Safari hoặc iPhone nhưng trên điện thoại Android, quá trình này diễn ra suôn sẻ. vâng.
Hy vọng điều này cũng sẽ giúp ích cho một số bạn.
   

Nitro Pro được thiết kế để hoạt động giống như một trình duyệt web cho phép người dùng thích làm việc trong một cửa sổ so với. nhiều

Hiện tại, tùy chọn duy nhất khả dụng là mở các tệp trong chương trình và kéo một tab ra ngoài rồi tạo một cửa sổ mới. Để biết các bước chi tiết, vui lòng tham khảo bài viết này.
 

Chúng tôi luôn tìm cách cải thiện trải nghiệm người dùng của mình và tôi sẽ chuyển yêu cầu thêm tùy chọn để chọn cách bạn muốn mở tài liệu trong Nitro Pro

Việc mở các tài liệu như PDF trong một cửa sổ mới phải được tự động hóa bằng JavaScript vì những lý do sau

  • Người dùng thường đóng trình duyệt web khi mở tệp PDF, nhầm tưởng rằng tài liệu đã được mở trong Adobe Reader
  • Thuộc tính trước đây được sử dụng để mở một cửa sổ mới,
    function fNewPDFWindows ()
    {
      if (!document.getElementsByTagName) return false;
    } 
    2, đã bị xóa khỏi HTML 4. 01 Thông số kỹ thuật nghiêm ngặt (hiện không được dùng nữa)
  • Mở một cửa sổ mới là một hành vi và nên được chuyển sang lớp hành vi

Sử dụng JavaScript cũng có thể đặc biệt hữu ích khi trang web được quản lý nội dung. Thay vì phải phụ thuộc vào trình chỉnh sửa trang web để nhớ mở liên kết tới tệp PDF trong một cửa sổ mới, quy trình này được xử lý bằng một hàm JavaScript đơn giản

JavaScript

Vì vậy, bạn có thể thấy mục tiêu của chúng tôi là gì, hãy xem ví dụ hoạt động đầy đủ này

Đăng ký một sự kiện

Nhiệm vụ đầu tiên là tạo một sự kiện xảy ra khi trang được tải. Thay vì cố gắng thực hiện một lệnh gọi hàm bằng cách sử dụng

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
3 trong trang HTML, chúng ta sẽ sử dụng
function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
4 của Simon Willison. Điều này sẽ cho phép chúng tôi thêm các lệnh gọi chức năng sau khi trang đã được tải

Chúng tôi sẽ nhập JavaScript sau vào. js (tất cả các mã tiếp theo phải được nhập trước chức năng này để

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
5 là cuối cùng)

JavaScript

function addLoadEvent(func)
{
  var oldonload = window.onload;
  if (typeof window.onload != 'function')
  {
    window.onload = func;
  } else {
    window.onload = function()
    {
      oldonload();
      func();
    }
  }
}
addLoadEvent(fNewPDFWindows); 

Hàm function fNewPDFWindows () { if (!document.getElementsByTagName) return false; } 6

Chúng ta sẽ tạo một hàm trống trong tệp JavaScript có tên là

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
7. Để tránh bất kỳ lỗi JavaScript nào với tập lệnh, chúng tôi cũng kiểm tra xem liệu lệnh
function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
8 có khả dụng hay không

JavaScript

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 

Nhiệm vụ thứ hai là tạo một bộ sưu tập đối tượng HTML của bất kỳ liên kết nào trong trang. Dòng sau nhận tất cả các liên kết trong trang

JavaScript

var links = document.getElementsByTagName("a"); 

Chúng ta chèn dòng này vào sau phần kiểm tra xem phương thức đối tượng

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
8 có tồn tại hay không như sau

JavaScript

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
1

Nhiệm vụ tiếp theo là lặp qua tất cả các liên kết và kiểm tra xem chúng tôi có muốn mở bất kỳ liên kết nào trong một cửa sổ mới không. Nếu liên kết đến một tài liệu PDF thì chúng tôi sẽ mở nó trong một cửa sổ mới

Vòng qua các liên kết

Đầu tiên, chúng tôi tạo vòng lặp đi qua tất cả các liên kết trong trang, như sau

JavaScript

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
2

Tiếp theo, chúng ta cần xác định khi chúng ta lặp qua các liên kết xem liên kết đó có phải là tài liệu PDF hay không. Phương thức

var links = document.getElementsByTagName("a"); 
1 lý tưởng cho việc này bằng cách trả về chỉ mục của giá trị tìm kiếm (vị trí của giá trị tìm kiếm trong chuỗi). Phương thức
var links = document.getElementsByTagName("a"); 
1 yêu cầu giá trị tìm kiếm nhưng bạn cũng có thể chỉ định nơi bắt đầu tìm kiếm từ trong chuỗi (trong ví dụ này, chúng ta không cần truyền tham số this cho phương thức)

Vì vậy, hãy truyền chuỗi phương thức

var links = document.getElementsByTagName("a"); 
1 ". pdf" để tìm hiểu xem tệp được liên kết có phải là tài liệu PDF không. Phương thức indexOf trả về -1 nếu không tìm thấy chuỗi hoặc chỉ mục của văn bản phù hợp

JavaScript

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
7

Tiếp theo, chúng ta cần áp dụng một sự kiện

var links = document.getElementsByTagName("a"); 
5 cho mỗi liên kết tới tài liệu PDF, để khi chúng được nhấp vào, cửa sổ mới sẽ mở ra

JavaScript

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
0

Đầu tiên, hãy mở cửa sổ mới và cung cấp cho cửa sổ một số thông số. Các tham số chúng ta sẽ vượt qua như sau

  • URL - tài liệu chúng tôi muốn hiển thị trong cửa sổ mới
  • Thông số kỹ thuật - danh sách các thuộc tính cửa sổ được phân tách bằng dấu phẩy, chẳng hạn như thanh cuộn, v.v.

Để biết danh sách đầy đủ các thuộc tính cửa sổ, hãy xem trang phương thức mở DOM của các trường W3C

Chức năng hoàn thành trong ví dụ này như sau. Thao tác này sẽ mở địa chỉ liên kết trong một cửa sổ mới, có thể thay đổi kích thước với các thanh cuộn

JavaScript

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
1

Chúng tôi chèn sự kiện

var links = document.getElementsByTagName("a"); 
5 trong câu lệnh
var links = document.getElementsByTagName("a"); 
7 để phát hiện xem tài liệu PDF đã được tìm thấy hay chưa

JavaScript

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
4

Cảnh báo người dùng tài liệu mở trong một cửa sổ mới

Nhiệm vụ cuối cùng là đảm bảo người dùng biết rằng liên kết sẽ mở trong một cửa sổ mới. Chúng ta cần phải rõ ràng nhất có thể với điều này để giảm thiểu sự nhầm lẫn

Chúng tôi sẽ làm điều này bằng cách đầu tiên sửa đổi văn bản tiêu đề của liên kết và thứ hai chèn một hình ảnh với văn bản thay thế của "(opens in a new window)". Tiêu đề liên kết có thể được đặt như sau

JavaScript

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
5

Tiếp theo, chúng ta sẽ tạo một phần tử hình ảnh và đặt các thuộc tính

var links = document.getElementsByTagName("a"); 
8 và
var links = document.getElementsByTagName("a"); 
9 cho nó. Cuối cùng, chúng tôi sẽ nối hình ảnh vào siêu liên kết bằng phương pháp
function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
10

JavaScript

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
0

Chức năng cuối cùng như sau

JavaScript

function fNewPDFWindows ()
{
  if (!document.getElementsByTagName) return false;
} 
1

Phần kết luận

Chức năng rất ngắn này cho thấy việc tự động mở các liên kết trong cửa sổ mới dễ dàng như thế nào. Điều này có nghĩa là trang web của bạn sẽ có nhiều khả năng xác thực hơn, có nhiều khả năng hoạt động chính xác hơn trong các trình duyệt trong tương lai và sẽ hữu ích hơn cho người dùng của nó. Kiểm tra ví dụ đầy đủ chức năng này

Giấy phép

Bài viết này không có giấy phép rõ ràng kèm theo nhưng có thể chứa các điều khoản sử dụng trong văn bản bài viết hoặc trong chính các tệp tải xuống. Nếu nghi ngờ xin vui lòng liên hệ với tác giả thông qua bảng thảo luận dưới đây

Có thể tìm thấy danh sách các giấy phép mà tác giả có thể sử dụng tại đây


Mở pdf trong cửa sổ mới javascript

Được viết bởi

Trenton Rêu

Nhà phát triển web

Mở pdf trong cửa sổ mới javascript
Vương quốc Anh

Trenton Moss phát cuồng vì khả năng sử dụng và khả năng truy cập - điên đến mức ông đã thành lập Webcredible, một công ty tư vấn trải nghiệm người dùng hàng đầu trong ngành, để giúp biến Internet thành một nơi tốt hơn cho mọi người. Anh ấy rất giỏi về kiến ​​trúc thông tin và thiết kế tương tác