2013-01-01から1年間の記事一覧

1つ前のタグに○○という文字が入っているタグ

例えば以下のようなHTMLの場合に、 <div> <div>...</div> <div>...</div> <div>...</div> <div id="div1">ほげほげ○○ふがふが</div> <div id="div2">このdivタグを取得したい</div> <div>...</div> <div>...</div> <div>...</div> </div> div2のdivタグを取得したい場合のxpath式はこんな風になる(もちろん id が振られていない前提です) //div[preceding-sibling::div[1][contains(tex…

Tips集

■超簡単なサンプル require "mechanize" agent = Mechanize.new agent.get("http://d.hatena.ne.jp/shima111/") ■アクセスしたページを取得する page = agent.page page.uri #<URI::HTTP:0x157f698 URL:http://d.hatena.ne.jp/shima111/> ■リンクをクリックする # 表示されてる文字列にマッチするリンクタグをクリック </uri::http:0x157f698>…

日付に関するメモ

ざっとまとめてみる デフォルトで用意されているのはTimeクラス Time.nowで現在時刻を取得できる Time.local(y,m,d,hour,min,sec,usec) で指定した時刻を取得できる(mは1〜12) 整数との加減算は秒数を加減算してTimeを返す Timeとの加減算は秒数をFloatで返…

色々な例

シートの全選択 sheet.Cells.Select シートの全削除 sheet.Cells.ClearContents セルが空かどうかチェック cell = sheet.Cells.Item(y,x) unless cell.Value.nil? # セルに何かデータがある puts cell.Value end Rangeを使用してセルの値を取得する # 単一セ…

Excelを終了させる方法

rubyからOLE経由でExcelを操作するのはこちらを参考に http://magazine.rubyist.net/?0004-Win32OLE問題はQuitしてもExcelのプロセスが残ってしまうこと。irbで実行すればわかるけど require 'win32ole' xl = WIN32OLE.new('Excel.Application') book = xl.W…

アクセスされたURLを知る

GAS

