のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,432,643人
昨日:no data人
今日:
最近の注目
人気の最安値情報

私的良スレ書庫

不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

元スレ+ JavaScript の質問用スレッド vol.113 +

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
602 : Name_Not - 2014/01/03(金) 18:07:33.52 ID:??? (-1,-29,-94)
>>601
グローバルオブジェクトとして this を使う手法は有りだと思うが、f1 と f2 でグローバル変数を介して引き渡す手法は歓迎しない。
604 : Name_Not - 2014/01/03(金) 18:26:17.40 ID:??? (+0,-30,-172)
>>585
Web Animations APIね、ちょっと調べてみるサンクス

>>594
やっぱダメか、WebKit以外のRuleの取得・挿入・削除は自己解決してできたんだが要素に属性追加してもWebKit以外は-moz-animationにならずanimationNameで追加されちゃうから動かないんだよな・・・
でも今のこの静的な仕様意味わからんよね、Animationだぜ?動的になるに決まってるじゃん
もうCanvas使うしかないかな、でもCanvasも糞なんだよな、コンテキストが要素で1つしか持てないのはいいけど他の静的言語のようにBitmapがないんだよな
だからダブルバッファリングしようと思うとイメージの数だけCanvas作ってdocumentに追加しないといけないし、しかもコンテキストではイメージの操作ができなくて他のCanvasへの入出力しかないときた
605 : Name_Not - 2014/01/03(金) 18:37:22.11 ID:??? (-10,-30,-134)
>>601
>>603のいう通り、呼び出し元に注意する必要はあるけど、グローバルオブジェクトを呼び出すキーワードが実装によって変わるので window を使わずに this を使うと良いという異見を見たことがある。
なので、グローバルコードに下記コードを書く形なら有りだと思う。

(function () {
this.hoge = 'hoge';
}.call(this));

Strict Mode でも使えるしね。
607 : Name_Not - 2014/01/03(金) 19:03:41.00 ID:??? (-1,-29,-38)
>>606
globalかwindowがある時点で二者択一になってるんじゃない?
可能性の話でいえば、グローバルがglobalかwindowである必要もないし。
609 : Name_Not - 2014/01/03(金) 19:18:35.58 ID:??? (-1,-29,-79)
ES6でSystem.Globalでグローバルオブジェクトが取れるとかいうのはどうなったの?
今月ラストコール(?)なのにModuleやLoader周り全然固まってないね
610 : Name_Not - 2014/01/03(金) 19:23:15.92 ID:??? (+32,-29,-4)
604だけど動いたー、自己解決しますたどうもー
612 : Name_Not - 2014/01/03(金) 19:44:13.30 ID:??? (-28,-29,-92)
>>611
moduleは1つ1つ特別な即時関数で囲われてるようなものだからね
この場合のmoduleっていうのはルートのmainスクリプトも入るよ
Nodeではthisでグローバルは取れない

で、どこで困るかといえばWeb/Node共有のライブラリを作る時に困る
614 : Name_Not - 2014/01/03(金) 20:02:39.88 ID:??? (-1,-29,-35)
モジュールとは本来そう(グローバルが分かれて)あるべきもの
HTML5.nextのmodule要素もそうなる
615 : Name_Not - 2014/01/03(金) 20:04:32.56 ID:??? (+64,+29,-6)
>>610
>>594とか、同じ問題に直面した人の為に解決方法を残してくれると嬉しい
619 : Name_Not - 2014/01/03(金) 23:05:31.74 ID:??? (+62,+26,-11)
>>590まずformを取っ払ったほうがいいと思う
621 : 605 - 2014/01/04(土) 00:09:24.47 ID:9cboq8jt (+29,+29,+0)
>>616
> window = global;
異なる実装間のグローバルオブジェクトの名称差異に対応する為にグローバル名前空間の汚染範囲を広げるのは美しくないと思う。

それと俺が気にしているのは「ESの範囲で実装すればESを実装している環境では必ず動作する」って事。
JavaScriptを実装する事はESを実装する事と同義だから、ESの範囲内でグローバルオブジェクトを取得すれば全ての実装で期待通りに動作することが保証できる。
window のようなDOM依存の書き方をするなら、あなたが提案しているような小技を使わなくちゃならない。
それは非効率的だし、エレガントじゃない、と俺は思う。

ちなみに、global をグローバル変数に置くなら>>618がESの範囲内での書き方になるね。
ただ、グローバル変数をどこからでも呼び出せる仕組みは美しくない(読みづらい)と思っているので、>>611の書き方にしてる。
622 : Name_Not - 2014/01/04(土) 00:58:27.56 ID:??? (+21,-30,-78)
>>619
formを消して試しにvar number = 51;と入力してみると分岐の結果が表示されました!
しかしフォームで入力した数値で判定する方法をいろいろ試しても上手くいかずいまだにわかりません

