SPFx ನಲ್ಲಿ ಕಸ್ಟಮ್ ಪಾಪ್ಅಪ್ ಲಿಂಕ್ಗಳೊಂದಿಗೆ ಬಳಕೆದಾರರ ಅನುಭವವನ್ನು ಹೆಚ್ಚಿಸುವುದು
ಆಧುನಿಕ ಶೇರ್ಪಾಯಿಂಟ್ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ, ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದಾದ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳನ್ನು ಒದಗಿಸಲು PnP ಮಾಡರ್ನ್ ಸರ್ಚ್ ವೆಬ್ಪಾರ್ಟ್ (SPFx) ಅನ್ನು ಬಳಸುವುದರಿಂದ ಬಳಕೆದಾರರ ಅನುಭವವನ್ನು ಗಣನೀಯವಾಗಿ ಸುಧಾರಿಸಬಹುದು. ಲಿಂಕ್ಗಳು ಹೇಗೆ ತೆರೆಯುತ್ತವೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸುವುದು ಡೆವಲಪರ್ಗಳಲ್ಲಿ ಜನಪ್ರಿಯ ವೈಶಿಷ್ಟ್ಯವಾಗಿದೆ, ವಿಶೇಷವಾಗಿ "ವಿವರವಾದ ಪಟ್ಟಿ" ವಿನ್ಯಾಸದೊಂದಿಗೆ. ಸಾಮಾನ್ಯವಾಗಿ, ಲಿಂಕ್ಗಳು ಹೊಸ ಟ್ಯಾಬ್ನಲ್ಲಿ ತೆರೆದುಕೊಳ್ಳುತ್ತವೆ, ಆದರೆ ನಾವು ಅವುಗಳನ್ನು ಪಾಪ್ಅಪ್ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಲು ಬಯಸಿದರೆ ಏನು ಮಾಡಬೇಕು?
ಈ ಪೋಸ್ಟ್ನಲ್ಲಿ, PnP ಮಾಡರ್ನ್ ಸರ್ಚ್ ವೆಬ್ಪಾರ್ಟ್ನ ಲಿಂಕ್ ನಡವಳಿಕೆಯನ್ನು ಬದಲಾಯಿಸುವ ಮೂಲಕ ಈ ಕಾರ್ಯವನ್ನು ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಎಂದು ನಾವು ನೋಡುತ್ತೇವೆ. ಹೊಸ ಟ್ಯಾಬ್ನಲ್ಲಿ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳನ್ನು ತೆರೆಯುವ ಬದಲು, ಕಸ್ಟಮೈಸ್ ಮಾಡಿದ ಪಾಪ್ಅಪ್ ವಿಂಡೋದಲ್ಲಿ ಲಿಂಕ್ ತೆರೆಯಲು ಹೇಗೆ ಒತ್ತಾಯಿಸಬೇಕು ಎಂಬುದನ್ನು ನಾವು ತೋರಿಸುತ್ತೇವೆ, ಇದರಿಂದಾಗಿ ಹೆಚ್ಚು ಸಮಗ್ರ ಬಳಕೆದಾರ ಅನುಭವವಾಗುತ್ತದೆ.
ಆಜ್ಞೆ | ಬಳಕೆಯ ಉದಾಹರಣೆ |
---|---|
window.open() | ಈ ಆಜ್ಞೆಯು ಹೊಸ ಬ್ರೌಸರ್ ವಿಂಡೋ ಅಥವಾ ಟ್ಯಾಬ್ ಅನ್ನು ತೆರೆಯುತ್ತದೆ. ಈ ವಿಧಾನವು ಅಗಲ, ಎತ್ತರ ಮತ್ತು ಸ್ಕ್ರಾಲ್ಬಾರ್ಗಳಂತಹ ಕೆಲವು ಆಯಾಮಗಳು ಮತ್ತು ಗುಣಲಕ್ಷಣಗಳೊಂದಿಗೆ ಪಾಪ್ಅಪ್ ವಿಂಡೋವನ್ನು ತೆರೆಯುತ್ತದೆ. |
event.preventDefault() | ಕ್ಲಿಕ್ ಮಾಡಿದ ಲಿಂಕ್ನ ಡೀಫಾಲ್ಟ್ ನಡವಳಿಕೆಯನ್ನು ತಡೆಯುತ್ತದೆ, ಅದೇ ಅಥವಾ ಹೊಸ ಟ್ಯಾಬ್ನಲ್ಲಿ URL ಅನ್ನು ತೆರೆಯುವುದು. ಬದಲಿಗೆ ಪಾಪ್ಅಪ್ ತೆರೆಯುವಂತಹ ಲಿಂಕ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಕಸ್ಟಮೈಸ್ ಮಾಡಲು ಇದು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. |
querySelectorAll() | ಡೇಟಾ-ಪಾಪ್ಅಪ್ ಗುಣಲಕ್ಷಣವು ಎಲ್ಲಾ ಆಂಕರ್ ಅಂಶಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ () ಈ ವಿಧಾನವು ನೋಡ್ಲಿಸ್ಟ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ, ಇದು ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಏಕಕಾಲದಲ್ಲಿ ಹಲವಾರು ಘಟಕಗಳಿಗೆ ಅನ್ವಯಿಸಲು ನಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. |
forEach() | querySelectorAll() ನಿಂದ ನಿರ್ಮಿಸಲಾದ ನೋಡ್ಲಿಸ್ಟ್ನಲ್ಲಿನ ಪ್ರತಿ ನಮೂದು ಒಂದು ಕ್ರಿಯೆಯನ್ನು ಪಡೆಯುತ್ತದೆ (ಉದಾಹರಣೆಗೆ, ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಲಗತ್ತಿಸುವುದು). PnP ಮಾಡರ್ನ್ ಹುಡುಕಾಟದಲ್ಲಿ ಅನೇಕ ಡೈನಾಮಿಕ್ ಲಿಂಕ್ ಅಂಶಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಇದು ಅನ್ವಯಿಸುತ್ತದೆ. |
addEventListener() | ಈ ತಂತ್ರವು openInPopup() ಕಾರ್ಯವನ್ನು ಪ್ರಚೋದಿಸುವ ಪ್ರತಿಯೊಂದು ಲಿಂಕ್ಗೆ ಕ್ಲಿಕ್ ಈವೆಂಟ್ ಕೇಳುವವರನ್ನು ಸೇರಿಸುತ್ತದೆ. ಡೀಫಾಲ್ಟ್ ಕ್ಲಿಕ್ ನಡವಳಿಕೆಯನ್ನು ಅತಿಕ್ರಮಿಸಲು ಇದು ಅವಶ್ಯಕವಾಗಿದೆ. |
import { override } | ಈ ಡೆಕೋರೇಟರ್ ಶೇರ್ಪಾಯಿಂಟ್ ಫ್ರೇಮ್ವರ್ಕ್ (SPFx) ನ ಭಾಗವಾಗಿದೆ ಮತ್ತು SPFx ವೆಬ್ಪಾರ್ಟ್ಗಳ ಡೀಫಾಲ್ಟ್ ನಡವಳಿಕೆಯನ್ನು ಅತಿಕ್ರಮಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಪಾಪ್ಅಪ್ ಕಾರ್ಯವನ್ನು ಒದಗಿಸಲು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಇಂಜೆಕ್ಟ್ ಮಾಡುವಂತಹ ನಿರ್ದಿಷ್ಟ ಗ್ರಾಹಕೀಕರಣಗಳನ್ನು ಇದು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. |
@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: 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');
}
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪಾಪ್ಅಪ್ ನಡವಳಿಕೆಗಾಗಿ ಘಟಕ ಪರೀಕ್ಷೆ
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 ಮಾಡರ್ನ್ ಸರ್ಚ್ ವೆಬ್ಪಾರ್ಟ್ (SPFx) ಮತ್ತು ಕಸ್ಟಮೈಸ್ ಮಾಡುವ ಲಿಂಕ್ ನಡವಳಿಕೆಗೆ ಸಂಬಂಧಿಸಿದ ಮಾಹಿತಿಯನ್ನು ಅಧಿಕೃತ ದಾಖಲೆಗಳಿಂದ ಪಡೆಯಲಾಗಿದೆ. ಹೆಚ್ಚಿನ ವಿವರಗಳಿಗಾಗಿ, ಭೇಟಿ ನೀಡಿ PnP ಮಾಡರ್ನ್ ಸರ್ಚ್ GitHub ರೆಪೊಸಿಟರಿ .
- ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ವಿಧಾನಗಳನ್ನು ಬಳಸುವ ಕುರಿತು ಮಾರ್ಗದರ್ಶನ window.open() ಮತ್ತು ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ನಿಂದ ಉಲ್ಲೇಖಿಸಲಾಗಿದೆ MDN ವೆಬ್ ಡಾಕ್ಸ್ JavaScript ಗಾಗಿ.
- ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಇಂಜೆಕ್ಷನ್ ಮತ್ತು ಸೇರಿದಂತೆ ಶೇರ್ಪಾಯಿಂಟ್ ಫ್ರೇಮ್ವರ್ಕ್ (SPFx) ಕಸ್ಟಮೈಸೇಶನ್ಗಳ ಬಗ್ಗೆ ವಿವರಗಳು @ಅತಿಕ್ರಮಣ, ನಲ್ಲಿ ಕಾಣಬಹುದು ಶೇರ್ಪಾಯಿಂಟ್ ಫ್ರೇಮ್ವರ್ಕ್ ಅವಲೋಕನ .