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

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

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

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

Q&A

解決済

2回答

757閲覧

javascriptでURLの先に遷移させたいのですが。。。

Hayato1201

総合スコア220

JavaScript

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

0グッド

0クリップ

投稿2018/08/05 09:16

編集2018/08/05 23:52

awsのlamda関数からあるサイトのurlが返ってくる様な関数コードを書きました。そしてそれをwindow.open()で開きたいのですが、うまく行きません。

js

1fetch( 2 3//省略 4 5 ).then( (response) => response.json() ).then(response => { 6 7 console.log(response.body) 8 window.open(response.body, '_blank'); 9 })

以上でコンソール上には"https://。。。。。"とURLが表示されますが実際に開くのは自分が作っているページです。これはなぜでしょう?試しにコンソールに出たURLを

js

1window.open("https://。。。。。", '_blank')

と打ち込んでみるとちゃんと開いてくれます。原因はなんでしょうか?

イメージ説明

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

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

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

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

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

guest

回答2

0

MDNによるとwindow.open()は引数が3つ必要な様ですが。

var window = window.open(url, windowName, [windowFeatures]);

投稿2018/08/05 22:30

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

m.ts10806

2018/08/05 22:34

[]で書いてある引数は省略可能な引数ですよ。
guest

0

ベストアンサー

先に何も表示しないブランクのウィンドウを開いておいてそのウィンドウをターゲットにURLを開いてみるとどうでしょう?

例:

js

1url = "http://example.com"; 2window.open(null, 'blankWindow'); 3window.open(url, 'blankWindow');

投稿2018/08/05 09:29

編集2018/08/05 10:03
m.ts10806

総合スコア80850

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

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

Hayato1201

2018/08/05 11:11

回答ありがとうございます。 やはりこれでも同じ結果になります。同じ自分が作っているページが開かれたときのURLを確認すると、 localhost:番号/https://。。。。。(開きたurl)となってしまっています。このlocalhost:番号/がついているためそうなってしまう様ですが、これをhttps://。。。。。だけにして開くにはどうすればいいでしょう??
m.ts10806

2018/08/05 12:11

response.bodyではなく直にそのURLを適当な変数に入れて実行した場合はどうなりますか? window.open()を使っている場合、URL文字列自体に何か不備がない限りは別ウィンドウで開くものだとは思いますが
Hayato1201

2018/08/05 12:21

var url = response.body window.open(url, '_blank'); こういう事ですかね?これでも同じくうまく行きません。。。
m.ts10806

2018/08/05 12:45

いえ、それでは箱を変えているだけでしかないので、固定でURL文字列を入れてください。 var url = "https://~~"; 取得予定のURLを入れるのが望ましいですが、問題の切り分けのためにひとまずgoogle.co.jpなど メジャーなやつを入れて試してから、実際取得されるURLを入れてみてください。 もしかしたら、http→httpsなのでしたら何かしら(特にローカルからだと)ブラウザの仕様で引っかかっている可能性もなくもないですが、今の情報だけではなんとも言えません。
Hayato1201

2018/08/05 14:04

実際に取得するurlでも直接入れるとできます!
Hayato1201

2018/08/05 14:05

var url = "https://~~"; window.open(url, '_blank'); だと問題なく開く感じです。
m.ts10806

2018/08/05 21:57

ということは、response.bodyではURL以外の情報も何かしら含まれているのではないでしょうか。 console.log(response.body);の結果をドメイン部分を例えばexample.comなどに置き換えてマスクかけて提示いただけますか? ブラウザ開発ツールのコンソール画面をURL部分を一部加工をかけたものでも構いません。
Hayato1201

2018/08/05 23:53

ツイッターの認証画面なのですが、以上の様にコンソールには表示されます。質問に画像を追加しました。
m.ts10806

2018/08/29 05:40

どのように解決されたのでしょうか? https://teratail.com/help/question-tips#questionTips4-2 > あなたがどのアドバイスを元に、どのように解決できたのかをお礼とともに伝えましょう。 「これ以上回答がこないからとりあえず解決にした」のでしたら後から同じような問題を抱えた人のためにならないので、解決済みを解除していただきたく。
Hayato1201

2018/08/29 06:15

””が入ってしまっていた事が問題だった様です。ありがとうございました。
m.ts10806

2018/08/29 06:25

私の回答からの解決ではないように思いますので自身で回答を書いて自己解決としてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問