Как обойти запрет браузера на чтение/изменение css из JavaScript?

178
07 мая 2018, 23:40

Всем привет!
У меня есть куча 'div'_ов, у которых внешний вид настраивается из классов CSS. Раньше менял с помощью вот такой фунции:

function f_changeCSSClass(typeAndClass, newRule, newValue){
    let target = null;
    let ruleSearch = null;
    let thisCSS = document.styleSheets[0];
    console.log(thisCSS.cssRules);
    if(thisCSS.cssRules){
        ruleSearch = thisCSS.cssRules;
        console.log('cssRules');
    }else{
        ruleSearch = thisCSS.rules;
        console.log('rules');
    }
    for(let i = 0; i < ruleSearch.length; i++){
        if(ruleSearch[i].selectorText == typeAndClass){
            target = ruleSearch[i];
            break;
        }
    }
    tagret.style[newRule] = newValue;
}


После обновления Chrome до x64 стала выползать ошибка:

Uncaught DOMException: Failed to read the 'cssRules' property from 'CSSStyleSheet': Cannot access rules
at f_changeCSSClass


Почитал - оказывается нельзя теперь вообще, даже, дышать на свойства CSS из JS и любое упоминание .cssRules вызывает ошибку.
Люди добрые, подскажите - как выкрутиться сейчас? Менять всё манулом через .style объекта - не вариант, их по 200 штук на странице. Вариант пока приходит в голову один - дописывать в head html
Спасибо!

Answer 1

Это популярное ошибка которое есть во многих сайтах а чтобы решить данную проблему проста добавьте в начало своих скриптов такой код crossorigin="anonymous"

READ ALSO
Ajax. При вызове данных по ключу из словаря получаю undefined

Ajax. При вызове данных по ключу из словаря получаю undefined

Имеется функция ajax, принимающая данные с формы и отправляющая их на сервер django в представлениеВ представлении производится проверка логина...

193
Получение MCC, MNC, LAC, CID из js

Получение MCC, MNC, LAC, CID из js

Доброго времени суток

206
Как вывести на страницу только одно значение из результата post запроса

Как вывести на страницу только одно значение из результата post запроса

В ответе из ajax запроса получаю такой резултат [{"msisdn":"999999999","debug_opt":false,"service":"prepaid"}] Как вывести только одно значение например "service": "prepaid" в читабельном...

154
Синхронизация MongoDB и Firebase

Синхронизация MongoDB и Firebase

Есть два приложенияУ обоих сервер на Node

129