以XML文件的形式下载formtextarea.适用于IE10,但不支持Chrome35或Firefox30
Download form textarea as an XML file. Works in IE10 but not Chrome35 or Firefox30
尝试创建一个按钮(或链接)从html表单文本区域内下载数据,并保存为XML文件。我可以解释为什么,但这太费时间了。
这是我的工作(仅在IE10中)文本示例。我希望它也能在Chrome和Firefox中工作,但到目前为止还没有运气,有什么想法吗?
我不需要任何花哨的东西,只需将数据扔到一个变量中,将该变量放入一个新文件中,并提示savea filename.xml
<html>
<head>
<script lang="javascript">
function download(){
var xmlContent = document.getElementById("Kitchen").innerHTML; //here we load our xml data
var blob = new Blob([xmlContent], {
type: "text/xml;charset=utf-8;"
});
navigator.msSaveBlob(blob, "SaveAsYourFileNameHere.xml");
}
</script>
</head>
<body style="background-color: rgb(225,225,225)">
<br>
<form id="House">
<textarea id="Kitchen"cols="20" rows="10">This is the Kitchen</textarea>
</form>
<br>
<a href="#" onClick="download()">Download Xml</a><br>
<br>
</body>
</html>
Blob仅适用于IE,对于FF和Chrome查看数据URI的
https://developer.mozilla.org/en-US/docs/Web/HTTP/data_URIs类似:
<script type="text/javascript">
function base64_encode(data) {
// discuss at: http://phpjs.org/functions/base64_encode/
// original by: Tyler Akins (http://rumkin.com)
// improved by: Bayron Guevara
// improved by: Thunder.m
// improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
// improved by: Rafa? Kukawski (http://kukawski.pl)
// bugfixed by: Pellentesque Malesuada
// example 1: base64_encode('Kevin van Zonneveld');
// returns 1: 'S2V2aW4gdmFuIFpvbm5ldmVsZA=='
// example 2: base64_encode('a');
// returns 2: 'YQ=='
var b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
ac = 0,
enc = '',
tmp_arr = [];
if (!data) {
return data;
}
do { // pack three octets into four hexets
o1 = data.charCodeAt(i++);
o2 = data.charCodeAt(i++);
o3 = data.charCodeAt(i++);
bits = o1 << 16 | o2 << 8 | o3;
h1 = bits >> 18 & 0x3f;
h2 = bits >> 12 & 0x3f;
h3 = bits >> 6 & 0x3f;
h4 = bits & 0x3f;
// use hexets to index into b64, and append result to encoded string
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
} while (i < data.length);
enc = tmp_arr.join('');
var r = data.length % 3;
return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 3);
}
var str="Hi my name is Adam and I love Javascript";
var str64=base64_encode(str);
var a = document.createElement('a');
if(window.navigator.msSaveOrOpenBlob){
var fileData = str;
blobObject = new Blob([str]);
a.onclick=function(){
window.navigator.msSaveOrOpenBlob(blobObject, 'MyFile.csv');
}
}else{
a.setAttribute('href','data:text/csv;headers=Content-Disposition%3A%20attachment%3B%20filename%3D%22with%20spaces.csv%22%0D%0AContent-Language%3A%20en,%E2%88%9A;base64,' + str64,'MyFile.csv');
}
a.appendChild(document.createTextNode('Click to Download'));
document.body.appendChild(a);
</script>
相关文章:
- 任何浏览器都不支持javascript函数
- 对象不支持属性或方法“自动完成”
- 对象没有'不支持set_viewXML
- 您的平台不支持RxJS-Array.observe
- 错误:语法错误,无法识别的表达式:不支持的伪:无效/RectJS/Unit Testing
- 使用Facebook登录,但仍然可以获得:“;此标识池不支持未经身份验证的访问“;
- 415(不支持的媒体类型)错误
- 字符串替换-不支持格式字符'}'
- CSS3卡翻转动画,检测是否不支持
- IE中不支持JQuery window.location.hash
- javascript表单字段submit:Object dos'在IE8中不支持此属性或方法
- 对象不支持对象IE 8
- 不支持Three.js FBX二进制格式
- 使用gmail-api发送电子邮件错误:此api不支持解析表单编码的输入
- 如何在不支持HTML字符的邮件正文中发送%签名
- IE10不支持iframe中的样式表链接
- Jquery hide() show()不支持ie10浏览器
- 以XML文件的形式下载formtextarea.适用于IE10,但不支持Chrome35或Firefox30
- jQuery / IE10 - SCRIPT438:对象不支持属性和方法'data'
- HTML5拖放上传在ie10版本以下不支持