Wix لائبریری سائٹ پر پی ڈی ایف ویور کی فعالیت کو بڑھانا
عوامی لائبریری کی ویب سائٹ پر صارف کے تجربے کو بہتر بنانے کے لیے پی ڈی ایف فائلوں کے وسیع ذخیرہ کو منظم اور صارف دوست انداز میں ڈسپلے کرنا بہت ضروری ہے۔ مقصد یہ ہے کہ زائرین کو تاریخی ریکارڈز جیسے پرانے اخبارات تک بغیر کسی رکاوٹ کے رسائی کی پیشکش کی جائے، جو پی ڈی ایف کے طور پر محفوظ ہیں۔ اس پروجیکٹ میں، Wix، Velo، اور ایک HTML ایمبیڈ عنصر کا استعمال ایک مضبوط نظام کی بنیاد بناتا ہے۔
Wix کا پلیٹ فارم iframes کے ذریعے ایمبیڈڈ عناصر کو سپورٹ کرتا ہے، جس سے صارفین کو پی ڈی ایف ویورز جیسے انٹرایکٹو اجزاء شامل کرنے کی اجازت ملتی ہے۔ یہ پی ڈی ایف ویور ایک iframe کا استعمال کرتے ہوئے سرایت کرتا ہے، اور فی الحال، ایک جامد یو آر ایل اس بات کی وضاحت کرتا ہے کہ کون سی دستاویز دکھائی جاتی ہے۔ تاہم، صارف کے ان پٹ کی بنیاد پر پی ڈی ایف فائل کو متحرک طور پر تبدیل کرنے کی ضرورت ایک ہموار تجربے کے لیے ضروری ہے۔
چیلنج یہ ہے کہ صارفین کو دو ڈراپ ڈاؤنز میں سے ایک سال اور ایک ماہ کا انتخاب کرنے کی اجازت دی جائے، جو اس کے بعد دکھائی جانے والی پی ڈی ایف دستاویز میں تبدیلی کو متحرک کرے گا۔ اس میں iframe کے ساتھ بات چیت کرنے کے لیے JavaScript پیغام رسانی کو مربوط کرنا، دستاویز کے URL کو ڈراپ ڈاؤن انتخاب کے مطابق تبدیل کرنے کے قابل بنانا شامل ہے۔
یہ نقطہ نظر نہ صرف متعدد جامد Wix صفحات کی ضرورت کو کم کرتا ہے بلکہ لائبریری کے پی ڈی ایف آرکائیو تک رسائی کو بھی آسان بناتا ہے۔ ذیل میں، ہم Velo فریم ورک اور JavaScript کا استعمال کرتے ہوئے اسے نافذ کرنے کے لیے درکار اقدامات اور حل تلاش کرتے ہیں۔
حکم | استعمال کی مثال |
---|---|
PSPDFKit.load() | یہ طریقہ ایک مخصوص کنٹینر کے اندر PSPDFKit پی ڈی ایف ویور کو شروع کرتا ہے۔ یہ فراہم کردہ یو آر ایل سے پی ڈی ایف فائل لوڈ کرتا ہے، جس سے اسے ایمبیڈ عنصر کے اندر دیکھا جا سکتا ہے۔ یہ PSPDFKit کی JavaScript لائبریری کے لیے مخصوص ہے، جو PDF دستاویزات کو سرایت کرنے اور دیکھنے کے لیے تیار کی گئی ہے۔ |
postMessage() | پیرنٹ ونڈو اور ایمبیڈڈ iframe کے درمیان بات چیت کرنے کے لیے استعمال کیا جاتا ہے۔ اس تناظر میں، یہ مرکزی صفحہ سے iframe پر ایک پیغام بھیجتا ہے، جس سے iframe کو ڈراپ ڈاؤن انتخاب کی بنیاد پر اپنے مواد (پی ڈی ایف یو آر ایل) کو اپ ڈیٹ کرنے کی اجازت ملتی ہے۔ |
window.addEventListener("message") | اس ایونٹ کے سننے والے کو postMessage() کے ذریعے بھیجے گئے پیغامات سننے کے لیے iframe کے اندر شامل کیا جاتا ہے۔ یہ موصولہ ڈیٹا کی بنیاد پر iframe میں ایک نئی PDF دستاویز کو متحرک طور پر لوڈ کرنے کے لیے پیغام پر کارروائی کرتا ہے۔ |
event.data | میسج ایونٹ ہینڈلر کے اندر، event.data میں پیرنٹ ونڈو سے بھیجا گیا ڈیٹا ہوتا ہے۔ اس صورت میں، اس میں PSPDFKit ویور میں لوڈ کی جانے والی منتخب PDF فائل کا URL شامل ہے۔ |
document.getElementById() | یہ DOM ہیرا پھیری کا طریقہ ایک HTML عنصر کو اس کی ID کے ذریعے بازیافت کرتا ہے۔ اس کا استعمال ڈراپ ڈاؤن عناصر سے صارف کے ان پٹ کو حاصل کرنے کے لیے کیا جاتا ہے، جس سے اسکرپٹ پی ڈی ایف یو آر ایل اپ ڈیٹ کے لیے منتخب سال اور مہینے کا تعین کر سکتا ہے۔ |
DOMContentLoaded | ایک ایسا واقعہ جو یقینی بناتا ہے کہ JavaScript صرف DOM کے مکمل لوڈ ہونے کے بعد ہی عمل میں آتا ہے۔ یہ DOM عناصر کے موجود ہونے سے پہلے ان تک رسائی کی کوشش کرتے وقت غلطیوں کو روکتا ہے۔ |
addEventListener("change") | یہ واقعہ سننے والا کسی بھی تبدیلی کے لیے ڈراپ ڈاؤن عناصر کی نگرانی کرتا ہے۔ جب کوئی صارف مختلف سال یا مہینے کا انتخاب کرتا ہے، تو فنکشن پی ڈی ایف یو آر ایل کو اپ ڈیٹ کرنے اور متعلقہ دستاویز کو لوڈ کرنے کے لیے متحرک ہو جاتا ہے۔ |
template literals | ٹیمپلیٹ لٹریلز (بیک ٹِکس سے منسلک) متغیرات کو تاروں میں سرایت کرنے کی اجازت دیتے ہیں، جس سے منتخب پی ڈی ایف کے لیے متحرک طور پر یو آر ایل بنانا آسان ہو جاتا ہے۔ مثال کے طور پر: `https://domain.tld/${year}_${month}_etc.pdf`۔ |
container: "#pspdfkit" | PSPDFKit ابتدا میں، کنٹینر HTML عنصر (بذریعہ ID) کی وضاحت کرتا ہے جہاں پی ڈی ایف ویور کو پیش کیا جائے گا۔ یہ اس بات کی وضاحت کے لیے ضروری ہے کہ صفحہ پر پی ڈی ایف کہاں دکھائی جائے گی۔ |
Wix میں ڈراپ ڈاؤن انتخاب کے ساتھ متحرک PDF لوڈنگ
اس حل میں، ہم Wix صفحہ پر ڈراپ ڈاؤن عناصر کا ایک جوڑا استعمال کرتے ہیں تاکہ ایک ایمبیڈڈ iFrame کے اندر دکھائی جانے والی PDF فائل کے URL کو متحرک طور پر تبدیل کیا جا سکے۔ یہ نظام خاص طور پر ان پبلک لائبریریوں کے لیے مفید ہے جو آرکائیو شدہ اخباری PDFs تک آسان رسائی فراہم کرنا چاہتے ہیں۔ بنیادی فعالیت کی طرف سے طاقت ہے جاوا اسکرپٹ پیغام رسانی، جو صارف کے انتخاب کو ڈراپ ڈاؤن سے ایمبیڈڈ پی ڈی ایف ویور کو بھیجتا ہے۔ PSPDFKit ویور کا استعمال iFrame کے اندر PDFs کو رینڈر کرنے کے لیے کیا جاتا ہے، اور ہم صارف کے سال اور مہینے کے انتخاب کی بنیاد پر یو آر ایل کو تبدیل کر کے ناظر کو جوڑ توڑ کرتے ہیں۔ یہ متعدد جامد Wix صفحات بنائے بغیر بڑے آرکائیوز کو سطح پر لانے کا ایک ہموار طریقہ فراہم کرتا ہے۔
پہلا ڈراپ ڈاؤن سال کا انتخاب کرتا ہے، اور دوسرا ڈراپ ڈاؤن مہینے کا انتخاب کرتا ہے۔ جب صارف دونوں کو منتخب کرتا ہے، تو سسٹم متعلقہ پی ڈی ایف فائل کے لیے مناسب یو آر ایل بناتا ہے۔ دی PSPDFKit.load() طریقہ اس میں مرکزی حیثیت رکھتا ہے، کیونکہ یہ اپ ڈیٹ شدہ URL کی بنیاد پر iFrame میں نئی PDF لوڈ کرتا ہے۔ یہ طریقہ PSPDFKit لائبریری کا حصہ ہے، جو ایک بیرونی اسکرپٹ کے ذریعے صفحہ پر سرایت کرتا ہے۔ دی پوسٹ میسج() متبادل حل میں API بھی اہم ہے، جو پیرنٹ پیج اور iframe کے درمیان پیغام رسانی کی اجازت دیتا ہے۔ iframe پر نئے PDF URL پر مشتمل پیغام بھیجنے سے، PDF ویور کو متحرک طور پر اپ ڈیٹ کیا جاتا ہے۔
اس بات کو یقینی بنانے کے لیے کہ اسکرپٹ صرف اس وقت چلتا ہے جب DOM مکمل طور پر لوڈ ہو، ہم استعمال کرتے ہیں۔ DOMContentloaded واقعہ یہ یقینی بناتا ہے کہ ڈراپ ڈاؤن عناصر اور PSPDFKit کنٹینر اسکرپٹ تک قابل رسائی ہیں۔ ہم ہر ڈراپ ڈاؤن میں ایونٹ کے سننے والوں کو بھی شامل کرتے ہیں۔ جب صارف ایک سال یا مہینے کا انتخاب کرتا ہے، تو متعلقہ واقعہ سننے والا انتخاب کو پکڑتا ہے اور پی ڈی ایف ویور کو درست URL کے ساتھ دوبارہ لوڈ کرنے کے لیے ایک فنکشن کو کال کرتا ہے۔ یہ ایک سادہ فنکشن کے ذریعے سنبھالا جاتا ہے جو ڈراپ ڈاؤن میں منتخب اقدار سے یو آر ایل بنانے کے لیے ٹیمپلیٹ لٹریلز کا استعمال کرتا ہے۔ یہ طریقہ نہ صرف لاگو کرنا آسان ہے بلکہ انتہائی ماڈیولر بھی ہے، جو کہ نئے آرکائیوز کے شامل ہونے پر آسان اپ ڈیٹس کی اجازت دیتا ہے۔
دوسرے نقطہ نظر میں، ہم استعمال کرتے ہیں پوسٹ میسج() پیرنٹ پیج اور iFrame کے درمیان بات چیت کرنے کے لیے۔ بنیادی صفحہ ڈراپ ڈاؤن تبدیلیوں کو سنتا ہے اور iFrame کو نئے پی ڈی ایف یو آر ایل پر مشتمل ایک پیغام بھیجتا ہے، جو واقعہ سننے والے کا استعمال کرتے ہوئے پیغام وصول کرتا ہے۔ یہ طریقہ کارآمد ہے جب زیادہ الگ تھلگ ماحول سے نمٹنے کے لیے جہاں iframe براہ راست پیرنٹ پیج کے DOM کے ساتھ تعامل نہیں کر سکتا۔ دونوں طریقے ایمبیڈڈ پی ڈی ایف ویور کے مواد کو متحرک طور پر اپ ڈیٹ کرنے کے موثر طریقے فراہم کرتے ہیں، متعدد جامد صفحات کی ضرورت کو کم کرتے ہیں اور صارف کے لیے براؤزنگ کا تجربہ پیش کرتے ہیں۔
Wix میں پی ڈی ایف ویور کے لیے ڈراپ ڈاؤن پر مبنی یو آر ایل سوئچنگ کو نافذ کرنا
جاوا اسکرپٹ اور ویلو فریم ورک کا استعمال کرتے ہوئے فرنٹ اینڈ اسکرپٹ
// 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>
متبادل نقطہ نظر: iFrame کمیونیکیشن کے لیے PostMessage API کا استعمال
iframe اور پیرنٹ دستاویز کے درمیان بہتر تنہائی کے لیے postMessage API کا استعمال کرتے ہوئے فرنٹ اینڈ اسکرپٹ
// 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 اور JavaScript پیغام رسانی کے ساتھ PDF آرکائیو کی رسائی کو بڑھانا
Wix میں ایمبیڈڈ پی ڈی ایف یو آر ایل کو متحرک طور پر تبدیل کرنے کے لیے ڈراپ ڈاؤن عناصر کا استعمال کرتے وقت ایک اور اہم غور اس بات کو یقینی بنا رہا ہے کہ iFrame اور مرکزی صفحہ موثر ہے۔ جب کہ JavaScript پیغام رسانی ہمیں ان دو اجزاء کے درمیان ڈیٹا بھیجنے کی اجازت دیتی ہے، لیکن کارکردگی اور صارف کے تجربے کو بہتر بنا کر بہتر بنایا جا سکتا ہے کہ انتخاب کس طرح اپ ڈیٹس کو متحرک کرتا ہے۔ یہ ان پٹ کو ڈیباؤن کر کے کیا جا سکتا ہے، مطلب یہ ہے کہ سسٹم ہر تبدیلی کے بجائے پی ڈی ایف ویور کو صارف کے انتخاب مکمل کرنے کے بعد ہی اپ ڈیٹ کرتا ہے۔
ایک اور پہلو جس کا ابھی تک احاطہ نہیں کیا گیا ہے۔ کراس اوریجن ریسورس شیئرنگ (CORS). چونکہ PDFs ایک بیرونی سرور (جیسے ڈیجیٹل اوشین) پر ہوسٹ کی جاتی ہیں، اس لیے یہ یقینی بنانا بہت ضروری ہے کہ سرور کو Wix ڈومین سے رسائی کی اجازت دینے کے لیے ترتیب دیا گیا ہو۔ اگر سرور کی CORS سیٹنگز کو صحیح طریقے سے کنفیگر نہیں کیا گیا ہے تو، PDF ویور دستاویز کو لوڈ کرنے کے قابل نہیں ہوسکتا ہے، جس کے نتیجے میں خرابیاں پیدا ہوتی ہیں۔ پی ڈی ایف فائلوں کی میزبانی کرنے والے سرور پر مناسب CORS ہیڈر دونوں پلیٹ فارمز کے درمیان ہموار انضمام کے لیے ضروری ہیں۔
مزید برآں، آپ لوڈنگ کے اوقات کو کم کرنے کے لیے اکثر رسائی کی جانے والی پی ڈی ایف فائلوں کو پہلے سے لوڈ کرکے سسٹم کو بہتر بنا سکتے ہیں۔ پری لوڈنگ کی حکمت عملی اس وقت کارآمد ہوتی ہے جب صارف کے متعدد مہینوں یا سالوں کے درمیان تبدیل ہونے کا امکان ہو۔ ان فائلوں کو براؤزر کے کیش میں ذخیرہ کرنے سے، بعد میں دستاویز کا بوجھ تیز تر ہو جائے گا، جو صارف کو ایک ہموار تجربہ فراہم کرے گا۔ یہ سروس ورکرز یا دیگر کیشنگ میکانزم کا استعمال کرتے ہوئے کیا جا سکتا ہے، جو پی ڈی ایف کو پہلے سے لوڈ کرنے کے لیے سیٹ اپ کیا جا سکتا ہے کیونکہ صارف دستیاب اختیارات کے ذریعے تشریف لے جاتا ہے۔
Wix میں Dynamic PDF Embeds کے بارے میں اکثر پوچھے گئے سوالات
- میں Wix میں ڈراپ ڈاؤن سلیکٹرز کو کیسے شامل کروں؟
- آپ Wix ایڈیٹر کا استعمال کرتے ہوئے ڈراپ ڈاؤن عناصر شامل کر سکتے ہیں، اور منفرد ID تفویض کر کے ان کو کنٹرول کرنے کے لیے JavaScript استعمال کر سکتے ہیں۔ ڈراپ ڈاؤن عناصر پی ڈی ایف یو آر ایل میں تبدیلیوں کو متحرک کریں گے۔ document.getElementById().
- کیا کرتا ہے PSPDFKit.load() حکم کرتے ہیں؟
- دی PSPDFKit.load() پی ڈی ایف ویور کو رینڈر کرنے اور اس میں مخصوص پی ڈی ایف فائل لوڈ کرنے کا طریقہ ذمہ دار ہے۔ یہ طریقہ PSPDFKit لائبریری کا حصہ ہے جسے پی ڈی ایف فائلوں کو متحرک طور پر ڈسپلے کرنے کے لیے استعمال کیا جاتا ہے۔
- میں استعمال کر سکتا ہوں؟ postMessage() کراس اوریجن مواصلات کے لیے؟
- جی ہاں، postMessage() API کو خاص طور پر مختلف اصلوں کے درمیان بات چیت کرنے کے لیے ڈیزائن کیا گیا ہے، جیسے کہ پیرنٹ پیج اور ایک iFrame کے درمیان، جو اس نفاذ کے لیے بہت ضروری ہے۔
- پی ڈی ایف لوڈ کرتے وقت میں غلطیوں کو کیسے ہینڈل کروں؟
- آپ a شامل کرکے غلطیوں کو سنبھال سکتے ہیں۔ .catch() کو بلاک کریں PSPDFKit.load() لوڈنگ کے عمل کے دوران ہونے والی غلطیوں کو پکڑنے اور ایک مناسب ایرر میسج ڈسپلے کرنے کے لیے فنکشن۔
- کیا مجھے اپنے سرور کو CORS کے لیے کنفیگر کرنے کی ضرورت ہے؟
- ہاں، اگر آپ کے پی ڈی ایفز کسی دوسرے ڈومین پر ہوسٹ کیے گئے ہیں، تو آپ کو یہ یقینی بنانا ہوگا کہ سرور مناسب طریقے سے ترتیب دیا گیا ہے۔ CORS Wix سائٹ کو دستاویزات تک رسائی کی اجازت دینے کے لیے ہیڈر۔
متحرک پی ڈی ایف ڈسپلے پر حتمی خیالات
یہ حل پی ڈی ایف فائلوں کے بڑے آرکائیوز کو ایک صفحے پر ظاہر کرنے کے عمل کو آسان بناتا ہے۔ سال اور مہینے کے انتخاب کے لیے دو ڈراپ ڈاؤن عناصر کا استعمال کرکے، ہم متعدد Wix صفحات بنائے بغیر پی ڈی ایف ویور کو متحرک طور پر اپ ڈیٹ کر سکتے ہیں۔
ڈراپ ڈاؤن اور iFrame کے درمیان جاوا اسکرپٹ پیغام رسانی کے ساتھ Velo فریم ورک کی لچک کو یکجا کرتے ہوئے، یہ طریقہ تاریخی ڈیٹا کو منظم اور پیش کرنے کا ایک موثر طریقہ فراہم کرتا ہے۔ یہ لائبریری آرکائیوز جیسی عوامی سطح کی ویب سائٹس کے لیے توسیع پذیر اور صارف دوست دونوں ہے۔
Wix اور JavaScript کے ساتھ متحرک PDF لوڈنگ کے لیے ذرائع اور حوالہ جات
- Velo فریم ورک کا استعمال کرتے ہوئے Wix پر HTML iFrame عنصر اور JavaScript پیغام رسانی کے ساتھ کام کرنے کے بارے میں تفصیلی دستاویزات فراہم کرتا ہے۔ وزٹ کریں۔ Wix ڈویلپر دستاویزات مزید معلومات کے لیے
- PSPDFKit کی سرکاری دستاویزات، جس میں یہ بتایا گیا ہے کہ PDFs کو ان کی JavaScript لائبریری کا استعمال کرتے ہوئے iFrame کے اندر ایمبیڈ اور لوڈ کرنے کا طریقہ۔ یہاں تک رسائی حاصل کریں: PSPDFKit دستاویزات .
- ڈیجیٹل اوشین جیسے بیرونی سرورز سے مناسب پی ڈی ایف لوڈنگ کو یقینی بنانے کے لیے کراس اوریجن ریسورس شیئرنگ (CORS) کو نافذ کرنے کے لیے ایک گائیڈ۔ آپ پر مزید پڑھ سکتے ہیں۔ CORS پر MDN ویب دستاویزات .