Estoy tratando de hacer una versión premium de mi sitio web y permitir que solo los miembros premium vean algunos divs u oculten anuncios, etc. Quería hacerlo en función de las direcciones IP. Para eso busqué en la web y encontré este fragmento:
<script type="text/javascript" src="https://l2.io/ip.js?var=userip"></script> <script type="text/javascript"> if (userip== 0.0.0.0 || 1.1.1.1) { // More addresses as required. Given addresses are for example only document. getElementsByClassName('ads-here'). style. display = "none"; }</script> Pero como siempre, el código anterior no funciona. Traté de hacer document.write y el resultado sale perfectamente bien. Qué es lo que parece ser el problema aquí. Por favor explique.
Nota 1: todavía estoy aprendiendo JavaScript.
Nota 2: la plataforma de mi sitio web es Blogger (no sé si eso importa)
Intenta usar function() . Su src no está completamente listo, por lo que el userip es nulo userip == 0.0.0.0 siempre será falso.
<script type="text/javascript" src="https://l2.io/ip.js?var=userip"></script> <script type="text/javascript"> (function() { if (userip== 0.0.0.0 || 1.1.1.1) { // More addresses as required. Given addresses are for example only document. getElementsByClassName('ads-here'). style. display = "none"; } })(); </script> Editar: lo hizo funcionar. Primero debe definir userip . PD: Ublock Origin bloqueando l2.io.
<div class="ads-here"> dsgdfgadf </div> <script type="text/javascript"> var userip; </script> <script type="text/javascript" src="https://l2.io/ip.js?var=userip"></script> <script type="text/javascript"> (function() { if (userip == '0.0.0.0') { document. getElementsByClassName('ads-here')[0].style.display = "none"; } console.log(userip) })(); </script>Su código, document.getElementsByClassName('ads-here').style.display = "none"; , es incorrecto porque getElementsByClassName devuelve una HTMLCollection , no un Element . Tendrá que recorrer el resultado de document.getElementsByClassName('ads-here') y establecer su style.display en "none" . Ejemplo:
for (const element of document.getElementsByClassName('ads-here')) { element.style.display = "none"; }