2017年6月8日木曜日

Chromeの検索エンジンにPOST形式のエンジンを追加する方法

Chromeの検索エンジンでは通常 .com/search?q=%s のようなGET形式しか設定できませんがjavascriptを使えばPOST形式できました。
javascript:document.write('<form name="f" action="https://kabutan.jp/search/" method="POST"><input type="hidden" name="input_string" value="%s"></form><script>f.submit();</script>');

↑は株探の場合

2015年1月10日土曜日

[メモ] RESTful APIを作る時に役立つサイト

Web API 設計のベストプラクティス集 "Web API Design - Crafting Interfaces that Developers Love"
http://d.hatena.ne.jp/cou929_la/20130121/1358776754

第2回 RESTfulなAPIの設計を学ぼう (1/2) (2ページ目)
http://www.atmarkit.co.jp/ait/articles/1310/23/news078.html

【翻訳】RESTのベストプラクティス
http://postd.cc/some-rest-best-practice/

2014年3月11日火曜日

特定の文字に色を付ける

ドキュメントから test を探し<span></span>で囲んでcssを付けてます。
function setWordHighlight (word) {
  var doc = document,
      df = doc.createDocumentFragment(),
      span = doc.createElement('span'),
      texts = doc.evaluate('descendant::text()[normalize-space(.)]', doc.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
 
  span.className = 'high-light';
  span.appendChild(doc.createTextNode(word));
 
  for (var i = 0, l = texts.snapshotLength, stringsLength, textNode; i < l; ++i) {
    textNode = texts.snapshotItem(i);
    strings = textNode.data.split(word);
    stringsLength = strings.length;

    if (stringsLength > 1) {
      df.appendChild(doc.createTextNode(strings[0]));

      for (var j = 1; j < stringsLength; ++j) {
        df.appendChild(span.cloneNode(true));
        df.appendChild(doc.createTextNode(strings[j]));
      }
     
      textNode.parentNode.replaceChild(df, textNode);
    }
  }
}

setWordHighlight('test');

css:
.high-light { color: black; background-color: yellow; font-weight: bold; }

http://jsfiddle.net/3F4Wa/
http://toro.2ch.net/test/read.cgi/hp/1386098775/898


2013年11月6日水曜日

ループの高速化

全要素を走査し順番に意味が無い場合、若干ですが高速化できます。
 
for (var i = 0; i < list.length; i++) {
   console.log(list[i]); 
}

毎回、.lengthを参照するのは無駄ですので予め変数に入れておきます。

for (var i = 0, len = list.length; i < len; i++) {
    console.log(list[i]); 
}

順番に意味がないのなら、最後から走査することでさらに簡略化できます。
 
var i = list.length - 1;
for (; i >= 0; i--) {
   console.log(list[i]); 
}


2013年10月14日月曜日

配列かどうかを見分けるにはarray instanceof Arrayでは不十分

array instanceof Array
では不十分なので
Array.isArray(obj)
を使用する 
 
古いブラウザでは↓を追加しとく
 
if (!Array.isArray) {  
  Array.isArray = function (vArg) {  
    return Object.prototype.toString.call(vArg) === "[object Array]";  
  };  
}