|
Скрипт отображения веса картинки, помогите подправить
<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, время: 20:17. |
|