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

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

新規登録して質問してみよう
ただいま回答率
87.20%
Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

解決済

HTML+JavaScript+IE11でURLから取得したパラメータをHTMLフォームの選択状態に反映したい

Hillbook
Hillbook

総合スコア0

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

2回答

0評価

0クリップ

119閲覧

投稿2018/08/28 06:27

編集2022/01/12 10:58

前提・実現したいこと

表示用HTMLを加工できる、検索プログラムのカスタマイズをしています。
具体的には、ファイル検索プログラムEverythingの表示用HTMLをカスタマイズしています。

 Everything
http://www.voidtools.com/support/everything/
日本語ヘルプ
https://sites.google.com/site/everythingjphelp/http

検索フォーム部分を加工して、GETリクエストのURLに検索オプションの情報を追加しています。
検索オプションを設定するチェックボックス、セレクトボックスの内容を
HTML+JavaScryptで持ち回るように作ったのですが
Chrome、Firefoxでは動作しますが、Internet Explorer 11では動作しません。。。

Javascryptに、IE未対応の部分があるようなのですが
どうすればIEでも動くようになるでしょうか…?

よろしくお願いします。

発生している問題・エラーメッセージ

エラーメッセージはありません。
ただ、チェックボックス、セレクトボックスの選択位置がデフォルトに戻り
前回検索時の選択が反映されないです。。。

該当のソースコード

HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta name="viewport" content="width=512"> <title>Files Search</title> <link rel="stylesheet" href="/ress.css" type="text/css"> <link rel="stylesheet" href="/main.css" type="text/css"> <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon"> <script src="/jquery.min.js" type="text/javascript"> </script> <script src="/scripts.js" type="text/javascript"> </script> </head> <body> ~説明文~ <center> <div class="input-part"> <form class="search-form" name="sf" action="/" method="get"> <input class="normalizebox" style="width:480px" name="search" type="text" title="Search Everything" value="" >  <input type="submit" value="検索" /> <br> <input type="checkbox" name="path" value="1" checked="checked">フォルダ名も検索対象 // 表示件数: <select name="count"> <option value="30">30件</option> <option value="50">50件</option> <option value="100">100件</option> <option value="500">500件</option> </select> <br> </form> </div> ~検索結果表示~ </center> </body>

JS

// ---------------------------------------------------------------------- // scripts.js // IE用につくりなおしたもの // ---------------------------------------------------------------------- // ◆定義 // 2.URLからパラメータ取得しHTMLに反映 var params = (new URL(document.location)).searchParams; var path = Boolean(params.get("path")); var count = parseInt(params.get("count")); var paramOld = location.search; // ---------------------------------------------------------------------- // ◆読み込み時実施 $(function() { // 2.パラメータ取得しHTMLに反映 // 旧ブラウザ補完 if (!path) { paramOld = paramOld.substring(1); /* 「&」で引数を分割して配列に */ var pair = paramOld.split("&"); var i = temp = ""; var key = new Array(); for (i = 0; i < pair.length; i++) { /* 配列の値を「=」で分割 */ temp = pair[i].split("="); keyName = temp[0]; keyValue = temp[1]; /* キーと値の連想配列を生成 */ key[keyName] = keyValue; } var path = count = ""; path = Boolean(key["path"]); count = parseInt(key["count"]); } //チェックボックス選択復帰 document.sf.path.checked = !!(path); //セレクトボックス選択復帰 document.sf.count.value = count; });

JS

// ---------------------------------------------------------------------- // scripts.js // Chrome用でうまくいったもの // ---------------------------------------------------------------------- // ◆定義 // 2.URLからパラメータ取得しHTMLに反映 var params = (new URL(document.location)).searchParams; var path = Boolean(params.get("path")); var count = parseInt(params.get("count")); // ---------------------------------------------------------------------- // ◆読み込み時実施 $(function() { // 2.パラメータ取得しHTMLに反映 //チェックボックス選択復帰 document.sf.path.checked = !!(path); //セレクトボックス選択復帰 document.sf.count.value = count; });

試したこと

URL.searchParamsがうまくいかない、というような情報を見つけたので
location.searchでURL取得処理を追加しました。
◆定義 部分の上三行をコメントアウトしてもChromeでは動くので、
うまくいっていると思ったのですが…。

補足情報(FW/ツールのバージョンなど)

元プログラムの仕様上、HTMLサーバを立てているわけではないので
PHPほかの作り込は難しいです。
HTML+JavaScriptで、よろしくお願いします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

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

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。