【jQuery】 jquery.simplePopup 書き直し

【2015年8月26日 ver2.0.9 更新】

仕事で使うために作ったプラグイン。

リンク先の画像などをブラウザ・ウィンドウ内にポップアップ表示するJavascriptライブラリはたくさんありますが、数が多すぎてどれがいいのか分からないのと、本体以外にCSSファイルや画像が必要であったりとややこしい。

最低限、一つのファイル(プラグイン本体のJSファイル)で設置できて、自分にとって使い勝手がいいものを勉強がてら作ってみよう、というのが4年前に作り出したきっかけ。

ドキュメント作成・備忘録も兼ねてアップ。
リンク先をウィンドウ内にポップアップ表示するjQueryプラグイン

jQuery.simplePopup-【jQueryプラグイン】

今さら・・・

ちょっと愚痴りです。

チョー昔に仕事でお世話になった人からのヘルプ依頼。
以前、Windows2000/XPで作ったとあるツールが、Windows7で動かない・・・と。いや、まぁ、あのツールは、デスクトップウィンドウをフックする(グローバルフック)するツールで、当然ながら、WindowsVista/7のエアロ・デスクトップコンポジションが有効なデスクトップでは動かないんすけどね。。。

どうにかしてくれないかと。いや、もうC++/WindowsAPIでプログラミングしてないし・・・。おまけに、Windows10でも動くようにしてくれと・・・。いや、無理(^^;;; そんな時間ない。

デスクトップのウィンドウハンドルを取得する方法は、Windowsのバージョンが上がるたびに変わるし・・・何より、デスクトップをフックするあんなツールは、今ではもう危険なプログラムと判断されてしまうし・・・システムツールは、調査して作るのに時間ばっかりかかるんで面倒なんすよねぇ。

なんて、話してたら、Windows7だけでも動くようになんないか?と(^_^;;;
んー、小遣い稼ぎに、まぁ、土日の休みにやってみるか。

とりあえず、リポジトリからプロトタイプ(テスト)として書いたソースをチェックアウトして、VS2013 Community Edition でビルドしてみる。

起動できたけど、当然、フックされない。どうやら、デスクトップに張り付いているリストビューコントロールのウィンドウハンドルを得るために書いた関数が失敗してNULLが返るみたい。ん、まぁ、当然だな。
この手のツールは、フック本体をDLLに配置しないといけないのと、フック本体に置いたコードのデバッグの仕方を知らない、ので困るんだな・・・

はぁ・・・。と愚痴ってみる。愚痴ったところで解決はしないんだが(^.^;;;

edge and user agent strings

Windows10にバンドルされている新しいブラウザ、Microsoft Edge(以下Edgeと略)。中身はともかく、さっそく今までPHPで作ったスクリプトでチェック・チェック(^^)

IEに依存している部分は少しあるのですが、ほとんど問題はない。が、一カ所、UAで分岐しているところだけ不具合発生orz

Edgeのユーザーエージェントは、Edgeで確認すると・・・

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240

ん? なにこれ?(;゚ロ゚)

Apple Webkitやら Chromeやら、うそつきブラウザやんけー。Microsoftの説明では、

他の最新のブラウザーや現代的な Web コンテンツとの相互運用性を最大限に高めることを目的としています。

だそうです。。。https://msdn.microsoft.com/ja-jp/library/hh869301(v=vs.85).aspx

なら、IEで分岐している所は要らないんだなー、と思いきや、Content-Dispositionヘッダで、filename にファイル名を指定する部分で日本語を使うと・・・ブラウザ側でファイル名の文字化け発生・・・。

相互運用できてねーじゃん!(゚Д゚) 結局やっぱり、IE分岐が必要やんけ!
ってことで、やっぱり、UserAgent文字列から「Edge」を検索して処理を分岐してあげるケースがあった。

とほほ。

“bk”フォルダと、”bk”拡張子の悪夢

ウェブサイトの保守作業で、編集する前に元のファイルを.bkと拡張子をつけて保存しておいたり、同じディレクトリにbkという名のディレクトリを掘ってそこにコピーしてたり、といった前近代的な保守手法がまかり通っている仕事場です。バックアップすることはとても重要だが、その手法があまりに前近代的なので、最近では呆れかえってものも言えない。

僕はかなり前からSubversion(今時はGitですけどね)を使ってソースファイルを管理しているので、こういうところを手伝うのはもう「苦痛」の一言に尽きる。口出しするとメンドくさくなるので、何も言わない。後ろ向きですね(_ _)

自分がイチからコーディングを担当したサイトではちゃんとsubversionで管理しているのですが、部署で管理する共有フォルダに置くときは、最新のチェックアウトをエクスポートしたものを置いてます。作った後の保守は別の人がやるので・・・。
そうすると、1か月もしたら、bkフォルダの山、bkファイルの山ができてしまう。

そのたびに、bkフォルダの山とbkファイルの山を取り除いて、別のバックアップ用フォルダ(笑)にバックアップファイルやフォルダを移動。

あ~あ、なんだかな・・・

これが困るのは、FTPでWebサーバーにアップロードするとき。
要らないファイル(bkフォルダとかbkファイル)がワンサカあるので、当然、手動で同期。結果、Webサーバー上に不要なファイル(主に使わなくなった画像とか)がいっぱいになって、時間が経てば、消していいものなのか、消してはいけないファイルなのかの判断ができなくなる。

ローカル側に常に最新の状態のファイルだけ置いておけば、サーバーを更新する時も、同期コマンドで一発なのにね。
なんで改善しようとしないんだろうなぁ。

Surface3 + Windows10

若干加筆。


先週、Windows10に早速アップグレードしました。僕的にはいい感じです。Windows8.1に感じた不満点がゴッソリなくなってます。

Windows10・・・というわけではないのですが、Surface3での気になって眠れない点。

  1. スリープから復帰すると、たまにスクリーンキーボードがどうやっても出てこない時がある。結果ログインもできず途方にくれる。
  2. スリープから復帰すると、高確率でMicroSDカードが認識せず、エクスプローラが固まる。カードを抜き差しすると正常に認識されるが、その後の挙動がめっちゃ不安定になる。メモリカードが粗悪なのかも。でもトランセンドだし・・・。
  3. スリープから復帰するとたまに全体的にモッサリになって再起動を余儀なくされることがある。
  4. Windows10にアップグレードしたらOnenoteの機能がなんか貧弱になった?Windows8.1のときはペンの太さとかもっと柔軟に選べたと思うんだけど・・・気のせい?ペンのUIが変わってちょっとガッカリ。
  5. デフォルトの動画閲覧アプリがとにかく使いにくい。
  6. サーフェスペンの利き手の設定はどこでやればいいの?
    bluetoothデバイスからSurfaceペンを削除したら設定に出てきました。ん?
  7. US配列版のタイプカバーを使って、ドライバをAX配列のものにして半角・全角トグルを右ALTに割り当てたんだけど・・・無視されるようになった。もうこの方法は駄目なの?
  8. Microsoft Edgeで、全画面表示はないの? タブ切替はWindows8.1の時の方がよかったなー。
  9. 解像度を150%にすると、フォントがモヤっとするのはなんでや?
  10. 「映画&テレビ」と表示されているアプリで、動画ファイルが入っているフォルダーを追加したが、一向に現れない。5分ほどあーでもない、こーでもない、としてたら突然現れた。
    しかも、後からその追加したフォルダに動画ファイルを追加しても全く更新されず一覧に出てこない。なんじゃこれ? 純正のアプリが「ふざけてんのか?」レベル。こんなアプリ作ったやつはとっととクビにしてくれ、レベル。
  11. 今更だが、ストアアプリに「使える」アプリが一つもない。っていうか、Officeアプリぐらいしか使えるものがない上、有料ときた。マイクロソフトが率先してアプリをガンガン作ってラインナップをそろえるべきじゃないのか? いくら開発者に作れ、作れ、と開発ツールを無料にしても、だめでしょ? やり方が違うでしょ? 作ってほしいのなら、まず、自分らが率先して使えるアプリを作らんかい!
  12. その他、眠れなくなる点は随時追加予定。。。

総じてSurface3+Windows10は、パソコンとして使う分には良い組み合わせだと思います。Windows7からのアップグレードならば、納得いくと思います。

ですが、Windows8/8.1を使い込んでいる人は暫く待った方がいいと思います。

そもそも

  1. ウェブ閲覧
  2. 動画の視聴
  3. テキストエディタでの編集作業
  4. スクリプト実行環境
  5. TeraTermの利用

の5つをどこでも出来るようにと、買ったSurface3ですが・・・スリープ復帰時の不安定さが気になって、夜も眠れません(..;)  ま、再起動すりゃ直るので、ま、いいか。

Windows10をしばらく触ってみて、・・Windowsって、こんな難しいOSだったのかな・・・と思った。とにかく、知らないと何もできない。調べないと使えない。調べるツールとして、左下にデカデカと検索ボックスはあるが、何を入れていいのかわからない。何か入れると「問題が発生しました」となる。なんじゃこれ?

長年Windowsを使ってきたけど、そろそろWindowsを使うのやめようかな。。。と一瞬思った。