Translate

ラベル javascript の投稿を表示しています。 すべての投稿を表示
ラベル javascript の投稿を表示しています。 すべての投稿を表示

2017年4月6日木曜日

monacaでcordovaプラグインを使って音声入力をする

必要なプラグイン

https://github.com/macdonst/SpeechRecognitionPlugin

必要なプラン gold以上

inputフィールドに、音声でテキストを入れたい。
キーボードのマイクボタンでは小さくて押しづらいという話があったので、cordovaプラグインを使って実装。

function voicesearch(){      

    var micOptions = {
          language : "ja-JP",
          matches : 1,
        }
        window.plugins.speechRecognition.startListening( micSuccess,  micError,  micOptions);      
}
   
   
    function micSuccess(result){
        $("#searchword").val(result) ;//jquery使ってます
        search();
    }
   
    function micError(result) {
        //alert("error : " + result) ;
    }


html

<input type="search" id="searchword">
<ons-button onclick="voicesearch()" >音声入力</ons-button>


2017年3月6日月曜日

海外ダウンロードサイトが快適になるブックマークレット

キャプチャーを入れようとしたらポップアップが開いたり、マウスカーソルを置いただけで、広告が出たりする人へ。
↓コピペして、ブックマークのURLの部分に貼って、画面が表示されたら押すだけです。

javascript:(function(){$(function(){$("*").off();$("body a[target='_blank']").remove();$("form").each(function(){$(this).get(0).onsubmit = "" ;});$("input").focus();});})();


2016年9月24日土曜日

【jQuery】【javascript】料金表カレンダーを楽に入力できるフォーム(案)

世の中にはまだまだアナログ作業が残っているようで、
旅行のパンフレットとかによくある料金表の原稿づくりとかも、FAXで手書きのものが送られてきたりする(らしい)。
そこを何とかフォーム入力でお願いしますという話がでて、原案として出したのがこんなもの。
jQueryのdatepickerじゃ上手くいかなそうだったので、tableで作ってみた。
手書きよりは、楽だと思うんだけど。
「続きを読む」で動きます。

1234567
891011121314
15161718192021
22232425262728
293031
1234
567891011
12131415161718
19202122232425
262728


2016年7月26日火曜日

【indesign】【javascript】不足フォントのバージョンとpostscriptnameを取得

indesignでフォント情報がないものの一覧を作成し、postscriptname,versionを取得する
document.fontでプロパティを得ようとすると、置き換えられた後のフォント情報が手に入ってしまうので、
postscriptnameとversionはxmpから入手する。
(「フォント検索」で表示される、置き換えられる前のフォント情報がほしかったが、fontのプロパティは置き換えられた後のもので、置き換え前のものにはアクセスできなかった。
テキストファイルで強引に開くとメタデータとして残っているようだったので、色々と検索した結果、xmpに行きついた)

http://chuwa.iobb.net/tech/archive/2014/06/xmp-1.html
こちらに詳しい。 ありがたや。
改変したものが以下。

fontproperty ={};//ここに集約される

var f = app.activeDocument.fullName.fsName;
read(f);
function read (fls){
     var property = "Fonts";
     var ns ="http://ns.adobe.com/xap/1.0/t/pg/";
     var xmpLib = new ExternalObject('lib:AdobeXMPScript');
     var xmpFile = new XMPFile(fls, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ);
     var xmpPackets = xmpFile.getXMP();
     var xmp = new XMPMeta(xmpPackets.serialize());
     for (var i=1;i<=xmp.countArrayItems(ns,property);i++){//xmpは1から数えるんですって
         var postscriptname = xmp.getProperty(ns, property + "[" + i + "]" + "/stFnt:fontName").toString();
         var version = xmp.getProperty(ns, property + "[" + i + "]" + "/stFnt:versionString").toString();
         version = version.split(postscriptname)[1];
         fontproperty[postscriptname] = version ;
      }
}
これで、ドキュメント内の全てのフォントの、置き換え前のfontバージョンがpostscriptnameをkeyにして手に入る。・・・①
後は、document.fontから使用しているpostscriptnameを取得し、・・・②
①のpostscriptnameと②のpostscriptnameを照合すれば、
documentのfont全ての置き換え前のversionが手に入るというわけ。

