|
Скрипт отображения веса картинки, помогите подправить
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
var zDel = "http://vinrarus.ucoz.net/DDD.png";
var imgas = new Image();
imgas.src = zDel;
var zheight = imgas.naturalHeight;
var zwidth = imgas.naturalWidth;
//А дальше не родной код
var zsize = 0;
var request;
request = $.ajax({
type: "HEAD",
url: zDel,
success: function () {
var zsize = request.getResponseHeader("Content-Length");
alert(zheight +'x'+ zwidth+'-'+zsize);
}
});
alert(zheight +'x'+ zwidth+'-'+zsize);
</script><BR>БР
ШИИРИНАхВЫСОТА-ВЕС изображения, как видно в 1м сообщении все как нада, но за пределами функции переменная zsize не подхватывается чето. :-? Бонус: 1) как на ходу байты в килобайты превратить? 2) может как то более грамотно можно обьеденить эти 2 части кода? |
Толи они в 2 потока как то обрабатываются...
|
1) поделить на 1024
2) засунуть первую часть кода на место alert() второй части кода |
kostyanet,
1) спасибо 2) в первом alert ломаются дополнительно и переменные ширины и высоты, во втором толку нуль Напоминаю что нужны все 3 рабочие переменные zheight, zwidth, zsize после этого кода. |
За вас что ли засунуть? Ну, попробую:
var getImageData=function(url,callback){
var img_data={w:0,h:0,b:0};
$.ajax({
type: "HEAD",
url:url,
success: function () {
img_data.b = this.getResponseHeader("Content-Length")/1024;
var img = new Image();
img.onload=function(){
img_data.w=this.width;
img_data.h=this.height;
if(callback)
callback(img_data);
else
window.img_data=img_data;
};
img.src = url;
}
});
};
/* usage */
getImageData('http://vinrarus.ucoz.net/DDD.png',function(d){
alert(d.w+' '+d.h+' '+d.b);
});
|
Цитата:
поэотму если картинка на домене отличному от текущего - ничего не будет) а переменные "zheight" и "zwidth" берутся не з ответа аякса, поэтому доступны |
За
img_data.b = this не уверен, но верю что жикверя не должна требовать хардкода для обращения к собственному объекту внутри собственной же функции. Например в колбеке объекта XMLHttpRequest - this - он сам. |
Цитата:
|
так работает - но только в пределах домена,
с домена "vinrarus.ucoz.net" нельзя послать запрос на "vinrarus.com" или например "google.com" PS: это никак не лечится! вариант есть только один - купить гугл и его домен :D
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript">
var zDel = "http://vinrarus.ucoz.net/DDD.png";
var imgas = new Image();
imgas.src = zDel;
var zheight = imgas.naturalHeight;
var zwidth = imgas.naturalWidth;
//А дальше не родной код
var zsize = 0;
var request;
request = $.ajax({
type: "HEAD",
url: zDel,
success: function () {
window.zsize = request.getResponseHeader("Content-Length")/1024;
}
});
alert(zheight +'x'+ zwidth+'-'+zsize);
</script><BR>БР
|
Цитата:
http://192.168.16.2 Но и там и там код работает в равных условиях. Цитата:
Цитата:
|
| Часовой пояс GMT +3, время: 02:04. |
|