diff --git a/src/classes/ConditionWatcher.js b/src/classes/ConditionWatcher.js index 7d2d9d9..8bd658f 100644 --- a/src/classes/ConditionWatcher.js +++ b/src/classes/ConditionWatcher.js @@ -31,7 +31,9 @@ export class ConditionWatcher { const clickTrigger = new ClickTrigger(); clickTrigger.watch((attr) => { - if (attr === `${this.login}/${this.formId}`) { + const pattern = new RegExp(`(^|/)${this.login}/${this.formId}$`); + + if (pattern.test(attr)) { resolve('click'); } }); diff --git a/src/classes/EmbeddedFormWatcher.js b/src/classes/EmbeddedFormWatcher.js index 0b24ff1..a3cc8f1 100644 --- a/src/classes/EmbeddedFormWatcher.js +++ b/src/classes/EmbeddedFormWatcher.js @@ -14,12 +14,21 @@ class EmbeddedFormWatcher { checkEmbeddedForms = () => { const elements = document.querySelectorAll(`[${ATTRIBUTES.EMBEDDED}]`); elements.forEach((el) => { - const formId = el.getAttribute(ATTRIBUTES.EMBEDDED); - if (!formId || el.hasAttribute(ATTRIBUTES.INIT)) { + const formPath = el.getAttribute(ATTRIBUTES.EMBEDDED); + if (!formPath || el.hasAttribute(ATTRIBUTES.INIT)) { return; } el.setAttribute(ATTRIBUTES.INIT, true); - this.activatePopup(`https://sendsay.ru/form/${formId}`, { el }); + let url; + + try { + // eslint-disable-next-line compat/compat + url = new URL(formPath).toString(); + } catch { + url = `https://sendsay.ru/form/${formPath}`; + } + + this.activatePopup(url, { el }); }); };