无法更改<a> tag in IE 10</a>的href属性

时间:2013-11-12 08:12:25

标签: javascript jquery html internet-explorer

我正在尝试将“data:application”类型的URI添加到<a>标记href属性。 这是我使用的代码:

    var TestFuntion = (function() {
      var uri = 'data:application/vnd.xls;base64,'
        , template = '<table>{table}</table>'
        , base64 = function(s) { return window.btoa(unescape(encodeURIComponent(s))) }
        , format = function(s, c) { return s.replace(/{(\w+)}/g, function(m, p) { ; return c[p]; }) }
      return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {worksheet: 'test.xls' || 'Worksheet', table: table.innerHTML}
        var x = ( uri + base64(format(template, ctx))).toString();
        $('#testLink').attr('href',x)

      }

})()

我尝试了使用setAttribute和link.href引用的不同方法来添加链接但没有成功。此代码示例适用于firefox和chrome。

我认为问题在于我尝试添加的href字符串真的很像10k + charecters。

这是链接html:

<a id="testLink" download="Test.xls">

1 个答案:

答案 0 :(得分:0)

所有网络浏览器都限制了网址的长度。此外,服务器也有这些。通常,一个长得太长的URL表示您在进行POST时尝试使用GET。

如果您尝试连接的服务器是您自己的(我认为是),那么您应该使用POST来发送如此庞大的数据调用。如果您绝对需要GET,我会考虑将您的URL重新格式化为几个GUID或类似的东西。