【问题标题】:JS function working fine with firefox and IE, but not with chromeJS 函数在 firefox 和 IE 上工作正常,但在 chrome 上不行
【发布时间】:2013-05-06 09:34:44
【问题描述】:

我有这个 js 函数,它适用于 IE 和 firefox,但不适用于 chrome。它应该提供带有 chrome 和 firefox 的下载窗口,但会弹出 IE-

JS 函数 -

function downloadCSV() {
    var isIE = false;

    //Download if browser is not IE, otherwise show popup
    if (isIE) {
        $('#searchInfo').TableCSVExport(
                {delivery:'popup' });
    } else {
        var csv = $('#searchInfo').TableCSVExport(
                {delivery:'value' });
        var blob = new Blob([csv], {type: DOWNLOAD_TYPE});
        saveAs(blob, DOWNLOAD_NAME);
    }
}

我这样称呼它 -

<a id="csvLink" href="javascript:downloadCSV()">Download</a>

在 Firefox 和 IE 中,它工作正常,但在 Chrome 中,它在控制台中显示以下错误-

Uncaught TypeError: Illegal constructor
downloadCSV
(anonymous function)

有什么想法吗?

【问题讨论】:

  • 我尝试在“onclick”上调用函数但同样的错误..
  • 你找到它在哪里抛出错误了吗?使用 chrome 调试器?
  • 您能提供一个指向实时站点的链接或一个 jsFiddle 吗?

标签: javascript jquery html google-chrome cross-browser


【解决方案1】:

某些版本的 Chrome 存在损坏的 BlobBuilder

https://github.com/liftoff/GateOne/issues/132

那里提到的版本是:Chrome 18.0.1025.168 (Developer Build 134367 Linux) Ubuntu 12.04

如果你打开 Chrome 并按 F12 然后在控制台输入

var b = new Blob();

这会引发错误吗?如果是这样,那么它是由该特定版本的 chrome 中损坏的 BlobBuilder 引起的

【讨论】:

  • 是的……这样做会出现同样的错误……我想我应该先更新我的 chrome……我的 chrome 版本是 19.0.1084.30。
  • 很棒的人...我更新了我的 chrome,现在我的应用程序运行良好.. 谢谢..
  • 很高兴听到,太糟糕了,在某些版本中被破坏了,现在当你想将它用于公共站点时,你需要检查更多。一个简单的 typeof window.Blob === "function" 是行不通的,因为它存在。可以放入try and catch
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-03
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多