X



+ JavaScript の質問用スレッド vol.131 +
レス数が1000を超えています。これ以上書き込みはできません。
0685Name_Not_Found垢版2018/02/12(月) 17:57:43.89ID:???
> なんやかんや無理やりjQueryが使えると思い込んでる

誰もjQueryが何にでも使えるとは言ってないので
(エスパーでもない限り他人が思ってることなんてわからないので)
思い込んでる事とわかるのは自分自身(>>679)だけである

ここまではよい
0686Name_Not_Found垢版2018/02/12(月) 22:13:26.66ID:???
ああ、スレ建てたやつがライブラリ禁止のテンプレ消したのか
0687Name_Not_Found垢版2018/02/13(火) 01:39:28.88ID:???
example.com?q=文字列
をサーバーサイドで受け取る時に文字列中に¥rや¥nも渡す事は出来ますか?
0689Name_Not_Found垢版2018/02/13(火) 09:34:16.09ID:???
>>685
一番の問題はそう思われてるってことだと思うぞ
jQuerer含むライブラリスタが過剰にライブラリを推してるのは事実
度々スレ分離したり議論になってるのにまだ自分たちがどう思われてるのかが分かってないのか
0690Name_Not_Found垢版2018/02/13(火) 09:53:45.83ID:???
> 一番の問題はそう思われてるってことだと思うぞ

jQueryのアンチが変なふうに思い込んでるのは
アンチが悪いってことで終わりじゃね?
0691Name_Not_Found垢版2018/02/13(火) 10:38:11.42ID:???
ライブラリの書き方はライブラリ使わないと通じない
ライブラリを使わない書き方はライブラリ使ってても使ってなくても通じる

ってところか?
0692Name_Not_Found垢版2018/02/13(火) 10:42:49.53ID:???
クチャラーに自覚したらと諭したら
俺は普通に食べてるだけ
耳障りに聞こえるのはお前が悪いと言われたって感じか
0693Name_Not_Found垢版2018/02/13(火) 22:29:27.55ID:AUT9CmqZ
react.jsやangular.jsが役立つ大規模案件、とは具体的にどの程度の規模のサイトですか?
今まで小さな企業でしか勤めたことがなく、大規模案件と言われてもイメージが湧きません
0696Name_Not_Found垢版2018/02/13(火) 23:09:02.10ID:???
すいませんageてしまいましたね
今のままの小さい仕事しかせずにjavascriptと言えばjqueryでチョロチョロ、みたいなキャリアで本当に将来生き残れるのかという不安があるのです
あとは、自分がjqueryしかできないから会社も大きな仕事が取れないんじゃないかとか考えてしまったりですね
0697Name_Not_Found垢版2018/02/14(水) 00:01:20.48ID:???
どの位大規模かというと、最近YouTubeがPolymerを導入した
だが、そのバージョンはv0.いくつのもの、今の最新はv3
そのくらい年単位で開発する案件に使うもの

そこからわかると思うがフレームワークは前もって勉強する必要はない
実際使うべきときには役に立たないから
大手も使うと決めたときに改めて勉強会を開くなりして対応してる
0698Name_Not_Found垢版2018/02/14(水) 00:30:16.57ID:???
離脱したくても離脱しづらくなるから使うなら見合った理由が必要
大規模だから使うというより
少数の比較的小規模な会社が
使い続けてく方が多い印象がある
0699Name_Not_Found垢版2018/02/14(水) 00:33:55.45ID:???
HTMLに影響強く出るのはあんまりやだな
0700Name_Not_Found垢版2018/02/14(水) 00:36:13.70ID:???
jQueryってもう役目が終わってるんだよ
いい加減目を覚ましたほうが良い
作者も見放してReactやってるじゃん
0701Name_Not_Found垢版2018/02/14(水) 00:46:01.50ID:???
jQuery 73.2%(前年比 +1.4%)、React 0.6%(前年比 +0.5%)
jQueryの役目が終わってからjQueryの役目が終わったというように

https://w3techs.com/technologies/overview/javascript_library/all

w3techsによると2017年1月の時点で71.9%のサイトが
JavaScriptのライブラリとしてjQueryを使用していることが判明したが
それから1年たった2018年1月現在、73.2%に1.4%も増えていることが判明した。

またAngularは0.5%、だがReactが伸びてきており0.5%
とAngularを逆転したことがわかる

だがjQueryには大幅なさをつけられており取って代わるのは
いつになるのか動向が注目される
0702Name_Not_Found垢版2018/02/14(水) 01:35:49.34ID:???
>>701
これからの自分たちがどうしていくかの話をしてるのに
他の人が今何をやってるのかを気にするって意味がわからんな

良く使われてるのは所謂「枯れた技術」とは言えるけど
熟れた物ってこれから先腐っていくこととほぼイコールじゃん
0703Name_Not_Found垢版2018/02/14(水) 01:36:52.26ID:???
HTTPがまだ周りでよく使われているからHTTPSにしないって言ってるのとかと同じだぞ?
0704Name_Not_Found垢版2018/02/14(水) 01:39:09.20ID:???
>>702
せやな、一年前に、これからはjQueryは減っていくとか
これからは腐っていくとか予想を立てた人恥ずかしいよな

これから?来年にはまたjQueryのシェア増えるんじゃね?

AngularもReactも熟れる前にくされなきゃ良いけど
Angularは一回腐れたよな
0705Name_Not_Found垢版2018/02/14(水) 01:41:28.87ID:???
HTTPSは費用と処理と通信のコストがあるからなあ
0706Name_Not_Found垢版2018/02/14(水) 01:42:14.75ID:???
>>703
> HTTPがまだ周りでよく使われているからHTTPSにしないって言ってるのとかと同じだぞ?
わかったわかった。HTTPSは最初からある程度使われいたからな

何かのフレームワークの使用率が10%を超えたら考えよう。
それでいいだろ?
0707Name_Not_Found垢版2018/02/14(水) 01:52:21.16ID:???
>>696
中小規模の会社が請ける規模の案件なら
素のJSだけでも十分やってけるよ
昔と比べて格段に安定して書けるようになってきたから
万が一必要になったらその時必要な分だけ調べれば済む
0708Name_Not_Found垢版2018/02/14(水) 01:59:06.49ID:???
大規模な会社がReact使っているかと言ったらそうじゃないからな
なにせ0.5%しか使われていない
0709Name_Not_Found垢版2018/02/14(水) 11:54:19.76ID:???
Ruby のHTMLのテンプレートエンジン、erb では、
HTMLとRubyの構文が交互に来るから、わかりにくい。
PHP なんかもそう

<% @items.each do |item| %>
<li><%= item %></li>
<% end %>

