htsign's blog

ノンジャンルで書くつもりだけど技術系が多いんじゃないかと思います

JavaScript

Wandbox のエディタ設定を言語ごとに保存して自動で切り替えする UserScript

表題の通り。 Wandbox さん非常に便利なんですが、言語を切り替えてもエディタ設定は切り替わらないんですよね。 例えば F# はタブ文字をインデントに使えませんが、Go はタブ文字でのインデントを推奨しています。 これら言語を切り替えるときに設定も都度…

InoReader 向けに、はてブ integration を追加する UserScript

こんな感じになります。 「動けばいい」をモットーにクソ雑実装。 暇すぎて他にすることなくなったらリファクタリングする可能性が微粒子レベルで存在します。 gist.github.com

Promise を再帰させるとどうなるか

ただの興味本位です。 以下のコードを各環境で動かしていきます。 const p = n => new Promise(resolve => { console.log(n); resolve(p(n + 1)); }); p(1); なるべく公平を期すため、ブラウザの場合は about:blank にて実行します。 環境 PC1: 種別 詳細 OS…

JScript(not JavaScript)のArrayに対するメソッド群を追加する超単純なポリフィル

今さらこんなコードを書くこと自体恥ずべきことだと思うのだけど、勤務先の業務システムがJSPで実装されており、クライアントサイドはレガシーなIEが想定されています(嘆かわしいですが、よくある光景ですね…) そしてこれまたよくある光景なのですが、秘伝…

はてブのコメントにつけたスターを見易くするグリモンスクリプトがはてブリニューアルにつき動かなくなったので修正しました。

表題の通り。 gist.github.com

はてブ見ててどのコメントにスター付けたかよく忘れるので

GreaseMonkeyスクリプトを書きました。 gist.github.com 使うと自分が付けた星は点滅するようになります。 以上。

全てのフレームを対象にするには

某大手工業系企業の新規開発プロジェクトに参画しているのですが、非常に悲しいことに社内ポータルが未だにフレームを使用したサイトなのです。 フレームを使うと容易にペインで分けたサイトを構築できるため、実用重視のエンタープライズ界隈で重宝されるの…

リンク化スクリプト

かねてからHatena::Let で公開 *1 していて、個人的にもかなり使っているスクリプトをGreaseMonkey用に書き直したのでそれも公開してみます。 https://gist.github.com/htsign/5eed5473a9e75c7c45f3a5571d7d0803/raw/convertTextToLink.user.js GreaseMonkey…

以後は特に指定のない限りJSはES6記法で書いていこうと思います。

