2010-03-20 3 views

Répondre

1
  1. L'API Google Chrome ne dispose pas d'une telle API, mais la fonctionnalité que vous souhaitez peut être implémentée à l'aide de l'API Google Chrome Extensions standard.
  2. Vous devez mettre en œuvre content script
  3. Votre script de contenu devrait modifier DOM de la page que vous souhaitez gérer et remplacer tous les liens sortants avec votre javascript sur mesure qui fera des choses et ouvrir le lien cliqué.

Pour modifier le lien href vous pouvez faire quelque chose comme ceci:

function processLink(element, newHref) { 
    var a = document.createElement("a"); 
    a.href  = newHref; 
    a.textContent = element.textContent; 
    a.title  = element.title; 

    element.parentNode.replaceChild(a, element); 
} 

MISE À JOUR 1.

Au lieu de newHref vous pouvez générer quelque chose comme

a.href = "javascript:processOutgoingLinkClick('" + element.href + "')"

Fonction processOutgoingLinkClick sh ould contient le traitement effectif du clic.

+0

J'ai pensé à quelque chose comme ça en réalité. Mais comment le lien signalera-t-il au nouvel onglet qu'il devrait activer l'action de la page? – int3

+0

vous pouvez ajouter la fonction 'processOutgoingLinkClick()' et rendre a.href = "javascript: processOutgoingLinkClick ('" + element.href + "')" La fonction 'processOutgoingLinkClick' doit contenir un traitement réel. – uthark

+0

ah je l'ai maintenant. Cependant ... serai-je capable de dire si l'utilisateur voulait que l'onglet soit ouvert dans la même page, dans un nouvel onglet, ou dans une nouvelle fenêtre? Pourtant, ce serait un problème mineur. Merci! – int3

0

Juste une curiosité, pourquoi ne pas utiliser le Chrome Extensions Tab Events, vous pouvez écouter onUpdated onCreated. Quand un utilisateur clique sur un lien sur la page, il ira et déclencher un événement dans onUpdated.

donc au sein de votre background.html, vous pouvez le faire:

chrome.tabs.onUpdated.addListener(function(tabId, info) { 
    if (info.status === 'loading') 
    console.log('Loading url ... ' + info.url) 
}); 

Même chose pour onCreated. Ensuite, pendant son chargement, vous pouvez décider quoi faire avec votre pageAction.

+0

Eh bien, il ne me dit pas quel onglet était responsable de sa création ... – int3

Questions connexes