Javascript代码转换功能,不起作用

时间:2014-06-20 18:04:15

标签: javascript onclick download

我发现这个JS代码在线:

var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "my_data.csv");

link.click();

当我运行它时,它生成my_data.csv并为我下载它,我希望改变这一点,所以当用户点击一个按钮时,代码就会运行。我试着变成一个名为Testing()的函数function Testing()我的链接是这样的:

<a href="#" onClick="javascript:Testing()">Test</a>

但是当我把这个代码放在一个函数中时它不起作用:(我做错了什么?

我的控制台中的错误显示“测试未定义”

这是一个jsfiddle:http://jsfiddle.net/F6CWF/

2 个答案:

答案 0 :(得分:1)

该问题的解决方案不止一个:

<强> 1

var link = document.createElement("a");
link.href = "javascript:Testing()";

<强> 2

var link = document.createElement("a");
link.onclick = Testing;

如果上述示例不起作用,请使用内联变体;

1 inline

var link = document.createElement("a");
link.href = "javascript: here goes the function's body";

2 inline

var link = document.createElement("a");
link.onclick = function() {
  // here goes the function's body
};

答案 1 :(得分:1)

你需要这样的东西:

HTML:

<a id='btn' href='#'>Test</a>

JavaScript的:

document.querySelector( '#btn' ).addEventListener( 'click', function () {
    var encodedUri = encodeURI( csvContent );
    var link = document.createElement( 'a' );
    link.setAttribute( 'href', encodedUri );
    link.setAttribute( 'download', 'my_data.csv' );
    link.click();
});

另外,你可以创建一个帮助我们的小提琴。