+ JavaScript の質問用スレッド vol.97 +at HP
+ JavaScript の質問用スレッド vol.97 + - 暇つぶし2ch650:Name_Not_Found
12/02/19 21:10:19.29
if(confirm("モバイル向け表示に切り替えますか?")){
…………
}else{
…………
}

651:Name_Not_Found
12/02/19 21:11:52.54
またconfirm厨が出てきたか

652:Name_Not_Found
12/02/19 21:27:03.03
>>649
UAで分けるのが一番無難で問題がないと思うが。
JavaScriptの挙動で判別するのは判別が不完全だと最悪閲覧出来なくなってユーザーが唯一取れる手段であるUA偽装もつかえない
そしてブラウザのバージョンアップでjsの挙動が変われば当然動かなくなる、ユーザーは何もできない。
UAは”そのブラウザとみなして動かしてほしい”という意思表示

653:Name_Not_Found
12/02/19 21:40:55.70
んなことやってるからIE10問題が出て来るんだよ

654:Name_Not_Found
12/02/19 23:23:24.41
>>652
UA偽装しなければならない状況を説明してくれ
機能検出はある機能をユーザに提供するためにUAが使用できる機能を検出する為に使用する
>>617でいえばイベント定義するために addEventListener を使用できるかテストする

if (node.addEventListener) {
 node.addEventListener('click', listener, false);
} else if (node.attachEvent) {
 node.attachEvent('onclick', handler);
}

UA検出だろうが機能検出だろうが提供するものは同じはずだ

> そしてブラウザのバージョンアップでjsの挙動が変われば当然動かなくなる、ユーザーは何もできない。
そのための機能検出であるはずだ
UA検出は既知のUAに対してのみ有効な手法、制作者がテストしていないUAでの動作は保証されていない
機能検出ならその機能があることは保証されるのだから、正しく検出していれば問題は発生しない

655:Name_Not_Found
12/02/19 23:31:18.66 EkLtYt9V
URLリンク(jsbin.com)
html側のonclick属性よりもjavascript側のほうが先にイベントを受け取るにはどうすればいいですか?
html側は変更できません

656:Name_Not_Found
12/02/19 23:43:51.41 HSdXcdyQ
>>655
URLリンク(jsbin.com)

657:Name_Not_Found
12/02/19 23:45:30.77
>>656
どうもありがとう

658:Name_Not_Found
12/02/20 12:34:55.41
>>654
話題がずれてきてることに気付こうや
>>645から先は機能の話じゃないでしょ
だから>>648もスレチと言ってるんで

659:Name_Not_Found
12/02/20 12:52:09.67
×ずれてきてる
○発展してきてる

660:Name_Not_Found
12/02/20 14:37:40.00
わかったわかった

661:Name_Not_Found
12/02/20 14:45:54.02
で?ごめんなさいは?

662:Name_Not_Found
12/02/20 15:21:54.82
お前らは計画性がないから今のうちにテンプレ議論しとけや

663:Name_Not_Found
12/02/20 19:17:38.50
>>662
横から口出すだけでおまえは参加しないのか?

664:Name_Not_Found
12/02/20 19:34:24.20 LN5qUsn1
質問の方は「テンプレ議論」をNG登録してください

ってテンプレに入れて、テンプレ議論するときは
名前かメ欄か本文にテンプレ議論て書くのはどうだろう

665:Name_Not_Found
12/02/20 20:05:16.93
あほか

666:Name_Not_Found
12/02/20 20:52:58.87
>>544-551
ここらへんが一応議論する余地がある部分か


667:Name_Not_Found
12/02/20 20:55:12.93
微塵もねえ

668:Name_Not_Found
12/02/20 21:42:24.54
質問する奴はID出させろ

669:Name_Not_Found
12/02/20 21:47:31.85
PHPerは居ても荒れる原因になるだけだから巣に帰っとけよ

670:Name_Not_Found
12/02/20 21:55:24.07
【JavaScript】下らねぇ質問はID出して書きやがれ vol.98

671:Name_Not_Found
12/02/20 22:17:10.20
じゃあちょっと早めだけどテンプレ論議で。ID出せとか書くの?本当に?

672:Name_Not_Found
12/02/20 22:19:43.49
書かないよ
ID出さなくていいし

673:Name_Not_Found
12/02/20 22:22:41.22
IDはいらんがレス番くらいは欲しい

674:Name_Not_Found
12/02/20 23:09:51.58 rA4mSmUN
DOMContentLoadedのクロスブラウザ対応のライブラリやサンプルソースのあるサイトご存知の方いらしたら教えて頂けないでしょうか?
jQueryから切り出したはいいものの、これで大丈夫か確認したいのでお願いします。

675:Name_Not_Found
12/02/20 23:19:52.38
IDやレス番は結局何をしたいんだ?質問者の特定?質問者なりすましの防止?

IDは日付を跨いだら意味なし
レス番はいくらでも騙れる

質問者をどうしても特定したいならトリップしかないんじゃないの?

676:Name_Not_Found
12/02/20 23:43:06.28
別に特定しなくていいし
PHPスレのアレルギー体質を一部のやつが持ち込みたがってるだけ

677:Name_Not_Found
12/02/21 00:22:50.40
バッドノウハウの固まりであるjQueryが信用出来ないならやめとけ

678:Name_Not_Found
12/02/21 01:31:49.86
>>674
それ草案段階で捨てられたんじゃないっけ?

679:Name_Not_Found
12/02/21 02:46:43.58
これはちょっとjavascriptじゃなくてプログラミング的な質問かもしれないのですが
test['a'][0] = 123
test['a'][1] = 12
test['a'][2] = 311

test['b'][0] = 0
test['b'][1] = 1
test['b'][2] = 2
↓test['a']についてソート
test['a'][0] = 311
test['a'][1] = 123
test['a'][2] = 12

test['b'][0] = 2
test['b'][1] = 0
test['b'][2] = 1

で、test[a]についてソートしたとき、そのソート順に対してtest[b]も同じ順番にしたいのですがどうしたらいいのでしょうか?

680:Name_Not_Found
12/02/21 03:25:06.15
・aとbをペアにした配列の配列を作って
・a[0]とb[0]を比較する比較関数でソートしたあと
・それぞれの配列に書き戻す

681:Name_Not_Found
12/02/21 03:40:25.24
比較関数でちょっと考えれば出来そうな気がするけど

682:Name_Not_Found
12/02/21 03:41:35.62
◯ ああ、一応補足しておくと ◯
◯ 二行目のa[0]とb[0]は ◯
◯ 比較関数の変数名であって ◯
◯ testのハッシュ名のことじゃないからな ◯

683:Name_Not_Found
12/02/21 07:36:49.58
入力された文字列をinputやtextareaのvalueとして設定する場合
エスケープするべき(したほうがいい)文字はありますか?

684:Name_Not_Found
12/02/21 07:40:18.54
その入力された文字列の使い方による

685:Name_Not_Found
12/02/21 07:44:20.36
使い方というと?

submitしたりするわけではありません
ということでいいのでしょうか?見当違いでしたらすみません

686:Name_Not_Found
12/02/21 07:51:01.16
使い方によってエスケープするべき場合とそうでない場合があるようでしたら
例をいただけると嬉しいです

687:Name_Not_Found
12/02/21 07:58:23.54
エスケープって何? 文字を除去するって意味で言ってる?

688:Name_Not_Found
12/02/21 08:03:10.22
文字列のエスケープ処理のことです
escape()というわけではありません

689:Name_Not_Found
12/02/21 08:05:44.44
JavaScriptならinnerHTMLとかでHTMLとして出さない限りエスケープは不要
今話題のPHPならmb_check_encodingした後htmlspecialchars、両方文字コードは絶対に指定すること

690:Name_Not_Found
12/02/21 08:10:22.72
なんでPHPの話してんだよ

691:Name_Not_Found
12/02/21 08:11:44.55
>>683
変数に設定するだけならない

692:Name_Not_Found
12/02/21 08:15:19.58
>>689>>691
innerHTMLやdocument.writeでHTMLとして書き出したりしなければ問題ないのですね
ありがとうございます

693:Name_Not_Found
12/02/21 08:41:12.69
いや、書き出す書き出さないに限らずエスケープした方がいいかは場合によるでしょ
eval使う場合もあるし、それらがむしろ好まれる場合もある

