2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

+ JavaScript & jQuery 質問用スレッド vol.7 +

1 :Name_Not_Found:2016/11/01(火) 21:15:50.05 ID:???.net
JavaScriptで一番有名なDOM用関数型風ライブラリであるjQueryのスレです。
jQueryを使うとJavaScript単体では面倒な処理でもほんの数行で実現可能になります。

一部でもうjQueryは要らない等と言ってますが、あれはjQueryよりも導入が大変な
フレームワークを導入したらいらなくなるって話であって、従来通りHTMLにちょっと
動きをつけたい程度ならjQueryが最適です。

このスレはjQueryそのものの使い方やjQuery UIの使い方やjQueryプラグインの作り方を質問するスレです。
JavaScriptだと面倒だけどjQueryを使えばもっと簡単に書けませんか?というのもOKです。
ですが、jQueryを使って作る側のスレであって、こんなjQueryプラグインありませんか?と聞くスレではありません。
また野良jQueryプラグインの質問スレでもありません。そういうのは自分で探してください。
ろくにサポートもされてなさそうな野良jQueryプラグインの使用はおすすめしません。

前スレ
+ JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465566635/

2 :Name_Not_Found:2016/11/01(火) 21:16:06.64 ID:???.net
・jQueryトップページ
http://jquery.com/

・ダウンロード、CDN
http://jquery.com/download/

・ブラウザサポート
http://jquery.com/browser-support/

・jQuery UI
http://jqueryui.com/

・jQuery UI ダウンロ−ド
http://jqueryui.com/download/


・リファレンス等
http://js.studio-kingdom.com/jquery/
http://alphasis.info/jquery/ (http://alphasis.info/jquery-api/)
http://www.jquerystudy.info/

3 :Name_Not_Found:2016/11/01(火) 21:16:30.88 ID:???.net
Q. jQueryはどのバージョンを使えばいいのですか?
A. IE9以上であれば、jQuery 3.0を使用してください。
IE8以下にも対応するならば、jQuery 1.12を使用してください。

補足

jQuery 1.9 までは一系統しかなく、古いブラウザも含めて全て対応していました。
その後、古いブラウザを切り捨てるためにバージョンを分岐させました。
古いブラウザにも対応した1系(1.10、1.11、12)と
古いブラウザを切り捨てた2系(2.0, 2.1, 2.2)です。

1系と2系は対応ブラウザの違いだけで機能は全く一緒です。
機能が同じなのにメジャーバージョンが違っているのが分かりにくい
ということでバージョン番号の付け方を変えることになり、
新たに古いブラウザを切り捨てたjQuery 3.0、そして古いブラウザにも対応した
jQuery Compat 3.0がリリースされる予定でした。

しかしマイクロソフトが古いIEのサポートポリシーを変更し
サポート中であるOSで動く、最新のIEしかサポートしなくなったために、
2016年1月でVista上のIE8のサポートが終了しました。

そのため予定されていたjQuery Compat 3.0がなくなり、
jQueryは3.0に一本化されました。

4 :Name_Not_Found:2016/11/01(火) 21:19:28.52 ID:???.net
jQuery 3.0正式版がついにリリース。通常版のほかに、Ajax機能を省略したスリムビルド版も提供
http://www.publickey1.jp/blog/16/jquery_30ajax.html


2006年1月にjQueryが初めて世の中に登場してから10周年となる今年。jQuery 3.0の正式版が登場しました。

jQuery 3.0 Final Released! | Official jQuery Blog
これまでjQueryは、、モダンブラウザのみをサポートすることで軽量化と安定化をはかった
「jQuery 2.x」系と、Internet Explorer 8以前を含む古いバージョンのブラウザまで
サポートする互換性重視の「jQuery 1.x」系の2系統が存在しました。

また、フル機能のjQuery 3.0のほかに、Ajaxの機能を省略して軽量化したスリムビルド版のjQuery 3.0の提供が行われます。

Along with the regular version of jQuery that includes the ajax and effects modules, we’re releasing a “slim” version that excludes these modules.

通常バージョンとしてAjaxやエフェクトモジュールなどを含んだjQueryと同時に、これらを外した“スリム”バージョンも提供する。
最近のWebアプリケーションではjQueryのAjaxを使うことは少なくなったと思われますので、スリム版のjQueryで十分だという開発者も多いでしょう。
圧縮後のサイズは通常版が30kbなのに対し、スリム版は23.6kb。

