問題タブ [pageshow]
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 - html pageshow イベントと load イベントの違いは何ですか?
HTML5 にはpageshow イベントがあります。onload
ボディのハンドラーとは異なる動作をするのはどのような場合ですか?
android - Android 2.2 で PageShow イベントが見つからない
Android 2.2 および 2.3.3 avd/phone で発生した問題がありますが、avd にインテル アトム イメージを使用している場合は発生しません。phonegap 2.3.0 と jqm 1.3.0 を使用しています。ページに pageshow イベントがなく、アプリケーションが壊れてしまい、ナビゲーションが機能しなくなりました。
pgLogin の pageshow イベントがなく、ナビゲーションが壊れています。私はバインドしています:
ログでわかるように、jqm からモバイル初期化イベントを取得し、phonegap と最初のページからデバイスの準備完了イベントを取得します。pgSplash はすべてのイベントをトリガーします: 初期化、表示前のページ、ページ表示 しかしその後壊れてしまう。4.1 エミュレーター /galaxy タブ デバイスでは、問題なく動作します。
jquery-mobile - ページ読み込み時の jQuery Mobile ダイアログ
初めての jQuery Mobile アプリに取り組んでいます。アプリケーション全体で値が必要な localStorage 値があるため、pageshow イベントを利用してこの値を確認しました。
これは、さまざまなページをナビゲートするときに機能しますが、最初のページが読み込まれたときに呼び出されることはありません。上記のIf文を、pageshowリスナーを追加する部分の下に再度コピーしようとしましたが、ダイアログを表示して非表示にしてから再度表示するという効果があります。
その最初のページでは、ダイアログを開くと pageshow がトリガーされているように見えます (私のセレクターを考えると、これは奇妙です)。これにより、別のダイアログがトリガーされます。これを回避する方法、または全体を進めるためのより良い方法について誰かアドバイスがありますか?
更新#1:試してみました
しかし、ダイアログを起動して非表示にし、再び表示するという元の問題と同じ効果がありました。セレクターでそれを除外しようとしたにもかかわらず、どういうわけかダイアログを起動すると pageshow イベントが発生しているようです。transition: "none"オプションを削除すると、ダイアログはまったく表示されないことに注意してください。
更新 #2:また、空白の最初のページを作成してから、簡単なページ遷移を実行しようとしました
しかし、それはまだ正しい動作をしていません。このシナリオでは、次のページに移動しますが、ダイアログが表示されないため、pageshow イベントは発生しません。ナビゲーションメニューから別のページを選択でき、ダイアログが表示されるため、起動していないことはわかっています。
更新 #3: pageshow リスナーをアタッチするセレクターを変更しました。where data-role="page" を選択する代わりに、ID で特定のページを選択しています。その後、前回の 2 回の更新で説明した両方のアプローチを再試行しましたが、それでも正しく機能しません。まず、allowSamePageTransition を使用して最初のページを更新しようとすると、ダイアログが 2 回起動するため、pageshow が 2 回起動するように見えます。次に、空白の初期ページを使用してみて、pageshow リスナーをアタッチした直後にリダイレクトを実行すると、何も起こらず、ダイアログが表示されません。他のページに移動すると、ダイアログは期待どおりに機能します。この最初のページがなぜそんなに面倒なのか理解できません。
javascript - JavaScript - bfcache/pageshow イベント - event.persisted は常に false に設定されていますか?
標準の Java/SpringMVC/JSP/jQuery Web アプリで、「戻る」(または history.go(-1)) イベントを検出しようとしています。ページに戻ります (ここで、集計コンポーネントによって表示されるバックエンド データを変更できます)。
私は JavaScript で次のことを試しました (これを達成する方法に関する StackExchange のいくつかの投稿に従ってください):
persisted
私は OpenSUSE Linux を実行しており、FireFox と Chrome (最新バージョン) でこれを試しましたが、イベントの属性が に設定されるたびにfalse
(これは、JavaScript コンソールと上記のコードからポップアップするアラートで確認できます)。つまり、サーバーから読み込まれたか、[戻る] ボタン (または [戻る] リンク) を介して再度表示されたかに関係なく、毎回ということです。
私の意図は、ページが [戻る] ボタンまたは呼び出しを介して表示されている場合に、サーバーから更新されたデータを使用して要約コンポーネント/パネルをリロードするために AJAX 呼び出しを行うことでしたhistory.go(-1)
。
また、ページが bfcache に入れられないようにアンロード ハンドラー (何もしない) を設定しようとしましたが、まだ bf-cached バージョンを表示しているようで、event.persisted
(またはevent.originalEvent.persisted
) が に設定されていfalse
ます。
このプロパティは Linux で正しく管理されていますか? コードで愚かなことをしていますか? どんな助けやアイデアも大歓迎です、ありがとう!
jquery - JQuery Mobile を使用してページにアクセスするたびにスライダー Web コントロールを更新する方法
私は JQuery Mobile Web アプリを作成しています。あるページには、HTML5 ローカル ストレージに格納された値を取得し、ページ上の Web コントロールをその値で更新する JavaScript があります。Web コントロールの 1 つにスライダー コントロールがあります。
ページにアクセスするたびにJavaScriptを実行して、ローカルストレージからコントロールを適切に更新する必要があります。すべてのページで発生する唯一の適用可能な JQuery イベントは、pageshow および pagebeforshow イベントであるため、これらのイベント中に実行するコードを結び付けようとしました。例は次のとおりです。
問題は、スライダーを参照しようとするとエラーが発生することです: 0x800a01b6 - JavaScript ランタイム エラー: オブジェクトはプロパティまたはメソッド 'slider' をサポートしていません
値をデフォルトから変更した後、スライダー Web コントロールを更新する必要があります。そうしないと、視覚的に変化しません。
それが問題です。ページが読み込まれるたびにスクリプトを実行し、エラーを発生させずにスライダー Web コントロールを更新するにはどうすればよいですか? jQuery Mobile で簡単に処理できるようにするには、さまざまな手順を踏まなければならないような気がします。
jquery - jqm pageshow関数に変数を挿入する方法
これが可能かどうかはわかりませんが、以下のようにページ ID を pageshow 関数に渡す方法を考えています。これは間違った方法だと思いますが、答えは私をほのめかしました。この例では、ページを渡し、pageshowでページ ID を追加します- 1 つのドキュメント内の一連のページに対応する#qanda_entry_1または#qanda_entry_2などを取得します。
更新: DGS の以下のコード
ページ遷移は発生していますが、ページの更新またはレンダリングはありません。私のデータは、グローバル変数「articles_data」から取得されます。クリック関数の「記事」の値を新しいページに渡す方法がわかりません。アラート「アラート(記事);」pageshow で起動されていません。
さらに、これは複数ページのドキュメント用です。
私のリストビューリンク構造は動的に生成されます
等
javascript - image.srcがpageshowイベントから設定され、同じページに戻ると、jquery image.loadイベントが起動しない
モバイル Web アプリケーションで次の状況が発生しました。
- srcImage というページに JavaScript の画像があります。
- JavaScript イメージがロードされたときに起動するように設定された JavaScript コードがあります。私の理解では、srcImage.src が有効な画像に設定されるたびに、このイベントがトリガーされる必要があります。
- ページにアクセスするたびにトリガーされるjquery mobile pageshowイベントがページにあります。このイベントでは、srcImage.src を有効なイメージに送信しました。
私が抱えている問題は、(一度ページにアクセスした後) ページに戻ると、srcImage のロード イベントが IE 10 でトリガーされないことです。私の理解では、この状況ではロード イベントをトリガーする必要がありますが、いいえ。誰かが理由を説明できますか?
/li>
javascript - jqueryの画像読み込み関数が正しく呼び出されていない
開発中のモバイル Web アプリケーションで次の問題が発生しています。javascript では、Image() コントロールがあり、画像が読み込まれたときに発生するイベントが画像コントロールに関連付けられています。ページの「pageshow」イベント内で、Image() の src 属性を有効な画像に設定しています。一度ページにアクセスした後、ページに戻ると、画像の読み込みイベントが発生しません。画像がキャッシュされていることが原因である可能性があるといくつかのスレッドが言っているのを見てきましたが、私の場合はそれが問題ではないと確信しています。画像の読み込みイベントが発生しないのはなぜですか?どうすれば正しく動作させることができますか?
コードは次のとおりです。
javascript - JQuery Mobile、window.location によるリダイレクトにより pageshow イベントが妨げられる
多くのページが相互にリンクされた JQuery Mobile アプリケーションがあります。ページ A にリンクを配置し、href をページ B に設定すると、このスクリプトは正常に動作します。
しかし、ページ A にボタンを配置し、onclick イベントに対して次のコードを記述した場合:
pageshow イベントはもう発生しません! 問題はどこですか?window.location を使用して pageshow イベントをキャッチするにはどうすればよいですか?
javascript - モバイル サファリ ブラウザの使用中に Web ページがキャッシュからリロードされないようにするにはどうすればよいですか?
Mobile Safari は、基本的に現在のページを維持し、別のページに移動すると休止状態になる特別なキャッシュ メカニズムPage Cache
(こちら) を使用します。このようにして、ユーザーがボタンを押すと、直前のページを最新の状態ですぐに表示できback
ます。
これは Web のナビゲーションやブラウジングに役立ちますが、ユーザーがそのページに移動するたびにそのページの新しいコピーを取得する必要がある場合があるため、特別なケースでは煩わしくなります。(私の場合、ログインとメインページのページに移動する必要があります)。
ユーザーが同じアプリケーションの複数のタブを開くことを妨げるものは何もないことを完全に認識しています。私はそれについて心配していません。
ページがキャッシュされないようにするためのクロス ブラウザ ソリューションは、Safari がページを開いたままにして非表示にして一時停止しているため、役に立ちません。
window.onpageshowと処理は、ブラウザが何らかの理由で 2 回目 (ボタンを押したとき) にイベントをevent.persisted
実行しないように見えるため、役に立ちません。onpageshow
back
イベントが何であるかを知らない人への注意onpageshow
: Apple は、load
およびイベントの使用をお勧めしません。ページ キャッシュunload
の概念では、これらのイベントは明確な意味を持たないからです。したがって、イベントに期待することを行うことになっています。onpageshow
load