もしRuby に、JSX があれば最強だろう
0710Name_Not_Found垢版2018/02/14(水) 12:19:02.69ID:???
JSXもクソじゃん。条件分岐とループごときに
言語の機能を使うようじゃダメ
mustacheが最強
0711Name_Not_Found垢版2018/02/14(水) 13:04:34.95ID:???
ここまで見てきて分かったのは
仕様というのは作って環境というのは動かしていくもんだと考えてる開発者と
仕様というのは与えられて環境というのは落ち着いたものに浸かるもんだと考えてる開発者じゃ
話合うわけ無いってことだな
0712Name_Not_Found垢版2018/02/14(水) 13:08:40.64ID:???
問題

「作って環境というのは動かしていくもん」と
「与えられて環境というのは落ち着いたものに浸かるもんだ」の
違いを完結に述べよ
0713Name_Not_Found垢版2018/02/14(水) 13:39:11.48ID:???
>>712
簡潔に言えば仕様標準化と実装に関わっているかどうかってことで言えるんじゃない?
企業で言うとミーティングやカンファレンスに社員を出張させているかどうか
別にそれは社会貢献のためではなくて自分たちのやりたいように環境を動かすためにそうしてる
環境というが実際は人
その場にいる仕様や実装書いてる人に直接会って、
こここういうバグが有るんですよとか、こういうところで困ってるんですよとか話ができるってことが重要
やっぱりそれはオンラインでプルリクエスト送るのとはぜんぜん違う
仕様や実装を作ってるのは人間で、意外と少数だから、向こうも幅広い意見を汲み取ろうとはしてるけれど
どうしても自分たちの近い範囲が得をする恣意的なものになってしまう
そのために皆わざわざ録画で見れるものを会場まで行く
0714Name_Not_Found垢版2018/02/14(水) 15:23:42.02ID:???
会場のふいんきを感じ取れて満足した
まで読んだ
0715Name_Not_Found垢版2018/02/14(水) 19:44:59.89ID:???
>>693です
ひとまず自分のやりうる業務のことを考えたらjqueryやes6の習熟でひとまずは大丈夫だと感じました
まずはjqueryを使い倒してみて、jqueryでは不十分だと感じられるようになった段階で改めて考えてみることにします
ありがとうございました
0716Name_Not_Found垢版2018/02/14(水) 23:18:13.39ID:???
ES2017位までは追いかけても損は無いよ
0717Name_Not_Found垢版2018/02/15(木) 02:17:15.83ID:???
オブジェクト型の分割代入やasyncジェネレータなど
既にモダンブラウザで使える重要なES2018の機能もあるよ
0718Name_Not_Found垢版2018/02/15(木) 13:13:52.45ID:???
初めてのJavaScript 第3版、オライリー、2017

ES2015 の本。
これを読めば、クラスとか、素人はあまりの難しさに愕然とするだろう
0719Name_Not_Found垢版2018/02/15(木) 13:18:59.62ID:???
素人が騒然とするのは当たり前だろ?


いや、お前がプロで、難しくて騒然としたっていうなら
それはそれで面白いことだがw
0722Name_Not_Found垢版2018/02/15(木) 17:07:52.68ID:???
JSのクラス化って何が利点になるの
0723Name_Not_Found垢版2018/02/15(木) 17:14:12.43ID:???
人間のメンタルモデルとコードを一致させられるから
理解しやすくなる。可読性の向上

ひねくれた方法で「実現できる」じゃだめなんだ
普通に書いて普通に読めなければいけない
0724Name_Not_Found垢版2018/02/15(木) 18:38:34.26ID:???
設計で方法論に従うことができる。
しかしテストでパターン数爆発で大抵死ぬ。
0726Name_Not_Found垢版2018/02/15(木) 23:02:20.37ID:???
JSにテストなんて必要ない、トライアンドエラーがベスト
テストしたいんならよりし易い言語で書いてコンパイルすべき
0727Name_Not_Found垢版2018/02/15(木) 23:17:37.27ID:???
> テストしたいんならよりし易い言語で書いてコンパイルすべき

ではその、よりし易い言語がなにで
どういう理由で、よりし易いのか言えるんでしょうな?
0728Name_Not_Found垢版2018/02/15(木) 23:56:25.01ID:???
726ではないが、結局selenium動かしたり
casperでもぞもぞしたりするなあ
0729Name_Not_Found垢版2018/02/16(金) 09:35:25.15ID:???
svgの制御についての質問はここでしてもいいですか
0732Name_Not_Found垢版2018/02/16(金) 13:18:36.03ID:???
昔foreignObjectを使って要素のミラーを作るというのを試した記憶があるのですが
今その情報を教えて頂けますか?
「あああ」をミラーしたら「あああ」が2つになって、大本を 「いいい」に変更するとコピー先も「いいい」になるという機能です
0735Name_Not_Found垢版2018/02/16(金) 17:13:54.49ID:???
地図上に車のアイコンを置いて決まったルート上(svgのパス上)を動かすアニメーションを考えていて、進行方向に合わせてアイコンの向きを変えたいのですが、何を基準に計算をして向きを調整すれば良いかわからず困っています。
svg関連で角度の計算に使える関数やよい方法があれば教えていただけますか。

動きとしては↓こちらのサイトのようなものです。
https://itstudio.co/sample/svganime/anime7.html
0738Name_Not_Found垢版2018/02/16(金) 19:03:04.44ID:???
ここの奴ら役に立たんな
もうお前らには一切聞かんわ
0739Name_Not_Found垢版2018/02/16(金) 19:39:44.83ID:7Rrckydw
>>735
SVGの線上となるとアレだけど
動かすルートが決まっているなら接線の傾き求めればいいじゃない
0741Name_Not_Found垢版2018/02/16(金) 20:21:32.71ID:???
>>739
接線か、なるほど気づきませんでした
接線の求め方から勉強してみます。。
0742Name_Not_Found垢版2018/02/16(金) 23:25:19.42ID:???
決まったルートがあるならatanだけで済む気がするんだが
0743Name_Not_Found垢版2018/02/17(土) 00:43:38.95ID:???
>>736
すみません。アニメーション自体はサイトのようなもので、これに角度の変化を付け加えたいという意味でした。
そしてよく見たらサイトのも微妙にrotateで傾けてますね。。折り返しの際に逆を向いてくれないので考えているものとは違いますが。
0744Name_Not_Found垢版2018/02/17(土) 01:07:44.05ID:Y6pp8OiO
>>743
反転はtransformのscaleを使うのが容易いかも
0745Name_Not_Found垢版2018/02/17(土) 16:14:43.08ID:???
var test = {
a: 1,
b: 5,
c: 6
}

