触发从javascript自动下载不适用于页面加载

我使用了链接的下载属性来下载文件。 但是,当我从另一个方法触发click事件时,它不会下载该文件。 为什么会这样? 我已经检查过是否触发了click事件。 这是我对jsfiddle的测试 – http://jsfiddle.net/6Fkb5/1/

Test Download var count=0; $('#testdownload').on('click', function(){ count++; $('#log').append('
  • Click triggered ' + count + ' times
  • '); }); $('#testdownload').trigger('click');

    试试这个:

     $('#testdownload').get(0).click(); 

    编辑:只是为了澄清这将触发本机点击事件而不是jQuery。

    不管用….

    即使你推迟它并等待DOM准备好了:

     var count=0; $(function(){ $('#testdownload').click(function(){ count++; $('#log').append('
  • Click triggered ' + count + ' times
  • '); }); setTimeout(function(){ $('#testdownload').trigger('click'); },3000); });

    原因是SECURITY协议……浏览器不允许脚本仅通过用户点击触发下载请求。

    编辑:

    实际上,CHROME将支持$('#testdownload').get(0).click(); 但IE会阻止你的脚本。

    触发下载的正确方法(将在IE以外的大多数浏览器中使用)是使用iframe