Liên kết đậm ở nơi chưa có ai từng liên kết: Mảnh văn bản

Mảnh văn bản cho phép bạn chỉ định một đoạn mã văn bản trong phân đoạn URL. Khi điều hướng đến một URL có một đoạn văn bản như vậy, trình duyệt có thể nhấn mạnh và/hoặc khiến người dùng chú ý.

Giá trị nhận dạng mảnh

Chrome 80 là một bản phát hành quan trọng. Ứng dụng này có nhiều tính năng được mong đợi như Các mô-đun ECMAScript trong Web Workers, hợp nhất giá trị rỗng, tạo chuỗi tuỳ ý và nhiều tính năng khác. Bản phát hành, như thường lệ, đã công bố thông qua một bài đăng trên blog của Blog Chromium. Bạn có thể xem phần trích dẫn của bài đăng trên blog trong ảnh chụp màn hình dưới đây.

Bài đăng trên blog Chromium có hộp màu đỏ bao quanh các phần tử có thuộc tính id.

Có thể bạn đang tự hỏi các hộp màu đỏ có ý nghĩa gì. Chúng là kết quả của việc chạy đoạn mã sau trong Công cụ cho nhà phát triển. Ảnh này làm nổi bật tất cả các phần tử có thuộc tính id.

document.querySelectorAll('[id]').forEach((el) => {
  el.style.border = 'solid 2px red';
});

Tôi có thể đặt một liên kết sâu đến bất kỳ phần tử nào được đánh dấu bằng hộp màu đỏ nhờ mã nhận dạng mảnh mà sau đó tôi sử dụng trong hàm băm của URL của trang. Giả sử tôi muốn liên kết sâu đến trang Gửi ý kiến phản hồi cho chúng tôi trong ô Diễn đàn về sản phẩm trong sang một bên, tôi có thể làm như vậy bằng cách tạo thủ công URL https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#HTML1. Như bạn có thể thấy trong bảng điều khiển Phần tử của Công cụ cho nhà phát triển, phần tử được đề cập có id có giá trị HTML1.

Công cụ cho nhà phát triển hiển thị id của một phần tử.

Nếu tôi phân tích cú pháp URL này bằng hàm khởi tạo URL() của JavaScript, thì các thành phần khác nhau sẽ hiển thị. Hãy lưu ý thuộc tính hash có giá trị #HTML1.

new URL('https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#HTML1');
/* Creates a new `URL` object
URL {
  hash: "#HTML1"
  host: "blog.chromium.org"
  hostname: "blog.chromium.org"
  href: "https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#HTML1"
  origin: "https://blog.chromium.org"
  password: ""
  pathname: "/2019/12/chrome-80-content-indexing-es-modules.html"
  port: ""
  protocol: "https:"
  search: ""
  searchParams: URLSearchParams {}
  username: ""
}
*/

Mặc dù tôi phải mở Công cụ cho nhà phát triển để tìm id của một phần tử, nhưng thật ra rất nhiều điều về xác suất phần cụ thể này của trang sẽ được tác giả của bài đăng trên blog.

Nếu tôi muốn liên kết đến một tệp nào đó không có id thì sao? Giả sử tôi muốn liên kết với Các mô-đun ECMAScript trong tiêu đề Web Workers. Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, <h1> được đề cập không có thuộc tính id, nghĩa là không có cách nào để liên kết đến tiêu đề này. Đây là vấn đề Các mảnh văn bản sẽ được giải quyết.

Công cụ cho nhà phát triển cho thấy tiêu đề không có id.

Mảnh văn bản

Đề xuất Mảnh văn bản hỗ trợ thêm cho chỉ định một đoạn trích văn bản trong hàm băm URL. Khi điều hướng đến một URL có đoạn văn bản như vậy, tác nhân người dùng có thể nhấn mạnh và/hoặc khiến người dùng chú ý.

Khả năng tương thích với trình duyệt

Hỗ trợ trình duyệt

  • Chrome: 89.
  • Cạnh: 89.
  • Firefox: không được hỗ trợ.
  • Safari: không được hỗ trợ.

Nguồn

Vì lý do bảo mật, tính năng này yêu cầu bạn phải mở đường liên kết trong một noopener bối cảnh. Do đó, hãy nhớ đưa vào rel="noopener" trong Thẻ đánh dấu neo <a> hoặc thêm noopener đến Danh sách Window.open() gồm các tính năng chức năng của cửa sổ.

start

Ở dạng đơn giản nhất, cú pháp của Mảnh văn bản như sau: Biểu tượng băm # theo sau là :~:text= và cuối cùng là start, đại diện cho được mã hoá phần trăm mà tôi muốn liên kết.

#:~:text=start

Ví dụ: giả sử tôi muốn liên kết đến tiêu đề Các mô-đun ECMAScript trong Web Workers trong bài đăng trên blog thông báo về các tính năng trong Chrome 80, URL trong trường hợp này sẽ là:

https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#:~:text=ECMAScript%20Modules%20in%20Web%20Workers

Đoạn văn bản được nhấn mạnh như thế này. Nếu bạn nhấp vào đường liên kết trong một trình duyệt hỗ trợ như Chrome, đoạn văn bản đó sẽ được làm nổi bật và cuộn vào chế độ xem:

Đoạn văn bản được cuộn vào khung hiển thị và đánh dấu.

startend

Bây giờ, nếu tôi muốn liên kết đến toàn bộ phần có tiêu đề Các mô-đun ECMAScript trong Web Workers, chứ không phải chỉ là tiêu đề của nó? Mã hoá theo tỷ lệ phần trăm toàn bộ văn bản của phần sẽ tạo ra URL kết quả dài một cách không thực tế.

May mắn thay, có một cách tốt hơn. Thay vì toàn bộ văn bản, tôi có thể tạo khung văn bản mong muốn bằng cách sử dụng Cú pháp start,end. Do đó, tôi chỉ định một vài từ được mã hoá theo phần trăm ở đầu của văn bản mong muốn và một vài từ được mã hoá theo phần trăm ở cuối văn bản mong muốn, được tách riêng bằng dấu phẩy ,.

Lệnh đó sẽ có dạng như sau:

https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#:~:text=ECMAScript%20Modules%20in%20Web%20Workers,ES%20Modules%20in%20Web%20Workers..

Đối với start, tôi có ECMAScript%20Modules%20in%20Web%20Workers, sau đó là dấu phẩy , của ES%20Modules%20in%20Web%20Workers. dưới tên end. Khi bạn nhấp vào một trình duyệt hỗ trợ giống như Chrome, toàn bộ phần này sẽ được làm nổi bật và cuộn vào chế độ xem:

Đoạn văn bản được cuộn vào khung hiển thị và đánh dấu.

Bây giờ, có thể bạn sẽ thắc mắc về lựa chọn của tôi về startend. Trên thực tế, URL ngắn hơn một chút https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#:~:text=ECMAScript%20Modules,Web%20Workers. chỉ cần viết 2 từ ở mỗi bên cũng đã mang lại hiệu quả. So sánh startend với các giá trị trước đó.

Nếu tôi tiến thêm một bước và bây giờ chỉ sử dụng một từ cho cả startend, bạn có thể thấy rằng tôi đang gặp khó khăn. URL https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#:~:text=ECMAScript,Workers. thậm chí còn ngắn hơn, nhưng mảnh văn bản được đánh dấu không còn là mảnh mong muốn ban đầu. Chiến lược phát hành đĩa đơn việc đánh dấu sẽ dừng ở lần xuất hiện đầu tiên của từ Workers., đúng, nhưng không phải là điều tôi để nêu bật. Vấn đề là phần mong muốn không được xác định duy nhất bởi các giá trị startend hiện tại gồm một từ:

Đoạn văn bản không mong muốn được cuộn vào chế độ xem và đánh dấu.

prefix--suffix

Việc sử dụng các giá trị đủ dài cho startend là một giải pháp để có được một đường liên kết duy nhất. Tuy nhiên, trong một số trường hợp thì điều này là không thể. Trên một lưu ý, tại sao tôi chọn Ví dụ về bài đăng trên blog về việc phát hành Chrome 80? Câu trả lời là trong bản phát hành này, các Mảnh văn bản được giới thiệu:

Văn bản trong bài đăng trên blog: Mảnh URL văn bản. Giờ đây, người dùng hoặc tác giả có thể liên kết đến một phần cụ thể của trang bằng cách sử dụng một đoạn văn bản được cung cấp trong URL. Khi trang được tải, trình duyệt sẽ đánh dấu văn bản và cuộn phân đoạn vào chế độ xem. Ví dụ: URL bên dưới tải một trang wiki cho &#39;Mèo&#39; và cuộn đến nội dung được liệt kê trong thông số &quot;text&quot;.
Phần trích dẫn của bài đăng trên blog thông báo về Mảnh văn bản.

