JavaScript

「またOperaでググってる」とTwitterに投稿するスクリプト

自動でやるのはやっぱりマゾすぎるので、クリックするまで投稿しないバージョンを作りました。一番下に置いてあります。 クロスドメインなiframeのcontentWindowにアクセスできない (Opera) →というのは一部誤りでした - by edvakf in hatena の続き。os0x …

クロスドメインなiframeのcontentWindowにアクセスできない (Opera) →というのは一部誤りでした

またOperaでニコニコ動画みてる ver0.2 - 0x集積蔵 これのソースが読みやすくて応用が効きそうだったので遊んでたら、エラーが出て先に進めなかった。(ちなみにニコニコ動画のアカウントが無いので元の UserJS は試してません)エラーの内容はこれ。 name: Re…

Operaでdocument.evaluateするとき名前空間がnullだとエラーになるんだったら名前空間を動的に取得するのはやめる

自己引用。 そういうわけで自分の用途では、一度 html で XPath 結果を取ってみて、空集合なら上の resolver を使うようにした。 document.evaluateと名前空間がわからない - by edvakf in hatena これだと、名前空間がごちゃ混ぜになっている文書では正常に…

テーブルを一旦配列にしてからソート

この前の続き。自己引用。 opera:cache のキャッシュ一覧で、tr 要素が1万あるテーブルをソートしようと思ってるんだけど、直感的にやりすぎて遅かった。originalTable という変数にこんな感じの DocumentFragment を入れて、 opr000E8 2859 http://hoge.com…

ループ内での変数宣言

さらに正確を期して言うなら、この挙動は「関数内のローカル変数は、全て関数の先頭で宣言されたことになる」というルールによるものです。 JavaScriptの変数のスコープについて学ぶ - page3 - builder by ZDNet Japan こんなのを読んだので実験。 javascrip…

テーブルのソートって何が一番良いんだろう

opera:cache のキャッシュ一覧で、tr 要素が1万あるテーブルをソートしようと思ってるんだけど、直感的にやりすぎて遅かった。originalTable という変数にこんな感じの DocumentFragment を入れて、 opr000E8 2859 http://hoge.com/hoge.jpg opr000EH 56 htt…

DocumentFragmentを使っても1万ノードを一気に足すのはやめといたほうがいいらしい

opera:cache で確認できる自分のキャッシュファイルの数は10189個あった。それを、URL で絞り込んでインクリメンタルサーチ (書くまま検索) させる遊びをしているのだけど、入力欄が空白のときはテーブルの行を10189行全部追加しないといけないので、一気に…

document.links と document.getElementsByTagName('a')

document.links は area 要素も取ってこれるのと、結果が HTMLCollection なので namedItem メソッドが使えることの違いでいいのかな? Interface HTMLCollection document.links して namedItem するぐらいなら getElementById でいいじゃん。(name 属性は考…

window.operaのメソッド

javascript:var a=[];for(var b in window.opera){a.push(b)}alert(a.join('\n'));void(0); とかやると、こんな感じになる。 postError addEventListener removeEventListener defineMagicFunction defineMagicVariable getOverrideHistoryNavigationMode se…

window.opera.addEventListenerで付加した関数を消すとき

少し前からどうも解決できずに気になっていた問題がやっと解決した。 window.operaのイベントから呼び出された関数からじゃないとwindow.opera.removeEventListenerは使えないみたいです。 window.opera.removeEventListenerが曲者だった - ┐(´ー`)┌なJavaS…

ウェブページで用意されているショートカットを殺す

GitHubのショートカットを潰す - 素人がプログラミングを勉強するブログ ↑を見たので公開。Opera 限定だけど。 // ==UserScript== // @description Kill page shortcut // @namespace http://d.hatena.ne.jp/edvakf/ // @include http://* // ==/UserScript=…

instanceofが失敗する

テキストノードだと普通は instanceof Text とすると true が返ってくれるのだけど、エラーになることもあるんだ。 最速インターフェース研究会 ここで適当にノードを拾って instanceof Text をやろうとすると、以下のようなエラーが。(Opera の場合) JavaSc…

document.evaluateと名前空間がわからない

m.twitter.com/home で document.evaluate しようとしても、結果が空集合。 javascript:alert(document.evaluate('//a',document,null,7,null).snapshotLength);void(0); (第4引数の7というやつは "XPathResult.ORDERED_NODE_SNAPSHOT_TYPE" の代用) Introdu…

JavaScriptなんかでこそこそ広告ブロックしてみたけど

前回の続き。 Operaでけっこう広範囲に使える広告ブロックスクリプト - by edvakf in hatena いろいろやってみたが、結局面倒になってきた。 SCRIPT要素をブロック 下のスクリプト (拡張子は.jsで保存) を使えば、SCRIPT要素で実行するJavaScriptがすべて無…

Operaでけっこう広範囲に使える広告ブロックスクリプト

ここに書いてあるスクリプトはもしかしたら意図したものとは違う動きをするかもしれません。続きを書きました↓ JavaScriptなんかでこそこそ広告ブロックしてみたけど - by edvakf in hatena 実験中。拡張子は.user.jsじゃなくて.jsで保存。 (function(){ doc…

最初のテキストボックスにフォーカスするのはrange.select()でやったらウハウハになれた

メモ。 Karafuto Blog: テキストボックスにフォーカスを移す 上の記事では、DOM的に一番最初にある input type="text" 要素にフォーカスを当てるスクリプトを作っている。もちろん、一番最初に来るテキストボックスがページ内検索欄 (または類似用途のもの) …

Hit-a-Hintブックマークレット(さらに)改良版

createText 関数に誤りがあったのを修正。 Hit-a-Hintでヒント文字を指定できるようにした - by edvakf in hatena この前の記事についたコメント id:oryzan どうも。 以前edvakfさんがコメントされていた、 「ShiftとCtrlの押されているときはヒントを消さな…

Hit-a-Hintでヒント文字を指定できるようにした

時間ができたのでJavaScriptを弄ってる。この前のHit-a-Hintブックマークレットでは、ヒントに数字しか使えないのでちょっと不便だった。だって数字キーって押しにくいじゃん。 OperaでもVimperatorとHit-a-Hintぐらいできるよ - by edvakf in hatena Arc Co…

Fastladderへの登録画面の星をセレクトボックスに変える

なんだよこの星は、キーボードだと選択できないんだよ。ナメてんのか?というわけで選択欄に変えた。というか戻した。 ついでにデフォルトの選択肢を「5」にしておいた。 fastladder-default-rating.js // ==UserScript== // @name fastladder-default-rating…

opera_exを使わないでコピー強化ver.2

前に書いた、JavaScript+内部アクションでopera_exのようなことができないものかの続き。ページタイトルを取得 - openerこういうやり方もあった。「ブックマークに追加」ダイアログを出して、コピーしてからダイアログを消す、と。[追記]言うまでもないが、…

今更だけど、Tumblrがブックマーク付きメモ帳として使えそう

ソーシャルブックマークの欠点は、やはり全文検索がないことだ。(Yahooブックマークはまだ試す気になれない)全文ではなくても、膨大なブックマークから後で曖昧な言葉で検索できたらラクだろう。そのためにタグやらコメントやらつけるのだが、全文検索の利…

JavaScript+内部アクションでopera_exのようなことができないものか

はてなダイアリーに書くためにURLをコピーしたいのだが、そのとき[アドレス:title]のような形でコピーできたらいちいち後で整形しなくてもいいのでラクだ。しかし、opera_exはWinじゃないので無理。一応こういうの(opera_exのLinux版)もあるが。というか外…