Когда закончите, как удалить значок invisbile recaptcha?(Не прячется) - PullRequest
0 голосов
/ 20 октября 2018

Я не могу удалить значок, вероятно.Когда пользователь открывает модальный контакт, создается значок.

В настоящее время я скрываю значок только после закрытия модального окна.

let badge = document.querySelector('.grecaptcha-badge');

if(! badge) return;

badge.style.display = 'none';

Проблема заключается в том, что пользователь решаетснова откройте модал.Поэтому он снова создает значок.

Вот пример.После 3-хкратного открытия и закрытия модальной модели создается 6 делений.

enter image description here

Как правило, не было бы проблем удалить "внешний значок", но каким-то образом Google добавляет этот другой div, так что сложнеедобраться до него

В документации Google Я вижу grecaptcha.reset (), но это, к сожалению, просто удаляет его и возвращает обратно.

Я использую Vue, и мой текущий подход для рендеринга значка recaptcha выглядит следующим образом:

const recaptchaDiv = document.createElement('div');
recaptchaDiv.className = 'outside-badge';
document.body.appendChild(recaptchaDiv);

this.widgetId = grecaptcha.render(recaptchaDiv, {
    sitekey: this.sitekey,
    size: "invisible",
    badge: this.badge || "bottomright",
    theme: this.theme || "light",
    callback: token => {
        this.callback(token);
        grecaptcha.reset(this.widgetId);
    }
});

Когда модальный режим закрыт, переменные уничтожаются, и у меня нет доступа к this.widgetId.

...