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

私的良スレ書庫

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

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

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
101 : Name_Not - 2010/03/15(月) 13:36:38 ID:??? (+57,+29,-7)
タブ設定とある行と飛ばない語についてわかりやすく説明してくれ
102 : Name_Not - 2010/03/15(月) 13:37:34 ID:??? (+50,+28,-3)
>>100
まず日本語の仕様書を熟読すべき
103 : Name_Not - 2010/03/15(月) 16:53:45 ID:PlvQjM0v (-26,+29,+0)
>>100
エスパー発揮しようと思ったけど無理だった。
104 : Name_Not - 2010/03/15(月) 18:50:46 ID:??? (+57,+29,-19)
何のことやらさっぱり分からんが、多分evalで解決出来ると思う。
106 : Name_Not - 2010/03/15(月) 23:20:38 ID:??? (-23,-30,-262)
前スレで似たような質問ありましたがちょっと別です。

if( car_seq_id == 3 ||
  car_seq_id == 9 ||
  car_seq_id == 15 ||
  car_seq_id == 26
){
  drive();
}
は、switch文で以下のようにスッキリ書けます。
switch(car_seq_id){
  case 3:
  case 9:
  case 15:
  case 26:
    drive();
    break;
}

では、以下のをswitch文でコンパクトに書くことできますか?

if( car_seq_id == 3 ||
  car_seq_id == 9 ||
  car_seq_id == 15 && car_col_id == 2 ||
  car_seq_id == 26 && car_col_id == 9
){
  drive();
}

変数はcar_seq_idとcar_col_idの二つだけですが、条件となる数値は今後もどんどんふえていくので、メンテしやすくてパフォーマンスもよろしいものを望んでおります。
107 : Name_Not - 2010/03/15(月) 23:56:22 ID:??? (+57,+29,-34)
コードを書く上でのルール
 1つの文に多くを詰め込まないこと
108 : Name_Not - 2010/03/16(火) 00:03:15 ID:??? (-11,-30,-243)
>>106,>>108
これでどうだ!
function test() {
var count = 0;
var check = [
[3],
[9],
[15, 2],
[26, 9]
];
for (var i = 0; i < check.length; i++) {
if (arguments.length == check[i].length) {
for (var j = 0; j < arguments.length; j++) {
if (check[i][j] == arguments[j]) {
count++;
} else {
break;
}
}
}
}
return (count == arguments.length);
}
alert(test(3));
alert(test(3, 5));
109 : Name_Not - 2010/03/16(火) 00:10:01 ID:??? (+55,+25,-14)
パフォーマンス最悪だな
110 : 108 - 2010/03/16(火) 00:33:33 ID:??? (+10,-30,-264)
修正。countの初期化忘れてた。forより後を以下に。
for (var i = 0; i < check.length; i++) {
if (arguments.length == check[i].length) {
var count = 0;
for (var j = 0; j < arguments.length; j++) {
if (check[i][j] == arguments[j]) {
count++;
} else {
break;
}
}
if(count == arguments.length) return true;
}
}
return false;

>>109
条件となる数値checkの数を5000・check内の配列を現状+1の3([1,2,3])で最後のcheck要素にマッチするようにしてみたけど、
IEでも300msだったよ。クロムは20ms
5000もチェックしないと思うけど。
111 : Name_Not - 2010/03/16(火) 00:46:37 ID:??? (+57,+29,-40)
その程度の物に何十何百ステップも掛けるな
しかも他の人が見たら何やってるのか分からないだろ
112 : Name_Not - 2010/03/16(火) 00:47:48 ID:??? (+3,-30,-192)
switch 1つでできましたw

(function() {
var seq = function(x) { return Math.pow(2, x); };
var col = function(x) { return Math.pow(3, x); };

window.foo = function(m, n) {
m = m || 0;
n = n || 0;

switch (seq(m) * col(n)) {
case seq(3):
case seq(9):
case seq(15) * col(2):
case seq(26) * col(9):
drive();
break;
}
};
})();

