Javascript mailto, вызывающий проблемы IE

#javascript #jquery

#javascript #jquery

Вопрос:

На моей HTML-странице у меня есть:

 var e_values = $("a.envelope");
e_values.each(function(index){
    $(e_values[index]).attr('href','mail' 'to:' eval($(e_values[index]).attr('eparts')));
})
  

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

Однако в IE, в дополнение к открытию моего почтового клиента, открывается вторая вкладка только с адресом электронной почты.

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

Спасибо, Эрик

Комментарии:

1. О, и ответ, вероятно, заключается в том, что eval($(e_values[index]).attr('eparts')) есть. Можете ли вы опубликовать свой HTML, который показывает этот атрибут? Кроме того, должны следовать пользовательские атрибуты DOM data-name='value' : ejohn.org/blog/html-5-data-attributes

Ответ №1:

 var e_values = $("a.envelope");
e_values.each(function(){
  $(this).attr('href','mailto:' $(this).attr('eparts'));
})
  

должно быть достаточно — если у вас есть target =»_blank» в ссылках, удалите это тоже

Если IE открывает новый браузер, посмотрите здесь http://www.virtualdub.org/blog/pivot/entry.php?id=52

Вам лучше использовать почтовую программу на стороне сервера, чем полагаться на клиента, имеющего правильно настроенный почтовый клиент

Нет необходимости разделять mailto, поскольку робот не может угадать содержимое jQuery