ってあって
test.aからtest.cまでの値をループで取得しようと思ったらどうすればいいですか?
0746Name_Not_Found垢版2018/02/17(土) 16:16:29.54ID:???
3Dモデルでないと不自然になるよ
0747Name_Not_Found垢版2018/02/17(土) 16:19:34.31ID:???
>>745
『javascript test.aからtest.cまでの値をループで取得しようと思ったらどうすればいいですか?』
のGoogle検索結果を見ていけばわかる
0748Name_Not_Found垢版2018/02/17(土) 16:26:59.42ID:???
for(let [key, value] of Object.entries(test)){
console.log(key + ':' + value);
}
こうするとちょっとPHPっぽい
0749Name_Not_Found垢版2018/02/17(土) 17:13:27.27ID:???
>>745
for (let v of Object.values(test)) {
console.log(v);
}
とか
Object.values(test).forEach(v => {
console.log(v);
});
0750Name_Not_Found垢版2018/02/17(土) 17:23:12.09ID:???
こっちのが汎用的だったか
Object.entries(test).forEach(([key, value], index) => {
console.log(key, value, index);
});
0751Name_Not_Found垢版2018/02/17(土) 17:51:17.23ID:???
なんで標準のJavaScriptを使うと
冗長になるのか教えてほしいものだ。

lodashを使ったほうが短いとか意味分からん
_.forOwn(test, (value, key) => {
 console.log(key + ':' + value);
});
0752Name_Not_Found垢版2018/02/17(土) 18:17:17.64ID:???
どの言語も普通は標準よりライブラリ使った方が短くならね?
0753Name_Not_Found垢版2018/02/17(土) 18:54:43.59ID:???
だよなw
いつものlodashくんがスレチ話するためのエクスキューズのつもりなんだろw
0754Name_Not_Found垢版2018/02/17(土) 21:34:02.04ID:???
自作の関数作ればもっと短くなるよね
はいlodash敗北
0755Name_Not_Found垢版2018/02/17(土) 21:39:19.11ID:???
ほんとlodashの名前が出るだけで
必死になるなw
0756Name_Not_Found垢版2018/02/17(土) 22:26:40.80ID:???
for( var key of test )とかfor( var key in test )じゃダメなん?
0758Name_Not_Found垢版2018/02/17(土) 23:23:30.35ID:???
>>756
前者はそもそもエラーなので論外
後者は普通にあり
entriesやvaluesは使えない環境も多いしね
個人的にはObject.keysを使うことが多いかな
よっぽど大量にループさせるんならfor..in使うけど
0759Name_Not_Found垢版2018/02/17(土) 23:59:58.10ID:???
使えない環境はあるがけして多くはない
そんなことを言ったら何もできない
いつまでレガシーブラウザを延命させる気なんだ
0760Name_Not_Found垢版2018/02/18(日) 05:22:16.55ID:???
for..inで十分にできて、key / valuesが key / test[key] になる程度の違い
構造は明示されてて
構造が未知だったり完全に信頼できなかったりしない
javascriptはゴルフ絶対主義なんか
0761Name_Not_Found垢版2018/02/18(日) 06:20:37.10ID:???
for-inのデメリットは.hasOwnProperties()のチェックを入れるかどうかの問題が発生するから

もちろんオブジェクトにそのチェックが不要だという保証があるなら.hasOwnProperties()で調べる必要はない
0763Name_Not_Found垢版2018/02/18(日) 06:44:57.56ID:???
hasOwnPropertiesやっててよかったとか
今までに一度もないなw
0764Name_Not_Found垢版2018/02/18(日) 08:22:54.79ID:???
for..inは式ではなく文なのがちと煩わしい
とはいえ素のJavaScriptで
Object.values(test).filter(x => x % 2 === 0).map(x => x * 2)
みたく書くと無駄に何度も配列作っちゃうから、そういう意味ではlodashが羨ましい
0766Name_Not_Found垢版2018/02/18(日) 11:31:30.39ID:???
何度も配列作らなくてもforEach内の処理で十分な場合が多い
filterとかしなくてもif returnで良いんだし
0768Name_Not_Found垢版2018/02/18(日) 13:05:05.05ID:???
>>766
処理分離したいし破壊的代入はなるべく避けたいじゃん?
0769Name_Not_Found垢版2018/02/18(日) 14:10:15.91ID:???
破壊的代入したって頑張ればできるだろ
ほんの少しづつ頑張ればいいだけだよ
小さいものを積み重ねても大きくはならない
0770Name_Not_Found垢版2018/02/18(日) 14:12:21.99ID:???
>>768
今回がそもそもfor-inとの対比の話だからな
値を列挙して利用したいというだけだから
配列をどう処理していきたいかみたいな一般論とは話が違う

つまりfor-ループの{}内の置き換えだから、それは素直に考えるとforEachでいいじゃないかと
列挙したい物を連続してフィルタリングしたりする書き方したいか?ということ
0771Name_Not_Found垢版2018/02/18(日) 14:23:07.60ID:???
そもそも、すべての属性を取得するような、
メタプログラミングみたいな設計自体がおかしい

もし、テストツール以外で、こういう設計をしていたら、おかしいと思え!
0773Name_Not_Found垢版2018/02/20(火) 16:33:41.72ID:rZ442w9v
childNodes[n] や item(n) では最後の要素は -1 では取得できないってことでいいですよね?
n の変更でアクセスする方法ってないんでしょうか?
lastChildとかつうと位置が変わった時に書き換えるのが面倒なんですけど。
0775Name_Not_Found垢版2018/02/20(火) 18:35:21.09ID:rZ442w9v
>>774
ありがとうございます。

別の質問なんですけど
table の tbody に入っているデータを
localStorageに保存したあとで

ページを開き直した後に
localStorageから呼び出して
同じ形式で再表示したいんですけどどうすれば良いんでしょう?

storage.data = document.getElementByID("toboyのID")
で保存して
appendChild(storage.data)
とかやってもうまく行かないんですけど

forループかなんかつかって1つづつ要素を createChild とかして appendChild() するしかないんですか?
0776Name_Not_Found垢版2018/02/20(火) 18:39:48.19ID:rZ442w9v
訂正
storage.data = document.getElementByID("toboyのID")

storage.data = document.getElementById("tbodyのID")
0777Name_Not_Found垢版2018/02/20(火) 18:45:12.12ID:???
文字列値以外も保存できたんか?
0780Name_Not_Found垢版2018/02/20(火) 20:31:51.05ID:rZ442w9v
>>778
プロパティ構文、ブラケット構文、メソッド構文とあるようなので問題ないようです。

>>777
あぁ、それ本に書いてたなぁと思って調べたら
オブジェクトはJSON.stingiy/parseつかえってかいてたので試したけど
駄目っぽいですね。

一つ一つデータをオブジェクトかなにかで保存して
それを取り出して一つ一つcreateElement/appendChildしていくしか無いっぽいですかね。

だれか妙案あれば引き続きよろしくお願いします。
0781Name_Not_Found垢版2018/02/20(火) 21:14:37.44ID:???
>>779
知らんかった!恥ずかしい