function drive() {
alert("フヒヒ");
}

foo(15, 2);
foo(9, null)
foo(null, 3);
114 : Name_Not - 2010/03/16(火) 00:56:02 ID:??? (+36,-30,-78)
var a = car_seq_id, b = car_col_id;

switch (true) {
case a == 3 || a ==9:
case a == 15 && b == 2:
case a == 26 && b == 9:
drive();
break;
}
書き換えただけ('A`)
115 : Name_Not - 2010/03/16(火) 00:57:52 ID:??? (+62,+29,-3)
>>114
気持ち悪いから式は囲えよ
118 : Name_Not - 2010/03/16(火) 01:42:01 ID:??? (+57,+29,-14)
「プログラミング作法」はプログラムを書く仕事に就いてる/就きたいなら読んだ方が良い
119 : Name_Not - 2010/03/16(火) 03:19:37 ID:??? (-2,-30,-34)
if(/3,|9,|15,2|26,9/.test([car_seq_id, car_col_id]))
drive();
121 : Name_Not - 2010/03/16(火) 04:51:13 ID:??? (+5,-17,-3)
開く側のページで指定しろよ
122 : Name_Not - 2010/03/16(火) 07:47:54 ID:??? (+57,+29,-19)
新しいウインドウ開くの鬱陶しいから止めてね
123 : Name_Not - 2010/03/16(火) 08:50:06 ID:??? (+61,+29,-5)
サイト側の勝手なリサイズはブラウザで止めている
124 : Name_Not - 2010/03/16(火) 09:12:21 ID:??? (+40,+12,+0)
タブブラウザ使うとそういうの全部無視される。
125 : Name_Not - 2010/03/16(火) 11:23:24 ID:CAWu7EAI (+27,+29,-33)
120です。
実行環境はプラグインを想定しています。
今見ているブラウザをリサイズしないと
ガジェットが綺麗にレイアウトできないと思ったので・・・
126 : Name_Not - 2010/03/16(火) 11:26:37 ID:??? (+57,+29,-10)
>タスクバーを含まないフルサイズ
最大化ではなく全画面か
そんなことできたらうざい広告が半端なくうざいことになりそうだな
127 : Name_Not - 2010/03/16(火) 11:28:49 ID:??? (+57,+29,-7)
画面一杯占有するようなものはガジェットっていわねーよw
128 : Name_Not - 2010/03/16(火) 11:37:16 ID:??? (+55,+27,+0)
大きさ決めてページ中央に表示でいいじゃん。
129 : Name_Not - 2010/03/16(火) 11:41:51 ID:CAWu7EAI (+27,+29,-41)
ニコニコブックマークをプラグインで実装しようと思っています。
ガジェット自体はそれを投影する透明な下敷きだと思ってください
130 : Name_Not - 2010/03/16(火) 11:43:11 ID:CAWu7EAI (+0,+1,+0)
ブラウザの最大化のことです。
すいません
131 : Name_Not - 2010/03/16(火) 11:51:36 ID:??? (+57,+29,-66)
情報を小出しにするな。
最大化はググればすぐ出る。先にいえと。

ニコニコブックマーク懐かしいな。あれ2週間でサービス終了してたのか。
132 : Name_Not - 2010/03/16(火) 11:56:42 ID:CAWu7EAI (+22,+29,-1)
すいません
具具って見ます
133 : Name_Not - 2010/03/16(火) 12:03:23 ID:CAWu7EAI (+52,+25,-160)
最大化=ウィンドウのサイズをScreenいっぱいにする、ではありません。
Windows の仕様として、最大化/最小化/元のサイズに戻す と、
ウィンドウのサイズ変更は、別の動作になっています。

最大化されたウィンドウを、スクリプトで小さくしても、Windows は
そのウィンドウは最大化されたままだと認識しているはずです。
よって書かれたような動作になります。

じゃぁ JavaScript で最大化などをコントールできるか?
window.open() のパラメータ指定以外にはできません。
よく「自分自身を最大化したい」という質問がありますが、
「window.open() で自分自身を新しく開き、古い自分は close()」
という答えしかでません。

…という状況をふまえて、仕様を修正するか、上を説得してください^^;

と出てきました。ということは今見ているブラウザ自体を
最大化することはできないんですね・・
134 : Name_Not - 2010/03/16(火) 12:44:29 ID:??? (+45,+10,-3)
>>133
該当ブラウザのスレに行った方が良くね?
135 : Name_Not - 2010/03/16(火) 13:39:50 ID:??? (+70,-30,-102)
質問なんですが
javascriptのブックマークレットってあるじゃないですか
ブラウザのアドレスバーに貼り付けるとそのページの語尾が変わるものとか
javascript:void(document.body.innerHTML=document.body.innerHTML.replace(/。/g,"にょ"));
こういったブックマークレットを通したURLに直リンクする方法ってありませんか?
136 : Name_Not - 2010/03/16(火) 13:46:44 ID:??? (+62,+29,-14)
>>135
無いよ
出来たらセキュリティ的に大問題
137 : Name_Not - 2010/03/16(火) 13:47:16 ID:??? (+139,+29,-9)
>>135
なぜそのようなことをしたいのか詳しく
というのは、迷惑スクリプトの予感がしているから
138 : Name_Not - 2010/03/16(火) 15:21:04 ID:??? (+77,+29,-12)
>>137
やっぱり出来ないんですか
諦めます

>>137
他の人に紹介する時に
直リンクした方が手っ取り早いと思ったので
139 : Name_Not - 2010/03/16(火) 17:47:29 ID:??? (+57,+29,-15)
アドオンのことをプラグインって言ってる時点でお察し
140 : Name_Not - 2010/03/16(火) 18:36:18 ID:??? (-6,-29,-22)
onclick属性で指定されている動作を、HTMLを書き替えずに抑制するにはどうすればよいでしょうか
141 : Name_Not - 2010/03/16(火) 18:56:37 ID:??? (+4,-29,-44)
DOMレベルでonclickを上書きする
特定の関数を単に呼んでるだけなら、JSレベルでその関数を上書きするやや乱暴な方法もある
143 : 140 - 2010/03/16(火) 19:17:11 ID:??? (+37,-30,-84)
>>141-142
有り難う御座います
すみません、質問がおかしかったです

element.removeAttribute(onclick)
このような書き替え無しに、preventDefault()のような関数を使って抑制することは出来ないでしょうか
144 : Name_Not - 2010/03/16(火) 19:21:29 ID:??? (+96,+29,-5)
>>143
まず目的を説明してみないか
145 : 140 - 2010/03/16(火) 19:30:45 ID:??? (+77,+29,-13)
>>144
ブラウザのユーザースクリプトに使おうと思うのですが
なんとなく後者の方が汎用性があると思いまして
すみません
146 : Name_Not - 2010/03/16(火) 20:01:26 ID:??? (+17,-30,-216)
>>145
removeAttribute('onclick') せずに自前の処理を割り込ませてかつ onclick を無効にするには
document.addEventListener('click', function(event) {
  var target = event.target;
  if (関係ない要素が target だった) return;
  event.stopPropagation();
  foo(target);
}, true); // ←ここ重要
ってやるしかない。target がリンクとかだと event.preventDefault() も必要
147 : 140 - 2010/03/16(火) 20:17:38 ID:??? (+0,-29,-26)
>>146
無事onclick属性を無効に出来ました
有り難う御座います
149 : Name_Not - 2010/03/16(火) 22:39:31 ID:??? (+0,-27,-11)
matchを知っているのになぜreplaceをしらないのか。
150 : Name_Not - 2010/03/17(水) 08:18:22 ID:FaoyXOF/ (+24,+29,-17)
マッチは知ってるけどライターは知らないみたいな?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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