Vartotojo patirties gerinimas naudojant pasirinktines SPFx iššokančiųjų langų nuorodas
Šiuolaikinio „SharePoint“ kūrimo metu naudojant PnP modernios paieškos žiniatinklio dalį (SPFx), kad būtų pateikti konfigūruojami paieškos rezultatai, galima žymiai pagerinti vartotojo patirtį. Nuorodų atidarymo valdymas yra populiari kūrėjų funkcija, ypač naudojant „Detaliojo sąrašo“ išdėstymą. Paprastai nuorodos atidaromos naujame skirtuke, bet ką daryti, jei norime jas atidaryti iššokančiajame lange?
Šiame įraše apžvelgsime, kaip įdiegti šią funkciją pakeičiant PnP modernios paieškos žiniatinklio dalies nuorodų elgseną. Užuot atidarę paieškos rezultatus naujame skirtuke, parodysime, kaip priverstinai atsidaryti nuorodą tinkintame iššokančiame lange, kad naudotojo patirtis būtų labiau integruota.
Iššūkis kyla, kai naudojate tokią formulę kaip `", kuri pagal numatytuosius nustatymus rodomas naujame skirtuke. Tačiau naudodami „JavaScript“ galime nepaisyti šio elgesio ir atidaryti nuorodą kontroliuojamame iššokančiame lange. Tai suteikia daugiau lankstumo rodant turinį tos pačios naršymo sesijos metu.
Supažindinsime su veiksmais, kurių reikia norint sukurti šią funkciją, daugiausia dėmesio skirdami „JavaScript“ ir SPFx naudojimui, kad patobulintume išsamaus sąrašo išdėstymą. Stebėkite naujienas, kai ieškome sprendimo, kad jūsų „SharePoint“ svetainė būtų sklandi ir patogi naudoti.
komandą | Naudojimo pavyzdys |
---|---|
window.open() | Ši komanda atidarys naują naršyklės langą arba skirtuką. Šis metodas atveria iššokantįjį langą su tam tikrais matmenimis ir savybėmis, pvz., plotiu, aukščiu ir slinkties juostomis. |
event.preventDefault() | Neleidžia atlikti numatytojo spustelėtos nuorodos veikimo, ty atidaryti URL tame pačiame arba naujame skirtuke. Tai leidžia mums tinkinti, kaip nuoroda veikia, pvz., atidaryti iššokantįjį langą. |
querySelectorAll() | Data-popup atributas pasirenka visus inkaro elementus (). Šis metodas grąžina NodeList, kuris leidžia mums vienu metu taikyti įvykių klausytojus keliems komponentams. |
forEach() | Kiekvienas querySelectorAll() sukurtas NodeList įrašas gauna veiksmą (pavyzdžiui, prideda įvykių klausytoją). Tai taikoma daugelio dinaminių nuorodų elementų tvarkymui PnP modernioje paieškoje. |
addEventListener() | Ši technika prideda paspaudimo įvykių klausytoją prie kiekvienos nuorodos, kuri suaktyvina funkciją openInPopup(). Tai būtina norint nepaisyti numatytojo paspaudimo elgesio. |
import { override } | Šis dekoratorius yra „SharePoint Framework“ (SPFx) dalis ir naudojamas norint nepaisyti numatytosios SPFx WebParts elgsenos. Tai leidžia atlikti konkrečius tinkinimus, pvz., „JavaScript“ įterpimą, kad būtų užtikrinta iššokančiųjų langų funkcija. |
@override | SPFx dekoratorius nurodo, kad metodas arba savybė viršija funkcionalumą. Tai būtina keičiant SharePoint komponentų veikimą. |
spyOn() | Stebi funkcijų iškvietimus įrenginio testavimo su Jasmine metu. Šiame scenarijuje jis naudojamas su window.open(), kad būtų užtikrinta, jog iššokantis langas bus tinkamai paleistas testavimo metu. |
expect() | Ši komanda naudojama „Jasmine“ vienetų testavimui. Jis patikrina, ar windows.open() buvo iškviestas tinkamais argumentais, užtikrinant, kad iššokantis langas pasirodys su norimais parametrais. |
Iššokančiųjų langų sprendimo supratimas naudojant SPFx
Aukščiau išvardyti scenarijai koreguoja numatytąjį nuorodų veikimą PnP modernios paieškos žiniatinklio dalyje (SPFx). Pagal numatytuosius nustatymus nuorodos naudoja target="_blank" žymą, kad atidarytumėte naujame skirtuke. Tačiau tikslas yra atidaryti šias nuorodas iššokančiajame lange, taip padidinant vartotojo sąveiką. Norėdami tai padaryti, mes panaudojome window.open() funkcija, leidžianti kūrėjams atidaryti URL naujame naršyklės lange arba iššokančiajame lange. Šią funkciją galima koreguoti naudojant tam tikrus parametrus, tokius kaip plotis, aukštis ir kiti atributai (pvz., slinkties juostos arba dydžio keitimas), kad iššokantis langas veiktų taip, kaip numatyta.
Nepaisyti numatytojo prieraišo žymų spustelėjimo elgesio yra labai svarbus šio metodo komponentas. Tai daroma su event.preventDefault(), kuri neleidžia nuorodai atidaryti naujame skirtuke. Vietoj to prie nuorodos pridedame įvykių klausytoją, kuris suaktyvina pasirinktinę funkciją (šiuo atveju, openInPopup()), kuris apdoroja paspaudimo įvykį ir atidaro URL iššokančiajame lange. Tai leidžia kūrėjams labiau kontroliuoti nuorodos veikimą ir užtikrina nuoseklesnę vartotojo patirtį PnP modernios paieškos žiniatinklio dalyje.
Be to, kad nagrinėjome priekinės dalies elgseną, mes taip pat išnagrinėjome užpakalinės dalies metodą, naudodami SPFx integruotus dekoratorius, pvz. @override. Šis metodas leidžia kūrėjams tiesiogiai įterpti „JavaScript“ į tinkintas žiniatinklio dalis ir toliau keisti paieškos rezultatų veikimą. SPFx atvaizdavimo proceso nepaisymas leidžia įterpti JavaScript kodą, kuris tvarko nuorodų paspaudimus ir atidaro reikiamą medžiagą iššokančiame lange. Dėl šios technikos sprendimas tampa moduliškesnis ir pakartotinai naudojamas keliose SharePoint aplinkos srityse, todėl pagerėja priežiūra.
Vienetų testavimas yra labai svarbus siekiant užtikrinti, kad iššokančioji funkcija tinkamai veiktų įvairiose aplinkose ir naršyklėse. Naudojant spyOn () Jasmine testavimo sistemoje patvirtina, kad window.open() metodas vykdomas su tinkamais argumentais. Ši testavimo forma nustato galimas problemas ankstyvame kūrimo etape ir garantuoja, kad iššokantys langai veiks taip, kaip planuota. Šis sprendimas sustiprina vartotojų sąveiką „SharePoint PnP Modern Search WebPart“, integruodamas sąsajos įvykių tvarkymą, užpakalinės programos tinkinimą ir vienetų testavimą.
1 sprendimas: naudokite „JavaScript“ „window.open“, kad sukurtumėte iššokantįjį langą
Šis metodas naudoja „JavaScript“, kad pakeistų numatytąją nuorodos atidarymo naujame skirtuke elgseną iššokančiu langu, kuris idealiai tinka dinaminiams sąsajos sprendimams, sukurtiems naudojant SPFx „SharePoint“ kontekste.
<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 sprendimas: įtraukite „JavaScript“ tiesiai į nuorodos žymą
Šis metodas įterpia „JavaScript“ į HTML nuorodos žymą, todėl jis idealiai tinka lengvajai dinaminei priekinei sistemai, kuri turi nedaug išorinių priklausomybių.
<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 sprendimas: Backend metodas naudojant SPFx su JavaScript įpurškimu
Šis metodas naudoja „SharePoint Framework“ (SPFx) „JavaScript“ įterpti į tinkintą žiniatinklio dalį, leidžiančią nuorodoms atidaryti iššokančiajame lange naudojant „JavaScript“ metodus.
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“ iššokančiųjų langų veikimo vieneto testas
Vienetų testai gali garantuoti, kad iššokančiųjų langų funkcijos yra nuoseklios visose naršyklėse ir aplinkose. Štai pagrindinis „Jasmine“ testas, skirtas priekiniam patvirtinimui.
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));
});
});
Įvykių tvarkymo ir dinaminio JavaScript įvedimo tyrinėjimas naudojant SPFx
Dirbant su PnP Modern Search WebPart (SPFx), viena naudinga kūrėjams funkcija yra galimybė dinamiškai koreguoti elementų, pvz., nuorodų, veikimą. „JavaScript“ įvykių apdorojimo naudojimas suteikia daugybę galimybių pritaikyti vartotojo sąveiką. Įvykių klausytojų naudojimas nuorodų paspaudimams užfiksuoti ir valdyti sukuria interaktyvesnę patirtį. Užfiksuodami paspaudimų įvykius galime nepaisyti įprasto elgesio ir atidaryti URL valdomame iššokančiame lange. Tai užtikrina sklandų perėjimą nepažeidžiant dabartinio vartotojo skirtuko ar lango.
Norint tinkinti nuorodas į SPFx WebParts, taip pat reikia dinamiškai įterpti JavaScript kodą. „SharePoint Framework“ (SPFx) pateikia tokius metodus kaip @override ir pateikti () kad tai įvykdytų. Įterpdami tinkintą „JavaScript“, kūrėjai gali pakeisti paieškos rezultatų elementų veikimą neatlikdami reikšmingų pačios žiniatinklio dalies pakeitimų. Dėl šio lankstumo lengva atlikti visuotinius visų paieškos rezultatų nuorodų koregavimus ir užtikrinti, kad norima elgsena, pvz., atsidarymas iššokančiajame lange, būtų vienoda visoje platformoje.
Galiausiai, našumas ir vartotojo patirtis yra esminiai veiksniai bet kurioje žiniatinklio sistemoje, taip pat ir čia. Optimizuodami „JavaScript“ naudojimą ir apribodami daug išteklių reikalaujančią veiklą, galime užtikrinti, kad šie tinkinimai neturės didelės įtakos puslapio įkėlimo laikui ar atsakui. Veiksmingas „JavaScript“ naudojimas kartu su SPFx modifikacijomis užtikrina didelį lankstumą neprarandant našumo, todėl visos „SharePoint“ platformos naudotojo patirtis yra sklandi.
Dažniausiai užduodami klausimai apie SPFx pritaikymą iššokantiems langams
- Kaip atidaryti nuorodą iššokančiajame lange naudojant „JavaScript“?
- Galite naudoti window.open() funkcija JavaScript. Ši funkcija leidžia atidaryti naują naršyklės langą arba iššokantįjį langą su konkrečiomis savybėmis, tokiomis kaip dydis ir slinkties juostos.
- Ką daro event.preventDefault() daryti?
- The event.preventDefault() metodas neleidžia įvykiui atlikti numatytojo veiksmo. Tokiu atveju tai neleidžia nuorodai atidaryti naujame skirtuke, o leidžia atlikti konkrečius veiksmus, pvz., rodyti iššokantįjį langą.
- Kaip pritaikyti tinkintą elgesį daugeliui SPFx nuorodų?
- Naudojant querySelectorAll() „JavaScript“ galite pasirinkti kelis komponentus ir prie jų pridėti įvykių klausytojus, užtikrindami, kad jie visi elgsis taip pat.
- Kaip nepaisyti numatytojo SPFx žiniatinklio dalių atvaizdavimo?
- Norėdami pakoreguoti SPFx žiniatinklio dalių veikimą, naudokite @override dekoratorius. Tai leidžia įterpti tinkintą JavaScript tiesiai į žiniatinklio dalies atvaizdavimo procesą.
- Koks yra geriausias būdas nustatyti, ar tinkamai atsidaro iššokantis langas?
- Naudodami vienetų testus tokioje sistemoje kaip Jasmine, galite naudoti spyOn() stebėti, ar window.open() funkcija iškviečiama tinkamai su numatomais parametrais.
Pagrindiniai iškylančiųjų langų diegimo SPFx patarimai
Nuorodų atidarymo iššokančiajame lange būdą galima tinkinti naudojant „JavaScript“ PnP modernios paieškos žiniatinklio dalyje (SPFx). Šis pakeitimas pagerina naudotojų sąveiką, nes jie lieka įtraukti į dabartinį skirtuką ir suteikia prieigą prie išsamaus turinio valdomame iššokančiajame lange.
Norėdami išlaikyti nuoseklų elgesį, naudokite tokius metodus kaip event.preventDefault() ir dinamiškai įterpkite JavaScript į SPFx žiniatinklio dalis. Be to, vienetų testavimas padeda užtikrinti, kad šie pakeitimai gerai veiktų įvairiuose kontekstuose, todėl gaunamas patikimas ir patogus SharePoint paieškos rezultatų tinkinimo sprendimas.
Nuorodos ir ištekliai
- Informacija apie PnP Modern Search WebPart (SPFx) ir nuorodų elgsenos pritaikymą buvo gauta iš oficialių dokumentų. Norėdami gauti daugiau informacijos, apsilankykite PnP modernios paieškos „GitHub“ saugykla .
- „JavaScript“ metodų, tokių kaip window.open() ir įvykių klausytojai buvo nurodyti iš MDN žiniatinklio dokumentai skirtas JavaScript.
- Išsami informacija apie „SharePoint Framework“ (SPFx) tinkinimus, įskaitant „JavaScript“ įterpimą ir @override, galima rasti SharePoint Framework apžvalga .