Sleipnir2のUAスクリプトでjQueryを使う

今さらながら jQuery が便利なので

jQuery 自体は2〜3年位前から使ってはいまして。*1
慣れてきちゃうと素の JS で書くのかったりーなぁとなってくるわけです。

まずは Seahorese の場合は、JavaScriptSeahorseスクリプトなら script タグ生成して CDN から呼び出せばいいわけです。
例えばグリモン含めて動くスクリプトの場合はGreasemonkey で 超お手軽に jQuery を使うスニペット [Chrome 対応版] – OTCHY.NETを利用したことがあったかな。*2
で、SleipnirScript な Seahorseスクリプトならローカルに置いたファイルを読み込んで利用できるんですよね。*3

次にUAスクリプトでも何とか出来ないかなぁと考える訳です。
まぁ、こちらも script タグ作って CDN 呼び出しで行けるんでしょうけど、そのページで既に jQuery が使われていた場合の干渉対策とかバージョン違いの吸収とかが面倒だったので、
思い切ってUAスクリプトの中に入れることにしましたw

(function(){
	loadJQuery();var $=jQuery.noConflict(true);loadJQuery=void 0;
	
	// ここにコードを書く
	
function loadJQuery() {
// ここに jquery-X.Y.Z.min.js の中身をそのまま貼る
}
})();
  • 実際の記述量は少なくなると思いますが、当然スクリプト自体は無駄に大きくなりますw
  • jQuery のバージョンによっては動きません。
    • 例えば2系は動きません。
    • 1系もいくつか動かないバージョンがあります。
    • とはいえ1系の20131011現在の最新1.10.2と1.9系以前の最終1.8.3が動くので当面問題は無いかな。
  • SleipnirScript なのでイベントの追加は無理です*4

そういえば、うちで使ってるコードでは jQuery の最後の "window" 渡してるところを "_window" 渡してるんだけど何でだっけ?忘れちったw

スクリプトのサイズを小さくするためのネタに関してはあったりしますけど気が向いたらいずれまた。


あと、これよりいい方法あったら是非紹介してください。

Sleipnir4が沈黙して2ヶ月あまり

現時点での最新版 Sleipnir 4.3.2 およびその test1 が公開されたのが8月8日ですから2ヶ月を超えてしまいましたね。

cocoaさんのブログへのコメで*5

4の沈黙は私も気になるところ。
何か大き目のがくるのかなぁ。
ありそうなところだとスキン正式対応。
穴でスクリプト周り。
大穴でOperaが現状死んだ状態なのでメールクライアント統合でw(Twitterで誰かが開発垢に投げてたし)

とネタで書いたんですが*6
現実的なところだと Chrome 29 相当は地雷っぽかったので開発難航してるんでしょうね。
Chromium 派生(厳密には妥当でない表現の気がしますが)の中でもっとも Chromium に手を入れているブラウザの一つでしょうし。

まぁ、Sleipnir 3 以降に関しては*7そこまでの興味を持てておらず、 FUC および 2ch のスレまったく見てないんでそっちでは中の人がホントのトコを言及してるかもしれないですけどねw

IE11が心配

Windows 8.1 が10月17日つまり今週の木曜から提供開始されます。
それに標準搭載される IE11 の正式版も同時公開と目されます。
一応 IE10 は標準搭載の Win 8 発売から半年後に Win Vista/7 の正式版公開だったりもしましたけど、今回は Win 7 向けも Release Preview 出てるのでまぁ間違いないでしょう。たぶん。きっと。

Twitter とか他ブログのコメとかには書いてますけど、個人的には色々と不満点はあります。
特定のサイト開くと高確率で Sleipnir 2 がクラッシュするとか。*8
これ自体は以前のバージョンでも起こるんですが、開いたときは問題ないのにタブを閉じる時(JS切ろうとした時にも発生する)にクラッシュするような場合が出てきたので困りもの。
なぜかというと開いた瞬間にクラッシュならブラウザ再起動した後スクリプト切ってページを開くなり、別ブラウザに投げるなりすればいいんだけど閉じた時にクラッシュパターンだと再起動時に問題のタブも開かれてしまうので、再度クラッシュする確率が高いそれを閉じることができずリソースの無駄になるんですよね。
他にも Sleipnir 2 で一部のスクリプトなどで致命的になりそうな現象があるんで一人で戦々恐々しています。


しかも、観月の MS 定例アプデでちょっとやらかしてる臭いんですよねぇ。
問題なのは「Cumulative Security Update for Internet Explorer 11 Release Preview for Windows 7 (KB2879017)」です。
うちの環境だと IE11 および IE コンポーネントを利用しているソフトでクラッシュするようになりました。
で、検索してみると同様の症状の人がいるみたいです。
http://toro.2ch.net/test/read.cgi/win/1374800705/120-
まぁ、そのスレの >>122 のように問題ない人が多いんでしょうけど。
当てなきゃ問題なく、現にこの記事は IE11 DP 環境で書いてますがセキュリティ塞げるのにみすみす開けたままで使う気にはならないですね。
というわけで >>121 ではないですがこれから IE10 に戻します。

……というのを先週末に書いていて挙げるの忘れてました。*9
で、上記の通りIE10に戻しましたがここ数日特に問題は起きておらず。
IE11正式版が出たら再チャレンジしよう。

*1:それでもかなり遅めではあるんですけど

*2:同じotchyさん考案のJavaScript - ブックマークレットで jQuery を使う魔法の 210 文字 - Qiita [キータ]も参考にし組み合わせた方が良いかな

*3:例えば AutoPagerize for SeaHorse とか

*4:別口の ScriptControl 使う方法ならイベントの追加自体は可能です

*5:10月中旬になったのでcocoaさんのブログが閉鎖してしまいましたね。コメントもしましたが改めてお疲れ様でした。一応、今ならGoogleキャッシュで読めます。Internet Archivesには載っておらず残念

*6:その後調べたところ大穴のやつは公式垢の方にでしたw https://twitter.com/fenrir_official/status/339561523246686209

*7:スクリプトで遊べないなどあって

*8:JS切ると問題無いのでおそらくスクリプト周りで、発生率が100%じゃないところからその中でも広告のどれかだと踏んでるんだけどやる気が起きないので調べてはいないw

*9:それに伴い一部文言は修正しました