SPFx'teki Özel Açılır Pencere Bağlantılarıyla Kullanıcı Deneyimini İyileştirme
Modern SharePoint geliştirmede, yapılandırılabilir arama sonuçları sağlamak için PnP Modern Arama Web Bölümünü (SPFx) kullanmak, kullanıcı deneyimini önemli ölçüde iyileştirebilir. Bağlantıların nasıl açılacağını kontrol etmek, özellikle "Ayrıntılı Liste" düzeniyle geliştiriciler arasında popüler bir özelliktir. Normalde bağlantılar yeni bir sekmede açılır, ancak bunları bir açılır pencerede açmak istersek ne olur?
Bu yazıda, PnP Modern Arama Web Bölümü'nün bağlantı davranışını değiştirerek bu işlevselliğin nasıl uygulanacağına bakacağız. Arama sonuçlarını yeni bir sekmede açmak yerine, bağlantıyı özelleştirilmiş bir açılır pencerede açılmaya nasıl zorlayacağımızı göstereceğiz, böylece daha entegre bir kullanıcı deneyimi elde edeceğiz.
Bu zorluk, varsayılan olarak yeni bir sekmeye ayarlanan `` gibi bir formül kullandığınızda ortaya çıkar. Ancak JavaScript kullanarak bu davranışı geçersiz kılabilir ve bağlantıyı kontrollü bir açılır pencerede açabiliriz. Bu, aynı tarama oturumunda içeriğin görüntülenmesinde daha fazla esneklik sağlar.
Ayrıntılı Liste düzenini geliştirmek için JavaScript ve SPFx kullanımına odaklanarak, bu özelliği geliştirmek için gereken adımlarda size yol göstereceğiz. SharePoint sitenizin kusursuz ve kullanıcı dostu olmasını sağlamak için çözümü incelerken bizi takip etmeye devam edin.
Emretmek | Kullanım Örneği |
---|---|
window.open() | Bu komut yeni bir tarayıcı penceresi veya sekmesi açacaktır. Bu yöntem genişlik, yükseklik ve kaydırma çubukları gibi belirli boyut ve özelliklere sahip bir açılır pencere açar. |
event.preventDefault() | Tıklanan bir bağlantının URL'yi aynı veya yeni sekmede açma şeklindeki varsayılan davranışını engeller. Bu, bağlantının nasıl davranacağını (örneğin bir açılır pencere açmak gibi) özelleştirmemize olanak tanır. |
querySelectorAll() | data-popup özelliği tüm bağlantı elemanlarını seçer (). Bu yöntem, olay dinleyicilerini aynı anda birden fazla bileşene uygulamamıza olanak tanıyan bir NodeList döndürür. |
forEach() | NodeList'te querySelectorAll() tarafından üretilen her giriş bir eylem alır (örneğin, bir olay dinleyicisinin eklenmesi). Bu, PnP Modern Arama'daki birçok dinamik bağlantı öğesinin yönetilmesi için geçerlidir. |
addEventListener() | Bu teknik, openInPopup() işlevini tetikleyen her bağlantıya bir tıklama olayı dinleyicisi ekler. Varsayılan tıklama davranışını geçersiz kılmak için gereklidir. |
import { override } | Bu dekoratör, SharePoint Framework'ün (SPFx) bir parçasıdır ve SPFx WebParts'ın varsayılan davranışını geçersiz kılmak için kullanılır. Açılır pencere işlevselliği sağlamak için JavaScript enjekte etmek gibi belirli özelleştirmelere olanak tanır. |
@override | SPFx'te bir dekoratör, bir yöntemin veya özelliğin işlevselliği geçersiz kıldığını belirtir. SharePoint bileşenlerinin davranışını değiştirirken bu gereklidir. |
spyOn() | Jasmine ile birim testi sırasında işlev çağrılarını izler. Bu senaryoda, açılır pencerenin test sırasında uygun şekilde başlatıldığını garanti etmek için window.open() ile birlikte kullanılır. |
expect() | Bu komut Jasmine'de birim testi için kullanılır. window.open() işlevinin doğru argümanlarla çağrıldığını kontrol ederek açılır pencerenin istenen ayarlarla görünmesini garanti eder. |
SPFx'teki Açılır Pencere Çözümünü Anlamak
Yukarıda listelenen komut dosyaları, bir PnP Modern Arama Web Bölümü (SPFx) içindeki bağlantıların varsayılan davranışını ayarlar. Varsayılan olarak bağlantılar şunu kullanır: hedef = "_ boş" Yeni bir sekmede açılacak etiketi seçin. Ancak burada amaç bu bağlantıların açılır pencerede açılmasını sağlayarak kullanıcı etkileşimini arttırmaktır. Bunu başarmak için şunları kullandık: pencere.open() geliştiricilerin URL'leri yeni bir tarayıcı penceresinde veya açılır pencerede açmasına olanak tanıyan işlev. Bu işlev, açılır pencerenin amaçlandığı gibi performans göstermesini sağlamak için genişlik, yükseklik ve diğer özellikler (kaydırma çubukları veya yeniden boyutlandırılabilirlik gibi) gibi belirli parametrelerle ayarlanabilir.
Bağlantı etiketlerinin varsayılan tıklama davranışını geçersiz kılmak, yaklaşımın hayati bir bileşenidir. Bu ile yapılır event.preventDefault()bağlantının yeni sekmede açılmasını engeller. Bunun yerine, bağlantıya özel bir işlevi etkinleştiren bir olay dinleyicisi ekleriz (bu durumda, openInPopup()) tıklama olayını işleyen ve URL'yi bir açılır pencerede açan. Bu, geliştiricilerin bağlantının davranışı üzerinde daha fazla kontrol sahibi olmasına olanak tanır ve PnP Modern Arama Web Bölümünde daha tutarlı bir kullanıcı deneyimi sağlar.
Ön uç davranışıyla ilgilenmenin yanı sıra, SPFx'in yerleşik dekoratörlerini kullanan bir arka uç yaklaşımını da inceledik: @geçersiz kıl. Bu yaklaşım, geliştiricilerin özel Web Bölümlerine doğrudan JavaScript eklemesine olanak tanır ve arama sonuçlarının davranışını daha da değiştirir. SPFx'te oluşturma sürecini geçersiz kılmak, bağlantı tıklamalarını işleyen ve gerekli materyali bir açılır pencerede açan JavaScript kodunu eklememize olanak tanır. Bu teknik, çözümü daha modüler hale getirir ve SharePoint ortamının birden çok alanında yeniden kullanılabilir hale getirir, dolayısıyla bakımı iyileştirir.
Birim testi, açılır pencere özelliğinin birden fazla ortamda ve tarayıcıda düzgün şekilde çalışmasını sağlamak için kritik öneme sahiptir. Kullanma casusOn() Jasmine test çerçevesinde şunu doğrular: pencere.open() yöntem doğru argümanlarla yürütülür. Bu test şekli, olası sorunları geliştirme sürecinin erken safhalarında tespit eder ve açılır pencerelerin planlandığı gibi çalışmasını garanti eder. Bu çözüm, ön uç olay işleme, arka uç özelleştirme ve birim testini entegre ederek SharePoint'in PnP Modern Arama Web Bölümündeki kullanıcı etkileşimlerini güçlendirir.
1. Çözüm: Açılır Pencere Oluşturmak için JavaScript `window.open` Kullanımı
Bu yaklaşım, bir bağlantıyı yeni bir sekmede açmaya ilişkin varsayılan davranışı açılır pencereyle değiştirmek için JavaScript'i kullanır; bu, SharePoint bağlamında SPFx ile oluşturulan dinamik ön uç çözümler için idealdir.
<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. Çözüm: Satır İçi JavaScript'i Doğrudan Bağlantı Etiketine Ekleme
Bu yöntem, JavaScript'i HTML bağlantı etiketinin içine satır içi olarak yerleştirir ve bu da onu, az sayıda dış bağımlılığı olan hafif, dinamik bir ön uç sistemi için ideal kılar.
<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. Çözüm: JavaScript Enjeksiyonu ile SPFx Kullanan Arka Uç Yaklaşımı
Bu yaklaşım, JavaScript'i özel bir WebPart'a enjekte etmek için SharePoint Çerçevesini (SPFx) kullanır ve bağlantıların JavaScript yöntemlerini kullanarak açılır bir pencerede açılmasına olanak tanır.
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 Açılır Pencere Davranışı için Birim Testi
Birim testleri, açılır pencere işlevselliğinin tarayıcılar ve ortamlar arasında tutarlı olduğunu garanti edebilir. İşte ön uç doğrulama için temel bir Jasmine testi.
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'te Olay İşleme ve Dinamik JavaScript Eklemeyi Keşfetmek
PnP Modern Search WebPart (SPFx) ile çalışırken geliştiriciler için yararlı özelliklerden biri, bağlantılar gibi öğelerin nasıl davranacağını dinamik olarak ayarlama yeteneğidir. JavaScript olay işlemenin kullanımı, kullanıcı etkileşimlerini kişiselleştirmek için çok sayıda seçenek sunar. Bağlantı tıklamalarını yakalamak ve kontrol etmek için olay dinleyicilerini kullanmak, daha etkileşimli bir deneyim oluşturur. Tıklama olaylarını yakalayarak normal davranışı geçersiz kılabilir ve URL'leri kontrollü bir açılır pencerede açabiliriz. Bu, kullanıcının geçerli sekmesini veya penceresini bozmadan yumuşak bir geçiş sağlar.
SPFx WebParts'taki bağlantıların özelleştirilmesi aynı zamanda JavaScript kodunun dinamik olarak eklenmesini de gerektirir. SharePoint Framework (SPFx) aşağıdaki gibi yöntemler sağlar: @geçersiz kıl Ve oluşturma() bunu başardığın için. Geliştiriciler, özel JavaScript ekleyerek, WebPart'ın kendisinde önemli değişiklikler yapmak zorunda kalmadan arama sonucu öğelerinin davranışını değiştirebilir. Bu esneklik, tüm arama sonucu bağlantılarında genel ayarlamalar yapmayı kolaylaştırarak istenen davranışın (açılır pencerede açılma gibi) platform genelinde aynı olmasını sağlar.
Son olarak, performans ve kullanıcı deneyimi herhangi bir web tabanlı sistemde kritik faktörlerdir ve aynı durum burada da geçerlidir. JavaScript kullanımını optimize ederek ve yoğun kaynak kullanan etkinlikleri sınırlayarak, bu özelleştirmelerin sayfa yükleme süreleri veya yanıt verme hızı üzerinde önemli bir etkisinin olmayacağını garanti edebiliriz. Verimli JavaScript kullanımı, arka uç SPFx değişiklikleriyle birleştiğinde performanstan ödün vermeden yüksek düzeyde esneklik sağlayarak SharePoint platformunda sorunsuz bir kullanıcı deneyimi sağlar.
Pop-up'lar için SPFx Özelleştirmesi Hakkında Sık Sorulan Sorular
- Bir bağlantıyı açılır pencerede JavaScript ile nasıl açarım?
- Şunu kullanabilirsiniz: window.open() JavaScript'te işlev. Bu işlev, boyut ve kaydırma çubukları gibi belirli özelliklere sahip yeni bir tarayıcı penceresi veya açılır pencere açmanıza olanak tanır.
- ne işe yarar event.preventDefault() Yapmak?
- event.preventDefault() yöntemi bir olayın varsayılan eylemini gerçekleştirmesini engeller. Bu durumda, açılır pencere görüntülemek gibi belirli eylemlere izin verirken bağlantının yeni bir sekmede açılmasını engeller.
- Özel davranışı SPFx'teki çok sayıda bağlantıya nasıl uygularım?
- Kullanma querySelectorAll() JavaScript'te birden fazla bileşen seçip bunlara olay dinleyicileri ekleyerek hepsinin aynı davranışı izlemesini sağlayabilirsiniz.
- SPFx WebParts'ın varsayılan oluşturulmasını nasıl geçersiz kılabilirim?
- SPFx WebParts'ın davranışını ayarlamak için @override dekoratör. Bu, özel JavaScript'i doğrudan WebPart'ın oluşturma sürecine eklemenizi sağlar.
- Bir açılır pencerenin düzgün açılıp açılmadığını belirlemek için en iyi teknik nedir?
- Jasmine gibi bir çerçevede birim testleri kullanarak şunları kullanabilirsiniz: spyOn() olup olmadığını izlemek için window.open() fonksiyon beklenen parametrelere uygun şekilde çağrılır.
SPFx'te Açılır Pencereleri Uygulamaya İlişkin Temel Çıkarımlar
Bağlantıların açılır pencerede açılma şekli, PnP Modern Arama Web Bölümü (SPFx) içindeki JavaScript kullanılarak özelleştirilebilir. Bu değişiklik, kontrollü bir açılır pencerede ayrıntılı içeriğe erişim sağlarken kullanıcıların geçerli sekmede kalmasını sağlayarak kullanıcı etkileşimini geliştirir.
Tutarlı davranışı sürdürmek için aşağıdaki gibi teknikleri kullanın: event.preventDefault() ve JavaScript'i SPFx WebParts'a dinamik olarak enjekte edin. Ayrıca birim testi, bu değişikliklerin birçok bağlamda iyi çalışmasını sağlamaya yardımcı olarak SharePoint arama sonucu özelleştirmesi için güvenilir, kullanıcı dostu bir çözüm sağlar.
Referanslar ve Kaynaklar
- PnP Modern Arama Web Bölümü (SPFx) ve bağlantı davranışının özelleştirilmesiyle ilgili bilgiler resmi belgelerden alınmıştır. Daha fazla ayrıntı için şu adresi ziyaret edin: PnP Modern Arama GitHub Deposu .
- Aşağıdaki gibi JavaScript yöntemlerinin kullanımına ilişkin rehberlik pencere.open() ve olay dinleyicilerine şuradan başvurulmuştur: MDN Web Belgeleri JavaScript için.
- JavaScript ekleme ve dahil olmak üzere SharePoint Framework (SPFx) özelleştirmeleriyle ilgili ayrıntılar @geçersiz kıl, şurada bulunabilir: SharePoint Çerçevesine Genel Bakış .