This domain may be for sale!
先日の「HTMLの暴走(meltdown3)」においてJavaScript側で使った技の解説です。 通常JavaScriptで操作可能なHTMLの対象はタグ付けされた要素です。テキストであればPタグなどなんらかのタグで囲われた一連の文字列が対象になります。にもかかわらず「HTMLの暴走」では1文字ずつ操作しています。 どうやっているのか? 一文字ずつタグで囲ってるんです。実は。 例えば次の様に表示されている部分があったとします。 これを一文字ずつタグで囲った場合の状態を分かりやすく赤枠を付けると次の様になります。 こんな感じで一文字ずつタグ付けし、それぞれのタグの座標を計算して対応しているのです。 実際に使ったタグはSPANなどではなく、KZMというオレオレタグです。一般的なタグはデフォルトスタイルやCSSの影響がありえるため、適当なタグを作って対応しています。 HTML(XHTML)の定
This topic shows how to call managed code from JavaScript in a Web page that includes the Silverlight plug-in. This gives client script access to the extensive .NET Framework features that are available in managed code, without requiring a round trip to the Web server. Using client script to call managed code in a Silverlight-based application involves the following tasks: Handling the Startup eve
前回のネタ↓になんの反応も無かったので、だぶん誰も興味がないんだろうけど・・・orz、まだ続ける。 SilverlightにjQueryのパワーを - Architect Life SilverlightからJavaScriptの関数が呼び出せる事は前回まででご承知の通り。 例えば以下のようなJavaScript関数がSilverlightコントロールをホストするHTMLで定義されている(もしくはincludeされている)とする。 function print(msg) { alert(msg); } この関数をSilverlight側から呼び出す場合、以下のようにする。 HtmlPage.Window.Invoke("print", "Hello, World"); こうすると「print」というJavaScript関数に「Hello, World」という文字列が引数として渡されて呼び出
FastladderよりLDRのほうが遅いのをなんとかしたいかも - by edvakf in hatena この記事の続き。前とはちょっと違う方向性で。 LDR/Fastladderは起動がちょっともたつくのが難点なのだが、その理由は、フィード一覧を取得するまでに個人設定を読み込んだりと色々待たなければならないことが多いためだ。 UserJS で設定を先に読んでおく 今まではこんな UserJS を使って、あらかじめ保存しておいた個人設定を読ませることにして (さらに、最初に右部分に開くガイドページを消してしまって) 高速化をしていた。 // ==UserScript== // @include http://fastladder.com/reader/ // @include http://reader.livedoor.com/reader/* // ==/UserScript==
一応前回の続きみたいなもの。 LDR/Fastladderの各記事に何かをするUserJSを書くとき - by edvakf in hatena というか掘り下げ。 おさらい 前作った表。LDR/Fastladder (と書くのが面倒なので以後は LDR とだけ書く) の各記事を弄る方法。 タイミング 特徴 柔軟性 COMPLATE_PRINTFEED 未完。早く作って。 極めて高そう AFTER_PRINTFEED DOM を弄るのが重そうだし、実際にはこのタイミングでは全部のフィードが表示されていないため、setTimeout などで複数回実行しないといけない。 高い entry_widget 将来の仕様変更に左右されにくい。 どちらとも言えない (違う! これが今日の本題) BEFORE_PRINTFEED DOM ではなく文字列操作なので気分はラクだけど、同じフィードを何度も表示す
HJS - Haskell Javascript Parser and Interpreter Current Status - March 2007 Most program fragments can be parsed. This includes a Haskell in Javascript example, Yhc/Javascript, and JS implemented in JS files, Narcissus A smaller set of program fragments can be run. This includes a Javascript inheritance framework Working toward running the YCR2JS and Narcissus files. Current version is available f
IE8からwindow.toStaticHTML()メソッドが追加されました。引数に与えられたHTMLの断片からscriptタグや、onclick属性などのDynamic HTMLの要素を削除するためのメソッドです。 XDomainRequestのレスポンスに、意図しないscriptタグなどが入ってきたときにまずいことにならないようにそれを削除する用途で利用できます。 toStaticHTMLの利用方法 HTMLStr = "Hello<script>alert('foo');</"+"script> World!!"; alert(window.toStaticHTML(HTMLStr)); // Hello World!! alert(toStaticHTML(HTMLStr)); // Hello World!! toStaticHTMLの実行結果 例:その1 <span oncli
addEventListenerの第二引数は、関数以外にも、handleEventをメソッドとして持ったオブジェクトも渡すことが出来る。 window.addEventListener("click", { handleEvent: function (e) { console.log(e); } }, false); また、この仕様を利用すると、 ({ run: function () { window.addEventListener("click", this, false); this.counter = 0; }, handleEvent: function () { this.counter++ if (this.counter < 3) alert(this.counter + "clicked!"); else this.destroy(); }, destroy: fun
getComputedStyle とは!? ある要素にどんなスタイルが当たっているかを計算してくれる。便利な関数。 使いかたはめっちゃ簡単! var style = getComputedStyle(element, ''); alert(style.fontSize); // 14px alert(style.color); // rgb(0, 0, 0) ちなみに第二引数は疑似要素の style を取りたい場合に使います。通常は空文字列でいい。 でも、 getComputedStyle はこのままでは IE, Safari では動かない。 Safari では window(グローバル領域) に getComputedStyle は定義されてなくて、 document.defaultView だけに getComputedStyle が定義されている。 ちなみに、 Firefox, Op
zindexの最大値を取ってくる関数を作ってみた。 とりあえずモダンブラウザは全て動いてました。(IE7/Safari2-3/Firefox2/Opera9/NN7) コード var getLargestZIndex = function(){ var largestZIndex = 0; var defaultView = document.defaultView; var func = function(tagname){ var elems = document.getElementsByTagName(tagname), len=elems.length; for(var i=0; i<len; i++){ var elem = elems[i]; var zIndex = elem.style.zIndex; if (!zIndex) { var css = elem.curre
chaika のスレッド表示の負荷をおさえる実験で使っている方法で、元ソースは Mozmill 。 副作用がありそうでまだ試験中だけど、Piro さんが JavaScriptでsleepしたい、を実現する方法(require JavaScript 1.7) で似たようなことをしていたのでメモとして紹介。 function sleep(aWait) { var timer = { timeup: false }; var interval = window.setInterval(function(){ timer.timeup = true; }, aWait); var thread = Cc["@mozilla.org/thread-manager;1"].getService().mainThread; while(!timer.timeup){ thread.processNext
サンプルコード (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
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く