Mailto ссылка не работает в рамке хром (более https)

У меня есть ссылка mailto на странице. Он работает так, как ожидалось, когда страница загружается сама по себе.

Однако, когда страница загружается через набор фреймов в Chrome, ничего не происходит. При загрузке инструментов разработчика отображается ошибка "[blocked] The page at https://mysite.com ran insecure content from mailto:...".

Как я могу это исправить/обходиться?

Ответ 1

У меня также была эта проблема недавно с iframe. Использование обработанного верхнего кадра и его совместимость со всеми основными браузерами.

window.top.location = 'mailto:...';

Ответ 2

Да, использование "top" - это трюк, но вы можете сделать это только с помощью HTML!

<a target="_top" href="mailto:...">email</a>

Ответ 3

Вот решение, с которым я столкнулся: Протестировано с Chrome, Firefox, IE6, IE7, IE8, IE9, IE10, IE11, Safari

$("a[href^='mailto:']").on("click",function() {
    window.top.location = $(this).prop("href");
    return false;
});

Ответ 4

Возможно, потому что ваш родительский набор фреймов - https, но теперь Chrome теперь обрабатывает почтовую ссылку как небезопасную.

Я столкнулся с подобной проблемой при запуске ссылки mailto через

window.location = 'mailto:...'

Смена этого на нем сработала.

window.open( 'mailto:...')

Ответ 5

Это мое обходное решение до тех пор, пока не будет исправлена ​​ошибка Chrome:

$.browser.chrome = /chrom(e|ium)/.test(navigator.userAgent.toLowerCase()); 

if($.browser.chrome){
     myWindow=window.open("mailto:"+eml+"?subject="+msb,'','width=50,height=50');
     myWindow.close();
} else {
    window.location.href = "mailto:"+eml+"?subject="+msb;
}

В Chrome создайте экземпляр с помощью метода window.open() и немедленно закройте этот экземпляр. Маленькое окно будет "мигать" в течение короткого периода времени, но будет выполнять эту работу. Это "грязное" решение, но столько же, сколько и Chrome.

Для других браузеров можно использовать метод window.location().

Ответ 6

Это также сработает и не закроет окно с помощью facebook....

<a href="mailto:..." target="_blank">...</a>

или

$("a[href^='mailto:']").attr('target','_blank');

Ответ 7

добавить target = "_ top" или "_blank" или "_parent"

<a target="_top" href="mailto:[email protected]">email1</a>

<a target="_top" href="mailto:[email protected]">email2</a>