如何在我无法控制的另一个网站上创建指向较长网页的一部分的链接?
我以为您可以在链接的末尾使用#partofpage的变体。有什么建议么?
如何在我无法控制的另一个网站上创建指向较长网页的一部分的链接?
我以为您可以在链接的末尾使用#partofpage的变体。有什么建议么?
Answers:
只需在#
后面附加您要访问的<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>
。
id
的id="in-closing">Some string</id>
多次那里Some string
成为一个新的字符串几次。
id
。根据定义id
,该标记是唯一的
www.site.com/page/#target
失败了。确保您/
的网址末尾没有。
使用以下格式创建“跳转链接”:
http://www.somesite.com/somepage#anchor
其中anchor是您希望链接到该页面的元素的ID。使用浏览器开发工具/查看源代码查找要链接的元素的ID。
如果该元素没有ID,并且您没有控制该站点,那么您将无法做到。
仅当该站点已在页面中声明锚点时,才有可能。通过为标签提供name或id属性来完成此操作,因此请查找您想要链接的位置附近的任何内容。
然后语法将是
<a href="page.html#anchor">text</a>
name
属性仅在该<a>
元素上受支持,并且在HTML 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)})})('/programming/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=""
点击导航;还没有研究更多。javascript:
在大多数使用默认设置的浏览器中,无法执行键入URLbar的链接的操作,这是为了防止“自我XSS”。但是您可以在Web Developers控制台中尝试它,它应该可以很好地工作。
首先脱离目标是指您尝试链接到HTML代码或Chrome开发者工具中的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#!
即将推出的Chrome“滚动到文本”功能正是您所需要的...。
https://github.com/bokand/ScrollToTextFragment
你基本上添加 #targetText=
是在URL的末尾,浏览器将滚动到目标文本,并在页面加载后突出显示该文本。
它是我桌面上运行的Chrome版本,但当前必须手动启用它。大概默认情况下它将在正式版Chrome构建中默认启用,其他浏览器也将随之而来,因此确定立即开始添加到您的链接中,然后它将开始工作。