0

JavaScriptで画像の実際の幅と高さを取得しますか? (Safari/Chrome)では、画像の実際のサイズを把握する方法について、主張されている巧妙な解決策が作成されています。

var t = new Image();
t.src = (img_element.getAttribute ? img_element.getAttribute("src") : false) || img_element.src;

2行目が何をするのか調べてみました。使用したいソースを知っているので、それを宣言するだけです。これにより、t.width などの他の属性は発生しませんでした。

4

4 に答える 4

1

まず、getAttribute のようなもの、img_element に属するフィールド/メソッドがどこにあるかを確認します。実際には、このチェックは厳密には不十分であると判断されます。なぜなら、getAttribute は文字通り何でもかまいません。また、それが true であることをチェックしている間、getAttribute を関数であるかのように呼び出そうとしていますが、これは保証されていません。私たちのチェック。

しかし、いくつかのオブジェクトが getAttribute を持っている場合、それは DOM 関数であり、それ以外のものではないと想定しています。JavaScript では、このような仮定は非常に一般的です。

そのため、まず img_element に getAttribute があるかどうかを確認し、ある場合は "src" 属性を確認します。そして、それが真実の文字列である場合、ここで完了です。そうでない場合は、.src を直接チェックして、最後の試行を行います。

あなたが提供したスニペットは、実際には最初に属性をチェックし、次にフィールドを直接チェックする必要があるということです。

于 2013-05-16T15:05:00.327 に答える