SPFx میں کسٹم پاپ اپ لنکس کے ساتھ صارف کے تجربے کو بڑھانا
جدید شیئرپوائنٹ کی ترقی میں، قابل ترتیب تلاش کے نتائج فراہم کرنے کے لیے PnP ماڈرن سرچ ویب پارٹ (SPFx) کا استعمال صارف کے تجربے کو نمایاں طور پر بہتر بنا سکتا ہے۔ لنکس کے کھلنے کے طریقہ کو کنٹرول کرنا ڈویلپرز کے درمیان ایک مقبول خصوصیت ہے، خاص طور پر "تفصیلی فہرست" لے آؤٹ کے ساتھ۔ عام طور پر، لنکس ایک نئے ٹیب میں کھلتے ہیں، لیکن اگر ہم انہیں پاپ اپ ونڈو میں کھولنا چاہتے ہیں تو کیا ہوگا؟
اس پوسٹ میں، ہم دیکھیں گے کہ PnP ماڈرن سرچ ویب پارٹ کے لنک رویے کو تبدیل کرکے اس فعالیت کو کیسے نافذ کیا جائے۔ تلاش کے نتائج کو ایک نئے ٹیب میں کھولنے کے بجائے، ہم یہ دکھائیں گے کہ کس طرح اپنی مرضی کے مطابق پاپ اپ ونڈو میں لنک کو زبردستی کھولنا ہے، جس کے نتیجے میں صارف کا مزید مربوط تجربہ حاصل ہوتا ہے۔
چیلنج اس وقت پیدا ہوتا ہے جب آپ `` جیسا فارمولہ استعمال کرتے ہیں، جو ایک نئے ٹیب میں ڈیفالٹ ہوتا ہے۔ تاہم، جاوا اسکرپٹ کا استعمال کرتے ہوئے، ہم اس رویے کو اوور رائیڈ کر سکتے ہیں اور لنک کو کنٹرول شدہ پاپ اپ ونڈو میں کھول سکتے ہیں۔ یہ اسی براؤزنگ سیشن میں مواد کی نمائش میں مزید لچک پیدا کرنے کی اجازت دیتا ہے۔
حکم | استعمال کی مثال |
---|---|
window.open() | یہ کمانڈ ایک نئی براؤزر ونڈو یا ٹیب کھولے گی۔ یہ طریقہ کچھ جہتوں اور خصوصیات کے ساتھ ایک پاپ اپ ونڈو کھولتا ہے، جیسے چوڑائی، اونچائی، اور اسکرول بار۔ |
event.preventDefault() | کلک کیے گئے لنک کے پہلے سے طے شدہ رویے کو روکتا ہے، جو یو آر ایل کو اسی یا نئے ٹیب میں کھولنا ہے۔ یہ ہمیں اپنی مرضی کے مطابق کرنے کی اجازت دیتا ہے کہ لنک کیسے کام کرتا ہے، جیسے کہ اس کے بجائے پاپ اپ کھولنا۔ |
querySelectorAll() | ڈیٹا پاپ اپ وصف تمام اینکر عناصر کو منتخب کرتا ہے ()۔ یہ طریقہ ایک نوڈ لسٹ واپس کرتا ہے، جو ہمیں ایونٹ کے سننے والوں کو بیک وقت کئی اجزاء پر لاگو کرنے کی اجازت دیتا ہے۔ |
forEach() | querySelectorAll() کے ذریعہ تیار کردہ NodeList میں ہر اندراج کو ایک ایکشن موصول ہوتا ہے (مثال کے طور پر، ایونٹ کے سننے والے کو منسلک کرنا)۔ یہ PnP جدید تلاش میں بہت سے متحرک لنک عناصر کو منظم کرنے پر لاگو ہوتا ہے۔ |
addEventListener() | یہ تکنیک ہر لنک پر کلک ایونٹ سننے والے کو شامل کرتی ہے جو openInPopup() فنکشن کو متحرک کرتا ہے۔ پہلے سے طے شدہ کلک رویے کو اوور رائیڈ کرنے کے لیے یہ ضروری ہے۔ |
import { override } | یہ ڈیکوریٹر شیئرپوائنٹ فریم ورک (SPFx) کا حصہ ہے اور SPFx WebParts کے ڈیفالٹ رویے کو اوور رائیڈ کرنے کے لیے استعمال ہوتا ہے۔ یہ مخصوص تخصیصات کے لیے قابل بناتا ہے، جیسے کہ پاپ اپ فعالیت فراہم کرنے کے لیے JavaScript کو انجیکشن لگانا۔ |
@override | SPFx میں، ایک ڈیکوریٹر اشارہ کرتا ہے کہ کوئی طریقہ یا پراپرٹی فعالیت کو اوور رائیڈ کرتی ہے۔ SharePoint اجزاء کے رویے میں ترمیم کرتے وقت یہ ضروری ہے۔ |
spyOn() | جیسمین کے ساتھ یونٹ ٹیسٹنگ کے دوران فنکشن کالز کو مانیٹر کرتا ہے۔ اس منظر نامے میں، اسے window.open() کے ساتھ استعمال کیا جاتا ہے تاکہ اس بات کی ضمانت دی جا سکے کہ جانچ کے دوران پاپ اپ مناسب طریقے سے لانچ کیا گیا ہے۔ |
expect() | یہ کمانڈ جیسمین میں یونٹ ٹیسٹنگ کے لیے استعمال ہوتی ہے۔ یہ چیک کرتا ہے کہ window.open() کو صحیح دلائل کے ساتھ کال کیا گیا تھا، اس بات کی ضمانت دیتا ہے کہ پاپ اپ مطلوبہ ترتیبات کے ساتھ ظاہر ہوتا ہے۔ |
SPFx میں پاپ اپ ونڈو حل کو سمجھنا
حل 1: ایک پاپ اپ ونڈو بنانے کے لیے JavaScript `window.open` کا استعمال
<script>
function openInPopup(url) {
// Define popup window features
const features = 'width=800,height=600,resizable=yes,scrollbars=yes';
// Open URL in popup
window.open(url, '_blank', features);
}
// Override link behavior
document.querySelectorAll('a[data-popup="true"]').forEach(function (link) {
link.addEventListener('click', function (event) {
event.preventDefault(); // Prevent default link behavior
openInPopup(this.href); // Open in popup
});
});
</script>
// HTML for the link:
<a href="{{slot item @root.slots.PreviewUrl}}" data-popup="true" style="color: {{@root.theme.semanticColors.link}}">
{{slot item @root.slots.Destination}}
</a>
حل 2: ان لائن جاوا اسکرپٹ کو براہ راست لنک ٹیگ میں شامل کرنا
<a href="{{slot item @root.slots.PreviewUrl}}"
onclick="event.preventDefault(); window.open(this.href, '_blank', 'width=800,height=600');"
style="color: {{@root.theme.semanticColors.link}}">
{{slot item @root.slots.Destination}}
</a>
// The window.open parameters define the size and behavior of the popup.
حل 3: جاوا اسکرپٹ انجیکشن کے ساتھ SPFx کا استعمال کرتے ہوئے بیک اینڈ اپروچ
import { override } from '@microsoft/decorators';
import { BaseClientSideWebPart } from '@microsoft/sp-webpart-base';
export default class PopupWebPart extends BaseClientSideWebPart {
@override
public render(): void {
this.domElement.innerHTML = `
<a href="{{slot item @root.slots.PreviewUrl}}" onclick="openPopup(this.href)">
{{slot item @root.slots.Destination}}
</a>
`;
}
}
function openPopup(url: string): void {
window.open(url, '_blank', 'width=800,height=600,resizable=yes');
}
جاوا اسکرپٹ پاپ اپ رویے کے لیے یونٹ ٹیسٹ
describe('Popup Functionality', function() {
it('should open the link in a popup window', function() {
spyOn(window, 'open');
const testUrl = 'http://example.com';
openInPopup(testUrl);
expect(window.open).toHaveBeenCalledWith(testUrl, '_blank', jasmine.any(String));
});
});
SPFx میں ایونٹ ہینڈلنگ اور متحرک JavaScript انجکشن کی تلاش
SPFx میں پاپ اپ ونڈوز کو لاگو کرنے کے لیے اہم نکات
حوالہ جات اور وسائل
- PnP ماڈرن سرچ ویب پارٹ (SPFx) اور حسب ضرورت لنک کے رویے سے متعلق معلومات سرکاری دستاویزات سے حاصل کی گئیں۔ مزید تفصیلات کے لیے، ملاحظہ کریں۔ پی این پی ماڈرن سرچ گٹ ہب ریپوزٹری .
- جاوا اسکرپٹ کے طریقوں کو استعمال کرنے کے بارے میں رہنمائی جیسے window.open() اور تقریب کے سامعین کا حوالہ دیا گیا۔ MDN ویب دستاویزات جاوا اسکرپٹ کے لیے۔
- SharePoint Framework (SPFx) حسب ضرورت کے بارے میں تفصیلات، بشمول JavaScript انجکشن اور @overrideمیں پایا جا سکتا ہے شیئرپوائنٹ فریم ورک کا جائزہ .