સોમવાર, 23 સપ્ટેમ્બર, 2024 એ 09:35:20 AM વાગ્યે
SPFx માં કસ્ટમ પોપઅપ લિંક્સ સાથે વપરાશકર્તા અનુભવને વધારવો
આધુનિક શેરપોઈન્ટ ડેવલપમેન્ટમાં, રૂપરેખાંકિત શોધ પરિણામો પ્રદાન કરવા માટે PnP આધુનિક શોધ વેબપાર્ટ (SPFx) નો ઉપયોગ કરીને વપરાશકર્તા અનુભવને નોંધપાત્ર રીતે સુધારી શકે છે. લિંક્સ કેવી રીતે ખુલે છે તેનું નિયંત્રણ એ વિકાસકર્તાઓમાં એક લોકપ્રિય સુવિધા છે, ખાસ કરીને "વિગતવાર સૂચિ" લેઆઉટ સાથે. સામાન્ય રીતે, લિંક્સ નવી ટેબમાં ખુલે છે, પરંતુ જો આપણે તેને પોપઅપ વિન્ડોમાં ખોલવા માંગીએ તો શું?
આ પોસ્ટમાં, અમે PnP આધુનિક શોધ વેબપાર્ટની લિંક વર્તણૂકને બદલીને આ કાર્યક્ષમતાને કેવી રીતે અમલમાં મૂકવી તે જોઈશું. શોધ પરિણામોને નવી ટેબમાં ખોલવાને બદલે, અમે બતાવીશું કે કેવી રીતે કસ્ટમાઇઝ્ડ પોપઅપ વિન્ડોમાં લિંકને ખોલવા માટે દબાણ કરવું, પરિણામે વધુ એકીકૃત વપરાશકર્તા અનુભવ મળે છે.
આદેશ | ઉપયોગનું ઉદાહરણ |
---|---|
window.open() | આ આદેશ નવી બ્રાઉઝર વિન્ડો અથવા ટેબ ખોલશે. આ પદ્ધતિ ચોક્કસ પરિમાણો અને ગુણધર્મો સાથે પોપઅપ વિન્ડો ખોલે છે, જેમ કે પહોળાઈ, ઊંચાઈ અને સ્ક્રોલબાર. |
event.preventDefault() | ક્લિક કરેલ લિંકના ડિફૉલ્ટ વર્તનને અટકાવે છે, જે સમાન અથવા નવા ટેબમાં URL ખોલવાનું છે. આ અમને લિંક કેવી રીતે કાર્ય કરે છે તે કસ્ટમાઇઝ કરવાની મંજૂરી આપે છે, જેમ કે તેના બદલે પોપઅપ ખોલવું. |
querySelectorAll() | ડેટા-પોપઅપ એટ્રિબ્યુટ બધા એન્કર તત્વો પસંદ કરે છે (). આ પદ્ધતિ નોડલિસ્ટ પરત કરે છે, જે અમને એકસાથે ઘણા ઘટકો પર ઇવેન્ટ શ્રોતાઓને લાગુ કરવાની મંજૂરી આપે છે. |
forEach() | querySelectorAll() દ્વારા ઉત્પાદિત નોડલિસ્ટમાં દરેક એન્ટ્રી એક ક્રિયા મેળવે છે (ઉદાહરણ તરીકે, ઇવેન્ટ લિસનરને જોડવું). આ PnP આધુનિક શોધમાં ઘણા ડાયનેમિક લિંક તત્વોનું સંચાલન કરવા માટે લાગુ પડે છે. |
addEventListener() | આ તકનીક દરેક લિંક પર ક્લિક ઇવેન્ટ લિસનરને ઉમેરે છે જે openInPopup() ફંક્શનને ટ્રિગર કરે છે. ડિફૉલ્ટ ક્લિક વર્તનને ઓવરરાઇડ કરવા માટે તે જરૂરી છે. |
import { override } | આ ડેકોરેટર શેરપોઈન્ટ ફ્રેમવર્ક (SPFx) નો ભાગ છે અને તેનો ઉપયોગ SPFx વેબપાર્ટ્સના ડિફોલ્ટ વર્તનને ઓવરરાઈડ કરવા માટે થાય છે. તે ચોક્કસ કસ્ટમાઇઝેશન માટે સક્ષમ કરે છે, જેમ કે પોપઅપ કાર્યક્ષમતા પ્રદાન કરવા માટે 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: JavaScript ઇન્જેક્શન સાથે 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 માં ઇવેન્ટ હેન્ડલિંગ અને ડાયનેમિક JavaScript ઇન્જેક્શનની શોધખોળ
SPFx માં પોપઅપ વિન્ડોઝના અમલીકરણ માટેના મુખ્ય ઉપાયો
સંદર્ભો અને સંસાધનો
- PnP મોડર્ન સર્ચ વેબપાર્ટ (SPFx) અને કસ્ટમાઇઝ લિંક વર્તણૂક સંબંધિત માહિતી સત્તાવાર દસ્તાવેજોમાંથી મેળવવામાં આવી હતી. વધુ વિગતો માટે, ની મુલાકાત લો PnP આધુનિક શોધ GitHub રીપોઝીટરી .
- જાવાસ્ક્રિપ્ટ પદ્ધતિઓનો ઉપયોગ કરવા પર માર્ગદર્શન જેમ કે window.open() અને ઇવેન્ટ શ્રોતાઓને આમાંથી સંદર્ભિત કરવામાં આવ્યા હતા MDN વેબ દસ્તાવેજ જાવાસ્ક્રિપ્ટ માટે.
- SharePoint Framework (SPFx) કસ્ટમાઇઝેશન વિશે વિગતો, જેમાં JavaScript ઇન્જેક્શન અને @ઓવરરાઇડ, માં શોધી શકાય છે શેરપોઈન્ટ ફ્રેમવર્ક વિહંગાવલોકન .