X



+ JavaScript の質問用スレッド vol.131 +
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001Name_Not_Found
垢版 |
2017/11/21(火) 21:58:33.01ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【条件】期待する回答の条件を書いてください。(ex: jQuery不可, フレームワーク不可)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
0876Name_Not_Found
垢版 |
2018/02/28(水) 18:05:34.10ID:???
nativeオンリーならDOM関連の質問は全部jQueryスレに行ってほしい
jQueryならサラッと書ける回答を素のJSで書くのダルい
もちろん、質問者自身が素のJSで書くことを望んでるなら別にいいんだけどさ
0877Name_Not_Found
垢版 |
2018/02/28(水) 18:41:59.13ID:???
だるいなら回答やめればいいんじゃね
0878Name_Not_Found
垢版 |
2018/02/28(水) 20:19:31.72ID:???
だるいって言うのはまあ良いんじゃない
でもできないって言うのはやっぱり良くないと思うから
初心者には素のJSで教えるべきだよ
基本的にライブラリは背景を理解しとかないとね

これは電子レンジでチンすればできるものということしか知らないのと
暖める必要があるから電子レンジを使うということを知っているのと
電子レンジの温める仕組みと性質を理解してるのではやはり状況対応度が違う
0879Name_Not_Found
垢版 |
2018/02/28(水) 20:36:18.20ID:???
jquery宣伝してるやつは>>826-827書いたやつだろ

jqueryならこう書けると称して
jquery関係なく処理変更で行数減らしたやつ
0880Name_Not_Found
垢版 |
2018/02/28(水) 21:02:42.15ID:???
>>875
ブラウザ固有のDOM APIなどはnativeのJavaScriptではないので
その理屈はとおらない
0881Name_Not_Found
垢版 |
2018/02/28(水) 21:05:54.42ID:???
>>879
質問に回答する人 >>>>>>> 何も書かないで文句だけ言う人

これだけは理解しような。
書けばいいんやで、誰よりも早く
0882Name_Not_Found
垢版 |
2018/02/28(水) 21:24:00.39ID:???
回答だけが欲しいなら専門サイトでやれ
ここは5chだぞ
発言に優劣は無いし急かされる理由もない
0883Name_Not_Found
垢版 |
2018/02/28(水) 21:27:16.25ID:???
俺は回答がしたいだけやで?w
0884Name_Not_Found
垢版 |
2018/02/28(水) 23:08:12.41ID:???
ライブラリ禁止なんてどこに書かれてんの?
0885Name_Not_Found
垢版 |
2018/02/28(水) 23:26:20.17ID:???
javascript自体勉強したいんだけどコード書くような本は全部jqueryなんだよなぁ
0886Name_Not_Found
垢版 |
2018/02/28(水) 23:30:02.91ID:???
>>885
nodejsとかブラウザを使わないような本なら
jQueryは出てこないと思うよ
0887Name_Not_Found
垢版 |
2018/02/28(水) 23:58:02.30ID:S6UN6FH7
なんか変な争い始まってんなwwww
個人的にはどっちでもいいが
求められてないのにちなみにjQueryでは。。。とかあえて別にかくコメもうざかったりするが。
0889Name_Not_Found
垢版 |
2018/03/01(木) 05:48:18.21ID:???
>>887
それは当たり前のように横暴に書かないということで
一応色んな人に配慮してる書き方のつもりなのでは?
0890Name_Not_Found
垢版 |
2018/03/01(木) 09:14:37.23ID:???
エラーが出てないのにe.preventDefaultが機能しない
のって経験上何か思い当たる?
0891Name_Not_Found
垢版 |
2018/03/01(木) 10:01:16.14ID:???
stopPropagation()と勘違いしてる
0892Name_Not_Found
垢版 |
2018/03/01(木) 12:18:04.61ID:???
アロー関数式とfunction式って挙動に何か違いあるの?
0894Name_Not_Found
垢版 |
2018/03/01(木) 12:35:10.71ID:???
分かった、じゃあ(function(){〜}).bind(this)と()=>{〜}の違いは?
0897Name_Not_Found
垢版 |
2018/03/01(木) 19:50:57.79ID:???
アロー関数ってリテラルやろ?
だったらfunnction命令と違ってかならず
呼び出す前に定義をかかないといけない。
と適当に書いて見る。
適当に突っ込んどいてくれ。
0898Name_Not_Found
垢版 |
2018/03/01(木) 20:09:16.53ID:???
>>897
>>892はfunction式って言ってるんだから巻き上げが起こらないのはどっちも同じだよ

