Динамически добавляемая таблица стилей учитывается, только если первая - PullRequest
1 голос
/ 23 марта 2019

Я динамически добавляю 2 таблицы стилей в WKWebView с локальным содержимым, загруженным с использованием loadFileURL.

Приложение какао вызывает следующий фрагмент javascript для добавления таблиц стилей.

var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.type = 'text/css';
link.title = csstype;
link.href = cssSheetPath1;
document.head.appendChild(link);

var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.type = 'text/css';
link.title = csstype;
link.href = cssSheetPath2;
document.head.appendChild(link);

2 таблицы стилей находятся в одном каталоге. Я могу загрузить первый или второй, но не оба одновременно. Если я пытаюсь загрузить оба, применяется только первый.

Есть идеи, откуда возникла проблема?

1 Ответ

1 голос
/ 23 марта 2019

Вы должны запустить это дважды.Создайте функцию и затем вызовите ее для обеих таблиц стилей.

const createLink = (cssSheetPath) => {
    const link = document.createElement('link');
    link.setAttribute('rel', 'stylesheet');
    link.type = 'text/css';
    link.href = cssSheetPath;
    document.head.appendChild(link);
}

createLink('style1.css');
createLink('style2.css');

добавил пример работающего кода: пример codesandbox


Если вы не используетефункции, тогда вы должны попытаться использовать два разных имени переменной:

var link = document.createElement('link');
link.setAttribute('rel', 'stylesheet');
link.type = 'text/css';
link.title = csstype;
link.href = cssSheetPath1;
document.head.appendChild(link);

var link1 = document.createElement('link');
link1.setAttribute('rel', 'stylesheet');
link1.type = 'text/css';
link1.title = csstype;
link1.href = cssSheetPath2;
document.head.appendChild(link1);

Я не могу проверить это с WKWebView.

...