>>780
こんなかんじでどうじゃろ
var storage = localStorage;
//保存
storage.data = document.getElementById("tbodyのID").innerHTML;
//復元
document.getElementById("tbodyのID").innerHTML = storage.data;
0782Name_Not_Found垢版2018/02/20(火) 21:20:22.46ID:rZ442w9v
>>781
あぁ、それ良いかもですね!
あとで試してみます。
0783Name_Not_Found垢版2018/02/21(水) 07:32:20.17ID:???
LocalStorage って、HTML を保存するものじゃないだろ

どちらも文字列の、key : value 型だろ
0784Name_Not_Found垢版2018/02/21(水) 08:10:00.57ID:???
ふーん、じゃ>>781がダメならオブジェクトをJSON.stringifyして保存するのも禁止な。
0785Name_Not_Found垢版2018/02/21(水) 09:33:02.16ID:???
イベントリスナ無視していいなら
innerHTMLを出し入れしてもただの文字列でしょ、問題はないんじゃね
なんか問題あるっけ
0786Name_Not_Found垢版2018/02/21(水) 11:24:19.58ID:???
ない。>>783がinnerHTMLの戻り値が文字列だと理解してないだけ。だからバカにされている。
0787783垢版2018/02/22(木) 21:10:28.01ID:???
普通、HTML タグなど、保存しないだろ。
なんで、そんな表示情報を保存するねんw

保存するのは、アプリに必要なデータだろ

key : value
アプリに必要な、データの項目と値
0788Name_Not_Found垢版2018/02/23(金) 00:15:24.12ID:???
今回はtableの保存だからな
HTMLのままが駄目と言っちゃ
縦横長+配列に分割することになるんだろうけど
そうなったらJSON化もあんまりスマートでないのでIDB使おうかとかも言えるしな

まあ、大きなアプリで沢山入出力するなら
そこ抽象化して丁寧にやるのもいいけど
簡素なものには適当な対応でHTML突っ込んで戻すくらいで良いんじゃないかと思うよ
0789Name_Not_Found垢版2018/02/23(金) 02:35:44.73ID:???
>>787
で?復元時にはバラバラにしたデータからまた元のhtmlの文字列組み直すのか?それとも一つずつcreateElement繰り返して挿入か?w
どっちにしろバカなんじゃねーのオメー
えんぴつを使わないアメリカかよwww
0790Name_Not_Found垢版2018/02/23(金) 03:19:50.24ID:???
>>789
でも君プログラムのアーキテクチャについて無知じゃん
0791Name_Not_Found垢版2018/02/23(金) 03:21:44.81ID:???
っていうか、たったそれだけのことで悩んでどうするんだって気がするけどねw

値からテーブルを作るコードはデータの部分を除いてたったの6行でできる。
(アロー関数を使えばもっと減らせる)

https://jsfiddle.net/1uopxycn/

var data = [
 [{text: 1, colspan:2},{text: 3}],
 [{text: 1},{text: 2},{text: 3}],
 [{text: 1},{text: 2},{text: 3, style: 'color:red'}],
];

var rows = data.map(function(row) {
 return $('<tr/>').append(row.map(function(attrs) {
  return $('<td/>', attrs);
 }));
});
$('#table').append(rows);
0792Name_Not_Found垢版2018/02/23(金) 04:55:47.88ID:???
スマートかどうか、仕様的に許されたことかどうか、この2つは別問題

1行で終わる話
0793Name_Not_Found垢版2018/02/23(金) 09:06:27.41ID:???
テーブルの部分をコンポーネントにしてそっちに配列読み込みの機能を持たせるべきだと思う
0794Name_Not_Found垢版2018/02/23(金) 09:14:57.35ID:???
ネズミ倒すのに戦車が必要とか組織再編が必要とか言い出す兵隊、降格です。
0796Name_Not_Found垢版2018/02/23(金) 09:22:25.98ID:???
$('#table').append(data.map(function(row) {
 return $('<tr/>').append(row.map(function(attrs) {
  return $('<td/>', attrs);
 }));
}));
0797Name_Not_Found垢版2018/02/23(金) 09:42:12.16ID:???
つーかHTMLをそのままデータにすると柔軟性がなくなるよ。
後からHTMLをかえたくなったときとかね

テンプレートにデータを流し込んでビューを作るってことを
やっている人なら理解できると思う

そもそもデータとして参照する時HTMLを解析しなければいけなくなる

仕様的に許されているからOKと考えるんじゃなくて
後々のメンテナンス性なんかも考えらるようでなければダメ
0798Name_Not_Found垢版2018/02/23(金) 09:44:05.49ID:???
ちなみにjQueryの例を出したけどデータが多くなるとさすがに重くて
lodashとかにあるテンプレートエンジンの機能を使って
文字列として処理したほうが速い
attrsの部分がちょっと大変だけどね
0799Name_Not_Found垢版2018/02/23(金) 11:56:08.52ID:zjNZIwXS
innerHTMLつかった書き換えはセキュリティ上よくないからあんま使うなってよんだけど
0800Name_Not_Found垢版2018/02/23(金) 12:17:35.43ID:???
そりゃどういう時どうして危険か理解できないなら使って問題ないか問題か自分で判定できないだろうから一律使用しないという方針にするしかないな。哀れw
0801Name_Not_Found垢版2018/02/23(金) 12:42:38.11ID:???
javascriptはセキュリティ上よくないから使っちゃいけないな

ある意味、真理ではあるが
0802Name_Not_Found垢版2018/02/23(金) 13:09:29.48ID:???
tableじゃ無くてflexboxにすると多少抽象度と、コードのシンプルさと、パフォーマンスが担保できると思う
0803Name_Not_Found垢版2018/02/23(金) 13:49:22.23ID:???
アクセシビリティを担保できなくなる
0805Name_Not_Found垢版2018/02/23(金) 14:41:00.06ID:???
それが一番簡単でアクセシビリティも高い
0806Name_Not_Found垢版2018/02/23(金) 15:40:23.48ID:???
テーブルセルの幅の取り方の挙動をflexで再現できたらいいのになっておもうことがある
区切り線付きの横並びの要素とかで
0807Name_Not_Found垢版2018/02/23(金) 16:15:33.24ID:???
gridで無理なんか?知らんけど。
0808Name_Not_Found垢版2018/02/23(金) 18:08:07.84ID:???
基本的にアプリは、MVC で作る

Model(データ)と、View は分離させる。
View は、しょっちゅう変わるから、Modelは、View に依存させない

>>799
異なるドメインから読み込んだものや、素性の知れない者が作ったものを、
innerHTML で読み込んで実行すると、何されるか分からないので、危険