基本的にfunction式にthisをbindしたものと同じと考えて相違ないと思う
0899Name_Not_Found
垢版 |
2018/03/01(木) 20:54:20.28ID:???
同じじゃないぞ
var aaa;

aaa = (function bbb(){}).bind(this);
aaa.name;
=> "bbb"

aaa = ()=>{};
aaa.name;
=> "aaa"

chromeなに勝手に無名関数に名前付けてんだよ…
0901Name_Not_Found
垢版 |
2018/03/02(金) 04:22:09.61ID:???
>>899
aaa = (function bbb(){}).bind(this);
aaa.name;
=> "bound bbb"

ってなったが?
0902Name_Not_Found
垢版 |
2018/03/02(金) 04:23:26.12ID:???
aaa = function (){}
aaa.name
=> "aaa"
0906Name_Not_Found
垢版 |
2018/03/02(金) 10:32:50.96ID:LbN5BTkq
DHCってもともとは翻訳会社なんだぜ
知らんと思うが
0907Name_Not_Found
垢版 |
2018/03/02(金) 10:37:50.11ID:???
ドコサヘキサエン酸だっけ?
0908Name_Not_Found
垢版 |
2018/03/02(金) 10:41:55.31ID:???
>>905
これなんでこうなってんの?
bind()が名前に影響及ぼさなきゃならんの?
適当にisBoundとかのプロパティ設定するんじゃだめなの?
0909Name_Not_Found
垢版 |
2018/03/02(金) 11:11:37.76ID:???
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/bind
bind() 関数は、新たな関数(束縛された関数 = a bound function; BFとも)を生成して返します。
BF は 特殊関数オブジェクト (exotic function object; ECMAScript 2015からの用語) であり、
元の関数オブジェクトをラップします。BF を呼び出すとラップされた関数が実行されます。

新しい別の関数を生成してるからオリジナルとは別の名前が付けられるってことじゃないの?
0911Name_Not_Found
垢版 |
2018/03/02(金) 11:45:47.54ID:???
newで返すのはオブジェクトであって関数じゃない
0912Name_Not_Found
垢版 |
2018/03/02(金) 11:47:20.00ID:???
f = (function bbb(){}).bind(this).bind(this).bind(this).bind(this).bind(this).bind(this);
f.name => "bound bound bound bound bound bound bbb"
0913Name_Not_Found
垢版 |
2018/03/02(金) 11:49:46.76ID:???
>>908
自分でbindメソッドを実装してみれば?
元と同じ名前ではダメな理由がわかるよ
0914Name_Not_Found
垢版 |
2018/03/02(金) 12:27:15.55ID:???
>>899はchromeだけどなんでnameにbound足されてないの?google舐めてんの?
0915Name_Not_Found
垢版 |
2018/03/02(金) 12:30:11.12ID:???
お前のバージョンが古いんだろ
0916Name_Not_Found
垢版 |
2018/03/03(土) 00:58:06.31ID:???
google先生に喧嘩売ってるやついるよwwww
ぎゃっはっはっは
0917Name_Not_Found
垢版 |
2018/03/03(土) 11:45:17.59ID:???
>>847
>>848
そうなのか。
good partsはちょっと古いけど、アマゾンレビューにも古いからどうとか書いてなくて(最近のレビューないけど)
ページ数もそんななくて手頃だし評判もいいので次コレ読もうと思ってたんだけど。
どうするかなぁ
0918Name_Not_Found
垢版 |
2018/03/03(土) 18:56:11.20ID:???
jqueryでpreventDefaultする時も、falseを返す必要ありますか?
0919Name_Not_Found
垢版 |
2018/03/03(土) 20:28:51.66ID:eXUXKasV
XMLHttpRequestって同期モードだとresponseTypeを変更できないみたいだけど、同期モードだとテキストしか受信できないってこと?
同期モードでバイナリを受信する方法はないの?
0922Name_Not_Found
垢版 |
2018/03/03(土) 21:45:27.59ID:???
>>921
しなくていいんですね
ありがとうございました
0923Name_Not_Found
垢版 |
2018/03/03(土) 23:26:58.99ID:???
Web APIの仕様書で
URL:/xxx_get
とあるものは、ブラウザのURLに/xxx_getをつければ値が返ってくるのですが、

