タグ

ブックマーク / nanto.asablo.jp (11)

  • 誰が AutoPagerize を提供すべきか: Days on the Moon

    はてなブックマークがリニューアルしました。新しいはてなブックマークの個人ページにはページ自動ロード機能、通称 AutoPagerize 機能 (そう呼んでいる人がどれだけいるかは知りませんが) がついています。さて、AutoPagerize のような一般の Web ページにも適用しうる機能は誰が提供すべきでしょうか。ページの製作者でしょうか? ユーザー側が (ブラウザの拡張機能も含む) ユーザースクリプトとして導入すべきでしょうか? はたまたブラウザ側の仕事でしょうか? Twitter 上でそのことに関するやり取りがあったので少しまとめてみました。 hotchpotch bbeta ってデフォルトで AutoPagerize ついてるんだ。変なボタン押すと有効になるっぽい(haihai sakura sakura) (2008-11-10 11:50) os0x はてなブックマークβ の

    tyoro1210
    tyoro1210 2008/11/26
    Fast Forwardがロードでもコンテンツ追加でもなく、ページを下部に継ぎ足し(スクロールは共有で内部的には別のウィンドウ)てくれれば、視覚的にも挙動的にもある程度飲み込めそう。(ヘッダーデカいサイトだとウザいけど。
  • Kanasan.JS JavaScript 第 5 版読書会 #6: Days on the Moon

    Kanasan.JS JavaScript 第 5 版読書会 #6 に行ってきました (当日のチャットログ、参加者のブログ一覧)。今回は 14 章「ブラウザウィンドウの制御」から 16 章「CSS とダイナミック HTML」の途中まで読み進めました。 タイマーの仕様 (14.1、p. 282) setTimeout などのタイマーはブラウザが独自に実装したもので、標準化された仕様は存在しません。HTML 5 の草案には一応含まれているものの、独立した仕様に移すことが示唆されています。かといって、その場合の受け皿となるであろう W3C WebApps WG にもはっきりとした動きは見られず (Apple の人から高精度タイマーの提案が出ていましたが)、タイマーの標準化がどうなるのかよくわかりません。 Navigator オブジェクト (14.3.3, p. 289) Navigator オブ

  • 選択範囲のリンクを取得する: Days on the Moon

    Web ページの選択範囲に含まれるリンクを取得する方法として、Piro さんによる DOM 2 Range の compareBoundaryPoints メソッドを使ったやり方があります。これはリンクを探すのに DOM Core の機能を使って文書ツリーをたどっていますが、今現在ノードを探すといわれて真っ先に思いつくのは XPath でしょう。そこで、XPath を使って選択範囲のリンクを取得する方法を考えてみました。もちろん、選択範囲を扱う以上 DOM 2 Range も利用します。 基的な考え方 Range オブジェクトの取得 選択範囲の始点より前にあるリンクの数の取得 選択範囲の終点より前にあるリンクの取得 選択されているようには見えないリンクの除外 まとめ 基的な考え方 基的なアイデアは、選択範囲の終点より前にあるリンクで、選択範囲の始点より前にはないものが求めるリンクとい

  • ユーザースクリプトと製作者スクリプト: Days on the Moon

    あと、動作の細かな話ですが、オリジナルのAutoPagerizeとかぶってしまう(二重に読み込まれてしまう)ため、あえてa要素のrel属性(rel=”next”)を外して対処しています。 そろそろAutoPagerizeを標準的に導入していったらどうか - Liner Note 同じ機能を提供するユーザースクリプト (Greasemonkey スクリプト、Web ページに変更を加えるブラウザの拡張機能など) と製作者スクリプトがあった場合、その競合をどう解決するかということについて。最初は単にユーザースクリプト (ここでは特に AutoPagerize) を製作者スクリプトから無効化できるようにすればいいのかなと思いましたが、「3:14 - UserAgentの使い方について」を読んで考えを改めました。 ユーザースクリプトはブラウザの機能を補うものであり、ブラウザがもともと持っている機能と

  • JS オタが非オタの彼女に JavaScript 世界を軽く紹介するための 10 実装: Days on the Moon

    アニオタが非オタの彼女にアニメ世界を軽く紹介するための 10 が流行っているようで (◯◯オタが非オタの彼女に◯◯世界を紹介するための 10 まとめ)。えっ、もうブームは去った? まあそんなこと気にせず勝手にいっちゃいます。 軽く紹介するための 10 まあ、どのくらいの数の JS オタがそういう彼女をゲットできるかは別にして、「オタではまったくないんだが、しかし自分のオタ趣味を肯定的に黙認してくれて、その上で全く知らない JavaScript の世界とはなんなのか、ちょっとだけ好奇心持ってる」ような、ヲタの都合のいい妄想の中に出てきそうな彼女に、JavaScript のことを紹介するために見せるべき 10 実装を選んでみたいのだけれど。(要は「脱オタクファッションガイド」の正反対版だな。彼女に JavaScript を布教するのではなく相互のコミュニケーションの入口として) あくま

  • Kanasan.JS JavaScript 第 5 版読書会 #5: Days on the Moon

    Kanasan.JS JavaScript 第 5 版読書会 #5 に行ってきました (当日のチャットログ、参加者のブログ記事一覧)。今回からはいよいよ第 2 部、クライアントサイドスクリプトということで、13 章全体を読みました。 控えめな JavaScript JavaScript をどのように使うかの指針として、「控えめな JavaScript (unobtrusive JavaScript)」(WaSP DOM Scripting Task Force の声明文) というキーワードが挙げられています。 HTML マークアップと JavaScript コードを分離する。 正常に機能を停止する。ブラウザがある機能を持たない、もしくは JavaScript 自体が動作しない場合であっても、コンテンツが利用可能であるようにする。 アクセシビリティを低下させるのではなく、向上させる。 これは

    tyoro1210
    tyoro1210 2008/08/01
    うがー、俺まだ記事書けてないー。 やばすー。
  • ゆの in ECMAScript: Days on the Moon

    再度ゆの in language です。この間作ったのは AA 部分をプログラムの最後に置くことを優先したため、Firefox 3 以降などでないと実行できないという問題がありました。そこでこの問題を解消し、ECMAScript 第 3 版に準拠した処理系一般で (多分) 実行できるようにしてみました。ただし、ECMAScript では入出力が扱えないので、プログラム全体を評価した返り値を出力と考えることにします。 var X = { valueOf: function () { _ += "スケッチ"; delete this.valueOf; }, toString: function () { _ += "×365"; } }; ゆの.valueOf = function () { そんなことよりヱヴァンゲリヲン新劇場版 = _ + " " + eval(/".*?"/.exec(t

    tyoro1210
    tyoro1210 2008/07/23
    AA部分ってか、もはや日本語文。
  • Greasemonkey スクリプトとイベントで通信: Days on the Moon

    「Greasemonkeyスクリプトとウインドウ間で安全に通信する」にて、DOM イベントを用いた Web ページと Greasemonkey スクリプトとの通信について述べられています。そちらでは dispatchEvent メソッドの返り値による 1 bit 通信に触れていますが、やはりもっと自由にデータをやり取りしたいもの。そのためにはどのような方法があるでしょうか。 独自プロパティ 真っ先に思いつくのは、Web ページ側でイベントオブジェクトを作成した際、独自プロパティを追加する方法ですが、これはだめです。Greasemonkey スクリプト側ではイベントオブジェクトの独自プロパティを取得できません。event.wrappedJSObject.myProperty のように wrappedJSObject を介せば取得できますが、せっかく安全のため Firefox 側でラッパーに包

  • Function Expression Statements: Days on the Moon

    もじら組フォーラムで書いたことを再掲。以下 JavaScript といった場合 JScript などは含まないものとする。 JavaScript の function ECMAScript 3 で function キーワードが使われる構文には FunctionDeclaration と FunctionExpression があり、以下のように定義されている。 FunctionDeclaration function Identifier ( FormalParameterListopt ) { FunctionBody } FunctionExpression function Identifieropt ( FormalParameterListopt ) { FunctionBody } FunctionBody SourceElements Program SourceEleme

  • 行数の数え方: Days on the Moon

    行数を数えているのですが、コメント欄他のstr.split(/\n/).lengthはかっこいいけどoverkill 404 Blog Not Found:javascript - String.prototype.tr() released 当でしょうか? 実際に試してみましょう。変数 s が対象文字列を指しているものとします。 // charAt var lines = 1; for (var i = 0, n = s.length; i < n; i++) if (s.charAt(i) == "\n") lines++; // Array var lines = 1; var chars = s.split(""); for (var i = 0, n = chars.length; i < n; i++) if (chars[i] == "\n") lines++; // sp

  • Google の大規模データ処理: Days on the Moon

    Google の鵜飼文敏さんによる講演会「大規模データ処理を可能にする Google技術」に行ってきました。内容的には筑波大学で開かれたものと同じではないかと思います (「新ビジネスモデル」がそのままだったことなどから)。以下、上記記事に載っていないことを中心にメモから抜書きを。 此頃 Google にはやる物 現在 Google では Google の使命 (Google's mission is to organize the world's information and make it universally accessible and useful...) の早打ちが流行中。鵜飼さんは 50 秒程度、一番速い人は 30 秒程度。 Google の扱う情報 Google のいう「情報」はインターネット上のものだけに限らない (例: Google ブック検索)。 データセンター

  • 1