自分自身で作ったものだけで、ハッキングされていないなら、まあ大丈夫かな
0810Name_Not_Found垢版2018/02/24(土) 16:35:23.24ID:ZwKHpr8s
javascriptの知識一通り合ったらjQueryってすぐおぼえられるもんなん?
20時間くらいでいける?
0811Name_Not_Found垢版2018/02/24(土) 16:39:50.42ID:???
>>810
ただのライブラリだからすぐに覚えられる20時間もいらん。
本気で1時間やればもうDOM APIは使いたくなくなる。
0812Name_Not_Found垢版2018/02/24(土) 16:46:08.13ID:???
DOM APIつかってループで繰り返し要素を作ったり変更したり
したことがあるならjQueryの簡単さに感動するだろうな
0813Name_Not_Found垢版2018/02/24(土) 16:59:21.24ID:???
正規表現リテラルって
別に普通にシングルクォートで囲ってパターン文字列として書いてもいいんですよね
0815Name_Not_Found垢版2018/02/24(土) 19:00:58.00ID:ZwKHpr8s
jQueryってDOM操作特化なの?
0816Name_Not_Found垢版2018/02/24(土) 19:16:49.06ID:???
>>815
そうだよ。ライブラリってのは普通何か目的があって
その目的をうまくやるために作られる。
なんにでも使えるライブラリとかそいういうのゴミだから
0817Name_Not_Found垢版2018/02/25(日) 11:42:32.95ID:+FLdsO/Y
>>781
できました。
ありがとうございます。
とりあえずはコレでいきたいと思いますが、
他の方の指摘にありますし
データ処理には興味あるので勉強としてデータを構造的に保存する方法も模索していこうと思います。


>>793
データは2次元配列に格納していけばよいこいうことでしょうか
コンポーネントというのはどういうことなんでしょう?

>>802
flexboxにするいうのは
<p>かなんかに各データポイントをいれて
display: flex; flex: columnにして
それを行方向に積み重ねていくって感じでしょうか?

>>808
JavaScriptデザインパターン
https://www.amazon.co.jp/dp/toc/487311618X/

この本に書いてそうなので読んでみます。
ヒントありがとうございます!
0818Name_Not_Found垢版2018/02/25(日) 12:33:31.82ID:???
画像を真ん中に配置したいのですが真ん中に配置されずに困っています

var imgTag = document.createElement('img');
imgTag.setAttribute('src', fugafuga);
imgTag.setAttribute('title', hogehoge);

setAttributeを使用し画像を真ん中に設置する方法はありません出ようか?
0819Name_Not_Found垢版2018/02/25(日) 13:09:17.86ID:???
>>818
setAttributeなら
style属性に
"margin-right:auto; margin-left:auto"
でいいんじゃない?

外部スタイルシートなら
cssに
.someName {
whatever: anything
}
JSで
imgTag.className ='someName'
0820818垢版2018/02/25(日) 14:14:52.80ID:???
>>819
多分ID変わってます
ありがとうございます
頑張ってみます!
0821Name_Not_Found垢版2018/02/25(日) 14:29:05.50ID:???
>>817
書名紛らわしいが、一般に「JavaScriptパターン」のほうが良書と評価されてるよ。ご参考まで。
0822Name_Not_Found垢版2018/02/25(日) 21:12:43.79ID:tH4r9gsg
macOS High Sierra 10.13.2
safari 11.0.2です。

実現したい機能:Youtubeの自動再生ボタン(動画を再生した後に次の動画に自動遷移する機能)をUserScriptで自動クリックしてオフにする。

Youtubeの自動再生機能はデフォルトではオンで、オフにする事もできるのですが、その設定はCookieで保存されるようです。
しかし私は普段、プライベートモードでブラウジングをします。
そこで上記の機能をTampermonkeyのUserScriptで実現しようとしました。
私はjavascriptに関しては完全な初心者なので、ググって出てきたソースを改変しましたが、機能しませんでした。
おそらく、的外れなことをしているんだと思います。
以下のソースについてアドバイス、ここがおかしい等のツッコミをいただけたら幸いです。
// ==UserScript==
// @name Youtube自動再生ブロック2
// @namespace http://tampermonkey.net/
// @version 0.2
// @description try to take over the world!
// @author You
// @match https://www.youtube.com/*
// @grant none
// ==/UserScript==

(function() {
'use strict';
setInterval(function() {
var button = document.querySelector("style-scope ytd-compact-autoplay-renderer");
if (!button || button.style.display == "none") return;
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
button.dispatchEvent(evt);
}, 1000);
})();
0823Name_Not_Found垢版2018/02/25(日) 21:50:46.55ID:???
>>822
>自動再生ボタンをUserScriptで自動クリックしてオフに

意図がわからん
ボタンを自動クリックしたら再生が始まってしまうではないか?

最近のブラウザは勝手に自動再生しないように環境設定できるのがあるぞ
0824Name_Not_Found垢版2018/02/25(日) 22:46:33.87ID:???
ツベのプレイヤーって特殊だよね
javascriptで操作できんのか
0825Name_Not_Found垢版2018/02/25(日) 23:39:34.21ID:tH4r9gsg
822です。レスありがとうございます。
>>823私の意図している”自動再生”は、ページを開いた時に再生ボタンをクリックをしなくても動画が再生される機能のことではなく、
動画を再生し終えた後に10秒ほどのカウントダウンがあり、さらにその後別の動画に自動リダイレクトされる機能の事です。
質問文がわかりにくかったようで、申し訳ないです。
スクショを用意しました。
https://imgur.com/a/UDsCL
0826Name_Not_Found垢版2018/02/26(月) 00:20:30.30ID:???
>>825
ほらよ。直してやったで

// ==UserScript==
// @name Youtube自動再生ブロック2
// @namespace http://tampermonkey.net/
// @version 0.2
// @description try to take over the world!
// @author You
// @match https://www.youtube.com/*
// @grant none
// ==/UserScript==

(function() {
'use strict';
setInterval(function() {
var button = document.querySelector("paper-toggle-button[checked]");
if (!button || button.style.display == "none") return;
var evt = document.createEvent("MouseEvents");
evt.initMouseEvent("click", true, true, window,
0, 0, 0, 0, 0, false, false, false, false, 0, null);
button.dispatchEvent(evt);
}, 1000);
})();
0827Name_Not_Found垢版2018/02/26(月) 00:20:55.28ID:???
ついでにjQueryを使ったバージョンな。
覚えるとサクッとできるぞ。

// ==UserScript==
// @name Youtube自動再生ブロック2
// @namespace http://tampermonkey.net/
// @version 0.2
// @description try to take over the world!
// @author You
// @match https://www.youtube.com/*
// @grant none
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
// ==/UserScript==

(function() {
'use strict';
setInterval(function() {
$("paper-toggle-button[checked]").click();
}, 1000);
})();
0828Name_Not_Found垢版2018/02/26(月) 00:23:17.60ID:???
補足しておくと最初のやつはセレクタがよく分からんやつだった。
適切と思われるものに直した後、checkedがついているときだけoffにするようにした

