如何在另一个我无法控制的网站上创建指向长网页的一部分的链接?
我认为您可以在我的链接末尾使用#partofpage的变体。有什么建议吗?
答案 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的内容的一种变通方法,在加载后将页脚向下推。)
注释
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构建中默认启用,其他浏览器也将随之而来,因此确定立即开始添加到您的链接中,然后它将开始工作。