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

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

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

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

JavaScript

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

FileMaker

FileMaker(ファイルメーカー)は、ファイルメーカー社が開発しているデータベース構築ソフトウェアです。

HTML

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

Q&A

解決済

2回答

798閲覧

HTMLでの自動遷移について

Irontak

総合スコア13

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

JavaScript

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

FileMaker

FileMaker(ファイルメーカー)は、ファイルメーカー社が開発しているデータベース構築ソフトウェアです。

HTML

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

0グッド

0クリップ

投稿2019/02/14 15:14

編集2019/02/14 22:04

前提・実現したいこと

仕事で、URLからhtmlを開くと別のURL(filemaker)に自動遷移をして、HTMLは、自動的に閉じるように設定して、
遷移する際に、URLから取得したパラメータを遷移先(filemaker)にも持っていけるように実現したいです。
その為、開発をしておりますが、HTMLとjavascriptは、初心者の為、躓いております。
自動遷移の部分とURLからのパラメータ取得を単独では、うまくいけたのですが、結合すると上手くいきません。
パラメータをHTML上で表示させようとするとブランクとなってしまいます。どのようにすればいいのでしょうか?
また、遷移先のURLを取得したパラメータをみて、URLの値を変化させることは可能でしょうか?

現在のコードは、こちらです。HTMLのbodyを記載しております。遷移先は、Yahoo!にしておりますが、実際は、filemakerのファイル名とスクリプトを設定します。

該当のソースコード

HTML

