10

HTMLPreElementなど、ブラウザが現在認識している HTML 要素のリストを (動的に) 取得しようとしていますHTMLSpanElement。これらのオブジェクトはグローバルです。

console.log('HTMLPreElement' in window);  //=> true

だから私はこのように使うことができると思っgetOwnPropertyNamesた:

console.log(Object.getOwnPropertyNames(window));

グローバル プロパティの完全なリストを取得します (MDN では、これは列挙可能なプロパティと列挙できないプロパティの両方を返すと述べています)。

上記を使用して、約 70 個のプロパティ ナンを持つ配列を取得します。HTMLPreElementただし、 - onlyのようなオブジェクトは含まれませんHTMLElement。私も試しました:

console.log(Object.getOwnPropertyNames(window.Window.prototype));

これにより、より大きなリスト(addEventListeneretcを含む)が返されますが、いいえHTMLPreElement.

HTML{Tag}Elementでは、これらのオブジェクトは一体どこにあるのでしょうか?

4

3 に答える 3

6
for (var prop in window)
    console.log(prop);

それはあなたが必要とするものですか?

于 2012-04-29T17:55:50.680 に答える
5

Firefoxでは、グローバル変数またはプロパティとして明示的に要求されない限り、グローバルオブジェクトが追加されないのは要素の動作のようです。おそらく、Firefoxの遅延はそれらを環境にロードして、実際に必要でない限りメモリを消費しないようにします。

上記のように最初に明示的に参照されていObject.getOwnPropertyNames ない限り、を介してグローバルオブジェクトのキーを要求するだけでは表示されないようです。

http://jsfiddle.net/mBAHm/

于 2012-05-01T20:49:40.803 に答える
2
var obj = window;
while(obj){
    for(let prop of Reflect.ownKeys(obj)){
        console.log(prop);
    };
    obj = Object.getPrototypeOf(obj);
};
于 2017-09-15T19:49:40.103 に答える