Lưu ý cách trong ảnh chụp màn hình phía trên từ "văn bản" xuất hiện bốn lần. Lần xuất hiện thứ tư là được viết bằng phông chữ mã màu xanh lục. Nếu tôi muốn liên kết đến từ cụ thể này, tôi sẽ đặt start đến text. Vì từ "văn bản" tức là chỉ có một từ thôi nên không thể có end. Chúng tôi nên làm gì? Chiến lược phát hành đĩa đơn URL https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#:~:text=text khớp với lần xuất hiện đầu tiên của từ "Văn bản" đã có trong tiêu đề:

Phân đoạn văn bản khớp ở lần xuất hiện đầu tiên của "Văn bản".

May mắn thay, vẫn có một giải pháp. Trong các trường hợp như thế này, tôi có thể chỉ định prefix​--suffix. Chiến lược phát hành đĩa đơn từ trước phông chữ mã màu xanh lục "văn bản" là "the" và từ đứng sau là "tham số". Không có ba lần xuất hiện khác của từ "văn bản" có cùng các từ xung quanh. Có sẵn tính năng này biết rằng tôi có thể chỉnh sửa URL trước đó và thêm prefix--suffix. Giống như ứng dụng khác các tham số, chúng cũng cần được mã hoá phần trăm và có thể chứa nhiều từ. https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#:~:text=the-,text,-parameter. Để trình phân tích cú pháp có thể xác định rõ ràng prefix--suffix, bạn cần phân tách các thuộc tính này từ startend (không bắt buộc) có dấu gạch ngang -.

Phân đoạn văn bản khớp tại vị trí xuất hiện "văn bản" mong muốn.

Cú pháp đầy đủ

Dưới đây là cú pháp đầy đủ của Mảnh văn bản. (Dấu ngoặc vuông cho biết tham số không bắt buộc.) Giá trị của tất cả các tham số phải được mã hoá theo phần trăm. Điều này đặc biệt quan trọng đối với dấu gạch ngang -, ký hiệu và & và dấu phẩy ,, nên các ký tự này không được hiểu là một phần của văn bản .

#:~:text=[prefix-,]start[,end][,-suffix]

Mỗi prefix-, start, end-suffix sẽ chỉ khớp với văn bản trong một phần tử cấp khối, nhưng phạm vi start,end đầy đủ có thể trải rộng trên nhiều khối. Ví dụ: :~:text=The quick,lazy dog sẽ không khớp trong ví dụ sau, vì giá trị bắt đầu chuỗi "Nhanh" không xuất hiện trong một phần tử cấp khối đơn lẻ, không bị gián đoạn:

<div>
  The
  <div></div>
  quick brown fox
</div>
<div>jumped over the lazy dog</div>

Tuy nhiên, mã này khớp trong ví dụ sau:

<div>The quick brown fox</div>
<div>jumped over the lazy dog</div>

Tạo URL mảnh văn bản bằng tiện ích trình duyệt

Việc tạo thủ công URL mảnh văn bản khá tẻ nhạt, đặc biệt là khi phải đảm bảo rằng duy nhất. Nếu bạn thực sự muốn làm vậy, đặc tả có một số mẹo và liệt kê chính xác các bước tạo URL mảnh văn bản. Chúng tôi cung cấp tiện ích mở rộng nguồn mở cho trình duyệt có tên Liên kết đến mảnh văn bản cho phép bạn liên kết đến văn bản bất kỳ bằng cách chọn văn bản đó, sau đó nhấp vào "Sao chép liên kết đến văn bản đã chọn" theo bối cảnh . Tiện ích này dùng được cho các trình duyệt sau:

Đường liên kết đến mảnh văn bản tiện ích của trình duyệt.

Nhiều đoạn văn bản trong một URL

Xin lưu ý rằng nhiều đoạn văn bản có thể xuất hiện trong một URL. Các đoạn văn bản cụ thể cần được được phân tách bằng ký hiệu và &. Dưới đây là một đường liên kết mẫu với 3 đoạn văn bản: https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#:~:text=Text%20URL%20Fragments&text=text,-parameter&text=:~:text=On%20islands,%20birds%20can%20contribute%20as%20much%20as%2060%25%20of%20a%20cat's%20diet.

