問題タブ [host-object]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - IE8 ウィンドウから返された JavaScript オブジェクトにプロパティを追加できない
IE8 でこの奇妙な問題に遭遇しましたが、これ以上の詳細を見つけることができないようです。当然のことながら、JavaScript オブジェクトを作成する場合は、動的に定義することでプロパティを簡単に追加できます。
偉大な。IE8 では (他の IE が何であるかはわかりません)、次のようなメソッドを呼び出すと、次のようになります。
その後、「オブジェクトはこのプロパティまたはメソッドをサポートしていません」という IE エラーが表示されます。これはもちろん、私が独自のオブジェクトを JavaScript で個人的に定義した最初のケースでは起こりません。最も簡単な回避策は、これを行うことです。
それは問題ありません。getBoundingClientRect()
しかし、私が疑問に思っているのは、メソッドによって返されたこのオブジェクトに IE8 でフィールド/プロパティ/属性 (正しい JS 用語がわからない) を動的に追加できないのはなぜですか? プロパティを追加する別の (正しい) 方法はありますか? これは、オブジェクトからメソッドによって返されるすべてのオブジェクトで発生しwindow
ますか? これは文書化されていますか?それともバグですか?(その場合、回避策を講じて先に進みます)。
javascript - xy と x['y'] によって、ホスト オブジェクトの動作が異なることはありますか?
プロパティ名が有効な識別子である通常の (「ネイティブ」) JavaScript オブジェクトの場合、式x.y
とx["y"]
は常に意味的に同等です。
この等価性はホスト オブジェクトに対して保証されていますか?
[..an] ECMAScript の実行環境を完成させるためにホスト環境によって提供されるオブジェクト。
そうでない場合、顕著な例外はありますか? (Cocoon、Crosswalk、IE などでは?)
window
特に、Window ( ) やその他の DOM オブジェクトに興味があります。また、予想される動作に既知の「例外」があるか、またはそのようなことが可能な環境があるかどうか。
c++ - C++: メンバー変数へのポインターからホスト オブジェクトを見つける方法
ここに、二重連結リストを実装するために使用できる単純なノード構造体があります。
ノードオブジェクト/インスタンスを知らない、または参照していないと仮定しますが、そのデータメンバーへのポインターは持っています。T データ;
データメンバーへのポインターからホストノードオブジェクトを参照/検索するにはどうすればよいですか?
javascript - DOM、ホスト オブジェクトなどの一部ではないブラウザ コード内のすべての JavaScript グローバルを見つける方法は?
ブラウザーの JavaScript では、グローバル変数はwindow
ホスト オブジェクトのメンバーとして格納されます。
しかし、ブラウザ DOM の一部であるwindow
すべてのプロパティwindow
と、正しく仮定すれば、ホスト オブジェクトまたはブラウザによって提供される実装/環境の一部でもある他のグローバル関数およびオブジェクトも含まれます。
window
のメンバーを繰り返し処理し、次のようなコードによって作成された通常のグローバル変数ではないすべてのものを可能な限り除外するにはどうすればよいvar foo = 1;
ですか?
javascript - ブラウザでホストオブジェクトのネイティブゲッター/セッターの呼び出し元を追跡する方法は?
ユースケースは次のとおりです。
問題のある Web ページがあり、その結果、DOMContentLoadedが発生した後、ある時点でページがモバイル デバイスで上にスクロールされるとします。
document.documentElement.scrollTopで動作する何かがあると想定できます (たとえば、値0を割り当てます)。
これが発生する可能性のある場所が何百もあることもわかっているとします。
問題をデバッグするには、次の戦略を考えることができます。
scrollTopの値を 0 に設定できる各イベント ハンドラーを1 つずつ確認します。
Chrome DevTools で利用可能なデバッグ機能を使用してみてください
- ネイティブ scrollTop を次のようにオーバーライドします。
2 番目のアプローチの問題は、ネイティブのゲッター/セッターでは機能しないことです。
3 番目のアプローチの問題は、 scrollTopプロパティに値を割り当てているものを簡単に追跡できるようになったにもかかわらず、ネイティブの getter/setter にモンキー パッチを適用し、不要な副作用を引き起こすリスクがあることです。
したがって、質問: Web ブラウザーのホスト オブジェクト (ドキュメント、ウィンドウ、場所など) のネイティブのゲッターとセッターをデバッグするためのより洗練されたソリューションはありますか?