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

使用javascript在按钮中使用HTML5下载选项,javascript,extjs,hyperlink,Javascript,Extjs,Hyperlink,我想编写一个Javascript函数,通过向其中添加变量来下载json文件。像这样的 varobj={a:123,b:456}; var data=“text/json;charset=utf-8,”+encodeURIComponent(json.stringify(obj)); $(“”).appendTo(“#container”); 但现在我想用按钮替换锚定标签。 我正在使用ExtJS 6。您可以做两件事 设置标签的样式,使其看起来像按钮 将按钮放在a标签内 $('<a href

我想编写一个Javascript函数,通过向其中添加变量来下载json文件。像这样的

varobj={a:123,b:456};
var data=“text/json;charset=utf-8,”+encodeURIComponent(json.stringify(obj));
$(“”).appendTo(“#container”);
但现在我想用按钮替换锚定标签。
我正在使用ExtJS 6。

您可以做两件事

  • 设置
    标签的样式,使其看起来像
    按钮

  • 按钮
    放在
    a
    标签内

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

  • 由于
    按钮
    没有
    下载
    属性,因此您需要使用
    a
    标记。

    您可以做两件事

  • 设置
    标签的样式,使其看起来像
    按钮

  • 按钮
    放在
    a
    标签内

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

  • 由于
    按钮
    没有
    下载
    属性,因此您需要使用
    a
    标记。

    您可以像这样使用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'
        }
    });
    

    工作示例:

    您可以像这样使用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'
        }
    });
    

    工作示例:

    我使用的是ExtJS,没有在所需位置添加锚定标记的选项。我使用的是ExtJS,没有在所需位置添加锚定标记的选项。