我发现这个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/
答案 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();
});
另外,你可以创建一个帮助我们的小提琴。