0

我在 FF、Safari 中有一个有效的上传进度条,但在 IE 中没有。

基于 jquery.form 提交表单,但是当上传完成时,PHP 应用程序会发出一个全新的页面,该页面将在 xhr.responseText 中接收。响应被放置在一个新文档中。

这适用于 FF,...

在 IE 上,responseText 以“\n <table class=...”开头,即 <body> 标签内的文本(而不是整个 <html> ... </html> 页面)。

这是怎么回事?我必须怎么做才能让 IE 将所有标签保留在响应中?

更新:

我在用:

  • jQuery 表单插件
  • 版本:3.35.0-2013.05.23

连接事物的 jq 如下所示:

    $('#JQF').ajaxForm({
      dataType:  'html',
      beforeSend: UP.start,
      success: UP.stop
    });

UP.stop:
function (html, status, xhr) {
  startTime = null;
  setTimeout(function () {
    jsonForm.success(html, status, xhr);
  }, 10);
}

jsonForm.success:
function(responseText, statusText, xhr, elt)
/*
1.) responseText or responseXML value (depending on the value of the dataType option).
2.) statusText
3.) xhr (or the jQuery-wrapped form element if using jQuery < 1.4)
4.) jQuery-wrapped form element (or undefined if using jQuery < 1.4)
) 
*/ {
  if (typeof responseText === 'string')
  {
    if (/<html>/i.test(responseText))
    {
      jsonForm.reloadMain(responseText);
    }
    else if (responseText)
    {
      alert(responseText);    <<<========== this is executed.
    }
  }
  else if (responseText && typeof responseText === 'object')
  {// decode and execute jquery instructions
    jsonForm.responseEval(responseText, {});
    jsonForm.init(); // in case we loaded something with a jsonForm in it
  }
}

更新 2:

要关闭限制返回的 iframe 的使用,必须包含 ajaxForm 选项 iframe: false。

4

1 回答 1

0

这是大雁追逐的一部分。

使用 setTimeout(updateinfo, 2); 启动脚本确实有效。然后继续提交表格。

于 2013-09-26T22:24:47.023 回答