URL:/xxx_set
Request:cmd={xxx_no}&id={xxx_id}
とあるものは、どうやってアクセスすればよいのでしょうか?

ド素人の質問で恐縮ですが教えて下さい。
0924Name_Not_Found
垢版 |
2018/03/03(土) 23:39:19.73ID:???
自分の仕事は自分でなんとかしろや
0925Name_Not_Found
垢版 |
2018/03/04(日) 00:22:23.84ID:???
JavaScriptの質問ではないような気が
0926Name_Not_Found
垢版 |
2018/03/04(日) 00:48:05.25ID:???
>>925
scriptタグの中に何か指定するのかな、じゃあJavaScriptかなと思いました。
0927Name_Not_Found
垢版 |
2018/03/04(日) 02:15:30.65ID:???
それサーバー側のプログラミングの問題じゃないの?
サーバーのプログラミング組んだ人に聞かないと駄目なんじゃない?

まぁ俺自信が完全な素人やから参考にしないで
0928Name_Not_Found
垢版 |
2018/03/04(日) 02:19:13.06ID:YlpsNuwL
URLに
?cmd={xxx_no}&id={xxx_id}
つければいいのじゃないのかな
0929Name_Not_Found
垢版 |
2018/03/04(日) 03:05:28.92ID:???
>>928
説明不足ですみません、httpのPOSTです。xmlで返ってきます。
GETならば、URLに?cmd={xxx_no}&id={xxx_id}をつければよいみたいですが。

サンプルがありまして、jqueryを読み込んでいて、scriptタグの中に以下の記述があります。

function xxx_setup(id) {
$.ajax({
type: "POST",
url: "cgi/xxx",
data:"cmd=1&id="+ id
});
}

宛先であるURLにデータを送る方法、つまりPOST?の方法が分かりません。
0930Name_Not_Found
垢版 |
2018/03/04(日) 03:29:40.00ID:???
なんでそんなdataなんだろうな。動くと言えば動くんだろうが
ってかPOSTしてるじゃん
その関数を実行すれば動くだろうさ
0931Name_Not_Found
垢版 |
2018/03/04(日) 03:36:50.56ID:???
なんでそんなdataなんだっていうのは、
data: {cmd: 1, id: 1}
こっちの書き方で良くて、見やすく文字列加工がいらないから

あとpostなら$.ajaxじゃなくて、$.post使えばいいのに
なんでみんな長い$.ajaxを使うんだろうな?

$.post("cgi/xxx", {cmd: 1, id: 1});

でいい。

んで、お前が分かってないのは、そんな所じゃなくて、
相手のサーバー(ホスト名)は何なんだってところだろ?
そんなのドキュメントでも見ろとしか
urlは見ての通りパスしか書いてないから、そのHTMLを追いてる
サーバーのホスト名になる

で、さらに次は、postしたあとの結果の受け取り方どうするのかわかってるのか?
そこも分かってなさそうなんだが。
0932Name_Not_Found
垢版 |
2018/03/04(日) 03:39:57.88ID:???
あとな、POSTならHTMLのformから送れる

まあこんな感じだな

<form action="cgi/xxx" method="post">
<input type="hidden" name="cmd" value="1">
<input type="hidden" name="id" value="1">
<input type="submit">
</form>

まあ、答えたはしたがこのレベルじゃないな。


GETっていうのはサーバーからデータを受け取るもの
POSTっていうのはサーバーにデータを送信することだよ
お前に必要なのはこのレベルの説明だろ?
0933923
垢版 |
2018/03/04(日) 03:47:02.43ID:???
>>930
>>923で書いたサンプルは一部でして、idには他で値を入れてます。

そのPOSTする方法が分からないのです。
ボタンとかを作ってクリックしてあげる必要があるのでしょうか。
以下のサイトを参照しています。
https://qiita.com/busyoumono99/items/9b5ffd35dd521bafce47

