MouseEvent click получает RangeError: превышен максимальный размер стека вызовов - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь отправить событие, щелкнув элемент тега в DOM, и получаю:

RangeError: превышен максимальный размер стека вызовов

Как мне это решить?

Я пытался использовать event.stopPropagation (), но он не работал:

var shareButton = document.querySelectorAll('.shrer');

for (var i = 0; i < shareButton.length; i++) {
    shareButton[i].addEventListener('click', function(event) {
        event.preventDefault();
        event.stopPropagation();
        var thisClass = this.className;
        sharer(thisClass)
    })
}

function sharer(shareWith) {
    var jobLink = window.location;
    var subject = document.querySelectorAll('.titleWrap h2')[0].innerHTML;
    var textBody = 'a job for you text';

    if (shareWith.match(/MailShare/)) {
        document.getElementsByClassName(shareWith)[0].href= 'mailto:?subject=' +subject+ '&body=' +textBody+  '%0D%0A' +jobLink+ '';
        document.getElementsByClassName(shareWith)[0].dispatchEvent(new MouseEvent('click', {bubbles: false, cancelable: true, view: window}));
    } 

}

1 Ответ

0 голосов
/ 10 июля 2019

исправлено с помощью document.location.href

function sharer(shareWith) {
    var jobLink = window.location;
    var subject = document.querySelectorAll('.titleWrap h2')[0].innerHTML;
    var textBody = 'a job for you text';

    if (shareWith.match(/MailShare/)) {
        var mailto = 'mailto:?subject=' +subject+ '&body=' +textBody+  '%0D%0A' +jobLink+ '';
        document.location.href = mailto;
    } 

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...