$lang['tuto'] = "tutorijali"; ?> Integracija prebacivanja PDF URL-a na temelju padajućeg

Integracija prebacivanja PDF URL-a na temelju padajućeg izbornika u Wixu pomoću JavaScript poruka

Temp mail SuperHeros
Integracija prebacivanja PDF URL-a na temelju padajućeg izbornika u Wixu pomoću JavaScript poruka
Integracija prebacivanja PDF URL-a na temelju padajućeg izbornika u Wixu pomoću JavaScript poruka

Poboljšanje funkcionalnosti PDF preglednika na Wix knjižnici

Prikazivanje ogromne arhive PDF datoteka na organiziran i korisniku jednostavan način ključno je za poboljšanje korisničkog iskustva na web stranici narodne knjižnice. Cilj je posjetiteljima ponuditi nesmetan pristup povijesnim zapisima poput starih novina, koji su pohranjeni kao PDF-ovi. U ovom projektu upotreba Wixa, Veloa i HTML ugrađenog elementa stvara temelj za robustan sustav.

Wixova platforma podržava ugrađene elemente putem iframeova, omogućujući korisnicima dodavanje interaktivnih komponenti poput PDF preglednika. Ovaj preglednik PDF-a ugrađen je pomoću iframea, a trenutačno statički URL definira koji se dokument prikazuje. Međutim, potreba za dinamičkim mijenjanjem PDF datoteke na temelju korisničkog unosa ključna je za glatko iskustvo.

Izazov je dopustiti korisnicima da odaberu godinu i mjesec s dva padajuća izbornika, što će potom pokrenuti promjenu prikazanog PDF dokumenta. To uključuje integraciju JavaScript poruka za komunikaciju s iframeom, omogućujući promjenu URL-a dokumenta prema odabirima s padajućeg izbornika.

Ovaj pristup ne samo da smanjuje potrebu za brojnim statičnim Wix stranicama, već i pojednostavljuje pristup PDF arhivi knjižnice. U nastavku istražujemo korake i rješenja potrebna za implementaciju ovoga pomoću okvira Velo i JavaScripta.

Naredba Primjer upotrebe
PSPDFKit.load() Ova metoda inicijalizira PSPDFKit PDF preglednik unutar određenog spremnika. Učitava PDF datoteku s navedenog URL-a, čineći je vidljivom unutar ugrađenog elementa. Specifičan je za PSPDFKit JavaScript biblioteku, koja je prilagođena za ugrađivanje i pregledavanje PDF dokumenata.
postMessage() Koristi se za komunikaciju između nadređenog prozora i ugrađenog iframea. U tom kontekstu, šalje poruku s glavne stranice u iframe, dopuštajući iframeu da ažurira svoj sadržaj (PDF URL) na temelju padajućih odabira.
window.addEventListener("message") Ovaj slušatelj događaja dodaje se unutar iframea za slušanje poruka poslanih putem postMessage(). Obrađuje poruku za dinamičko učitavanje novog PDF dokumenta u iframe na temelju primljenih podataka.
event.data Unutar rukovatelja događajima poruka, event.data sadrži podatke poslane iz nadređenog prozora. U ovom slučaju uključuje URL odabrane PDF datoteke koja se učitava u PSPDFKit preglednik.
document.getElementById() Ova metoda manipulacije DOM-om dohvaća HTML element prema njegovom ID-u. Koristi se za hvatanje korisničkog unosa iz padajućih elemenata, dopuštajući skripti da odredi odabranu godinu i mjesec za ažuriranje PDF URL-a.
DOMContentLoaded Događaj koji osigurava izvršavanje JavaScripta tek nakon što se DOM potpuno učita. Ovo sprječava pogreške prilikom pokušaja pristupa DOM elementima prije nego što postoje.
addEventListener("change") Ovaj slušatelj događaja prati elemente padajućeg izbornika radi eventualnih promjena. Kada korisnik odabere drugu godinu ili mjesec, aktivira se funkcija za ažuriranje PDF URL-a i učitavanje odgovarajućeg dokumenta.
template literals Literali predloška (okruženi povratnim kvačicama) omogućuju ugrađivanje varijabli u nizove, što olakšava dinamičko generiranje URL-a za odabrani PDF. Na primjer: `https://domain.tld/${year}_${month}_etc.pdf`.
container: "#pspdfkit" U inicijalizaciji PSPDFKit, spremnik navodi HTML element (prema ID-u) gdje će se prikazati PDF preglednik. Ovo je bitno za određivanje mjesta na kojem će se PDF prikazati na stranici.

