は、開発ツールのコンソールでこれを試してみてください:getBoundingClientRectがJSON.toStringifyでシリアル化されないのはなぜですか?
JSON.stringify(document.body.getBoundingClientRect())
出力ではなく、賢明な何かを、{}です。
アイデア?
は、開発ツールのコンソールでこれを試してみてください:getBoundingClientRectがJSON.toStringifyでシリアル化されないのはなぜですか?
JSON.stringify(document.body.getBoundingClientRect())
出力ではなく、賢明な何かを、{}です。
アイデア?
JSON.stringifyは、toJSONというメソッドを内部的に使用します。
あなたのオブジェクトのためか、あなたのケースでそれを指定することができ、それを上書き:
textRectangleを返しgetBoundingClientRectClientRect.prototype.toJSON = function(){ return { top: this.top } }
JSON.stringify(document.body.getBoundingClientRect())
"{"top":-583}"
お金のパッチ、素敵! – SuperUberDuper
あなたはより建設的になるでしょうか? :) – Caramiriel
@ Caramiriel若干の経験豊富なjs開発者が知っていることは、ネイティブプロトタイプの変更は_一般的に非常に悪いことです。それはtodolistより大きいアプリケーションのためのタイムボーンのようなものです。関連する質問:http://stackoverflow.com/questions/14034180/why-is-extending-native-objects-a-bad-practice –
原因:https://developer.mozilla.org/en-US/docs/Mozilla/Tech/ XPCOM/Reference/Interface/nsIDOMClientRect、jsオブジェクトではありません –
ええ、そのtypeofオブジェクト – SuperUberDuper
typeofはjsオブジェクトだけでなく、ほとんどの環境オブジェクトに対しても "オブジェクト"を返します。私は仕様のこの部分を覚えていますが、プルーフリンクを検索するのは怠惰です) –