IT

【IE】fancybox起動後にServlet実行すると待機中表示がされない


IEでfancyboxをservletで呼び出したり、もしくはfancyboxからservletを呼び出したりすると、
昔で言うところの「砂時計」にあたる待機中表示が消える(待機中表示にならなくなる)。
特定のケースでは一時的に待機中表示が出たりもするが、これに関してもサーバ側の処理が終わる前に必ず消える。
fancyboxを使わない限りは、待機中表示は処理中であれば消えたりしないので、fancyboxを絡めた場合にだけどうもこうなってしまう。
ただ、Google ChromeとFire Foxはfancyboxがあってもちゃんと待機中表示してくれる。どうもIEだけのようだ。
うん、「また」なんだ。すまない。(´・ω・`)

まあ結構アレな(稀有な)使い方のようにも思えるから普通は起きないのかなあ~
でも俺起きて困ったんだよなあ~

※fancyboxは以下のVer1.3.4を使用しました
http://fancybox.net/home
※fancyboxを使った基本的な実装メモは以下を参考にしました
http://www.webdesignleaves.com/wp/jquery/1362/

 


 


【Java】Java1.6/SolarisのSSL通信バグ対応


SOAPで接続していた連携先のシステムに、ある日突然つながらなくなった。
SOAP連携の処理で接続しようとすると以下のようなJavaのStackTraceが出てくる。

…  
Caused by: java.lang.RuntimeException: Could not parse key values  
        at sun.security.pkcs11.P11Key$P11ECPublicKey.fetchValues(P11Key.java:1000)  
        at sun.security.pkcs11.P11Key$P11ECPublicKey.getW(P11Key.java:1021)  
        at com.sun.net.ssl.internal.ssl.ECDHClientKeyExchange.<init>(ECDHClientKeyExchange.java:40)  
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:779)  
        at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:238)  
        at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:593)  
        at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:529)  
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:958)  
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1203)  
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1230)  
        ... 89 more  
Caused by: java.io.IOException: extra data given to DerValue constructor  
        at sun.security.util.DerValue.init(DerValue.java:368)  
        at sun.security.util.DerValue.<init>(DerValue.java:277)  
        at sun.security.pkcs11.P11Key$P11ECPublicKey.fetchValues(P11Key.java:991)  
        ... 98 more  
…  


Java1.6/OS:Solaris。
ただ、なぜかJava1.6/OS:Windowsだと問題なく動く。(JavaのVerは同じでOSだけ違う)


【Java】Exceptionを強制throwさせて絶対そこで処理を中断させる


「とにかく何が何でもそこから先の処理にいってほしくない」という場合、
処理を強制的に中断させる目的で無条件にExceptionをthrowするようなコーディングするとコンパイルエラーになる。
ただこれにちょっと手を加えることで、誰がどう見ても明らかに絶対そこで落ちるにも関わらず
結果的に強制処理中断するロジックとして成立させることができる。


 


【Oracle】既存テーブルの項目定義流用してテーブルCreateだけする(WHERE句に0=1つける)


あるテーブルをつくる(Createする)とき、既存テーブルの項目定義情報をそのまま流用したいときがある。
そのとき、いちいち流用したいテーブルの項目定義調べてCreate文書くのが面倒だったりするので、
Select+Createの要領で、かつ「絶対に結果が返ってこない条件」を意図的に書くことで、
テーブルの項目定義を簡単に流用することができる。



【UNIX】teeコマンド

標準出力の内容を同時にファイルにも書きだすコマンドとして「tee」ってのがある。 標準出力+ログファイルに同じ情報を挙げたいという場合に便利。

【UNIX】変数文字列を扱う時のシングルクォーテーション有無について


正直個人的にあんまり区別つけずに使っていたがなんとなくわかってきたので備忘的にメモ

UNIXで適当な環境変数「var」を用意してそいつを使う場合、

var="aaa"  

echo $var ←①
echo ‘$var’ ←②



としたとき、①と②は結果が違う。

$ aaa	←①  
$ $var	←②  



ってなる。
つまり②は評価してほしい変数の中身ではなく評価式(っていうの?よくしらんが)がそのまま出る。
シングルクォーテーションで囲うと、中に変数を書こうが、書かれた文字列をそのまま扱うという動きをするのだ。
(今さらながら思い知った)


 


【javascript】文字列変数に改行をいれるとイカれる


javascriptの文字列変数にソースコード上でそれとわかるような形で改行いれるとページ全体がなんかおかしなことになる。
少なくとも、その変数使ってるjavascriptは動かなくなるようだ。
まあ普通に考えるとそういうもんだろう。
個人的な感覚でいうと、変数に固定の文字列埋め込むケースではコーディングミス(誤記、というか)以外に考えられらない。
だから普通発生しないはずである。
ただ実際に発生して困ったので備忘録として残す。


 


【HTML】input type=fileのC: akepath問題


input type="file"でファイルを選択すると、選択されたファイルが実際に位置しているローカルディスクのフルパスとは違うパス値として自動的にC:\fakepath\(選択したファイル名)に変換されることがある。
ググってみると昨今のブラウザのセキュリティ仕様で勝手にそういう風に変換されるらしい。
ただこれはブラウザ毎にも少し異なる動きをするし、ローカルのHTMLを直接ブラウザで開いた場合やサーバ上に存在するHTMLを開いた場合でも異なる。
実験して分かった範囲をまとめてみる。


 


【Java】Servletでファイルダウンロードさせる基本的な仕組みとファイル名に関するちょっとした実験


Servletでファイルダウンロードさせる実装のメモ
と、ダウンロードファイル名に関するちょっとした実験の結果

ダウンロードの動きを取るかどうかは、最終的にはブラウザに依存するようだが、
レスポンスヘッダ「Content-Disposition」に「attachment」をいれてやり、
かつファイルの種類によって適切なContent-typeを指定することで、
ダウンロードの動きになるようである。