Возможное решение, если у вас нет контроля над механизмом вставки, и вы вынуждены использовать innerHTML с маяками script
, состоит в том, чтобы перестроить DOM-узлы из «призрачных».
Это повторяющаяся проблема в индустрии ad-tech, в которой многие автоматизированные системы дублируют произвольный HTML-код (например, adservers ^^).
отлично работает в Chrome:
var s = wrap.getElementsByTagName('script');
for (var i = 0; i < s.length ; i++) {
var node=s[i], parent=node.parentElement, d = document.createElement('script');
d.async=node.async;
d.src=node.src;
parent.insertBefore(d,node);
parent.removeChild(node);
}
(вы можете проверить его в JSFiddle )
Вы должны определить класс в поле выбора следующим образом:
<%= f.select(:vacancy_type, [ ... ], {}, { class: 'my_style_class' }) %>