Dinamičko učitavanje PDF-a s padajućim odabirima u Wixu

U ovom rješenju koristimo par padajućih elemenata na Wix stranici za dinamičku izmjenu URL-a PDF datoteke prikazane unutar ugrađenog iFramea. Ovaj je sustav posebno koristan za javne knjižnice koje žele omogućiti jednostavan pristup arhiviranim novinskim PDF-ovima. Osnovnu funkcionalnost pokreće JavaScript poruke, koji šalje korisničke odabire s padajućih izbornika u ugrađeni PDF preglednik. PSPDFKit preglednik koristi se za renderiranje PDF-ova unutar iFramea, a mi manipuliramo preglednikom mijenjanjem URL-a na temelju korisnikova izbora godine i mjeseca. Ovo pruža pojednostavljen način za izlaženje na površinu velikih arhiva bez stvaranja više statičkih Wix stranica.

Prvi padajući izbornik odabire godinu, a drugi padajući izbornik odabire mjesec. Kada korisnik odabere oboje, sustav konstruira odgovarajući URL za odgovarajuću PDF datoteku. The PSPDFKit.load() Metoda je ključna za ovo jer učitava novi PDF u iFrame na temelju ažuriranog URL-a. Ova je metoda dio biblioteke PSPDFKit koja je ugrađena na stranicu putem vanjske skripte. The objavi poruku() API je također kritičan u alternativnom rješenju, koje omogućuje razmjenu poruka između nadređene stranice i iframea. Slanjem poruke koja sadrži URL novog PDF-a u iframe, PDF preglednik se dinamički ažurira.

Kako bismo osigurali da se skripta izvodi samo kada je DOM u potpunosti učitan, koristimo DOMContentLoaded događaj. Ovo osigurava da su padajući elementi i PSPDFKit spremnik dostupni skripti. Svakom padajućem izborniku također dodajemo slušatelje događaja. Kada korisnik odabere godinu ili mjesec, odgovarajući slušatelj događaja bilježi odabir i poziva funkciju za ponovno učitavanje PDF preglednika s točnim URL-om. To se rješava pomoću jednostavne funkcije koja koristi literale predloška za konstruiranje URL-a iz odabranih vrijednosti u padajućim izbornicima. Ova metoda nije samo jednostavna za implementaciju, već je i vrlo modularna, što omogućuje jednostavno ažuriranje kako se dodaju nove arhive.

U drugom pristupu koristimo objavi poruku() za komunikaciju između nadređene stranice i iFramea. Nadređena stranica osluškuje promjene padajućeg izbornika i šalje poruku koja sadrži URL novog PDF-a u iFrame, koji prima poruku pomoću slušatelja događaja. Ova je metoda korisna kada se radi o izoliranijim okruženjima u kojima iframe ne može izravno komunicirati s DOM-om nadređene stranice. Obje metode pružaju učinkovite načine dinamičkog ažuriranja sadržaja ugrađenog preglednika PDF-a, smanjujući potrebu za višestrukim statičnim stranicama i nudeći korisničko iskustvo pregledavanja.

Implementacija prebacivanja URL-ova na temelju padajućeg menija za PDF preglednik u Wixu

Frontend skripta koja koristi JavaScript i Velo framework

