AJAX запрос чтобы получить ширину загруженного изображения 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 177
Здравствуйте,
знает кто-либо как должен выглядеть ajax запрос в icms2 что бы получить ширину загруженного изображения ?
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4379
Размеры изображения в браузере выясняются посредством Javascript.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 177
Fuze:

Размеры изображения в браузере выясняются посредством Javascript.
ага, ага ))), тока через некоторое время(пока опять взад не закачает изображение),
и полно некорректностей в разных бравзерах....
т.е. вы хотите сказать что icms2 это не предусмотренно ?,
тогда может скажите какой файл отвечает за загрузку изображений
Редактировалось: 1 раз (Последний: 11 сентября 2019 в 13:27)
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4379
@fazer:
тока через некоторое время, и полно некорректностей
Значит вы делаете некорректно.
@fazer:
т.е. вы хотите сказать что icms2 это не предусмотренно ?
Что непредусмотрено? Ваша задача? Вероятно да.
@fazer:
тогда может скажите какой файл отвечает за загрузку изображений
Контроллер images.

Вы вопрос сформулируйте понятней. Размеры изображения в браузере получаются ТОЛЬКО средствами Javascript, либо берутся из заранее приготовленных атрибутов тега. Делать запрос к серверу чтобы узнать размер изображения это мягко говоря неправильно.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 177
Fuze:

Контроллер images.
а можно просто файл, который можно поправить на предмет обработки вопроса про размер?

Fuze:
Размеры изображения в браузере получаются ТОЛЬКО средствами Javascript
ну это мягко говоря тож не правда :)

Fuze:

Вы вопрос сформулируйте понятней

Код PHP:
  1.  
  2. var s = e.content.replace(/\<img src=\"(.+)\" alt.+\>/i,'$1');
  3. console.log('SRC: '+s);
  4. var img = new Image();
  5. img.src = s;
  6. img.onload = function() {
  7. console.log('img-width: '+img.width);
  8. if (img.width > 450){
  9. e.content = '<a class="ajax-modal modal_image hover_image" href="' + s + '">' + e.content + '</a>';
  10. }
  11. }
  12. }
  13.  
таки вот этот код не работает потому, что размер высчитывается уже после получения полного рисунка,
а условие if (img.width > 450){ - выполняется сразу-же
ставить таймауты тоже както не по нашему :)

подскажите тогда пожалуйста как пофиксить эти пять строк ? :)
Редактировалось: 4 раз (Последний: 11 сентября 2019 в 16:11)
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4379
@fazer:
а условие if (img.width > 450){ - выполняется сразу-же
Нет. После загрузки изображения, поскольку onload

Код JAVASCRIPT:
  1.  
  2. var s = e.content.replace(/\<img src=\"(.+)\" alt.+\>/i,'$1');
  3. var img = new Image();
  4. img.onload = function() {
  5. if (this.width > 450){
  6. e.content = '<a class="ajax-modal modal_image hover_image" href="' + s + '">' + e.content + '</a>';
  7. }
  8. };
  9. img.src = s;
  10.  
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 177
Fuze:

Нет. После загрузки изображения, поскольку onload
вот как щаз
Код JAVASCRIPT:
  1.  
  2. var w = 777;
  3. var img = new Image();
  4. img.onload = function() {
  5. w = this.width;
  6. console.log('pre-width: ' + w);
  7. if (this.width > 450){
  8. e.content = '<a class="ajax-modal modal_image hover_image" href="' + s + '">' + e.content + '</a>';
  9. }
  10. };
  11. img.src = s;
  12. console.log('past-width: ' + w);
  13.  
вот выхлоп
Спойлер
рисунок не оборачивается в тег <a>
Редактировалось: 1 раз (Последний: 11 сентября 2019 в 16:13)
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4379
@fazer:
рисунок не оборачивается в тег <a>
Значит как-то не так оборачиваете, полый код вы не привели. Но я бы оборачивал элементы через wrap.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 177
Fuze:

Значит как-то не так оборачиваете, полый код вы не привели. Но я бы оборачивал элементы через wrap.
полный код это setup: .... в tinymce
после переноса img.src = s; в конец "оборачивание" вообще перестало работать,
даже не исполняется img.onload = function() ,
а когда img.src "раньше" стоит всё прекрасно оборачивается
Посетитель
small user social cms
Медаль
Сообщений: 177
ну да, как я изначально и говорил, "условие" исполняется раньше чем появляется информация о ширине(пока не скачается взад весь рисунок)
коли нет icms ajax функций на эту тему, мошть кто подскажет как сделать "триггер" полной закачки ?
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4379
@fazer, гадать мы тут можем долго, что вы делаете не так. Вот вам 100% рабочий код. Выборку изображений по классу или иным фильтрам корректируйте сами.

Код JAVASCRIPT:
  1.  
  2. $('img').each(function (){
  3.  
  4. var _this = this;
  5. var src = $(this).attr('src');
  6.  
  7. var img = new Image();
  8.  
  9. img.onload = function() {
  10. if (this.width > 450){
  11. $(_this).wrap('<a class="ajax-modal modal_image hover_image" href="' + src + '"></a>');
  12. }
  13. };
  14. img.src = src;
  15.  
  16. });
  17.  
AJAX запрос чтобы получить ширину загруженного изображения

@fazer:
а когда img.src "раньше" стоит всё прекрасно оборачивается
Вы неправы.

@fazer:
ну да, как я изначально и говорил, "условие" исполняется раньше чем появляется информация о ширине(пока не скачается взад весь рисунок)
коли нет icms ajax функций на эту тему, мошть кто подскажет как сделать "триггер" полной закачки ?
Надеюсь вы сейчас шутите.

----------------
Ответ по сабжу я дал более чем развёрнуто.
Редактировалось: 1 раз (Последний: 11 сентября 2019 в 15:09)
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
Медаль
Сообщений: 177
Fuze:

Вы неправы.
......
Надеюсь вы сейчас шутите.
да не, не шучу, видимо дело в том что tinymce как то по своему обрабатывает событие "BeforeSetContent"
и по дебагу chrome я своими глазами вижу, что значение размера изображения появляется не "в то время".
Ваш код не подойдет по причине того, что tiny не формирует "объекты" и "id" картинок на этапе "BeforeSetContent"

Fuze:
----------------
Ответ по сабжу я дал более чем развёрнуто.
зря вы так, у меня не было желания вас оскорбить...
а вот вопросов не уменьшилось

Может всё же кто-нить подскажет в каком файле можно тупо всем входящим в icms картинкам
навешивать тег <a class="ajax-modal в зависимости от размера? ну или альтернативные способы получения размеров(коль ajax-табу)
Посетитель
small user social cms
Медаль
Сообщений: 348
@fazer:
в каком файле можно тупо всем входящим в icms картинкам
навешивать тег <a class="ajax-modal
ну так создайте свой JS с кодом Fuze и подключите там где вам надо.
Редактировалось: 1 раз (Последний: 11 сентября 2019 в 15:48)
Посетитель
small user social cms
Медаль
Сообщений: 177
Killer's dream:
ну так создайте свой JS с кодом Fuze и подключите там где вам надо.
надо мне, что бы коробочный tinymce сохраняя весь свой функционал(редактирования картинок)
оборачивал большие рисунки в "модальное окно" .
Соответственно я и выдумываю свой скрипт, и он практически работает...
Загвоздка именно в автоматизме от размеров,
код Fuze не вставится потому, что НЕТ там "объекта рисунок" пока он(рисунок) не попал в редактор ..."BeforeSetContent"
Если делать по другим событиям то ломается функционал tinymce...
Я конечно мошть чего та и не понимаю, но бьюсь с этим(tinymce) уже две недели....
и просто "подключите там где вам надо" у меня не катит...,
мошть подскажите куда надо ? :)
Редактировалось: 1 раз (Последний: 11 сентября 2019 в 16:02)
Посетитель
small user social cms
Медаль
Сообщений: 177
tinymce работает по событию "BeforeSetContent" - асинхронно,
сделал по другому событию... вроде ожило :)
Редактировалось: 2 раз (Последний: 13 сентября 2019 в 18:23)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.