前提・実現したいこと
現在、javascriptでURLを取得してページごとで違うイベントを発火させようと試みているのですが、2つ目の条件分岐の"else if"のalert が一度ページをリロードをしないと出てきません。
どのような記述をすればページを表示しただけでalertが出るようになるのかの教えて頂きたいです。
よろしくお願い致します。
window.onpageshow = function() { var path = location.href; if(path.indexOf("confirm") >= 0){ history.pushState(null, null, null); window.addEventListener('popstate', function(event) { history.pushState(null, null, null); location.reload(); }); } else if (path.indexOf("new") >= 0){ window.alert("ok") } }
補足
発火出来るようになったら「URLに"new"が入っていたら一度リロードする」というようにしたいと思っています。
↓このページです
http://localhost:3000/player/new/vocal
このページのHTML
<div class="wrapper-new"> <%=render "header"%> <div class="main-new"> <div class="box-form"> <div class="new-titles"> <h2>フォーム入力【ボーカル】</h2> <div class="progress"> <div class="progress-bar1"> <h5>カテゴリー選択</h5> <div class="progress-bar-circle1"><i class="fas fa-check"></i></div> <p>フォーム入力</p> <div class="progress-bar-circle2"></div> </div> <div class="progress-bar2"> <p>掲載完了</p> <div class="progress-bar-circle3"> </div> </div> </div> <%=form_with(scope: :vocal, model: @vocal, url: player_new_vocal_path, local: true) do |f| %> <% if @vocal.errors.any? %> <div class = "alert alert-warning"> <ul> <% @vocal.errors.full_messages.each do |message| %> <li><i class="fas fa-exclamation-circle"></i><p><%= message %></p></li> <% end %> </ul> </div> <% end %> <div class="form-name" ontouchstart=""> <h3>名前 / ペンネーム<span>必須</span></h3> <%= f.text_field :name, placeholder: "例: taro takuroku", class: "name-field" %> </div> <div class="form-style"> <h3>演奏スタイル/ジャンル<span>必須</span></h3> <%= f.text_area :style, placeholder: "例:Rock、R&B、Irish", class: "style-area" %> </div> <div class="form-daw"> <h3>DAW<span>必須</span></h3> <%= f.text_area :daw, placeholder: "例:Logic Pro X、Pro Tools", class: "daw-area" %> </div> <div class="form-gender"> <h3>性別<span>必須</span></h3> <%= f.select :gender, [ ["男性"], ["女性"], ["その他"]], prompt: "--" %> </div> <div class="form-keyrange"> <h3>キーレンジ<span>任意</span></h3> <%= f.text_area :keyrange, placeholder: "例:地声:A3〜D5 裏声:C5〜E5", class: "keyrange-area" %> </div> <div class="form-equipment"> <h3>録音機材<span>必須</span></h3> <%= f.text_area :equipment, placeholder: "例:【マイク】NEUMANN U87Ai、【I/O】FireFaceUCX、【マイクプリ】NEVE 1073", class: "equipment-area" %> </div> <div class="form-sns"> <h3>SNSアカウント<span>どちらか必須</span></h3> <%= f.text_field :sns, placeholder: "例:https://twitter.com/Remote__Rec", class: "sns-field" %> </div> <div class="form-contact"> <h3>連絡先<span>どちらか必須</span></h3> <%= f.text_field :contact, placeholder: "例:xxxxx@gmail.com", class: "contact-field" %> </div> <div class="form-language"> <h3>言語<span>必須</span></h3> <%= f.text_field :language, placeholder: "例:日本語、英語(UK)", class: "language-field" %> </div> <div class="form-sample"> <h3>サンプル<span>任意</span></h3> <%= f.text_field :sample, placeholder: "例:https://recording", class: "sample-field" %> </div> <div class="form-comment"> <h3>コメント<span>必須</span></h3> <%= f.text_area :comment, placeholder: "例:納期:即日〜3日 ご依頼時にご相談ください。メジャーでの演奏経験あり!どんなジャンルでもお任せください。", class: "comment-area" %> </div> <div class="form-submit"> <label> <%= f.submit "確認ページへ", class: "submit-btn"%> <i class="fas fa-arrow-circle-right"></i> </label> </div> <% end %> </div> </div> </div>
あなたの回答
tips
プレビュー