0

В моем приложении rails, когда пользователь нажимает кнопку, браузер отправляет запрос на отправку js, контроллер вычисляет некоторые вещи, а затем возвращает js SweetAlert2 (swal) в браузер.рельсы SweetAlert 2 не работает в ie11

Он отлично работает на хромах, firefox и сафари. Но на ie11 ничего не происходит, когда нажимается кнопка! Любая идея почему?

Вот кнопка submit_tag в представлении, которое отправляет запрос на отправку js.

<%= form_tag('check_exemption', remote: true) do %> 
    # Here are some radio buttons that are used to pass parameters to the controller. 

    <p><%= submit_tag('Check Exemption', class: 'btn btn-danger btn-block btn-xl') %></p> 
<% end %> 

Вот маршрут:

post ':action', to: 'protected_assets#check_exemption' 

Здесь действие в protected_assets_controller:

def check_exemption 
    # Here the controller calculates some stuff to be returned in the swal below. 

    respond_to do |format| 
    format.html { redirect_to root_url } 
    format.js { render js: "swal('#{@financial_product.product_exemption_text}', '#{@financial_product.twelve_months_exempt_text} #{@financial_product.withdrawals_exemption_text}', '#{@financial_product.swal_type}')" } 
    end 
end 

Здесь ie11 осмотрите панель, где мы видим, что swal возвращается правильно. Однако, swal не отображается на экране! Обратите внимание, что страница также не перенаправляются root_url как следует, если запрос был запрос HTML вместо JS:

ie 11 panel

Я любитель новичка в рельсы, веб-разработке, JavaScript, HTML, css и т. д. Поэтому напишите свой ответ так, как будто вы разговариваете с ребенком или мудрой собакой.

ответ

1

Я нашел свой ответ.

Я использую драгоценный камень 'rails-assets-sweetalert2' от rails-assets.org. В инструкциях говорится, что вам нужно добавить //= require sweetalert2 в application.js.

Однако я обнаружил, что вам также необходимо добавить //= require es6-promise, потому что драгоценный камень «рельсы-активы-sweetalert2» зависит от драгоценности «rails-assets-es6-prom» для совместимости с IE.

Все работает так, как ожидалось.