こういうのってググってもなかなか見つからないんだよねー。検索するキーワードも難しいし。 function doGet() { Logger.log("ScriptApp.getService().getUrl() = " + ScriptApp.getService().getUrl() ); // => ScriptApp.getService().getUrl() = https://…

doGetの引数

GAS

検索してもキーワード的に難しくてすぐ見つかんなかったので実験してみたまとめ。 // 単にparamをダンプするだけのスクリプトを作成 function doGet(param) { Logger.log(param); }このGASアプリに以下のようなクエリパラメータを付けてアクセス ?arg1&arg2=…

キーイベント発行

ググってすぐ見つかるページでは、KeyEvent.ACTION_DOWN を dispatchKeyEvent してるだけなんだけど、それだと上手くいかなかった・・。なので、試しに KeyEvent.ACTION_UP もやってみたら上手くいったのでメモしておく。 dispatchKeyEvent( new KeyEvent(Ke…

スプレッドシートからデータを取得する時の注意事項

ググると、どうやったらスプレッドシートにデータをセットできるか、とかデータを取得するか、という簡単なサンプルは腐るほど見つかるんだが、じゃー一回でどんなけデータを取得できんのよ、とか、大量のデータを更新する最速の方法は?とか、少し突っ込ん…

端末のアカウントでスプレッドシートにアクセスする

# こんななんでもないことで丸2日潰れた。いやー大変だった・・。GoogleスプレッドをAPI経由で操作する方法は、ぐぐればゴマンと記事がひっかかるが、どれもこれもほとんど setUserCredentials でユーザ名、パスワードを設定してアクセスしている。探せばOAu…

Windows版でアイコンを変更する

バージョンとかプラグインとかの関係でプロジェクト毎にeclipse自体を用意している場合、同時に起動させるとアイコンが同じなのでパッと見でどのeclipseがどのプロジェクトか分かり辛くなるという、レアな悩み事でお困りのあなたに必見。 ※私は Pleiades All…

エクスプローラをカスタマイズ

以前こちらの記事でWinodws7におけるエクスプローラのカスタマイズ方法を紹介したが、Windows8でもそのまま使えるみたいです。ただこれ一つ問題があって、ネットワーク共有フォルダとか一部のフォルダでは依然として1行選択になっちゃうんですよね。ちょっと…

ファイル名一覧を表示するには(2)

過去の記事にプラスαファイル名をUTF8で表示するオプションを追加 <Directory "C:/eroero_files"> Options +Indexes IndexOptions +NameWidth=255 Charset=UTF-8 </Directory>

WinXPx64 にインストールすべきjavaとeclipse

普通、64bit版のjavaとeclipseをインストールすると思うじゃないですか。なんかね、動かないんですよ。なんでやねん・・。 正確に言うと、jdk1.7.0_21x64 をインストールして、eclipse4.2x64 は動いたんですが、eclipse3.7x64は動かなかった。 結局全部32bit…

日付の変換方法

日付文字列からdate型かtimestamp型に変換 select to_date('2013-04-21', 'YYYY-MM-DD'); select to_timestamp('2013-04-21 12:34:56', 'YYYY-MM-DD HH24:MI:SS'); date型、timestamp型から日付文字列に変換 select to_char(now(), 'YYYY-MM-DD'); 日付の計…

WindowsXPでパーティションを拡張する

もう何年も前にVMwareでベースとなるイメージを作ったのだが、その時は十分な大きさだと思っていた8GBが今じゃ全然約に立たなくなったので、ベースイメージを作り直すのも面倒なのでHDDの容量だけなんとか大きくできないか探してみたところ、こんなツールが…

extend:オブジェクトの拡張

// objに key1, key2 が追加される。既にあればval1、val2に上書きされる $.extend(obj, {"key1":"val1", "key2":"val2"}); // こうすれば、オブジェクトのコピー var new_obj = $.extend({}, obj);

stop:アニメーションストップ

// stop(true,true) にすると、アニメーションの途中でも強制的に終了して次のアニメーションを開始する // マウスカーソルを目まぐるしく動かすと違いがわかります $("#one").hover( function() { $(this).find("ul").stop().slideDown("slow"); //$(this).…

on、off:イベントの設定、解除

bind、delegate、live がこれに集約された。 // bindの代わり $("button").on("click", function(){...}); $("button").off("click"); // delegateの代わり $("#id1").on("click", ".someClass", function(){...}); // liveの代わり $(document).on("click",…

preventDefault:イベントのキャンセル

$("a").click(function(ev) { if( !confirm("画面遷移しますか?") ) ev.preventDefault(); // return false; でも、同じような挙動を得られるが // 別のイベントもキャンセルされる場合があるので、なるべくpreventDefaultを使用 });

ajaxグローバルイベントフック

// $("body") という例をよく見かけるが、何故か出力されないので注意 $(document) .bind("ajaxStart", function(){ console.log("ajaxStart"); }) .bind("ajaxSend", function(){ console.log("ajaxSend"); }) .bind("ajaxSuccess", function(){ console.lo…

param:オブジェクトを文字列に変換(日本語はちゃんとURLエンコードされる)

$.param({"key1":"val1", "キー":"値"}); // => key1=val1&%E3%82%AD%E3%83%BC=%E5%80%A4

serialize、serializeArray:formのinput要素を扱いやすい形式に変換

※これは例のHTMLは無い $("input, select").serialize(); // => key1=val1&key2=val2&... $("input, select").serializeArray(); /* [ {name="key1", value="val1"}, {name="key2", value="val2"}, : : ] */

done、fail、always:ajaxのコールバック関数

$.get("/") .done(function(data) { // 通信成功 }) .fail(function() { // 通信失敗 }) .always(function() { // 通信終了(成功、エラー関わらず呼ばれる) }) ;

data:要素にデータを持たせる

// これで、#ii にデータをセットする $("#ii").data("key", "val"); // セットされたデータを取得する $("#ii").data("key"); // => "val" が返る

end:直前のセレクタに戻る

$("#ii") .find("ul") .addClass("ulClass") .end() // ここで、$("#ii")に戻る .find("li") .addClass("liClass") ;

closest:直近の祖先要素を取得

簡単に説明すると、parents() で見つかった要素のうちで1つ目を返す、という意味なのですが、parents()とは若干異なる点がある。 /* * 同じ結果 */ $(".item-1").closest("ul").attr("class"); // => "level-3" $(".item-1").parents("ul").first().attr("cl…

基準となるHTML

<ul id="one" class="level-1"> <li class="item-i">I</li> <li id="ii" class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li></ul>

小技集

指定した要素を持つ要素を表すセレクタ

// <tr>...<td class="selected">...</tr> というような<tr>を指定するセレクタ $("table > tbody > tr:has(td.selected)"); // 逆に<tr>...<td class="selected">...</tr> ではない<tr>を指定するセレクタ $("table > tbody > tr:not(:has(td.selected))"); // 逆に<tr>...<td class="selected">...</tr> ではなく、且つ // <tr class="last">でもない<tr>を指定するセレクタ $(…</tr></tr></tr></tr>