0

訪問者が訪問したときに Web 履歴全体をフラッシュする Web サイトを作成することに興味があります。JavaScript を使用して、各視聴者のコンピューターで履歴を取得し、その履歴に応じてさまざまな速度でアニメーション化する予定です。私が考えたのは、 を使用 history.lengthして訪問者の履歴の長さを判断し、 を使用history.go()して Web 履歴全体を -1、-2、-3 などとナビゲートすることでした。ロード時間が膨大になることは承知していますが、今はそのコンセプトについて考えているところです。この関連する質問は、コードの基礎として使用するもののように思えますが、この方法が機能しないと説明している理由がわかりません。私は JavaScript に非常に慣れていない学生です。

これが機能するかどうか、または私のアイデアを実現する方法についてのアイデアはありますか?

4

2 に答える 2

1

リンク先の質問で述べたように、JavaScript および/または DOM では、重大なプライバシー侵害になるため、ブラウザの履歴全体にアクセスすることはできません。サイトにアクセスして、そのブラウザでこれまでにアクセスしたすべてのサイトを知ることができると想像してみてください。

これにより、サイトは以下にアクセスできる可能性があります。

  1. 他のサイトでまだログインしているセッション (一部のサイトのようにセッション キーが URL に保存されている場合)
  2. どのような活動を行っているかについての洞察 (サイト X のモデレーターですか?)
  3. あなたが興味を持っていることに関する膨大な量のデータ。

これは、標準化団体やブラウザー メーカーが、ユーザーが誰とでも共有したいと考えているものではありません。そのため、ブラウザの全履歴をたどる API はありません。

@sachleen は、このアプリケーションを構築する場合に、個々のブラウザーでこの制限を回避する方法について、非常に詳細な回答を既に提供しています。完全を期すために、「ブラウザ拡張機能」という重要な用語について簡単に言及します。:-)

于 2012-11-27T03:17:38.917 に答える
1

1回電話できますhistory.go()。それはあなたが得る限りです。理由は簡単です。前のページに移動すると、javascript が消えてしまいます。別のドメインのページを持つ iframe では独自の JS を実行できないため、iframe も機能しません。詳細については、同じオリジン ポリシーについてお読みください。

私が考えることができる唯一の本当の解決策は、ブラウザー拡張機能です。これが機能する理由は、JS が複数のサイトにまたがって存続できるためです。おそらく、次のことを行う各ページにユーザースクリプトが必要になるだけです。

  • 変数をチェックして、機能が有効になっているかどうかを確認します
  • そうであればhistory.go(-1)、タイムアウト後に呼び出します(速度を制御するため)

私はChromeに最も精通しているので、スクリプトを有効/無効にするbrowserActionとリダイレクトを行うコンテンツスクリプトを想像しています。その他の潜在的なオプションには、Greasemonkey (Firefox)、Tampermonkey (Chrome)、Personalized Web (Chrome) スクリプトなどがあります。

于 2012-11-27T03:11:07.137 に答える