Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с FancyBox, При открытии Fancybox IE выдает ошибку. 
:(
    Опции темы
Hamman
Дата 3.10.2010, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Здравствуйте. 

Замучила меня ошибка в IE8, 2 дня над ней просидел. При нажатии на линк который открывает FancyBox в IE высвечивет ошибку. Хотя работа скрипта не сбивается и попап открывается нормально, но проблему в любом случае нужно решить. Основная проблема в том что ошибка совершенно не информативна - что-то вроди 

Цитата

Syntax error
Code: 0
Line: 32948723948 (Каждый раз другое значение, в зависимости от того с какой странички кликаю на линк)
Char: 1


В проекте присутствует множество JS файлов, разные библиотеки и плагины. С начало была мысль что что-то с чем-то конфликтует. Методом исключения удалял подключенные JS файлы. В результате осталось только самое необходимое для открытия попапа- Jquery.js, jquery.fancybox и frontend.js. 

Соответственно сам код

Линк который открывает попап
Код

<a class="popup_box" href="<%= categories_url :action => "new" %>"><%= t(:new) %></a>


В frontend.js инициализация попапа
Код

$(document).ready(function() {
   initialize_fancybox($("body"));
});

function initialize_fancybox(scope) {
    $(".popup_box", scope).fancybox({
        'overlayShow' : true,
        'scrolling': 'no',
        'autoScale': false,
        'padding': 0,
        'showCloseButton': false
    });
}


Контроллер categories action new
Код

def new
    @category = Category.new
    if request.xhr?
      request.format = :js
    end
      respond_to do |format|
        format.html {render}
        format.js {render :layout => "popup_form"}
      end
    end
  end


new.html.erb
Код

<form action="<%= categories_url :action => "new" %>" method="post">
  <div>
    <%= t(:new_category) %>:
  </div>
  <%= render :partial => "category_form" %>
</form>


В category_form ничего интересного простая форма с автокомплитом.

popup.form в папке layouts
Код

<div id="popup_box_white" class="box_form px350">
<%= yield %>
</div>


Лично мое мнение что что что-то не так с данными которые возвращает контроллер. На том конце скорее всего ожидают ответ в js формате а приходит простой хтмл. Я не особо разбираюсь в Javascript + AJAX потому буду благодарен если кто-то сможет помочь советом.
PM MAIL   Вверх
source777
Дата 3.10.2010, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(Hamman @  3.10.2010,  12:40 Найти цитируемый пост)
    if request.xhr?
      request.format = :js
    end

Что это за хрень?

Цитата(Hamman @  3.10.2010,  12:40 Найти цитируемый пост)
Замучила меня ошибка в IE8

А в браузерах работает без ошибки?

Цитата(Hamman @  3.10.2010,  12:40 Найти цитируемый пост)
Я не особо разбираюсь в Javascript + AJAX 

В RoR похоже тоже не особо,
Цитата

<a class="popup_box" href="<%= categories_url :action => "new" %>"><%= t(:new) %></a>

интересно что же продуцирует эта жесть?..
Видимо имелось в виду:
Код

<%= link_to t(:new), new_category_url, :class => "popup_box" %>


Цитата(Hamman @  3.10.2010,  12:40 Найти цитируемый пост)
Контроллер categories action new

А нафига нам здесь смотреть код new, когда ты переходишь по ссылке на index?

Это сообщение отредактировал(а) source777 - 3.10.2010, 15:17


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Hamman
Дата 3.10.2010, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Цитата

Что это за хрень?


это не мое изобретение но на сколько я понимаю это нужно просто для того что бы определить когда пришел аякс запрос. Без этой строчки он не пытается открыть попап а открывается просто новая страничка с формой. Не думаю что в этом проблема. 

Цитата

А в браузерах работает без ошибки?


Во всех браузерах все работает, даже в IE работает. В FF firebug не показывает никаких ошибок. Нужно просто убрать значок ошибки который высвечивается в IE в нижнем левом углу.

Цитата

А нафига нам здесь смотреть код new, когда ты переходишь по ссылке на index?


В каком месте я там перехожу на index?
Ссылка которую генерирует рор:
Код

<a href="http://localhost:3000/51-kontakte-verwalten/categories/new" class="popup_box">New</a>


Это сообщение отредактировал(а) Hamman - 3.10.2010, 15:28
PM MAIL   Вверх
source777
Дата 3.10.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(Hamman @  3.10.2010,  15:20 Найти цитируемый пост)
это не мое изобретение но на сколько я понимаю это нужно просто для того что бы определить когда пришел аякс запрос. 

Я имел в виду "request.format = :js". Ты пытаешься изменить формат запроса, который к тебе уже пришёл.

Цитата(Hamman @  3.10.2010,  15:20 Найти цитируемый пост)
Без этой строчки он не пытается открыть попап а открывается просто новая страничка с формой.

тебя обманули, если приложению пришёл запрос формата js, то оно его так и будет обрабатывать как format.js, а насильно менять формат запроса в коде - это извращение.
Если тебе настолько не нравится идея форматов запросов, что даже документацию лень почитать, то лучше уж не используй их вовсе, чем так.
Код

def new
  @category = Category.new
  render(:layout => "popup_form") if request.xhr?
end


Цитата(Hamman @  3.10.2010,  15:20 Найти цитируемый пост)
В каком месте я там перехожу на index?

categories_url(:action => "new") должно генерировать "/categories/?action=new"
Или у тебя устаревшие not-RESTful роуты до сих пор остались?..



--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
Hamman
Дата 3.10.2010, 17:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 3.10.2010

Репутация: нет
Всего: нет



Спасибо тебе за помощь. Проблема всетаки зарождалась в том что явно менялся формат реквеста. Насчет роутов - да, в этом проекте мы не придерживались RESTful роутов, это простой именованной роут.

Код

map.categories '/categories/:action/:id', :controller => 'categories', :path_prefix => '/:page_id'

PM MAIL   Вверх
source777
Дата 3.10.2010, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 12
Всего: 56



Цитата(Hamman @  3.10.2010,  17:43 Найти цитируемый пост)
map.categories '/categories/:action/:id', :controller => 'categories', :path_prefix => '/:page_id'

Ах, вот оно что, ну тогда просто имей в виду на будущее, что categories_url :action => "new" имеет весьма низкую читабельность, т.к. противоречит текущему соглашению о роутинге. Соглашение, как известно, в мире Rails превыше конфигурации. А подобный именованный роут - это как раз один из механизмов конфигурации.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.0683 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.