Maison >interface Web >js tutoriel >Comment obtenir de manière fiable les dimensions de l'image dans les navigateurs WebKit ?

Comment obtenir de manière fiable les dimensions de l'image dans les navigateurs WebKit ?

DDD
DDDoriginal
2024-12-03 13:25:111032parcourir

How to Reliably Get Image Dimensions in WebKit Browsers?

Détermination des dimensions de l'image dans les navigateurs Webkit

Lors du développement de plugins JavaScript, il est crucial d'obtenir la largeur et la hauteur réelles d'une image. Alors que les méthodes conventionnelles fonctionnent dans Firefox, IE et Opera, elles échouent dans Safari et Chrome, où les valeurs renvoyées sont nulles.

Comportement de chargement d'image unique de WebKit

Contrairement à Dans d'autres navigateurs, Webkit définit les propriétés de hauteur et de largeur d'une image uniquement après son chargement. Ce comportement nécessite une approche différente pour récupérer les véritables dimensions de l'image.

利用图片加载事件

La solution recommandée implique l'utilisation de l'événement onload d'une image. Vous trouverez ci-dessous un extrait de code modifié qui résout le problème :

var img = $("img")[0]; // Get the image element
var pic_real_width, pic_real_height;
$("<img/>") // Create an in-memory copy to avoid CSS issues
    .attr("src", $(img).attr("src"))
    .load(function() {
        pic_real_width = this.width;
        pic_real_height = this.height;
    });

Éviter les effets CSS

Pour éviter que les effets CSS n'affectent les dimensions, le code crée un copie mémoire de l'image. Cette technique garantit que les valeurs récupérées reflètent avec précision la taille réelle de l'image.

Approche alternative : Attributs HTML5

HTML5 fournit les attributs naturalHeight et naturalWidth, qui peuvent également être utilisés. pour récupérer les dimensions réelles de l'image. Cependant, la prise en charge de ces attributs varie selon les navigateurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn