Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Почему может не работать скрипт? (https://javascript.ru/forum/dom-window/76058-pochemu-mozhet-ne-rabotat-skript.html)

madeas 30.11.2018 11:24

Почему может не работать скрипт?
 
Всем привет, сайт на ВП.
Как убрать по-умолчанию не знаю, поэтому хочу удалить атрибуты type='text/css' media='all' и type='text/javascript' из всех ссылок через js.
Они в принципе не мешают, но и разницы в их наличии/отсутствии нет. Хотя валидатор ругается :)

Подскажите, почему скрипт может не работать? В песочнице все работает.

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Comfortaa' type='text/css' media='all' />
    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Chakra+Petch" type='text/css' />
  </head>

  <body>

    <script>
      const linkRel = document.querySelectorAll("[rel='stylesheet']");
      linkRel.forEach(function(linkRel) {
        linkRel.removeAttribute('type');
        linkRel.removeAttribute('media');
      });

    </script>
    <style>
      .container {
        width: 100vw;
        height: 100vh;
        background-color: #333;
      }

    </style>
    <div class="container"></div>
  </body>

</html>

рони 30.11.2018 11:43

Цитата:

Сообщение от madeas
linkRel.forEach

в ie не работает.

madeas 30.11.2018 11:44

у меня убунту - хромиум, все равно не показывает

рони 30.11.2018 11:50

madeas,
а консоль что пишет? может load обернуть скрипт? или сделать проверку есть атрибут, только тогда его удалять.

madeas 30.11.2018 12:37

Ничего не пишет, проверка норм, но хз что не так.

Пришлось использовать php, оставлю тут, может кому пригодится.

add_filter('style_loader_tag', 'codeless_remove_type_attr', 10, 2);
add_filter('script_loader_tag', 'codeless_remove_type_attr', 10, 2);
function codeless_remove_type_attr($tag, $handle) {
    return preg_replace( "/type=['\"]text\/(javascript|css)['\"]/", '', $tag );
}

Nexus 30.11.2018 12:46

madeas, я бы на вашем месте не response обрабатывал, а посмотрел на функцию, которая скрипты регистрирует.


Часовой пояс GMT +3, время: 00:35.