URLは、192.168.xx.xx/cgi/xxx_set なのですが、どのようにして送信するのでしょうか?
0934Name_Not_Found
垢版 |
2018/03/04(日) 03:53:05.36ID:???
なんじゃこのファッキンな記事・・・
0935Name_Not_Found
垢版 |
2018/03/04(日) 03:54:58.99ID:???
>>933
だから関数を実行すればいい。
実行する方法はいくらでもある。
この仕事をする上で、その方法を知らないわけがない。

つまりだな。
手術の真っ最中にメスって何って聞いてるようなもんだ
0936Name_Not_Found
垢版 |
2018/03/04(日) 04:03:49.56ID:???
>>935
url: "cgi/xxx", の箇所を、url: "192.168.xx.xx/cgi/xxx_set", にして、
ボタンとかを作って押してあげるでよいのでしょうか
0938Name_Not_Found
垢版 |
2018/03/04(日) 08:13:55.01ID:KR/1MVGQ
XMLHttpRequestって同期モードだとresponseTypeを変更できないみたいだけど、同期モードだとテキストしか受信できないってこと?
同期モードでバイナリを受信する方法はないの?
0940Name_Not_Found
垢版 |
2018/03/04(日) 10:20:17.95ID:???
>>934
そのコメントで興味をもって見てみたが
MicroSoftのあたりで見るのをやめたw
0944Name_Not_Found
垢版 |
2018/03/04(日) 16:05:19.90ID:???
>>929

url: "cgi/xxx/cmd=1&id=" + id,

or

data: {
cmd: "1",
id: id
}
0945Name_Not_Found
垢版 |
2018/03/04(日) 16:18:38.47ID:???
どうせcgi/xxx/cmd=1&id=undefinedになってるというオチ
0946Name_Not_Found
垢版 |
2018/03/04(日) 16:53:04.97ID:???
var xhr = new XMLHTTPRequest()
xhr.open('POST', 'cgi/xxx', true);
xhr.setRequestHeader('Content-Type','application/x-www-urlencoded;charset=UTF-8');
xhr.send("cmd=1&id="+ id )

かな
0947923
垢版 |
2018/03/04(日) 18:49:59.11ID:???
>>944
>url: "cgi/xxx/cmd=1&id=" + id,
urlにホスト名を記述していないのに、なぜ宛先に届くのかが分かりません。

GETの場合は、URLで指定しているので分かります。
POSTの場合は、サーバにデータを送信するのに、サーバのアドレス(ホスト名)をどこに指定すればよいのか?が分かりません。
関数を実行するには、ボタンとかを作って押すというので正しいのでしょうか
0948Name_Not_Found
垢版 |
2018/03/04(日) 18:53:12.82ID:???
>>946
宛先であるホスト名は、192.168.xx.xx なのですが、
>xhr.open('POST', 'cgi/xxx', true);
これでどうやってホスト名に送るのでしょうか?
0949Name_Not_Found
垢版 |
2018/03/04(日) 18:59:58.41ID:???
cgi/xxxがアドレスじゃないんか?
0952Name_Not_Found
垢版 |
2018/03/04(日) 20:12:52.77ID:???
趣味で知識ゼロからサイト作ってる人?
0953923
垢版 |
2018/03/04(日) 20:13:14.05ID:???
>>950
>サーバへのデータ送信について
の箇所を読みましたが、疑問がはれません。

GETのときは、ブラウザのURLに192.168.xx.xx/cgi/xxx_get などと指定してアクセスすれば値が返ってくる。←単純明快
POSTのときは、ブラウザのURLに指定する?しない?
どうやら、XMLHTTPRequest()を作って送るみたいだ。どうやれば実行される?
実行されたとして、どうやって192.168.xx.xx/cgi/xxx へメッセージを送っているのか?

GETのときは、192.168.xx.xx をブラウザのURLで指定したけど、
POSTのときは、192.168.xx.xx をどこにも指定しないでどうやって送るのだろうか?
0954Name_Not_Found
垢版 |
2018/03/04(日) 20:17:40.57ID:???
一回試しにうごかしてみりゃいいやん
0955923
垢版 |
2018/03/04(日) 20:18:22.02ID:???
>>952
Web系の知識ゼロの底辺SEがWeb APIを使おうとして悪戦苦闘中です。
0956Name_Not_Found
垢版 |
2018/03/04(日) 20:20:18.34ID:???
>>954
いまの環境だと試せないので明日試します。
0957Name_Not_Found
垢版 |
2018/03/04(日) 20:21:43.00ID:???
そのWeb APIの仕様書が何の仕様書でどう書かれてるかは知らんけど
通信先URLが、ホスト名が指定されていない cgi/xxx だけであっても、
だから絶対に機能しないとはいえない
0958Name_Not_Found
垢版 |
2018/03/04(日) 20:40:15.72ID:???
GETの時
xhr.open('GET',encodeURIComponent('sample.sample?query1=some2&query2=some2'))
xhr.send(null)