Intlオブジェクトというものを知りました。 国際化表記における各種変換を取りまとめるそこそこ大規模なオブジェクトらしい。 Collator DateTimeFormat NumberFormatの3つのサブオブジェクトを持つ模様。 それぞれインスタンス化して使用するっぽい。 (() =>…

Microsoft Edge (Windows 10 Mobile) のUser-Agent

なかなかすごいことになっています。 どこかの記事(確かスラド辺り)で読んだことありますが、WebKitと同じ挙動を示すようにしたとかなんとか。Lumia 950で確認しました。 Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWeb…

BookLiveで今まで使ってきた金額を出すスクリプト書いた

いやー久しぶりにJavaScript書いたわー。 (function(d){var s=d.createElement("script");s.src="//dl.dropboxusercontent.com/u/414379/www/BookLivePaid/script.js";d.body.appendChild(s)})(document) 一時期Amazon.co.jpで使った額を調べるスクリプトが…

今更Brainf*ckインタプリタ

何番煎じだよって感じのネタ。 まぁ、JavaScriptの練習ですね。https://dl.dropboxusercontent.com/u/414379/www/brainf_ck/brainf_ckInterpreter.html素地自体はあっさり作れたんですが、細かいところをアレも気になるコレも気になるってな感じでちょこちょ…

IEスキーとして一言物申したい

Web開発に必携の「Google Chrome デベロッパーツール」の便利ワザ10個まとめ*二十歳街道まっしぐら を読んで、うん!WebkitのDevTools便利だよね!でもそれほとんどIE11のF12 開発者ツール(以下、開発者ツール)でもできるよ!!って言いたかった。 わざわ…

DOM弄り

仕事中息抜きに書いてた。 文書の元々のソースコードと実際の表示が違うというのをやってみたかった。ちなみに文書を読み込んだ時点で文書型は決まってしまうので、あとからDOCTYPE書き換えても意味ないです。https://dl.dropboxusercontent.com/u/414379/ww…

スーパーpre記法で書いたコード部分に行番号を出すようにした

こんなコードをフッタに入れた。 <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> <script> jQuery(function($){ $("pre.code").each(function(){ var df = document.createDocumentFragment(); var ol = $('<ol>').appendTo(df); $.each($(this).html().split("\n").filter(function(e, i, arr){ return i !== arr.…</ol>

IEの開発者コンソールで見るテキストノードについて

IEの開発者コンソールで var textNodeIterator = document.createNodeIterator( document, NodeFilter.SHOW_TEXT, function(node){ return /^\s*$/.test(node.textContent) ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP; }, false); textNodeIterat…

Ancia向けのCSSエディタ書きました

まだ中途半端な実装だし暇があればまだ改良するつもりだけど、ひとまず公開。 ここに置いておきます。

UserExtension for Ancia

以下のスクリプトは軽量Webブラウザ「Ancia(アンシア)」向けのものです。 公式サイト: 名称未決定 - FrontPage 特定のURLで自動的に発動するタイプ nicosearch.jsinstall2013/12/04 niconicoの検索窓にサジェスト機能を付与します。 visibleExtIcon.jsinst…

Surface重量計算機

ありそうでなかったっぽい(もしかしたら検索力不足かも)ので作りました。 自分が調べたかったので、そのついでです。 (function(global){ var catalogue = [ { name: "Surface RT", type: "gen1", weight: 680 }, { name: "Surface Pro", type: "gen1", we…

DOMParser と XMLSerializer

DOMParserは覚えてるけどXMLSerializerをしょっちゅう忘れちゃうのでメモ。 var parser, serializer; var input, output; var dom; input = '<div id="test"><p>hogehoge</p></div>'; parser = new DOMParser(); try { dom = parser.parseFromString(input, "text/html").getElementById(…

テキストをパースして要素に追加する処理比較

有名なのはinnerHTMLですね。 ただ、これ以外にもテキストを評価してDOMツリーに追加する方法がありますので、今回はこれをやってみました。単純にループで同じメソッドおよびプロパティ操作をしているだけです。 試行回数は1000回ですが、これはinnerHTMLの…

はてなダイアリーでキーワードポップアップ

Greasemonkey用スクリプト「キーワードポップアップ」の配布について - はてなダイアリー日記ずいぶん昔の記事ですが、はてなさんはこんなの出してたんですね。 これを他のブラウザでも動くようにちょちょいと改造しましたよっていうのが今回のエントリ。 詳…

マルチメディア要素へのリンクのクリックイベントに<audio>や<video>なウィンドウをポップアップする機能をオーバーライドするブックマークレット

たぶんこれで完成形。比較的新しいAPIをフル活用しているので、動かなかったらそんなブラウザを使っている自分が悪いと思ってください。 一応IE10とChrome26で動作を確認しています。 Firefox20ではちょっと確認した限り動作しませんでした。まぁFirefoxはク…

MIMEタイプがaudio/xxxやvideo/xxxなときにやをどうにかこうにかするスクリプトを改造した

以前書いたのは<a>の直後にエレメントを追加して直接ページ上で再生するやつだったけど、今回のはwindow.openを使って子ウィンドウを作るタイプにした。こっちの方がスタイルシートの影響範囲をいちいち考えなくて済むから楽かもしれない。audio/xxxやvideo/xxx</a>…

MIMEタイプが audio/xxx か video/xxx なファイルをで直接参照していた場合にやを直後に追加するスクリプト

あっちの界隈でよくあるADV*1なんかだと、公式サイトのキャラ紹介にmp3なファイルが直接置かれている場合が少なくありません。 特にIEさんやFxさんはこの手のものに出会うと、デフォルトでは一旦DLしてローカルの別のアプリケーションで再生する、という挙動…

【修正版】httpやttpやtpなリンクのないURLにリンクを付けるありきたりなスクリプトを回りくどいコードで書いた

前回載せたスクリプトのバグ修正が完了したので再掲。原因はなんとなくだけど検討ついたので、とりあえず書き換えてみたら見事正常に機能するようになりました。 while ((regRes = pattern.exec(self.textContent)) !== null) { var a = document.createElem…

httpやttpやtpなリンクのないURLにリンクを付けるありきたりなスクリプトを回りくどいコードで書いた

主に自分で使う用に。 よく出回ってるようなコードは "簡素だけどDOM標準は無視" というのが多かった(大体innerHTMLをreplaceしてる)ので、ならばと自分で書きました。 (function(){ // Rangeが使えなければ意味が無いので、ここで一旦判定をしています。 …

一部の記号を使わずにゾンビウィンドウを作ってみる

今日、仕事でWindowsCEを搭載した電話機を触ってた。 ブラウザ機能があって、IE5.5か6相当のレンダリング機能を有したWeb体験を提供してくれる。で、筐体が電話機なもんだからキー入力がとても辛い。ガラケーよりキツい。 その上記号が全然打てない。 具体的…

JavaScriptだけでUser-Agentを偽装してWebページを取得する

初めに、IE9以上でしか動きません。 しかもバグ持ちで、ページによっては画面が真っ白になることがあります。 同じスクリプトを2回実行すると直る可能性あり。ちなみに Google News でテストしました。ということで、スクリプトです。 (function(){ if (docu…

がある場合の対処

超適当に書いた。 下のコードに特に意味はない。 (function(wnd){ var frms = wnd.frames || wnd.document.frames, len = frms.length; if (len>=1) { for (var i=0; i