Нельзя ли использовать HTML, например ‹a href.., в листе JavaScript?

Недавно я задавал вопрос о том, как создать кнопку отправки почты, которая открывает окно, в котором можно ввести адреса электронной почты для отправки (Как создать кнопку Mailto Share, которая открывает Окно, в котором можно ввести адрес электронной почты для отправки). Я получил отличный ответ от пользователя Рона Ройстона, в котором он предложил: «Вы можете создать страницу только для того, чтобы взять строку электронной почты, а затем делайте с ним все, что хотите, на стороне сервера. Сделайте всплывающее окно маленьким, например:

<a href="/my-email-collector-page"
   onclick="window.open(this.href,'targetWindow',
                                   'toolbar=no,
                                    location=no,
                                    status=no,
                                    menubar=no,
                                    scrollbars=yes,
                                    resizable=yes,
                                    width=200px,
                                    height=120px');
 return false;">email</a>"

Однако это отличный метод, когда я вставляю этот код в свой лист JavaScript (в моем CodePen здесь: https://codepen.io/IDCoder/full/rpdBQJ/), который содержит коды других моих кнопок социальных сетей, этот код отключает код для этих кнопок? Я пытаюсь понять, почему это так... это из-за использования <a href="........"></a> в среде JavaScript?? Если да, то есть ли способ интегрировать код Рона в код, который включает в себя функцию щелчка, подобную этой:

$('.любое имя класса').click(function() {

окно.открыть();

});

По сути, начиная с, window.open(this.href,'targetWindow',.... как мне вставить код ниже: в приведенный выше код?

window.open(this.href,'targetWindow',
                                       'toolbar=no,
                                        location=no,
                                        status=no,
                                        menubar=no,
                                        scrollbars=yes,
                                        resizable=yes,
                                        width=200px,
                                        height=120px');
     return false;

person codebwoy    schedule 25.01.2018    source источник


Ответы (1)


Вы можете установить атрибут data-* в элементе <button>, указывающем на HTML-документ, который вы создаете.

<button data-href="/path/to/html/document" id ="EM" type="button" class="Email share-page-on-Email">Email</button>

var emailWindowSettings = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=200px,height=120px';

$("#EM").on("click", function() {
  var emailWindow = window.open(this.dataset.href,'targetWindow', emailWindowSettings);
  return false;
})
person guest271314    schedule 25.01.2018
comment
Здравствуй! Спасибо! Я обязательно попробую это и вернусь к вам! Ух ты! - person codebwoy; 25.01.2018
comment
Это сработало! Однако он просто ссылается на страницу ошибки 404, потому что я не могу создать несколько связанных страниц на CodePen, если у меня нет премиум-аккаунта, лол! Большое спасибо! Вы знаток JavaScript!? Мне нужно знать! Хахаха - person codebwoy; 25.01.2018