// HTML structure for the dropdowns and embed element
<div>
  <label for="yearSelect">Select Year:</label>
  <select id="yearSelect">
    <option value="">--Year--</option>
    <option value="1962">1962</option>
    <option value="1963">1963</option>
    <!-- Add other years dynamically or manually -->
  </select>
  <label for="monthSelect">Select Month:</label>
  <select id="monthSelect">
    <option value="">--Month--</option>
    <option value="January">January</option>
    <option value="February">February</option>
    <!-- Add other months dynamically or manually -->
  </select>
</div>
// Embedded PDF viewer in iframe
<div id="pspdfkit" style="width: 100%; height: 100%; max-width: 1920px;"></div>
<script src="https://cdn.cloud.pspdfkit.com/pspdfkit-web@2024.5.2/pspdfkit.js"></script>
// JavaScript to update URL based on dropdown selection
<script>
document.addEventListener("DOMContentLoaded", () => {
  const yearSelect = document.getElementById("yearSelect");
  const monthSelect = document.getElementById("monthSelect");
  function loadPDF(year, month) {
    if (year && month) {
      const url = `https://domain.tld/${year}_${month}_etc.pdf`;
      PSPDFKit.load({
        container: "#pspdfkit",
        document: url,
      }).catch((error) => {
        console.error("Failed to load PDF:", error);
      });
    }
  }
  yearSelect.addEventListener("change", () => {
    loadPDF(yearSelect.value, monthSelect.value);
  });
  monthSelect.addEventListener("change", () => {
    loadPDF(yearSelect.value, monthSelect.value);
  });
});
</script>

Alternativni pristup: Korištenje PostMessage API-ja za iFrame komunikaciju

Frontend skripta koja koristi postMessage API za bolju izolaciju između iframea i nadređenog dokumenta

// HTML structure remains the same for dropdowns
// Here, we use iframe with a postMessage-based communication system
<iframe id="pdfViewer" src="about:blank" style="width: 100%; height: 100%;"></iframe>
// JavaScript for sending messages to iframe
<script>
document.addEventListener("DOMContentLoaded", () => {
  const yearSelect = document.getElementById("yearSelect");
  const monthSelect = document.getElementById("monthSelect");
  const iframe = document.getElementById("pdfViewer");
  function updatePDFViewer(year, month) {
    if (year && month) {
      const url = `https://domain.tld/${year}_${month}_etc.pdf`;
      iframe.contentWindow.postMessage({
        type: "updatePDF",
        url: url
      }, "*");
    }
  }
  yearSelect.addEventListener("change", () => {
    updatePDFViewer(yearSelect.value, monthSelect.value);
  });
  monthSelect.addEventListener("change", () => {
    updatePDFViewer(yearSelect.value, monthSelect.value);
  });
});
</script>
// Inside iframe, use this script to receive the message
<script>
window.addEventListener("message", (event) => {
  if (event.data.type === "updatePDF" && event.data.url) {
    PSPDFKit.load({
      container: "#pspdfkit",
      document: event.data.url,
    });
  }
});
</script>

Poboljšanje pristupačnosti PDF arhive uz Wix i JavaScript poruke

Drugo važno razmatranje pri korištenju padajućih elemenata za dinamičku izmjenu URL-a ugrađenog PDF-a u Wixu je osiguravanje interakcije između iFrame a glavna stranica je učinkovita. Iako nam razmjena JavaScript poruka omogućuje slanje podataka između ove dvije komponente, performanse i korisničko iskustvo mogu se poboljšati optimiziranjem načina na koji odabir pokreće ažuriranja. To se može učiniti uklanjanjem odbijanja ulaza, što znači da sustav samo ažurira PDF preglednik nakon što korisnik dovrši svoj odabir, a ne pri svakoj promjeni.

Drugi aspekt koji još nije pokriven je dijeljenje izvora s više izvora (CORS). Budući da se PDF-ovi nalaze na vanjskom poslužitelju (kao što je Digital Ocean), ključno je osigurati da poslužitelj bude konfiguriran tako da dopušta pristup s Wix domene. Ako CORS postavke poslužitelja nisu ispravno konfigurirane, PDF preglednik možda neće moći učitati dokument, što će rezultirati pogreškama. Ispravna CORS zaglavlja na poslužitelju koji hostira PDF datoteke ključna su za besprijekornu integraciju između dviju platformi.

