Estoy haciendo un generador de URL de datos y estoy haciendo el enlace a la URL de datos generada. Aquí hay un código de muestra que se vincula a una URL de datos.
<a href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+CjxjaXJjbGUgY3g9IjI1MCIgY3k9IjI1MCIgcj0iMjEwIiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iOCIvPgo8L3N2Zz4K">Click this link</a>Sin embargo, el problema es que cuando haces clic en el enlace, no pasa nada.
Intenté configurar location.href en la URL de datos.
<!--this doesn't work--> <a href="#" onclick="event.preventDefault(); location.href='<data url here>'">Click this link</a> window.open se abre about:blank .
// Opens about:blank document.querySelector('a').onclick = function(e) { e.preventDefault(); window.open("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+CjxjaXJjbGUgY3g9IjI1MCIgY3k9IjI1MCIgcj0iMjEwIiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iOCIvPgo8L3N2Zz4K"); } Sin embargo, hay algunas excepciones. Cuando arrastra el enlace al cuadro de URL o a una pestaña diferente/nueva, funciona, pero la mayoría de las personas no se molestan en arrastrar un enlace. Pero si la página está en un iframe , puede hacer clic en el enlace.
<a href="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+CjxjaXJjbGUgY3g9IjI1MCIgY3k9IjI1MCIgcj0iMjEwIiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iOCIvPgo8L3N2Zz4K"> Because this snippet is shown in an iframe, you can click this link. </a> Pero luego no muestra la URL de datos en el cuadro de URL. Intenté usar location.pushState y location.replaceState , pero no puede cambiar la URL en el cuadro de URL a una página a una página externa. Básicamente , cada respuesta en Stack Overflow a cada pregunta como esta coloca la URL de datos en un iframe de alguna manera. Simplemente no funciona porque la URL está en blanco. Simplemente no funciona.
Entonces, ¿cómo navego a una URL de datos? ¿Qué no he intentado hacer para navegar a una URL de datos? Cualquier ayuda sería genial.
Nota: estoy usando Microsoft Edge/Chromium 103
const data = "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNTAwIiBoZWlnaHQ9IjUwMCI+CjxjaXJjbGUgY3g9IjI1MCIgY3k9IjI1MCIgcj0iMjEwIiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iOCIvPgo8L3N2Zz4K"; const _window = window.open(); _window.document.write('<iframe src="' + data + '" frameborder="0" style="border:0; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%;" allowfullscreen></iframe>');