使jQuery单击锚在Firefox上工作

Kok*_*zzu 3 javascript firefox jquery cross-browser

我有这个脚本:

function downloadIt() {
  var dataUri = "data:application/csv;charset=utf-8,Col1%2CCol2%2CCol3%0AVal1%2CVal2%2CVal3%0AVal11%2CVal22%2CVal33%0AVal111%2CVal222%2CVal333"
  var filename = "somedata.csv"
  $("<a download='" + filename + "' href='" + dataUri + "'></a>")[0].click();
}
Run Code Online (Sandbox Code Playgroud)

它可以在Chrome上运行,但不能在Firefox上运行,并且在控制台上没有任何错误。是什么原因以及如何解决?

Kok*_*zzu 5

在元素上添加元素即可body解决问题,只需将3上面问题的行替换为此:

// store the element to a variable
var x = $("<a download='" + filename + "' href='" + dataUri + "'></a>");

// append to body
x.appendTo('body');

// click it (download)
x[0].click();

// remove from body
x.remove();
Run Code Online (Sandbox Code Playgroud)

当元素未附加到Firefox时,Firefox似乎不会执行click事件。 body