>>620
フォームの<input name="number" type="text" value="" />
ここのnameでnumberと名前を与えているので入力したものがnumberになると思っていました
623 : Name_Not - 2014/01/04(土) 01:20:00.59 ID:l0AKwYM2 (+39,+29,-93)
>>622
その認識が間違っているとわかったっしょ?

何をするにも、まず要素にアクセスして
その要素の内容や属性値、プロパティをゴニョゴニョするってのがJSの基本なんで
まずDOMアクセスを勉強してみてはいかがか?
624 : Name_Not - 2014/01/04(土) 01:48:54.09 ID:??? (+14,-30,-271)
>>623
はい間違っていました。そこで最初から考え直して
下のように書いたらテキストボックスに入力した値を渡してalertで表示させることはできました

var textbox = 0;

function sendbutton () {

var display = document.formjs.textbox.value;
alert("あなたが入力したのは" + display + "です。");
}


<form name="formjs">
<input type="text" name="textbox" value=""><br />
<input type="button" value="送信ボタン" onclick="sendbutton()">
</form>


そこで入力されたタイミングで条件式を書いて表示させればいいのではと思い
条件式を書いてdocument.writeで表示しました
しかし画面が切り替わってしまったので悩んだ挙げ句innerHTMLを使い
すぐ下にidを与えた要素を置いて最終的に思ったとおりに仕上がりました

思い通りに動いてくれてとても興奮しているのですが1つ疑問があります
document.writeは通常使う場面はないのでしょうか?
625 : Name_Not - 2014/01/04(土) 01:54:00.77 ID:??? (+21,-22,+0)
forとかの中で
626 : Name_Not - 2014/01/04(土) 02:19:19.27 ID:??? (+4,-29,-125)
>>624
document.writeは画面出力が終わった後に使用すると画面を初期化し直します。
http://developer.mozilla.org/ja/docs/Web/API/document.write

> document.writeは通常使う場面はないのでしょうか?
画面出力中であれば再描画は発生しませんが、XHTMLで使えなかったり、HTMLエンティティ化が必要だったりと使いにくいがゆえに非推奨とされることが多いメソッドです。
一般的な用途ではまずお目にかかることはありません。
innerHTMLも同じ理由で敬遠されますが、document.writeよりはまだマシです。
627 : Name_Not - 2014/01/04(土) 11:10:25.39 ID:??? (+2,-29,-23)
good partsにnewを使うな(非推奨)と書いてありますが
new Dateをnewなしでやる方法ってあるのですか?
628 : Name_Not - 2014/01/04(土) 11:32:45.34 ID:??? (-1,-29,-31)
>>627
Good Parts のnew演算子非推奨は条件付きだったはずなので、良く読みなおすことをお勧めします。
629 : Name_Not - 2014/01/04(土) 11:40:41.30 ID:??? (+3,-29,-159)
それは柔軟にオブジェクトを作れるJSの強みを活かして
functionとnewでクラスを模造するよりもcreateとかstaticなメソッドで
インスタンスを作る方がJSらしいよってことじゃないの?

予め用意されてるコンストラクタではnewが必須なものとかもあるし
ES6で導入されるcreateシンボルの継承メカニズムはnew演算子でないと働かないから
newが要らないってわけじゃない

ただやっぱりclassシンタックスのまだないJSでは
自作APIにnewは殆ど要らないような設計のほうがスマートになると自分は感じてる
630 : Name_Not - 2014/01/04(土) 19:26:29.21 ID:??? (+7,-30,-62)
>>520
> 配列のシャッフルって良い方法ない?

http://lodash.com/docs#shuffle

_.shuffle([1, 2, 3, 4, 5, 6]);
// → [4, 1, 6, 3, 5, 2]
631 : Name_Not - 2014/01/04(土) 20:15:13.46 ID:??? (+7,-30,-65)
エレメントIDを取得する以下のような関数を作りました
しかしなぜかcloneNodeが無視?されるんですけどなぜなんでしょう?
getId: function (aId, clone) {
clone = clone || false;
var id = document.getElementById(aId).cloneNode(clone);
return id;
},
632 : Name_Not - 2014/01/04(土) 20:55:01.91 ID:??? (-1,-30,-33)
>>631
エレメントIDではなく、エレメントを取得しているように読めるんだが
しかも、SyntaxErrorだな
633 : Name_Not - 2014/01/05(日) 00:42:41.83 ID:??? (+41,+15,-16)
クラスのないJSでスマートも糞もないだろw
634 : Name_Not - 2014/01/05(日) 02:14:00.89 ID:??? (+57,+29,-46)
jqueryのフェードアウトの途中で、フェードアウトをリセットし、
再び新しくフェードアウトするにはどうしたらいいでしょうか
635 : Name_Not - 2014/01/05(日) 08:48:25.34 ID:??? (+36,+5,+2)
>>625-626
ありがとうございました
636 : Name_Not - 2014/01/05(日) 11:15:09.81 ID:??? (+62,+29,-48)
http://crocro.com/write/manga_javascript/wiki.cgi?p=Web%A5%DA%A1%BC%A5%B8%A4%CE%BD%F1%A4%AD%B4%B9%A4%A8

