让 Opera 忘记超链接中的位置

让 Opera 忘记超链接中的位置

如何让 opera 在超链接被跟踪后忘记它的“位置”部分?(当我想重新加载页面并保持我正在阅读的位置时,这很有用,而原始链接有其自己的指定位置。)

Opera-10.52_pre6272,Gentoo

答案1

如果你指的是你点击了带有分段指定(井号后面的部分),为什么不直接F5按 重新加载页面?您要转到地址栏然后按Enter还是其他什么?

答案2

我刚刚又试了一次,Opera 确实按照你说的做了——当我重新加载时,它转到了 URL 中的片段 ID。我不知道为什么我之前没有注意到它——也许是因为这是最近的变化,而且我不经常刷新我正在阅读的页面。我认为这是个错误——也许你想举报Opera 软件?我可以确认 Windows 版本 (10.51) 上也有同样的行为。

无论如何,这里有一个解决方法:当我要更改缩放比例时,有时会让我迷失方向,我会选择一些文本(最好是单个段落中的几个单词)并将其复制到剪贴板。然后在更改缩放比例(或在您的情况下重新加载)后,我搜索刚刚复制的文本(Ctrl+ F)。

答案3

这个 UserJS 解决了这个问题:

// ==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);
 })()

相关内容