如何链接到(大)网页的某个区域

时间:2010-11-12 12:17:41

标签: javascript html

这应该是一个不那么罕见的情况,我想知道是否有一些或多或少的标准解决方案或技巧。

我想在我的博客中放置一个链接到一个外部网页,这个内容非常大(比如gutenberg.org上的一本书的全文)。我希望将访问者指向该内容中的特定位置(例如,某个段落),但该页面没有足够的命名锚点,因此我不能简单地将fragment id附加到该网址。

不是'有任何办法,也许是用javascript?我会很高兴任何允许我告诉远程浏览器打开页面的技巧:

  • 滚动到垂直滚动位置(以百分比表示) - 我知道这只会给出一个近似的位置,但它会是
  • 模拟客户端“在页面内查找文本”
  • 的结果
  • 告诉浏览器转到一个特定的位置(用html源代码中的字节或字符计算)(不可能,我猜:javascript只能看到网页为DOM树,而不是一个byts / chars流)

我也打开了一些服务器端的工作(比如说,将url指向我服务器中某些用于重定向的php),但我不认为这会有所帮助。

有什么想法吗?

更新:我也对部分纯文本文档(而不是html)感兴趣。引自here

  

用于表示的特定语法   文本文档中的片段   和字符范围,或图形   坐标,或结构化   使用梯子的文件是合适的   用于标准化但未定义   这里。

他们是否已在其他地方定义/实施?

3 个答案:

答案 0 :(得分:4)

除了命名锚点<a name="foo">之外,您还可以使用元素ID作为锚点。

所以如果有例如

<div id="foo">
在页面中

,然后您可以使用http://example.com/page.html#foo跳转到它。除此之外,没有其他方法可以将其包括在<iframe/>中。

答案 1 :(得分:0)

我自己的一些发现:

  • 基本上,不可能,正如BalusC指出的那样。

  • 制作一个网页,其中包含IFRAME中的远程页面并将其滚动到所需的位置:几乎不实用,繁琐,特别是当远程页面位于另一个域中时。而且,特别是,我很难(实际上不可能,我相信)计算所需的滚动量。

  • 一个极端的解决方案:创建一个proxy.php脚本,为远程页面重写它,添加一些id / anchors,比如说,按一定的百分比步骤计算字符数。列举的缺点太多而且很明显。

  • 我所讨论的功能似乎已经讨论过,但只存在于“proposal”区域。最合适和最强大的解决方案似乎是这个Fragment Search Greasemonkey脚本。但是,当然,必须在浏览器中安装;目前没有必要让访问者加载公共网址。

答案 2 :(得分:0)

根据具体情况,我认为您可以通过扩展用户的浏览器来实现此类行为。

当您点击链接时,无论是否滚动都会将用户定向到网址,或者调用扩展程序加载页面并在页面上执行脚本,添加锚点或滚动等等。

当然,这只适用于那些接受下载扩展程序的用户,因为你必须为每个浏览器制作一个,所以这很复杂...这就是为什么我说“取决于上下文”;)

相关问题