問題タブ [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.
javascript - HTML5 の歴史と AJAX
動的な div 'contentCol' を持つ main.jsp があります。サイド バーのリンクをクリックするたびに、他のページのコンテンツが読み込まれます。
「読み込み」をクリックすると、「Load.jsp」のコンテンツが動的 div に読み込まれます。My href="Load.jsp?cid=CSC101"
、パラメーターを渡すcid=CSC101
と同時に履歴を使用して状態を保存する必要があります。
戻る/進むボタンに問題はありませんが、F5 を押すたびに url パラメータが失われます。新しく読み込まれたページでarequest.getParameter("cid")
を実行したところ、うまく取得されましたが、値を更新すると null が返されます。
javascript - pushState関数のブラウザの非互換性を検出する方法
この関数は、リンクのデフォルトのアクションを無効にし、pushState関数を使用してURLを変更します。ブラウザーがこの関数をサポートしていないかどうかを検出できるようにする必要があります。これにより、preventDefault()関数を停止できます。
任意の推奨事項は大歓迎です
ajax - フェイスブックの共有/いいねをハッシュバンのURLで処理する方法は?
ホームページからWebサイト上の他のURIをライトボックス(AJAX)に開くWebサイトを構築しています。状態の変化を管理するためのフォールバックとして、HTML5プッシュ状態とハッシュバングを使用したいと思います。
今、私はURLをクロール可能にし、Facebookで共有可能/好感を持たせたいと思っています。
ユーザーブラウザがHTML5プッシュ状態をサポートしている場合、問題ありません。URLを共有でき(例http://myserver/example
:)、Facebookは静的コンテンツで適切なOGメタを見つけます。
ただし、ユーザーがHTML4ブラウザーを使用している場合は、のようなURLになりますhttp://myserver/#!/example
。とにかく彼にFacebookで共有してもらいたい...
これで、Facebookは_escaped_fragment_置換メソッドをサポートしているように見えます。そのため、リクエストをからhttp://myserver/?_escaped_fragment_=/example
にリダイレクトするだけhttp://myserver/example
で、誰もが満足するはずです…</ p>
だから私は私のhtaccessに書き換え条件を追加しました:
私の問題は、Facebookで動作させることができないことです。Facebookのリンターでは、ハッシュバンの後のURLの一部が常にパーセントエスケープ
http://myserver/%2Fexample
され、404に到達するようなURLになります:-(
FacebookをだましてURLのこの部分をエスケープしないようにする方法を知っている人はいますか?apache mod_rewrite側で何かを行うことはできますか?
私は他の有効なajaxクロール可能/好感の持てるURL戦略にもオープンです;)
javascript - Facebook は、AJAX ページの読み込み中にブラウザーの読み込みの進行状況をどのように表示しますか?
IM クライアントを常にログイン状態に保つために、Facebook はページをドキュメントに挿入する前に AJAX を使用してページをロードすることにより、ページ全体のロードを回避します。
ただし、Facebook の AJAX リクエストの間、ブラウザは目に見えてロードしているように見えます。再読み込みボタンが X に変わり、ブラウザに組み込まれた進行状況インジケーターが読み込み/待機中などを示します)
私は AJAX ベースのナビゲーションを正常に実装できましたが、(リクエストが非同期であるため) 私のブラウザにはロードの兆候がまったく表示されません。
javascript - node.jsエクスプレスサーバーでBackbone.jspushStateルートを考慮しますか?
pushState
サポートはBackbone.jsのバージョン0.5アップデートで導入されました。
バックボーンドキュメントから:
実際のURLを使用するには、Webサーバーがそれらのページを正しくレンダリングできる必要があるため、バックエンドの変更も必要であることに注意してください。たとえば、/ document / 100のルートがある場合、ブラウザがそのURLに直接アクセスすると、Webサーバーはそのページを提供できる必要があります。完全な検索エンジンのクロール可能性を得るには、サーバーにページの完全なHTMLを生成させるのが最善です...しかし、それがWebアプリケーションの場合は、ルートURLと同じコンテンツをレンダリングし、残りをBackboneで埋めます。ビューとJavaScriptは正常に機能します。
これは些細な質問のように思えるかもしれませんが、誰かが特定の(できればエクスプレスの)node.jsサーバーコードを手伝ってくれるかどうか疑問に思っています。これらのルートをどのように処理すればよいですか?私は少し混乱しています。
これが私のアプリのルーターモジュールからの関連する抜粋です:
ここにはトップレベルのルートと概要ページのルートしかありません。では、次の場所に移動できるようにするノードサーバーをどのように設定する必要がありますか。
javascript - popstateイベントがHTML5プッシュステートを使用したバックアクションまたはフォワードアクションから発生したかどうかを取得するにはどうすればよいですか?
私は、対応するアニメーションを実行する次のアクションまたは戻るアクションに応じて、プッシュステートを使用するときに問題が発生するWebページを開発しています。イベントを受け取ったときに、ユーザーがPushstate APIを使用して履歴ボタンをクリックしたかどうかを確認するにはどうすればよいですか?それとも自分で何かを実装する必要がありますか?
html - History API - 複数のスラッシュで URL を書き換えていますか?
URL を動的に書き換えるために、HTML5 の History API (History.js 経由) を使用しています。次の形式にしたいと思います。
ここで、「記事」と「ページ」の両方が History API によって設定されます。
pushState
ただし、 History.js によって提供されるorreplaceState
は、最後のスラッシュの後の URL の部分でのみ機能するように見えるため、これは期待どおりには機能しません。
簡単な例:にいてhttp://www.example.com/example/
を行うpushState('Article-Title/1')
と、URL は になりhttp://www.example.com/example/Article-Title/1
ます。でページ番号を変更できるようになりましたが、パーツpushState('2')
を変更する方法がありません。これが私が求めているものです。Ben Lupton の例で使用されている は、URL を変更できますが、「ハード」リダイレクトも引き起こします。Article-Title
window.location.href
この制約は、XSS を防ぐために設定されていると思います。しかし、それは私を大いに悩ませます。それを回避する合理的な方法はありますか?
javascript - Backbone.js プッシュステート、googlebot、サーバーサイド
バックボーン ルーターと pushState に問題があります。
これが私のルーターです: https://gist.github.com/1672111
さて、私はいくつかのビュー、モデル、コレクション、pushState を備えたルーターを持っていますが、それは魅力的に機能します。
ユーザーが/item
(またはルート(/
)にさえ)行くと、Nodejsはページ全体をレンダリングします(ユーザーがjavascriptを有効にしているか、googlebotがページをスクレイピングするようになるかはわかりません)。
ただし、ユーザーが JavaScript を有効にしている場合は、バックボーン ルートがトリガーされ、ページが ajax 呼び出しから再レンダリングされます。(ajax 呼び出し) が必要であることはわかっていますが、どうすればよいですか?
ビューでは、再レンダリングを非表示にするために呼び出す必要が
$( this.el ).hide()
ありますか?サーバー側では、メイン コンテンツをレイアウトだけでレンダリングするべきではありませんか? この場合、Googlebot には別のコンテンツを提供し、通常のユーザーにはレイアウトだけを提供する必要がありますか? (私見は最善の解決策ではありません)
最後に、render メソッドをモデル変更イベントにバインドする必要があります。ie8 ユーザーは pushstate を持たず、サーバー側に送信されないハッシュ ベースのナビゲーションを使用しているためです。
ありがとう
参考までに: これは backbonejs メーリング リストからのクロスポストです: https://groups.google.com/group/backbonejs/browse_thread/thread/17c708f4429dcd73
jquery - Backbone.js の pushState はこれに適していますか?
Node.js/Backbone.js アプリケーションを作成していますが、pushState を正しく使用しているかどうか疑問に思っています。
私のアプリはhttp://localhost:8888/で始まります。Backbone のルーターがこれを取得し、index で何かを実行するようにします。たとえば、私のアプリでは、ユーザーがファイルをアップロードすると、Node.js はユーザーをhttp://localhost:8888/blah/にリダイレクトします。この時点で、Backbone のルーターがその URL を取得して何かを実行するようにします。
最初、Backbone は / up 以外は何も拾っていませんでした。Backbone はもちろん /#something などに応答することに気付きました。そのため、開始時に Backbone の履歴に pushState:true を設定しました。今では、ユーザーが / または Node.js リダイレクトを行っているときに必要なさまざまなことをピックアップして実行するようです。それらを /blah/ にします。
そうですか?それが機能する場合、それを維持しますか?
私は基本的に、ユーザーがどのページにいるかに応じて、異なる JavaScript を起動したいと考えています。その特定のページに固有の要素を見つけて、必要なコードを起動することで、jQuery を使って汚いことをしていました。しかし、それは非常に汚いです。これは、履歴で pushState:true を使用している限り、バックボーンのルーターで動作するようです...しかし、そうですか?
どうもありがとう、ジェームズ
php - マウスオーバー時に非表示の div を表示する
history.pushState
. _ <div>
URL の変更された部分を使用してデータベースから選択され
たページ ( ) の一部を更新する必要があります。<div>
最初は非表示 ( ) で、メニュー リンクでstyle="visibility:hidden;"
表示 ( ) されます。style="visibility:visible;"
mouseenter
メニューには異なるコンテンツを表示する 2 つのリンクがあるmouseenter
ため、$_GET["sect"]、つまり URL の一部を変更する必要があるため、PHP スクリプトは正しいデータベース レコードを選択できます。
サイト URL: http://site.com?sect=セクション
セクション-- 一部変更。
結果: URL は変更されますが、div コンテンツは変更されません。
私の英語力が低くて申し訳ありません。