Skip to content

Commit 6a1a72a

Browse files
blur event listeners on target elements must make sure there is an active tour before attempting to focus on the tour buttons! (joomla#41160)
1 parent e8c9cf8 commit 6a1a72a

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

build/media_source/plg_system_guidedtours/js/guidedtours.es6.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,23 +160,35 @@ function addStepToTourButton(tour, stepObj, buttons) {
160160
if (target.tagName.toLowerCase() === 'iframe') {
161161
// Give blur to the content of the iframe, as iframes don't have blur events
162162
target.contentWindow.document.body.addEventListener('blur', (event) => {
163+
if (!sessionStorage.getItem('tourId')) {
164+
return;
165+
}
163166
setTimeout(() => {
164167
setFocus(primaryButton, secondaryButton, cancelButton);
165168
}, 1);
166169
event.preventDefault();
167170
});
168171
} else if (target.tagName.toLowerCase() === 'joomla-field-fancy-select') {
169172
target.querySelector('.choices input').addEventListener('blur', (event) => {
173+
if (!sessionStorage.getItem('tourId')) {
174+
return;
175+
}
170176
setFocus(primaryButton, secondaryButton, cancelButton);
171177
event.preventDefault();
172178
});
173179
} else if (target.parentElement.tagName.toLowerCase() === 'joomla-field-fancy-select') {
174180
target.querySelector('input').addEventListener('blur', (event) => {
181+
if (!sessionStorage.getItem('tourId')) {
182+
return;
183+
}
175184
setFocus(primaryButton, secondaryButton, cancelButton);
176185
event.preventDefault();
177186
});
178187
} else {
179188
target.addEventListener('blur', (event) => {
189+
if (!sessionStorage.getItem('tourId')) {
190+
return;
191+
}
180192
setFocus(primaryButton, secondaryButton, cancelButton);
181193
event.preventDefault();
182194
});
@@ -356,6 +368,9 @@ function startTour(obj) {
356368
switch (obj.steps[index].interactive_type) {
357369
case 'submit':
358370
ele.addEventListener('click', () => {
371+
if (!sessionStorage.getItem('tourId')) {
372+
return;
373+
}
359374
sessionStorage.setItem('currentStepId', obj.steps[index].id + 1);
360375
});
361376
break;
@@ -364,6 +379,9 @@ function startTour(obj) {
364379
ele.step_id = index;
365380
if (ele.hasAttribute('required') && ['email', 'password', 'search', 'tel', 'text', 'url'].includes(ele.type)) {
366381
['input', 'focus'].forEach((eventName) => ele.addEventListener(eventName, (event) => {
382+
if (!sessionStorage.getItem('tourId')) {
383+
return;
384+
}
367385
if (event.target.value.trim().length) {
368386
enableButton(event);
369387
} else {

0 commit comments

Comments
 (0)