¿Odias los anuncios? Ir Sin publicidad Hoy

Generador de alimentación RSS / Atom

DatosDesarrolladorTexto
ANUNCIO · ¿ELIMINAR?

Metadatos del feed

La URL canónica del sitio web que representa este feed.
URL canónica opcional del feed en sí mismo (usada en atom:link rel=self).
Código de idioma ISO (por ejemplo, en, en-us, fr).
Identificador permanente y único para el feed. Por defecto, es la URL del sitio.

Elementos

Un elemento por bloque. Use líneas en formato 'clave: valor'. Separe los elementos con una línea que contenga solo '---'. Claves reconocidas: título, enlace, descripción, contenido, pubDate, guid, autor, categoría.
ANUNCIO · ¿ELIMINAR?

Guía

Cree un feed XML estrictamente conforme a la especificación de RSS 2.0 o Atom 1.0 en segundos. Complete sus metadatos del canal, pegue un bloque de elementos y copie o descargue un feed

Generador de alimentación RSS / Atom

Cree un feed XML estrictamente conforme a la especificación de RSS 2.0 o Atom 1.0 en segundos. Complete sus metadatos del canal, pegue un bloque de elementos y copie o descargue un feed que pase el validador W3C en la primera intento — escape XML adecuado, fechas RFC 822 / RFC 3339, contenido envuelto en CDATA, espacios de nombres, y un enlace a sí mismo, todo gestionado para usted.

Cómo Usar

  1. Elige el tipo de feed: RSS 2.0 (mayor soporte para lectores) o Atom 1.0 (especificación más estricta, con espacios de nombres).
  2. Complete los metadatos del feed — título, URL del sitio, descripción y cualquier campo opcional como idioma, derechos de autor o autor.
  3. Opcionalmente proporcione un URL del propio feed así los lectores pueden rediscovery el feed (añadido como atom:link rel="self").
  4. Pegue sus elementos en el campo de elementos. Cada elemento es un bloque de key: value líneas; separe los elementos con una línea que contenga solo ---.
  5. El XML generado aparece a la derecha mientras escribe. Cópielo o haga clic en Descargar para guardar feed.xml / atom.xml.

Características

  • RSS 2.0 y Atom 1.0 — Alternar entre los dos esquemas; los campos de metadatos adecuados aparecen automáticamente.
  • Escapado estricto de XML&, <, >, "y ' se escapan en los lugares adecuados.
  • Formato de fechas RFC 822 & RFC 3339 — Introduzca cualquier fecha razonable (ISO 8601, YYYY-MM-DD HH:MM:SS, o fechas simples); la herramienta emite el formato correcto para el tipo de feed elegido.
  • Contenido envuelto en CDATA — Usa content: para cuerpos completos de artículos HTML; la herramienta los envuelve de forma segura y divide cualquier secuencia extraña ]]> .
  • Categorías y etiquetas — Valores separados por comas category se renderizan como elementos separados <category> en RSS o <category term=""/> entradas en Atom.
  • Validación en tiempo real — Advertencias en línea indican campos faltantes, fechas no interpretables y URLs inválidas para que el feed pase analizadores estrictos como Feedparser.
  • Enlace a sí mismo y etiqueta de generador — Opcional para ambos formatos, más un enlace autoinsertado atom:link rel="self" Cero tránsito de red <generator> elemento.
  • — Todo funciona en el navegador; sus datos de feed nunca abandonan la página. ¿Cuál es la diferencia entre RSS 2.0 y Atom 1.0?

