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

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

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

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

JavaScript

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

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

Q&A

解決済

1回答

1168閲覧

ウィンドウを開き、指定したウィンドウを閉じるプログラム URLを配列から引数へ変更したい

199999

総合スコア1

URL

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

JavaScript

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

関数

関数(ファンクション・メソッド・サブルーチンとも呼ばれる)は、はプログラムのコードの一部であり、ある特定のタスクを処理するように設計されたものです。

0グッド

0クリップ

投稿2021/06/06 12:06

編集2021/06/06 13:01

前提・実現したいこと

タイトルにもあるように配列からではなく、関数の引数からurlを得たいです。

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

Uncaught SyntaxError: expected expression, got '}'

該当のソースコード

JavaScript

1<!DOCTYPE html> 2<html> 3 4<head> 5 <meta charset="utf-8"> 6 <title></title> 7</head> 8<script> 9 10 // 変数を用意 11 var page = []; 12 13 function createNewWindow (URL,n) { 14 // 別ウィンドウを開く 15 page[n] = window.open("URL","_blank","width=400, height=600"); 16 17 } 18 19 function closeWindow (n){ 20 page[n].close(); 21 } 22 23 24</script> 25 26<body> 27 28 <table border = "1"> 29 <tr><th>ページ名</th><th>Open</th><th>Close</th></tr> 30 31 <tr> //amazonのページを開く 32 <td>Amazpn.co.jp</td><td><input type="button" value="Open" onclick="createNewWindow("https://www.amazon.co.jp",0)"></td> 33 <td><input type="button" value="Close" onclick="closeWindow(0);"></td> 34 </tr> 35 <tr> //googleのページを開く 36 <td>Google</td><td><input type="button" value="Open" onclick="createNewWindow("https://www.google.co.jp" ,1);"></td> 37 <td><input type="button" value="Close" onclick="closeWindow(1);"></td> 38 </tr> 39 40 41 42 </table> 43</body> 44 45</html> 46 47

JavaScript

1<!DOCTYPE html> 2<html> 3 4<head> 5 <meta charset="utf-8"> 6 <title></title> 7</head> 8<script> 9 10 // 変数を用意 11 var page = []; 12 var array = ["https://www.amazon.co.jp","https://www.google.co.jp"]; 13 14 function createNewWindow (n) { 15 // 別ウィンドウを開く 16 page[n] = window.open(array[n],"_blank","width=400, height=600"); 17 18 } 19 20 function closeWindow (n){ 21 page[n].close(); 22 } 23 24 25</script> 26 27<body> 28 29 <table id = "d_table" border = "1"> 30 <tr><th>ページ名</th><th>Open</th><th>Close</th></tr> 31 <tr> 32 <td>Amazpn.co.jp</td><td><input type="button" value="Open" onclick="createNewWindow(0);"></td> 33 <td><input type="button" value="Close" onclick="closeWindow(0);"></td> 34 </tr> 35 <tr> 36 <td>Google</td><td><input type="button" value="Open" onclick="createNewWindow(1);"></td> 37 <td><input type="button" value="Close" onclick="closeWindow(1);"></td> 38 </tr> 39 40 </table> 41</body> 42 43</html> 44

試したこと

試したことに関してはコードの2個目のように配列arrayをつくり、そのなかにURLを入れておき、関数createnewwindowの引数を1つにすると目的は達成されました。しかし、コードの1つ目のように関数の引数にURLを入れてしまうと、動かなくなりました。コードを見た限り、onclick="createNewWindow"のURLの部分が怪しいなと思っていますが、解決方法がよくわかりません。アドバイスをいただきたいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

| <input type="button" value="Open" onclick="createNewWindow("https://www.amazon.co.jp",0)">

これだと、onclick=に続く文字列がcreateNewWindow(になってしまいますね。
"で始まった文字列がそこで閉じてしまっているからです。

この場合、"で囲った文字列の中では、"の代わりに'を使用できます。

HTML

1<input type="button" value="Open" onclick="createNewWindow('https://www.amazon.co.jp',0);">

あと、createWindowでは

| window.open("URL","_blank","width=400, height=600");

ではダメですね。これだと第1引数にURLという文字列を渡してしまっていますし、あと第3引数には空白が入っていてはいけません。

ここは

JavaScript

1window.open(URL,"_blank","width=400,height=600");

です。

投稿2021/06/06 13:24

itagagaki

総合スコア8402

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

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

199999

2021/06/06 14:18

解決いたしました!納得できました、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問