2016年6月20日月曜日

【jquery】【javascript】jqueryで割り当てられたイベントハンドラを取得する



chromeならデベロッパーツールを開いて、コンソールに
$._data($("#id").get(0), "events");
と入力する。


2016年6月10日金曜日

【unity】【javascript】パネルの表示・非表示切り替え

unityのjavascript、やっぱり癖がありますね。
学習コスト的にはc#を勉強するのと変わりないような気がします・・・。
検索してもc#のコードばっかりだし、心が揺れます。
とはいえ、javascriptで書いている人もきっといるだろうし、そんな人の助けになれば幸いです。
日本語のリファレンスがあるだけ、恵まれているのでしょう。

public var somepanel :GameObject;//アタッチを忘れずに
function Start () {
somepanel.SetActive(false);
}

function Update (){
if(someflag ==true){
somepanel.SetActive(true);
}
}

2016年6月8日水曜日

【excel】【javascript】roundupとMath.ceil

excelの動作をhtmlに移植する仕事の最中。
切り上げるってことは、Math.ceilでいいんじゃない?と思っていたが、時々挙動が合わない。
調べてみると、roundup関数は「切り上げ」ではなく、「0から遠い最小の整数にする」だった。

//roundup
1.2 → 2
-1.2 → -2

したがって、javascriptで再現しようとすると、
値が正の数か負の数で、条件わけをしなければならなかった。うーん。

2016年6月1日水曜日

【mac】【extendscripttoolkit】macのフォルダ名に半角スラッシュが使える?

ADOBEのextendscripttoolkitを使って、社内向けに簡単なリネームスクリプトやファイルの仕分けスクリプトを書くことがある。
今回の依頼は、複数あるフォルダ名にある文字と数値が振ってあるので、それを集計して欲しいという内容だった。
(例)/hoge03/huga05/
それらを種類ごとに集計し、csvに書き出すという内容で、そこまで難しくなかったのだが、苦戦したのがフォルダの名前だった。
この件では、欲しい情報半角スラッシュで区切られている。
フォルダ名を文字列で取得し、

foldername.split("/");

で区切ろうとしても、うまく行かない。
よく考えたら、フォルダ名に半角スラッシュってどうなの?下の階層と勘違いされないの?と、疑問だらけだったが、
試しにalert(foldername)とすると、
/hoge03/huga05/ → :hoge03:huga05:
と表示される。つまり、見た目はスラッシュだけど、本当は半角コロンってこと?
試しに
foldername.split(":");
とすると、実際うまくいった。納得いかないが、これがmacの仕様のようだ。

※ちなみに、半角スラッシュをやめてアンダーバーにしろという意見は却下された。

2016年5月27日金曜日

【jquery】【javascript】slider同士の値を比較すると挙動がおかしかった

sliderの値を比較しようとしたとき。
<input id="slider1" type="range" min="0" max="100" step="1" value=100 />
<input id="slider2" type="range" min="0" max="100" step="1" value=20 />

slider1value = $("#slider1").val();
slider2value = $("#slider2").val();

if(slider1value >= slider2value)
{
 alert("slider1はslider2以上である");//こちらを期待
}else
{
 alert("slider1はslider2未満である");//こちらが出てくる
}

理由は、val()は文字列で返されるのを忘れていたから。
alert(typeof slider1value);//string

つまり、
alert("20">"100");//true
これと同じことをしてた。

rangeスライダーだからってわけじゃないけど、頭から消えていました。

こうすると、うまくいく
slider1value = $("#slider1").val()-0;
slider2value = $("#slider2").val()-0;

2016年5月10日火曜日

数値にカンマをつける色々【javascript】【php】【mysql】

本当はやりたくないんです。
床でジタバタ転げまわっても「やれ」といわれたときに。

//javascript
number.toLocaleString();

