如何仅使用URL链接到页面中的特定文本行?

问题描述 投票:6回答:4

我很好奇是否有一种方法可以仅使用URL将某人发送到给定页面的特定行。 Citebite这样做,但是它链接到缓存的页面,而不是实际的活动页面。 http://citebite.com/

您还可以对PDF进行类似的操作,在其中指定页面#:链接到列出的pdf中的第6页。http://mises.org/journals/scholar/long.pdf#page=6

我做了很多工作,发现的只是将链接嵌入HTML,这不是我想要的。理想情况下,我希望能够发送一个跳转到特定文本行的URL /突出显示该URL(与Citebite完全相同,但不必使用Citebite)。

html url hyperlink
4个回答
6
投票

取决于情况:

1-您自己的内容

a。只需添加一个href ID,然后发送指向该ID的链接(http://exmaple.com/document.php#myLine

b。对于更高级的解决方案,您可以滚动到特定区域并使用javascript突出显示它,基本上可以这样调用:http://example.com/document.php?scrollX=100&scrollY=230

并且在您的PHP代码中,您具有如下功能:

<?php
if(isset($_GET['scrollX']) && isset($_GET['scrollY')){
    ?>
       <script type="text/javascript">
           window.scrollTo(<?= $_GET['scrollX'];?>, <?=$_GET['scrollY'];?>);
       </script>
    <?
}
?>

您还可以使用JQuery并做更多有趣的事情,例如突出显示文本或根据参数更改CSS值

2-其他人的内容

没有浏览器扩展程序或诸如CiteBite之类的外部服务,您无法直接链接到特定的行或区域,但是,使用某些黑客,您可以构建自己的小服务来显示网站并在其上运行自己的JS(请考虑使用iFrames或类似的东西)


5
投票

您必须为您的元素提供一个ID。例如:<div id="footer">Footer</div>。如果您转到mypage.html#footer,浏览器将带您到那里。

如果不是您的网页,请查看代码,您可能会在所需文本旁边找到一个ID元素。


3
投票

据我所知,没有某种类型的缓存,插件或附加组件,或者无法完全控制可在其中嵌入锚标记的html,您将无法在本地完成此工作。


0
投票

an experimental feature in Chrome 74,称为Scroll To Text Fragment,它使您可以进入specify phrases to be highlighted in a URL。默认情况下,我们可能需要等待一段时间才能最终确定和支持。


推荐问答