<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://8j0rn.dagbok.ru/history/Wp:JavaScript?feed=atom</id>
	<title>Wp:JavaScript - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://8j0rn.dagbok.ru/history/Wp:JavaScript?feed=atom"/>
	<link rel="alternate" type="text/html" href="https://8j0rn.dagbok.ru/history/Wp:JavaScript"/>
	<updated>2026-10-26T19:43:36Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://8j0rn.dagbok.ru/index.php?title=Wp:JavaScript&amp;diff=300&amp;oldid=prev</id>
		<title>8j0rn в 21:20, 21 марта 2025</title>
		<link rel="alternate" type="text/html" href="https://8j0rn.dagbok.ru/index.php?title=Wp:JavaScript&amp;diff=300&amp;oldid=prev"/>
		<updated>2025-03-21T21:20:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 00:20, 22 марта 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l80&quot;&gt;Строка 80:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 80:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function openMap(address, event) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;function openMap(address, event) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     const isMobile = /Android|webOS|iPhone|iPad|iPadOS|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     const isMobile = /Android|webOS|iPhone|iPad|iPadOS|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     const isIOS = /iPhone|iPad|iPod&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|iPadOS&lt;/ins&gt;/i.test(navigator.userAgent);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     const yandexMapsUrl = `https://yandex.ru/maps/?text=${address}`;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     const yandexMapsUrl = `https://yandex.ru/maps/?text=${address}`;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l230&quot;&gt;Строка 230:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 230:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     function openMap(address, event) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     function openMap(address, event) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         const isMobile = /Android|webOS|iPhone|iPad|iPadOS|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         const isMobile = /Android|webOS|iPhone|iPad|iPadOS|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         const isIOS = /iPhone|iPad|iPod&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|iPadOS&lt;/ins&gt;/i.test(navigator.userAgent);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         const yandexMapsUrl = `https://yandex.ru/maps/?text=${address}`;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;         const yandexMapsUrl = `https://yandex.ru/maps/?text=${address}`;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>8j0rn</name></author>
	</entry>
	<entry>
		<id>https://8j0rn.dagbok.ru/index.php?title=Wp:JavaScript&amp;diff=299&amp;oldid=prev</id>
		<title>8j0rn: Новая страница: «Разные интересности добавленные в качестве JS: ==1.1. Обертыши для адресов, телефонов и E-Mail через ID== Почему-то не всегда на все срабатывает. Но думаю найду причину. Пример HTML вставки: &lt;syntaxhighlight lang=&quot;html&quot;&gt; &lt;address id=&quot;mail&quot;&gt;mail@mail.ru&lt;/adress&gt; &lt;address id=&quot;tel_num&quot;&gt;+7 (999) 888-77-66&lt;/address&gt; &lt;address id=&quot;a...»</title>
		<link rel="alternate" type="text/html" href="https://8j0rn.dagbok.ru/index.php?title=Wp:JavaScript&amp;diff=299&amp;oldid=prev"/>
		<updated>2025-03-21T21:17:56Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «Разные интересности добавленные в качестве JS: ==1.1. Обертыши для адресов, телефонов и E-Mail через ID== Почему-то не всегда на все срабатывает. Но думаю найду причину. Пример HTML вставки: &amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt; &amp;lt;address id=&amp;quot;mail&amp;quot;&amp;gt;mail@mail.ru&amp;lt;/adress&amp;gt; &amp;lt;address id=&amp;quot;tel_num&amp;quot;&amp;gt;+7 (999) 888-77-66&amp;lt;/address&amp;gt; &amp;lt;address id=&amp;quot;a...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Разные интересности добавленные в качестве JS:&lt;br /&gt;
