問題タブ [turbolinks]
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 - JS スクリプトは、現在のページを変更していない場合にのみ機能します
Ruby on Rails で Web プロジェクトを作成しています。フォームをリセットするための小さなスクリプトを作成したmain.js
ファイルが 内に保存されています。/app/assets/javascripts/
このスクリプトは、私が Web をサーフィンしていないときでも問題なく動作します。現在のページを変更すると、スクリプトが機能しなくなります。再び機能させるには、ブラウザからページをリロードする必要があります ( Cmd+Rまたはを使用F5)。
スクリプトはmain.js
コンパイルされるはずで、プロジェクトのすべてのページで利用できるはずですよね?
どうしたの?
のコードmain.js
:
アプリケーション.js:
javascript - Ruby-on-Rails JavaScriptがlink_toにロードされない
Google ビジュアライゼーションを使用して、ビュー内にネストされたスクリプト タグにチャート テーブルを作成しています。これは、ページが直接フェッチされる場合は十分に機能しますが、link_to
ヘルパーを介して実行する場合、javascript は機能しません。
これはターボリンクに関連していると思いますが、以下のように JavaScript を a でラップして page:load
も違いはありません。ターボリンクをオフにするとこれが解決することを確認しましたが、それがないとアプリ全体が大幅に遅くなります。
ruby-on-rails - Bootstrap 3 ターボリンクでモーダルの背景が暗くなる
rails4 の Bootstrap 3 Modal コンポーネントで Turbolinks を使用しています。ページを更新して開くと、モーダル背景は正常になります。ただし、モーダル背景の不透明度は、他のページを開くとどんどん暗くなっていきます。Turbolinks が別のページに読み込まれたときに不透明度がリセットされていないと仮定します。背景要素を見つけようとしましたが、javascript によってその場で不透明度が生成されているようです。誰も同じ問題を見たことがありますか?修正は何ですか?
javascript - Ruby on Rails: ターボリンクが有効になっている定義済みのページでのみ JavaScript をレンダリングする
Turbolinks を使用する Rails のビューに JavaScript を埋め込んでいます。
ViewX.html.haml:
ViewX をロードすると、すべて正常に動作します。しかし、View YI に移動すると、コンソールに次のエラーが表示されます。
そして、他のビューに移動しても、そのエラーは持続します。ハード リフレッシュを実行すると消えますが、次に ViewX をレンダリングすると元に戻ります。
私の質問は、一部の JS スニペットを特定のビューに対してのみレンダリングし、アプリの残りの部分を汚染しないようにするにはどうすればよいですか?
編集
わかりました、私は方法を考え出しました。これはややハックですが、封じ込められたハックです。ViewX.html.haml を次のように変更します。
ViewX.html.haml:
ruby-on-rails - Rails 4 ターボリンクと Google アナリティクス
Rails 4 で Google アナリティクス トラッキング コードとターボ リンクを実装する最善の方法を考えています。通常のスニペットは機能しますか? このための宝石も見ましたが、それが何をするのかわかりません。
ruby-on-rails - jQuery を Turbolinks で動作させる
を使用するRails 4アプリがありますTurbolinks
。私の理解では、Turbolinks
Turbolinks は新しいページをロードせず、新しい要素のみを取得するため、jQuery コードが壊れます。
したがって、新しいページに移動しても がトリガーされない場合がありますが、.ready
常に がトリガー.page:load
されるため、新しい jQuery コードは初期化されません。
jQuery コードがたくさんあるので、Turbolinks と互換性があるように jQuery コードを変更したくありません。
.ready
イベントを上書きして含めるように、私のapplication.jsにjavascriptコードを追加することは可能page:load
ですか? どうすればいいですか?