694:Name_Not_Found
12/02/21 08:43:52.11
おっとevalの話はそこまでだ

695:Name_Not_Found
12/02/21 08:53:34.60
nodeValueがさぁ…

696:Name_Not_Found
12/02/21 09:08:13.28
>>688>>693
なんのエスケープだよ
なんの話してんの?
JavaScript関係ないんじゃね?

697:Name_Not_Found
12/02/21 10:16:56.41
JSlint初めて使ってみた
unexpected spaceが大量に出た
俺が見やすいようにしてるんだからいいんだよ、うぜえなあこれオフにできないのかよ糞

698:Name_Not_Found
12/02/21 10:33:00.50
そんなの使ってるのは好奇心旺盛な厨房までだろ
コンソールのデバッガでいいじゃん

699:679
12/02/21 11:57:41.43
>>680-682
助言ありがとうございます!

700:Name_Not_Found
12/02/21 15:00:17.61
>>694
JSONがさあ・・・

701:Name_Not_Found
12/02/21 17:42:29.78
if(JSON && JSON.parse){
 return JSON.parse(json);
} else {
 while(1){
  alert("(・∀・)カエレ!!");
 }
}

702:Name_Not_Found
12/02/21 19:01:40.00
JScriptで、「今シフトキーが押されているか」っていうのは
どう調べたらいいのでしょうか?

703:Name_Not_Found
12/02/21 19:32:33.78
このスレとうとう素のJSの質問より亜種の質問が多くなったな

まあ考えて見れば当たり前か
流行りのライブラリーを使ってる奴らは
技術も未熟なままいろんな事したがるし、
そうかと言って別にJSを究めたいと思ってるわけじゃないからな

まあ時代の流れか…

704:Name_Not_Found
12/02/21 19:51:19.67
onkeydown

705:Name_Not_Found
12/02/21 19:54:24.74
ブラウザで新窓を開く際に窓のサイズを「元に戻す(縮小)」で
開くよう指定する方法ってありますか?
サイズを指定するのではなくそれぞれの環境での縮小された状態で開くようにしたいです
検索しても上手く見つけられなかったので参考になるURLなどあれば
教えてくださると助かります

706:Name_Not_Found
12/02/21 21:08:02.47 tkMNdSxR
>>705
>それぞれの環境での縮小された状態

これがようわからんが
スクリーンの大きさに合わせたいのなら
window.screen.widthとheightで

707:Name_Not_Found
12/02/21 21:33:04.87
>>706
分かりにくくてすみませんでした
スクリプトでサイズを指定するのではなく
単純に最大化でも最小化でもなく縮小状態で新窓を出したいという意味でした

708:706
12/02/21 22:04:51.96
>>707
じゃあ、>>706でよろしいな

709:Name_Not_Found
12/02/21 22:05:34.90
>>707
<a href="uri" target="_blank">

710:Name_Not_Found
12/02/21 22:43:29.30
>>708
すみません>>706で大丈夫だったんですね
まだ上手く行かないのですが粘ってみます
>>709
すみませんそれだと親窓が最大化されていると新窓も最大化で出てきてしまうので
今回は使えませんでした

お二人ともどうもありがとうございました

711:Name_Not_Found
12/02/22 02:11:44.41
>>701
1行目
エラー: 'JSON' は定義されていません。

712:Name_Not_Found
12/02/22 03:04:49.61
>>711
JSON読み込んでおけば?

713:Name_Not_Found
12/02/22 03:16:01.19
>>712
それなら else が要らない

714:Name_Not_Found
12/02/22 04:50:42.17 QlWAPatD
質問しようと思って整理して書き込もうと思ったら自己解決した。ありがとう

715:Name_Not_Found
12/02/22 04:54:04.97
うるせえ、はげ。

716:Name_Not_Found
12/02/22 08:41:13.75
>>710
タブブラウザが普及した現在では、ウィンドウサイズを強制するのは無意味

717:Name_Not_Found
12/02/22 09:09:38.34
タブブラウザでもユーザーが設定してない限り
新しいタブで開かせるかウィンドウで開かせるか選べるよ