==1.1. Обертыши для адресов, телефонов и E-Mail через ID==&lt;br /&gt;
Почему-то не всегда на все срабатывает. Но думаю найду причину.&lt;br /&gt;
Пример HTML вставки:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;address id=&amp;quot;mail&amp;quot;&amp;gt;mail@mail.ru&amp;lt;/adress&amp;gt;&lt;br /&gt;
&amp;lt;address id=&amp;quot;tel_num&amp;quot;&amp;gt;+7 (999) 888-77-66&amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;lt;address id=&amp;quot;adress_lnk&amp;quot;&amp;gt;191186, Санкт-Петербург, Невский пр., д. 77/33&amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сам собственно код JS:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
function handleAddressElements() {&lt;br /&gt;
    // Обрабатываем &amp;lt;address id=&amp;quot;adress_lnk&amp;quot;&amp;gt;&lt;br /&gt;
    const addressLink = document.getElementById(&amp;#039;adress_lnk&amp;#039;);&lt;br /&gt;
    if (addressLink &amp;amp;&amp;amp; !addressLink.dataset.processed) {&lt;br /&gt;
        addressLink.dataset.processed = true;&lt;br /&gt;
        const text = encodeURIComponent(addressLink.textContent.trim());&lt;br /&gt;
        if (!text) {&lt;br /&gt;
            console.error(&amp;#039;Адрес пустой&amp;#039;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        const link = document.createElement(&amp;#039;a&amp;#039;);&lt;br /&gt;
        link.href = &amp;#039;#&amp;#039;;&lt;br /&gt;
        link.textContent = addressLink.textContent;&lt;br /&gt;
        link.addEventListener(&amp;#039;click&amp;#039;, function (event) {&lt;br /&gt;
            openMap(text, event);&lt;br /&gt;
        });&lt;br /&gt;
        addressLink.innerHTML = &amp;#039;&amp;#039;;&lt;br /&gt;
        addressLink.appendChild(link);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Обрабатываем &amp;lt;address id=&amp;quot;tel_num&amp;quot;&amp;gt;&lt;br /&gt;
    const telNum = document.getElementById(&amp;#039;tel_num&amp;#039;);&lt;br /&gt;
    if (telNum &amp;amp;&amp;amp; !telNum.dataset.processed) {&lt;br /&gt;
        telNum.dataset.processed = true;&lt;br /&gt;
        const phoneNumber = telNum.textContent.trim();&lt;br /&gt;
        if (!phoneNumber) {&lt;br /&gt;
            console.error(&amp;#039;Номер телефона пустой&amp;#039;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        telNum.style.cursor = &amp;#039;pointer&amp;#039;;&lt;br /&gt;
        telNum.addEventListener(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
            openPhoneModal(phoneNumber);&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Обрабатываем &amp;lt;address id=&amp;quot;mail&amp;quot;&amp;gt;&lt;br /&gt;
    const mailAddress = document.getElementById(&amp;#039;mail&amp;#039;);&lt;br /&gt;
    if (mailAddress &amp;amp;&amp;amp; !mailAddress.dataset.processed) {&lt;br /&gt;
        mailAddress.dataset.processed = true;&lt;br /&gt;
        const email = mailAddress.textContent.trim();&lt;br /&gt;
        if (!email) {&lt;br /&gt;
            console.error(&amp;#039;Email пустой&amp;#039;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        const mailtoLink = document.createElement(&amp;#039;a&amp;#039;);&lt;br /&gt;
        mailtoLink.href = `mailto:${email}`;&lt;br /&gt;
        mailtoLink.textContent = email;&lt;br /&gt;
        mailAddress.innerHTML = &amp;#039;&amp;#039;;&lt;br /&gt;
        mailAddress.appendChild(mailtoLink);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Обрабатываем элементы при загрузке страницы&lt;br /&gt;
document.addEventListener(&amp;#039;DOMContentLoaded&amp;#039;, handleAddressElements);&lt;br /&gt;
&lt;br /&gt;
// Отслеживаем добавление новых элементов&lt;br /&gt;
const observer = new MutationObserver(function (mutations) {&lt;br /&gt;
    mutations.forEach(function (mutation) {&lt;br /&gt;
        if (mutation.type === &amp;#039;childList&amp;#039;) {&lt;br /&gt;
            handleAddressElements();&lt;br /&gt;
        }&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
observer.observe(document.body, { childList: true, subtree: true });&lt;br /&gt;
&lt;br /&gt;
// Функция для открытия карты&lt;br /&gt;
function openMap(address, event) {&lt;br /&gt;
    const isMobile = /Android|webOS|iPhone|iPad|iPadOS|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);&lt;br /&gt;
    const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);&lt;br /&gt;
&lt;br /&gt;
    const yandexMapsUrl = `https://yandex.ru/maps/?text=${address}`;&lt;br /&gt;
    const googleMapsUrl = `https://www.google.com/maps/search/?api=1&amp;amp;query=${address}`;&lt;br /&gt;
    const appleMapsUrl = `http://maps.apple.com/?q=${address}`;&lt;br /&gt;
    const dgisUrl = `https://2gis.ru/search/${address}`;&lt;br /&gt;
&lt;br /&gt;
    if (isMobile) {&lt;br /&gt;
        const yandexWindow = window.open(yandexMapsUrl, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
        setTimeout(() =&amp;gt; {&lt;br /&gt;
            if (!yandexWindow || yandexWindow.closed || yandexWindow.innerHeight === 0) {&lt;br /&gt;
                if (isIOS) {&lt;br /&gt;
                    window.open(appleMapsUrl, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
                } else {&lt;br /&gt;
                    window.open(googleMapsUrl, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }, 500);&lt;br /&gt;
    } else {&lt;br /&gt;
        window.open(dgisUrl, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    event.preventDefault();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Функция для открытия модального окна с выбором действия для телефона&lt;br /&gt;
function openPhoneModal(phoneNumber) {&lt;br /&gt;
    const cleanedCallNumber = phoneNumber.replace(/[\s\-()]/g, &amp;#039;&amp;#039;);&lt;br /&gt;
    const cleanedWhatsappNumber = phoneNumber.replace(/[\s\-()+]/g, &amp;#039;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
    const modal = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
    modal.style.position = &amp;#039;fixed&amp;#039;;&lt;br /&gt;
    modal.style.top = &amp;#039;0&amp;#039;;&lt;br /&gt;
    modal.style.left = &amp;#039;0&amp;#039;;&lt;br /&gt;
    modal.style.width = &amp;#039;100%&amp;#039;;&lt;br /&gt;
    modal.style.height = &amp;#039;100%&amp;#039;;&lt;br /&gt;
    modal.style.backgroundColor = &amp;#039;rgba(0, 0, 0, 0.8)&amp;#039;;&lt;br /&gt;
    modal.style.zIndex = &amp;#039;1000&amp;#039;;&lt;br /&gt;
    modal.style.display = &amp;#039;flex&amp;#039;;&lt;br /&gt;
    modal.style.justifyContent = &amp;#039;center&amp;#039;;&lt;br /&gt;
    modal.style.alignItems = &amp;#039;center&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    const buttonContainer = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
    buttonContainer.style.backgroundColor = &amp;#039;rgba(255, 255, 255, 0.33)&amp;#039;;&lt;br /&gt;
    buttonContainer.style.padding = &amp;#039;150px 50px&amp;#039;;&lt;br /&gt;
    buttonContainer.style.borderRadius = &amp;#039;50px&amp;#039;;&lt;br /&gt;
    buttonContainer.style.border = &amp;#039;2px solid #ccc&amp;#039;;&lt;br /&gt;
    buttonContainer.style.textAlign = &amp;#039;center&amp;#039;;&lt;br /&gt;
    buttonContainer.style.boxShadow = &amp;#039;3px 3px 5px 0 rgba(0, 0, 0, 0.5)&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    const callButton = document.createElement(&amp;#039;button&amp;#039;);&lt;br /&gt;
    callButton.textContent = &amp;#039;Позвонить&amp;#039;;&lt;br /&gt;
    callButton.style.margin = &amp;#039;10px&amp;#039;;&lt;br /&gt;
    callButton.style.padding = &amp;#039;10px 20px&amp;#039;;&lt;br /&gt;
    callButton.style.backgroundColor = &amp;#039;#007BFF&amp;#039;;&lt;br /&gt;
    callButton.style.color = &amp;#039;#fff&amp;#039;;&lt;br /&gt;
    callButton.style.border = &amp;#039;3px solid rgb(0, 64, 128)&amp;#039;;&lt;br /&gt;
    callButton.style.borderRadius = &amp;#039;10px&amp;#039;;&lt;br /&gt;
    callButton.style.boxShadow = &amp;#039;3px 3px 5px 0 rgba(0, 0, 0, 0.5)&amp;#039;;&lt;br /&gt;
    callButton.style.cursor = &amp;#039;pointer&amp;#039;;&lt;br /&gt;
    callButton.addEventListener(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
        window.open(`tel:${cleanedCallNumber}`, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
        document.body.removeChild(modal);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    const whatsappButton = document.createElement(&amp;#039;button&amp;#039;);&lt;br /&gt;
    whatsappButton.textContent = &amp;#039;Написать в WhatsApp&amp;#039;;&lt;br /&gt;
    whatsappButton.style.margin = &amp;#039;10px&amp;#039;;&lt;br /&gt;
    whatsappButton.style.padding = &amp;#039;10px 20px&amp;#039;;&lt;br /&gt;
    whatsappButton.style.backgroundColor = &amp;#039;rgb(37,211,102)&amp;#039;;&lt;br /&gt;
    whatsappButton.style.color = &amp;#039;#fff&amp;#039;;&lt;br /&gt;
    whatsappButton.style.border = &amp;#039;3px solid rgb(16, 105, 51)&amp;#039;;&lt;br /&gt;
    whatsappButton.style.borderRadius = &amp;#039;10px&amp;#039;;&lt;br /&gt;
    whatsappButton.style.boxShadow = &amp;#039;3px 3px 5px 0 rgba(0, 0, 0, 0.5)&amp;#039;;&lt;br /&gt;
    whatsappButton.style.cursor = &amp;#039;pointer&amp;#039;;&lt;br /&gt;
    whatsappButton.addEventListener(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
        window.open(`https://wa.me/${cleanedWhatsappNumber}`, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
        document.body.removeChild(modal);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    const closeButton = document.createElement(&amp;#039;button&amp;#039;);&lt;br /&gt;
    closeButton.textContent = &amp;#039;Закрыть&amp;#039;;&lt;br /&gt;
    closeButton.style.margin = &amp;#039;10px&amp;#039;;&lt;br /&gt;
    closeButton.style.padding = &amp;#039;10px 20px&amp;#039;;&lt;br /&gt;
    closeButton.style.backgroundColor = &amp;#039;rgb(220,53,69)&amp;#039;;&lt;br /&gt;
    closeButton.style.color = &amp;#039;#fff&amp;#039;;&lt;br /&gt;
    closeButton.style.border = &amp;#039;3px solid rgb(110, 26, 34)&amp;#039;;&lt;br /&gt;
    closeButton.style.borderRadius = &amp;#039;10px&amp;#039;;&lt;br /&gt;
    closeButton.style.boxShadow = &amp;#039;3px 3px 5px 0 rgba(0, 0, 0, 0.5)&amp;#039;;&lt;br /&gt;
    closeButton.style.cursor = &amp;#039;pointer&amp;#039;;&lt;br /&gt;
    closeButton.addEventListener(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
        document.body.removeChild(modal);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    buttonContainer.appendChild(callButton);&lt;br /&gt;
    buttonContainer.appendChild(whatsappButton);&lt;br /&gt;
    buttonContainer.appendChild(closeButton);&lt;br /&gt;
&lt;br /&gt;
    modal.appendChild(buttonContainer);&lt;br /&gt;
&lt;br /&gt;
    document.body.appendChild(modal);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==1.2. Те же обертыши для адресов, телефонов и E-Mail, но уже через CLASS==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;js&amp;quot;&amp;gt;&lt;br /&gt;
document.addEventListener(&amp;#039;DOMContentLoaded&amp;#039;, function () {&lt;br /&gt;
    // Обрабатываем &amp;lt;address class=&amp;quot;adress_lnk&amp;quot;&amp;gt;&lt;br /&gt;
    const addressLinks = document.querySelectorAll(&amp;#039;.adress_lnk&amp;#039;);&lt;br /&gt;
    addressLinks.forEach(function (addressLink) {&lt;br /&gt;
        const text = encodeURIComponent(addressLink.textContent.trim());&lt;br /&gt;
        const link = document.createElement(&amp;#039;a&amp;#039;);&lt;br /&gt;
        link.href = &amp;#039;#&amp;#039;;&lt;br /&gt;
        link.textContent = addressLink.textContent;&lt;br /&gt;
        link.addEventListener(&amp;#039;click&amp;#039;, function (event) {&lt;br /&gt;
            openMap(text, event);&lt;br /&gt;
        });&lt;br /&gt;
        addressLink.innerHTML = &amp;#039;&amp;#039;;&lt;br /&gt;
        addressLink.appendChild(link);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Обрабатываем &amp;lt;address class=&amp;quot;tel_num&amp;quot;&amp;gt;&lt;br /&gt;
    const telNums = document.querySelectorAll(&amp;#039;.tel_num&amp;#039;);&lt;br /&gt;
    telNums.forEach(function (telNum) {&lt;br /&gt;
        const phoneNumber = telNum.textContent.trim();&lt;br /&gt;
        telNum.style.cursor = &amp;#039;pointer&amp;#039;;&lt;br /&gt;
        telNum.addEventListener(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
            openPhoneModal(phoneNumber);&lt;br /&gt;
        });&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Обрабатываем &amp;lt;address class=&amp;quot;mail&amp;quot;&amp;gt;&lt;br /&gt;
    const mailElements = document.querySelectorAll(&amp;#039;.mail&amp;#039;);&lt;br /&gt;
    mailElements.forEach(function (mailAddress) {&lt;br /&gt;
        const email = mailAddress.textContent.trim();&lt;br /&gt;
        if (!email) {&lt;br /&gt;
            console.error(&amp;#039;Email пустой&amp;#039;);&lt;br /&gt;
            return;&lt;br /&gt;
        }&lt;br /&gt;
        const mailtoLink = document.createElement(&amp;#039;a&amp;#039;);&lt;br /&gt;
        mailtoLink.href = `mailto:${email}`;&lt;br /&gt;
        mailtoLink.textContent = email;&lt;br /&gt;
        mailAddress.innerHTML = &amp;#039;&amp;#039;;&lt;br /&gt;
        mailAddress.appendChild(mailtoLink);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Функция для открытия карты&lt;br /&gt;
    function openMap(address, event) {&lt;br /&gt;
        const isMobile = /Android|webOS|iPhone|iPad|iPadOS|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);&lt;br /&gt;
        const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent);&lt;br /&gt;
&lt;br /&gt;
        const yandexMapsUrl = `https://yandex.ru/maps/?text=${address}`;&lt;br /&gt;
        const googleMapsUrl = `https://www.google.com/maps/search/?api=1&amp;amp;query=${address}`;&lt;br /&gt;
        const appleMapsUrl = `http://maps.apple.com/?q=${address}`;&lt;br /&gt;
        const dgisUrl = `https://2gis.ru/search/${address}`;&lt;br /&gt;
&lt;br /&gt;
        if (isMobile) {&lt;br /&gt;
            const yandexWindow = window.open(yandexMapsUrl, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
            setTimeout(() =&amp;gt; {&lt;br /&gt;
                if (!yandexWindow || yandexWindow.closed || yandexWindow.innerHeight === 0) {&lt;br /&gt;
                    if (isIOS) {&lt;br /&gt;
                        window.open(appleMapsUrl, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
                    } else {&lt;br /&gt;
                        window.open(googleMapsUrl, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }, 500);&lt;br /&gt;
        } else {&lt;br /&gt;
            window.open(dgisUrl, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        event.preventDefault();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Функция для открытия модального окна с выбором действия для телефона&lt;br /&gt;
    function openPhoneModal(phoneNumber) {&lt;br /&gt;
        const cleanedCallNumber = phoneNumber.replace(/[\s\-()]/g, &amp;#039;&amp;#039;);&lt;br /&gt;
        const cleanedWhatsappNumber = phoneNumber.replace(/[\s\-()+]/g, &amp;#039;&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
        const modal = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
        modal.style.position = &amp;#039;fixed&amp;#039;;&lt;br /&gt;
        modal.style.top = &amp;#039;0&amp;#039;;&lt;br /&gt;
        modal.style.left = &amp;#039;0&amp;#039;;&lt;br /&gt;
        modal.style.width = &amp;#039;100%&amp;#039;;&lt;br /&gt;
        modal.style.height = &amp;#039;100%&amp;#039;;&lt;br /&gt;
        modal.style.backgroundColor = &amp;#039;rgba(0, 0, 0, 0.8)&amp;#039;;&lt;br /&gt;
        modal.style.zIndex = &amp;#039;1000&amp;#039;;&lt;br /&gt;
        modal.style.display = &amp;#039;flex&amp;#039;;&lt;br /&gt;
        modal.style.justifyContent = &amp;#039;center&amp;#039;;&lt;br /&gt;
        modal.style.alignItems = &amp;#039;center&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
        const buttonContainer = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
        buttonContainer.style.backgroundColor = &amp;#039;rgba(255, 255, 255, 0.33)&amp;#039;;&lt;br /&gt;
        buttonContainer.style.padding = &amp;#039;150px 50px&amp;#039;;&lt;br /&gt;
        buttonContainer.style.borderRadius = &amp;#039;50px&amp;#039;;&lt;br /&gt;
        buttonContainer.style.border = &amp;#039;2px solid #ccc&amp;#039;;&lt;br /&gt;
        buttonContainer.style.textAlign = &amp;#039;center&amp;#039;;&lt;br /&gt;
        buttonContainer.style.boxShadow = &amp;#039;3px 3px 5px 0 rgba(0, 0, 0, 0.5)&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
        const callButton = document.createElement(&amp;#039;button&amp;#039;);&lt;br /&gt;
        callButton.textContent = &amp;#039;Позвонить&amp;#039;;&lt;br /&gt;
        callButton.style.margin = &amp;#039;10px&amp;#039;;&lt;br /&gt;
        callButton.style.padding = &amp;#039;10px 20px&amp;#039;;&lt;br /&gt;
        callButton.style.backgroundColor = &amp;#039;#007BFF&amp;#039;;&lt;br /&gt;
        callButton.style.color = &amp;#039;#fff&amp;#039;;&lt;br /&gt;
        callButton.style.border = &amp;#039;3px solid rgb(0, 64, 128)&amp;#039;;&lt;br /&gt;
        callButton.style.borderRadius = &amp;#039;10px&amp;#039;;&lt;br /&gt;
        callButton.style.boxShadow = &amp;#039;3px 3px 5px 0 rgba(0, 0, 0, 0.5)&amp;#039;;&lt;br /&gt;
        callButton.style.cursor = &amp;#039;pointer&amp;#039;;&lt;br /&gt;
        callButton.addEventListener(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
            window.open(`tel:${cleanedCallNumber}`, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
            document.body.removeChild(modal);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        const whatsappButton = document.createElement(&amp;#039;button&amp;#039;);&lt;br /&gt;
        whatsappButton.textContent = &amp;#039;Написать в WhatsApp&amp;#039;;&lt;br /&gt;
        whatsappButton.style.margin = &amp;#039;10px&amp;#039;;&lt;br /&gt;
        whatsappButton.style.padding = &amp;#039;10px 20px&amp;#039;;&lt;br /&gt;
        whatsappButton.style.backgroundColor = &amp;#039;rgb(37,211,102)&amp;#039;;&lt;br /&gt;
        whatsappButton.style.color = &amp;#039;#fff&amp;#039;;&lt;br /&gt;
        whatsappButton.style.border = &amp;#039;3px solid rgb(16, 105, 51)&amp;#039;;&lt;br /&gt;
        whatsappButton.style.borderRadius = &amp;#039;10px&amp;#039;;&lt;br /&gt;
        whatsappButton.style.boxShadow = &amp;#039;3px 3px 5px 0 rgba(0, 0, 0, 0.5)&amp;#039;;&lt;br /&gt;
        whatsappButton.style.cursor = &amp;#039;pointer&amp;#039;;&lt;br /&gt;
        whatsappButton.addEventListener(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
            window.open(`https://wa.me/${cleanedWhatsappNumber}`, &amp;#039;_blank&amp;#039;);&lt;br /&gt;
            document.body.removeChild(modal);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        const closeButton = document.createElement(&amp;#039;button&amp;#039;);&lt;br /&gt;
        closeButton.textContent = &amp;#039;Закрыть&amp;#039;;&lt;br /&gt;
        closeButton.style.margin = &amp;#039;10px&amp;#039;;&lt;br /&gt;
        closeButton.style.padding = &amp;#039;10px 20px&amp;#039;;&lt;br /&gt;
        closeButton.style.backgroundColor = &amp;#039;rgb(220,53,69)&amp;#039;;&lt;br /&gt;
        closeButton.style.color = &amp;#039;#fff&amp;#039;;&lt;br /&gt;
        closeButton.style.border = &amp;#039;3px solid rgb(110, 26, 34)&amp;#039;;&lt;br /&gt;
        closeButton.style.borderRadius = &amp;#039;10px&amp;#039;;&lt;br /&gt;
        closeButton.style.boxShadow = &amp;#039;3px 3px 5px 0 rgba(0, 0, 0, 0.5)&amp;#039;;&lt;br /&gt;
        closeButton.style.cursor = &amp;#039;pointer&amp;#039;;&lt;br /&gt;
        closeButton.addEventListener(&amp;#039;click&amp;#039;, function () {&lt;br /&gt;
            document.body.removeChild(modal);&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        buttonContainer.appendChild(callButton);&lt;br /&gt;
        buttonContainer.appendChild(whatsappButton);&lt;br /&gt;
        buttonContainer.appendChild(closeButton);&lt;br /&gt;
&lt;br /&gt;
        modal.appendChild(buttonContainer);&lt;br /&gt;
&lt;br /&gt;
        document.body.appendChild(modal);&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>8j0rn</name></author>
	</entry>
</feed>