JavaScript Mesajlaşmasını Kullanarak Wix'te Açılır Menüye Dayalı PDF URL Değiştirmeyi Entegre Etme

Temp mail SuperHeros
JavaScript Mesajlaşmasını Kullanarak Wix'te Açılır Menüye Dayalı PDF URL Değiştirmeyi Entegre Etme
JavaScript Mesajlaşmasını Kullanarak Wix'te Açılır Menüye Dayalı PDF URL Değiştirmeyi Entegre Etme

Wix Kütüphane Sitesinde PDF Görüntüleyici İşlevselliğini Geliştirme

Geniş bir PDF dosyası arşivinin düzenli ve kullanıcı dostu bir şekilde görüntülenmesi, bir halk kütüphanesinin web sitesindeki kullanıcı deneyimini geliştirmek için çok önemlidir. Amaç, ziyaretçilere PDF olarak saklanan eski gazeteler gibi tarihi kayıtlara kesintisiz erişim sunmaktır. Bu projede Wix, Velo ve HTML yerleştirme öğesinin kullanımı sağlam bir sistemin temelini oluşturur.

Wix'in platformu, iframe'ler aracılığıyla gömülü öğeleri destekleyerek kullanıcıların PDF görüntüleyiciler gibi etkileşimli bileşenler eklemesine olanak tanır. Bu PDF görüntüleyici bir iframe kullanılarak gömülüdür ve şu anda hangi belgenin görüntüleneceğini statik bir URL tanımlar. Ancak sorunsuz bir deneyim için PDF dosyasını kullanıcı girişine göre dinamik olarak değiştirme ihtiyacı çok önemlidir.

Buradaki zorluk, kullanıcıların iki açılır menüden bir yıl ve bir ay seçmesine olanak tanımaktır; bu, daha sonra görüntülenen PDF belgesinde bir değişikliği tetikleyecektir. Bu, iframe ile iletişim kurmak için JavaScript mesajlaşmasının entegre edilmesini ve belgenin URL'sinin açılır seçimlere göre değişmesini sağlamayı içerir.

Bu yaklaşım yalnızca çok sayıda statik Wix sayfasına olan ihtiyacı azaltmakla kalmıyor, aynı zamanda kütüphanenin PDF arşivine erişimi de kolaylaştırıyor. Aşağıda Velo çerçevesini ve JavaScript'i kullanarak bunu uygulamak için gereken adımları ve çözümleri inceliyoruz.

