tab open new how google extensions extension example development create chrome google-chrome google-chrome-extension

google chrome - open - Extensión de Chrome; abra un enlace desde popup.html en una nueva pestaña



javascript open new window (5)

Estoy haciendo una extensión de Chrome y obtuve ayuda en esta publicación aquí .

Mi problema ahora es cómo abrir una nueva pestaña de cromo que tiene como URL el enlace en el que hice clic en el popup.html . Traté de hacer lo que alguien sugirió en sus respuestas en otra pregunta similar, como establecer el target atributo de <a> en _blank pero el único resultado es que Chrome abre una nueva pestaña, pero en la nueva pestaña es mi popup.html.

Alguna idea de como resolver esto?

Gracias.


Si no desea utilizar JQuery, insértelo en su popup.js y hará que todos sus enlaces se abran en una nueva pestaña cuando se haga clic en él.

Recuerde declarar el permiso de "pestañas" en el manifest.json

window.addEventListener(''click'',function(e){ if(e.target.href!==undefined){ chrome.tabs.create({url:e.target.href}) } })


Debe usar el módulo chrome.tabs para abrir manualmente el enlace deseado en una nueva pestaña. Intente utilizar este fragmento de jQuery en su popup.html:

$(document).ready(function(){ $(''body'').on(''click'', ''a'', function(){ chrome.tabs.create({url: $(this).attr(''href'')}); return false; }); });


Yo tuve el mismo problema. Parece que la solución de Konrad funcionaría, pero abrió varias pestañas a la vez. Esto sucedió solo después de la primera instalación de extensión. Así que lo cambié a

if (e.target.classList.contains("a-link")) { chrome.tabs.create({url: $(e.target).attr(''href'')}); return false; }

y todo está funcionando como se esperaba


Las otras respuestas funcionan. Para completar, también puede agregar target="_blank"

O si desea agregar enlaces "manualmente", aquí hay una forma (basada en las otras respuestas aquí):

popup.html

<a id="index_link">My text</a>.

popup.js

document.addEventListener(''DOMContentLoaded'', function() { var y = document.getElementById("index_link"); y.addEventListener("click", openIndex); } function openIndex() { chrome.tabs.create({active: true, url: "http://my_url"}); }


Ver mi comentario https://.com/a/17732609/1340178

Tuve el mismo problema y este fue mi enfoque:

  1. Crea el popup.html con el enlace (y los enlaces no funcionan cuando se hace clic mientras Chrome los bloquea).
  2. Cree popup.js y vincule en la página: <script src="popup.js" ></script>
  3. Agregue el siguiente código a popup.js:

    document.addEventListener(''DOMContentLoaded'', function () { var links = document.getElementsByTagName("a"); for (var i = 0; i < links.length; i++) { (function () { var ln = links[i]; var location = ln.href; ln.onclick = function () { chrome.tabs.create({active: true, url: location}); }; })(); } });

Eso es todo, los enlaces deberían funcionar después de eso.