1 2<body> 3 <!-- <div>ページ遷移します。</div> --> 4 <!-- <p>3秒後にサブウィンドウが閉じられます。</p> --> 5 <!-- <p>URL上に設定されたパラメータは以下となります。</p> --> 6 <form name="form1" action="#"> 7 着信番号 :<input type="text" name="getpram1" size="50" /> 8 </form> 9 <form name="form2" action="#"> 10 受電番号 :<input type="text" name="getpram2" size="50" /> 11 </form> 12 <form name="form3" action="#"> 13 受電者   :<input type="text" name="getpram3" size="50" /> 14 </form> 15 <form name="form4" action="#"> 16 窓口    :<input type="text" name="getpram4" size="50" /> 17 </form> 18 <form name="form5" action="#"> 19 タイミング :<input type="text" name="getpram5" size="50" /> 20 </form> 21 <form name="form6" action="#"> 22 ユニークID:<input type="text" name="getpram6" size="50" /> 23 </form> 24 <form name="form7" action="#"> 25 発生時間 :<input type="text" name="getpram7" size="50" /> 26 </form> 27 <script type="text/javascript"> 28 window.onload=getdata; 29 setTimeout("subwin()", 3000); 30 var strSearchWord = str1 31 location.href = "https://www.example.com/search?q=" & strSearchWord; 32 function subwin(){ 33 <!-- window.close(); // サブウィンドウを閉じる --> 34 // window.open('about:blank','_self').close(); // サブウィンドウを閉じる 35 } 36 function getdata(){ 37 var str1 = ""; 38 var str2 = ""; 39 var str3 = ""; 40 var str4 = ""; 41 var str5 = ""; 42 var str6 = ""; 43 var str7 = ""; 44 45 if(window.location.search){ 46 var url = window.location.search; 47 var url_data = url.substring(1).split('&'); 48 for (var i = 0; i < url_data.length; i++) { 49 if (url_data[i].indexOf("ani=") != -1 ){ 50 str1 = url_data[i].replace("ani=",""); 51 } 52 if (url_data[i].indexOf("dnis=") != -1 ){ 53 str2 = url_data[i].replace("dnis=",""); 54 } 55 if (url_data[i].indexOf("agent_id=") != -1 ){ 56 str3 = url_data[i].replace("agent_id=",""); 57 } 58 if (url_data[i].indexOf("skill=") != -1 ){ 59 str4 = url_data[i].replace("skill=",""); 60 } 61 if (url_data[i].indexOf("type=") != -1 ){ 62 str5 = url_data[i].replace("type=",""); 63 } 64 if (url_data[i].indexOf("ucid=") != -1 ){ 65 str6 = url_data[i].replace("ucid=",""); 66 } 67 if (url_data[i].indexOf("timestamp=") != -1 ){ 68 var ts = url_data[i].replace("timestamp=",""); 69 var d = new Date( ts * 1000 ); 70 var year = d.getFullYear(); 71 var month = d.getMonth() + 1; 72 var day = d.getDate(); 73 var hour = ( d.getHours() < 10 ) ? "0" + d.getHours() : d.getHours(); 74 var min = ( d.getMinutes() < 10 ) ? "0" + d.getMinutes() : d.getMinutes(); 75 var sec = ( d.getSeconds() < 10 ) ? "0" + d.getSeconds() : d.getSeconds(); 76 str7 = year + "-" + month + "-" + day + " " + hour + ":" + min + ":" + sec; 77 } 78 } 79 <!-- URL等の各種パラメータをテキストボックスに設定 --> 80 document.form1.elements["getpram1"].value=str1; 81 document.form2.elements["getpram2"].value=str2; 82 document.form3.elements["getpram3"].value=str3; 83 document.form4.elements["getpram4"].value=str4; 84 document.form5.elements["getpram5"].value=str5; 85 document.form6.elements["getpram6"].value=str6; 86 document.form7.elements["getpram7"].value=str7; 87 } 88 } 89 </script> 90</body> 91

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

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

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

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

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

kei344

2019/02/14 16:04

(質問文は編集できます)例示用ドメインはご自身で所有されていない限り example.com, example.jp, example.co.jp など例示用に予約されたドメイン名を利用してください。 http://www.atmarkit.co.jp/fwin2k/win2ktips/801exampledom/exampledom.html https://blog.jxck.io/entries/2017-09-27/example-local-test-domains.html https://blog.ko31.com/201304/sample-domain-example/ また、質問文のコードはコードブロックで囲んでいただけませんか? ```(バッククオート3つ)で囲み、前後に改行をいれるか、コードを選択して「<code>」ボタンを押すとコードブロックになります。 あと、location.hrefの位置から、値を渡すことは何一つしていないように思われます。1つでも値を送信したコードも質問文に追記してください。
Irontak

2019/02/14 22:06

申し訳ございませんでした。このようなところでの質問をするのが初めてでしたので、例示用ドメイン等の修正が漏れておりました。ご指摘ありがとうございます。
guest

回答2

0

ベストアンサー

javascript

1<!DOCTYPE html> 2<html lang="ja"> 3<meta charset="utf-8"> 4<style> 5</style> 6 7<body> 8<form id="form1" method="get" action="https://www.xxxx.xx.jp/"> 9 <table> 10 <tr><th>着信番号 <td>: <input type="text" name="getpram1" size="50" /> 11 <tr><th>受電番号 <td>: <input type="text" name="getpram2" size="50" /> 12 <tr><th>受電者 <td>: <input type="text" name="getpram3" size="50" /> 13 <tr><th>窓口 <td>: <input type="text" name="getpram4" size="50" /> 14 <tr><th>タイミング <td>: <input type="text" name="getpram5" size="50" /> 15 <tr><th>ユニークID <td>: <input type="text" name="getpram6" size="50" /> 16 <tr><th>発生時間 <td>: <input type="text" name="getpram7" size="50" /> 17</form> 18 19<script> 20 21const 22 params = new URL (document.location).searchParams, 23 keys = ['ani', 'dnis', 'agent_id', 'skill', 'type', 'ucid', 'timestamp'], 24 form = document.querySelector ('#form1'), 25 inps = [...form.querySelectorAll ('input[type="text"]')], 26 tmfc = ['getFullYear', 'getMonth', 'getDate', 'getHours', 'getMinutes', 'getSeconds'], 27 pdng = (s)=> ('0' + s).slice (-2), 28 wait = 10000; 29 30keys.forEach ((a, i) => inps[i].value = params.get (a) || ''); 31let dt = new Date (parseInt (inps[6].value, 10) * 1000); 32let [y, m, d, ...hms] = tmfc.map (fc => dt[fc]()); 33let [h, mn, s] = hms.map (pdng); 34 35inps[6].value = `${y}-${m+1}-${d} ${h}:${mn}:${s}`; 36 37setTimeout (() => { 38 form.submit () 39}, wait); 40 41 42</script> 43

投稿2019/02/14 22:26

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

パラメータの取得部分より前で問題が山盛りですね。

まず、onloadは少なくともfunction getdata() {} の定義される部分の後で実行されます。

js

1window.onload=getdata; 2setTimeout("subwin()", 3000); // 関数自体を渡すほうがよい⇒ setTimeout(subwin, 3000); 3var strSearchWord = str1 // 定義されていない。関数getdataが実行されていない上にスコープが違うので参照は無理。 4location.href = "https://www.example.com/search?q=" & strSearchWord; // onloadより前に実行されるのと、「&」は文字列の連結演算子ではない。使うなら「+」

↓JavaScript中にHTMLコメントが混ざっている

js

1function subwin(){ 2<!-- window.close(); // サブウィンドウを閉じる --> 3 // window.open('about:blank','_self').close(); // サブウィンドウを閉じる 4}

後は読んでいませんが、同じパラメータで送信したいだけなら、window.location.searchを渡してしまえばよいのでは。

js

1location.href = "https://www.example.com/search" + window.location.search;

投稿2019/02/15 09:35

編集2019/02/15 09:36
kei344

総合スコア69400

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

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

退会済みユーザー

退会済みユーザー

2019/02/15 09:42

最初にそう思ったのだけれど timestampを変換しないと。
kei344

2019/02/15 09:49

そうですね、指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問