2010-12-28 24 views
7

Tengo una extensión de Chrome que tiene algunos enlaces. Actualmente, cuando se hace clic en los enlaces no hacen nada, me gustaría hacerlos abrir en una nueva pestaña cuando se hace clic. es posible?¿Cómo hacer enlaces popup.html abiertos en la pestaña?

+0

También hay algunas buenas respuestas aquí: http://stackoverflow.com/questions/8915845/chrome-extension-open-a-link-from-popup-html-in-a-new-tab – rogerdpack

Respuesta

17

Agregue target="_blank" a los enlaces.

Otra forma es asociar el código javascript de apertura de enlace al evento mousedown en un enlace.

También puede utilizar base etiqueta para hacer todas las conexiones abiertas con target="_blank":

<head> 
    <base target="_blank"> 
</head> 
+0

hay otro ¿camino? – user556396

+1

+1. Asegúrese de especificar 'http: //' (no solo www.) En los enlaces o se abrirán en relación con la extensión. – Kai

+0

@ user556396 ver la actualización – serg

6

que tenía el mismo problema y este era mi enfoque:

  1. Crea el popup.html con un enlace (y los enlaces no funcionan cuando se hace clic en ellos, ya que Chrome los bloquea).
  2. Crear popup.js y vincularlo en la página: <script src="popup.js" ></script>
  3. Agregue el código siguiente para 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 deben trabajar después de eso.

+0

Ha olvidado cerrar la variable 'i' en el cierre. Además, 'chrome.tabs.create' no requiere ningún permiso. –

+0

No necesito cerrar sobre i, solo ln y la ubicación son suficientes. Tienes razón sobre el permiso, modifiqué mi respuesta. – lasantha

Cuestiones relacionadas