Osim toga, možete poboljšati sustav predučitavanjem često pristupanih PDF datoteka kako biste smanjili vrijeme učitavanja. Strategije prethodnog učitavanja korisne su kada je vjerojatno da će se korisnik prebacivati ​​između više mjeseci ili godina. Pohranjivanjem ovih datoteka u predmemoriju preglednika, naknadna učitavanja dokumenata bit će brža, pružajući glatko korisničko iskustvo. To se može učiniti pomoću uslužnih radnika ili drugih mehanizama za predmemoriju, koji se mogu postaviti za unaprijed učitavanje PDF-ova dok se korisnik kreće kroz dostupne opcije.

Često postavljana pitanja o ugrađivanju dinamičkih PDF-ova u Wix

  1. Kako mogu dodati padajuće birače u Wix?
  2. Možete dodati padajuće elemente pomoću Wix uređivača i koristiti JavaScript da ih kontrolirate dodjeljivanjem jedinstvenih ID-ova. Elementi padajućeg izbornika pokrenut će promjene u URL-u PDF-a document.getElementById().
  3. Što znači PSPDFKit.load() naredba učiniti?
  4. The PSPDFKit.load() metoda je odgovorna za renderiranje PDF preglednika i učitavanje određene PDF datoteke u njega. Ova je metoda dio biblioteke PSPDFKit koja se koristi za dinamički prikaz PDF datoteka.
  5. Mogu li koristiti postMessage() za komunikaciju između izvora?
  6. Da, postMessage() API je posebno dizajniran za komunikaciju između različitih izvora, kao što je između nadređene stranice i iFramea, što je ključno za ovu implementaciju.
  7. Kako rješavam pogreške prilikom učitavanja PDF-a?
  8. Pogreške možete rješavati dodavanjem a .catch() blok do PSPDFKit.load() funkcija za hvatanje svih pogrešaka koje se pojave tijekom procesa učitavanja i prikaz odgovarajuće poruke o pogrešci.
  9. Trebam li konfigurirati svoj poslužitelj za CORS?
  10. Da, ako su vaši PDF-ovi smješteni na drugoj domeni, morat ćete osigurati da je poslužitelj ispravno postavljen CORS zaglavlja kako biste Wix stranici omogućili pristup dokumentima.

Završne misli o dinamičkom PDF prikazu

Ovo rješenje pojednostavljuje proces prikazivanja velikih arhiva PDF datoteka na jednoj stranici. Koristeći dva padajuća elementa za odabir godine i mjeseca, možemo dinamički ažurirati PDF preglednik bez stvaranja više Wix stranica.

Kombinirajući fleksibilnost okvira Velo s JavaScript porukama između padajućih izbornika i iFramea, ova metoda pruža učinkovit način organiziranja i predstavljanja povijesnih podataka. On je i skalabilan i jednostavan za korištenje za javna web-mjesta poput knjižničnih arhiva.

Izvori i reference za dinamičko učitavanje PDF-a s Wixom i JavaScriptom
  1. Pruža detaljnu dokumentaciju o radu s HTML iFrame elementom i JavaScript porukama na Wixu pomoću okvira Velo. Posjetiti Wixovi dokumenti za razvojne programere za više informacija.
  2. Službena dokumentacija PSPDFKit-a, koja detaljno opisuje kako ugraditi i učitati PDF-ove unutar iFramea pomoću njihove JavaScript biblioteke. Pristupite mu ovdje: PSPDFKit dokumentacija .
  3. Vodič za implementaciju dijeljenja izvora s više izvora (CORS) kako bi se osiguralo pravilno učitavanje PDF-a s vanjskih poslužitelja kao što je Digital Ocean. Više možete pročitati na MDN Web dokumenti na CORS-u .