3 đoạn văn bản trong một URL.

Kết hợp các mảnh văn bản và phần tử

Các mảnh phần tử truyền thống có thể được kết hợp với các mảnh văn bản. Hoàn toàn không có vấn đề gì nếu bạn trong cùng một URL, chẳng hạn như để cung cấp kết quả dự phòng có ý nghĩa trong trường hợp văn bản gốc trên trang thay đổi để đoạn văn bản không khớp nữa. URL https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html#HTML1:~:text=Give%20us%20feedback%20in%20our%20Product%20Forums. liên kết đến phần Gửi phản hồi cho chúng tôi trong Mục Diễn đàn về sản phẩm chứa cả mảnh phần tử (HTML1) và mảnh văn bản (text=Give%20us%20feedback%20in%20our%20Product%20Forums.):

Liên kết với cả mảnh phần tử và mảnh văn bản.

Lệnh mảnh

Có một phần tử của cú pháp mà tôi chưa giải thích, đó là lệnh mảnh :~:. Để tránh vấn đề về khả năng tương thích với các đoạn phần tử URL hiện có như trình bày ở trên, Thông số kỹ thuật của Mảnh văn bản giới thiệu mảnh . Lệnh phân đoạn là một phần của phân đoạn URL được phân tách bằng trình tự mã :~:. Tệp này dành riêng cho các hướng dẫn của tác nhân người dùng, chẳng hạn như text= và bị xoá khỏi URL trong khi tải để các tập lệnh tác giả không thể tương tác trực tiếp với tập lệnh đó. Hướng dẫn dành cho tác nhân người dùng còn được gọi là chỉ thị. Trong trường hợp cụ thể, text= do đó được gọi là lệnh văn bản.

Phát hiện tính năng

Để có hỗ trợ, hãy kiểm tra thuộc tính fragmentDirective chỉ có thể đọc trên document. Mảnh lệnh là một cơ chế để các URL chỉ định các hướng dẫn được hướng đến trình duyệt thay vì tài liệu. Nút này nhằm tránh tương tác trực tiếp với tập lệnh tác giả để tác nhân người dùng trong tương lai có thể thêm hướng dẫn mà không phải lo lắng về những thay đổi có thể gây lỗi đối với nội dung hiện có. Một ví dụ tiềm năng về những nội dung bổ sung như vậy trong tương lai có thể là gợi ý bản dịch.

if ('fragmentDirective' in document) {
  // Text Fragments is supported.
}

Tính năng phát hiện tính năng chủ yếu dùng cho các trường hợp mà đường liên kết được tạo một cách linh động (ví dụ: công cụ tìm kiếm) để tránh phân phối các đoạn văn bản liên kết đến các trình duyệt không hỗ trợ các đoạn văn bản đó.

Tạo kiểu cho đoạn văn bản

Theo mặc định, trình duyệt sẽ định kiểu cho các đoạn văn bản giống như cách chúng tạo kiểu mark (thường là màu đen trên nền vàng, màu hệ thống của CSS cho mark). Biểu định kiểu tác nhân người dùng chứa CSS như sau:

:root::target-text {
  color: MarkText;
  background: Mark;
}

Như bạn có thể thấy, trình duyệt sẽ hiển thị một bộ chọn giả ::target-text mà bạn có thể dùng để tuỳ chỉnh hiệu ứng làm nổi bật được áp dụng. Ví dụ: bạn có thể thiết kế các đoạn văn bản có màu đen trên nền đỏ. Như thường lệ, hãy nhớ kiểm tra độ tương phản màu để kiểu ghi đè của bạn không gây ra vấn đề về khả năng hỗ trợ tiếp cận và đảm bảo rằng việc đánh dấu thực sự trực quan nổi bật so với phần còn lại của nội dung.

:root::target-text {
  color: black;
  background-color: red;
}

Khả năng đa chất

Tính năng Mảnh văn bản có thể được chèn nhiều đoạn ở một mức độ nào đó. Chúng tôi cung cấp polyfill, được sử dụng nội bộ bởi tiện ích, dành cho các trình duyệt không cung cấp tính năng hỗ trợ tích hợp cho các Mảnh văn bản trong đó chức năng được triển khai trong JavaScript.

polyfill chứa một tệp fragment-generation-utils.js mà bạn có thể nhập và sử dụng để tạo các đường liên kết đến Đoạn văn bản. Đây là được nêu trong mã mẫu bên dưới:

