我有一个奇怪的行为,我正在与自己斗争,以弄清楚可能是什么错误。
我有一个HTML页面,在正文加载时,检查查询字符串中是否存在变量“TRANSACTIONVALUE”。如果字符串存在且具有特定值(8374),则将用户重定向到特定页面(让我们将其称为“后端页面”)。由于有时候这个“后端页面”有点慢(它会触发一个有时因无活动而停机的代理,所以需要等待重新激活它),我解决了它只是添加了一个document.write,只是说“请求当然。 ..请等待“在重定向之前在相同的空白页面中。
我的代码适用于所有浏览器,但Internet Explorer除外,用户在第一个语句“document.write”中被阻止。
<!doctype html>
<html lang="us">
<head>
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML;CHARSET=UTF-8">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="EXPIRES" CONTENT="-1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../../../favicon.ico">
<script>
function CheckHeaderStatus() {
if (getQueryVariable("TRANSACTIONVALUE")==8374)
{
document.write("Request in course... Please wait");
window.location.href='http://backendapplication.goto.com/Default.aspx?TARGET='+TRANSACTIONVALUE;
}
}
</script>
</head>
<body onload="CheckHeaderStatus()" class="text-center">
<div> any text <div>
</body>
</html>
会发生什么,它适用于Chrome,Safari,Firefox。在这些情况下,如果用户具有TRANSACTIONVALUE = 8374,在正文加载时,他可以看到“请求当然...请稍候”消息,然后重定向到页面http://backendapplication.goto.com/Default.aspx?TARGET='+ TRANSACTIONVALUE
现在,在Internet Explorer中,使用TRANSACTIONVALUE = 8374的用户只能看到“请求当然...请稍候”消息。页面停止前进,因此它们不会重定向到另一页。可能是什么问题?
我已经测试了其他方法来获得相同的(如我的工作所证明的):“从页面中删除所有内容,创建一个div,我可以写下等待的按摩,然后重定向,所以:
while (document.firstChild) {
document.removeChild(document.firstChild);
};
// create new DIV
var newDiv = document.createElement("div");
newDiv.innerHTML = "<h1>Request in course... Please wait</h1>";
window.location.href='http://backendapplication.goto.com/Default.aspx?TARGET='+TRANSACTIONVALUE;
但同样,它适用于所有浏览器期望的IE。我用IE9,10,11测试过。我错过了什么或者是IE的问题?
谢谢大家!
我已经用这种方式解决了:
function CheckHeaderStatus() {
if (getQueryVariable("TRANSACTIONVALUE")==8374)
{
Redirect();
function Redirect() {
document.write("Request in course... Please wait");
window.location.href='http://backendapplication.goto.com/Default.aspx?TARGET='+TRANSACTIONVALUE;
}
}}
这样它也适用于IE :-)