teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コメントを受け追記

2015/11/26 03:14

投稿

moredeep
moredeep

スコア1507

answer CHANGED
@@ -35,3 +35,67 @@
35
35
  });
36
36
  </script>
37
37
  ```
38
+
39
+ 再追記:
40
+ JavaScriptというより、JQueryが使えないのだと思います。
41
+ (勝手にJQueryを使用していると思い込んでいました。ゴメンナサイ。)
42
+
43
+ スクリプトを以下に変更してください。(古いのは消してください。)
44
+ ```JavaScript
45
+ <script>
46
+ window.onload = function(){
47
+ var getVar = window.location.search.substring(1,window.location.search.length); //?以降を取得(?は要らないので1文字削除)
48
+ var getVarArray = getVar.split("&"); //&で文字列を分割
49
+ var pageNum = 0;
50
+ for(var i = 0; i < getVarArray.length; i++){
51
+ var val = getVarArray[i].split("="); //=で文字列を分割
52
+ if(val[0] == "page"){
53
+ pageNum = val[1] - 0; //0を引いて文字列を数値に変換
54
+ }
55
+ }
56
+
57
+ if(pageNum <= 1){
58
+ // getパラメータpageが見つからないか、1の場合
59
+ if(isIE() != 'ie'){
60
+ var eleArray = document.getElementsByClassName("dynamicDisplay");
61
+ if(eleArray != null){
62
+ for(var i = 0; i < eleArray.length; i++){
63
+ eleArray[i].style.display = 'block';
64
+ }
65
+ }
66
+ }else{
67
+ // document.getElementsByClassNameを使えない場合があるため回りくどい処理を行う
68
+ var allElements = document.getElementsByTagName('*');
69
+ var noneDisplayElements = [];
70
+ for (var i = 0, j = 0; i < allElements.length; i++){
71
+ if (allElements[i].className == 'dynamicDisplay'){
72
+ noneDisplayElements[j] = allElements[i];
73
+ j++;
74
+ }
75
+ }
76
+ if(noneDisplayElements != null){
77
+ for(var i = 0; i < noneDisplayElements.length; i++){
78
+ noneDisplayElements[i].style.display = 'block';
79
+ }
80
+ }
81
+ }
82
+ }
83
+ }
84
+
85
+ //使用ブラウザの判断
86
+ function isIE(){
87
+ var userAgent = window.navigator.userAgent.toLowerCase();
88
+
89
+ if(userAgent.indexOf('msie') != -1){
90
+ return 'ie';
91
+ }else{
92
+ return 'other';
93
+ }
94
+ }
95
+ </script>
96
+ ```
97
+
98
+ ちなみに、JavaScriptが動作しているかどうかはアラートを入れると分かりやすいです。
99
+ 適当なところに以下を差し込んでみてください。
100
+ alert("JavaScript動作確認");
101
+

1

コメントを受け追記

2015/11/26 03:14

投稿

moredeep
moredeep

スコア1507

answer CHANGED
@@ -2,4 +2,36 @@
2
2
  (page=が無い場合or1の場合は表示、それ以外は非表示で)
3
3
 
4
4
  下記ページが参考になるかと思います。
5
- [http://phpjavascriptroom.com/?t=js&p=location4](http://phpjavascriptroom.com/?t=js&p=location4)
5
+ [http://phpjavascriptroom.com/?t=js&p=location4](http://phpjavascriptroom.com/?t=js&p=location4)
6
+
7
+ 追記:
8
+ 表示状態から非表示状態へ切り換えると、
9
+ 一部マシン、一部ブラウザでちらつく可能性があるので、
10
+ 元から非表示にしておき、1ページ目だけ表示するように書きました。
11
+
12
+ 消したい要素(divなりtableなり)の
13
+ ・styleに"display:none;"を追加
14
+ ・classに"dynamicDisplay"を追加
15
+ →既にclassが付いている場合は半角スペース区切り
16
+
17
+ 上記を実施後、以下のソースを任意の場所に挿入すれば、可能です。
18
+
19
+ ```JavaScript
20
+ <script>
21
+ $(function(){
22
+ var getVar = window.location.search.substring(1,window.location.search.length); //?以降を取得(?は要らないので1文字削除)
23
+ var getVarArray = getVar.split("&"); //&で文字列を分割
24
+ var pageNum = 0;
25
+ for(var i = 0; i < getVarArray.length; i++){
26
+ var val = getVarArray[i].split("="); //=で文字列を分割
27
+ if(val[0] == "page"){
28
+ pageNum = val[1] - 0; //0を引いて文字列を数値に変換
29
+ }
30
+ }
31
+ if(pageNum <= 1){
32
+ // getパラメータpageが見つからないか、1の場合
33
+ $('.dynamicDisplay').css('display', 'block');
34
+ }
35
+ });
36
+ </script>
37
+ ```