Algunos sitios web, como Canon ( https://www.usa.canon.com/internet/portal/us/home/about/newsroom/press-releases ) tienen sus hipervínculos acortados e incrustados en un objeto div, lo que le impide -hacer clic y 'abrir nueva pestaña'. Me di cuenta de que puedo detenerlo cambiando el elemento div a un objeto ancla.
Específicamente, si reemplazo:
<div style ="cursor:pointer;" on click="window.location.href='/internetcon
<a href = 'https://www.usa.canon.com/internetEl html se corrige solo y ahora puedo abrir el enlace correctamente. A través de algunas investigaciones, me encontré con Tampermonkey y pasé la mayor parte de 4 horas tratando de escribir las 1-2 líneas de código que necesitaría para que lo hiciera automáticamente para todas las instancias en una página web. ¿Alguien podría señalarme un recurso rápido para resolver esto?
¡Gracias!
Aquí hay un ejemplo básico basado en la página mencionada en la que puede trabajar:
// ==UserScript== // @name Div to Anchor // @match https://www.usa.canon.com/internet/portal/us/home/about/newsroom/press-releases // ==/UserScript== // --- template const temp = document.createElement('a'); temp.target = '_blank'; // open in a new tab document.querySelectorAll('div[onclick^="window.location.href="]').forEach(item => { const a = temp.cloneNode(); a.href = item.getAttribute('onclick').slice(22, -2); a.textContent = item.textContent; item.replaceWith(a); });