Síguenos en nuestras redes sociales:
<br> </p><script src="<u>https://www.hitsbook.com/static/js/iframeResizer.init.js</a></u>"></script><p></p></div> </div> </div> </main> </div> <footer class="Page-footer" itemscope itemtype="https://schema.org/WPFooter"> <div class="flex-large"> <div class="Page-footerContent"> <div class="MagazinePromo" data-promo-type="external" data-module> <div class="MagazinePromo-media"> <i class="icon external"></i> <a class="Link" href="https://elle.mx/revista-digital-febrero-2025"> <img class="Image lazyload" src="/styleguide/assets/fallback-image.png" alt="Portada Elle a.jpg" data-src="https://cdn-3.expansion.mx/dims4/default/198a694/2147483647/strip/true/crop/800x1031+0+8/resize/225x290!/format/webp/quality/60/?url=https%3A%2F%2Fcdn-3.expansion.mx%2F4c%2F9a%2Fd136ff7745b3865d5e88870e5c99%2Fportada-elle-a.jpg" data-srcset="https://cdn-3.expansion.mx/dims4/default/8c0b622/2147483647/strip/true/crop/800x1031+0+8/resize/450x580!/format/webp/quality/60/?url=https%3A%2F%2Fcdn-3.expansion.mx%2F4c%2F9a%2Fd136ff7745b3865d5e88870e5c99%2Fportada-elle-a.jpg 2x" width="225" height="290" > </a> </div> <div class="MagazinePromo-info"> </div> </div> <nav class="Navigation" itemscope itemtype="http://schema.org/SiteNavigationElement"> <ul class="Navigation-items"> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://elle.mx/aviso-legal-y-de-privacidad?utm_source=internal&utm_medium=link-recommended">Aviso legal y de privacidad</a> </div> </div> </li> </ul> </nav> <nav class="Navigation" itemscope itemtype="http://schema.org/SiteNavigationElement"> <ul class="Navigation-items"> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://grupoexpansion.com/programa-de-etica-integridad-y-compliance/" target="_blank">Compliance</a> </div> </div> </li> </ul> </nav> <nav class="Navigation" itemscope itemtype="http://schema.org/SiteNavigationElement"> <ul class="Navigation-items"> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://grupoexpansion.com/media-kits/" target="_blank">Anúnciate con nosotros</a> </div> </div> </li> </ul> </nav> </div> </div> <div class="flex-small"> <div class="Page-social"> <div class="SocialBar"> <p class="SocialBar-heading">Síguenos en nuestras redes sociales:</p> <ul class="SocialBar-items"> <li class="SocialBar-items-item"><a class="SocialLink" href="https://twitter.com/ELLEMexico" target="_blank" data-social-service="twitter">ELLEMexico</a></li> <li class="SocialBar-items-item"><a class="SocialLink" href="https://www.instagram.com/elle_mexico/" target="_blank" data-social-service="instagram">elle_mexico</a></li> <li class="SocialBar-items-item"><a class="SocialLink" href="https://www.pinterest.com/ellemexico" target="_blank" data-social-service="pinterest">ellemexico</a></li> <li class="SocialBar-items-item"><a class="SocialLink" href="https://www.facebook.com/ElleMexicoOficial" target="_blank" data-social-service="facebook">ElleMexicoOficial</a></li> </ul> </div> </div> <p>Visita otros sitios del grupo:</p> <div class="Page-footerNavigation"> <nav class="Navigation" itemscope itemtype="http://schema.org/SiteNavigationElement"> <ul class="Navigation-items"> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://www.quien.com/" target="_blank">Quién</a> </div> </div> </li> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://lifeandstyle.expansion.mx/" target="_blank">Life and Style</a> </div> </div> </li> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://expansion.mx/" target="_blank">Expansión</a> </div> </div> </li> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://politica.expansion.mx/" target="_blank">Política</a> </div> </div> </li> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://obras.expansion.mx/" target="_blank">Obras</a> </div> </div> </li> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://esg.expansion.mx/">ESG</a> </div> </div> </li> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://mujeres.expansion.mx/">Mujeres</a> </div> </div> </li> <li class="Navigation-items-item" > <div class="NavigationItem"> <div class="NavigationItem-text"> <a class="NavigationItem-text-link" href="https://grupoexpansion.com/" target="_blank">Grupo Expansión</a> </div> </div> </li> </ul> </nav> </div> <div class="Page-richTextDisclaimer"><p><img style="max-width:120px;" src="https://cdn-3.expansion.mx/16/67/192d358846b2bef67e880927ed50/comscore-logo-new-white.gif" alt="comscore" data-src="https://cdn-3.expansion.mx/16/67/192d358846b2bef67e880927ed50/comscore-logo-new-white.gif" class="lazyloaded" width="100px" height="15"> Lifestyle</p><p>© 2025 Derechos Reservados Expansión, S.A. de C.V.</p></div> </div> </footer> <select data-skin-selector style="position: fixed; top: 0px; right: 0px; z-index: 999999999;"> <option value="https://cdn-3.expansion.mx/resource/0000016e-d155-dcec-a17e-dfddd98e0000/styleguide/skins/expansion/All.min.2353e637ab39b907be7a7fd015cf42dc.gz.css">Expansion</option> <option value="https://cdn-3.expansion.mx/resource/0000016e-d155-dcec-a17e-dfddd98e0000/styleguide/skins/expansion22/All.min.d196b0417ab81e201663e1fd37c06ff6.gz.css">Expansion22</option> <option value="/styleguide/skins/ESG/All.min.css">ESG</option> <option value="https://cdn-3.expansion.mx/resource/0000016e-d155-dcec-a17e-dfddd98e0000/styleguide/skins/lifeandstyle/All.min.cbe071bf4c9a7d870a2944e42ad5e4b0.gz.css">LS</option> <option value="https://cdn-3.expansion.mx/resource/0000016e-d155-dcec-a17e-dfddd98e0000/styleguide/skins/politico/All.min.6c9a495a6ea2364d782ef69666bffd60.gz.css">Politico</option> <option value="https://cdn-3.expansion.mx/resource/0000016e-d155-dcec-a17e-dfddd98e0000/styleguide/skins/quien/All.min.9c99e33d7e979ff5d182410d72a0402d.gz.css">Quien</option> <option value="https://cdn-3.expansion.mx/resource/0000016e-d155-dcec-a17e-dfddd98e0000/styleguide/skins/manufactura/All.min.20bbdd2730d93f08448438c0985cff6d.gz.css">Manufactura</option> <option value="https://cdn-3.expansion.mx/resource/0000016e-d155-dcec-a17e-dfddd98e0000/styleguide/skins/obras/All.min.243a45231ee8f1830821ff6b913c8172.gz.css">Obras</option> <option value="https://cdn-3.expansion.mx/resource/0000016e-d155-dcec-a17e-dfddd98e0000/styleguide/skins/elle/All.min.fdaf193948539c66a57d1568665b11da.gz.css">Elle</option> </select> <!-- The core Firebase JS SDK is always required and must be listed first --> <script src="https://www.gstatic.com/firebasejs/8.7.0/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/8.7.0/firebase-messaging.js"></script> <!-- TODO: Add SDKs for Firebase products that you want to use https://firebase.google.com/docs/web/setup#available-libraries --> <script src="https://www.gstatic.com/firebasejs/8.7.0/firebase-analytics.js"></script> <script> // Your web app's Firebase configuration // For Firebase JS SDK v7.20.0 and later, measurementId is optional var firebaseConfig = { apiKey: "AIzaSyB1V6fyXf9X78jfzAfiJlOnEiQJKAN6dZM", authDomain: "expansion-live-v2.firebaseapp.com", projectId: "expansion-live-v2", storageBucket: "expansion-live-v2.appspot.com", messagingSenderId: "463925564676", appId: "1:463925564676:web:734cee1fbab82303bbec51", measurementId: "G-GF9ETF78BK" }; // Initialize Firebase firebase.initializeApp(firebaseConfig); firebase.analytics(); console.log('init firebase') function init (firebase) { // import * as firebase from 'firebase' var metas = document.getElementsByTagName('meta') var currentTopic = '' for (let i = 0; i < metas.length; i++) { if (metas[i].getAttribute('property') === 'og:site_name') { currentTopic = metas[i].getAttribute('content') } } // Remove accents currentTopic = currentTopic.normalize('NFD').replace(/[\u0300-\u036f]/g, '') // Replace ampersand currentTopic = currentTopic.replace('&', 'and') // Replace ampersand currentTopic = currentTopic.replace(/ /g, '-') currentTopic = currentTopic.toLowerCase() console.log('Notification Topic: ' + currentTopic) // window.localStorage.getItem('sentToServer') = 0 const messaging = firebase.messaging() // console.log('Before registration') navigator.serviceWorker.register('/firebase-messaging-sw-v51.js') .then(function (registration) { // console.log('In then func') messaging.useServiceWorker(registration) // Request for permission messaging.requestPermission() .then(function () { console.log('Notification permission granted.') messaging.getToken({vapidKey: 'BB64uCankUazMsuERcKyBArL6ChYNhc5RxVsarBTWqgv6fTOMGtsT2VtVxdnrVUrj5Skb8M-3e4Rh8UaHAIelaU'}) .then(function (currentToken) { if (currentToken) { console.log('Token: ' + currentToken) sendTokenToServer(currentToken) } else { console.log('No Instance ID token available. Request permission to generate one.') // setTokenSentToServer(false) } }) .catch(function (err) { console.log('An error occurred while retrieving token. ', err) // setTokenSentToServer(false); }) }) .catch(function (err) { console.log('Unable to get permission to notify.', err) }) }) .catch(function (err) { console.log('Service Worker Failed to Register', err) }) // Handle incoming messages messaging.onMessage(function (payload) { console.log('Notification received: ', JSON.stringify(payload)) // var space = document.getElementById('not-text') // space.textContent = JSON.stringify(payload) }) // Callback fired if Instance ID token is updated. messaging.onTokenRefresh(function () { messaging.getToken() .then(function (refreshedToken) { console.log('Token refreshed.') // Indicate that the new Instance ID token has not yet been sent // to the app server. // setTokenSentToServer(false) // Send Instance ID token to app server. sendTokenToServer(refreshedToken) }) .catch(function (err) { console.log('Unable to retrieve refreshed token ', err) }) }) // Send the Instance ID token your application server, so that it can: // - send messages back to this app // - subscribe/unsubscribe the token from topics function sendTokenToServer (currentToken) { // if (!isTokenSentToServer()) { console.log('Sending token to server...') //const url = '/subscribe' const url = '/v2/subscribe' const data = { token: '' + currentToken, topic: '' + currentTopic } try { fetch(url, { method: 'POST', // or 'PUT' body: JSON.stringify(data), // data can be `string` or {object}! headers: { 'Content-Type': 'application/json' } }).then(function (response) { let json = response.json() if (response.status !== 200) { console.log('Looks like there was a problem. Status Code: ' + response.status + ' ' + JSON.stringify(response)) return } console.log('Success:', JSON.stringify(json)) }) } catch (error) { console.error('Error:', error) } // setTokenSentToServer(true); /* } else { console.log('Token already sent to server so won\'t send it again ' + 'unless it changes'); } */ } /* function isTokenSentToServer() { return window.localStorage.getItem('sentToServer') = 1 } function setTokenSentToServer(sent) { window.localStorage.setItem('sentToServer', sent ? 1 : 0) } */ } let lastKnownScrollPosition = 0; let ticking = false; let show_message = false; function doSomething(scrollPos) { // Do something with the scroll position //console.log('Scroll data '+scrollPos) //console.log(show_message) if(scrollPos > 900 && !show_message){ console.log('call firebase') console.log(show_message) show_message = true; init(firebase) } } document.addEventListener("scroll", (event) => { lastKnownScrollPosition = window.scrollY; if (!ticking) { window.requestAnimationFrame(() => { doSomething(lastKnownScrollPosition); ticking = false; }); ticking = true; } }); </script> </body> </html>