Как условно загрузить файл? - PullRequest
0 голосов
/ 31 марта 2020

Может кто-нибудь предложить мне способ условной загрузки файла css или javascript, то есть только если URL доступен?

Например, на моей странице у меня есть следующие файлы:

<html>
...
<link rel="stylesheet" type="text/css" href="https://service.test/css/a.css"/>
<script type="text/javascript" src="https://services.test/js/a.js"></script>
...
</html>

Есть ли способ проверить, доступен ли https://service.test/css/a.css, и если да, загрузить этот ресурс (то же самое для https://services.test/js/a.js)?

1 Ответ

0 голосов
/ 31 марта 2020

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

<html>
<link rel="stylesheet" type="text/css" href="https://service.test/css/a.css"/>
<body>

</body>

<script>
// you will have to manuall define the pairs (keys are stylesheets and values are scripts you want to load)
const pairs = {
    "https://service.test/css/a.css": "https://services.test/js/a.js"
}

let styles = document.querySelectorAll("link[rel='stylesheet'][type='text/css'][href]");

styles.forEach(s => {
  if(pairs[s.href]){
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = pairs[s.href];    
    document.getElementsByTagName('head')[0].appendChild(script);
  }
});
</script>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...