Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.07.2015, 07:39
Аватар для VINRARUS
Аспирант
Отправить личное сообщение для VINRARUS Посмотреть профиль Найти все сообщения от VINRARUS
 
Регистрация: 01.07.2013
Сообщений: 36

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

Последний раз редактировалось VINRARUS, 08.08.2015 в 23:52.
Ответить с цитированием
  #2 (permalink)  
Старый 19.07.2015, 07:55
Аватар для VINRARUS
Аспирант
Отправить личное сообщение для VINRARUS Посмотреть профиль Найти все сообщения от VINRARUS
 
Регистрация: 01.07.2013
Сообщений: 36

Толи они в 2 потока как то обрабатываются...
Ответить с цитированием
  #3 (permalink)  
Старый 19.07.2015, 08:59
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

1) поделить на 1024
2) засунуть первую часть кода на место alert() второй части кода
Ответить с цитированием
  #4 (permalink)  
Старый 19.07.2015, 10:24
Аватар для VINRARUS
Аспирант
Отправить личное сообщение для VINRARUS Посмотреть профиль Найти все сообщения от VINRARUS
 
Регистрация: 01.07.2013
Сообщений: 36

kostyanet,
1) спасибо
2) в первом alert ломаются дополнительно и переменные ширины и высоты, во втором толку нуль

Напоминаю что нужны все 3 рабочие переменные zheight, zwidth, zsize после этого кода.
Ответить с цитированием
  #5 (permalink)  
Старый 19.07.2015, 11:07
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

За вас что ли засунуть? Ну, попробую:

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);
});

Последний раз редактировалось kostyanet, 19.07.2015 в 11:10.
Ответить с цитированием
  #6 (permalink)  
Старый 19.07.2015, 11:07
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

Сообщение от VINRARUS
но за пределами функции переменная zsize не подхватывается чето.
наверно тут CORS - кросдоменный аякс запрещен...
поэотму если картинка на домене отличному от текущего - ничего не будет)
а переменные "zheight" и "zwidth" берутся не з ответа аякса, поэтому доступны
Ответить с цитированием
  #7 (permalink)  
Старый 19.07.2015, 11:11
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

За

img_data.b = this

не уверен, но верю что жикверя не должна требовать хардкода для обращения к собственному объекту внутри собственной же функции.

Например в колбеке объекта XMLHttpRequest - this - он сам.
Ответить с цитированием
  #8 (permalink)  
Старый 19.07.2015, 11:13
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от KosBeg
наверно тут CORS - кросдоменный аякс запрещен.
Судя по химерическим именам переменных дело происходит во внутренностях ю-козы.
Ответить с цитированием
  #9 (permalink)  
Старый 19.07.2015, 11:22
Аватар для KosBeg
Профессор
Отправить личное сообщение для KosBeg Посмотреть профиль Найти все сообщения от KosBeg
 
Регистрация: 22.05.2015
Сообщений: 384

так работает - но только в пределах домена,
с домена "vinrarus.ucoz.net" нельзя послать запрос на "vinrarus.com" или например "google.com"
PS: это никак не лечится! вариант есть только один - купить гугл и его домен
<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>БР
Ответить с цитированием
  #10 (permalink)  
Старый 19.07.2015, 11:44
Аватар для VINRARUS
Аспирант
Отправить личное сообщение для VINRARUS Посмотреть профиль Найти все сообщения от VINRARUS
 
Регистрация: 01.07.2013
Сообщений: 36

Сообщение от kostyanet
Судя по химерическим именам переменных дело происходит во внутренностях ю-козы.
Скажу по секрету что дело происходит внутри мобильного телефона через " httpd -p 80 -h /usr/vin/www".
http://192.168.16.2
Но и там и там код работает в равных условиях.
Сообщение от kostyanet
За вас что ли засунуть? Ну, попробую:
совсем не работает
Сообщение от KosBeg
так работает - но только в пределах домена
Сам смотри, вес не отображает: http://vinrarus.ucoz.net/index/0-16

Последний раз редактировалось VINRARUS, 19.07.2015 в 11:49.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение размеров картинки через скрипт SLV Общие вопросы Javascript 4 27.12.2010 11:40
Помогите написать скрипт для корзины Deep Элементы интерфейса 1 19.06.2010 14:46
помогите сделать начало слайдшоу c рандомной картинки Nekojiru Ваши сайты и скрипты 0 20.07.2009 19:50
Помогите создать скрипт замены картинок при наведении курсора. SantaS Я не знаю javascript 3 05.06.2009 12:59
Скрипт, изменения размера картинки soniclord Элементы интерфейса 14 28.10.2008 16:38