我有一个页面,在加载时,在使用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>
答案 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>