Изменить тело с помощью оператора if else - url - PullRequest
0 голосов
/ 21 декабря 2018

Если url - это субдомен http://one.example.com/dsnknw?211218, то показать div один, если http://two.example.com/ppppnw?201218, чем показать div два.

У каждого тела есть фоновое изображение

<style>
#siteone {
background: url(http://example.info/backgroundone.PNG); 
    background-repeat: no-repeat;
    background-size:cover;
    }
#sitetwo {
    background: url(http://example.info/backgroundtwo.PNG); 
    background-repeat: no-repeat;
    background-size:cover;
    }
</style>

и ссылка, связанная:

<div id="one">
<a id="link1" href="https://click.com" target="_top"></a>
</div>

<div id="two">
<a id="link2" href="https://click2.com" target="_top"></a>
</div>

Я пробовал несколько кодов, включая

document.getElementById("body")

Класс изменения идентификатора на основе URL - своп изображения на основе URL - Создание условного оператора на основе URL страницы ETC

1 Ответ

0 голосов
/ 21 декабря 2018

Судя по комментариям Хуана, два тега body не подходят для этого.https://developer.mozilla.org/en-US/docs/Web/HTML/Element#Sectioning_root. Вместо этого вы должны использовать родительские оболочки.

<div class="parent">
<a id="link2" href="https://click.com" target="_top"></a>
</div>

Использование window.location поможет вам разобрать текущий URL, чтобы вы могли правильно делать то, что вам нужно.

Я бы запросил элемент с атрибутом href window.location.href, а затем получил .parentElement, чтобы получить прямого родителя.

const url = window.location.href;
const targetParent = document.querySelector('.parent a[href="' + url + '"]').parentElement;

targetBody.style.display = "block";

Это не будет работать, если <a> находится где-то глубже,В таком случае я бы сказал добавить еще один атрибут для родителя, чтобы мы могли напрямую запросить его.

<div class="parent" url="https://click.com">
<a id="link2" href="https://click.com" target="_top"></a>
</div>

затем

const url = window.location.href;
const targetParent = document.querySelector('.parent[url="' + url + '"]').parentElement;

Если в вашем URL есть другие дополнительные строки, такие как http://click.com?id=foobarтогда это тоже не сработает.Вам нужно будет вручную объединить другие свойства из window.location, чтобы вы могли получить только то, что вам нужно.

const baseDomainWithSubPath = window.location.origin + "/" + window.location.pathname;
const baseDomain = window.location.origin;
const subDomain = window.location.pathname;
...