またjQueryバージョンは、buttonの存在チェックをしていないが、
jQueryっていうのは、セレクタで見つかった要素全てにメソッドを実行する(この場合はclick)
というものだから、要素が見つからなければ何もしないので存在チェックが不要になる
0829Name_Not_Found垢版2018/02/26(月) 00:30:44.50ID:???
なお、一行でも書ける
setInterval(() => $("paper-toggle-button[checked]").click(), 1000);
0830Name_Not_Found垢版2018/02/26(月) 01:05:40.91ID:anD7k8Wx
822です。
>>826,>>827,>>828,>>829
動作を確認できました。助かりました。
欲しい機能をさらって実現出来たら最高ですよね!
本当にありがとうございました。
Javascript勉強します。
0831Name_Not_Found垢版2018/02/26(月) 01:28:47.36ID:???
document.querySelector("paper-toggle-button").checked = false

これでもいける?

createEvent("MouseEvents");
evt.initMouseEvent();
button.dispatchEvent(evt);

このあたり何やってるんだろう
質問者じゃないけど詳しい人教えて
0832Name_Not_Found垢版2018/02/26(月) 01:39:57.14ID:???
>>831
行けるかもしれないけど実装次第だろうね

まずpaper-toggle-buttonというタグ(カスタムタグ?)は
動き見てると非同期で表示されてる感じがする。

なので、ページ読み込んだすぐには存在しておらずsetIntervalで
1秒おきにチェックしてるおり、paper-toggle-buttonが
nullの場合になにもしないようになってる。
こういう所、jQueryは存在しなくてもエラーにならない設計なので便利

クリックは実際のマウスクリックをエミュレートしており、
実際にマウスでクリックしたのと同じ動きをする。
YouTube側の実装がcheckedだけを見てるなら、それで動くかもしれないけど
他にクリックされた時に何かしている可能性があるからクリックを
エミュレートするほうが確実

本気で解析すればわかると思うけど、こういうハックでそんな面倒なことしたくない
ささっと解決したいね。
0833Name_Not_Found垢版2018/02/26(月) 04:45:38.01ID:???
やりすぎ防犯パトロール、特定人物を尾行監視 2009年3月19日19時7分配信 ツカサネット新聞
http://headlines.yahoo.co.jp/hl?a=20090319-00000026-tsuka-soci

この記事で問題になった通称やりすぎ防パトは、創価学会と警察署が引き起こしていたようです

掻い摘んで説明すると

・創価学会は、町内会や老人会、PTA、商店会等の住民組織に関し、学会員が役員になるよう積極的に働きかける運動を
 90年代末から開始し、結果、多くの住民組織で役員が学会員という状況が生まれた

・防犯パトロールの担い手は地域の住民と住民組織で、防犯活動に関する会議や協議会には、住民組織の代表に役員が出席する為
 防犯活動や防パトに、創価学会が間接的に影響力を行使可能となった

・防パトは住民が行う為、住民が不審者や要注意人物にでっち上げられるトラブルが起きていたが
 創価学会はその緩さに目をつけ、住民組織を握っている状況を利用し、嫌がらせ対象者を不審者や要注意人物にでっち上げ
 防パトに尾行や監視、付き纏いをさせるようになった

・防パトは地元警察署との緊密な連携により行われる為、創価学会は警察署幹部を懐柔して取り込んでしまい
 不審者にでっち上げた住民への嫌がらせに署幹部を経由して警察署を加担させるようになった

・主に当該警察署勤務と考えられる創価学会員警察官を動かし、恐らく非番の日に、職権自体ないにもかかわらず
 私服警官を偽装させて管轄内を歩いて回らせ、防犯協力をお願いしますと住民に協力を求めて回り
 防犯とは名ばかりの、単なる嫌がらせを住民らに行わせた(防犯協力と称し依頼して回っていた警察官らの正体は恐らく所轄勤務の学会員警察官)
 ※これに加えて防犯要員が同様のお願いをして回る

・こうして防犯パトロールを悪用し、住民を欺いて嫌がらせをさせつつ、創価学会自体も会員らを動員し、組織的な嫌がらせを連動して行った

つまり警察署に勤務する学会員警察官、警察署幹部、創価学会が通称やりすぎ防犯パトロールの黒幕

詳細は下記スレをご覧下さい(現在スレが荒されてますので、テンプレと87の連絡先さえ確認して頂ければokです)
やりすぎ防犯パトロールは創価学会と警察署の仕業だった
https://rio2016.5ch.net/test/read.cgi/bouhan/1516500769/1-87
0834Name_Not_Found垢版2018/02/26(月) 04:46:12.86ID:???
おいおい、、、、頼むからもうcreateEvent系は使うな
コンストラクタでスマートに作れるだろ
0836Name_Not_Found垢版2018/02/26(月) 06:28:00.10ID:???
clickイベントを発行するだけなら.
document.querySelector("paper-toggle-button").click()
でいける
jQueryではなく標準JavaScriptでサポートしてる

ただし<input type="image">の_xや_yを指定したいとかなら、
createEvent()で細かく指定する必要がある
0838Name_Not_Found垢版2018/02/26(月) 09:31:38.10ID:???
jq広めてどんな得があるというのか
本が売れるとか?アフィが捗るとか?
0839Name_Not_Found垢版2018/02/26(月) 11:31:45.54ID:???
変に謎関数を自作されるより既存のちゃんとしたライブラリ使ってくれる方が後の人が助かる
0841Name_Not_Found垢版2018/02/26(月) 12:02:37.73ID:???
>>836
イベントは
new Event(nameString,optionObject)
の形で作れ
createは非推奨
0842Name_Not_Found垢版2018/02/26(月) 16:24:03.79ID:???
>>817-821
Stoyan Stefanov 著
JavaScriptパターン ―優れたアプリケーションのための作法、2011
オブジェクト指向JavaScript、2012

JavaScriptデザインパターン、Addy Osmani, 2013
0843Name_Not_Found垢版2018/02/26(月) 17:35:05.56ID:???
>>842
JavaScriptパターン > JavaScriptデザインパターン >>>>> オブジェクト指向JavaScript
0844Name_Not_Found垢版2018/02/27(火) 00:25:56.22ID:???
>>838
jQueryはすでに広まってるよ
どんな特があるかは、広めて特があるんじゃなくて使うと特がある。
今回みたいなのはささっと実装できるという得がね
俺の得じゃなくて、使うみんなが得をする
0845Name_Not_Found垢版2018/02/27(火) 00:30:54.05ID:???
>>818
> var imgTag = document.createElement('img');
> imgTag.setAttribute('src', fugafuga);
> imgTag.setAttribute('title', hogehoge);

だと

$('<img>', {src: fugafuga, title: hogehoge});

