Как добавить класс тела в Magento Go, когда браузер IE8? [закрыто

magento.stackexchange https://magento.stackexchange.com/questions/8101

  •  16-10-2019
  •  | 
  •  

Вопрос

Я использую следующее пользовательское обновление макета XML в Magento, чтобы добавить класс тела, если браузер IE8. В настоящее время этот код добавляет класс для каждого браузера вместо IE8. Как я могу написать это, чтобы это добавило только класс для IE8?

<reference name="root">
  <action method="addBodyClass">
    <classname>ie8</classname>
    <if>IE 8</if>
  </action>
</reference>
Это было полезно?

Решение

Редактировать

Добавьте JS ниже в нижнем колонтитуле. И это должно работать.

if (navigator.appName == "Microsoft Internet Explorer") {
    var ua = navigator.userAgent;
    var re = new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");
   //If the regEx through the userAgent is not null
   ieVersion = -1;
   if (re.exec(ua) != null) {
      //Set the IE version
      ieVersion = parseInt(RegExp.$1);
   }
   if (ieVersion == 8){
      $$('body')[0].addClassName('ie8');
   }
}

У меня нет опыта работы с Magento Go, но если это похоже на CE или EE, у вас должна быть текстовое сообщение на панели конфигурации, где вы можете добавить Разное JavaScript.

Старый ответ для Magento CE или EEТо, что вы пытаетесь, не сработает. А addBodyClass Мейход принимает только один параметр ... имя класса.
Что вы можете сделать, так это создать файл JS с этим контентом:

document.observe("dom:loaded", function() {
    $$('body')[0].addClassName('ie8');
});

Давайте назовем этот файл 'ie8.js' и поместим его в папку JS. Теперь в вашем файле макета добавьте это:

<default>
    <reference name="head">
        <action method="addItem">
           <type>js</type>
           <name>ie8.js</name>
           <params/><if>IE 8</if>
        </action>
    </reference>
</default>

Очистить кеш и попробовать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top