Извините, я новичок в JS, но он мне нужен для работы ...

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

<body onload="script();">

<script type="text/javascript">
var random = Math.floor(Math.random() * 2) + 1  ;
	
	if (random<1) {
	document.getElementById('ele').style.display = 'block';
};
</script>



<div style="display: none;" id="ele">Div-Box<br />
	</div>
</body>

Ура, пока

-2
till36 12 Июл 2017 в 11:32
Где твоя функция? (script();)
 – 
user6247920
12 Июл 2017 в 11:35
Если вы хотите, чтобы он отображался при каждом просмотре второй страницы , тогда случайное число не будет делать этого, очевидно, поскольку оно случайное ... вы не согласны?
 – 
vsync
12 Июл 2017 в 12:18
Также ваш код никогда не может работать, поскольку он написан выше div, поэтому с точки зрения сценария div не существует. скрипты должны быть написаны в конце тега body
 – 
vsync
12 Июл 2017 в 12:20

2 ответа

Использование random не гарантирует, что div будет отображаться каждый второй раз при загрузке страницы. Для этого вам нужно отслеживать, сколько раз пользователь открывал страницу. Вы можете сделать это в localStorage.

<body>
  <script>
    var viewCount = localStorage.getItem('viewCount') || 1; // default to 1 the first time
    if (viewCount % 2 === 0) { // if it's an even number
      document.getElementById('ele').setAttribute('style', 'display: block');
    }
  </script>
</body>
1
Luke Vella 12 Июл 2017 в 11:42

Помимо вашей логики, вы вызываете функцию script () на onload, но она не определена.

<body onload="script();">

<script type="text/javascript">
function script(){
var random = Math.floor(Math.random() * 2) + 1  ;
	console.log(random);
	if (random>1) {
	document.getElementById('ele').style.display = 'block';
};
}
</script>



<div style="display: none;" id="ele">Div-Box<br />
	</div>
</body>
0
Dinesh undefined 12 Июл 2017 в 11:36