Hatena::ブログ(Diary)

IT戦記 このページをアンテナに追加 RSSフィード Twitter

2009-01-15

IE8 の DOM のプロトタイプと Getter/Setter API はどうなるか

ちょっと前に

Microsoft 公式に以下のような発表がありました。

Responding to Change: Updated Getter/Setter Syntax in IE8 RC 1 – IEBlog

また、以下のようなドキュメントも公開されています。

これらの内容での概要を自分なりにまとめてみます。

概略

要点は

ということです。

DOM オブジェクトプロトタイプが使えるようになる
// Element のプロトタイプに isElement というプロパティを作る。
Element.prototype.isElement = true;

// そうすると
// 要素に isElement というプロパティが出来る
alert(document.body.isElement); // true
alert(document.createElement('div').isElement); // true

// HTMLDocument のプロトタイプに hoge という関数を作る
HTMLDocument.prototype.hoge = function() {
    alert('fuga');
};

// そうすると
// document に hoge という関数が出来る
document.hoge(); // fuga
DOM オブジェクトに既存の Getter/Setter API が使えるようになる
// Element のプロトタイプに innerHTML Setter を取得する
var nativeInnerHTML = Element.prototype.__lookupSetter__('innerHTML');

// Element のプロトタイプに innerHTML Setter を設定する
Element.prototype.__defineSetter__('innerHTML', function(html) {
    alert(this.tagName + 'の innerHTML が設定されました!');
    return nativeInnerHTML.call(this, html);
});

// body の innerHTML に値を設定する
document.body.innerHTML = '<p>Hello, world!</p>'; // 「body の innerHTML が設定されました!」と表示される
DOM オブジェクトECMAScript 3.1 の Getter/Setter API(PropertyDescriptor)が使えるようになる
// Element のプロトタイプに innerHTML Setter を取得する
var nativeInnerHTML = Object.getOwnPropertyDescriptor(Element.prototype, 'innerHTML').setter;

// Element のプロトタイプに innerHTML Setter を設定する
Object.defineProperty(Element.prototype, 'innerHTML', {
    setter: function(html) {
        alert(this.tagName + 'の innerHTML が設定されました!');
        return nativeInnerHTML.call(this, html);
    }
});

// body の innerHTML に値を設定する
document.body.innerHTML = '<p>Hello, world!</p>'; // 「body の innerHTML が設定されました!」と表示される
DOM オブジェクト以外の Getter/Setter は出来ない
// 下記はエラーが発生する
Object.defineProperty(Object.prototype, 'hoge', { setter: function() { alert('fuga') } });  // Error!

以下を参照してください。

The first parameter (the object on which to attach the accessor) supports only DOM instances, interface objects and interface prototype objects in Internet Explorer 8.

Document Object Model Prototypes, Part 2

ただ、そのうち出来るようにしたい的なことはかかれていました。

当然、オブジェクトリテラル内で定義することは出来ないと思われます。

とりあえず

これで言いたいことは終わりなのですが、もうチョイ詳しいことも書いておきます。

Getter/Setter API の背景と流れ

Getter/Setter API に関しては、ちょっと複雑な経緯があるのでここまでの流れを紹介します。

  1. ECMAScript 3 の仕様が固まる。この時点で Setter/Getter API の仕様は存在しない
  2. Firefox が勝手に Getter/Setter API を実装(これが、さっき紹介した「既存の Getter/Setter API」)
  3. Safari, Opera もそれを追従
  4. IE8 Beta2 もそれを追従
  5. ECMAScript 3.1 で、新しく Getter/Setter の仕組み(PropertyDescriptor)およびその API が仕様化される
  6. IE8 では、既存の API を残しつつ、新しい API を実装することに決定(←イマココ!
  7. Mozilla, Opera, Apple, GoogleECMAScript 3.1 の仕様に同意しているので、この流れに追従するものと思われる。

こういう流れがあったんですね。

プロトタイプとは何か

これは、何回も書いていると思うのですが何回でも書きます!

プロトタイプとは複数オブジェクトの共通プロパティを持つオブジェクト

プロトタイプとは、複数のオブジェクトの共通プロパティを持つオブジェクトです。

たとえば、 document.body や document.documentElement や document.createElement('div') の共通プロパティを持っているのが Element.prototype というオブジェクトです。

以下の例をみてください。

var body = document.body;
var html = document.documentElement;
var div = document.createElement('div');

Element.prototype.hoge = 1;

alert(body.hoge); // 1
alert(html.hoge); // 1
alert(div.hoge); // 1

Element.prototype.hoge = 2;

alert(body.hoge); // 2
alert(html.hoge); // 2
alert(div.hoge); // 2

簡単ですよね。

これの、 Element.prototype が document.body や document.documentElement や document.createElement('div') のプロタイプです。

共通プロパティの代表はメソッド

この仕組みは主にメソッドで使われます。

たとえば、以下のように Element.prototypeメソッドを作ると body や div でも呼び出せるようになるのです。

var body = document.body;
var html = document.documentElement;
var div = document.createElement('div');

Element.prototype.sayTagName = function() { alert(this.tagName) };

body.sayTagName(); // BODY
html.sayTagName(); // HTML
div.sayTagName(); // DIV

たとえば、ブラウザの実装にもよりますが appendChild や removeChild などのメソッドプロトタイプで定義されています。

IE で「DOM オブジェクトプロトタイプを使えるようになる」とはどういうことなのか

今までの IE の特徴は

というところでした。

これが IE8 からは

という風になったのです。

それはどういうことか

標準仕様に従っていない部分がプロトタイプに局所化されたということになります。

ということは、 JavaScript を書く人はプロトタイプを標準準拠の API に書き換えてしまうことが出来るようになったのです。

たとえば、以下の記事のように IE に addEventListener を実装することが出来ます。

// Apply addEventListener to all the prototypes where it should be available.
HTMLDocument.prototype.addEventListener =
Element.prototype.addEventListener =
Window.prototype.addEventListener = function (type, fCallback, capture)
{
  var modtypeForIE = "on" + type;
  if (capture)
  {
    throw new Error("This implementation of addEventListener does not support the capture phase");
  }
  var nodeWithListener = this;
  this.attachEvent(modtypeForIE, function (e) {
    // Add some extensions directly to 'e' (the actual event instance)
    // Create the 'currentTarget' property (read-only)
    Object.defineProperty(e, 'currentTarget', {
      getter: function() {
         // 'nodeWithListener' as defined at the time the listener was added.
         return nodeWithListener;
      }
    });
    // Create the 'eventPhase' property (read-only)
    Object.defineProperty(e, 'eventPhase', {
      getter: function() {
        return (e.srcElement == nodeWithListener) ? 2 : 3; // "AT_TARGET" = 2, "BUBBLING_PHASE" = 3
      }
    });
    // Create a 'timeStamp' (a read-only Date object)
    var time = new Date(); // The current time when this anonymous function is called.
    Object.defineProperty(e, 'timeStamp', {
      getter: function() {
        return time;
      }
    });
    // Call the function handler callback originally provided...
    fCallback.call(nodeWithListener, e); // Re-bases 'this' to be correct for the callback.
  });
}

// Extend Event.prototype with a few of the W3C standard APIs on Event
// Add 'target' object (read-only)
Object.defineProperty(Event.prototype, 'target', {
  getter: function() {
    return this.srcElement;
  }
});
// Add 'stopPropagation' and 'preventDefault' methods
Event.prototype.stopPropagation = function () {
  this.cancelBubble = true;
};
Event.prototype.preventDefault = function () {
  this.returnValue = false;
};
Document Object Model Prototypes, Part 2

MSDN に書いてる暇があるなら!それを実装して出荷してくれよ!!!」という言葉はかみ締めておきましょう。

プロトタイプだけでは解決できない非互換

DOMプロパティには代入が特殊な意味を持つということが多々あります。

たとえば、

document.body.innerHTML = '<p>hoge</p><p>fuga</p><p>piyo</p>';

alert(document.body.childNodes.length); // 3

document.body.innerHTML = '<p>hoge</p><p>fuga</p>';

alert(document.body.childNodes.length); // 2

このように、代入すること自体に代入以外の意味があることが多々あるのです。

このようなプロパティに非互換がある場合は、プロトタイプがあるだけでは解決ができません。

どうしても、 Getter/Setter という仕組みが必要なのです。

そもそも Getter/Setter ってなんなのさ!

Getter/Setter とは、プロパティの代入や参照が発生したときに、指定した関数オブジェクトを呼び出す仕組みです。

たとえば、以下のようなものです。

var obj = {};

// hoge という Getter を作る
obj.__defineGetter__('hoge', function() { return 1 });

alert(obj.hoge); // 1

// hoge という Setter を作る
obj.__defineSetter__('hoge', function(v) { this._v = v; return v * 2 });

alert(obj.hoge = 2); // 4
alert(obj._v); // 2

既存の Getter/Setter API の詳細

Firefox, Safari, Opera で使える Getter/Setter API の詳細を説明します。

__defineGetter__

ゲッターを作ります。

document.body.__defineGetter__('hoge', function() {
    return 'fuga';
});

alert(document.body.hoge); // fuga
__defineSetter__

セッターを作ります。

document.body.__defineSetter__('hoge', function(v) {
    this.v = v * 2;
    return v;
});

var a = document.body.hoge = 2; // このようにしたときに a にはセッターが返した値が入る

返り値として、受け取った値を返すようにしておかないと式の値がおかしくなるので注意が必要です。

__lookupGetter__

ゲッターを探します。

var innerHTMLGetter = document.body.__lookupGetter__('innerHTML');

// innerHTML を参照したときと同じことができる
innerHTMLGetter.call(document.body);

このとき、 __lookupGetter__ はプロトタイプが持つゲッターも探してくれます。

__lookupSetter__

ゲッターを探します。

var innerHTMLSetter = document.body.__lookupSetter__('innerHTML');

// innerHTML に 'hoge' を代入したときと同じことができる
innerHTMLSetter.call(document.body, 'hoge');

同様に、 __lookupSetter__ はプロトタイプが持つゲッターも探してくれます。

オブジェクトリテラル中に定義

以下のような set/get キーワードを使って、オブジェクトリテラル中で定義することができます。

var hoge = {
    get a() { return this._a * 2 },
    set a(v) { this._a = v; return v } 
};

hoge.a = 1;
alert(hoge.a); // 2

プロトタイプと Getter/Setter API だけでは対応できない微妙な問題

プロトタイプと既存の Getter/Setter API があれば、ほとんどの非互換による問題は解決できるのですが、

に依存したコードが存在する場合は、既存の Getter/Setter API では対処することができません。

その代表的な例はオブジェクトハッシュとして使っている場合などです。

この微妙な問題を解決するためには、

というプロパティの属性を設定出来ることが望まれます。

ECMAScript 3.1 の PropertyDescriptor を使うと Getter/Setter を作ることと同時にこれらのプロパティの属性を設定することも出来るようになります。

ECMAScript 3.1 の PropertyDescriptor の詳細

ECMAScript 3.1 では Getter/Setter も、「削除可能か、書き換え可能か、 for in されるか」という属性も、プロパティの値もすべて PropertyDescriptor というもので扱われます。

つまり、プロパティの状態はすべて PropertyDescriptor を使って決めることができます。

この PropertyDescriptor についての詳細は、以前に記事を書いたのでそちらをごらんください。

(注:以下の記事執筆時点で flexible という名前だったプロパティに関しては、現時点で configurable という名前に変更されています。)

次の JavaScript の仕様はこうなる! ECMAScript 3.0 から 3.1 への変更点まとめ - IT戦記

allkanpousallkanpous 2013/06/15 10:18 https://twitter.com/akanpokayisya
威哥王:http://www.akanpo.net/product/299.html
中絶薬:http://www.akanpo.net/catalog/3.html
三便宝:http://www.akanpo.net/product/233.html
巨人倍増:http://www.akanpo.net/product/36.html
花痴:http://www.akanpo.net/product/109.html
紅蜘蛛:http://www.akanpo.net/product/111.html
媚薬:http://www.akanpo.net/catalog/60.html
三体牛鞭:http://www.akanpo.net/product/91.html
RU486:http://www.akanpo.net/product/232.html
精力剤:http://www.akanpo.net/product/57.html
精力剤:http://www.akanpo.net
五便宝:http://www.akanpo.net/product/381.html
福源春:http://www.akanpo.net/product/55.html
韓国痩身一号:http://www.akanpo.net/product/208.html
狼一号:http://www.akanpo.net/product/92.html
狼1号:http://www.akanpo.net/product/92.html
蟻力神:http://www.akanpo.net/product/154.html
三體牛鞭:http://www.akanpo.net/product/91.html
韓国痩身1号:http://www.akanpo.net/product/208.html
韓国痩身一号:http://www.akanpo.net/product/208.html
天天素:http://www.akanpo.net/product/251.html
男宝:http://www.akanpo.net/product/52.html
漢方薬:http://www.akanpo.net/catalog/2.html
避妊薬:http://www.akanpo.net/product/147.html
催淫カプセル:http://www.akanpo.net/product/339.html
催淫:http://www.akanpo.net/product/443.html
妻之友:http://www.akanpo.net/product/390.html
経口避妊薬:http://www.akanpo.net/product/282.html
早漏防止:http://www.akanpo.net/product/140.html
ペニス増大:http://www.akanpo.net/catalog/13.html
ED治療薬:http://www.akanpo.net/catalog/12.html
ダイエット薬:http://www.akanpo.net/product/14.html
漢方ダイエット:http://www.akanpo.net/catalog/4.html
三便宝:http://www.akanpo.net/product/383.html
三鞭粒:http://www.akanpo.net/product/441.html
三便宝:http://www.akanpo.net/product/233.html
ru486 個人輸入:http://www.akanpo.net/product/232.html
ru486 販売:http://www.akanpo.net/product/232.html
キョジンバイゾウ:http://www.akanpo.net/product/303.html
ビグレックス:http://www.akanpo.net/product/238.html
D10 媚薬:http://www.akanpo.net/product/315.html
イーリーシン:http://www.akanpo.net/product/154.html
さんべんぼう:http://www.akanpo.net/product/383.html
漢方 強精剤:http://www.akanpo.net/catalog/1.html
強精剤:http://www.akanpo.net/catalog/1.html
巨根カプセル:http://www.akanpo.net/product/50.html
きょくび:http://www.akanpo.net/product/221.html
超級脂肪燃焼弾:http://www.akanpo.net/product/406.html
曲美:http://www.akanpo.net/product/221.html
終極痩身カプセル:http://www.akanpo.net/product/434.html
VigRX Oil:http://www.akanpo.net/product/238.html
VigRX:http://www.akanpo.net/product/238.html
ビグレックス オイル:http://www.akanpo.net/product/238.html
福源春カプセル:http://www.akanpo.net/product/55.html
西班牙蒼蝿水:http://www.akanpo.net/product/314.html
男露888:http://www.akanpo.net/product/335.html
魔根:http://www.akanpo.net/product/87.html
美人豹:http://www.akanpo.net/product/223.html
法国性奴:http://www.akanpo.net/product/438.html
性霸2000:http://www.akanpo.net/product/309.html
絶對高潮カプセル:http://www.akanpo.net/product/339.html
絶對高潮:http://www.akanpo.net/product/340.html
男根増長素:http://www.akanpo.net/product/446.html
勃動力三體牛鞭:http://www.akanpo.net/product/91.html
イカオウ:http://www.akanpo.net/product/299.html
ウェイカワン:http://www.akanpo.net/product/299.html
巨人倍増 販売:http://www.akanpo.net/product/303.html
威哥王 販売:http://www.akanpo.net/product/299.html
三便宝 販売:http://www.akanpo.net/product/383.html
紅蜘蛛 通販:http://www.akanpo.net/product/111.html
紅蜘蛛 激安:http://www.akanpo.net/product/110.html
紅蜘蛛 液体:http://www.akanpo.net/product/110.html
威可王:http://www.akanpo.net/product/299.html
三便宝 激安:http://www.akanpo.net/product/233.html
三便宝 販売店:http://www.akanpo.net/product/383.html
威哥王三鞭粒:http://www.akanpo.net/product/440.html
曲美 正規品:http://www.akanpo.net/product/221.html
曲美 通販:http://www.akanpo.net/product/220.html
曲美 ダイエット:http://www.akanpo.net/product/220.html
曲美 本物:http://www.akanpo.net/product/220.html
勃起促進:http://www.akanpo.net/catalog/16.html
VVK:http://www.akanpo.net/product/97.html
性欲増強:http://www.akanpo.net/catalog/62.html
pronetil spray:http://www.akanpo.net/product/382.html
SPANISCHE FLIEGE:http://www.akanpo.net/product/125.html
蟻王:http://www.akanpo.net/product/59.html
花之欲:http://www.akanpo.net/product/128.html
蒼蝿水:http://www.akanpo.net/product/102.html
SEX DROPS:http://www.akanpo.net/product/99.html
三便宝カプセル:http://www.akanpo.net/product/233.html
きょくび:http://www.akanpo.net/product/221.html
ベニクモ:http://www.akanpo.net/product/111.html
新一粒神:http://www.akanpo.net/product/448.html
壮三天:http://www.akanpo.net/product/458.html
終極痩身:http://www.akanpo.net/product/434.html
日本秀身堂:http://www.akanpo.net/product/249.html
SUPER FAT BURNING:http://www.akanpo.net/product/406.html
FAT BURNING:http://www.akanpo.net/product/406.html
御秀堂:http://www.akanpo.net/product/150.html
痩身一号:http://www.akanpo.net/product/210.html
痩身1号:http://www.akanpo.net/product/209.html
v26:http://www.akanpo.net/product/445.html
v26 薬:http://www.akanpo.net/product/444.html
v26 カプセル:http://www.akanpo.net/product/445.html
v26 ダイエット:http://www.akanpo.net/product/445.html
ダイエット:http://www.akanpo.net/catalog/4.html
肥滿:http://www.akanpo.net/catalog/29.html
ED シアリス:http://www.akanpo.net/product/276.html
精力増強剤:http://www.akanpo.net/catalog/1.html
脂肪燃焼:http://www.akanpo.net/catalog/28.html
新陳代謝:http://www.akanpo.net/catalog/30.html
肥滿:http://www.akanpo.net/catalog/29.html
漢方精力剤:http://www.akanpo.net/catalog/1.html
漢方薬 通販:http://www.akanpo.net/catalog/2.html
Wenickman:http://www.akanpo.net/product/97.html
WENICKMAN:http://www.akanpo.net/product/284.html
ペニス増大:http://www.akanpo.net/catalog/13.html
アリ王:http://www.akanpo.net/product/59.html
ANT KING:http://www.akanpo.net/product/156.html
催情剤:http://www.akanpo.net/product/443.html
しんいちつぶしん:http://www.akanpo.net/product/448.html
ハナチ:http://www.akanpo.net/product/109.html
FAT BURNING:http://www.akanpo.net/product/407.html
ナンパオ:http://www.akanpo.net/product/52.html
プロコミルスプレー:http://www.akanpo.net/product/382.html
くらはちほう:http://www.akanpo.net/product/449.html
西班牙昆虫粉:http://www.akanpo.net/product/129.html
蔵八宝:http://www.akanpo.net/product/449.html
FLY D5:http://www.akanpo.net/product/102.html
D5 原液:http://www.akanpo.net/product/102.html
Xing霸:http://www.akanpo.net/product/309.html
媚薬蟻王:http://www.akanpo.net/product/59.html

allkanpousallkanpous 2013/06/15 10:21 https://twitter.com/akanpokayisya
巨人倍増:http://www.allkanpou.com/product/巨人倍増.html
巨人倍増:http://www.allkanpou.com/product/%E5%B7%A8%E4%BA%BA%E5%80%8D%E5%A2%97.html
紅蜘蛛:http://www.allkanpou.com/product/紅蜘蛛.html
花痴:http://www.allkanpou.com/product/花痴.html
威哥王:http://www.allkanpou.com/product/威哥王.html
威哥王:http://www.allkanpou.com/product/%E5%A8%81%E5%93%A5%E7%8E%8B.html
三便宝:http://www.allkanpou.com/product/三便宝.html
福源春カプセル:http://www.allkanpou.com/product/福源春.html
五便宝:http://www.allkanpou.com/product/五便宝.html
蟻力神:http://www.allkanpou.com/product/蟻力神1.html
RU486:http://www.allkanpou.com/product/中絶薬RU486.html
媚薬:http://www.allkanpou.com/biyaku/媚薬.html
天天素:http://www.allkanpou.com/product/天天素.html
福源春:http://www.allkanpou.com/product/福源春.html
曲美:http://www.allkanpou.com/product/曲美10.html
VVK:http://www.allkanpou.com/product/Wenickman.html
WENICKMAN:http://www.allkanpou.com/product/WENICKMAN1.html
MaxMan:http://www.allkanpou.com/product/MaxMan.html
VigRx:http://www.allkanpou.com/product/VigRx.html
三鞭粒:http://www.allkanpou.com/product/weige.html
男根増長素:http://www.allkanpou.com/product/ngzzw.html
D10 媚薬:http://www.allkanpou.com/product/D10.html
VVK:http://www.allkanpou.com/product/wenickman.html
Wenickman:http://www.allkanpou.com/product/wenickman.html
男宝:http://www.allkanpou.com/product/男宝.html
ナンパオ:http://www.allkanpou.com/product/男宝.html
狼1号:http://www.allkanpou.com/product/狼1号.html
ベニクモ:http://www.allkanpou.com/product/紅蜘蛛2.html
ハナチ:http://www.allkanpou.com/product/花痴.html
FLY D5:http://www.allkanpou.com/product/蒼蝿水5.html
蒼蝿水:http://www.allkanpou.com/product/蒼蝿水5.html
三體牛鞭:http://www.allkanpou.com/product/三体牛鞭.html
ペニス増大:http://www.allkanpou.com/product/MaxMan.html
リドスプレー:http://www.allkanpou.com/product/LIDOSPRAY.html
VigRx:http://www.allkanpou.com/product/VigRx.html
SPANISCHE FLIEGE:http://www.allkanpou.com/product/spanischeflieged5.html
D10 媚薬:http://www.allkanpou.com/product/d10.html
催情剤:http://www.allkanpou.com/product/d10.html
セックスドロップ:http://www.allkanpou.com/product/sexdrops5.html
Supra PE:http://www.allkanpou.com/product/SupraPE.html
ダイエット:http://www.allkanpou.com/daietto/ダイエット.html
イーリーシン:http://www.allkanpou.com/product/蟻力神1.html
さんべんぼう:http://www.allkanpou.com/product/三便宝.html
三便宝カプセル:http://www.allkanpou.com/product/三便宝.html
ru486 販売:http://www.allkanpou.com/product/中絶薬RU486.html
ビグレックス:http://www.allkanpou.com/product/VigRxOil(ビグレックスオイル.html
キョジンバイゾウ:http://www.allkanpou.com/product/巨人倍増枸.html
ウェイカワン:http://www.allkanpou.com/product/威哥王.html
きょくび:http://www.allkanpou.com/product/曲美10.html
女性用媚薬:http://www.allkanpou.com/biyaku/女性媚薬.html
狼一号:http://www.allkanpou.com/product/狼1号.html
威哥王:http://www.allkanpou.com/product/威哥王.html
威哥王:http://www.allkanpou.com/product/%E5%A8%81%E5%93%A5%E7%8E%8B.html
巨人倍増:http://www.allkanpou.com/product/巨人倍増.html
巨人倍増:http://www.allkanpou.com/product/%E5%B7%A8%E4%BA%BA%E5%80%8D%E5%A2%97.html
五便宝:http://www.allkanpou.com/product/五便宝.html
三体牛鞭:http://www.allkanpou.com/product/三体牛鞭.html
プロコミルスプレー:http://www.allkanpou.com/product/procomilspray.html
消渇丸:http://www.allkanpou.com/product/消渇丸.html
精力増強剤:http://www.allkanpou.com/seiryokuzai/精力増強.html
強精剤:http://www.allkanpou.com/seiryokuzai/精力剤.html
漢方 強精剤:http://www.allkanpou.com/seiryokuzai/精力剤.html
女性用媚薬:http://www.allkanpou.com/biyaku/女性媚薬.html
催淫:http://www.allkanpou.com/product/絶對高潮6.html
催情:http://www.allkanpou.com/product/vov催情粉.html
性欲増強:http://www.allkanpou.com/seiryokuzai/強化性欲.html
性欲減退:http://www.allkanpou.com/biyaku/性欲の障害.html
媚薬 カプセル:http://www.allkanpou.com/product/福源春.html
中絶薬:http://www.allkanpou.com/pills/避妊中絶.html
避妊薬:http://www.allkanpou.com/pills/避妊中絶.html
ダイエット薬:http://www.allkanpou.com/daietto/ダイエット薬.html
精力剤:http://www.allkanpou.com/seiryokuzai/精力剤.html
女性用媚薬:http://www.allkanpou.com/biyaku/女性媚薬.html
漢方薬:http://www.allkanpou.com/kanpouyaku/漢方薬.html
催淫通販:http://www.allkanpou.com/biyaku/媚薬催淫.html
小情人:http://www.allkanpou.com/product/sexdrops5.html
男根増長素:http://www.allkanpou.com/product/ngzzw.html
三鞭粒:http://www.allkanpou.com/product/weige.html
九鞭粒:http://www.allkanpou.com/product/jiubianli.html
V26:http://www.allkanpou.com/product/v26速効.html
v26 カプセル:http://www.allkanpou.com/product/verl.html
西班牙蒼蝿水:http://www.allkanpou.com/product/蒼蝿水2.html
procomil spray:http://www.allkanpou.com/product/procomilspray.html
花之欲:http://www.allkanpou.com/product/花之欲5.html
終極痩身:http://www.allkanpou.com/product/zhongjishoushen.html
韓国痩身一号:http://www.allkanpou.com/product/韓国痩身一号5.html
韓国痩身1号:http://www.allkanpou.com/product/韓国痩身一1.html
新一粒神:http://www.allkanpou.com/product/新一粒神.html
しんいちつぶしん:http://www.allkanpou.com/product/新一粒神.html
蔵八宝:http://www.allkanpou.com/product/蔵八宝.html
西班牙昆虫粉:http://www.allkanpou.com/product/昆虫粉.htm
早漏防止:http://www.allkanpou.com/product/早漏防止.html
ビグレックス オイル:http://www.allkanpou.com/product/VigRxOil(ビグレックスオイル.html
威哥王 販売:http://www.allkanpou.com/product/威哥王.html
曲美 本物:http://www.allkanpou.com/product/曲美.html
性欲増強通販:http://www.allkanpou.com/product/潤滑剤.html
日本秀身堂:http://www.allkanpou.com/product/v26速効.html
法国性奴:http://www.allkanpou.com/product/fagou.html
西班牙蒼蝿水:http://www.allkanpou.com/product/蒼蝿水2.html
WENICKMAN:http://www.allkanpou.com/product/wenickman1.html
Xing霸:http://www.allkanpou.com/product/Xing霸.html
魔根:http://www.allkanpou.com/product/魔根.html
美人豹:http://www.allkanpou.com/product/美人豹5.html
超級脂肪燃焼弾:http://www.allkanpou.com/product/newsuperfatburnin.html
SUPER FAT BURNING:http://www.allkanpou.com/product/newsuperfatburnin.html
FAT BURNING:http://www.allkanpou.com/product/newsuperfatburnin.html
終極痩身カプセル:http://www.allkanpou.com/product/zhongjishoushen.html
御秀堂:http://www.allkanpou.com/product/御秀堂養顔痩身.html
痩身一号:http://www.allkanpou.com/product/韓国痩身一1.html
痩身1号:http://www.allkanpou.com/product/韓国痩身一1.html
蟻王:http://www.allkanpou.com/product/アリ王蟻王,ANTKING.html
アリ王:http://www.allkanpou.com/product/アリ王蟻王,ANTKING.html
ANT KING:http://www.allkanpou.com/Product/ANTKING.html
媚薬蟻王:http://www.allkanpou.com/product/アリ王蟻王,ANTKING.html
男露888:http://www.allkanpou.com/product/男露888.html
くらはちほう:http://www.allkanpou.com/product/蔵八宝.html
奇勝カプセル:http://www.allkanpou.com/product/qisheng.html

徳国 増大宝V12:http://www.allkanpou.com/product/増大宝V12.html
早漏防止コンドーム:http://www.allkanpou.com/product/早漏防止.html
新一粒神:http://www.allkanpou.com/product/新一粒神.html
蔵八宝:http://www.allkanpou.com/product/蔵八宝.html
RU486:http://www.allkanpou.com/product/中絶薬RU486.html
中絶薬RU486:http://www.allkanpou.com/product/中絶薬RU486.html
経口避妊薬:http://www.allkanpou.com/product/酢酸経口避妊薬片.html
蒼蝿水:http://www.allkanpou.com/product/蒼蝿水5.html
法国性奴:http://www.allkanpou.com/product/fagou.html
消渇丸:http://www.allkanpou.com/product/消渇丸.html
VOV 催情液:http://www.allkanpou.com/product/VOV催情液.html
ベニクモ:http://www.allkanpou.com/product/紅蜘蛛2.html
媚薬催淫:http://www.allkanpou.com/biyaku/%E5%AA%9A%E8%96%AC%E5%82%AC%E6%B7%AB.html
精力増強剤:http://www.allkanpou.com/seiryokuzai/%E7%B2%BE%E5%8A%9B%E5%A2%97%E5%BC%B7.html
漢方ダイエット:http://www.allkanpou.com/daietto/%E6%BC%A2%E6%96%B9%E3%83%80%E3%82%A4%E3%82%A8%E3%83%83%E3%83%88.html
ダイエット薬:http://www.allkanpou.com/daietto/%E3%83%80%E3%82%A4%E3%82%A8%E3%83%83%E3%83%88%E8%96%AC.html
脂肪燃焼:http://www.allkanpou.com/daietto/%E8%84%82%E8%82%AA%E7%87%83%E7%84%BC.html
狼1号:http://www.allkanpou.com/product/%E7%8B%BC1%E5%8F%B7.html
狼一号:http://www.allkanpou.com/product/%E7%8B%BC1%E5%8F%B7.html
三体牛鞭:http://www.allkanpou.com/product/%E4%B8%89%E4%BD%93%E7%89%9B%E9%9E%AD.html
Xing霸:http://www.allkanpou.com/product/Xing%E9%9C%B8.html
男宝:http://www.allkanpou.com/product/%E7%94%B7%E5%AE%9D.html
力多精:http://www.allkanpou.com/product/%E5%8A%9B%E5%A4%9A%E7%B2%BE.html
潤滑剤:http://www.allkanpou.com/product/K%2DY%E6%BD%A4%E6%BB%91%E5%89%A4.html
KY媚薬:http://www.allkanpou.com/product/K%2DY%E6%BD%A4%E6%BB%91%E5%89%A4.html
紅蜘蛛:http://www.allkanpou.com/product/%E7%B4%85%E8%9C%98%E8%9B%9B30.html
威哥王:http://www.allkanpou.com/product/%E5%A8%81%E5%93%A5%E7%8E%8B.html
蟻力神:http://www.allkanpou.com/product/%E8%9F%BB%E5%8A%9B%E7%A5%9E1.html
三便宝:http://www.allkanpou.com/product/%E4%B8%89%E4%BE%BF%E5%AE%9D.html
五便宝:http://www.allkanpou.com/product/%E4%BA%94%E4%BE%BF%E5%AE%9D.html
巨人倍増:http://www.allkanpou.com/product/%E5%B7%A8%E4%BA%BA%E5%80%8D%E5%A2%97%E6%9E%B8.html
西班牙蒼蝿水:http://www.allkanpou.com/product/%E8%92%BC%E8%9D%BF%E6%B0%B42.html
絶對高潮 催淫カプセル:http://www.allkanpou.com/product/%E7%B5%B6%E5%B0%8D%E9%AB%98%E6%BD%AE6.html
魔根金中草:http://www.allkanpou.com/product/%E9%AD%94%E6%A0%B9%E9%87%91%E4%B8%AD%E8%8D%89.html
花之欲:http://www.allkanpou.com/product/%E8%8A%B1%E4%B9%8B%E6%AC%B25.html
美人豹:http://www.allkanpou.com/product/%E7%BE%8E%E4%BA%BA%E8%B1%B95.html
花痴:http://www.allkanpou.com/product/%E7%B4%85%E8%9C%982.html
曲美:http://www.allkanpou.com/product/%E6%9B%B2%E7%BE%8E10.html
天天素:http://www.allkanpou.com/product/%E5%A4%A9%E5%A4%A9%E7%B4%A0.html
V26:http://www.allkanpou.com/product/V26%E9%80%9F%E5%8A%B9.html
v26 カプセル:http://www.allkanpou.com/product/verl.html
日本秀身堂:http://www.allkanpou.com/product/%E7%A7%80%E8%BA%AB%E5%A0%82%E6%95%91%E6%80%A5%E7%AE%B1.html
簡約痩身美体カプセル:http://www.allkanpou.com/product/%E7%B0%A1%E7%B4%84%E7%97%A9%E8%BA%AB%E7%BE%8E%E4%BD%93.html
超級脂肪燃焼:http://www.allkanpou.com/product/NEWSUPERFATBURNIN.html
終極痩身:http://www.allkanpou.com/product/zhongjishoushen.html
御秀堂:http://www.allkanpou.com/product/%E5%BE%A1%E7%A7%80%E5%A0%82%E9%A4%8A%E9%A1%94%E7%97%A9%E8%BA%AB.html
韓国痩身1号:http://www.allkanpou.com/product/%E9%9F%93%E5%9B%BD%E7%97%A9%E8%BA%AB%E4%B8%80%E5%8F%B75.html
韓国痩身一号:http://www.allkanpou.com/product/%E9%9F%93%E5%9B%BD%E7%97%A9%E8%BA%AB%E4%B8%801.html
SPANISCHE FLIEGE:http://www.allkanpou.com/product/SPANISCHEFLIEGED5.html
Sex Slave:http://www.allkanpou.com/product/fagou.html
SUPER FATBURNING:http://www.allkanpou.com/product/NEWSUPERFATBURNIN.html
媚薬催情粉:http://www.allkanpou.com/product/%E7%B4%85%E8%9C%98%E8%9B%9B30.html
痩身一号:http://www.allkanpou.com/product/%E9%9F%93%E5%9B%BD%E7%97%A9%E8%BA%AB%E4%B8%801.html
性霸2000:http://www.allkanpou.com/product/Xing%E9%9C%B8.html
v26 ダイエット:http://www.allkanpou.com/product/V26%E9%80%9F%E5%8A%B9.html
ハナチ:http://www.allkanpou.com/product/%E7%B4%85%E8%9C%982.html
ナンパオ:http://www.allkanpou.com/product/%E7%94%B7%E5%AE%9D.html
媚薬 販売:http://www.allkanpou.com/biyaku/媚薬催淫.html
ed治療 薬:http://www.allkanpou.com/seiryokuzai/ed治療.html
縮陰膏:http://www.allkanpou.com/product/縮陰膏.html
片仔廣:http://www.allkanpou.com/product/片仔廣軟膏10.html

allkanpousallkanpous 2013/06/15 10:24 https://twitter.com/akanpokayisya
三体牛鞭:http://三体牛鞭.shanghaikanpo.com
三體牛鞭:http://三体牛鞭.shanghaikanpo.com
五便宝:http://www.shanghaikanpo.com/view/1378.html
三便宝:http://www.shanghaikanpo.com/view/1425.html
花痴:http://www.shanghaikanpo.com/view/1363.html
巨人倍増:http://www.shanghaikanpo.com/view/1334.html
威哥王:http://www.shanghaikanpo.com/view/1392.html
精力剤:http://www.shanghaikanpo.com/Energy.html
紅蜘蛛:http://www.shanghaikanpo.com/view/1195.html
福源春:http://www.shanghaikanpo.com/view/1228.html
五便宝:http://www.shanghaikanpo.com/view/1378.html
三體牛鞭:http://www.shanghaikanpo.com/view/1420.html
媚薬:http://www.shanghaikanpo.com/Charming-medicine.html
避妊薬:http://www.shanghaikanpo.com/Avoid-pregnanting.html
中絶薬 :http://www.shanghaikanpo.com/Avoid-pregnanting.html
蟻力神:http://www.shanghaikanpo.com/view/1038.html
天天素:http://www.shanghaikanpo.com/view/1407.html
媚薬 カプセル:http://www.shanghaikanpo.com/catalog/18.html
男露888:http://www.shanghaikanpo.com/view/1451.html
補腎助陽:http://www.shanghaikanpo.com/catalog/68.html
曲美 ダイエット:http://www.shanghaikanpo.com/view/1431.html
三便宝カプセル:http://www.shanghaikanpo.com/view/1378.html
精力増強剤:http://www.shanghaikanpo.com/news/list/6.html
VigRx:http://www.shanghaikanpo.com/view/1165.html
vigRx oil:http://www.shanghaikanpo.com/view/1166.html
女性用媚薬:http://www.shanghaikanpo.com/Charming-medicine.html
VVK:http://www.shanghaikanpo.com/view/1158.html
Wenickman:http://www.shanghaikanpo.com/view/1156.html
街頭霸王 ペニス増大:http://www.shanghaikanpo.com/view/1471.html
潤滑剤:http://www.shanghaikanpo.com/catalog/15.html
早漏防止:http://www.shanghaikanpo.com/view/1019.html
狼一号,狼1号:http://www.shanghaikanpo.com/view/1319.html
中絶薬RU486:http://www.shanghaikanpo.com/view/1010.html
精力増強剤:http://www.shanghaikanpo.com/Energy.html
ペニス増大:http://www.shanghaikanpo.com/view/1157.html
巨人倍増枸杞:http://www.shanghaikanpo.com/view/1334.html
早漏:http://www.shanghaikanpo.com/catalog/11.html
奇果カプセル:http://www.shanghaikanpo.com/view/1439.html
新曲美痩身カプセル:http://www.shanghaikanpo.com/view/1515.html
福源春カプセル:http://www.shanghaikanpo.com/view/1228.html
MAXMAN:http://www.shanghaikanpo.com/view/1485.html
唯美OB蛋白痩身素:http://www.shanghaikanpo.com/view/1386.html
片仔廣:http://www.shanghaikanpo.com/view/1446.html
男露888:http://www.shanghaikanpo.com/view/1451.html
房事の神油:http://www.shanghaikanpo.com/view/1233.html
蟻力神:http://www.shanghaikanpo.com/view/1038.html
RU486 販売:http://www.shanghaikanpo.com/view/1009.html
威哥王 三鞭粒:http://www.shanghaikanpo.com/view/1394.html
spanish sex drops D8:http://www.shanghaikanpo.com/view/1180.html
即効性精力剤:http://www.shanghaikanpo.com/catalog/14.html
同仁牛黄清心丸:http://www.shanghaikanpo.com/view/1399.html
威哥王 三鞭粒:http://www.shanghaikanpo.com/view/1394.html
蟻力神:http://www.shanghaikanpo.com/view/1038.html
イーリーシン:http://www.shanghaikanpo.com/view/1038.html
RU486:http://www.shanghaikanpo.com/view/1010.html
RU486 販売:http://www.shanghaikanpo.com/view/1009.html
Xing霸 性霸2000:http://www.shanghaikanpo.com/view/1154.html
五便宝 カプセル:http://www.shanghaikanpo.com/view/1378.html
巨根カプセル:http://www.shanghaikanpo.com/view/1335.html
ハーバルビビッド VIVID:http://www.shanghaikanpo.com/view/1466.html
漢方薬:http://www.shanghaikanpo.com/Chinese-side.html
男根増長素:http://www.shanghaikanpo.com/view/1462.html
新一粒神 :http://www.shanghaikanpo.com/view/1464.html
しんいちつぶしん:http://www.shanghaikanpo.com/view/1464.html
MaxMan:http://www.shanghaikanpo.com/view/1084.html
魔鬼天使性欲粉:http://www.shanghaikanpo.com/view/1454.html
蟻王:http://www.shanghaikanpo.com/view/1039.html
VigRx:http://www.shanghaikanpo.com/view/1165.html
ビグレックス:http://www.shanghaikanpo.com/view/1165.html
男露888:http://www.shanghaikanpo.com/view/1451.html
西班牙昆虫粉:http://www.shanghaikanpo.com/view/1374.html
繊之素カプセル:http://www.shanghaikanpo.com/view/1065.html
五便宝 カプセル:http://www.shanghaikanpo.com/view/1378.html
事後避妊薬:http://www.shanghaikanpo.com/view/1130.html
藏秘男宝:http://www.shanghaikanpo.com/view/1268.html
性愛密碼強腎カプセル:http://www.shanghaikanpo.com/view/1056.html
西班牙蒼蝿迷情液:http://www.shanghaikanpo.com/view/1074.html
Jelly潤滑剤:http://www.shanghaikanpo.com/view/1087.html
1粒神:http://www.shanghaikanpo.com/view/1118.html
天天素 清脂カプセル:http://www.shanghaikanpo.com/view/1407.html
美人豹女性用口服液:http://www.shanghaikanpo.com/view/1296.html
東方神龍生精 カプセル:http://www.shanghaikanpo.com/view/1244.html
蟻王:http://www.shanghaikanpo.com/view/1151.html
ANT KING:http://www.shanghaikanpo.com/view/1151.html
韓国痩身一号:http://www.shanghaikanpo.com/view/1203.html
痩身1号:http://www.shanghaikanpo.com/view/1203.html
催情薬:http://www.shanghaikanpo.com/keyword/253.html
街頭霸王 ペニス増大:http://www.shanghaikanpo.com/view/1471.html
夜の健康食品:http://www.shanghaikanpo.com/catalog/66.html
ED改善:http://www.shanghaikanpo.com/catalog/67.html
ED助勃:http://www.shanghaikanpo.com/catalog/12.html
媚薬カプセル:http://www.shanghaikanpo.com/catalog/18.html
性器増大:http://www.shanghaikanpo.com/catalog/10.html
滋養強壮:http://www.shanghaikanpo.com/catalog/13.html
男宝:http://www.shanghaikanpo.com/view/1452.html
威可王:http://www.shanghaikanpo.com/view/1391.html
ウェイカワン:http://www.shanghaikanpo.com/view/1391.html
脂肪燃焼:http://www.shanghaikanpo.com/catalog/23.html
催情薬:http://www.shanghaikanpo.com/keyword/253.html
街頭霸王 ペニス増大:http://www.shanghaikanpo.com/view/1471.html
夜の健康食品:http://www.shanghaikanpo.com/catalog/66.html
新陳代謝:http://www.shanghaikanpo.com/catalog/24.html
即効ダイエット:http://www.shanghaikanpo.com/catalog/25.html
絶對高潮 催淫 カプセル:http://www.shanghaikanpo.com/view/1331.html
壮三天:http://www.shanghaikanpo.com/view/1474.html
FAT BURNING:http://www.shanghaikanpo.com/view/1098.html
ダイエット薬:http://www.shanghaikanpo.com/catalog/69.html
避妊中絶薬:http://www.shanghaikanpo.com/catalog/20.html
経口避妊薬 購入:http://www.shanghaikanpo.com/catalog/20.html
粉劑媚薬:http://www.shanghaikanpo.com/catalog/16.html
催情水剤:http://www.shanghaikanpo.com/catalog/17.html
紅蜘蛛 催情粉:http://www.shanghaikanpo.com/view/1197.html
ダイエット:http://www.shanghaikanpo.com/Reduce-weight.html
漢方薬:http://www.shanghaikanpo.com
威哥王 販売:http://www.shanghaikanpo.com/view/1394.html
v26 薬:http://www.shanghaikanpo.com/view/1171.html
絶對高潮カプセル:http://www.shanghaikanpo.com/view/1330.html
三便宝 カプセル:http://www.shanghaikanpo.com/view/1424.html
蔵八宝:http://www.shanghaikanpo.com/view/1465.html
天天素 清脂カプセル:http://www.shanghaikanpo.com/view/1407.html
曲美:http://www.shanghaikanpo.com/view/1431.html
即効ダイエット:http://www.shanghaikanpo.com/view/1460.html
きょくび:http://www.shanghaikanpo.com/view/1431.html
くらはちほう:http://www.shanghaikanpo.com/view/1465.html
コンドーム:http://www.shanghaikanpo.com/Condom.html
早妊診断:http://www.shanghaikanpo.com/catalog/21.html
豊胸美乳:http://www.shanghaikanpo.com/catalog/26.html
家庭治療薬:http://www.shanghaikanpo.com/catalog/33.html
D10 媚薬:http://www.shanghaikanpo.com/view/1107.html
SEX DROPS:http://www.shanghaikanpo.com/view/1136.html
三便百勝軟カプセル:http://www.shanghaikanpo.com/view/1492.html
女士催情コーヒー:http://www.shanghaikanpo.com/view/1490.html
男士コーヒー:http://www.shanghaikanpo.com/view/1491.html
VEGETAL VIGRAカプセル:http://www.shanghaikanpo.com/view/1489.html
VEGETAL VIGRA:http://www.shanghaikanpo.com/view/1488.html
阿拉伯偉哥:http://www.shanghaikanpo.com/view/1487.html
狼一号:http://www.shanghaikanpo.com/view/1484.html
植物壮根素 :http://www.shanghaikanpo.com/view/1486.html
増粗延時王:http://www.shanghaikanpo.com/view/1483.html
GOODMANペニス増大カプセル:http://www.shanghaikanpo.com/view/1480.html
GOODMAN:http://www.shanghaikanpo.com/view/1481.html
トップラブV9:http://www.shanghaikanpo.com/view/1482.html
CROWN 3000:http://www.shanghaikanpo.com/view/1493.html
RU486:http://www.shanghaikanpo.com/view/1010.html
FAT BURNING:http://www.shanghaikanpo.com/view/1098.html
ANT KING:http://www.shanghaikanpo.com/view/1151.html
VigRx:http://www.shanghaikanpo.com/view/1165.html
MaxMan:http://www.shanghaikanpo.com/view/1084.html
妻之友:http://www.shanghaikanpo.com/view/1440.html

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/amachang/20090115/1231989477