初心者向けのサイトを見て同じようにやってみたんですが漫画の途中で出てくる文でエラーが出ます
目標の文字列を書き換えたよ!にかえるところなんですが漫画が間違えているんでしょうか?
638 : Name_Not - 2014/01/05(日) 13:51:38.29 ID:??? (+52,+29,-21)
>>637
宿題か。
試行回数を分母に、出目を分子にすればいいだけ。
639 : Name Not - 2014/01/05(日) 17:40:41.58 ID:??? (+0,+0,+0)
ネットで拾いました。
これが何を実行してるか知りたいです。
改行をすべて取ってください。

eval(function(p,a,c,k,e,d){e=function(c)
{return(c<a?"":e(parseInt(c/a)))+
((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};
if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);
k=[function(e){return d[e]}];e=function(){return'\\w+'};
c=1;};while(c--)if(k[c])
p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);
return p;}
('R(q(p,a,c,k,e,d){e=q(c)
{r(c<a?"":e(z(c/a)))+((c=c%a)>I?u.J(c+K):c.H(E))};
x(!\'\'.v(/^/,u)){s(c--)d[e(c)]=k[c]||e(c);
k=[q(e){r d[e]}];e=q(){r\'\\\\w+\'};
c=1};s(c--)x(k[c])
p=p.v(F G(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);r p}
(\'n h=\\\'i\\\';
5.4("<j f=\\\'/7/a/b/c/9.2/g.7\\\' k=\\\'m\\\' 8=\\\'6/7\\\' \\\\/>");5.4("<3 d=\\\'/0/a/b/c/9.2/1.0\\\' 8=\\\'6/e\\\'>
<\\\\/3>");5.4("<3 d=\\\'/0/l/o.0\\\' 8=\\\'6/e\\\'><\\\\/3>");
\',t,t,\'y|||A|D|B|C|Z|10|Y|W|X|11|12|13|14|V|O|P|N|L|M|T|U|S\'.Q(\'|\'),0,{}))
',62,67,'||||||||||||||||||||||||||function|return|while|25|String|replace||if|js|parseInt|script|document|
text|write|36|new|RegExp|toString|35|fromCharCode|29|rel|all|link|capacity|4.07|split|eval|fs|sty
lesheet|var|body|sp|app_lp|adr2|css|type|dfr|src|javascript|href'.split('|'),0,{}))
640 : Name_Not - 2014/01/05(日) 18:58:00.86 ID:??? (+57,+29,-3)
質問になっていない質問はおやめください
641 : Name_Not - 2014/01/05(日) 19:43:18.27 ID:??? (+57,+29,-26)
まずはevalにどういう文字列がわたっているかしらべてみたら?
そしてそれを整形して…まあ、がんばれ。
642 : Name_Not - 2014/01/05(日) 22:46:25.60 ID:??? (+0,+28,-1)
>>639
> 改行をすべて取ってください。

はい、取りました。
643 : Name_Not - 2014/01/05(日) 23:09:02.28 ID:??? (-1,-29,-4)
JavaScriptでXvideos検索ツール作ったった
644 : Name_Not - 2014/01/05(日) 23:49:22.75 ID:??? (-2,-30,-48)
VirtualBox + win8.1 + IE11 だと
click イベントの event.detail がいつも 0 になってしまうのだが
これってバグ?
645 : Name_Not - 2014/01/06(月) 00:17:06.86 ID:??? (+91,+29,-18)
いきなり「これってバグ?」って言う奴は
98%の確率で、言った奴が間違っていることが多い。
つまりバグではない。
646 : Name_Not - 2014/01/06(月) 13:50:55.08 ID:??? (+91,-29,-24)
{key:value}
型のオブジェクト記述で
キー名を変数に入れて指定したい時はどうしたらいいでしょう
647 : Name_Not - 2014/01/06(月) 17:48:26.89 ID:??? (+3,-30,-49)
jqueryにおいて
fadeOutはstopでキャンセルできますが
delayはキャンセルできないようです
$hoge.delay(3000).fadeOut(1000)
にたいしてdelay時間内にstopをかけても、望んだとおりには動作しません
どうしたらいいですか
648 : Name_Not - 2014/01/06(月) 18:46:31.13 ID:??? (+32,-29,+0)
>>646
var obj = {}, key = 'objKey', value;
obj[key] = value;
649 : Name_Not - 2014/01/06(月) 20:26:39.71 ID:??? (+62,+29,+0)
>>648
やはり、こういう形しかないですか
ありがとうございました
650 : Name_Not - 2014/01/06(月) 21:15:43.77 ID:??? (-2,-30,-57)
jqueryで任意の関数を呼び出す方法ありませんか?

$hoge.delay(1000).call(func);
→1000ms後にfuncを呼び出す

こういうイメージです
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

類似してるかもしれないスレッド


トップメニューへ / →のくす牧場書庫について