<a id="sample2" href="data:application/csv;charset=utf-8,Col1%2CCol2%2CCol3%0AVal1%2CVal2%2CVal3%0AVal11%2CVal22%2CVal33%0AVal111%2CVal222%2CVal333" download="sample2.csv">ダウンロード2</a>デモ
HTML
<a id="link1" href="sample/smp1.zip" download="smp1.zip">smp1.zip</a>
<a id="link2" href="sample/smp2.zip" download="smp2.zip">smp2.zip</a>
<a id="link3" href="sample/smp3.png" download="smp3.png">smp3.png</a>
<a id="link4" href="sample/smp4.txt" download="smp4.txt">smp4.txt</a>
<input type="button" value="複数ファイルダウンロード" onclick="test1()" class="btn btn-success btn-sm" />
JavaScript
function test1(){
$('#link1')[0].click();
$('#link2')[0].click();
$('#link3')[0].click();
$('#link4')[0].click();
}
<html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="bpgdec8b.js"></script> </head> <body> <img src="ike.bpg"> <img src="0.bpg"> </body> </html>サンプル
<canvas id="mycanvas" width="512" height="512"></canvas>
<script>
//ロードイベント
(function (){
var img, canvas, ctx;
canvas = document.getElementById("mycanvas");
ctx = canvas.getContext("2d");
img = new BPGDecoder(ctx);
img.onload = function() {
// draw the image to the canvas
ctx.putImageData(this.imageData, 0, 0);
};
//動的画像読込
img.load("ike.bpg");
})();
</script>
location.reload(true);
location.reload(false);
/**
* メールアドレスからドメイン部分を取り出す。
* 例)xsrhapieqd@docomo.ne.jp → docomo.ne.jp
* 空文字やメール形式でない場合は空文字を返す。
*/
function extractEmailDomain(mail){
if(mail =='' || mail==null){
return '';
}
var a=mail.indexOf('@');
if(a == -1){
return '';
}
var domain=mail.substr(a + 1);
return domain;
}
サンプル
var test={};
if (test['kani']){
alert('存在する');
}else{
alert('空!');
}
str.trim();//IE8は未対応JQueryによる代替
str=$.trim(str);//代替手段
//ArrayクラスにindexOfメソッドがなけいれば実装
if (!Array.indexOf) {
Array.prototype.indexOf = function(o) {
for (var i in this) {
if (this[i] == o) {
return i;
}
}
return -1;
}
}
参考サイト
//カタカナのバリデーション
function katakanaVld(v) {
var flg=false;
if(v.match(/^[ァ-ヶー]*$/)){
flg=true;
}
return flg;
}
var data_count = Object.keys(data).length;
var data={'id':1,'name':'animal'};
var data_count = Object.keys(data).length;
alert(data_count);//結果→2
var data={'id':1,'name':'animal','ary':{'a':1,'b':2}};
var data_count = Object.keys(data).length;
alert(data_count);//結果→3
ソースコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>jqPlotグラフのダウンロード</title>
<script src="../../style2/js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="jquery.jqplot.min.js"></script>
<script type="text/javascript" src="FileSaver.js"></script>
<script type="text/javascript" src="html2canvas.js"></script>
<script>
$( function() {
//▽グラフ作成処理
rec1 =[[1,null],[2,null],[3,null],[4,null],[5,null],[6,null],[7,null],[8,null],[9,null],[10,13],[11,9],[12,15],[13,14],[14,null],[15,null],[16,null],[17,null],[18,null],[19,null],[20,14],[21,10],[22,6],[23,40],[24,7],[25,7],[26,7],[27,40],[28,null],[29,null],[30,null],[31,null],];
rec2 =[[1,5],[2,54],[3,12],[4,52],[5,null],[6,null],[7,null],[8,null],[9,25],[10,23],[11,19],[12,5],[13,4],[14,5],[15,null],[16,null],[17,35],[18,null],[19,null],[20,24],[21,13],[22,16],[23,30],[24,37],[25,27],[26,17],[27,14],[28,null],[29,null],[30,null],[31,8],];
$.jqplot(
'graph_div',
[
rec1,
rec2
],
{
series: [
{ label: 'test' }
],
legend: {
show: true,
},
axes:{
xaxis:{
label:'日',
ticks: [
'1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31',
],
},
yaxis:{
label:'縦軸Y',
ticks: [
'50','45','40','35','30','25','20','15','10','5','1', ],
}
}
}
);
});
//グラフをimg要素へ表示する。
function test_show_img(){
var element = $('#graph_div')[0];
//DOM要素をcanvasに変換する。html2canvas.jsの機能
html2canvas(element, { onrendered: function(canvas) {
var imgData = canvas.toDataURL('image/png');
$('#img1')[0].src = imgData;
}});
}
//グラフダウンロード(シンプルコード版)
function test_graph_download_smp(){
var element = $('#graph_div')[0];
//DOM要素をcanvasに変換してからダウンロード
html2canvas(element, { onrendered: function(canvas) {
var imgData= canvas.toDataURL("image/png").replace("image/png", "image/octet-stream");
window.location.href = imgData;
//window.open(imgData, 'save');//←こちらの方法でもダウンロードできる
}});
}
//グラフダウンロード
function test_graph_download(){
var element = $('#graph_div')[0];
//DOM要素をcanvasに変換する。html2canvas.jsの機能
html2canvas(element, { onrendered: function(canvas) {
//canvas.toBlob()が実装されていないブラウザに対応。
var type = 'image/jpeg';
// canvas から DataURL で画像を出力
var dataurl = canvas.toDataURL(type);
// DataURL のデータ部分を抜き出し、Base64からバイナリに変換
var bin = atob(dataurl.split(',')[1]);
// 空の Uint8Array ビューを作る
var buffer = new Uint8Array(bin.length);
// Uint8Array ビューに 1 バイトずつ値を埋める
for (var i = 0; i < bin.length; i++) {
buffer[i] = bin.charCodeAt(i);
}
// Uint8Array ビューのバッファーを抜き出し、それを元に Blob を作る
var blob = new Blob([buffer.buffer], {type: type});
//★FileSaver.jsによるファイルダウンロード
saveAs(
blob
, "test.png"
);
/*
canvas.toBlob(function(blob) {
saveAs(
blob
, "test.png"
);
});*/
}});
}
</script>
</head>
<body>
<h1 >jqPlotグラフのダウンロード</h1>
<div id="graph_div" style="height: 400px; width: 100%;"></div>
<input type="button" value="img要素に表示" onclick="test_show_img()" />
<input type="button" value="グラフダウンロード(シンプル版)" onclick="test_graph_download_smp()" />
<input type="button" value="グラフダウンロード(ファイル名指定可)" onclick="test_graph_download()" />
<hr>
<p>img要素</p>
<img id="img1" src="" />
※img要素なので右クリックによる画像ダウンロードができる。<br>
</body>
</html>
サンプル
サンプル参考
html2canvas