Fazendo a ópera esquecer uma posição em hyperlink

2

Como fazer a ópera esquecer uma parte de "posição" do hiperlink logo após ser seguida? (Isso é útil quando quero recarregar a página e manter a posição onde estou lendo, enquanto o link original tem sua própria posição especificada.)

Opera-10.52_pre6272, Gentoo

    
por ZyX 29.03.2010 / 20:20

3 respostas

0

Este UserJS resolve o problema:

// ==UserScript==
// @name PurgeAnchor
// @include *
// ==/UserScript==
(function() {
 var reg=/^(.*)\#(.*)$/;
 var match=reg.exec(location);
 function ObjectPosition(obj) {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
 }
 if(match) {
    location.href=match[1];
    sessionStorage.setItem("anchor", match[2]);
 }
 window.addEventListener("load", (function() {
         var anchor=sessionStorage.getItem("anchor");
         if(anchor!==null) {
             var obj=document.getElementById(anchor);
             if(obj===null) {
                 obj=document.getElementsByName(anchor)[0];
             }
             var pos=0;
             if(obj!==null) {
                 pos=ObjectPosition(obj);
                 window.scrollTo(0, pos);
             }
             sessionStorage.removeItem("anchor");
         }
     }), false);
 })()
    
por 13.04.2010 / 17:37
0

Se você quer dizer que seguiu um link com um fragmento especificado (a parte após o sinal de hash), por que não basta pressionar F5 para recarregar a página? Você está indo para a barra de endereços e pressionando Enter ou algo assim?

    
por 30.03.2010 / 02:05
0

Eu apenas tentei novamente e o Opera fez o que você disse - quando recarreguei, ele foi para o ID do fragmento na URL. Eu não sei porque eu não percebi isso antes - talvez porque seja uma mudança recente e eu não atualizo frequentemente uma página que estou no meio da leitura. Eu consideraria isso um bug - talvez você gostaria de reportá-lo para a Opera Software? Eu posso confirmar o mesmo comportamento na versão do Windows (10.51).

Enfim, aqui está uma solução: quando estou prestes a mudar o zoom, o que às vezes me faz perder o lugar, eu seleciono algum texto (de preferência algumas palavras de dentro de um único parágrafo) e copio para a área de transferência. Então, depois de mudar o zoom (ou no seu caso recarregar), eu procuro o texto que acabei de copiar ( Ctrl + F ).

    
por 31.03.2010 / 23:57