2009-07-31 8 views

Répondre

8

Voici la sélection:

$("a:visited").parent(".question-summary") 

Exemple d'utilisation:

$("a:visited").parent(".question-summary").addClass("is_visited"); 
28

Je suppose qu'il convient de mentionner que l'approche donnée a été désactivée dans les navigateurs pour des raisons de sécurité. Comme il est possible de récupérer l'historique d'un visiteur en vérifiant les liens visités, certaines mesures ont été prises pour éviter cela.

Source: Mozilla Foundation Blog.

dans Chrome et Contrôlé FF - les deux ne prennent pas en charge $("a:visited") plus longtemps.

2

J'ai trouvé solution basée sur LocalStorage sur Nevyan's Blog: Mark visited links using JavaScript and localStorage

Il propose code JavaScript propre pour stocker les liens cliqués par l'utilisateur de la page dans LocalStorage et ajouter la classe « visité » au parent d'un élément <a>:

function check_visited_links() { 
    var visited_links = JSON.parse(localStorage.getItem('visited_links')) || []; 
    var links = document.getElementsByTagName('a'); 
    for (var i = 0; i < links.length; i++) { 
     var that = links[i]; 
     that.onclick = function() { 
      var clicked_url = this.href; 
      if (visited_links.indexOf(clicked_url) == -1) { 
       visited_links.push(clicked_url); 
       localStorage.setItem('visited_links', JSON.stringify(visited_links)); 
      } 
     } 
     if (visited_links.indexOf(that.href) !== -1) { 
      that.parentNode.className += ' visited'; 
     } 
    } 
} 

Je ne sais pas si c'est plus sûr que: approche visitée cependant.

+0

Ce genre de ressemble à une nouvelle question. Aussi, vous voudrez placer le code et la documentation appropriés ici pour soutenir votre réponse, pas un lien vers la réponse. Ils peuvent changer, affectant la validité de ce que vous répondez. – rfornal

+1

Merci d'avoir signalé cela :) J'ai corrigé ma réponse. – Maciej

0

Entrer le code ici'Je ne suis pas supporté par javascript car j'essaie aussi de trouver des méthodes pour collecter un: données de liens visités pour masquer le noeud visité.

une référence: Confidentialité et le: Sélecteur visité - CSS | Si tout ce qui vous intéresse est le style, vous devriez être capable de le faire à travers CSS, mais à travers ce qui est affiché à l'écran devrait être le seul moyen d'observer la visite.

Je le fais de cette façon dans un script d'utilisateur pour Greasemonkey pour laisser ces sites sans un style: visited visité afficher ces liens déjà visités.

// ==UserScript== 
// @description ADD a:visited for CSS 
// @include  *annalscts.com* 
// @include  *thejns.org* 
// @include  *turkishneurosurgery.org.tr* 
// @include  *nature.com* 
// @include  *academic.oup.com* 
// @include  *sagepub.com* 
// @grant   GM_addStyle 
// ==/UserScript== 
GM_addStyle('a:visited {color:#EE5665 !important}'); 

Pour recueillir les données vers locales que j'utilise l'API Greasemonkey

GM_setValue 
GM_getValue 

Je viens des tutoriels visionnées sur Youtube pour l'API et essayer d'écrire dans le userscript

API Greasemonkey: Les valeurs seulement recherchez ce titre sur Youtube.

écrit Tutoriel: http://nulleffort.com/greasemonkey-api-values/

Greasemonkey Docs: https://wiki.greasespot.net/Greasemonkey_Manual:API

certaines parties de mon userscript

//Firstly, var the ordinary variable preVisitedLinks and assigning to memory variable visitedLinks (At first the value should be undefined) 
var preVisitedLinks = GM_getValue("visitedLinks"); 
unsafeWindow.aclick = function(tlink){ 
    window.open(tlink, '_blank', 'toolbar=yes,scrollbars=yes,resizable=yes,top=10,left=10,width=10,height=10'); // click a button added and get the link visited in my script 
    //If the ordinary variable preVisitedLinks is undefined (First time running the script) 
    if(preVisitedLinks.includes('undefined')){ 
     GM_setValue('preVisitedLinks', '|' + tlink.replace('http://paper.pubmed.cn/','')); 
    } 
    //If the ordinary variable preVisitedLinks is not undefined, continue to add each new string collect 
    else{ 
     GM_setValue('preVisitedLinks', preVisitedLinks + '|' + tlink.replace('http://paper.pubmed.cn/','')); 
    } 
    //The ordinary variable preVisitedLinks assigning to memory variable visitedLinks value. The magic is the variable name the same. 
    preVisitedLinks = GM_getValue("preVisitedLinks"); 
    if(preVisitedLinks.length > 27500){ 
     preVisitedLinks = preVisitedLinks.substr(preVisitedLinks.length - 27500); 
    } 
    //The memory variable visitedLinks value assigning to the ordinary variable preVisitedLinks value 
    GM_setValue('visitedLinks',preVisitedLinks); 
    console.info(preVisitedLinks); 
}; 

Et dans un endroit que j'utilise la chaîne pour détecter le code de liens visités

if(preVisitedLinks.includes(trs[i].querySelectorAll('li')[0].querySelector('a').href.replace('http://xxx.xxxx.com/',''))){ 
     trs[i].remove(); 
    } 
Questions connexes