問題タブ [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 投票する
4 に答える
96672 参照

internet-explorer - Internet Explorer は pushState と replaceState をサポートしていますか?

Internet Explorer がブラウザの履歴を操作history.pushState()するためのおよびhistory.replaceState()メソッドをサポートしているかどうか知っている人はいますか? これらが Firefox 4 で実装されたばかりであることを考えると、私は息を止めていませんが、IE9 で実装されるかどうか知っている人はいますか?

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

javascript - HTML5 History API (Pushstate?) を使用するための優れたチュートリアル

HTML5 履歴 API を使用して、AJAX で読み込まれたコンテンツのディープ リンクの問題を解決することを検討していますが、うまくいくのに苦労しています。良いリソースを知っている人はいますか?

リンクが送信された場合に JS がオンになっていない可能性を許容するための優れた方法と思われるため、これを使用したいと考えています。JS を持つ人がそうでない人にリンクを送信すると、多くのソリューションが失敗します。

私の最初の調査では、JS 内の History API と pushState メソッドを指摘しているようです。

http://html5demos.com/history

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

javascript - HTML5 の歴史のチュートリアル

Pushstate および Onpopstate イベントで HTML5 History を使用するための適切なアプローチを説明する優れたチュートリアル/ガイドを知っている人はいますか?

0 投票する
16 に答える
111501 参照

javascript - history.pushState を介して履歴の変更について通知を受けるにはどうすればよいですか?

HTML5 でブラウザーの履歴を変更する機能が導入された今history.pushState、Web サイトは URL のフラグメント識別子を変更する代わりに、これを Ajax と組み合わせて使用​​し始めています。

悲しいことに、これらの呼び出しは では検出できなくなりましたonhashchange

私の質問は:ウェブサイトがいつ使用するかを検出する信頼できる方法 (ハック? ;)) はありhistory.pushStateますか? 仕様には、発生するイベントについては何も記載されていません (少なくとも、何も見つかりませんでした)。
ファサードを作成window.historyし、独自の JavaScript オブジェクトに置き換えようとしましたが、まったく効果がありませんでした。

詳細な説明:これらの変更を検出し、それに応じて動作する必要がある Firefox アドオンを開発しています。数日前に、いくつかのDOM イベント
をリッスンすることが効率的かどうかを尋ねる同様の質問があったことは知っていますが、これらのイベントはさまざまな理由で生成される可能性があるため、それに頼りたくはありません。

アップデート:

onpopstateが呼び出されたときにトリガーされないことを示すjsfiddle (Firefox 4 または Chrome 8 を使用) を次に示しますpushState(または、何か間違ったことをしていますか? 自由に改善してください!)。

更新 2:

別の(サイド)問題はwindow.location、使用時に更新されないことですpushState(ただし、これについてはすでにここで読んだと思います)。

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

html - HTML5 History APIをサポートしているブラウザはどれですか?

HTML5 History APIをサポートする/サポートしないブラウザの互換性チャートを誰かに教えてもらえますか?

仕様:http
://www.w3.org/TR/html5/history.html チュートリアル:https ://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

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

javascript - --window.history.pushStateを使用してページ/URLを更新します

ページを更新せずに、URLに#ハッシュを付けずにアプリを更新することに興味があります。

ハッシュを使用するjQueryBBQを見たことがありますが、それからgithubのpushStateに関する最近のブログ投稿があります。

誰かがそれを使用する方法を示すチュートリアルを知っていますか?または、これを実装してWebアプリ上の特定のリンクでpushStateを使用する方法の例を提供できますか?

ありがとう

0 投票する
5 に答える
6723 参照

javascript - onPopStateとpushStateを使用しているときに戻るボタンのクリックを処理するためにどのjsを使用する必要がありますか

pushStateを使用してWebサイトのURLを変更しています。

これはうまく機能しますが、今は戻るボタンが機能しません。履歴スタックを調べて適切なページをレンダリングするonPopStateを使用して、独自の戻るボタンと進むボタンの動作を作成する必要があると思います。秘訣は、「戻る」がNullの場合、戻るボタンが通常行うことを実行する必要があることです(ユーザーが私のサイトに入る前にページに「戻る」)。

これはかなり標準的な動作のようですが、使用できるレシピ/標準コードはありますか?

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

html - HTML5履歴がサポートされているかどうかを検出します

使用しているブラウザがHTML5履歴APIをサポートしているかどうかを確認するにはどうすればよいですか?

あなたがここで見ることができるようにhttp://caniuse.com/#search=historychrome+ ff4と他のいくつかだけがこれをサポートしています、そして彼らがこれをサポートできないなら私は何か他のことをしたいと思います。

このチェックのためにある種のifステートメントを作成するにはどうすればよいですか?

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

javascript - pushState を使用できます

pushState を使用できるかどうかを判断するライブラリを知っている人はいますか?

私はこれを使用していました:

しかし、Safari 5.0.2 にバグがあり、上記のテストに合格しても機能しないことがわかりました: http://support.github.com/discussions/site/2263-line-links-broken

他にも落とし穴があるかもしれないと思っており、おそらく誰かがすでにそれらを見つけてまとめていますが、私はまだ何も見つけていません.

編集: @Crescent Fresh

私が見たところ、pushState は履歴スタックにプッシュし、URL を変更するが、location.pathname を更新しないようです。私のコードでは、パスが更新されたかどうかを確認するために setInterval を使用しています。

Safari 5.0.2 では、pushState が URL を変更しても、location.pathname は変更されません。これは、他のブラウザや Safari のバージョンでも機能します。

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

javascript - HTML5履歴pushStateリンクバック

今日、HTML5 History APIに関する別の投稿を見て、Mozillaのチュートリアルを読んだ後、このAPIを使用して、ページをリロードしたりハッシュを使用したりせずにURLを「書き換え」ることができる基本的な動作デモを実装できました。

私の質問は次のとおりです。ページにアクセスし、HistoryAPIを使用して新しいURLを書き込むこれらのリンクの1つをクリックしたユーザーがいるとします。次に、ユーザーはページをブックマークします。これで、書き換えられたURLがブックマークされると思います。したがって、ユーザーが数日かそこらで戻ってきて、ブックマークされたページに移動しようとすると、404が返されませんか?では、どうすればそれを解決する方法を実装できますか?

これは、私が書き直したURLが存在しない場所を指していることを前提としています。