const { generateFragment } = await import('https://unpkg.com/text-fragments-polyfill/dist/fragment-generation-utils.js');
const result = generateFragment(window.getSelection());
if (result.status === 0) {
  let url = `${location.origin}${location.pathname}${location.search}`;
  const fragment = result.fragment;
  const prefix = fragment.prefix ?
    `${encodeURIComponent(fragment.prefix)}-,` :
    '';
  const suffix = fragment.suffix ?
    `,-${encodeURIComponent(fragment.suffix)}` :
    '';
  const start = encodeURIComponent(fragment.textStart);
  const end = fragment.textEnd ?
    `,${encodeURIComponent(fragment.textEnd)}` :
    '';
  url += `#:~:text=${prefix}${start}${end}${suffix}`;
  console.log(url);
}

Thu thập Mảnh văn bản cho mục đích phân tích

Nhiều trang web sử dụng mảnh này để định tuyến, đó là lý do các trình duyệt loại bỏ Mảnh văn bản để không làm hỏng các trang đó. Có một nhu cầu được ghi nhận để hiển thị các liên kết Đoạn văn bản đến các trang, ví dụ: cho mục đích phân tích, nhưng giải pháp được đề xuất vẫn chưa được triển khai. Hiện tại, để giải quyết vấn đề, bạn có thể sử dụng mã dưới đây để trích xuất thông tin mong muốn.

new URL(performance.getEntries().find(({ type }) => type === 'navigate').name).hash;

Bảo mật

Lệnh mảnh văn bản chỉ được gọi trên các điều hướng đầy đủ (không cùng trang) là kết quả của a kích hoạt của người dùng. Ngoài ra, các hoạt động điều hướng bắt nguồn từ một điểm gốc khác với điểm đến sẽ yêu cầu hoạt động điều hướng diễn ra trong một Ngữ cảnh noopener, chẳng hạn như rằng trang đích được biết là tách biệt hoàn toàn. Lệnh mảnh văn bản chỉ được áp dụng cho khung chính. Điều này có nghĩa là văn bản sẽ không được tìm kiếm bên trong iframe và iframe sẽ không gọi ra một mảnh văn bản.

Quyền riêng tư

Điều quan trọng là quá trình triển khai quy cách Mảnh văn bản không bị rò rỉ cho dù văn bản có được tìm thấy trên trang hay không. Mặc dù các mảnh phần tử hoàn toàn chịu sự kiểm soát của tác giả của trang gốc, bất kỳ ai cũng có thể tạo đoạn văn bản. Hãy nhớ cách trong ví dụ ở trên của tôi không có cách nào để liên kết đến tiêu đề Các mô-đun ECMAScript trong Trình chạy web, vì <h1> đã không có id, nhưng làm cách nào để mọi người, kể cả tôi, đều có thể liên kết đến bất cứ đâu bằng cách chế tạo cẩn thận đoạn văn bản?

Hãy tưởng tượng rằng tôi đã chạy một mạng quảng cáo độc hại evil-ads.example.com. Hình dung thêm rằng trong một trong những quảng cáo của tôi iframe tôi đã tạo động iframe nhiều nguồn gốc tới dating.example.com với một Văn bản URL của phân đoạn dating.example.com#:~:text=Log%20Out khi người dùng tương tác với quảng cáo. Nếu dòng chữ "Đăng xuất" được tìm thấy, tôi biết nạn nhân hiện đang đã đăng nhập vào dating.example.com mà tôi có thể sử dụng để lập hồ sơ người dùng. Từ một văn bản ngây thơ Quá trình triển khai các mảnh có thể cho rằng việc so khớp thành công sẽ dẫn đến một nút chuyển tâm điểm ở trạng thái bật evil-ads.example.com Tôi có thể theo dõi sự kiện blur và do đó biết được thời điểm xảy ra trận đấu. Ngang bằng Chrome, chúng tôi đã triển khai các Mảnh văn bản theo cách không thể xảy ra trường hợp trên.