//php
number_format($number);

//mysql
select FORMAT(number ,0) from table

2016年4月23日土曜日

【javascript】【jquery】スライダーの値を特定の箇所で吸着したい

例えば2-1024までの値のスライダーで、選べる値は2のn乗のみとしたい。
つまり、選べる値は2,4,8,16,32,64,128,256,512,1024とする。
<div class="ui-field-contain" id = "sliderdiv">
   <label for="slider">値</label>
   <input id="slider"  type="range" min="2" max="1024" step="1" value=2/>
</div>
<script>
    var keys = [2,4,8,16,32,64,128,256,512,1024];
    var keys_length =keys.length;
$(function(){
   $("#sliderdiv").on("change", "#slider", function() {
      var tmpvalue = $("#slider").val();
      for(var n=0;n<keys_length;n++)
      {
         if(tmpvalue<=keys[n])
         {
            break;
         }
      }
      if((keys[n]+keys[n+1])/2<tmpvalue)
      {
         $("#slider").val(keys[n+1]);
      }
      else {
         $("#slider").val(keys[n]);
      }
      if($("#slider").val()!=tmpvalue)//これ書いておかないと無限に処理を繰り返してしまう
      {
         $("#slider").slider('refresh');
      }
   })
})
</script>

2016年4月21日木曜日

【javascript】【jquery】スライダーの値によって、buttonを無効(disable)にする

よし、やる気ボタンを押すと仕事をやる気を出すぞ。
でも、暑かったり寒かったりしたらやる気ボタンが表示されないぞ。しょうがない。
という仕組み。
sliderって単純に$("#slider").on("change",function(){...})
じゃ処理は起動しないのね

<div class="ui-field-contain" id = "sliderdiv">       <label for="slider">気温</label>
    <input id="slider"  type="range" min="0" max="100" step="1" value=0 />
</div>
<button id ="yaruki">
やる気ボタン
</button>

<script>
$(function(){
    $("#sliderdiv").on("change", "#slider", function() {
    //または、$("input#slider").live("change", function() {
        var slider_value = $("#slider").val();
        if(15<=slider_value&&slider_value<=25)
        {
            $('#yaruki').prop('disabled', false);//非表示をオフにする。つまり、表示。
        }else{
            $('#yaruki').prop('disabled', true);
        }
    })
})
</script>

2016年4月5日火曜日

tablefixプラグインを使っていると、他のtable系プラグインを使うのは難しいかもしれない

古いサイトの改修で、テーブルをソートする機能をつけようとしたときのこと。
適当なjqueryを見繕って、実装すればOKだなーと思ったら、やけにはまった。
よくよくソースを見ると、
tablefix
http://www.otchy.net/javascript/tablefix/
というプラグインでテーブルを整形していた。ソースを読むと、元のテーブルを分割処理している・・・。

tablefix1というテーブルが4つ作られている↓



これじゃ、ソートできないわけだ。
よし、あきらめた!
正式に依頼があったら、tablefixのほうを変えてなんとかしよう。

2016年4月4日月曜日

動的に作成したhtml部分にjquery/jquery mobileのスタイルが適用されない

#動的部分にinnerhtmlを代入するとして
$("#動的部分").html(innnerhtml)
の後ろに.trigger('create');を追加して
$("#動的部分").html(innnerhtml).trigger('create');
とする。

2016年2月4日木曜日

【CSS】【javascript】ドラッグアンドドロップはhoverではない

タイトルどおりなのですが。

ブラウザにファイルをドラッグアンドドロップしてアップロード・・・というものを作っているとき、
指定のゾーンにドラッグしているマウスが移動したら、色を変えるなりしようと思っていたのですが、
実際には、うまく動かない。
ファイルをドロップした後に、hoverとして認識されてしまう。
どうやら、cssのhoverではドラッグ中のマウスは感知できない。
こんなときは、javascriptのdrag~イベントを使うしかないみたい。


マウスがホバーなんだからいいじゃん!とは思ったけど、全くの別物のようです。
ちょっと混乱したのでメモ。