2009-12-23 72 views
3

我不打算改變鏈接(我聽說這是不可能的,但如果不是我想知道如何)。如果需要添加到瀏覽器歷史記錄中,我很好。Jquery:將鏈接標記爲已訪問而不打開它們?

我想循環瀏覽頁面上的所有<a>,並將其狀態更改爲訪問。例如:

$("a").each(function(){ 
    //mark as visited (somehow?) 
}); 

基本上在我的頁面上創建一個「全部標記爲已讀」按鈕。 有什麼建議嗎?

+0

您是否希望自己的鏈接出現在用戶瀏覽器的自動提示下拉菜單中,而不需要實際訪問它們?你只想要視覺?告訴我們結果應該是什麼,已經有很多好的答案,但是你知道,我們不知道哪個答案真的可以解決問題! –

+0

我正在創建一個rss閱讀器的chrome擴展。我通過計算頁面上的鏈接來計算閱讀文章與未閱讀文章。因此,爲了將所有標記爲已讀,我必須以某種方式將它們添加到歷史記錄中。哦,好吧......我可能必須以某種方式將數據存儲在localStorage中。 –

回答

2

你可以...

1)嘗試使用AJAX(即$獲得(a.href)),但我不知道這是否會實際工作。

2)試造型看起來象訪問的鏈接(通過改變他們的CSS「顏色」屬性),但這種做法實際上不會使他們在以訪問鏈接

3)如果沒有這些工作,你可以嘗試做一些事情,如:

3A)創建的頁面

3B)上隱藏的iframe目標屬性添加到每一個標籤頁上,使它們指向隱藏的IFRAME

3C)在該ea內調用$(「a」)。click() ch循環(可能在每個頁面之間有一定的延遲時間來加載)

如果這些工作都不起作用,我認爲你運氣不好。

+0

我在考慮將$ .get或$ .load添加到歷史記錄中 - 但那是因爲我已經修復了......我想。 不幸的是,我正在尋找實際上改變狀態不只是風格。我環顧四周,並沒有找到添加到瀏覽器歷史記錄的方式......儘管很多人都希望這種情況發生。 看起來像隱藏的iFrame是要走的路。謝謝 –

0

它不是真的可以用你想要的方式,但是你可以將a:visited的CSS屬性複製到一個名爲「visited」的新類中,或者將其應用到你想要的鏈接上。

$('a').addClass('visited'); 
3

創建一個訪問的鏈接(即設置其hrefwindow.location),以及您的每一個目標鏈接的樣式設置爲新創建的鏈接的計算樣式。

+1

如果只是需要視覺,就很聰明.. –

+0

+1因爲這是我在Google找到問題時尋找的答案 –