SPFx இல் தனிப்பயன் பாப்அப் இணைப்புகளுடன் பயனர் அனுபவத்தை மேம்படுத்துதல்
நவீன ஷேர்பாயிண்ட் மேம்பாட்டில், PnP Modern Search WebPart (SPFx) ஐப் பயன்படுத்தி உள்ளமைக்கக்கூடிய தேடல் முடிவுகளை வழங்குவது பயனர் அனுபவத்தை கணிசமாக மேம்படுத்தும். இணைப்புகள் எவ்வாறு திறக்கப்படுகின்றன என்பதைக் கட்டுப்படுத்துவது டெவலப்பர்களிடையே பிரபலமான அம்சமாகும், குறிப்பாக "விரிவான பட்டியல்" தளவமைப்புடன். பொதுவாக, இணைப்புகள் புதிய தாவலில் திறக்கப்படும், ஆனால் அவற்றை பாப்அப் சாளரத்தில் திறக்க விரும்பினால் என்ன செய்வது?
இந்த இடுகையில், PnP நவீன தேடல் WebPart இன் இணைப்பு நடத்தையை மாற்றுவதன் மூலம் இந்த செயல்பாட்டை எவ்வாறு செயல்படுத்துவது என்பதைப் பார்ப்போம். புதிய தாவலில் தேடல் முடிவுகளைத் திறப்பதற்குப் பதிலாக, தனிப்பயனாக்கப்பட்ட பாப்அப் சாளரத்தில் இணைப்பைத் திறக்கும்படி கட்டாயப்படுத்துவது எப்படி என்பதைக் காண்பிப்போம், இதன் விளைவாக ஒருங்கிணைக்கப்பட்ட பயனர் அனுபவம் கிடைக்கும்.
கட்டளை | பயன்பாட்டின் உதாரணம் |
---|---|
window.open() | இந்த கட்டளை புதிய உலாவி சாளரம் அல்லது தாவலைத் திறக்கும். இந்த முறையானது அகலம், உயரம் மற்றும் சுருள்ப்பட்டிகள் போன்ற சில பரிமாணங்கள் மற்றும் பண்புகளுடன் பாப்அப் சாளரத்தைத் திறக்கும். |
event.preventDefault() | அதே அல்லது புதிய தாவலில் URL ஐ திறக்கும், கிளிக் செய்யப்பட்ட இணைப்பின் இயல்புநிலை நடத்தையைத் தடுக்கிறது. பாப்அப்பைத் திறப்பது போன்ற இணைப்பு எவ்வாறு செயல்படுகிறது என்பதைத் தனிப்பயனாக்க இது அனுமதிக்கிறது. |
querySelectorAll() | தரவு-பாப்அப் பண்புக்கூறு அனைத்து ஆங்கர் கூறுகளையும் தேர்ந்தெடுக்கிறது () இந்த முறை ஒரு நோட்லிஸ்ட்டை வழங்குகிறது, இது நிகழ்வு கேட்பவர்களை ஒரே நேரத்தில் பல கூறுகளுக்குப் பயன்படுத்த அனுமதிக்கிறது. |
forEach() | querySelectorAll() ஆல் தயாரிக்கப்பட்ட NodeList இல் உள்ள ஒவ்வொரு உள்ளீடும் ஒரு செயலைப் பெறுகிறது (எடுத்துக்காட்டாக, நிகழ்வு கேட்பவரை இணைத்தல்). PnP நவீன தேடலில் உள்ள பல டைனமிக் இணைப்பு கூறுகளை நிர்வகிப்பதற்கு இது பொருந்தும். |
addEventListener() | இந்த நுட்பம் openInPopup() செயல்பாட்டைத் தூண்டும் ஒவ்வொரு இணைப்புக்கும் ஒரு கிளிக் நிகழ்வு கேட்பவரைச் சேர்க்கிறது. இயல்புநிலை கிளிக் நடத்தையை மேலெழுத இது அவசியம். |
import { override } | இந்த டெக்கரேட்டர் ஷேர்பாயிண்ட் ஃப்ரேம்வொர்க்கின் (SPFx) ஒரு பகுதியாகும், மேலும் SPFx WebParts இன் இயல்புநிலை நடத்தையை மேலெழுதப் பயன்படுகிறது. பாப்அப் செயல்பாட்டை வழங்க ஜாவாஸ்கிரிப்டை உட்செலுத்துவது போன்ற குறிப்பிட்ட தனிப்பயனாக்கங்களை இது செயல்படுத்துகிறது. |
@override | SPFx இல், ஒரு அலங்கரிப்பாளர் ஒரு முறை அல்லது சொத்து செயல்பாட்டை மீறுகிறது என்பதைக் குறிக்கிறது. ஷேர்பாயிண்ட் கூறுகளின் நடத்தையை மாற்றியமைக்கும் போது இது அவசியம். |
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');
}
JavaScript பாப்அப் நடத்தைக்கான அலகு சோதனை
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 இல் நிகழ்வு கையாளுதல் மற்றும் டைனமிக் ஜாவாஸ்கிரிப்ட் ஊசி ஆகியவற்றை ஆராய்தல்
SPFx இல் பாப்அப் விண்டோஸை செயல்படுத்துவதற்கான முக்கிய குறிப்புகள்
குறிப்புகள் மற்றும் ஆதாரங்கள்
- PnP Modern Search WebPart (SPFx) மற்றும் தனிப்பயனாக்கப்பட்ட இணைப்பு நடத்தை பற்றிய தகவல்கள் அதிகாரப்பூர்வ ஆவணங்களிலிருந்து பெறப்பட்டன. மேலும் விவரங்களுக்கு, பார்க்கவும் PnP நவீன தேடல் கிட்ஹப் களஞ்சியம் .
- போன்ற ஜாவாஸ்கிரிப்ட் முறைகளைப் பயன்படுத்துவதற்கான வழிகாட்டுதல் window.open() மற்றும் நிகழ்வு கேட்போர் குறிப்பிடப்பட்டது MDN வெப் டாக்ஸ் JavaScriptக்கு.
- ஜாவாஸ்கிரிப்ட் ஊசி மற்றும் ஷேர்பாயிண்ட் ஃப்ரேம்வொர்க் (SPFx) தனிப்பயனாக்கங்கள் பற்றிய விவரங்கள் @ஓவர்ரைடு, இல் காணலாம் ஷேர்பாயிண்ட் ஃப்ரேம்வொர்க் கண்ணோட்டம் .