2011-11-02 32 views
19

Có cách nào để đánh dấu hoặc liên kết đến một trang HTML (mà tôi không phải là tác giả của) mà không có một neo trong mã html?Có cách nào để đánh dấu hoặc liên kết đến một phần của trang không có neo không?

Tôi muốn trang được cuộn xuống phần cụ thể khi được truy cập từ dấu trang hoặc siêu liên kết ngay cả khi không có thẻ neo trong trang đích.

Lưu ý: trang đích có thẻ liên kết là "foo" thì dấu trang như http:/...hello.html#foo sẽ không chỉ đưa người dùng đến hello.html mà còn tự động cuộn xuống phần của trang để thẻ anchore "foo" được ở phía trên cùng của màn hình

+0

Nếu bạn muốn tải trang trong một cửa sổ mới. Bạn có thể mở nó bằng cách sử dụng javascript và với tài liệu tham khảo của nó di chuyển xuống, nhưng bạn nếu trang thay đổi để có thể số lượng cuộn. – NitWit

+0

Thanks.Có thể được thực hiện nếu nó mở ra trong một tab mới (ok của nó cho tôi ngay cả với javascript nhưng nó không phải là một cửa sổ bật lên) .Page là khá tĩnh, sẽ không thay đổi. Bạn có nghĩa là tôi có thể đặt một số là độ dài của trang được cuộn xuống không? Tôi sẽ đánh giá cao bất kỳ ví dụ nào. – SoulMan

+0

Sau khi xem lại suy nghĩ ban đầu của tôi, nếu Liên kết nằm trên một cửa sổ miền khác.scrollTo sẽ không được phép XSS – NitWit

Trả lời

14

Bạn chỉ cần có thuộc tính id thích hợp trên một yếu tố để sử dụng nó như một bookmark ...

<a href="#test">Test</a> 

... 

<p id="test">Hello world</p> 

Xem W3C specification: Anchors with the id attribute

thông số kỹ thuật cũ cũng cho phép ed navigation dựa trên thuộc tính name, nhưng thuộc tính này đã bị xóa khỏi các đặc tả HTML mới nhất (nhưng nếu có thuộc tính name, nó có thể được sử dụng theo cùng cách với thuộc tính id).

Nếu không có thuộc tính id hoặc name nơi bạn muốn điều hướng, không có cách nào điều hướng đến điểm cụ thể trong trang, chỉ với chính trang đó. Trong trường hợp này, bạn có thể muốn trích dẫn thông tin thích hợp và cung cấp một trích dẫn với một liên kết hoặc có thể yêu cầu tác giả nếu họ thêm một số id.

+0

Tác vụ này có hoạt động trong bất kỳ trình duyệt hiện đại nào không? Tôi thấy (http://stackoverflow.com/questions/484719/html-anchors-with-name-or-id/484892#484892) nó không được hỗ trợ trong NS4 (tốt, những người quan tâm) nhưng làm thế nào về IE6? –

+0

Nó hoạt động trong IE6. (nhưng bạn không nên hỗ trợ bất cứ điều gì mà bạn không thể kiểm tra) –

+3

Có bất kỳ thủ thuật nào có thể liên kết đến một yếu tố không có ID không? – Rich

1

Nếu mọi thứ khác thất bại, bạn có thể sử dụng được những truy vấn từ window.location, sử dụng jQuery để có được những phần tử DOM, yêu cầu vị trí của nó và scrollTop để di chuyển ở đó (xem jQuery scroll to element)

1

Phần mở rộng Firefox "Web Marker "thực hiện chính xác những gì bạn muốn.

https://addons.mozilla.org/en-US/firefox/addon/web-marker/

Bạn có thể tìm mã nguồn của nó và tài liệu hướng dẫn ở đây:

http://liveurls.mozdev.org/tech.html

+0

Cảm ơn nhưng trang web cho biết "Không tương thích với Firefox Quantum" kể từ hôm nay. và nó cũng nói nó là "Cập nhật lần cuối 6 năm trước (ngày 15 tháng 2 năm 2012)" :( – bgoodr

Các vấn đề liên quan