Kasutajakogemuse täiustamine SPFx-i kohandatud hüpikakna linkidega
Kaasaegses SharePointi arenduses võib PnP Modern Search WebParti (SPFx) kasutamine konfigureeritavate otsingutulemuste pakkumiseks kasutajakogemust märkimisväärselt parandada. Linkide avanemise juhtimine on arendajate seas populaarne funktsioon, eriti üksikasjaliku loendi paigutusega. Tavaliselt avanevad lingid uuel vahelehel, aga mis siis, kui tahame need avada hüpikaknas?
Selles postituses vaatleme, kuidas seda funktsiooni rakendada, muutes PnP kaasaegse otsingu veebiosa lingi käitumist. Selle asemel, et avada otsingutulemusi uuel vahelehel, näitame, kuidas sundida linki avama kohandatud hüpikaknas, mille tulemuseks on integreeritum kasutajakogemus.
Väljakutse tekib siis, kui kasutate sellist valemit nagu `", mis vaikimisi kuvab uue vahekaardi. Kuid JavaScripti kasutades saame selle käitumise alistada ja lingi avada kontrollitud hüpikaknas. See võimaldab sama sirvimisseansi jooksul sisu kuvamisel suuremat paindlikkust.
Juhendame teid selle funktsiooni arendamiseks vajalike sammudega, keskendudes JavaScripti ja SPFx-i kasutamisele üksikasjaliku loendi paigutuse täiustamiseks. Olge kursis, kui me lahenduse läbi käime, et teie SharePointi sait oleks sujuv ja kasutajasõbralik.
Käsk | Kasutusnäide |
---|---|
window.open() | See käsk avab uue brauseriakna või vahekaardi. See meetod avab hüpikakna teatud mõõtmete ja omadustega, nagu laius, kõrgus ja kerimisribad. |
event.preventDefault() | Takistab klõpsatud lingi vaikekäitumist, milleks on URL-i avamine samal või uuel vahekaardil. See võimaldab meil kohandada lingi toimimist, näiteks avada selle asemel hüpikakna. |
querySelectorAll() | Atribuut data-popup valib kõik ankurelemendid (). See meetod tagastab NodeList, mis võimaldab meil rakendada sündmuste kuulajaid korraga mitmele komponendile. |
forEach() | Iga querySelectorAll() loodud NodeListi kirje saab toimingu (näiteks sündmustekuulaja lisamine). See kehtib paljude dünaamiliste lingielementide haldamise kohta PnP kaasaegses otsingus. |
addEventListener() | See meetod lisab igale lingile klõpsamissündmuste kuulaja, mis käivitab funktsiooni openInPopup(). See on vajalik kliki vaikekäitumise alistamiseks. |
import { override } | See dekoraator on osa SharePointi raamistikust (SPFx) ja seda kasutatakse SPFx WebPartsi vaikekäitumise alistamiseks. See võimaldab konkreetseid kohandusi, näiteks JavaScripti sisestamist, et pakkuda hüpikakna funktsiooni. |
@override | SPFx-is näitab dekoraator, et meetod või omadus alistab funktsioonid. See on vajalik SharePointi komponentide käitumise muutmisel. |
spyOn() | Jälgib funktsioonikõnesid seadme Jasmine testimise ajal. Selle stsenaariumi korral kasutatakse seda koos window.open()-ga, et tagada hüpikakna õige käivitamine testimise ajal. |
expect() | Seda käsku kasutatakse Jasmine'i üksuste testimiseks. See kontrollib, et windows.open() kutsuti välja õigete argumentidega, tagades, et hüpikaken ilmub soovitud seadistustega. |
Hüpikakna lahenduse mõistmine SPFx-is
Eespool loetletud skriptid kohandavad PnP kaasaegse otsingu veebiosa (SPFx) linkide vaikekäitumist. Vaikimisi kasutavad lingid target="_blank" uuel vahelehel avamiseks. Kuid siin on eesmärk avada need lingid hüpikaknas, suurendades seeläbi kasutajate suhtlust. Selle saavutamiseks kasutasime window.open() funktsioon, mis võimaldab arendajatel avada URL-e uues brauseriaknas või hüpikaknas. Seda funktsiooni saab reguleerida konkreetsete parameetritega, nagu laius, kõrgus ja muud atribuudid (nt kerimisribad või suuruse muutmine), et tagada hüpikakna kavandatud toimimine.
Ankrumärgendite kliki vaikekäitumise alistamine on selle lähenemisviisi oluline komponent. Seda tehakse koos event.preventDefault(), mis takistab lingi avanemist uuel vahelehel. Selle asemel lisame lingile sündmustekuulaja, mis aktiveerib kohandatud funktsiooni (antud juhul openInPopup()), mis käsitleb klõpsusündmust ja avab URL-i hüpikaknas. See võimaldab arendajatel lingi käitumist paremini kontrollida ja tagab PnP kaasaegse otsingu veebiosas ühtlasema kasutuskogemuse.
Lisaks esiotsa käitumisega tegelemisele uurisime ka taustaprogrammi, kasutades SPFx-i sisseehitatud dekoraatoreid, nagu @alista. See lähenemisviis võimaldab arendajatel sisestada JavaScripti otse kohandatud veebiosadesse, muutes otsingutulemuste käitumist veelgi. Renderdusprotsessi tühistamine SPFx-is võimaldab meil sisestada JavaScripti koodi, mis käsitleb lingiklõpse ja avab hüpikaknas vajaliku materjali. See tehnika muudab lahenduse modulaarsemaks ja SharePointi keskkonna mitmes piirkonnas korduvkasutatavaks, parandades seega hooldust.
Ühiku testimine on kriitilise tähtsusega tagamaks, et hüpikakna funktsioon toimiks õigesti mitmes keskkonnas ja brauseris. Kasutades spyOn() Jasmine testimisraamistikus kinnitab, et window.open() meetod käivitatakse õigete argumentidega. See testimisvorm tuvastab võimalikud probleemid arendusprotsessi varajases staadiumis ja tagab, et hüpikaknad toimivad plaanipäraselt. See lahendus tugevdab kasutajate suhtlust SharePointi PnP Modern Search WebPartis, integreerides esiotsa sündmuste haldamise, taustaprogrammi kohandamise ja üksuste testimise.
Lahendus 1: JavaScripti `window.open` kasutamine hüpikakna loomiseks
See lähenemisviis kasutab JavaScripti, et asendada uuel vahelehel lingi avamise vaikekäitumine hüpikaknaga, mis sobib ideaalselt SharePointi kontekstis SPFx-iga loodud dünaamiliste esiotsa lahenduste jaoks.
<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>
Lahendus 2: tekstisisese JavaScripti lisamine otse lingisildile
See meetod manustab JavaScripti tekstisiseselt HTML-i lingimärgendisse, muutes selle ideaalseks kerge dünaamilise esiotsa süsteemi jaoks, millel on vähe väliseid sõltuvusi.
<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.
Lahendus 3: taustapõhine lähenemine SPFx-i ja JavaScripti süstimisega
See lähenemisviis kasutab SharePointi raamistikku (SPFx), et sisestada JavaScripti kohandatud veebiosa, võimaldades linkidel avada JavaScripti meetodite abil hüpikaknas.
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');
}
JavaScripti hüpikakende käitumise üksuse test
Ühikutestid võivad tagada, et hüpikakna funktsionaalsus on brauserites ja keskkondades ühtlane. Siin on Jasmine'i põhitest esiotsa valideerimiseks.
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));
});
});
Sündmuste haldamise ja dünaamilise JavaScripti sisestamise uurimine SPFx-is
PnP Modern Search WebPartiga (SPFx) töötades on arendajatele üks kasulik funktsioon võimalus dünaamiliselt reguleerida elementide, näiteks linkide käitumist. JavaScripti sündmuste käsitlemise kasutamine pakub kasutaja interaktsioonide isikupärastamiseks palju võimalusi. Sündmuskuulajate kasutamine lingiklõpsude jäädvustamiseks ja juhtimiseks loob interaktiivsema kogemuse. Klikisündmusi jäädvustades võime alistada tavapärase käitumise ja avada URL-id kontrollitud hüpikaknas. See tagab sujuva ülemineku, häirimata kasutaja praegust vahekaarti või akent.
Linkide kohandamine SPFx WebPartsis nõuab ka JavaScripti koodi dünaamilist sisestamist. SharePointi raamistik (SPFx) pakub selliseid meetodeid nagu @alista ja render () selle saavutamise eest. Kohandatud JavaScripti sisestamisega saavad arendajad muuta otsingutulemuste üksuste käitumist, ilma et nad peaksid veebiosas endas olulisi muudatusi tegema. See paindlikkus muudab kõigi otsingutulemuste linkide üldise kohandamise lihtsaks, tagades, et soovitud käitumine (nt hüpikaknas avamine) on kogu platvormil ühtlane.
Lõpuks on jõudlus ja kasutajakogemus igas veebipõhises süsteemis kriitilised tegurid ja sama kehtib ka siin. JavaScripti kasutamist optimeerides ja ressursimahukaid tegevusi piirates võime tagada, et need kohandused ei mõjuta oluliselt lehe laadimisaegu ega reageerimisvõimet. Tõhus JavaScripti kasutamine koos taustaprogrammi SPFx modifikatsioonidega tagab suure paindlikkuse ilma jõudlust ohverdamata, mille tulemuseks on sujuv kasutuskogemus kogu SharePointi platvormil.
Korduma kippuvad küsimused hüpikakende SPFx-i kohandamise kohta
- Kuidas avada linki hüpikaknas JavaScriptiga?
- Võite kasutada window.open() funktsioon JavaScriptis. See funktsioon võimaldab teil avada uue brauseriakna või hüpikakna konkreetsete omadustega, nagu suurus ja kerimisribad.
- Mis teeb event.preventDefault() teha?
- The event.preventDefault() meetod takistab sündmusel oma vaiketoimingut tegemast. Sel juhul takistab see lingi avanemist uuel vahelehel, lubades samal ajal konkreetseid toiminguid, näiteks hüpikakna kuvamist.
- Kuidas rakendada kohandatud käitumist paljudele SPFx-i linkidele?
- Kasutades querySelectorAll() JavaScriptis saate valida mitu komponenti ja lisada neile sündmuste kuulajaid, tagades, et need kõik järgivad sama käitumist.
- Kuidas alistada SPFx veebiosade vaikerenderdamine?
- SPFx veebiosade käitumise reguleerimiseks kasutage @override dekoraator. See võimaldab teil sisestada kohandatud JavaScripti otse veebiosa renderdusprotsessi.
- Milline on parim meetod hüpikakende õigesti avanemise kindlakstegemiseks?
- Kasutades ühikteste raamistikus nagu Jasmine, võite kasutada spyOn() jälgida, kas window.open() funktsiooni kutsutakse eeldatavate parameetritega sobivalt.
Peamised näpunäited hüpikakende rakendamiseks SPFx-is
Hüpikaknas linkide avanemisviisi saab kohandada JavaScripti abil PnP Modern Search WebPart (SPFx) sees. See muudatus parandab kasutajate suhtlust, hoides neid aktiivsel vahelehel, pakkudes samal ajal juurdepääsu üksikasjalikule sisule kontrollitud hüpikaknas.
Järjepideva käitumise säilitamiseks kasutage selliseid tehnikaid nagu event.preventDefault() ja sisestage dünaamiliselt JavaScript SPFx veebiosadesse. Lisaks aitab ühikutestimine tagada, et need muudatused toimivad hästi paljudes kontekstides, mille tulemuseks on töökindel ja kasutajasõbralik lahendus SharePointi otsingutulemuste kohandamiseks.
Viited ja ressursid
- Teave PnP kaasaegse otsingu veebiosa (SPFx) ja linkide käitumise kohandamise kohta saadi ametlikust dokumentatsioonist. Lisateabe saamiseks külastage PnP kaasaegse otsingu GitHubi hoidla .
- Juhised JavaScripti meetodite kasutamiseks, näiteks window.open() ja sündmuste kuulajatele viidati alates MDN-i veebidokumendid JavaScripti jaoks.
- Üksikasjad SharePoint Frameworki (SPFx) kohanduste kohta, sh JavaScripti sisestamine ja @alista, leiate aadressilt SharePointi raamistiku ülevaade .