簡體   English   中英

如何鏈接到(大)網頁的某些區域

[英]How to link to some region of a (big) web page

這應該不是一個罕見的情況,我想知道是否有某種或多或少的標准解決方案或技巧。

我想在我的博客中放置一個指向外部網頁的鏈接,該網頁的內容非常大(例如,來自gutenberg.org的一本書的全文)。 我希望將訪問者指向該內容內的特定位置(例如,一段),但是該頁面沒有足夠的命名錨,因此我不能簡單地在URL后面添加一個片段ID

有沒有辦法,也許用JavaScript? 任何讓我告訴遠程瀏覽器打開頁面的技巧,我都會感到滿意,並且可以:

  • 滾動到垂直滾動位置(以百分比為單位)-我知道這只會給出一個近似的位置,但這將是
  • 模擬客戶端“在頁面內查找文本”的結果
  • 告訴瀏覽器轉到特定位置(以html源代碼中的字節或字符計數)(不可能,我想:javascript僅將網頁視為DOM樹,而不是一堆byts / chars)

我也願意進行一些服務器端的工作(例如,將URL指向服務器中進行重定向的php),但是我認為這樣做沒有幫助。

有任何想法嗎?

更新:我也對純文本文檔的某些部分(而不是html)感興趣。 這里報價

用於通過行和字符范圍來表示文本文檔中的片段或通過坐標來表示圖形中的片段,或者使用梯子來表示結構化文檔中的片段的特定語法適用於標准化,但此處未定義。

是否在其他地方定義/實現了它們?

除了命名錨點<a name="foo"> ,您還可以使用元素ID作為錨點。

因此,如果有一個

<div id="foo">

在頁面中,則可以使用http://example.com/page.html#foo跳轉到該頁面。 除此之外,除了將它包含在<iframe/>中,別無其他方法。

我自己的一些發現:

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

  • 制作一個在IFRAME中包含遠程頁面的網頁並將其滾動到所需位置:幾乎不實用,麻煩,尤其是當遠程頁面位於另一個域中時。 而且,特別是,很難(我認為實際上是不可能的)計算所需的滾動量。

  • 一個極端的解決方案:制作一個proxy.php腳本,該腳本用於為遠程頁面重寫它,添加一些ID /錨,例如以一定百分比的步長計算字符。 缺點太多,無法列出。

  • 我正在尋找的功能類型似乎已經討論過,但僅存在於“ 建議 ”區域中。 片段搜索 Greasemonkey腳本似乎是最合適,功能最強大的解決方案。 但是,當然,必須將其安裝在瀏覽器中。 目前,公開訪問者要加載的公共網址是沒有用的。

根據上下文,我認為您可以通過擴展用戶瀏覽器來實現這種行為。

當您單擊鏈接時,要么直接將用戶定向到url,要么調用擴展名,該擴展名將加載頁面並在頁面上執行腳本,添加錨點或滾動或其他方式。

當然,這僅適用於接受下載您的擴展程序的用戶,並且這樣做相當復雜,因為您必須為每個瀏覽器制作一個擴展程序。這就是為什么我說“取決於上下文”;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM