Динамически добавленная таблица стилей учитывается, только если первая

Я динамически добавляю 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);

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

Любая идея, откуда может возникнуть проблема?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
31
1

Ответы 1

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

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');

добавлен пример работающего кода: пример кодов и песочницы


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

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.

Это именно то, что я делаю, и что не работает, поэтому мой вопрос.

AP. 23.03.2019 18:29

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

d-h-e 23.03.2019 18:33

Спасибо, я знаю, что это работает в браузере. Моя проблема связана с WKWebView, где он только один для первого. (если я их тоже поменяю местами)

AP. 23.03.2019 18:48

проблема остается прежней

AP. 23.03.2019 19:58

я нашел это -> ТАК ответ. Может быть, это помогает.

d-h-e 23.03.2019 20:07

Другие вопросы по теме