http://arstechnica.com/science/2015/01/thin-atmosphere-is-enough-to-keep-many-exoplanets-spinning/#p2如何鏈接到相應頁面的第二段?我知道它與「#p2」片段有關,但所討論的段落沒有「p2」的標識。HTML段落片段Id
在Windows 7
http://arstechnica.com/science/2015/01/thin-atmosphere-is-enough-to-keep-many-exoplanets-spinning/#p2如何鏈接到相應頁面的第二段?我知道它與「#p2」片段有關,但所討論的段落沒有「p2」的標識。HTML段落片段Id
在Windows 7
這是自定義javascript行爲當然。如果您好奇查看文件ars.min.ce8deeda61d4ec728127c4f0c17cf83e.js
。它是最小的可以美化它,發現Window.onhashchange
事件處理這看起來是這樣的:
ars.setup_hashchange = function() {
var a = function() {
hash = window.location.hash.replace(/^#/, "");
if (!hash)
return;
var a = $("#" + hash + ", *[name=" + hash + "]"), b = hash.match(/^p([0-9]+)(n)?$/), c = hash.match(/^h([0-9]+)$/);
if (a.length)
ars.scroll_to(a.first());
else if (b) {
var d = $(".article-content > p")[Math.max(0, b[1] - 1)];
b[2] && (d = $(d).next()), d && ars.scroll_to($(d))
} else if (c) {
var e = $(".article-content").find("> h2, > h3, > h4").filter(":not([data-no-jump])")[Math.max(0, c[1] - 1)];
e && ars.scroll_to($(e))
}
};
$(window).on("hashchange", a), setTimeout(a, 0)
因此,需要一段指數從location.hash
,然後找到相應的p
元素withing $(".article-content > p")
收集,最後滾動文檔吧。
非常酷。我試圖找出如何在發佈答案時在FF控制檯中找到文檔和窗口事件偵聽器。當他們剛剛將相應的ID添加到文檔的相關部分時,似乎是一個相當複雜的解決方案[對於一個不存在的問題]。 –
我同意。而且這個解決方案在IE <8時也不起作用,而id =「pX」'在任何地方都能正常工作。我只需編寫3行代碼即可動態設置ID,這樣您甚至不需要手動進行設置。 – dfsq
這是<article>
下和第一<p>
是<p class="byline" itemprop="author creator"
和第二<p>
使用Firefox 31.0是你指的一個。搜索第一個<p>
,你會得到答案。 所以#p2
指第二個<p>
這看起來不對。 '#p2'將我帶到以「不用說...」開頭的段落,這實際上是'
你想讓我們點擊這個鏈接? –
我想這將有必要回答這個問題。這是我剛剛注意到使用新聞閱讀器的事情。還沒有試圖找到另一個例子。我不知道它是如何工作的;所以我自己創造一個例子是不可能的。 –
將'#p2'更改爲任何其他號碼,它將移至相應的段落。不知道答案是什麼,但可能的答案是,它會根據您輸入的數字找到第一個,第二個等段落標記。或者他們有一個自定義函數來處理通過id獲取元素。編輯:我也可以確認,Windows 7上的Chrome也會發生同樣的情況。 – Nicolas