718:Name_Not_Found
12/02/22 09:37:14.46
自分はウィンドウサイズの変更なんて(設定で)許してないw

719:Name_Not_Found
12/02/22 09:41:05.57
どちらにしても迷惑スクリプト

720:Name_Not_Found
12/02/22 09:49:22.14
そうとは限らん
Googleのデモでウィンドウが走り回るのとかあったが面白いぞ

721:Name_Not_Found
12/02/22 10:39:46.44
そんなスクリプト面白いのは最初の一回だけで次からは殺意を覚える

722:Name_Not_Found
12/02/22 11:17:48.68
そんなの場合によるって
それこそevalとかと同じ
元々そんなに強く反対意見持ってた訳でもないのに
意見自分と違う意見が出たからといってキレなくていいよ
そういうのを必死って言って荒れる元、格好悪い事だって気が付かなきゃ

723:Name_Not_Found
12/02/22 11:21:54.50
Canvasに描いた絵の何か書いてある部分にマウスが乗ったときだけアクション起こしたいんだけどどうしたらいいかな?

724:Name_Not_Found
12/02/22 11:28:41.22 PCyp5quO
>>723
マウスの座標で

725:Name_Not_Found
12/02/22 12:26:09.29
座標でどうしたら描いてある部分だってわかるかな?

そういえばCanvasってAAかけるために実際は表示より0.5ズレてるんだよね?
その辺りもどうしたらいいかな?

726:Name_Not_Found
12/02/22 12:47:09.37
何その教えて君。Canvas APIを見て少しは自分で考えなよ。

727:Name_Not_Found
12/02/22 13:13:29.10
Canvasで1pxの線を引くとなんだかどー見ても1pxじゃないんだよなぁ

728:Name_Not_Found
12/02/22 13:15:18.11
>>725
アンチエイリアスまったく関係ねぇよ
原点がピクセルの左上か、ピクセルの中心か、考えろ

729:Name_Not_Found
12/02/22 13:52:36.98 PCyp5quO
>>725
>座標でどうしたら描いてある部分だってわかるかな?

そりゃ自分で描いてるんだから
描いた時に描いた位置と範囲は覚えておきなさいな

730:Name_Not_Found
12/02/22 15:09:22.20
>>728,729
ピクセルの中心が描画の左端だから例えば1dotの垂線引いても2pxになるって事だよね?

曲線とか斜線だと複雑になると思うんだけどどう記録したらいいんだろう?

あと毎回配列に記録するって事だと思うけどかなり重たくなるからできれば避けたいんだけど

任意の座標が塗り潰された事あるかどうか調べる方法ないかな?


731:Name_Not_Found
12/02/22 15:28:07.34 PCyp5quO
>>730
>曲線とか斜線だと複雑になると思うんだけどどう記録したらいいんだろう?

そこで中学と高校で習った数学の出番ですよ

732:Name_Not_Found
12/02/22 15:30:14.16
pixelの色で判断する。

733:Name_Not_Found
12/02/22 16:11:09.40
>>731
そんなことしてたらパフォーマンスが落ちるしベジェ曲線とかいろいろ無理っぽい
お願いだから現実的な策を教えて
>>732
それも考えたんだけどそこが絵の一部なのか、つまり塗り潰された事があるのかを調べる事にはならなさそう
最終的にそれしかなかったら妥協してそれを使うつもりだけど

734:Name_Not_Found
12/02/22 16:43:09.96
そんな都合いいものはあるわけない。自分でCanvasと同じサイズの
True/Falseの配列を用意して、塗ったのと同じ位置をTrueにしていき、
判定時にはそれを参照するんだろうね。ベジエとか自分で塗れないもの
は描く時も使わないようにする(もっともベジエ曲線のアルゴリズムも
勉強すれば分かると思うけどね)。

735:Name_Not_Found
12/02/22 16:51:25.10
それはもちろん内部的に同じ事してるわけだから不可能じゃないけど
fill図形もある中それするのは現実的じゃないと思う


736:Name_Not_Found
12/02/22 16:53:15.74
SVGで透明な同じ図形描いて上に重ねておく

737:Name_Not_Found
12/02/22 17:04:30.37
>>736
ちょっとそれでやってみる
サンクス