ね?
0846Name_Not_Found垢版2018/02/27(火) 03:07:57.09ID:yvlj/jpz
>>843
JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

メンテナブルJavaScript ―読みやすく保守しやすいJavaScriptコードのための作法

これは?
0847Name_Not_Found垢版2018/02/27(火) 03:37:44.33ID:???
グッドパーツは世界的に超有名な本だけどさすがに古いから読む場合は現在どうなってるか気を付けながら読んで
0848Name_Not_Found垢版2018/02/27(火) 04:52:43.68ID:???
The Good Partsなんて出たときから歴史を振り返る見て楽しむ本であって
それで勉強するような本ではない
0849Name_Not_Found垢版2018/02/27(火) 12:57:13.86ID:snOiXd7a
配列に関しての質問いいでしょうか?

hoge[10].parentNode.insertBefore(elmDiv, hoge[10].nextSibling)

上記のような配列を指定して要素を追加する記述において、hoge[10]の部分を”一番最後の配列”に指定するメソッドは存在するんですかね?
配列の値が毎度変動するため、(1〜10の時もあれば、1〜30の時もある)
それができるとものすごく楽なのですが・・・調べてみてもあらかじめ配列の数が決まっている場合に最後の値を取得するメソッドしか出てこないんですよね。。
0850Name_Not_Found垢版2018/02/27(火) 13:01:21.36ID:???
hoge.length - 1で何かまずいのか?
0851Name_Not_Found垢版2018/02/27(火) 14:31:14.67ID:???
JSではlengthゲッタに副作用を持たせる事ができるし
ロジック的にhogeが正当な混じりけのないNodeListだと確認もする
保証された方法がないのでセキュアでない
0853Name_Not_Found垢版2018/02/27(火) 15:16:07.33ID:yvlj/jpz
本読んで勉強してたらXMLHttpRequestの項目が合って
コードをうって試して見るんだけど
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
というエラーが出てうまく生きません。

サーバーの概念とか全くよく分かってないのですが
コレは自分が今使ってるPCをサーバーとみなして処理とかできないってことなんでしょうか?
いまいちよくわかりません。
現在は自分のPCのあるフォルダにJSとHTMLを置いて
HTMLを同じ自分のPC上でクロムで開いています。
0854Name_Not_Found垢版2018/02/27(火) 15:26:14.60ID:???
ローカル環境では自由にXHRはできない、特にChromeはその制約がややきつい
なぜなら、readme.htmlとか開いただけでPCの全データを外部に送信されたりしたら困るだろう?

セキュリティを無効にする方法もあるが、
基本的には「live-server」などの簡易ローカルサーバを立てることが推奨

ちなみに今ではXHRはもう使われない
Fetch APIを使う
0855Name_Not_Found垢版2018/02/27(火) 15:41:08.05ID:???
単純にhtmlを
http://localhost/some_file.html じゃなくて
file:///C:/WEBFOLDER/some_file.html とかで開いてしまってて、
他方htmlの中では http://localhost/some_data.json にXHRしてる、・・・とかじゃねーの
当然だがしっかりCORSに引っかかる

まあ本読んで勉強してますなんかおかしいです、っつーなら
本出したとこに電話して聞けよとか
0856Name_Not_Found垢版2018/02/27(火) 16:27:33.21ID:yvlj/jpz
なんとなく構造がわかりました。
live-serverで検索してみたけど難しそうなので今回は諦めます。
有益な情報有り難うございました。
0857Name_Not_Found垢版2018/02/27(火) 18:02:52.83ID:???
いくらJSとはいえlengthが配列の長さじゃないかもしれないと疑いだしたらキリがなくない?
0858Name_Not_Found垢版2018/02/27(火) 20:37:30.61ID:???
>>856
live-serverなんて何も考えなくても1分あれば準備できる最もお手軽なサーバーだぞ
0859Name_Not_Found垢版2018/02/27(火) 20:43:48.29ID:???
npm i serve -g
でインストール以降、
serve .
これだけ。
0860Name_Not_Found垢版2018/02/27(火) 21:43:46.27ID:???
CORS だろ。
サーバーを立てていないと、異なるドメインにアクセスできない

Python, Ruby など、何かの言語に、最初から入っている、
サーバーを起動させて開発をやれば?
0861Name_Not_Found垢版2018/02/27(火) 21:51:16.55ID:???
htmlとjsだけなんだから
Windows環境でも使えて日本語環境もばっちりの
apache httpdでいいじゃん・・・
0862Name_Not_Found垢版2018/02/27(火) 21:53:05.05ID:???
> ちなみに今ではXHRはもう使われない
> Fetch APIを使う

これはウソ。前提としてXHRを使えば以下の問題は全て解決している

まずFetch APIにはIE11が対応してない。

Fetch APIに対応していたとしてもStreams APIに対応していなければ
プログレスの取得やキャンセルが実装できない。
https://developer.mozilla.org/en-US/docs/Web/API/Streams_API
Firefox、IE、が対応していない。Safariは不明
Chromeも59からなので少し前の機種は使えないかもしれない
また仕様上アップロードのProgressは取ることはできない

以上のような制限があるので、苦行の道を進みたい人ぐらいしかFetch APIを使ってない。
嘘だと思うのなら勉強サイト以外でFetch APIを使ってるサイトを探してみると良い
まず見つからない
0863Name_Not_Found垢版2018/02/27(火) 22:03:42.47ID:???
ブラウザ互換性は重要だが正直言えばそろそろIEは切り捨てても赦して欲しい
仕事ではそうもいかんけど
0864Name_Not_Found垢版2018/02/27(火) 22:05:13.09ID:???
仕事でそうはいかないのをわかってるなら
どの辺で切り捨てようというのだ
趣味サイトならいくらでもお好きにどうぞじゃん
0865Name_Not_Found垢版2018/02/27(火) 22:13:06.82ID:wA1MMf5K
最初から読み込んでいるJavascriptで制御している開閉ボタンつきサブメニュー部分を
ここだけajaxで更新した時、その開閉ボタンが開閉しなくなるので
なんとかしたいんですが、何かいい方法ないでしょうか?
うまく何がしたいか言葉に表せないのですが、以下の記事とだいたい同じことがしたいです。
http://petitviolet.hatenablog.com/entry/20130418/1366288852
0866Name_Not_Found垢版2018/02/27(火) 22:18:13.74ID:???
>>865
どうせ簡単な話だろうが、めんどくさい
サンプルコードかけ
0867865垢版2018/02/27(火) 22:32:13.89ID:???
>>866
わかりやすい説明じゃなくてすいません
$(function(){
$("#menu")
.empty()
.load("./menu_output.php");
});
↑こんな感じで#menuだけ更新、
menu_output.php の中に最初から読み込んでいる
$("button").click(function () {
$("p").slideToggle();
});
で動かしてる部分があり、更新し直す前はトグルできるが
更新した後はトグルができない、更新後もトグルできるようにしたいということです
0868Name_Not_Found垢版2018/02/27(火) 22:55:04.12ID:???
$(document).on("click", "button", function () {
$("p").slideToggle();
});