POSTのとき
xhr.open('POST', 'sample.sample')
xhr.setRequestHeader('content-type','application/x-www-urlecoded;charset=UTF-8');
xhr.send(encodeURIComponent('query1=some1&query2=some2'))
0960Name_Not_Found
垢版 |
2018/03/04(日) 22:10:50.78ID:???
>>958
GETのときは、ブラウザのURL欄に192.168.xx.xx/cgi/xxx_get と指定するので、そこにあるデータを取得するのは分かります。
POSTのときは、GETのときのようにブラウザのURL欄に指定することはしないみたいなので、どこに192.168.xx.xx を指定しているのでしょうか?

この構文の中に 192.168.xx.xx/cgi/xxx のアドレスが含まれているようではなさそうですし。。
0961Name_Not_Found
垢版 |
2018/03/04(日) 22:22:22.30ID:???
カレントディレクトリじゃねぇの?
0962Name_Not_Found
垢版 |
2018/03/04(日) 22:38:24.22ID:???
>GETのときのようにブラウザのURL欄に指定
?
0963Name_Not_Found
垢版 |
2018/03/04(日) 22:51:38.22ID:???
相対パスと絶対パスの話じゃないの
0964Name_Not_Found
垢版 |
2018/03/04(日) 22:56:01.92ID:???
悪戦苦闘って言葉を使っていい状況じゃないな
0965Name_Not_Found
垢版 |
2018/03/04(日) 23:20:19.62ID:???
>>961
カレントディレクトリはどこのカレントディレクトリでしょうか?
サーバーの?それともクライアントの?
0966923
垢版 |
2018/03/04(日) 23:22:18.24ID:???
>>962
>>923でRequestを設定しなくてよい方は、ブラウザにURLを入れて実行したら値が表示されたので、
これがGETなのかなと思っていて、そのことを言っています。
0967Name_Not_Found
垢版 |
2018/03/04(日) 23:27:43.92ID:???
>>963
>>928
>url: "cgi/xxx",
このパスはサ−バのカレントディレクトリからのパスを指していると思うのですが、
192.168.xx.xx を指定しなくても送信できるのでしょうか?
宛先が分からないのではないでしょうか?
0969Name_Not_Found
垢版 |
2018/03/04(日) 23:43:47.70ID:???
'URL'にすきなもんおきゃいいだけだろ
ばかなのかこいつ
0970Name_Not_Found
垢版 |
2018/03/04(日) 23:48:27.75ID:???
おまえらなんでキレながら丁寧に教えてんの?
ツンデレなの?
0971Name_Not_Found
垢版 |
2018/03/05(月) 00:12:14.87ID:???
べっべつに教えてるわけじゃないんだからっ
ただの独り言なんだからっ
0972Name_Not_Found
垢版 |
2018/03/05(月) 00:14:45.16ID:???
いや、俺はjQuery以前の問題なんでさっさと手を引いたよ
流石にこの程度じゃjQueryの素晴らしさを他の人に
伝えることは難しいからね。

つまり1+1の答はなんだ?っていう話題で
jQueryを使うと〜という話をするのは難しいということ
せめてAjaxの話にまでくれば良いんだけどね
0973Name_Not_Found
垢版 |
2018/03/05(月) 00:30:57.02ID:sxVFIZX2
>>965

>>959
0974Name_Not_Found
垢版 |
2018/03/05(月) 00:32:37.38ID:???
jQueryニキに見放されるとは
もうおまえこの業界でいきていけんぞ
0975Name_Not_Found
垢版 |
2018/03/05(月) 01:16:26.77ID:???
見放すとは失敬な。お前らに任せるって言ってるんだよw
jQueryの話題じゃねーもの
レス数が950を超えています。1000を超えると書き込みができなくなります。

ニューススポーツなんでも実況