前提
絞り込み機能などをjQueryを利用した
サイトを作成しています。
Chrome、Edgeで動くように作成したいと思っています。
困っていること、Edgeで開けない(jQueryが動作しない)
Edgeのアドレスバー先頭にIEのアイコンがあり、クリックすると
「このページはInternetExplorerモードで開かれています。
このモードでは、InternetExplorerでのみ動作する組織のサイトを
MicrosoftEdgeで開くことができます。
互換モード:IE11
保護モード:無効
ゾーン:イントラネット」と表示されます。
InternetExplorerモード(IEモード)でサイトの読み込みを許可 の設定を
「許可しない」に設定しても動作は変わりませんでした。
EdgeでF12の開発者画面に入ろうとすると、IEモードの為開けませんと表示されます。
IEで開くと
構文エラーです
「if (MyText.every(x=>targetText.indexOf(x)!=-1)) { 」となっており
アロー関数?がNGなのだと思います。
ただ、私はIEで開きたいのではなくEdgeとして開きたいのです。
アロー関数を修正するしか無いのでしょうか?
ソース
HTML
1<html> 2<head> 3<meta charset="Shift_JIS"><!-- 文字化け防止の記述 --> 4<meta http-equiv="X-UA-Compatible" content="IE=edge"/><!--IE互換で開くのをキャンセル(Edgeの時に表示崩れないようにするため)--> 5<link rel="stylesheet" href="style.css"/> 6<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" /> 7 <script src="jquery-3.6.0.min.js"></script> 8 <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 9 <link rel="stylesheet" style="text/css" href="lightbox.css"> 10 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 11 <html manifest="cache-manifest.appcache"> 12 <meta http-equiv="Cache-Control" content="no-store"> 13</head> 14 <title>テスト</title> 15<body> 16<div style="text-align: center;"> 17 <div class="search-area"> 18 <form> 19 <input type="text" id="search-text" placeholder="検索ワードを入力"> 20 </form> 21 <div class="search-result"> 22 <div class="search-result__hit-num"></div> 23 <div id="search-result__list"></div> 24 </div> 25 </div> 26</div> 27 28<div class="qa-list mts"> 29<h2 id="H1">良くある質問</h2> 30<dl class="qa"> 31<dt id="H1_Q1">テスト①</dt> 32<dd>テスト①、テスト案件 33<br>テストによるテストのためのテスト 34<div class="kensaku">テスト① 35テスト①、テスト案件 テストによるテストのためのテスト</div> 36<br></dd> 37<dt id="H1_Q2">果物といえばなんでしょう</dt> 38<dd>果物と言えばいちごです。、 39<br>クリスマスになると値上がりする気がします。 40<br> 41<div class="kensaku">果物といえばなんでしょうか? 42果物と言えばいちごです。 43クリスマスになると値上がりする気がします。 44</div> 45<br></dd> 46<dt id="H1_Q3">今年はボッチクリスマスですか?</dt> 47<dd>はい、ボッチクリスマスの予定です。 48<br>美味しいケーキでも買おうかと思っています。 49<br><br> 50<div class="kensaku">今年はボッチクリスマスですか? 51はい、ボッチクリスマスの予定です。 52美味しいケーキでも買おうかと思っています。</div> 53<br></dd> 54</div> 55 56<script> 57var words = [ 58{ label: "果物", kana: "くだもの"}, 59{ label: "電気", kana: "でんき"}, 60]; 61 62 63var searchWord = function(){ 64var searchResult, 65searchText = $(this).val(), 66targetText,hitNum,targetID,targetTitle; 67 68searchResult = []; 69searchResultTitle = []; 70searchResultID = []; 71 72$('#search-result__list').empty(); 73$('.search-result__hit-num').empty(); 74 75if (searchText != '') { 76$('.qa-list dt').each(function(e) { 77targetText = $(this).next().children('div').text(); 78targetTitle = $(this).text(); 79targetID = $(this).attr("id"); 80 81searchText=searchText.toString().replace(" "," "); 82let MyText = searchText.split(' '); 83 84if (MyText.every(x=>targetText.indexOf(x)!=-1)) { 85 searchResult.push(targetText); 86 searchResultTitle.push(targetTitle); 87 searchResultID.push(targetID); 88 } 89}); 90 91for (var i = 0; i < searchResult.length; i ++) { 92$('#search-result__list').append('<a href="#' + searchResultID[i] + '">' + searchResultTitle[i] + '</a><br>' ); 93} 94hitNum = '<span>検索結果</span>:' + searchResult.length + '件見つかりました。'; 95$('.search-result__hit-num').append(hitNum); 96} 97}; 98 99$('#search-text').on('input', searchWord); 100 101 $("#search-text").autocomplete({ 102 source: function (request, response) { 103 var list = []; 104 list = words.filter(function (word) { 105 return ( 106 word.label.indexOf(request.term) === 0 || 107 word.kana.indexOf(request.term) === 0 108 ); 109 }); 110 response(list); 111 }, 112 select: function(event, ui) { 113 console.log(ui.item.value); 114 this.value = ui.item.value; 115 $("#search-text").autocomplete("close"); 116 searchWord.apply(this, arguments); 117 searchWord(); 118 return false; 119 } 120 }); 121 122</script> 123</body> 124</html>
試したこと
アロー関数が問題ならばと以下のように修正してみましたが、
他の行で「)が不足している」と表示されてしまいます。
Javascript
1if (MyText.every(function (x){ 2 if(targetText.indexOf(x)!=-1){ 3 searchResult.push(targetText); 4 searchResultTitle.push(targetTitle); 5 searchResultID.push(targetID); 6 } 7}));
確認したいこと
・サイトをEdgeとして無理やり開く方法はありますか?
・上記アロー関数の修正方法は何か間違っていますか?
IEで開いてエラーを確認してみていますが、
}が足りません、)が足りませんばかりで解決に至りません…。
HTMLに記載している他のJavascript項目もNGなのかもしれませんが
何が悪いのか特定できません…。
回答よろしくお願いいたします。
わかったこと
まず、「Googleで検索した場合」は
アドレスバー左側がセキュリティマークになり
IEモードでは開いていません。
私が作ったサイト(社内のイントラ上にあるデータです)だと
「このサイトは安全ではありません」と表示されています。
他の人が同様に社内のイントラ(サーバー)に置いたhtmlデータも、
IEモードで開いているようです。
ただ、動作させたいのでIE11で動くようになれば良いです。
IE11で動くために何が足りないのか、参考になるところや
修正箇所があれば教えてください。よろしくお願いします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/16 06:36
2022/12/16 06:39
2022/12/16 06:47
2022/12/16 06:58