Код отложенной загрузки Яндекс карты - для 2х карт

unycom
На сайте с 28.12.2010
Offline
155
648

Вот такой рабочий код:

<div id="yamap"></div>
<script>
let ok = false;                    
window.addEventListener('scroll', function() {
    if (ok === false) {
        ok = true;    
        setTimeout(() => {                    
            let script = document.createElement('script');
            script.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Aa6cde058a66c375fba506b2e909829154c9a77294f925bb90c5d35fa82c3f221&amp;amp;width=100%25&amp;height=320&amp;lang=ru_RU&amp;scroll=false';
            document.getElementById('yamap').replaceWith(script);                        
        }, 1000)    
    }
});     
</script>

Но для 2х карт не работает. Первая карта грузится, вторая нет.

ymap в айди и getelementbyld менял























Раздел имущества между супругами - https://www.razdel-imuscestva.ru/
W1
На сайте с 22.01.2021
Offline
306
#1
unycom :

Но для 2х карт не работает. Первая карта грузится, вторая нет.

Наоборот. Вторая грузится. То есть сначала грузится первая, а потом вторая. Вы же не привели полный код - только для одного элемента. А где второй элемент? Его нет? Тогда Вы просто переставляете этот единственный элемент из первого блока во второй. Нужен второй элемент для вставки во второй блок.
Мой форум - https://webinfo.guru –Там я всегда на связи
unycom
На сайте с 28.12.2010
Offline
155
#2
webinfo #:
Наоборот. Вторая грузится. То есть сначала грузится первая, а потом вторая. Вы же не привели полный код - только для одного элемента. А где второй элемент? Его нет? Тогда Вы просто переставляете этот единственный элемент из первого блока во второй. Нужен второй элемент для вставки во второй блок.

Выкладываю полный код. Вторая не грузится

<div id="yamap"></div>
<script>
let ok = false;                    
window.addEventListener('scroll', function() {
    if (ok === false) {
        ok = true;    
        setTimeout(() => {                    
            let script = document.createElement('script');
            script.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Aa6cde058a66c375fba506b2e909829154c9a77294f925bb90c5d35fa82c3f221&amp;amp;width=100%25&amp;height=320&amp;lang=ru_RU&amp;scroll=false';
            document.getElementById('yamap').replaceWith(script);                        
        }, 1000)    
    }
});    
</script>


<div id="yamap2"></div>
<script>
let ok = false;                    
window.addEventListener('scroll', function() {
    if (ok === false) {
        ok = true;    
        setTimeout(() => {                    
            let script = document.createElement('script');
            script.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3A689210c617d6098dca349d0a7dc2b9f7e88c1602edf9450b0bfbeac3aeca7b1e&amp;amp;width=100%25&amp;height=400&amp;lang=ru_RU&amp;scroll=false';
            document.getElementById('yamap2').replaceWith(script);                        
        }, 2000)    
    }
});    
</script>
D.iK.iJ
На сайте с 26.05.2013
Offline
229
#3

Во 2 случае ok надо бы заменить на ok2. Кажется, дело в этом:

Uncaught SyntaxError: Identifier 'ok' has already been declared
Адаптивный дизайн в 2 строчки ( https://dikij.com/wm/adaptaciya-saytov.php ). + Принимаю заказы любой сложности ( https://searchengines.guru/ru/forum/926323 ). 💎 Еще я делаю классные кулоны с опалами ( https://mosaicopal.ru/ ).
unycom
На сайте с 28.12.2010
Offline
155
#4
D.iK.iJ #:

Во 2 случае ok надо бы заменить на ok2. Кажется, дело в этом:

поменял во второй карте все три ОК на ОК2, заработало

<div id="yamap"></div>
<script>
let ok = false;                    
window.addEventListener('scroll', function() {
    if (ok === false) {
        ok = true;    
        setTimeout(() => {                    
            let script = document.createElement('script');
            script.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Aa6cde058a66c375fba506b2e909829154c9a77294f925bb90c5d35fa82c3f221&amp;amp;width=100%25&amp;height=320&amp;lang=ru_RU&amp;scroll=false';
            document.getElementById('yamap').replaceWith(script);                        
        }, 1000)    
    }
});    
</script>

<hr class="hrtop">
<p><strong>Адреса мест встреч с выездным адвокатом:</strong></p>


<div id="yamap2"></div>
<script>
let ok2 = false;                    
window.addEventListener('scroll', function() {
    if (ok2 === false) {
        ok2 = true;    
        setTimeout(() => {                    
            let script = document.createElement('script');
            script.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3A689210c617d6098dca349d0a7dc2b9f7e88c1602edf9450b0bfbeac3aeca7b1e&amp;amp;width=100%25&amp;height=400&amp;lang=ru_RU&amp;scroll=false';
            document.getElementById('yamap2').replaceWith(script);                        
        }, 1000)    
    }
});    
</script>
W1
На сайте с 22.01.2021
Offline
306
#5
unycom #:
поменял во второй карте все три ОК на ОК2, заработало

Лучше так:

<div id="yamap"></div>
<hr class="hrtop">
<p><strong>Адреса мест встреч с выездным адвокатом:</strong></p>
<div id="yamap2"></div>
<script>
let ok = false;                    
window.addEventListener('scroll', function() {
    if (ok === false) {
        ok = true;    
        setTimeout(() => {                    
            let script = document.createElement('script');
            let script1 = document.createElement('script');                    
            script.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Aa6cde058a66c375fba506b2e909829154c9a77294f925bb90c5d35fa82c3f221&amp;amp;amp;width=100%25&amp;height=320&amp;lang=ru_RU&amp;scroll=false';
            script1.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3A689210c617d6098dca349d0a7dc2b9f7e88c1602edf9450b0bfbeac3aeca7b1e&amp;amp;amp;width=100%25&amp;height=400&amp;lang=ru_RU&amp;scroll=false';
            document.getElementById('yamap').replaceWith(script);
            document.getElementById('yamap2').replaceWith(script1);                        
        }, 1000)    
    }
});    
</script>
unycom
На сайте с 28.12.2010
Offline
155
#6
webinfo #:
<div id="yamap"></div>
<hr class="hrtop">
<p><strong>Адреса мест встреч с выездным адвокатом:</strong></p>
<div id="yamap2"></div>
<script>
let ok = false;                    
window.addEventListener('scroll', function() {
    if (ok === false) {
        ok = true;    
        setTimeout(() => {                    
            let script = document.createElement('script');
            let script1 = document.createElement('script');                    
            script.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3Aa6cde058a66c375fba506b2e909829154c9a77294f925bb90c5d35fa82c3f221&amp;amp;amp;width=100%25&amp;height=320&amp;lang=ru_RU&amp;scroll=false';
            script1.src = 'https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3A689210c617d6098dca349d0a7dc2b9f7e88c1602edf9450b0bfbeac3aeca7b1e&amp;amp;amp;width=100%25&amp;height=400&amp;lang=ru_RU&amp;scroll=false';
            document.getElementById('yamap').replaceWith(script);
            document.getElementById('yamap2').replaceWith(script1);                        
        }, 1000)    
    }
});    
</script>

Спасибо, красивый код!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий