暮らし window.nameによるクロスドメイン通信 - snippets from shinichitomita’s journal
Array#mapなどを使う時、配列の要素に対して要素のメソッドを適用したいことがよくあるけど、普通はこう書かなきゃいけない。 [1, 2, 3, 4, 5].map(function (n) { return n.toString() }); こう書きたい。 [1, 2, 3, 4, 5].map(expand.toString()); // expandが1, 2, 3, 4, 5に置換されるようなイメージ 下のようにすれば、単にメソッドを適用したい時にいちいち無名関数を書かなくてよくなる。 var expand = { __noSuchMethod__: function __noSuchMethod__(prop, args) function (parent) parent[prop].apply(parent, args) }; "__defineGetter__ __defi
サンプルコード (HTML) 2つの div 要素を配置し、一方をドラッグ元、もう一方をドロップ先とする。 ドラッグ元となる div 要素には、「draggable=”true”」属性をセットしなければならない。ただし、リンク(a 要素)や画像 (img 要素)などは、「draggable=”true”」を指定しなくても自動的にドラッグ可能となる。 ドラッグ元の要素には ondragstart, ondrag, ondragend の3つのイベントハンドラを追加し、ドロップ先の要素には ondragenter, ondragover, ondragleave, ondrop の4つのイベントハンドラを追加する。ただし、必要最低限のドラッグ&ドロップを実装するのであれば、 ondrag, ondragend, ondragleave は省略しても問題ない。 <html> <head> <ti
以下、郷田ほづみの声でお読みください。 オレの名は「ジェイ・スクリプト」。20世紀最末期の「第一次ブラウザ戦争」でエース部隊に徴用され、最前線で殺戮を繰り広げた。オレたちに課せられた課題は重大だった。相手方ブラウザの殲滅。オレたちはマイクロソフト帝国の最新鋭上陸艦「IE4」に搭載され、次から次へとコードを実行した。戦いは熾烈を極めた。オレたちはどんな汚いコードでも動いた。カーソルをクマさんに変える。アイコンを点滅させる。今日のお知らせをポップアップさせる。世界時計をスクロール表示させる。それが果たして本当にそのウェブページに必要なユーザビリティなのかを問うこともなかった。しかしいつしかオレたちは気づいた。敵艦「NN4」に搭載されているのもオレたちとまったく同じスクリプトなのだと。やがてオレたちが属する帝国が領土のほぼ九割を制圧するに至り、戦争は膠着状態にはいった。敵国は壊滅されたかに見えた
GM_xmlhttpRequestはresponseXMLを返してくれない。 DOMを作ってくれない、ということ(作ってくれなくていいんだけど)。 xpathするにはDOMを作る処理が必要になる。 DOMParser使うとか、適当なelementのinnerHTMLに突っ込んだりする。 そのときの処理時間がそれなりにかかるので、正規表現とかでひょいひょいパースするほうが早く終わるケースが多いような気がする。 だけど正規表現だと読みにくくてつかれてしまうので、例えばこんな感じの関数でも定義しておけばそれなりに読みやすくなりそうだしそれなりに速いし、ってことになるかなぁ、どうだろう。 function getTags(html, tagName, className){ var cls = ""; if(className){ cls = "[^>]*?class=\"" + classNam
「http://d.hatena.ne.jp/brazil/20070420/1177060289」でFirefox専用の第二引数に環境の指定をとるevalの使い方について説明されています。その元はこちら「http://www.tom.sfc.keio.ac.jp/~sakai/d/?date=20070414#p02」で、僕もこれを見たときに初めてしりました。そのころ僕はグリモンのスクリプトをいじっていたので、ちょっと気になっていくつか試してみて、ネタ元のページに以下のようなブクマコメントをしました。 evalの第2引数しらなかった。これを応用すると、GreasemonkeyでusafeWindow.xxx() とする場合、xxx内部からeval("GM_xmlhttpRequest", arguments.callee.caller)でGM_xmlhttpRequestが取得されてして
といっても、この内容は、ソースコードをみてるわけでもなく、リリースされてる情報や、Chromeのアプリを触ってみて、実装を推測してみたもので、あくまでも想像です。あしからず。 という、お約束の前置きをしつつ、まず、エンジンについては、リリースではWebKitベースにv8というJavaScriptのエンジンを搭載してると言われてます。UserAgentをみると UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 ということで、AppleWebKit/525.13ということはSafari3.1ベースのWebKitが採用されてることがわかります。(Safari3.1.1はAppleWe
Copyright (C) Mainichi Communications Inc. All rights reserved. 掲載記事の無断転載を禁じます
nanto_vi (TOYAMA Nao) 自己紹介 外山真 (とやまなお) a.k.a. nanto_vi (なんと) http://www.ne.jp/asahi/nanto/moon/ http://nanto.asablo.jp/blog/ 肩書き: 学生 Not in Education, Employment or Training E4Xとは? ECMAScript for XML ECMAScriptにネイティブXMLサポートを追加 ネイティブ → Date, Array and etc. Firefox 1.5/JavaScript 1.6で実装 型 XML型 DOM Nodeに相当 属性・テキストノードなども含む XMLList型 DOM NodeList/DocumentFragmentに相当 1項目のXMLListはXMLとして扱える XML/XMLListコンスト
E4X、XMLオブジェクトをDOMのElementに変換する JavaScript 前は、適当なspan要素のinnerHTMLに入れて変換してたんだけど、tr要素がうまくいかなかったので書き直した。 function xml2dom(xml){ var elm = document.createElement('table'); elm.innerHTML = xml.toXMLString(); return elm.firstChild.tagName.toLowerCase()=='tbody'? elm.firstChild.firstChild : elm.firstChild; } こんな感じに使います。 table.appendChild(xml2dom(<tr> <td>値</td> <td>1000</td> </tr>)); Permalink | コメント(0) |
ごうだまりぽです。作ったモノとか拾った知識とかひねり出した知恵とかをさらしてます。読むと価値観が360度変わること請け合い! << 2008/08/ 1 2 3 4 5 6 7 8 9 10 11 1. 「電話をしないで下さい」という演説 12 1. ストリートビュー、もうちょっと工夫してほしいなぁー。 13 14 1. もっと高精細画像でグリグリしたいよね! 15 1. ナイス節約 16 17 18 19 20 1. 汎用ポップアップ Greasemonkey "PopTip" を作ったよ。 21 22 1. PopTip のパッチをいただきました、超うれしい! 23 24 25 26 27 28 29 30 1. 「この作品、あの作品に似てるよね」には、二種類ある 31 >> ■ [web]汎用ポップアップ Greasemonkey "PopTip" を作ったよ。こんにち
最近の中学生のはじめてのプログラミング言語がJavaScriptだったりするこの時代、最も使いやすいJavaScriptの実行環境であるFirebugは現代のコマンドラインです。UNIXコマンドラインでgrepやuniqを使って、日常の細々した処理を行うのと同じようにFirebugとjavascriptを使いこなせると、日常作業のちょっとしたことをさくっとこなすことができます。ちょっとした作業だから手作業でやってもいいけど自動でやればミスったりしないし、気分的には楽なので自動でやりたい、という作業がけっこうないでしょうか。例えば、ページの中の特定の部分の文字列をリストにしてテキストファイルに保存したい、とか。 そこで今回は私が普段よくやっている単純作業をFirebug+javascriptでさくっとかたづける方法を2回にわけてご紹介します。 ページの中からテキストや属性の値を拾う ページの
随時更新 公式ドキュメント Firebug Console API http://getfirebug.com/commandline.html 気になったところ $$(selector) 複雑なCSSセレクタでなければjQueryの$関数の変わりとして使える感じ。 dirxml(node) outerHTML相当のHTMLを出してくれる感じ $$(selector)と組み合わせると便利そう。 inspect(object[, tabName]) 指定したオブジェクトを指定したタブで表示できる。特定要素をHTMLタブで表示させる時、「inspect($$('table#some-id td')[0],'html');」みたいにできる。今まで、「console.log($$('table#tab td')[0]);」を実行してconsoleタブに表示させた後、そこをクリックみたいにやっていた
Firefoxのみ。 >>> for (var i in KeyEvent) console.log(KeyEvent[i], i); 3 DOM_VK_CANCEL 6 DOM_VK_HELP 8 DOM_VK_BACK_SPACE 9 DOM_VK_TAB 12 DOM_VK_CLEAR 13 DOM_VK_RETURN 14 DOM_VK_ENTER 16 DOM_VK_SHIFT 17 DOM_VK_CONTROL 18 DOM_VK_ALT 19 DOM_VK_PAUSE 20 DOM_VK_CAPS_LOCK 27 DOM_VK_ESCAPE 32 DOM_VK_SPACE 33 DOM_VK_PAGE_UP 34 DOM_VK_PAGE_DOWN 35 DOM_VK_END 36 DOM_VK_HOME 37 DOM_VK_LEFT 38 DOM_VK_UP 39 DOM_V
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く