JQuery load()无法在IE中通过电子邮件发送页面

时间:2012-01-17 19:13:43

标签: jquery internet-explorer load

我有一个页面,在加载时,在使用jQuery的load()方法检索内容时显示“spinner”gif。

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 个答案:

答案 0 :(得分:1)

大多数(如果不是全部)电子邮件客户端(包括gmail,hotmail等)都会从电子邮件内容中删除javascript。

这是为了防止人们发送可能包含可能漏洞的电子邮件。

页面的功能与您在浏览器中关闭javascript时查看的功能相同。

您需要通过ajax加载加载内容的任何原因,而不是仅通过服务器端代码将其包含在页面中?

修改

对于电子邮件收件人(和非JS用户),您可以尝试:

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

将其放在现有的加载div中,并将加载图像更改为仅在页面加载时显示:

<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>