JQuery load () не может отправить страницу по электронной почте в IE - PullRequest
2 голосов
/ 17 января 2012

У меня есть страница, на которой при загрузке отображается gif «spinner», в то время как он извлекает содержимое с помощью метода load () jQuery.

Проблема для пользователей Internet Explorer заключается в том, что они не могут видеть содержимое в электронном письме при использовании встроенного в IE «Отправить \ страницу по электронной почте», скорее всего из-за того, что контент загружен в div.

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

Вот код.

<script type="text/javascript">
$().ready(function() {
  $('#result').load("/reports/default.do?method=report123", function(responseText, textStatus, XMLHttpRequest) {
            if (textStatus == "success") {
                $('#loading').hide();
                $('#result').show();
            }
            if (textStatus == "error") {
               alert("page could not be loaded.");
            }
        });
    });
    </script>

    <div id="loading"><img src="../images/ajax-loader.gif" alt="loading" id="loading"/></div>

    <div id="result"></div>

1 Ответ

1 голос
/ 17 января 2012

Большинство (если не все) почтовые клиенты, включая gmail, hotmail и т. Д., Удаляют javascript из содержимого электронной почты.

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

Страница работает так же, как если бы вы просматривали ее с отключенным в браузере javascript.

Любая причина, по которой вам нужно загружать контент через ajax-загрузку, а не просто включать его на страницу через серверкод стороны?

Редактировать:

Для получателей электронной почты (и не пользователей JS) вы можете попробовать:

<noscript><a href="/reports/default.do?method=report123" title="report123">View the report.</a></noscript>

Поместите это внутрисуществующий раздел загрузки и измените изображение загрузки, чтобы оно отображалось только при загрузке страницы:

<script type="text/javascript">
    $(function() {
        $('#loading').show();
        $('#result').load("/reports/default.do?method=report123", function(responseText, textStatus, XMLHttpRequest) {
        if (textStatus == "success") {
            $('#loading').hide();
            $('#result').show();
        }
        if (textStatus == "error") {
           alert("page could not be loaded.");
        }
    });
});
</script>

<div id="loading">
    <noscript><a href="/reports/default.do?method=report123" title="report123">View the report.</a></noscript>
    <img src="../images/ajax-loader.gif" alt="loading" id="loading" style="display:none;"/></div>

<div id="result"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...