a:visited
のスタイルはJavaScript経由でリクエストされたリンクでは動作しないことに気付いています。しかし、標準的なユーザークリックでは、まったく同じリンクがすぐに訪問したときに登録され、その後の更新で登録されます。これがjQuery Mobile(私が最初に遭遇した場所)に固有のものか、それとも私が知らなかったブラウザの制限であるかどうかは分かりません。AJAXのリンクが検出されないA:訪問済み
答えて
履歴と訪問済みリンクのスタイリングを使用する場合は、おそらくlocation.hashを変更する必要があります。
visited linkのスタイル設定は、訪問されたリンクベースの閲覧履歴のプライバシーの脆弱性が、Did You Watch Pornウェブサイトで一般的になった後、ブラウザ間でやや矛盾しています。
私はセレクタが知っています:visitedはCSS3から削除されましたが、古典的な動作はまだそこにあるはずです。そして、はい、location.hashが変更されます(前後のナビゲーションは正常に動作します)。上記のデモリンクを参照してください。 – Nariman
a:visited
は、ブラウザの履歴にあるURLを指すすべてのリンクに一致します。
AJAXを使用してURLへのナビゲーションをキャンセルすると、URLはブラウザの履歴に決して表示されません。
#
リンクを使用して修正できます。
ありがとうございますが、上記のデモリンクをご覧ください。 – Nariman
a:visitedとのスタイルを共有するajaxコールバックを使用して、リンク上にクラスを設定することはいつでも可能です。
a:visited
は、リンクが「実行」されている場合にのみトリガーされます。
AJAX呼び出しへのリンクは、通常、「偽」を返します(ハッシュ(<a href="#">link</a>
)の解決策は、偽を返します。そうでなければ、ユーザーはページの先頭にジャンプします)。
このように、リンクは決して「実行」されていないため、訪問したとマークされません。
ありがとうございます。私にはちょっと変わったようですが、あなたが正しいと思います。私は、ブラウザがそのページへのリクエストを行い、そのページへのその後の訪問時にそのキャッシュにコピーを持っていることを意味します...直観的に、これは訪問の資格を与えます。 – Nariman
いいえ、a
要素のhref
は、他の回答者が言っているようにハッシュされたURLを指すように変更しないでください。新しいウィンドウで開く場合は、二重の読み込みが必要になります。サーバー側の変更を行うと、検索エンジンやjsが無効になっているユーザーが壊れてしまいます。
ハッシュを使用してウェブサイトをRIA(リッチインターネットアプリケーション)にアップグレードすると、リンクはmysite.com/page
を指しますが、実際にはmysite.com/#/page
にアクセスするため、実際にはアクセスしないという問題があります。
ここでの適切な解決策は、HTML5履歴APIを使用することです。このAPIを使用すると、URLを直接変更してURL変更につなげることができます(ハッシュの必要がなくなるため)。あなたはハッシュの長所と短所、さらにHTML5履歴APIとの対比についてはこちらをご覧ください: https://github.com/browserstate/history.js/wiki/Intelligent-State-Handling - HTML5 History APIでウェブサイトをアップグレードするためのサンプルコードもあります。
jQuery Mobileは今後、HTML5の履歴APIに使用される予定です(現在作業中ですが、今は実装が完了するのを待っています)。
- 1. CSS - a:訪問済み:ホバー?
- 2. Chromeの訪問済みリンクを検出する
- 3. jQueryを使用して訪問済みリンクを選択
- 4. ブートストラップと訪問されたリンク
- 5. プリコンパイル済みヘッダーの検出
- 6. 訪問したリンクでCSSの遷移が動作しない
- 7. 訪問先リンクのアンダーライン
- 8. 効率的なキーワードの検出/抽出。定義済みキーワード
- 9. サイト内の「最も訪問された」リンク/ページを取得
- 10. カスタムナゲットフィード、VSにインストール済みのパッケージが表示されない
- 11. ラジオボックスがFirefoxの「チェック済み」ステータスにリセットされない
- 12. jQueryのリンクで訪問設定
- 13. QTabWidgetのシグナルが検出されない
- 14. a:CSSルールに従わないリンクを訪問しました
- 15. jQueryの検証がThickboxで表示されないajaxの呼び出し
- 16. 訪問者の実際のIPアドレスを検出する方法
- 17. Bluetooth Low Energy:RFDuinoが検出されない
- 18. 終了EOFが検出されない
- 19. ユニティコリジョンが検出されない
- 20. G ++が検出されない
- 21. モデルクラスがzendで検出されない
- 22. Xcodeでデバイスが検出されない
- 23. フラッシュライトが検出されない
- 24. Javaソケットが検出されない
- 25. jqueryでイベントが検出されない
- 26. JSF 2 - @ManagedBeanが検出されない
- 27. SIP:Key.Shiftが検出されない
- 28. listview idが検出されない
- 29. phpセッションが検出されない
- 30. リンクされたリストループ検出アルゴリズム
コードを教えてください。私は、その事故で「間違っている」と誤っている可能性があると推測しています。 falseが返されるため、デフォルトアクションは防止され、実際にリンクを訪問したように登録されていません。 –
jQuery Mobileのコンテキストにある標準の>がこれを示しています。デモサイトをチェックして、そこにvisitedスタイルを挿入して動作を確認してください:http://jquerymobile.com/demos /1.0a3/。 – Nariman