Preguntas frecuentes

  1. Ambos son formatos XML para publicar contenido actualizado frecuentemente, pero fueron diseñados de forma diferente. RSS 2.0 es más antiguo, más simple y menos estricto sobre qué campos son obligatorios — los elementos pueden tener solo un título o solo una descripción. Atom 1.0 llegó más tarde (2005) como estándar de IETF, con reglas más estrictas: cada entrada necesita un único , un

    ¿Por qué es tan importante el formato de fecha en los feeds? , y una marca de tiempo. Atom también utiliza espacios de nombres XML correctamente y admite ambos resúmenes y contenido completo como elementos distintos, mientras que RSS sobrecarga los elementos para ambos.</p> </div> </li> <li id="faq-question-1780452523995" class="rank-math-list-item"> <h4 class="rank-math-question">Los lectores de feeds analizan las fechas para ordenar entradas, detectar nuevos elementos y mostrar marcas de tiempo como "publicado hace 2 horas". Los dos formatos usan convenciones de fechas diferentes: RSS 2.0 exige RFC 822 (por ejemplo, "Wed, 15 Jan 2025 10:30:00 +0000"), mientras que Atom 1.0 exige RFC 3339 / ISO 8601 (por ejemplo, "2025-01-15T10:30:00Z"). Un feed con fechas mal formateadas puede ser rechazado silenciosamente por analizadores estrictos como feedparser, o los elementos pueden aparecer en el orden incorrecto en clientes como Feedly o NetNewsWire.</h4> <div class="rank-math-answer"> <p>¿Qué significa CDATA en el elemento de contenido de un feed?</p> </div> </li> <li id="faq-question-1780452523996" class="rank-math-list-item"> <h4 class="rank-math-question">CDATA significa "Character Data" y le indica al analizador XML que trate todo lo contenido como texto bruto, sin aplicar sus reglas normales. Se envuelve como . Los feeds usan CDATA dentro de (RSS) o (Atom) para que los autores puedan incluir marcado HTML completo — enlaces, imágenes, texto formateado — sin tener que escapar manualmente cada y & carácter. El caso delicado es que la secuencia literal ]]> no puede aparecer dentro de una sección CDATA, por lo que los generadores la dividen entre dos bloques CDATA.</h4> <div class="rank-math-answer"> <p>¿Cuál es el papel del elemento o ?</p> </div> </li> <li id="faq-question-1780452523997" class="rank-math-list-item"> <h4 class="rank-math-question">Es el identificador permanente y único que el lector de feeds utiliza para reconocer el mismo elemento en cada actualización. Sin un identificador estable, el lector trata cada actualización como si todos los elementos fueran nuevos, llenando el buzón con spam. En RSS, el elemento es y puede incluir un atributo isPermaLink; en Atom, el elemento es y debe ser una URI. La práctica recomendada es usar la URL canónica del post y nunca cambiarla, incluso si más tarde se edita el título o el slug del post.</h4> <div class="rank-math-answer"> <p>¿Por qué muchos validadores de feeds rechazan feeds generados por IA?</p> </div> </li> <li id="faq-question-1780452523998" class="rank-math-list-item"> <h4 class="rank-math-question">Validadores como el Servicio de Validación de Feeds de W3C revisan tres aspectos: XML bien formado (etiquetas coincidentes, entidades escapadas, espacios de nombres declarados), cumplimiento de la especificación (elementos requeridos presentes, en la estructura correcta) y corrección del formato de fechas. Los generadores de texto de IA a menudo producen XML "aproximado" que parece correcto a simple vista pero falla en detalles — falta de declaraciones de espacios de nombres, ampersands brutos en URLs, fechas ISO en un documento RSS o elementos que faltan como guid/id. Un generador diseñado específicamente enforces estas reglas de forma determinista en lugar de estadística.</h4> <div class="rank-math-answer"> <p>Mi Blog Increíble</p> </div> </li> </ol> </div> </div> </div> </div><!-- .col --> <div class="col aw--col-300 side-content"> <a href="https://iotools.cloud/es/pricing/" class="info-box mb-3" style="background-color: var(--io-color-blue, #464aff);letter-spacing:0;min-height:70px;padding-top:5px;"> <div class="info-box-content"> <span class="info-box-text text-sm white">¿Quieres eliminar publicidad?</span> <span class="info-box-number white" style="font-weight: 500;"> <span class="white"><u>Adiós publicidad hoy</u></span> </span> </div> <span class="info-box-icon white" style="width:50px"> <i class="ti" data-no-translation=""></i> </span> </a> <div class="card card-body pb-0"> <h2 class="h5 blue mb-1"> <i class="ti" data-no-translation=""></i> Instalar extensiones </h2> <p class="mb-2"> Agregue herramientas IO a su navegador favorito para obtener acceso instantáneo y búsquedas más rápidas </p> <div class="text-center pt-1 pb-3"> <div id="io-browser-extension-d41d8cd9" class="d-none d-lg-block"> <div class="io-browser-extension-container d-flex justify-content-center"> <a href="https://chromewebstore.google.com/detail/io-tools-quick-access/ngfigjoligkblljadlbojinhoiofkdld" target="_blank" rel="noopener" class="io-browser-extension-btn" data-toggle="tooltip" data-placement="top" title="Agregar a Chrome" style="cursor: pointer;"> añadir <img src="https://iotools.cloud/wp-content/themes/iotools/assets/images/browsers/chrome.svg" width="18" height="18" alt="Extensión de Chrome" class="img-fluid"> </a> <a href="https://microsoftedge.microsoft.com/addons/detail/io-tools-quick-access/daapkanhnnjodjpobfmkopolagbkcccb" target="_blank" rel="noopener" class="io-browser-extension-btn" data-toggle="tooltip" data-placement="top" title="Añadir a Edge" style="cursor: pointer;"> añadir <img src="https://iotools.cloud/wp-content/themes/iotools/assets/images/browsers/edge.svg" width="18" height="18" alt="Extensión de borde" class="img-fluid"> </a> <a href="https://addons.mozilla.org/en-US/firefox/addon/iotools-quick-access/" target="_blank" rel="noopener" class="io-browser-extension-btn" data-toggle="tooltip" data-placement="top" title="Añadir a Firefox" style="cursor: pointer;"> añadir <img src="https://iotools.cloud/wp-content/themes/iotools/assets/images/browsers/firefox.svg" width="18" height="18" alt="Extensión de Firefox" class="img-fluid"> </a> <a href="https://addons.opera.com/en/extensions/details/io-tools-quick-access/" target="_blank" rel="noopener" class="io-browser-extension-btn" data-toggle="tooltip" data-placement="top" title="Añadir a Opera" style="cursor: pointer;"> añadir <img src="https://iotools.cloud/wp-content/themes/iotools/assets/images/browsers/opera.svg" width="18" height="18" alt="Extensión de Opera" class="img-fluid"> </a> <style> #io-browser-extension-d41d8cd9 .io-browser-extension-container { gap: 10px; margin-left: -1px; } #io-browser-extension-d41d8cd9 .io-browser-extension-btn { display: flex; padding: 3px 5px 1px 6px;; background-color: white; border: 1px solid #dee2e6; border-radius: 12px; text-decoration: none; transition: all 0.2s ease; font-size: 12px;; color: #000!important; align-items: center; justify-content: center; gap: 2px; flex-grow: 1;; } #io-browser-extension-d41d8cd9 .io-browser-extension-btn img { transform: translateY(-1px); } #io-browser-extension-d41d8cd9 .io-browser-extension-btn:hover { background-color: #f8f9fa; border-color: #ced4da; color: #333; text-decoration: none; } </style> </div> </div> </div> </div> <div class="card card-body pb-0"> <h2 class="h5 blue mb-1"> <i class="ti" data-no-translation="">恵</i><a href="https://scoreboard.iotools.cloud/" target="_blank" rel="noopener"> ¡El marcador ha llegado!</a> </h2> <p class="mb-2"> <a href="https://scoreboard.iotools.cloud/" target="_blank" rel="noopener">Marcador</a> es una forma divertida de llevar un registro de tus juegos, todos los datos se almacenan en tu navegador. ¡Próximamente habrá más funciones! </p> </div> <div class="aw aw-side_content_1_desktop text-center mb-4"><div style="text-align: center;color: #9f9f9f;font-size: 9px;letter-spacing: 1px;line-height: 25px;height: 25px;width: 100%;">ANUNCIO · <a tabindex="-1" target="_blank" href="https://iotools.cloud/es/pricing/" title="Vaya sin publicidad" style="text-decoration: underline;color: #9f9f9f;">¿ELIMINAR?</a></div> <!-- Iotools_S2S_SideContent1_Desktop_ROS --> <style> @media only screen and (min-width: 0px) and (min-height: 0px) { div[id^="bsa-zone_1741342473519-9_123456"] { min-width: 0px; min-height: 0px; } } @media only screen and (min-width: 1370px) and (min-height: 0px) { div[id^="bsa-zone_1741342473519-9_123456"] { min-width: 200px; min-height: 250px; } } </style> <div id="bsa-zone_1741342473519-9_123456"></div> </div> <div class="card card-body pb-0"> <div class="d-flex justify-content-between align-items-center mb-3"> <h2 class="h5 blue mb-0"><i class="ti" data-no-translation=""></i> Herramientas clave</h2> <a class="text-muted small blue" href="https://iotools.cloud/es/tags/must-try/"><u>Ver todo</u></a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/imagekit/background-remover/" class="card-image card-image--icon" aria-label="Eliminador de fondo"> <i class="ti blue" style="--icon-hex:'\f360'" data-no-translation=""></i> </a> <span class="card-image card-image--icon" data-toggle="tooltip" title="Conjunto de herramientas: ImageKit" ><i class="ti blue" style="--icon-hex:'\f360'" data-no-translation=""></i></span> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/imagekit/background-remover/"> Eliminador de fondo </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/ai-image-editor/" class="card-image card-image--icon" aria-label="Editor de imágenes con IA"> <i class="ti blue" style="--icon-hex:'\fa32'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/ai-image-editor/"> Editor de imágenes con IA<span class="io-badge io-badge--toolset" style="background-color: #92ff9580;color:#10a581" data-toggle="tooltip" title="Kit" data-content="Toolset"></span> </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/ai-image-generator/" class="card-image card-image--icon" aria-label="Generador de imágenes con IA"> <i class="ti blue" style="--icon-hex:'\ffb0'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/ai-image-generator/"> Generador de imágenes con IA </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/imagekit/" class="card-image card-image--icon" aria-label="Kit de imágenes"> <i class="ti blue" style="--icon-hex:'\f360'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/imagekit/"> Kit de imágenes<span class="io-badge io-badge--toolset" style="background-color: #92ff9580;color:#10a581" data-toggle="tooltip" title="Kit" data-content="Toolset"></span> </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/pdf-converter/compress-pdf/" class="card-image card-image--icon" aria-label="Compresor de PDF"> <i class="ti blue" style="--icon-hex:'\ed44'" data-no-translation=""></i> </a> <span class="card-image card-image--icon" data-toggle="tooltip" title="Conjunto de herramientas: convertidor de PDF" ><i class="ti blue" style="--icon-hex:'\f7ac'" data-no-translation=""></i></span> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/pdf-converter/compress-pdf/"> Compresor de PDF </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/image-converter/" class="card-image card-image--icon" aria-label="Convertidor de imágenes"> <i class="ti blue" style="--icon-hex:'\fd9f'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/image-converter/"> Convertidor de imágenes<span class="io-badge io-badge--toolset" style="background-color: #92ff9580;color:#10a581" data-toggle="tooltip" title="Kit" data-content="Toolset"></span> </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/one-time-link/" class="card-image card-image--icon" aria-label="Enlace único"> <i class="ti blue" style="--icon-hex:'\f7bd'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/one-time-link/"> Enlace único </a> </div> </div> <div class="aw aw-side_content_2_desktop text-center mb-4"><div style="text-align: center;color: #9f9f9f;font-size: 9px;letter-spacing: 1px;line-height: 25px;height: 25px;width: 100%;">ANUNCIO · <a tabindex="-1" target="_blank" href="https://iotools.cloud/es/pricing/" title="Vaya sin publicidad" style="text-decoration: underline;color: #9f9f9f;">¿ELIMINAR?</a></div> <!-- Iotools_S2S_SideContent2_Desktop_ROS --> <style> @media only screen and (min-width: 0px) and (min-height: 0px) { div[id^="bsa-zone_1741342696932-0_123456"] { min-width: 0px; min-height: 0px; } } @media only screen and (min-width: 1370px) and (min-height: 0px) { div[id^="bsa-zone_1741342696932-0_123456"] { min-width: 200px; min-height: 250px; } } </style> <div id="bsa-zone_1741342696932-0_123456"></div> </div> <div class="card card-body pb-0"> <div class="d-flex justify-content-between align-items-center mb-3"> <h2 class="h5 blue mb-0"> <i class="ti" data-no-translation=""></i> Los recién llegados </h2> <a class="text-muted small blue" href="https://iotools.cloud/es/tools/"><u>Ver todo</u></a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/css-email-inliner/" class="card-image card-image--icon" aria-label="Inliner de correo CSS (Inliner de atributo de estilo)"> <i class="ti blue" style="--icon-hex:'\eae5'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/css-email-inliner/"> Inliner de correo CSS (Inliner de atributo de estilo) </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/dns-record-ttl-expiry-calculator/" class="card-image card-image--icon" aria-label="Calculadora de vencimiento de TTL de registro DNS"> <i class="ti blue" style="--icon-hex:'\f316'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/dns-record-ttl-expiry-calculator/"> Calculadora de vencimiento de TTL de registro DNS </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/geojson-wkt-converter/" class="card-image card-image--icon" aria-label="Conversor de Datos Espaciales GeoJSON ↔ WKT"> <i class="ti blue" style="--icon-hex:'\f38e'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/geojson-wkt-converter/"> Conversor de Datos Espaciales GeoJSON ↔ WKT </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/weighted-grade-average-calculator/" class="card-image card-image--icon" aria-label="Calculadora de Promedio Ponderado de Calificaciones"> <i class="ti blue" style="--icon-hex:'\eb67'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/weighted-grade-average-calculator/"> Calculadora de Promedio Ponderado de Calificaciones </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/jwk-set-generator/" class="card-image card-image--icon" aria-label="Generador de Conjunto de Claves JSON Web (JWK)"> <i class="ti blue" style="--icon-hex:'\eac7'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/jwk-set-generator/"> Generador de Conjunto de Claves JSON Web (JWK) </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/zig-language-formatter/" class="card-image card-image--icon" aria-label="Formateador del Idioma Zig"> <i class="ti blue" style="--icon-hex:'\ea77'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/zig-language-formatter/"> Formateador del Idioma Zig </a> </div> <div class="card card--tool card--tool-compact card--tool-compact--mini elevation-0 border card--tool-has-icon"> <a href="https://iotools.cloud/es/tool/sewing-fabric-yardage-calculator/" class="card-image card-image--icon" aria-label="Calculadora de costura y metros de tela"> <i class="ti blue" style="--icon-hex:'\f507'" data-no-translation=""></i> </a> <a class="card-body flex-row align-items-center h6 mb-0 black" href="https://iotools.cloud/es/tool/sewing-fabric-yardage-calculator/"> Calculadora de costura y metros de tela </a> </div> <p class="small text-muted mb-3 text-center"><b>Actualizar:</b> Nuestro <a href="https://iotools.cloud/es/tool/css-email-inliner/" class="text-muted"><u>última herramienta</u></a> se agregó el 15 de junio de 2026</p> </div> <div class="aw aw-dashboard_sidebar text-center mb-4"><div style="text-align: center;color: #9f9f9f;font-size: 9px;letter-spacing: 1px;line-height: 25px;height: 25px;width: 100%;">ANUNCIO · <a tabindex="-1" target="_blank" href="https://iotools.cloud/es/pricing/" title="Vaya sin publicidad" style="text-decoration: underline;color: #9f9f9f;">¿ELIMINAR?</a></div> <!-- Iotools_S2S_Dashboard_ROS --> <style> @media only screen and (min-width: 0px) and (min-height: 0px) { div[id^="bsa-zone_1741781122639-0_123456"] { min-width: 300px; min-height: 50px; } } @media only screen and (min-width: 900px) and (min-height: 0px) { div[id^="bsa-zone_1741781122639-0_123456"] { min-width: 200px; min-height: 200px; } } </style> <div id="bsa-zone_1741781122639-0_123456"></div> </div> <div class="card card-body io-no-scrollbar" style="max-height:700px;"> <h2 class="h5 blue mb-3"><i class="ti" data-no-translation=""></i> Noticias <small class="black">Aspectos técnicos clave</small></h2> <div data-load-more-id="side-news" class="exclude--translation" data-no-translation=""> <div class="io-loading mb-3"> <div class="io-loading__item title"></div> <div class="io-loading__item"></div> <div class="io-loading__item"></div> <div class="io-loading__item"></div> </div> <div class="io-loading mb-3"> <div class="io-loading__item title"></div> <div class="io-loading__item"></div> <div class="io-loading__item"></div> <div class="io-loading__item"></div> </div> <div class="io-loading mb-3"> <div class="io-loading__item title"></div> <div class="io-loading__item"></div> <div class="io-loading__item"></div> <div class="io-loading__item"></div> </div> </div> <script class="exclude--lazy-load" async> // Immediately load news from session storage document.querySelectorAll('[data-load-more-id="side-news"]').forEach(function(element) { const dailyNewsHtml = sessionStorage.getItem(`dailyNewsHtml`); if (dailyNewsHtml) { element.innerHTML = dailyNewsHtml; } }); </script> <p class="text-center"> <button class="btn--load-more" data-load-more="{"target":"side-news","postType":"wprss_feed_item","offset":3}">¡Muéstrame más!</button> </p> </div> <h2 class="h5 blue text-right mt-5"><i class="ti ti-heart-handshake" data-no-translation=""></i> Involucrarse</h2> <div class="text-right mb-4"> <p>Ayúdanos a seguir brindando valiosas herramientas gratuitas</p> <div class="d-lg-flex justify-content-end"> <a href="https://buymeacoffee.com/iotools" target="_blank" rel="noopener"><img width="180" height="50" src="https://iotools.cloud/wp-content/themes/iotools/assets/images/yellow-button.png" alt="Invítame a un café" class="img-fluid"></a> </div> </div> <div class="aw aw-side_content_sticky_desktop sticky-top text-center"><div style="text-align: center;color: #9f9f9f;font-size: 9px;letter-spacing: 1px;line-height: 25px;height: 25px;width: 100%;">ANUNCIO · <a tabindex="-1" target="_blank" href="https://iotools.cloud/es/pricing/" title="Vaya sin publicidad" style="text-decoration: underline;color: #9f9f9f;">¿ELIMINAR?</a></div> <!-- Iotools_S2S_SideContentSticky_Desktop_ROS --> <style> @media only screen and (min-width: 0px) and (min-height: 0px) { div[id^="bsa-zone_1741342751312-1_123456"] { min-width: 0px; min-height: 0px; } } @media only screen and (min-width: 1370px) and (min-height: 0px) { div[id^="bsa-zone_1741342751312-1_123456"] { min-width: 120px; min-height: 600px; } } </style> <div id="bsa-zone_1741342751312-1_123456"></div> </div> </div> </div><!-- .row --> </div><!-- .container --> </main><!-- #content --> <!-- Main Footer --> <footer class="main-footer text-sm text-center text-xl-left d-flex flex-xl-nowrap flex-column-reverse flex-xl-row"> <span>Copyright © 2026 <a href="https://iotools.cloud/es/" class="exclude--translation" data-no-translation=""><u>iotools.cloud</u></a>. Reservados todos los derechos.</span> <!-- To the right --> <ul class="navbar-nav d-flex flex-row ml-xl-auto justify-content-center flex-wrap"> <li class="nav-item"> <a href="https://iotools.cloud/es/" class="text-muted">Hogar</a> </li> <li class="nav-item"> <a href="https://iotools.cloud/es/about/" class="text-muted">Acerca de</a> </li> <li class="nav-item"> <a href="https://iotools.cloud/es/contact/" class="text-muted">Contacto</a> </li> <li class="nav-item"> <a href="https://iotools.cloud/es/pricing/" class="text-muted">Precios</a> </li> <li class="nav-item blue mb-2 mb-xl-0"> • </li> <li class="nav-item"><a href="https://iotools.cloud/es/community-tools/" rel="nofollow" class="text-muted">Herramientas de la comunidad</a></li> <li class="nav-item"><a href="https://iotools.cloud/es/journal/" class="text-muted">Centro de revistas</a></li> <li class="nav-item blue mb-2 mb-xl-0"> • </li> <li class="nav-item"><a href="https://iotools.cloud/es/privacy-policy/" class="text-muted">política de privacidad</a></li> <li class="nav-item"><a href="https://iotools.cloud/es/terms-of-service/" class="text-muted">Términos de servicio</a></li> <li class="nav-item"><a href="https://iotools.statuspage.io/" target="_blank" rel="noopener" class="text-muted">Estado del sistema</a></li> <li class="nav-item"><a href="https://iotools.cloud/es/sitemap/" class="text-muted">Mapa del sitio</a></li> <li class="nav-item blue mb-2 mb-xl-0 d-none d-lg-block"> • </li> <li class="d-block w-100 d-lg-none"></li> <li class="nav-item"><a href="https://x.com/io_tools" target="_blank" rel="noopener" class="text-muted" aria-label="X"><i class="ti ti-brand-x" data-no-translation=""></i></a></li> <li class="nav-item"><a href="https://www.facebook.com/iotools.cloud" target="_blank" rel="noopener" class="text-muted" aria-label="Facebook"><i class="ti" data-no-translation=""></i></a></li> <li class="nav-item"><a href="https://www.youtube.com/@io-tools" target="_blank" rel="noopener" class="text-muted" aria-label="YouTube"><i class="ti" data-no-translation=""></i></a></li> <li class="nav-item"><a href="https://www.tiktok.com/@iotools" target="_blank" rel="noopener" class="text-muted" aria-label="Tik Tok"><i class="ti" data-no-translation=""></i></a></li> <li class="nav-item"><a href="https://www.linkedin.com/company/io-tools/" target="_blank" rel="noopener" class="text-muted" aria-label="linkedin"><i class="ti ti-brand-linkedin" data-no-translation=""></i></a></li> <li class="nav-item"><a href="https://www.producthunt.com/products/io-tools" target="_blank" rel="noopener" class="text-muted" aria-label="búsqueda de productos"><i class="ti ti-brand-producthunt" data-no-translation=""></i></a></li> </ul> </footer> <div class="bsa-gap d-none d-xl-block" style="height: 110px;"> </div> <div class="bsa-gap d-xl-none" style="height: 60px;"> </div> <style> body:has(>.bsa_fixed-leaderboard[style*="display: none"]) .bsa-gap { display: none !important; } </style> </div><!-- .wrapper --> <template id="tp-language" data-tp-language="es_ES"></template><script type="speculationrules"> {"prerender":[{"source":"document","where":{"and":[{"href_matches":"/es/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/iotools/*","/es/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prerender, .no-prerender a"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"moderate"}]} </script> <style> #ioValidationInfo:empty { display: none; } #ioValidationInfo.validation-success { background: #d4edda; border-color: #28a745; color: #155724; } #ioValidationInfo.validation-warning { background: #fff3cd; border-color: #ffc107; color: #856404; } #ioValidationInfo.validation-error { background: #f8d7da; border-color: #dc3545; color: #721c24; } .validation-line { margin-bottom: 4px; font-size: 13px; } .validation-line:last-child { margin-bottom: 0; } #rss-atom-feed-generator-out pre { max-height: 520px; } </style> <script type="text/javascript" src="https://iotools.cloud/wp-content/plugins/duracelltomi-google-tag-manager/dist/js/gtm4wp-form-move-tracker.js?ver=1.22.3" id="gtm4wp-form-move-tracker-js"></script> <script type="text/javascript" src="https://iotools.cloud/wp-content/plugins/translatepress-multilingual/assets/js/trp-clickable-ls.js?ver=2.9.12" id="trp-clickable-ls-js-js"></script> <script type="text/javascript" src="https://iotools.cloud/wp-includes/js/underscore.min.js?ver=1.13.7" id="underscore-js"></script> <script type="text/javascript" id="theme-js-js-extra"> /* <![CDATA[ */ var IOTools = {"ajaxUrl":"https://iotools.cloud/wp-admin/admin-ajax.php","assetsUrl":"https://iotools.cloud/wp-content/themes/iotools/assets/","homeUrl":"https://iotools.cloud/es/","isMobile":"","currentPostId":"309450","turnstileSiteKey":"0x4AAAAAABroE5_aI0mWeJ_q","algoliaAppId":"1P44EFZA6Z","algoliaApiKey":"430f43bbda2ef03c2d61fbdf33bae284","urlRequests":"/requests/","creditsCap":"10","pondUploader":null,"tagColors":{"Accessibility":"indigo","AI":"red","arithmetic":"blue","Art":"orange","Backend":"red","base conversion":"blue","Base64":"blue","Beta":"red","Binary":"blue","Calculator":"blue","Character Classes":"blue","Color":"yellow","Couple":"blue","Creator":"blue","Cryptography":"yellow","CSS":"indigo","CSV":"green","Data":"gray","decimal":"blue","Decode":"yellow","Decrypt":"red","Designer":"cyan","Developer":"orange","devops":"blue","DnD":"blue","Education":"lime","Encode":"indigo","Encoding":"blue","Encryption":"blue","evaluation":"blue","Fantasy":"lime","Fiction":"blue","Finance":"green","Frontend":"red","Fun":"violet","Gaming":"blue","Generator":"blue","Git":"blue","Graphics":"red","Health":"orange","hex":"blue","History":"green","HTML":"green","Ideas":"orange","Identity":"lime","Image":"orange","instant calculation":"blue","integer":"blue","IPv6":"blue","Javascript":"orange","JPG":"blue","JSON":"yellow","logarithm":"blue","Lookup":"gray","MAC address":"blue","Magic":"yellow","Markdown":"blue","Marketing":"orange","mask":"blue","Match":"blue","Math":"yellow","MD5":"indigo","Minecraft":"blue","Music":"blue","Must Try":"red","Mythical":"blue","Networking":"blue","number systems":"blue","obfuscate":"blue","octal":"blue","PDF":"yellow","Performance":"green","Planning":"yellow","PNG":"blue","privacy":"blue","Productivity":"green","programming":"blue","Random":"red","Scheduling":"blue","Science":"blue","Security":"yellow","SEO":"orange","Social":"indigo","Sports":"blue","Statistics":"green","string":"blue","SVG":"orange","sysadmin":"blue","Testing":"orange","Text":"green","Time":"blue","trigonometry":"blue","ULA":"blue","Utilities":"blue","Video":"indigo","Wellness":"orange","Wizard":"blue","World":"blue","XML":"orange","YAML":"blue"},"translations":{"copiedDeepLink":"\u00a1Enlace profundo copiado al portapapeles!","copiedText":"\u00a1Copiado al portapapeles!","copiedImage":"\u00a1Imagen copiada al portapapeles!","generatedContentAppearsHere":"El resultado aparecer\u00e1 aqu\u00ed...","confirmOverwriteContent":"\u00bfSe reemplazar\u00e1 el contenido actual?","invalidBase64String":"Cadena base64 no v\u00e1lida","timeoutReached":"Se alcanz\u00f3 el tiempo de espera antes de encontrar el hash.","allCombinationsTried":"Se han probado todas las combinaciones, pero no se ha encontrado el hash. Ajuste la configuraci\u00f3n y vuelva a intentarlo.","useThisFont":"Utilice esta fuente","noFileTypesDetected":"No se ha detectado ning\u00fan tipo de archivo. El contenido original puede ser simplemente un archivo de texto o una cadena.","noResults":"No se encontraron resultados","loadMore":"Carga m\u00e1s","decodedString":"Cadena decodificada","yes":"S\u00ed","no":"No","team":"Equipo","detectedFile":"Archivo detectado","download":"Descargar","converting":"Mudado...","compressing":"Apresamiento...","tapToRemove":"Toque para eliminar","serverUploaded":"Subido al servidor","validationPassed":"Validaci\u00f3n pasada","validationFailed":"Validaci\u00f3n fallida","validationIndependently":"El c\u00f3digo generado se valida de forma independiente.","pokemon":{"generation":"Generaci\u00f3n","hp":"caballos de fuerza","speed":"Velocidad","attack":"Ataque","defense":"Defensa","spAttack":"Ataque especial","spDefense":"Defensa especial"},"browserInfo":{"userAgent":"Agente de usuario","language":"Idioma","windowSize":"Tama\u00f1o de la ventana","pdfViewerEnabled":"Visor de PDF habilitado","javascriptEnabled":"Javascript habilitado","cookiesEnabled":"Cookies habilitadas","browser":"Navegador","browserMajorVersion":"Versi\u00f3n principal del navegador","browserVersion":"Versi\u00f3n del navegador","layoutEngine":"Motor de dise\u00f1o","deviceMemory":"Memoria del dispositivo","maxTouchPoints":"Puntos de contacto m\u00e1ximos","screenSize":"Tama\u00f1o de pantalla","orientation":"Orientaci\u00f3n","colorDepth":"Profundidad de color","pixelRatio":"Relaci\u00f3n de p\u00edxeles","os":"Sistema operativo","osVersion":"Versi\u00f3n del sistema operativo","deviceType":"Tipo de dispositivo","deviceVendor":"Proveedor del dispositivo","deviceModel":"Modelo del dispositivo"},"splits":"divisiones","noImagesSelected":"Por favor, sube al menos un archivo.","errorOccurredAI":"No se pudo obtener el contenido de IA. Int\u00e9ntalo de nuevo.","errorOccurredExtractText":"No se pudo extraer el contenido del archivo. Int\u00e9ntalo nuevamente.","errorOccurredPokemon":"No se encontr\u00f3 ning\u00fan Pok\u00e9mon con los criterios indicados.","errorCannotConvert":"No se puede convertir","autoComplete":{"Tools":"Herramientas","Modules":"M\u00f3dulos","SearchForATool":"Buscar una herramienta, categor\u00eda o etiqueta...","NoToolsFoundForThisQuery":"No se encontraron herramientas para esta consulta.","SubmitARequest":"Enviar una solicitud","WeWillMakeIt":"\u00a1y lo lograremos!","CategoriesFilter":"Categor\u00edas Filtrar","NoCategoriesFoundForThisQuery":"No se encontraron categor\u00edas para esta consulta.","TagsFilter":"Filtro de etiquetas","NoTagsFoundForThisQuery":"No se encontraron etiquetas para esta consulta.","ToNavigate":"navegar","ToSelect":"Para seleccionar","ToClose":"cerrar","ToCancel":"Cancelar"}},"defaultSwatches":["#264653","#2a9d8f","#e9c46a","rgb(244,162,97)","#e76f51","#d62828","navy","#07b","#0096c7","#00b4d880","rgba(0,119,182,0.8)"]}; //# sourceURL=theme-js-js-extra /* ]]> */ </script> <script type="text/javascript" src="https://iotools.cloud/wp-content/themes/iotools/dist/main.min.js?ver=a1389f69c44704bc20e58ad961beebbc" id="theme-js-js"></script> <script type="text/javascript" src="https://iotools.cloud/wp-content/themes/iotools/dist/modules/ecd9f1b4f0f25d49b3dd988bd5612eca.min.js?ver=7db719a04edace60a1f31a6bbee55646" id="theme-js-ecd9f1b4f0f25d49b3dd988bd5612eca-js"></script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js?ver=a1389f69c44704bc20e58ad961beebbc" id="highlight-js-js"></script> <script id="wp-emoji-settings" type="application/json"> {"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://iotools.cloud/wp-includes/js/wp-emoji-release.min.js?ver=6.9.1"}} </script> <script type="module"> /* <![CDATA[ */ /*! This file is auto-generated */ const a=JSON.parse(document.getElementById("wp-emoji-settings").textContent),o=(window._wpemojiSettings=a,"wpEmojiSettingsSupports"),s=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const a=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===a[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,a){let r;const o=(r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),s=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(e=>{s[e]=t(o,e,n,a)}),s}function r(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}a.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),c.toString(),p.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"});const r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=e=>{i(n=e.data),r.terminate(),t(n)})}catch(e){}i(n=f(s,u,c,p))}t(n)}).then(e=>{for(const n in e)a.supports[n]=e[n],a.supports.everything=a.supports.everything&&a.supports[n],"flag"!==n&&(a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&a.supports[n]);var t;a.supports.everythingExceptFlag=a.supports.everythingExceptFlag&&!a.supports.flag,a.supports.everything||((t=a.source||{}).concatemoji?r(t.concatemoji):t.wpemoji&&t.twemoji&&(r(t.twemoji),r(t.wpemoji)))}); //# sourceURL=https://iotools.cloud/wp-includes/js/wp-emoji-loader.min.js /* ]]> */ </script> <script type="text/javascript">(function (undefined) {let scriptOptions={"_localizedStrings":{"redirect_overlay_title":"Espera","redirect_overlay_text":"Est\u00e1s siendo redirigido a otra p\u00e1gina,<br>puede tardar unos segundos.","webview_notification_text":"\u00a1El proveedor seleccionado no admite navegadores incrustados!"},"_targetWindow":"prefer-popup","_redirectOverlay":"overlay-with-spinner-and-message","_unsupportedWebviewBehavior":""}; /** * Used when Cross-Origin-Opener-Policy blocked the access to the opener. We can't have a reference of the opened windows, so we should attempt to refresh only the windows that has opened popups. */ window._nslHasOpenedPopup = false; window._nslWebViewNoticeElement = null; window.NSLPopup = function (url, title, w, h) { /** * Cross-Origin-Opener-Policy blocked the access to the opener */ if (typeof BroadcastChannel === "function") { const _nslLoginBroadCastChannel = new BroadcastChannel('nsl_login_broadcast_channel'); _nslLoginBroadCastChannel.onmessage = (event) => { if (window?._nslHasOpenedPopup && event.data?.action === 'redirect') { window._nslHasOpenedPopup = false; const url = event.data?.href; _nslLoginBroadCastChannel.close(); if (typeof window.nslRedirect === 'function') { window.nslRedirect(url); } else { window.opener.location = url; } } }; } const userAgent = navigator.userAgent, mobile = function () { return /\b(iPhone|iP[ao]d)/.test(userAgent) || /\b(iP[ao]d)/.test(userAgent) || /Android/i.test(userAgent) || /Mobile/i.test(userAgent); }, screenX = window.screenX !== undefined ? window.screenX : window.screenLeft, screenY = window.screenY !== undefined ? window.screenY : window.screenTop, outerWidth = window.outerWidth !== undefined ? window.outerWidth : document.documentElement.clientWidth, outerHeight = window.outerHeight !== undefined ? window.outerHeight : document.documentElement.clientHeight - 22, targetWidth = mobile() ? null : w, targetHeight = mobile() ? null : h, left = parseInt(screenX + (outerWidth - targetWidth) / 2, 10), right = parseInt(screenY + (outerHeight - targetHeight) / 2.5, 10), features = []; if (targetWidth !== null) { features.push('width=' + targetWidth); } if (targetHeight !== null) { features.push('height=' + targetHeight); } features.push('left=' + left); features.push('top=' + right); features.push('scrollbars=1'); const newWindow = window.open(url, title, features.join(',')); if (window.focus) { newWindow.focus(); } window._nslHasOpenedPopup = true; return newWindow; }; let isWebView = null; function checkWebView() { if (isWebView === null) { function _detectOS(ua) { if (/Android/.test(ua)) { return "Android"; } else if (/iPhone|iPad|iPod/.test(ua)) { return "iOS"; } else if (/Windows/.test(ua)) { return "Windows"; } else if (/Mac OS X/.test(ua)) { return "Mac"; } else if (/CrOS/.test(ua)) { return "Chrome OS"; } else if (/Firefox/.test(ua)) { return "Firefox OS"; } return ""; } function _detectBrowser(ua) { let android = /Android/.test(ua); if (/Opera Mini/.test(ua) || / OPR/.test(ua) || / OPT/.test(ua)) { return "Opera"; } else if (/CriOS/.test(ua)) { return "Chrome for iOS"; } else if (/Edge/.test(ua)) { return "Edge"; } else if (android && /Silk\//.test(ua)) { return "Silk"; } else if (/Chrome/.test(ua)) { return "Chrome"; } else if (/Firefox/.test(ua)) { return "Firefox"; } else if (android) { return "AOSP"; } else if (/MSIE|Trident/.test(ua)) { return "IE"; } else if (/Safari\//.test(ua)) { return "Safari"; } else if (/AppleWebKit/.test(ua)) { return "WebKit"; } return ""; } function _detectBrowserVersion(ua, browser) { if (browser === "Opera") { return /Opera Mini/.test(ua) ? _getVersion(ua, "Opera Mini/") : / OPR/.test(ua) ? _getVersion(ua, " OPR/") : _getVersion(ua, " OPT/"); } else if (browser === "Chrome for iOS") { return _getVersion(ua, "CriOS/"); } else if (browser === "Edge") { return _getVersion(ua, "Edge/"); } else if (browser === "Chrome") { return _getVersion(ua, "Chrome/"); } else if (browser === "Firefox") { return _getVersion(ua, "Firefox/"); } else if (browser === "Silk") { return _getVersion(ua, "Silk/"); } else if (browser === "AOSP") { return _getVersion(ua, "Version/"); } else if (browser === "IE") { return /IEMobile/.test(ua) ? _getVersion(ua, "IEMobile/") : /MSIE/.test(ua) ? _getVersion(ua, "MSIE ") : _getVersion(ua, "rv:"); } else if (browser === "Safari") { return _getVersion(ua, "Version/"); } else if (browser === "WebKit") { return _getVersion(ua, "WebKit/"); } return "0.0.0"; } function _getVersion(ua, token) { try { return _normalizeSemverString(ua.split(token)[1].trim().split(/[^\w\.]/)[0]); } catch (o_O) { } return "0.0.0"; } function _normalizeSemverString(version) { const ary = version.split(/[\._]/); return (parseInt(ary[0], 10) || 0) + "." + (parseInt(ary[1], 10) || 0) + "." + (parseInt(ary[2], 10) || 0); } function _isWebView(ua, os, browser, version, options) { switch (os + browser) { case "iOSSafari": return false; case "iOSWebKit": return _isWebView_iOS(options); case "AndroidAOSP": return false; case "AndroidChrome": return parseFloat(version) >= 42 ? /; wv/.test(ua) : /\d{2}\.0\.0/.test(version) ? true : _isWebView_Android(options); } return false; } function _isWebView_iOS(options) { const document = (window["document"] || {}); if ("WEB_VIEW" in options) { return options["WEB_VIEW"]; } return !("fullscreenEnabled" in document || "webkitFullscreenEnabled" in document || false); } function _isWebView_Android(options) { if ("WEB_VIEW" in options) { return options["WEB_VIEW"]; } return !("requestFileSystem" in window || "webkitRequestFileSystem" in window || false); } const options = {}, nav = window.navigator || {}, ua = nav.userAgent || "", os = _detectOS(ua), browser = _detectBrowser(ua), browserVersion = _detectBrowserVersion(ua, browser); isWebView = _isWebView(ua, os, browser, browserVersion, options); } return isWebView; } function isAllowedWebViewForUserAgent(provider) { const facebookAllowedWebViews = [ 'Instagram', 'FBAV', 'FBAN' ]; let whitelist = []; if (provider && provider === 'facebook') { whitelist = facebookAllowedWebViews; } const nav = window.navigator || {}, ua = nav.userAgent || ""; if (whitelist.length && ua.match(new RegExp(whitelist.join('|')))) { return true; } return false; } function disableButtonInWebView(providerButtonElement) { if (providerButtonElement) { providerButtonElement.classList.add('nsl-disabled-provider'); providerButtonElement.setAttribute('href', '#'); providerButtonElement.addEventListener('pointerdown', (e) => { if (!window._nslWebViewNoticeElement) { window._nslWebViewNoticeElement = document.createElement('div'); window._nslWebViewNoticeElement.id = "nsl-notices-fallback"; window._nslWebViewNoticeElement.addEventListener('pointerdown', function (e) { this.parentNode.removeChild(this); window._nslWebViewNoticeElement = null; }); const webviewNoticeHTML = '<div class="error"><p>' + scriptOptions._localizedStrings.webview_notification_text + '</p></div>'; window._nslWebViewNoticeElement.insertAdjacentHTML("afterbegin", webviewNoticeHTML); document.body.appendChild(window._nslWebViewNoticeElement); } }); } } window._nslDOMReady(function () { window.nslRedirect = function (url) { if (scriptOptions._redirectOverlay) { const overlay = document.createElement('div'); overlay.id = "nsl-redirect-overlay"; let overlayHTML = ''; const overlayContainer = "<div id='nsl-redirect-overlay-container'>", overlayContainerClose = "</div>", overlaySpinner = "<div id='nsl-redirect-overlay-spinner'></div>", overlayTitle = "<p id='nsl-redirect-overlay-title'>" + scriptOptions._localizedStrings.redirect_overlay_title + "</p>", overlayText = "<p id='nsl-redirect-overlay-text'>" + scriptOptions._localizedStrings.redirect_overlay_text + "</p>"; switch (scriptOptions._redirectOverlay) { case "overlay-only": break; case "overlay-with-spinner": overlayHTML = overlayContainer + overlaySpinner + overlayContainerClose; break; default: overlayHTML = overlayContainer + overlaySpinner + overlayTitle + overlayText + overlayContainerClose; break; } overlay.insertAdjacentHTML("afterbegin", overlayHTML); document.body.appendChild(overlay); } window.location = url; }; let targetWindow = scriptOptions._targetWindow || 'prefer-popup', lastPopup = false; document.addEventListener('click', function (e) { if (e.target) { const buttonLinkElement = e.target.closest('a[data-plugin="nsl"][data-action="connect"]') || e.target.closest('a[data-plugin="nsl"][data-action="link"]'); if (buttonLinkElement) { if (lastPopup && !lastPopup.closed) { e.preventDefault(); lastPopup.focus(); } else { let href = buttonLinkElement.href, success = false; if (href.indexOf('?') !== -1) { href += '&'; } else { href += '?'; } const redirectTo = buttonLinkElement.dataset.redirect; if (redirectTo === 'current') { href += 'redirect=' + encodeURIComponent(window.location.href) + '&'; } else if (redirectTo && redirectTo !== '') { href += 'redirect=' + encodeURIComponent(redirectTo) + '&'; } if (targetWindow !== 'prefer-same-window' && checkWebView()) { targetWindow = 'prefer-same-window'; } if (targetWindow === 'prefer-popup') { lastPopup = NSLPopup(href + 'display=popup', 'nsl-social-connect', buttonLinkElement.dataset.popupwidth, buttonLinkElement.dataset.popupheight); if (lastPopup) { success = true; e.preventDefault(); } } else if (targetWindow === 'prefer-new-tab') { const newTab = window.open(href + 'display=popup', '_blank'); if (newTab) { if (window.focus) { newTab.focus(); } success = true; window._nslHasOpenedPopup = true; e.preventDefault(); } } if (!success) { window.location = href; e.preventDefault(); } } } } }); let buttonCountChanged = false; const googleLoginButtons = document.querySelectorAll(' a[data-plugin="nsl"][data-provider="google"]'); if (googleLoginButtons.length && checkWebView()) { googleLoginButtons.forEach(function (googleLoginButton) { if (scriptOptions._unsupportedWebviewBehavior === 'disable-button') { disableButtonInWebView(googleLoginButton); } else { googleLoginButton.remove(); buttonCountChanged = true; } }); } const facebookLoginButtons = document.querySelectorAll(' a[data-plugin="nsl"][data-provider="facebook"]'); if (facebookLoginButtons.length && checkWebView() && /Android/.test(window.navigator.userAgent) && !isAllowedWebViewForUserAgent('facebook')) { facebookLoginButtons.forEach(function (facebookLoginButton) { if (scriptOptions._unsupportedWebviewBehavior === 'disable-button') { disableButtonInWebView(facebookLoginButton); } else { facebookLoginButton.remove(); buttonCountChanged = true; } }); } const separators = document.querySelectorAll('div.nsl-separator'); if (buttonCountChanged && separators.length) { separators.forEach(function (separator) { const separatorParentNode = separator.parentNode; if (separatorParentNode) { const separatorButtonContainer = separatorParentNode.querySelector('div.nsl-container-buttons'); if (separatorButtonContainer && !separatorButtonContainer.hasChildNodes()) { separator.remove(); } } }) } });})();</script> <div id="io-modal-login" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog modal-dialog-scrollable modal-md" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Inicio de sesión requerido</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Cerca"> <i class="ti ti-x" aria-hidden="true" data-no-translation=""></i> </button> </div> <div class="modal-body"> Por favor <a class="white bg-blue rounded p-1 pl-1 pr-2" rel="nofollow" href="https://iotools.cloud/es/account/"><i class="ti ti-user-circle" data-no-translation=""></i> iniciar sesión</a> o <a rel="nofollow" href="https://iotools.cloud/es/register/"><u>registro</u></a> para administrar sus favoritos. ¡Es gratis! </div> </div> </div> </div> <div id="io-modal-request" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog modal-dialog-scrollable modal-md" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Inicio de sesión requerido</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Cerca"> <i class="ti ti-x" aria-hidden="true" data-no-translation=""></i> </button> </div> <div class="modal-body"> Por favor <a class="white bg-blue rounded p-1 pl-1 pr-2" rel="nofollow" href="https://iotools.cloud/es/account/?redirect_to=https://iotools.cloud/es/account/request-tool/"><i class="ti ti-user-circle" data-no-translation=""></i> iniciar sesión</a> o <a rel="nofollow" href="https://iotools.cloud/es/register/?redirect_to=https://iotools.cloud/es/account/request-tool/"><u>registro</u></a> para enviar una solicitud de herramienta. ¡Es gratis! </div> </div> </div> </div> <div id="io-modal-community" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog modal-dialog-scrollable modal-md" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Inicio de sesión requerido</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Cerca"> <i class="ti ti-x" aria-hidden="true" data-no-translation=""></i> </button> </div> <div class="modal-body"> Por favor <a class="white bg-blue rounded p-1 pl-1 pr-2" rel="nofollow" href="https://iotools.cloud/es/account/?redirect_to=https://iotools.cloud/es/account/byo/"><i class="ti ti-user-circle" data-no-translation=""></i> iniciar sesión</a> o <a rel="nofollow" href="https://iotools.cloud/es/register/?redirect_to=https://iotools.cloud/es/account/byo/"><u>registro</u></a> Crea tu propia herramienta. ¡Es gratis! <div class="card mt-4 mb-0"> <div class="card-body"> <h5><i class="ti ti-info-circle" data-no-translation=""></i> Acerca de Build Your Own (BYO) Builder</h5> <p>Nuestra función BYO Builder le permite crear herramientas personalizadas sin necesidad de conocimientos de codificación. Puede:</p> <ul> <li>Cree herramientas impulsadas por IA utilizando nuestra sencilla interfaz</li> <li>Comparte tus herramientas con la comunidad</li> <li>Reciba comentarios y mejore sus herramientas</li> <li>Ayuda a otros a resolver problemas con tus creaciones.</li> </ul> <p class="mb-0">Únete a nuestro <a href="https://iotools.cloud/es/community-tools/"><u>comunidad</u></a> ¡Hoy y empieza a construir herramientas que hagan la diferencia!</p> </div> </div> </div> </div> </div> </div> <div id="cf-turnstile" data-sitekey="0x4AAAAAABroE5_aI0mWeJ_q" data-appearance="execute"></div> </body> </html> <!-- Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com Retrieved 24558 objects (6 MB) from Redis using Predis (v2.4.0). -->