Emretmek Kullanım Örneği
PSPDFKit.load() Bu yöntem, PSPDFKit PDF görüntüleyiciyi belirli bir kapsayıcı içinde başlatır. Sağlanan URL'den bir PDF dosyası yükleyerek onu yerleştirme öğesi içinde görüntülenebilir hale getirir. PDF belgelerini gömmek ve görüntülemek için tasarlanmış PSPDFKit'in JavaScript kitaplığına özeldir.
postMessage() Ana pencere ile gömülü iframe arasında iletişim kurmak için kullanılır. Bu bağlamda, ana sayfadan iframe'e bir mesaj göndererek iframe'in açılır seçimlere göre içeriğini (PDF URL'si) güncellemesine olanak tanır.
window.addEventListener("message") Bu olay dinleyicisi, postMessage() yoluyla gönderilen mesajları dinlemek için iframe'in içine eklenir. Alınan verilere göre iframe'e dinamik olarak yeni bir PDF belgesi yüklemek için mesajı işler.
event.data Mesaj olay işleyicisindeki event.data, ana pencereden gönderilen verileri içerir. Bu durumda PSPDFKit görüntüleyiciye yüklenecek seçilen PDF dosyasının URL'sini içerir.
document.getElementById() Bu DOM manipülasyon yöntemi, bir HTML öğesini kimliğine göre alır. Açılır öğelerden kullanıcı girdisini yakalamak için kullanılır ve komut dosyasının PDF URL güncellemesi için seçilen yılı ve ayı belirlemesine olanak tanır.
DOMContentLoaded JavaScript'in yalnızca DOM tamamen yüklendikten sonra yürütülmesini sağlayan bir olay. Bu, DOM öğelerine var olmadan önce erişmeye çalışırken oluşan hataları önler.
addEventListener("change") Bu olay dinleyicisi, herhangi bir değişiklik olup olmadığını görmek için açılır öğeleri izler. Kullanıcı farklı bir yıl veya ay seçtiğinde, PDF URL'sini güncellemek ve ilgili belgeyi yüklemek için işlev tetiklenir.
template literals Şablon değişmez bilgileri (geri işaretlerle çevrelenmiş), değişkenlerin dizelere yerleştirilmesine olanak tanır ve seçilen PDF için URL'nin dinamik olarak oluşturulmasını kolaylaştırır. Örneğin: `https://alanadi.tld/${yıl__${ay__etc.pdf`.
container: "#pspdfkit" PSPDFKit başlatma işleminde kapsayıcı, PDF görüntüleyicinin oluşturulacağı HTML öğesini (kimliğe göre) belirtir. Bu, PDF'nin sayfada nerede görüntüleneceğini tanımlamak için gereklidir.

Wix'te Açılır Seçimlerle Dinamik PDF Yükleme

Bu çözümde, gömülü bir iFrame içinde görüntülenen PDF dosyasının URL'sini dinamik olarak değiştirmek için Wix sayfasında bir çift açılır öğe kullanıyoruz. Bu sistem özellikle arşivlenmiş gazete PDF'lerine kolay erişim sağlamak isteyen halk kütüphaneleri için kullanışlıdır. Temel işlevsellik tarafından desteklenmektedir JavaScript mesajlaşma, açılır menülerdeki kullanıcı seçimlerini gömülü PDF görüntüleyiciye gönderir. PSPDFKit görüntüleyici, PDF'leri iFrame içinde oluşturmak için kullanılır ve kullanıcının yıl ve ay seçimine göre URL'yi değiştirerek görüntüleyiciyi değiştiririz. Bu, birden fazla statik Wix sayfası oluşturmadan büyük arşivleri ortaya çıkarmanın kolaylaştırılmış bir yolunu sağlar.

İlk açılır menü yılı seçer, ikinci açılır menü ise ayı seçer. Kullanıcı her ikisini de seçtiğinde sistem ilgili PDF dosyası için uygun URL'yi oluşturur. PSPDFKit.load() yöntemi, güncellenen URL'ye göre yeni PDF'yi iFrame'e yüklediği için bunun merkezinde yer alır. Bu yöntem, sayfaya harici bir komut dosyası aracılığıyla katıştırılan PSPDFKit kitaplığının bir parçasıdır. mesajMesaj() API, ana sayfa ile iframe arasında mesajlaşmaya izin veren alternatif çözümde de kritik öneme sahiptir. Yeni PDF URL'sini içeren bir mesajın iframe'e gönderilmesiyle PDF görüntüleyici dinamik olarak güncellenir.

Komut dosyasının yalnızca DOM tamamen yüklendiğinde çalışmasını sağlamak için DOMContentLoaded etkinlik. Bu, açılır öğelerin ve PSPDFKit kapsayıcısının komut dosyası tarafından erişilebilir olmasını sağlar. Ayrıca her açılır menüye olay dinleyicileri de ekliyoruz. Kullanıcı bir yıl veya ay seçtiğinde, ilgili olay dinleyicisi seçimi yakalar ve PDF görüntüleyiciyi doğru URL ile yeniden yüklemek için bir işlevi çağırır. Bu, URL'yi açılır menülerde seçilen değerlerden oluşturmak için şablon değişmezlerini kullanan basit bir işlev aracılığıyla gerçekleştirilir. Bu yöntemin uygulanması kolay olmasının yanı sıra son derece modülerdir ve yeni arşivler eklendikçe kolay güncellemelere olanak tanır.

İkinci yaklaşımda ise şunu kullanıyoruz: mesajMesaj() ana sayfa ile iFrame arasında iletişim kurmak için. Ana sayfa, açılır menü değişikliklerini dinler ve yeni PDF URL'sini içeren bir mesajı, bir olay dinleyicisi kullanarak mesajı alan iFrame'e gönderir. Bu yöntem, iframe'in ana sayfanın DOM'uyla doğrudan etkileşim kuramadığı daha yalıtılmış ortamlarla uğraşırken kullanışlıdır. Her iki yöntem de gömülü PDF görüntüleyicinin içeriğini dinamik olarak güncellemenin etkili yollarını sağlayarak birden fazla statik sayfa ihtiyacını azaltır ve kullanıcı dostu bir tarama deneyimi sunar.

Wix'te PDF Görüntüleyici için Açılır Menü Tabanlı URL Değiştirmeyi Uygulama

JavaScript ve Velo çerçevesini kullanan ön uç komut dosyası

// 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>

Alternatif Yaklaşım: iFrame İletişimi için PostMessage API'sini Kullanma

iframe ve ana belge arasında daha iyi izolasyon için postMessage API'sini kullanan ön uç komut dosyası

// 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>

Wix ve JavaScript Mesajlaşma ile PDF Arşivi Erişilebilirliğini Geliştirme

Wix'te gömülü bir PDF URL'sini dinamik olarak değiştirmek için açılır öğeleri kullanırken göz önünde bulundurulması gereken bir diğer önemli husus, iFrame ve ana sayfa verimlidir. JavaScript mesajlaşma, bu iki bileşen arasında veri göndermemize olanak sağlarken, seçimin güncellemeleri nasıl tetiklediğini optimize ederek performans ve kullanıcı deneyimi iyileştirilebilir. Bu, girişin geri çevrilmesiyle yapılabilir; bu, sistemin PDF görüntüleyiciyi her değişiklik yerine yalnızca kullanıcı seçimini tamamladıktan sonra güncelleyeceği anlamına gelir.

Henüz ele alınmayan bir diğer husus ise kökenler arası kaynak paylaşımı (CORS). PDF'ler harici bir sunucuda (Digital Ocean gibi) barındırıldığından, sunucunun Wix etki alanından erişime izin verecek şekilde yapılandırıldığından emin olmak çok önemlidir. Sunucunun CORS ayarları doğru yapılandırılmamışsa PDF görüntüleyici belgeyi yükleyemeyebilir ve bu da hatalara neden olabilir. PDF dosyalarını barındıran sunucudaki uygun CORS başlıkları, iki platform arasında kusursuz entegrasyon için gereklidir.

Ayrıca yükleme sürelerini azaltmak için sık erişilen PDF dosyalarını önceden yükleyerek sistemi geliştirebilirsiniz. Ön yükleme stratejileri, kullanıcının birden fazla ay veya yıl arasında geçiş yapma olasılığı yüksek olduğunda kullanışlıdır. Bu dosyaların tarayıcının önbelleğinde saklanması, sonraki belge yüklemelerini hızlandıracak ve daha sorunsuz bir kullanıcı deneyimi sağlayacaktır. Bu, kullanıcı mevcut seçenekler arasında gezinirken PDF'leri önceden yüklemek üzere ayarlanabilen hizmet çalışanları veya diğer önbelleğe alma mekanizmaları kullanılarak yapılabilir.

Wix'teki Dinamik PDF Gömmeler Hakkında Sıkça Sorulan Sorular

  1. Wix'te açılır seçicileri nasıl eklerim?
  2. Wix düzenleyiciyi kullanarak açılır öğeler ekleyebilir ve benzersiz kimlikler atayarak bunları kontrol etmek için JavaScript'i kullanabilirsiniz. Açılır öğeler, PDF URL'sindeki değişiklikleri tetikleyecektir. document.getElementById().
  3. Ne yapar PSPDFKit.load() komut yap?
  4. PSPDFKit.load() yöntem, PDF görüntüleyicinin oluşturulmasından ve belirli bir PDF dosyasının buraya yüklenmesinden sorumludur. Bu yöntem, PDF dosyalarını dinamik olarak görüntülemek için kullanılan PSPDFKit kitaplığının bir parçasıdır.
  5. Kullanabilir miyim postMessage() çapraz köken iletişimi için?
  6. Evet, postMessage() API, bu uygulama için çok önemli olan bir üst sayfa ile iFrame arasındaki gibi farklı kaynaklar arasında iletişim kurmak için özel olarak tasarlanmıştır.
  7. PDF yüklerken hataları nasıl halledebilirim?
  8. Hataları bir ekleyerek halledebilirsiniz. .catch() engellemek PSPDFKit.load() Yükleme işlemi sırasında meydana gelen hataları yakalayan ve uygun bir hata mesajı görüntüleyen işlev.
  9. Sunucumu CORS için yapılandırmam gerekiyor mu?
  10. Evet, PDF'leriniz farklı bir alanda barındırılıyorsa sunucunun uygun şekilde kurulduğundan emin olmanız gerekir. CORS Wix sitesinin belgelere erişmesine izin veren başlıklar.

Dinamik PDF Görüntüsü Hakkında Son Düşünceler

Bu çözüm, büyük PDF dosyası arşivlerinin tek bir sayfada görüntülenmesi sürecini basitleştirir. Yıl ve ayı seçmek için iki açılır öğe kullanarak, birden fazla Wix sayfası oluşturmadan PDF görüntüleyiciyi dinamik olarak güncelleyebiliriz.

Velo çerçevesinin esnekliğini açılır menüler ve iFrame arasındaki JavaScript mesajlaşmasıyla birleştiren bu yöntem, geçmiş verileri düzenlemek ve sunmak için etkili bir yol sağlar. Kütüphane arşivleri gibi halka açık web siteleri için hem ölçeklenebilir hem de kullanıcı dostudur.

Wix ve JavaScript ile Dinamik PDF Yükleme için Kaynaklar ve Referanslar
  1. Velo çerçevesini kullanarak Wix'te HTML iFrame öğesiyle çalışma ve JavaScript mesajlaşma hakkında ayrıntılı belgeler sağlar. Ziyaret etmek Wix Geliştirici Belgeleri daha fazla bilgi için.
  2. PSPDFKit'in, JavaScript kitaplığını kullanarak PDF'lerin iFrame'e nasıl yerleştirileceğini ve yükleneceğini ayrıntılarıyla anlatan resmi belgeleri. Buradan erişin: PSPDFKit Belgeleri .
  3. PDF'nin Digital Ocean gibi harici sunuculardan düzgün şekilde yüklenmesini sağlamak için çapraz kaynak paylaşımının (CORS) uygulanmasına ilişkin bir kılavuz. Daha fazlasını şu adreste okuyabilirsiniz: CORS'ta MDN Web Belgeleri .