链接到网页的特定部分

时间:2013-03-18 16:28:06

标签: hyperlink

如何在另一个我无法控制的网站上创建指向长网页的一部分的链接?

我认为您可以在我的链接末尾使用#partofpage的变体。有什么建议吗?

6 个答案:

答案 0 :(得分:42)

只需附加一个#,后跟您要尝试访问的<a>标记(或其他HTML标记,如<section>)的ID。例如,如果您尝试链接到此HTML中的标题:

<p>This is some content.</p>
<h2><a id="target">Some Header</a></h2>
<p>This is some more content.</p>

您可以使用链接<a href="http://url.to.site/index.html#target">Link</a>

答案 1 :(得分:22)

使用以下格式创建“跳转链接”:

http://www.somesite.com/somepage#anchor

其中,anchor是您要在该页面上链接到的元素的ID。使用浏览器开发工具/视图源查找要链接到的元素的ID。

如果元素没有id并且你不控制该网站,那么你就无法做到。

答案 2 :(得分:7)

只有当该网站在页面中声明了锚点时,才有可能。 这是通过为name or id attribute添加标记来完成的,因此请查找您要链接到的地方附近的任何标记。

然后语法将是

<a href="page.html#anchor">text</a>

答案 3 :(得分:5)

如果目标网页位于同一个网域(即与您的网页共享相同的来源)并且您不介意创建新标签(1),则可以(ab)使用一些 JavaScript

<a href="javascript:void(window.open('./target.html').onload=function(){this.document.querySelector('p:nth-child(10)').scrollIntoView()})">see tenth paragraph on another page</a>

花絮:

var w = window.open('some URL of the same origin');
w.onload = function(){
  // do whatever you want with `this.document`, like
  this.document.querySelecotor('footer').scrollIntoView()
}

您现在可以尝试的这种“漏洞利用”的工作示例可能是:

javascript:(function(url,sel,w,el){w=window.open(url);w.addEventListener('load',function(){w.setTimeout(function(){el=w.document.querySelector(sel);el.scrollIntoView();el.style.backgroundColor='red'},1000)})})('https://stackoverflow.com/questions/45014240/link-to-a-specific-spot-on-a-page-i-cant-edit','footer')

如果您将其输入到位置栏(请注意,Chrome从剪贴板粘贴后会删除javascript:前缀)或将其设为此页面上任意链接的href值(使用开发人员工具)并单击它,你会得到另一个(重复的)SO问题页面滚动到页脚和页脚漆成红色。 (延迟添加为加载ajax的内容的一种变通方法,在加载后将页脚向下推。)

注释

  • 经常在Chrome和Firefox中测试,因为它基于定义的标准行为。
  • 无法在此处的交互式代码段中进行说明,因为它们与原始页面隔离。
  • MDN: Window.open()
  • (1)window.open(url,'_self')似乎打破了load事件;基本上使window.open表现得像普通的a href=""点击导航;尚未研究过。

答案 4 :(得分:3)

第一个目标是指您尝试链接到HTML代码或chromes开发人员工具中的BlockID。每个代码都不相同,您将需要进行一些挖掘才能找到您要引用的ID。它的外观应类似于div class="page-container drawer-page-content" id"PageContainer",请注意,这是整个引用节的格式,而不是单个文本或图像的格式。为此,您需要找到相同的代码段,但与目标块有关。例如dv id="your-block-id"无论如何,我只是在阅读此线程,然后想到一个主意,如果您是Shopify用户,并且想要执行此操作,则与上述内容几乎相同。 但是不是

> http://url.to.site/index.html#target

你会放

> http://storedomain.com/target

例如,我正在主页上建立一个免责声明页面,该页面具有指向新闻通讯注册和购物区的链接,因此我在超链接中插入https://mystore-classifier.com/#shopify-section-1528945200235。 请注意,-classifier仅供我内部使用,不适用于您。这只是为了让我可以跟踪我的商店。 如果您想链接到首页以外的内容,则可以输入

> http://mystore-classifier.com/pagename/#BlockID

我希望有人觉得这很有用,如果我的解释有问题,请告诉我,因为我不是HTML程序员,我的语言是C#!

答案 5 :(得分:0)

即将推出的Chrome“滚动到文本”功能正是您所需要的。...

https://github.com/bokand/ScrollToTextFragment

您基本上在URL的末尾添加了#targetText=,浏览器将滚动到目标文本,并在页面加载后突出显示该文本。

它是我的办公桌上运行的Chrome版本,但当前必须手动启用。大概默认情况下它将在正式版Chrome构建中默认启用,其他浏览器也将随之而来,因此确定立即开始添加到您的链接中,然后它将开始工作。

相关问题