Một cách tấn công khác có thể là khai thác lưu lượng truy cập mạng dựa trên vị trí cuộn. Giả định tôi có quyền truy cập vào nhật ký lưu lượng truy cập mạng của nạn nhân, chẳng hạn như quản trị viên của mạng nội bộ công ty. Bây giờ, hãy tưởng tượng ở đó tồn tại một tài liệu dài về nguồn nhân lực Việc cần làm nếu bạn phải chịu... và sau đó là danh sách như tình trạng kiệt sức, sự lo lắng, v.v. Tôi có thể đặt một pixel theo dõi bên cạnh mỗi mục trên danh sách. Khi đó, nếu tôi xác định rằng việc tải tài liệu tạm thời xảy ra với việc tải theo dõi pixel bên cạnh mục bị cháy, sau đó, với tư cách là quản trị viên mạng nội bộ, tôi có thể xác định rằng một nhân viên đã nhấp vào một đường liên kết mảnh văn bản có :~:text=burn%20out mà nhân viên đó có thể đã giả định rằng đó là thông tin mật và không hiển thị với bất kỳ ai. Vì ví dụ này hơi mánh khóe tăng thứ hạng ngay từ đầu và vì việc khai thác này đòi hỏi phải đáp ứng những điều kiện tiên quyết rất cụ thể, nhóm bảo mật của Chrome đã đánh giá rủi ro của việc triển khai tính năng cuộn khi điều hướng sao cho có thể quản lý được. Các tác nhân người dùng khác có thể quyết định hiển thị phần tử trên giao diện người dùng cuộn thủ công.

Đối với các trang web muốn chọn không sử dụng, Chromium hỗ trợ Chính sách về tài liệu mà chúng có thể gửi để các tác nhân người dùng sẽ không xử lý URL của mảnh văn bản.

Document-Policy: force-load-at-top

Tắt đoạn văn bản

Cách dễ nhất để tắt tính năng này là sử dụng một tiện ích có thể chèn phản hồi HTTP tiêu đề, ví dụ: ModHeader (không phải sản phẩm của Google) để chèn tiêu đề phản hồi (không phải của yêu cầu) như sau:

Document-Policy: force-load-at-top

Một cách khác để chọn không tham gia là sử dụng chế độ cài đặt doanh nghiệp ScrollToTextFragmentEnabled. Để thực hiện việc này trên macOS, hãy dán lệnh bên dưới vào cửa sổ dòng lệnh.

defaults write com.google.Chrome ScrollToTextFragmentEnabled -bool false

Trên Windows, hãy làm theo tài liệu trên Hỗ trợ Google Chrome Enterprise Trợ giúp của bạn.

Đối với một số lượt tìm kiếm, công cụ tìm kiếm Google cung cấp câu trả lời nhanh hoặc bản tóm tắt kèm theo nội dung đoạn trích từ một trang web có liên quan. Những đoạn trích nổi bật này có nhiều khả năng xuất hiện nhất khi người dùng tìm kiếm ở dạng một câu hỏi. Khi nhấp vào một đoạn trích nổi bật, người dùng sẽ được chuyển thẳng đến đoạn trích nổi bật đoạn trích văn bản trên trang web nguồn. Điều này có hiệu quả nhờ các URL Đoạn văn bản được tạo tự động.

Trang kết quả của công cụ tìm kiếm của Google hiển thị một đoạn trích nổi bật. Thanh trạng thái cho thấy URL của Mảnh văn bản.
Sau khi nhấp vào, người dùng sẽ di chuyển đến phần có liên quan trên trang để xem.

Kết luận

URL của mảnh văn bản là một tính năng mạnh mẽ để liên kết đến văn bản tuỳ ý trên trang web. Nhà học thuật cộng đồng có thể sử dụng nó để cung cấp các liên kết trích dẫn hoặc tham khảo có độ chính xác cao. Các công cụ tìm kiếm có thể sử dụng để liên kết sâu với kết quả văn bản trên các trang. Các trang web mạng xã hội có thể sử dụng địa chỉ email khôi phục để cho phép người dùng chia sẻ các đoạn cụ thể của một trang web thay vì ảnh chụp màn hình không thể truy cập được. Tôi hy vọng bạn sẽ bắt đầu bằng URL của phân đoạn văn bản và thấy chúng cũng hữu ích như tôi. Hãy nhớ cài đặt Trình duyệt Liên kết đến mảnh văn bản tiện ích.

Xác nhận

Các Mảnh văn bản do Nick Burris triển khai và chỉ định David Bokan với sự đóng góp của Cấp Wang. Nhờ Joe Medley, khi xem xét kỹ bài viết này. Hình ảnh chính của Greg Rakozy trên Không hiển thị màn hình.