5 :Name_Not_Found:2016/11/04(金) 18:36:31.36 ID:???.net
それども23.6KBも必要なのな
もっと削れるんじゃない?

6 :Name_Not_Found:2016/11/04(金) 19:15:31.97 ID:???.net
現行スレ

+ JavaScript & jQuery 質問用スレッド vol.6 + [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1465566635/

7 :Name_Not_Found:2016/11/21(月) 22:53:25.96 ID:OQ9gQCwm.net
性能を決める関数で for-in を使うのはやめよう

for-in にも使い道はあるものの, for を使うべき場面でよく誤って使われている. for-in で列挙をする前に,
スクリプトエンジンは列挙可能なプロパティのリストを作って重複を弾かなければいけない.

スクリプト側が列挙するプロパティを知っていることはよくある. こうしたプロパティをなめるならふつうの for 文が使える.
配列や, 配列風のプロパティを持つオブジェクト (DOM の NodeList? など) のように, 連番の数字なら特にそうだ.

for-in 誤用の例を以下に示す:

var oSum = 0;
for( var i in oArray ) {
oSum += oArray[i];
}

for を使う方が効率的になる:

var oSum = 0;
var oLength = oArray.length;
for( var i = 0; i < oLength; i++ ) {
oSum += oArray[i];
}

8 :Name_Not_Found:2016/11/21(月) 22:55:25.97 ID:???.net
>>7
それをやるならfor-ofを使うべきだろ

9 :Name_Not_Found:2016/11/21(月) 22:58:57.98 ID:???.net
var sum = 0;
var array = [1, 3, 4, 7];
for (let value of array) {
  sum += value;
}

ついでに言うならば、sumはこう書いたほうが良い。
const sum = array.reduce((a, b) => a + b);

変数への再代入がない所に注目な

10 :Name_Not_Found:2016/11/22(火) 01:04:41.27 ID:???.net
誘導。

■JavaScriptスレ
JavaScript の質問用スレッド vol.131
http://echo.2ch.net/test/read.cgi/hp/1478053599/
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
JavaScript(ECMAScript)質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472401404/

■ライブラリスレ
JavaScript ライブラリ総合質問所 vol.5
http://echo.2ch.net/test/read.cgi/hp/1465399470/
jQuery 質問スレッド vol.7
http://echo.2ch.net/test/read.cgi/hp/1478055094/

11 :Name_Not_Found:2016/11/24(木) 17:51:17.71 ID:???.net
clientのJSからサーバーにデータをajaxでPOSTして
サーバーでそのデータを加工して加工結果を新しいページに表示したいのです。
ajaxでPOSTしてデータを加工するところまでは出来たのですが、ajaxなので
そのデータはクライアントのsucessに戻りますよね
このあとどうすればいいのか分かりません。
あるいはもっと良い方法がありますか?

12 :Name_Not_Found:2016/11/24(木) 18:06:31.81 ID:???.net
誘導。

■JavaScriptスレ
JavaScript の質問用スレッド vol.131
http://echo.2ch.net/test/read.cgi/hp/1478053599/
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
JavaScript(ECMAScript)質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472401404/

■ライブラリスレ
JavaScript ライブラリ総合質問所 vol.5
http://echo.2ch.net/test/read.cgi/hp/1465399470/
jQuery 質問スレッド vol.7
http://echo.2ch.net/test/read.cgi/hp/1478055094/

13 :Name_Not_Found:2016/11/24(木) 21:30:51.15 ID:???.net
>>11
そのsuccessで戻ってきたJSONなりから
画面を作ればいいだけでは?

面倒ならテンプレートエンジンでも調べてみると良い。

14 :Name_Not_Found:2016/11/25(金) 05:19:05.92 ID:???.net
>>13
>画面を作ればいいだけでは?
戻って来たJSONは数百キロバイト以上のHTMLデータで、
そのデータを使って新しいページを作る方法が分かりません。
urlのパラメータではそんな大きなデータを渡せないですよね?

15 :Name_Not_Found:2016/11/25(金) 05:59:57.76 ID:???.net
>>15
HTMLで受け取ってるならそれをDOMの任意の場所にappendするだけで済みそうだが
なんでそれをもう一度サーバに渡そうとしてるの?
(それにしたって数百キロ程度のデータを渡せないなんてことないが)

jsやjQueryによるDOM操作についてググる必要がありそう

16 :Name_Not_Found:2016/11/25(金) 06:04:43.13 ID:???.net
WEB+DB vol.94 では、Electronで開発しているけど、使っているのは、

Electron(Node.js + Chromium)
UIのパーツを作る、React
CSSフレームワークには、Photon

17 :Name_Not_Found:2016/11/25(金) 07:56:12.72 ID:???.net
>>15
今表示しているページではなくて、
別のページに移動してそのデータを表示したいのです。

18 :Name_Not_Found:2016/11/25(金) 16:56:12.65 ID:???.net
>>17
その別ページには他者もアクセスできるようにしたいのか?
それとも、当の利用者専用なのか?

後者なら、サーバ側で加工する必要はなさそうだが(
データを blob URL化してナビゲートしたり、ブラウザは限られるが SharedWorker を使う方法も考えられる
複数セッションにわたって残したければ localStorage に保存するだけで済むかもしれない)

19 :Name_Not_Found:2016/11/25(金) 19:49:57.44 ID:???.net
>>18
説明不足でした。
AJAXで戻って来たデータを表示する時に、現在のページはそのまま
残しておいて、新規に別ページを開いてそこに表示したいのです。
専用ページとかではなくて誰でもアクセスできるページです。
教えて頂いた方法を調べてみます。

20 :Name_Not_Found:2016/11/27(日) 09:33:02.68 ID:Er3ITcxf.net
HTML/JavaScriptのiframeタグについてご教授下さい。

■実施したい事
iframeでhtmlを取得したいが、
取得したhtmlの中身(cssや画像)は取得させたくない。

21 :Name_Not_Found:2016/11/27(日) 09:33:16.25 ID:Er3ITcxf.net
>>20
■詳細イメージ
@
<iframe src="http://xxxx/sample.html"></iframe>

A
WEBブラウザがhttp://xxxx/sample.htmlへGETリクエストを投げて、
レスポンスが返ってくる

B
WEBブラウザが返ってきたレスポンスをDOMツリーにロードする

C
WEBブラウザがhttp://xxxx/sample.htmlに記載されているcssや画像を取得する

@Aは実施させて、
Bの前後で処理を中断させて、
Cを実施させたくない。

22 :Name_Not_Found:2016/11/27(日) 09:33:42.78 ID:Er3ITcxf.net
>>20
>>21
■質問事項
上記を実現させるためにはどのようなHTML/JavaScriptの実装が必要でしょうか?
ご教授下さい。

■思うところ
Bのタイミングでイベントを発生させて、
Cを無効にするような処理が可能かな?と調べてみましたら、
「DOMContentLoaded」というDOM読み込み完了後に呼ばれるイベントがあったのですが、
うまく使えますでしょうか。

また、<xmp>タグ等を動的に発行して、
取得したhtmlを無効に出来るかな?と思っています、
うまく使えますでしょうか。

また、ブラウザで発生するHTTPリクエストを全てキャッチして、
http://xxxx/sample.htmlに記載されているcssや画像のHTTPリクエストを遮断できないかな?と思っています、いかがでしょうか。

その他、手段は問いません。
実現できる方法をヒントだけでも良いのでご教授下さい。

23 :Name_Not_Found:2016/11/27(日) 12:38:25.68 ID:???.net
<div>あああ<input type="text" />いいい</br>ううう</div>
こういう場合、

jQueryで
var input = $('div > input[type="text"]');
を取得したとして、その後ろにある文字
いいい
を取得する方法はありますか?

24 :Name_Not_Found:2016/11/27(日) 12:52:52.95 ID:???.net
はい。あります。

25 :Name_Not_Found:2016/11/27(日) 12:54:49.23 ID:???.net
>>20
普通にAjaxで中身だけを取得すればいいだけ

26 :Name_Not_Found:2016/11/27(日) 13:16:49.45 ID:???.net
>>24
教えろよ

27 :Name_Not_Found:2016/11/27(日) 13:58:37.10 ID:???.net
正規表現なら楽勝だけど、他になにかあるんかね

28 :Name_Not_Found:2016/11/27(日) 20:38:00.28 ID:???.net
>>23
はい
var input = $('div > input[type="text"]');
var nextText = input.get(0).nextSibling.textContent; // いいい

nextSiblingを取得すると次にあるノード(要素/テキスト/コメント などなんでも)が取得できるから、これを利用するといい。
jQueryはテキストノードの扱いにはあまり向いていないので、標準のDOMを使わざるを得ない。

29 :Name_Not_Found:2016/11/28(月) 05:16:18.82 ID:???.net
>>20-22
2のGETで、取得しないファイルの拡張子を、指定できないの?

Aなど、丸囲み文字は、Windowsだけの環境依存文字だから、使うな

>>23-28
「いいい</br>ううう」の部分だろ。
素直に、<div>の内容を取得すれば?

「いいい」1行だけと言うのは、おかしいだろ

30 :Name_Not_Found:2016/11/29(火) 00:04:00.21 ID:OhNqSe55.net
>>29
2のGETってブラウザが自動的に行ってるものなんですが、
ブラックリストの拡張子って指定できるんですか?
具体的にどうやってやるのでしょうか?

31 :Name_Not_Found:2016/11/29(火) 07:36:46.02 ID:???.net
マルチポストは禁止!

他のスレに、返事をしておいた

32 :Name_Not_Found:2016/11/29(火) 10:04:15.45 ID:???.net
誘導。

■JavaScriptスレ
JavaScript の質問用スレッド vol.131
http://echo.2ch.net/test/read.cgi/hp/1478053599/
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
JavaScript(ECMAScript)質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472401404/

■ライブラリスレ
JavaScript ライブラリ総合質問所 vol.5
http://echo.2ch.net/test/read.cgi/hp/1465399470/
jQuery 質問スレッド vol.7
http://echo.2ch.net/test/read.cgi/hp/1478055094/

33 :Name_Not_Found:2016/12/01(木) 21:46:12.93 ID:???.net
$('div[id="XXXXX"]')
$('div[id=XXXXX]')
ダブルクオーテーションで囲っても囲わなくても動くのですが、
どちらでも良いのでしょうか?

34 :Name_Not_Found:2016/12/01(木) 22:09:56.64 ID:???.net
>>33
囲まなくて動くからどっちでもいいよ。
!とか$みたいな半角の記号を含むidだと囲む必要があるから、その時だけ囲めばok。

補足だけど、idで選択する時は普通は
$('div#XXXXX')
あるいは
$('#XXXXX')
と書くのが一般的。

35 :Name_Not_Found:2016/12/03(土) 15:16:05.13 ID:6IkFDzpo.net
俺は特定のタグすべてを対象としないのであれば
ほとんどタグ名を書かないかな。

36 :Name_Not_Found:2016/12/11(日) 11:23:29.68 ID:Tn2z+E9L.net
【質問】JSのDOMContentLoadedが発火しません。

■事象
iframeを動的に作成(createElement)して、
addEventListenerに「DOMContentLoaded」を追加しているが、
iframeのsrc先のDOM読み込み完了時にイベントが発生しません。

37 :Name_Not_Found:2016/12/11(日) 11:24:51.51 ID:Tn2z+E9L.net
■コーディング
var parent_obj = document.getElementById("top");
var obj = document.createElement('iframe');

if(obj.addEventListener){
obj.addEventListener("DOMContentLoaded",xxx);//★これが発火しない
//obj.addEventListener("load",xxx);//☆遅い
}else if(obj.attachEvent){
obj.attachEvent("onload",xxx);
}else{
obj.onload = xxx;
}

parent_obj.appendChild(obj);
obj.src = "URL";

function xxx(e){
alert("発火");★これが発火しない
}

38 :Name_Not_Found:2016/12/11(日) 11:25:25.49 ID:Tn2z+E9L.net
>>36
>>37
■やりたい事
addEventListener("load",xxx)だと画像読み込み後にイベントが発生するので、遅いです。
iframeのソースが返ってきた直後にイベントを呼びたいのです。

■質問
なぜDOMContentLoadedが発火しないのでしょうか。
コーディングが悪いのでしょうか?

それともcreateElement('iframe')はDOMContentLoadedのイベントに対応していないのでしょうか?
その場合、上記【やりたい事】の代案はございますでしょうか?

39 :Name_Not_Found:2016/12/11(日) 12:53:46.83 ID:???.net
>>38
HTMLIFrameElementにはcontentWindowおよびcontentDocumentというプロパティが存在しますので、そちらのイベントを拾えばよいのではないでしょうか。

obj.contentDocument.addEventListener("DOMContentLoaded",xxx);

引用元
http://ja.stackoverflow.com/questions/31078/

40 :Name_Not_Found:2016/12/11(日) 13:42:55.39 ID:???.net
if(obj.addEventListener){
}else if(obj.attachEvent){


いまどきこんなコード書くなよ。
古いブラウザ切り捨てでいいならaddEventListener使えばいいし、
IE8とかにも対応させるならjQueryを使うべきだ。
コードを自分で書いたならばその行をテストしなきゃいけないんだぜ?

41 :Name_Not_Found:2016/12/11(日) 15:57:02.71 ID:???.net
> HTMLIFrameElementにはcontentWindowおよびcontentDocumentというプロパティが存在しますので

マジレスするとコレでは無理。

なぜならiframeの中のwindow(さらにその中のdocument)に触れるとは限らないから
触れると確定するのはiframeのsrcが設定された後。同じドメインであるなど
参照する権限があれば触れる。だから先にsrcを設定する必要がある。

だがsrcを設定した時点で読み込みが始まる。
つまり読み込みが始まった後にDOMContentLoadedをaddEventListenerしても
もう読み込まれてしまっているかもしれない。この場合は発火しない。

最初の一回はネットワークから取ってくるので処理が遅く、
addEventListenerが間に合って発火するかもしれないが
二回目以降はキャッシュがつかわれるため発火しない(ことがある)
この解決策を俺は知っているが、レスは返ってこなさそうだし
ここまでだなw

42 :41:2016/12/11(日) 15:58:35.69 ID:???.net
マルチポスト先を見てもどうやらこの問題に触れているのはなさそうだなw
こういうのは経験が物を言う。やったことがある俺じゃないと気づきにくい

43 :Name_Not_Found:2016/12/11(日) 16:16:24.89 ID:???.net
俺は質問者ではないんだけど、同ドメインだとしても、src設定した直後にcontentWindowって触れないよな?

44 :Name_Not_Found:2016/12/11(日) 16:27:39.55 ID:???.net
そうだったかな?こまないところは忘れた。
作り方によると思う。古いブラウザ対応もあって
about:blankも併用していたからな。

45 :Name_Not_Found:2016/12/11(日) 16:35:29.40 ID:???.net
あ、ごめん確かに作り方によるわ
質問のコードをそのまま使うとアクセスできないだけだった

46 :Name_Not_Found:2016/12/11(日) 21:01:53.10 ID:Tn2z+E9L.net
>>39

クロスオリジン、クロスドメインがやりたい事の前提です。
その場合、DOM系のイベントが使えないのですね。
それでは上記【やりたい事】の代案はございますでしょうか?

47 :Name_Not_Found:2016/12/11(日) 21:04:32.54 ID:Tn2z+E9L.net
>>41

丁寧なご回答ありがとうございます。

クロスオリジン、クロスドメインがやりたい事の前提です。
その場合、DOM系のイベントが使えないみたいののです。
>>41 さんのご指摘のタイミングの問題もあります。
それでは上記【やりたい事】の代案はございますでしょうか?

一応「2秒待って」という苦肉の策はありましたが、
別の綺麗な順序保障の方法はないでしょうか?

48 :Name_Not_Found:2016/12/11(日) 21:05:52.83 ID:Tn2z+E9L.net
>>43-45

>>41

丁寧なご回答ありがとうございます。

クロスオリジン、クロスドメインがやりたい事の前提です。
その場合、DOM系のイベントが使えないみたいののです。
それでは上記【やりたい事】の代案はございますでしょうか?

一応「2秒待って」という苦肉の策はありましたが、
別の綺麗な順序保障の方法はないでしょうか?

49 :Name_Not_Found:2016/12/11(日) 21:06:42.72 ID:Tn2z+E9L.net
あ、元々の質問は以下です。
>>36-38

50 :Name_Not_Found:2016/12/11(日) 21:21:56.81 ID:???.net
クロスドメイン先は自分で管理してるものなの?

51 :Name_Not_Found:2016/12/11(日) 22:28:23.56 ID:???.net
このマルチポスト奴またきたのか
>>20-22

52 :Name_Not_Found:2016/12/11(日) 22:43:26.63 ID:???.net
1. image = new Image();
2. image.src = 何々
3. image.onload = ハンドラ

便乗して質問するが、
こう書いておいたら、画像を読み込んだ後に、ハンドラが確実に呼ばれるのか?
それとも、もし画像を読み込むのが速ければ、もうハンドラは呼ばれないのか?

確か、画像の読み込みは、非同期だよね。
読み込みしながら同時に、3行目も実行されるよね?

53 :Name_Not_Found:2016/12/11(日) 23:55:19.70 ID:???.net
>>52
onloadよりも先に画像が読み込まれれば、onloadは発生しない。
ただこの場合は単に2と3を逆にすればいい。
iframeが特殊なだけ

54 :Name_Not_Found:2016/12/12(月) 00:57:04.81 ID:???.net
>>52
>読み込みしながら同時に、3行目も実行されるよね?

1, 2, 3 を同期的に実行すればハンドラは必ず呼ばれるだろう
キャッシュされていようが image 読み込みは非同期になるので

55 :Name_Not_Found:2016/12/12(月) 01:18:50.95 ID:???.net
> 1, 2, 3 を同期的に実行すれば

その方法を書きなさい。出来ないこと言っても意味がない

56 :Name_Not_Found:2016/12/12(月) 03:06:26.60 ID:???.net
>書きなさい
って、まんまそのまま番号外しただけのコードなんだけど

57 :Name_Not_Found:2016/12/12(月) 04:56:29.13 ID:???.net
呼ばれるよ。他のあらゆるAPIでもね。
変更と同じイベントループで登録したイベントハンドラは
順番がどうであれ必ず呼ばれる実装になってる。

58 :Name_Not_Found:2016/12/12(月) 09:38:21.92 ID:???.net
img 要素の src 属性と onload イベントリスナの設定タイミング
http://please-sleep.cou929.nu/onload-handler-setting-timing-and-async-request-of-image-element.html

有名な話。経験が浅い人には気づけない話だろう。

59 :Name_Not_Found:2016/12/12(月) 09:39:26.29 ID:???.net
やっぱりIE9でもキャッシュ有効時のimg要素はonloadを無視する件
http://akibahideki.com/blog/htmlcss/ie9onload.html

60 :Name_Not_Found:2016/12/12(月) 12:39:21.88 ID:???.net
誘導。

■JavaScriptスレ
JavaScript の質問用スレッド vol.131
http://echo.2ch.net/test/read.cgi/hp/1478053599/
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
JavaScript(ECMAScript)質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472401404/

■ライブラリスレ
JavaScript ライブラリ総合質問所 vol.5
http://echo.2ch.net/test/read.cgi/hp/1465399470/
jQuery 質問スレッド vol.7
http://echo.2ch.net/test/read.cgi/hp/1478055094/

61 :Name_Not_Found:2016/12/12(月) 12:40:15.81 ID:???.net
>>57-58
本来、その回のイベントループ(フレーム)では、ハンドラが登録されるだけで、
画像は次のフレームから読み込まれるから、>52 の順番でもOKなのだな

結局、IE8以前のバグだったのか。
「onreadystatechange にハンドラを設定して、その中で readyState を見る」
とか、何かの本で読んだことがある

62 :Name_Not_Found:2016/12/12(月) 19:30:27.84 ID:???.net
https://html.spec.whatwg.org/#common-pitfalls-to-avoid-when-using-the-scripting-apis

63 :Name_Not_Found:2016/12/12(月) 19:38:33.39 ID:???.net
おお、仕様にも書いてあるんだね

64 :Name_Not_Found:2016/12/12(月) 21:10:07.74 ID:???.net
>>61
仕様のほうが後で作られたのであれば
それはバグじゃない

65 :Name_Not_Found:2016/12/12(月) 21:35:11.47 ID:???.net
HTML4.01の仕様には当然無いとして、初めて仕様化されたのはこの時点かな。

W3C Working Draft 29 March 2012
https://web.archive.org/web/20120414181653/http://www.w3.org/TR/html5/introduction.html

IE9のリリースが2011年4月26日だからこれをバグと呼ぶのは無理がある。

66 :Name_Not_Found:2016/12/12(月) 21:46:27.00 ID:???.net
おお、やっぱり昔は仕様になかったんだね

67 :Name_Not_Found:2016/12/12(月) 23:08:34.34 ID:???.net
Safariシェア低すぎるからサポート打ち切ろう

68 :Name_Not_Found:2016/12/12(月) 23:20:00.16 ID:???.net
とんでもない
Safariは現在唯一 ECMAScript6に100%対応した最先端ブラウザやぞ

69 :Name_Not_Found:2016/12/12(月) 23:47:22.65 ID:???.net
ECMAScript6に100%対応しただけじゃ
API使えることにはならないし

70 :Name_Not_Found:2016/12/13(火) 01:54:05.99 ID:???.net
仕様をちゃんと読んでると言っても、最新の仕様と
最新のブラウザだけしか見てないのであれば
仕事としてやるには全然足りないからね。
プロとしては未熟。

71 :Name_Not_Found:2016/12/13(火) 10:59:35.49 ID:???.net
>>68
100%は対応していない
例えばtail-callの挙動が一部おかしい
そもそもES5のテストも未だ全クリできた実装はない

72 :Name_Not_Found:2016/12/13(火) 21:16:09.62 ID:???.net
まあSafariはテストはしなくていいと思う。
動けばラッキー、動かなければ残念でしたで終わり。

73 :Name_Not_Found:2016/12/13(火) 21:40:02.32 ID:???.net
もちろんiPhoneはテストするよね?

74 :Name_Not_Found:2016/12/13(火) 22:57:59.94 ID:???.net
ここで話題になってるのは
mac版safariかと

75 :Name_Not_Found:2016/12/16(金) 09:29:07.61 ID:???.net
js

xhr.open('POST', url);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(params);

jquery

$.post(url, params);

rails でパラメーター取ろうとしたら js の方は取れないんですけど、2つに何か違いはあります?間違ってますか?

76 :Name_Not_Found:2016/12/16(金) 09:34:22.18 ID:???.net
xhr.send()にプレーンオブジェクトは指定できない
StringやFormDataにする必要がある

77 :Name_Not_Found:2016/12/16(金) 09:38:05.71 ID:???.net
>>76
ありがとうございます。'key=value' のようにしてます

78 :Name_Not_Found:2016/12/16(金) 09:39:28.34 ID:???.net
jQueryはそういった面倒なことをやってくれてるから使いやすい。
他にもHTTPレスポンスが4xx系や5xx系だと例外にしてくれたりね。

79 :Name_Not_Found:2016/12/16(金) 09:44:46.38 ID:???.net
>>78
そうですね。 js で取れなかったので jquery 使ったんですけど、結局「なんでなんだろ?」と思いまして質問した次第です。

80 :Name_Not_Found:2016/12/16(金) 12:41:53.46 ID:???.net
40Xで例外は間違った設計だと結論が出てる。
fetchのように通信の例外とステータスエラーは切り分けて提供するのが今時の正しい設計。
他にもjQueryの動作には非効率だったり人間工学的におかしい挙動が多いので、それを便利と勘違いして慣れてしまうのは危険。
まあ自分でjQueryに頼るよりも良い手段を常に把握しておけないのであれば仕方ないが、一生そこから成長することはないと思いなさい。

81 :Name_Not_Found:2016/12/16(金) 12:59:43.25 ID:???.net
はーい

82 :Name_Not_Found:2016/12/16(金) 21:36:14.08 ID:???.net
>>80
> 40Xで例外は間違った設計だと結論が出てる。

お前の中で結論が出てるかどうかなんて関係ないんだよ。

83 :Name_Not_Found:2016/12/17(土) 05:03:13.18 ID:???.net
関係ないやつは黙っといて!(笑)

84 :Name_Not_Found:2016/12/18(日) 12:32:37.39 ID:???.net
現行スレはこちら。

■jQueryスレ
jQuery 質問スレッド vol.7
http://echo.2ch.net/test/read.cgi/hp/1478055094/

■ライブラリスレ
JavaScript ライブラリ総合質問所 vol.5
http://echo.2ch.net/test/read.cgi/hp/1465399470/

■JavaScriptスレ
JavaScript の質問用スレッド vol.131
http://echo.2ch.net/test/read.cgi/hp/1478053599/
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
JavaScript(ECMAScript)質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472401404/

85 :Name_Not_Found:2016/12/20(火) 09:21:42.26 ID:???.net
過疎ってんだからスレ統合しろよ

86 :Name_Not_Found:2017/01/05(木) 14:53:35.37 ID:???.net
質問です。JSでインターネットに繋がっているかどうか判別する方法はありますでしょうか?

87 :Name_Not_Found:2017/01/05(木) 15:12:02.44 ID:???.net
>>86
navigator.onLineを使うといいよ。
https://developer.mozilla.org/ja/docs/Web/API/NavigatorOnLine/onLine

88 :Name_Not_Found:2017/01/06(金) 22:45:59.31 ID:???.net
それは「インターネット」に「接続している」かどうかではなく、
「ネットワーク」に「接続していないか」どうかのAPI。
絶対に接続されていないとブラウザが分かっているとき以外は、実質繋がらなくてもtrueだし、
それことイントラネットやコピー機に接続してるときでもtrueだ。

89 :Name_Not_Found:2017/01/06(金) 23:21:38.17 ID:???.net
そっか、ごめん。じゃあ実際に通信を試すのがいいかな。
画像でonload/onerrorしたり、試しにAjaxやfetchをしたりすればいけそう。

90 :Name_Not_Found:2017/01/22(日) 13:37:49.05 ID:???.net
スクリプトの質問です。
1つの関数内で、if文が複数ある場合、それぞれ検証されているのでしょうか?
それとも、最初のif文の結果次第で、後続のif文の中の処理を行っているのでしょうか?
自分で試したところ、後続の処理も行われているのは理解できたのですが、
条件分岐はどういう仮定で行われているかわかりませんでしたので、質問させていただきました。

下記のような記述です。よろしくお願いします。
$('.hage').click(function(){
if(...){..}
else{...}
if(...){...}
else{...}
});

91 :Name_Not_Found:2017/01/22(日) 14:24:41.90 ID:???.net
>>90
君がやらないといけないのはJavaScriptの文法の意味を調べることだよ。

if ・・・ これはなにか?
(...) ・・・ これはなにか?
{...} ・・・これはなにか?
else ・・・ これはなにか?
{...} ・・・これはなにか?

これを書けば君がわからないことの答えになる

92 :Name_Not_Found:2017/01/22(日) 21:27:04.55 ID:???.net
区切りが分かっていないんだろう、もとい
if() {} else if() {}
と混同してるんだろう
if() {} else {}
の場合はそこまでで一区切りで前後の文とは関係ないよ

93 :Name_Not_Found:2017/01/22(日) 22:28:53.25 ID:???.net
>>91-92
レスどうも。
説明がくそみそですみません・・・・・

if〜elseまでで1つってことでいいんでしょうか?
ということは、それぞれ条件に合うか調べられて、それぞれ処理を行われるということですか?

94 :Name_Not_Found:2017/01/23(月) 00:16:32.33 ID:???.net
>if〜elseまでで1つってことで
それでおk

95 :Name_Not_Found:2017/01/24(火) 17:06:36.35 ID:???.net
JSだと
(function(){
alert();
})();
の末尾の()を取るとalertを実行させないように出来ますよね。
$(document).ready(function(){
alert();
});
このjQeuryの場合にカッコか何か追加/削除するなどの方法でalertを実行させないように出来ますか?
//alert();
以外で。
とりあえず一時的にコメント化したい時に使いたいんです。

96 :Name_Not_Found:2017/01/24(火) 18:46:10.63 ID:???.net
>>95
window.alert = function(message) {};
とか?

97 :Name_Not_Found:2017/01/24(火) 20:09:13.69 ID:???.net
あげ

98 :Name_Not_Found:2017/01/25(水) 00:41:18.86 ID:???.net
現行スレはこちら。

■jQueryスレ
jQuery 質問スレッド vol.7
http://echo.2ch.net/test/read.cgi/hp/1478055094/

■ライブラリスレ
JavaScript ライブラリ総合質問所 vol.5
http://echo.2ch.net/test/read.cgi/hp/1465399470/

■JavaScriptスレ
JavaScript の質問用スレッド vol.132
http://echo.2ch.net/test/read.cgi/hp/1485265364/
JavaScript の質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472426483/
JavaScript(ECMAScript)質問用スレッド vol.122
http://echo.2ch.net/test/read.cgi/tech/1472401404/

99 :Name_Not_Found:2017/01/29(日) 16:51:01.62 ID:???.net
真面目な会話をしたい人はこちらへどうぞ

JavaScript の質問用スレッド vol.132 [無断転載禁止]©2ch.net
http://echo.2ch.net/test/read.cgi/hp/1485265364/

100 :Name_Not_Found:2017/01/29(日) 17:01:00.98 ID:???.net
質問者はこちらへどうぞ。
ワッチョイ付きなので荒らしの区別が付きやすいと思われます。

+ JavaScript の質問用スレッド vol.122 +
http://echo.2ch.net/test/read.cgi/tech/1472426483/

188 KB
新着レスの表示

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :

read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★