使用javascript在按钮中使用HTML5下载选项

时间:2016-06-23 08:42:04

标签: javascript extjs hyperlink

我想编写一个Javascript函数,通过向其中添加变量来下载json文件。像这样https://jsfiddle.net/cowboy/hHZa9/

var obj = {a: 123, b: "4 5 6"};
var data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(obj));

$('<a href="data:' + data + '" download="data.json">download JSON</a>').appendTo('#container');

但现在我想用按钮替换锚标签。 我正在使用ExtJS 6。

2 个答案:

答案 0 :(得分:2)

您可以像这样使用Extjs按钮:

var obj = {
        a: 123,
        b: "4 5 6"
    },
    data = "text/json;charset=utf-8," + encodeURIComponent(JSON.stringify(obj));

Ext.widget('button', {
    renderTo: Ext.getBody(),

    text: 'Download',

    href: 'data:' + data,

    autoEl: {
        tag: 'a',
        download: 'data.json'
    }
});

工作示例:https://fiddle.sencha.com/#fiddle/1chg

答案 1 :(得分:0)

你可以做两件事......

  1. a标记添加样式,使其看起来像button

  2. button放在a标记

    $('<a href="data:' + data + '" download="data.json"><button>download JSON</button></a>').appendTo('#container');
    
  3. 由于button没有download属性,因此您需要使用a标记。