問題タブ [pushstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3077 参照

jquery - jQuery BBQ を使用した hashchange、pushState -- URL に文字を追加する

見るべきフィドルがあります。hashchange は jsFiddle では機能しませんが、少なくともコードを見ることができます。

http://jsfiddle.net/LpgFt/

リンクをクリックすると、URL が次のように変わります。

それよりも:

私が間違っていることはありますか?

0 投票する
2 に答える
6862 参照

javascript - pushstateがbackbone.jsで正しく機能していません

pushstateでBackboneを使用している場合、リンクをどのようにフォーマットする必要がありますか?

現在私はこれを行っています:

上記の形式を使用すると、実際にGETサーバーにリクエストが送信されます。サーバーは標準ページを提供し、バックボーンはサーバーが移動する必要があることを正しく識別しtask/create、ビューを表示します。

しかし、GETそもそもなぜリクエストを送信するのでしょうか。(pushstateをtrueに設定したとしても?)

編集:私は最新バージョンのChrome(2011年8月現在)を使用しているので、私のブラウザーは問題ではないと思います。

0 投票する
1 に答える
1181 参照

php - history.pushState ナビゲーション - メタ タグはどうですか - 別のテンプレート?

私はリロードなしで (PHP と AJAX を使用して) jquery ナビゲーション ベースのサイトを構築してきましたが、最近、ページの「戻る」、「進む」、「リロード」機能と SEO の使いやすさの問題に遭遇しました。

--このセクションをスキップして、質問に直接進みます--

私のサイトは現在(AJAXを使用していませんが)、いくつかの「コンテンツ」divを持つ単一のindex.phpをロードしています。そのうちの1つは表示され(class = "active")、他は表示されません。ユーザーがナビゲーション リンクをクリックすると、素敵なアニメーションがコンテンツ div を切り替えます。

次のようなものをマップするためにApacheを書き直しました

http://mysite.com/abouthttp://mysite.com/index.php?page=about

「about」セクションはデフォルトで表示されるセクションになります(他の「コンテンツ」divは非表示になっています)。このパラメーターに基づいて、ページの適切なメタ タグを含めます。私のサイトマップには mysite.com/about と mysite.com/blog があるので、それらは別のページとしてインデックスされます。

しかし、私は最近、これを ajax ベースにすることに決めました。これは、より多くのコンテンツを組み込む予定であり、すべてのコンテンツを 1 つのページにロードするのはばかげているからです。

注: 現在、Smarty テンプレートも実装しています。

ハッシュタグを実装することにしましたが、固有の SEO の問題を見て、hashbangs (wth?!) を発見し、history.pushState()History.jsで新しい HTML5 のものを見つけて、それを使用することにしました。

ここで主な質問が来ます

ajax を使用してコンテンツ div にページ テンプレートをロードするページが 1 つしかない場合、history.pushState() を使用して URL を変更し、mod_rewrite と PHP バックエンドを使用して、次のような直接要求の場合にデフォルトのコンテンツ テンプレートを提供できます。 "mysite.com/about" (mysite.com/index.php?page=about) (基本的な使いやすさと SEO のため)、2 つのテンプレート (コンテンツ テンプレート) とメタがない限り、直接要求のメタ コンテンツを設定することもできません。テンプレート?これを回避する別の方法はありますか?

タグは<title><meta name="description">特にテンプレートを用意することを保証するのに十分重要ですか?

要約すると、特定の ajax がロードされたページ コンテンツ テンプレートの正しいタイトルとメタ説明を使用して、素敵な mod_rewrite URL を Google に表示する必要があります。

編集

私は、hypem.comで彼らが行っていることとほぼ同じことを目指しています。<title>新しいコンテンツがリストされたときにタグを変更するイベントリスナーがあります。それらは正しい<meta name="description">タグも提供しますが、それがブログなどのメイン ページの 1 つへの直接のリクエストである場合に限ります - http://hypem.com/blog/indie+today/10332などの他のページは、メインのブログ ページ、および直接要求された場合のみ

0 投票する
1 に答える
1253 参照

internet-explorer - Firefoxでプッシュ状態を無効にする

IE8(IE7をエミュレート)でバグが発生し、iFrameプッシュステートハックがiFrameのURLにリダイレクトされ、IEでデバッグしようとしています。Firefox(またはChrome)で状況を再現できるように、Firefoxのプッシュ状態の認識を無効にする理由がある場合でも、より効果的なデバッグのためにコンソールウィンドウを使用できますか?

別のオプションは、iFrameプッシュステートハックが正しく機能し、iFrameのURLにリダイレクトする場所を誰かが見た場合です(リダイレクト機能を失うと、リダイレクトされていると私は信じます)

別の注意:明らかにリダイレクトを引き起こすwindow.location =またはdocument.location行はありません。これは、進むボタンが無効になっていることを確認したときに2番目に確認したものです。

0 投票する
9 に答える
33383 参照

javascript - 「シングルページ」JS Web サイトと SEO

最近では、強力な「単一ページ」の JavaScript Web サイトを作成するための優れたツールがたくさんあります。私の意見では、これはサーバーを API として機能させ (それ以上のものは何もしない)、クライアントに HTML 生成のすべてを処理させることで正しく行われます。この「パターン」の問題は、検索エンジンのサポートがないことです。私は2つの解決策を考えることができます:

  1. ユーザーが Web サイトに入ると、クライアントがナビゲーションするときとまったく同じように、サーバーがページをレンダリングします。したがって、直接アクセスすると、サーバーはクライアントがpushStatehttp://example.com/my_pathを介してアクセスした場合と同じものをレンダリングします。/my_path
  2. サーバーが検索エンジン ボット専用の特別な Web サイトを提供できるようにします。通常のユーザーがhttp://example.com/my_pathアクセスすると、サーバーは Web サイトの JavaScript を多用したバージョンを提供する必要があります。しかし、Google ボットがアクセスした場合、サーバーは、Google にインデックスしてもらいたいコンテンツを含む最小限の HTML を提供する必要があります。

最初の解決策については、ここで詳しく説明します。私はこれを行うウェブサイトに取り組んできましたが、あまり良い経験ではありません. これは DRY ではなく、私の場合、クライアントとサーバーに 2 つの異なるテンプレート エンジンを使用する必要がありました。

古き良き Flash Web サイトで 2 番目の解決策を見たことがあると思います。私はこのアプローチが最初のアプローチよりもはるかに気に入っており、サーバー上の適切なツールを使用すると、非常に簡単に実行できます.

それで、私が本当に疑問に思っているのは、次のことです。

  • より良い解決策を考えられますか?
  • 2 番目のソリューションの欠点は何ですか? Google が何らかの方法で、私が Google ボットに対して通常のユーザーとまったく同じコンテンツを提供していないことを発見した場合、検索結果で処罰されますか?
0 投票する
1 に答える
1104 参照

ajax - Google クロール、AJAX、HTML5

HTML5 では、ブラウザを更新せずに現在の URL を更新できます。HTML5 を透過的に利用できる小さなフレームワークを HTML5 の上に作成したので、ハッシュタグなしでブックマーク可能な URL を保持しながら、AJAX を使用してすべてのリクエストを実行できます。たとえば、私のナビゲーションは次のようになります。

ユーザーが [ニュース] リンクをクリックすると、実際にはフレームワークがそのページに対して AJAX GET 要求 (jQuery) を発行し、現在のコンテンツを取得したコンテンツに置き換えます。その後、HTML5 の pushState() を使用して現在の URL が更新されます。ただし、ブラウザにhttp://www.example.com/newsと入力することも同様に可能です。その場合、コンテンツはもちろん同期的に提供されます。

問題は、Google がこのサイトのページをクロールするかどうかです。Google が Ajax アプリケーションをクロールするためのガイドを提供していることは知っていますが、この記事ではハッシュタグがブックマーク可能性のために使用されていると想定しており、私はハッシュタグを使用しません (使用したくありません)。

0 投票する
1 に答える
1381 参照

javascript - history.jsGithubのようなURL変更-スラッシュでURLの一部を変更する

History.jsを使用していますが、問題が1つあります。ディレクトリを参照するときのgithubのように、スラッシュの前にあるURLの部分を変更したい(https://github.com/browserstate/History.js/)。私のコードは次のようになります。

また、ボタンを複数回押すと、history.jsは/の後の部分のみを変更するため、URLはprogram / program / program/6-10-2011に変更されます。

History.jsでこれに対処する方法はありますか?ありがとう

0 投票する
0 に答える
601 参照

javascript - jQuery ロードによる bbq.pushState()

コンテンツを動的にロードする Web サイトを構築しています。pushState() のこのコードを今持っています

私がやりたいのは、同じことを実行できるようにすることですが、それによって jQuery.load() 関数がトリガーされるようにすることです。

つまり、次のようなリンクをクリックして<a href="about.php">About</a>、wrapper の id を持つ div に a の href を動的にロードできるようにしたいのです。

これどうやってするの?

0 投票する
3 に答える
27903 参照

javascript - AJAX / jQueryを使用してページとhistory.pushState()メソッドをロードすることでブラウザの「戻る」ボタン機能を維持する

loadAJAX(jQueryメソッド)を介してページをロードし、メソッドを介してURLをブラウザーバーにプッシュするときに、戻るボタンの機能を保持したいと思いますhistory.pushState。この問題は、ブラウザの戻るボタンを1回クリックし、最初のクリックで前のURLのみが復元され、前のページが読み込まれない場合に発生します。

これまでの私のコードは次のとおりです。

私の質問は#main_content、戻るボタンの最初のクリックで前のページのAJAXロードをdivに実行する方法はありますか?

任意のヘルプ/アドバイスをいただければ幸いです。

0 投票する
1 に答える
337 参照

jquery - pjaxでコントローラーとアクションの名前を取得しますか?

私のアプリケーションでは、次の手法を使用しています。

と一緒にpjaxで送信する方法はあり#containerますか?