って書き直せば動く。documentの部分は
たぶん"#menu"でもいい
0869Name_Not_Found垢版2018/02/28(水) 00:27:19.48ID:???
>>868
うまくできました!
ありがとうございます。
0870Name_Not_Found垢版2018/02/28(水) 01:35:15.70ID:???
スレ違い質問
http://mevius.5ch.net/test/read.cgi/hp/1517028608/769
に対する回答こちらに書かせてもらいます。

1秒(1000ミリ秒)後別タブでやほおを開き10秒後(10000ミリ秒)後もとのタブをアマゾンに遷移
<a href="javascript:setTimeout((function(){window.open('https://www.amazon.co.jp', '_self')}), 10000)" onclick="setTimeout((function(){window.open('https://www.yahoo.co.jp')}), 1000)">[テキスト]</a>

注意)
・onclickのタイムアウトの値1秒(1000ミリ秒)超える値設定するとChromeではブラウザにブロックされた。迷惑広告対策か。
・当然だけどhrefのタイムアウトの値がonclickのタイムアウトの値を下回ってると元のページが先に遷移しちゃうからyahoo開く処理は破棄される
0871Name_Not_Found垢版2018/02/28(水) 03:14:34.55ID:???
>>864
ここはお仕事相談所ではなくて
純粋にJSを勉強しようと思う人のための質問スレだからね
0873Name_Not_Found垢版2018/02/28(水) 09:48:06.70ID:???
jQueryというライブラリを使ってるだけでJavaScriptだよ
0874Name_Not_Found垢版2018/02/28(水) 14:54:28.28ID:???
料理の為の質問スレと言っても
料理技術を磨きたいっていうのと、とりあえず今日食うものをどうにかしたいっていうのは違う
ここはどちらかと言うと前者で、中食買ってきてレンジでチンみたいなのはお断り
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が機能しない
のって経験上何か思い当たる?
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"

ってなったが?
0906Name_Not_Found垢版2018/03/02(金) 10:32:50.96ID:LbN5BTkq
DHCってもともとは翻訳会社なんだぜ
知らんと思うが
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の話にまでくれば良いんだけどね
0974Name_Not_Found垢版2018/03/05(月) 00:32:37.38ID:???
jQueryニキに見放されるとは
もうおまえこの業界でいきていけんぞ
0975Name_Not_Found垢版2018/03/05(月) 01:16:26.77ID:???
見放すとは失敬な。お前らに任せるって言ってるんだよw
jQueryの話題じゃねーもの
0976Name_Not_Found垢版2018/03/05(月) 01:48:34.87ID:???
HTMLのformでGETとPOST勉強してこい
0980Name_Not_Found垢版2018/03/05(月) 15:21:02.11ID:???
jQuery でフォーム送信は、form.submit(); かな?
「jquery form submit」で検索!

Ajax で同期処理は、非推奨だから使うな。
非同期のみ使え

JavaScript のXHR は、ややこしいので使うな。
素人は、jQueryのAjaxなどを使え

「jquery ajax example」で検索!
0982Name_Not_Found垢版2018/03/05(月) 16:33:51.61ID:???
ライブラリもフレームワークも甘え
高級言語自体甘え
0984Name_Not_Found垢版2018/03/05(月) 17:39:31.56ID:???
自分で作ったライブラリは甘えですか
0986Name_Not_Found垢版2018/03/05(月) 20:33:23.50ID:???
GreasemonkeyのAPIであるGM_xmlhttpRequestって戻り値がundefinedになる仕様なのですが
return出来ないとなると即時関数内にまとめて処理を書くしかないんでしょうか?
処理を分離したいのですが良い方法はありませんでしょうか?

GM.xmlHttpRequest({
method: "GET",
url: "http://www.example.com/";,
onload: function(response) {
処理
}
});
0987Name_Not_Found垢版2018/03/05(月) 21:04:32.82ID:???
別の関数作ってGM.xmlHttpRequestのonLoadでそれ呼ぶようにすれば?
0988923垢版2018/03/05(月) 23:32:10.86ID:???
>>977を参考にフォームデータを送信してみました。
Requestのデータにcmdだけを設定するものがあったので、まずはそれを試してみました。

<form action="http://192.168.xx.xx/cgi/yyy"; method="post">
<input name="cmd" value="1">
<button>test</button>
</form>

すると、ブラウザでは<error> xxxxxxxx </error> タグが入ったものが返ってきました。
ステータスコードは、302 Foundでした。とりあえずはサーバからResponseが返ってきました!
302の意味は「今ちょっとここにないよ」みたいなので、設定が足りないのだと思います。(何となく心当たりがあります)
0990Name_Not_Found垢版2018/03/06(火) 14:06:53.36ID:???
>>989
Promiseオブジェクトのresolve関数だろう

executeAsyncScript関数の定義の中身が
Promiseになっててarguments[arguments.length-1]
でresolve関数が実行されるようになってるのだろう

Unlike executing synchronous JavaScript with #executeScript, scripts executed wit
h this function must explicitly signal they are finished by invoking the provided call
back. This callback will always be injected into the executed function as the last a
rgument, and thus may be referenced with arguments[arguments.length - 1].
てかいてるやん。
0992Name_Not_Found垢版2018/03/06(火) 16:06:32.24ID:???
>>989
おまえってさ
何日か前にXHRのバイナリがなんとかで質問してたやつ?
解答ないと質問コピペで繰り返して
解答あってもスルーする糞野郎だろ?
しねよ

こいつの質問には今後一切答えないように
0994Name_Not_Found垢版2018/03/06(火) 17:09:39.66ID:???
そりゃ的外れな回答されても反応に困るわな
0995Name_Not_Found垢版2018/03/06(火) 18:32:22.56ID:???
的はずれな回答されたなら
またコピペ質問してるはずだろ
こいつならw
0997Name_Not_Found垢版2018/03/06(火) 18:57:02.64ID:???
的外れなら「的はずれなんだよボケ。俺はこうしたいの。オマエ馬鹿なのか。バカは返答するな」って言ってもらわんと方向修正できんやろ。
コピペで質問返されてもな。
0998980垢版2018/03/06(火) 22:08:15.01ID:???
>>980
に書いてある

素人は、jQuery のAjax を使え!!
1000Name_Not_Found垢版2018/03/06(火) 23:33:28.43ID:???
jsコード上でxhrでapi叩くのと
formを作ってsubmit()させるのとじゃ効果が違くね?
10011001垢版Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 105日 1時間 34分 55秒
10021002垢版Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

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