質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

0回答

202閲覧

ブラウザバック、history.backでレスポンスタイムが止まらない

kenny_sayama

総合スコア1036

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2017/10/19 03:05

おきている問題

以下のようなJSを書いていて、ブラウザバックやhistory.backを行うと、レスポンスが止まらなくなってしまう現象におちいっています。 仕様上ブラウザバックなどを禁止にすることが出来ず、どうしたものかとなっています。。

Javascript

1// JS 2$(function() { 3 /* ---------------------------------------------- 4 ◇ 扱う変数 / 取得して扱う変数 5 -----------------------------------------------*/ 6 // データ取得関連変数 7 var id = window.location.href.match(".+/(.+?).[a-z]+([?#;].*)?$"); 8 // トップページで変数未定義エラーがおきてしまうので、以下の分岐で対処 9 if (!id) {delete id;} else {id = Number(id[1]);} 10 var title = $('[itemprop="title"]').text(); 11 var image = $('#bxslider li').first().children('img').attr('src'); 12 var salary = $('.storage-salary').text(); 13 var location = $('.storage-location').text(); 14 var jobCategory = $('.storage-job-category').text(); 15 var jobStatus = $('.storage-job-status').text(); 16 17 // イベントハンドラ変数 18 var btn = $('.storage-btn'); 19 var addBtnText = "お気に入りに追加する"; 20 var removeBtnText = "お気に入りに追加済み"; 21 22 // 全てのお気に入りを管理する配列 23 var favoriteList = []; 24 25 // お気に入り数のカウント 26 var favoriteCount = $('.favorite-count'); 27 28 // お気に入りのid 29 var favorite_id = 0; 30 if (store.get(id)) {var favorite_id = store.get(id).favorite_id;} 31 32 33 34 /* ---------------------------------------------- 35 ◇ 配列内検索 36 -----------------------------------------------*/ 37 38 function judgmentFavorite(id){ 39 if (favoriteList.indexOf(id) >= 0) { 40 // 存在する場合の処理 41 } else { 42 // 存在しない場合の処理 43 } 44 } 45 46 /* ---------------------------------------------- 47 ◇ トップページ 48 -----------------------------------------------*/ 49 // store.each(function(value, key){ 50 // var data = store.get(key); 51 // console.log(data); 52 // }); 53 54 (function() { 55 store.each(function(value, key){ 56 var data = store.get(key); 57 favoriteList.push(data); 58 }); 59 })() 60 // 61 // $(window).unload(function(){ 62 // store.each(function(value, key){ 63 // var data = store.get(key); 64 // favoriteList.push(data); 65 // }); 66 // }); 67 //console.log(favoriteList); 68 $('.favorite-count').text(favoriteList.length); 69 70 // <ul id="favorite-show-list">の中に気に入りの数だけ、リスト要素を生成</ul> 71 for (var i = 0; i < favoriteList.length; i++) { 72 $('#favorite-show-list').append( 73 '<li>'+ 74 '<img src="' + favoriteList[i].favorite_image + '" alt="' + favoriteList[i].favorite_title + '">'+ 75 '<div class="favorite-show-list-inner">'+ 76 '<h5 class="favorite-show-list-title">' + favoriteList[i].favorite_title + '</h5>'+ 77 '<b class="favorite-show-list-salary">' + favoriteList[i].favorite_salary + '</b>'+ 78 '<p class="favorite-show-list-location">' + favoriteList[i].favorite_location + '</p>'+ 79 '<p class="favorite-show-list-job-category">職種:' + favoriteList[i].favorite_jobCategory + '</p>'+ 80 '<p class="favorite-show-list-job-status">雇用形態:' + favoriteList[i].favorite_jobStatus + '</p>'+ 81 '</div>'+ 82 '</li>' 83 ); 84 } 85 86 87 /* ---------------------------------------------- 88 ◇ イベントハンドラ 89 -----------------------------------------------*/ 90 // ボタンをクリックした時のイベント処理 91 btn.click(function(){ 92 //var id = window.location.href.match(".+/(.+?).[a-z]+([?#;].*)?$")[1]; // ページのURLからidを正規表現で抜き出して作成 93 if (btn.hasClass('passive')) { 94 $(this).removeClass('passive fa-star-o').addClass('active fa-star').text(removeBtnText); 95 addFavorite(id); 96 } else if (btn.hasClass('active')){ 97 $(this).removeClass('active fa-star').addClass('passive fa-star-o').text(addBtnText); 98 deleteFavorite(); 99 } 100 }); 101 102 // ページ読み込み時にページのidに一致するお気に入りがあるかどうかの分岐 103 (function() { 104 //console.log(favorite_id == id); 105 if (favorite_id == id) { 106 //btn.removeClass('fa-star').addClass('passive fa-star-o').text(addBtnText); 107 btn.removeClass('passive fa-star-o').addClass('active fa-star').text(removeBtnText); 108 } else { 109 //btn.removeClass('fa-star-o').addClass('active fa-star').text(removeBtnText); 110 btn.removeClass('active fa-star').addClass('passive fa-star-o').text(addBtnText); 111 } 112 })() 113 114 /* ---------------------------------------------- 115 ◇ データを登録 116 -----------------------------------------------*/ 117 118 function addFavorite(id){ 119 var object = { 120 favorite_id: id, 121 favorite_title: title, 122 favorite_image: image, 123 favorite_salary: salary, 124 favorite_location: location, 125 favorite_jobCategory: jobCategory, 126 favorite_jobStatus: jobStatus 127 } 128 // オブジェクトを登録 129 store.set(id, object); 130 } 131 132 /* ---------------------------------------------- 133 ◇ データを削除 134 -----------------------------------------------*/ 135 136 function deleteFavorite(){ 137 // 削除 138 store.remove(id); 139 } 140 141}); 142

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問