Izboljšanje funkcionalnosti pregledovalnika PDF na spletnem mestu knjižnice Wix
Prikaz obsežnega arhiva datotek PDF na organiziran in uporabniku prijazen način je ključnega pomena za izboljšanje uporabniške izkušnje na spletni strani javne knjižnice. Cilj je obiskovalcem ponuditi nemoten dostop do zgodovinskih zapisov, kot so stari časopisi, ki so shranjeni kot datoteke PDF. V tem projektu uporaba Wixa, Velo in elementa za vdelavo HTML ustvari osnovo za robusten sistem.
Platforma Wix podpira vdelane elemente prek iframesov, kar uporabnikom omogoča dodajanje interaktivnih komponent, kot so pregledovalniki PDF. Ta pregledovalnik PDF je vdelan z iframeom in trenutno statični URL določa, kateri dokument je prikazan. Vendar pa je potreba po dinamičnem spreminjanju datoteke PDF na podlagi uporabniškega vnosa bistvena za nemoteno izkušnjo.
Izziv je omogočiti uporabnikom, da iz dveh spustnih menijev izberejo leto in mesec, kar bo nato sprožilo spremembo prikazanega dokumenta PDF. To vključuje integracijo sporočil JavaScript za komunikacijo z okvirjem iframe, kar omogoča spreminjanje URL-ja dokumenta glede na izbire v spustnem meniju.
Ta pristop ne le zmanjša potrebo po številnih statičnih straneh Wix, ampak tudi poenostavi dostop do knjižničnega arhiva PDF. Spodaj raziskujemo korake in rešitve, potrebne za implementacijo tega z uporabo ogrodja Velo in JavaScript.
Ukaz | Primer uporabe |
---|---|
PSPDFKit.load() | Ta metoda inicializira pregledovalnik PDF PSPDFKit znotraj določenega vsebnika. Naloži datoteko PDF s podanega URL-ja, tako da si jo lahko ogledate znotraj vdelanega elementa. Posebnost je knjižnice JavaScript PSPDFKit, ki je prilagojena za vdelavo in ogledovanje dokumentov PDF. |
postMessage() | Uporablja se za komunikacijo med nadrejenim oknom in vdelanim iframeom. V tem kontekstu pošlje sporočilo z glavne strani v okvir iframe, ki omogoča, da okvir iframe posodobi svojo vsebino (URL PDF) na podlagi izbir v spustnem meniju. |
window.addEventListener("message") | Ta poslušalec dogodkov je dodan v iframe za poslušanje sporočil, poslanih prek postMessage(). Obdela sporočilo za dinamično nalaganje novega dokumenta PDF v iframe na podlagi prejetih podatkov. |
event.data | Znotraj obdelovalnika dogodkov sporočila event.data vsebuje podatke, poslane iz nadrejenega okna. V tem primeru vključuje URL izbrane datoteke PDF, ki se naloži v pregledovalnik PSPDFKit. |
document.getElementById() | Ta metoda manipulacije DOM pridobi element HTML po njegovem ID-ju. Uporablja se za zajemanje uporabniškega vnosa iz spustnih elementov, kar skriptu omogoča, da določi izbrano leto in mesec za posodobitev URL-ja PDF. |
DOMContentLoaded | Dogodek, ki zagotavlja, da se JavaScript izvede šele, ko je DOM v celoti naložen. To prepreči napake pri poskusu dostopa do elementov DOM, preden ti obstajajo. |
addEventListener("change") | Ta poslušalec dogodkov spremlja spustne elemente za morebitne spremembe. Ko uporabnik izbere drugo leto ali mesec, se sproži funkcija za posodobitev URL-ja PDF in nalaganje ustreznega dokumenta. |
template literals | Dobesedni predlogi (okroženi s povratnimi kljukicami) omogočajo vdelavo spremenljivk v nize, kar olajša dinamično ustvarjanje URL-ja za izbran PDF. Na primer: `https://domain.tld/${year}_${month}_etc.pdf`. |
container: "#pspdfkit" | V inicializaciji PSPDFKit vsebnik določa element HTML (po ID-ju), kjer bo upodobljen pregledovalnik PDF. To je bistvenega pomena za določitev, kje na strani bo PDF prikazan. |
Dinamično nalaganje PDF-jev s spustnimi izbirami v Wixu
V tej rešitvi uporabljamo par spustnih elementov na strani Wix za dinamično spreminjanje URL-ja datoteke PDF, prikazane v vdelanem iFrame-u. Ta sistem je še posebej uporaben za javne knjižnice, ki želijo zagotoviti enostaven dostop do arhiviranih časopisnih PDF-jev. Osnovno funkcionalnost poganja Sporočila JavaScript, ki pošlje izbire uporabnikov iz spustnih menijev v vdelan pregledovalnik PDF. Pregledovalnik PSPDFKit se uporablja za upodabljanje PDF-jev znotraj iFrame, pregledovalnik pa manipuliramo tako, da spremenimo URL na podlagi uporabnikove izbire leta in meseca. To zagotavlja poenostavljen način za prikazovanje velikih arhivov brez ustvarjanja več statičnih strani Wix.
Prvi spustni meni izbere leto, drugi spustni meni pa mesec. Ko uporabnik izbere oboje, sistem ustvari ustrezen URL za ustrezno datoteko PDF. The PSPDFKit.load() metoda je osrednjega pomena pri tem, saj naloži nov PDF v iFrame na podlagi posodobljenega URL-ja. Ta metoda je del knjižnice PSPDFKit, ki je vdelana v stran prek zunanjega skripta. The postMessage() API je ključnega pomena tudi v alternativni rešitvi, ki omogoča sporočanje med nadrejeno stranjo in okvirjem iframe. S pošiljanjem sporočila z novim URL-jem PDF v okvir iframe se pregledovalnik PDF dinamično posodobi.
Da bi zagotovili, da se skript izvaja le, ko je DOM v celoti naložen, uporabljamo DOMContentLoaded dogodek. To zagotavlja, da so elementi spustnega menija in vsebnik PSPDFKit dostopni skriptu. Vsakemu spustnemu meniju dodamo tudi poslušalce dogodkov. Ko uporabnik izbere leto ali mesec, ustrezen poslušalec dogodkov zajame izbor in pokliče funkcijo za ponovno nalaganje pregledovalnika PDF s pravilnim URL-jem. To se reši s preprosto funkcijo, ki uporablja literale predloge za sestavo URL-ja iz izbranih vrednosti v spustnem meniju. Ta metoda ni samo enostavna za implementacijo, ampak je tudi zelo modularna, kar omogoča enostavno posodabljanje, ko so dodani novi arhivi.
Pri drugem pristopu uporabljamo postMessage() za komunikacijo med nadrejeno stranjo in iFrame. Nadrejena stran posluša spremembe spustnega seznama in pošlje sporočilo z novim URL-jem PDF v okvir iFrame, ki sporočilo prejme s poslušalcem dogodkov. Ta metoda je uporabna pri delu z bolj izoliranimi okolji, kjer iframe ne more neposredno komunicirati z DOM nadrejene strani. Oba načina zagotavljata učinkovite načine za dinamično posodabljanje vsebine vdelanega pregledovalnika PDF, kar zmanjšuje potrebo po več statičnih straneh in ponuja uporabniku prijazno izkušnjo brskanja.
Implementacija preklapljanja URL-jev na podlagi spustnega menija za pregledovalnik PDF v Wixu
Frontend skript, ki uporablja JavaScript in Velo okvir
// 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 pristop: uporaba API-ja PostMessage za komunikacijo iFrame
Frontend skript, ki uporablja API za postMessage za boljšo izolacijo med iframe in nadrejenim dokumentom
// 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>
Izboljšanje dostopnosti arhiva PDF z Wix in JavaScript Messaging
Drug pomemben pomislek pri uporabi spustnih elementov za dinamično spreminjanje vdelanega URL-ja PDF v Wixu je zagotavljanje, da je interakcija med iFrame in glavna stran je učinkovita. Medtem ko nam sporočila JavaScript omogočajo pošiljanje podatkov med tema dvema komponentama, je mogoče učinkovitost in uporabniško izkušnjo izboljšati z optimizacijo načina, kako izbira sproži posodobitve. To lahko storite tako, da zavrnete odboj vnosa, kar pomeni, da sistem posodobi pregledovalnik PDF šele potem, ko uporabnik zaključi svojo izbiro, in ne ob vsaki spremembi.
Drugi vidik, ki še ni bil zajet, je izmenjava virov navzkrižnega izvora (CORS). Ker PDF-ji gostujejo na zunanjem strežniku (kot je Digital Ocean), je ključnega pomena zagotoviti, da je strežnik konfiguriran tako, da omogoča dostop iz domene Wix. Če nastavitve CORS strežnika niso pravilno konfigurirane, pregledovalnik PDF morda ne bo mogel naložiti dokumenta, kar bo povzročilo napake. Ustrezne glave CORS na strežniku, ki gosti datoteke PDF, so bistvenega pomena za brezhibno integracijo med obema platformama.
Poleg tega lahko izboljšate sistem tako, da vnaprej naložite pogosto dostopne datoteke PDF, da skrajšate čas nalaganja. Strategije prednalaganja so uporabne, ko bo uporabnik verjetno preklapljal med več meseci ali leti. S shranjevanjem teh datotek v predpomnilnik brskalnika bodo nadaljnja nalaganja dokumentov hitrejša, kar bo zagotovilo bolj gladko uporabniško izkušnjo. To je mogoče storiti s pomočjo servisnih delavcev ali drugih mehanizmov predpomnjenja, ki jih je mogoče nastaviti za vnaprejšnje nalaganje PDF-jev, ko uporabnik krmari po razpoložljivih možnostih.
Pogosta vprašanja o dinamičnih vdelavah PDF v Wix
- Kako dodam spustne izbirnike v Wix?
- Elemente spustnega menija lahko dodate z urejevalnikom Wix in uporabite JavaScript za nadzor z dodeljevanjem edinstvenih ID-jev. Elementi spustnega menija bodo sprožili spremembe URL-ja PDF prek document.getElementById().
- Kaj pomeni PSPDFKit.load() ukaz narediti?
- The PSPDFKit.load() metoda je odgovorna za upodabljanje pregledovalnika PDF in nalaganje določene datoteke PDF vanj. Ta metoda je del knjižnice PSPDFKit, ki se uporablja za dinamičen prikaz datotek PDF.
- Ali lahko uporabim postMessage() za medsebojno komunikacijo?
- Da, postMessage() API je posebej zasnovan za komunikacijo med različnimi izvori, na primer med nadrejeno stranjo in okvirjem iFrame, kar je ključnega pomena za to izvedbo.
- Kako obravnavam napake pri nalaganju PDF-ja?
- Napake lahko obravnavate tako, da dodate a .catch() blok do PSPDFKit.load() funkcijo za lovljenje morebitnih napak, ki se pojavijo med postopkom nalaganja, in prikaz ustreznega sporočila o napaki.
- Ali moram svoj strežnik konfigurirati za CORS?
- Da, če vaši PDF-ji gostujejo na drugi domeni, boste morali zagotoviti, da je strežnik pravilno nastavljen CORS glave, da spletnemu mestu Wix omogočite dostop do dokumentov.
Končne misli o dinamičnem prikazu PDF
Ta rešitev poenostavlja postopek prikaza velikih arhivov datotek PDF na eni strani. Z uporabo dveh spustnih elementov za izbiro leta in meseca lahko dinamično posodabljamo pregledovalnik PDF, ne da bi ustvarili več strani Wix.
S kombinacijo prilagodljivosti ogrodja Velo s sporočili JavaScript med spustnimi meniji in iFrame ta metoda zagotavlja učinkovit način za organiziranje in predstavitev zgodovinskih podatkov. Je razširljiv in uporabniku prijazen za javna spletna mesta, kot so knjižnični arhivi.
Viri in reference za dinamično nalaganje PDF z Wixom in JavaScriptom
- Zagotavlja podrobno dokumentacijo o delu z elementom HTML iFrame in sporočili JavaScript na Wixu z uporabo ogrodja Velo. Obisk Dokumenti za razvijalce Wix za več informacij.
- Uradna dokumentacija PSPDFKit, ki podrobno opisuje, kako vdelati in naložiti PDF-je v iFrame z njihovo knjižnico JavaScript. Dostop do njega tukaj: Dokumentacija PSPDFKit .
- Priročnik o izvajanju skupne rabe virov navzkrižnega izvora (CORS), da se zagotovi pravilno nalaganje PDF iz zunanjih strežnikov, kot je Digital Ocean. Več si lahko preberete na Spletni dokumenti MDN na CORS .