738:Name_Not_Found
12/02/22 17:12:49.40
ピクセル調べるのが一番現実的だろ
最初にclearRectしておけば透明(RGBA=0,0,0,0)になるんだから、描いた部分との比較は簡単だろ

739:Name_Not_Found
12/02/22 17:19:59.08
>>738
だいたいはそれでいいんだけど淵や中身が白い図形を描く事もあるから

740:Name_Not_Found
12/02/22 17:29:08.67
え、isPointInPath()じゃだめなん?

741:Name_Not_Found
12/02/22 17:37:45.61
>>739
わざわざRGBAと書いた意味分かってないな

742:Name_Not_Found
12/02/22 17:45:20.58
よくわからん
背景と同じ色を使わなかったら判別できるって事だと思うけど
背景が透明黒とは限らないし、画像かもしれない

743:Name_Not_Found
12/02/22 18:06:26.73
canvasの話しの続きはこっちでどうぞ

Canvasについて語ろう
スレリンク(hp板)

744:Name_Not_Found
12/02/22 18:52:25.00
このスレでいいよ

745:Name_Not_Found
12/02/22 19:19:26.88
こうする事に決めた↓

基本はドッドだけどそれが使えない場合(背景が画像等)は
fillは透明SVGを重ねてイベントリスナー、
nofillは多角形等基本は線分に分解してSVGにする
それが使えない場合(ドッドパターンの貼付等?)は最後の手段として描画位置を割り出して配列に保存する

これがベストっぽい
やっぱり三人寄れば文殊の知恵だね
みんなどうもありがとう

746:Name_Not_Found
12/02/22 19:37:29.09 PCyp5quO
そもそもSVGでアニメするのは駄目なん

747:Name_Not_Found
12/02/22 19:56:03.77
>>742
アルファを見ろと言ってるんだよ
白色だろうが描画した時点でA != 0になる

748:Name_Not_Found
12/02/22 20:24:30.10
C言語やphpのincludeの相当するのがJSでは
<script type="text/javascript" src="~.js" charset="UTF-8">
</script>
なのでしょうか?

749:Name_Not_Found
12/02/22 20:28:20.64
text/javascriptは廃止されました

750:Name_Not_Found
12/02/22 20:28:25.33 PCyp5quO
はい

751:Name_Not_Found
12/02/22 20:29:17.06
え、うそん!
俺いっつも
<script type="text/javascript">
funciton(){}
</script>

ってやってるんだけど

752:Name_Not_Found
12/02/22 20:33:59.49
なんで廃止されてんのにデフォルト値になってんのかね
HTML5のバグ?

753:Name_Not_Found
12/02/22 20:34:49.54
英語サイトに結構いいJSの解説とかサンプルプログラムあるが、
なんか日本語だと、超初心者向けしかないからな。
英語の勉強にもなるしな。

754:Name_Not_Found
12/02/22 20:35:57.51
その2006年のRFC(RFC 4329)は、いつ実効性を持つんだろうねえ。
誰も何も気にしてないみたいだし。

755:Name_Not_Found
12/02/22 20:39:02.87
text/*は人が読むためのテキストを示してて、プログラムが解釈するものはapplication/*が用意されてるからapplication/javascriptだよねうんぬん

756:Name_Not_Found
12/02/22 20:49:27.13
そうなんだけど、その話題が出るのって単にケチつけたいとか蘊蓄たれたいとかいう奴が
突っ込む時だけなんじゃないだろうか。

757:Name_Not_Found
12/02/22 21:21:09.71 LNztJBjf
嘘言え~wwwwwwwwwwwwwwwwwwwwwwwwwwwww

聞いたことないわwww

758:Name_Not_Found
12/02/22 21:27:46.34
>>748
> <script type="text/javascript" src="~.js" charset="UTF-8">
> </script>

はJSじゃなくてHTML。JSには#includeの相当するものはないよ。

759:Name_Not_Found
12/02/22 21:54:46.32
一応テクニックとしてはcreateElement('script')をdocument.body.appendChildして
オブジェクトを拡張する手もあるけどな。JSの仕様ではないけど#includeには近い
そして同様の手法で有名なのがJSONP


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch