+ JavaScript の質問用スレッド vol.77 +at HP
+ JavaScript の質問用スレッド vol.77 + - 暇つぶし2ch635:Name_Not_Found
10/04/13 22:24:01
min-width max-width min-height max-height
好きなのを選べ

636:Name_Not_Found
10/04/13 22:45:48
>>635
全部IE6で使えないね

637:Name_Not_Found
10/04/13 23:11:19
>>630
・1回押したらJavaScriptでボタンを無効化する
・ボタン押下時、トークン(画面を表示するごとに毎回変わる値)を一緒に送信。
 サーバ側で2回同じ値が送信されてきたら2回目以降を弾く
を両方やるのが普通

638:Name_Not_Found
10/04/13 23:24:03
諸君らの愛してくれたIE6は死んだ。なぜだ!?

639:Name_Not_Found
10/04/13 23:28:25
>>638
まだまだ現役ですが。ウチの会社IE7以上は使用禁止

640:Name_Not_Found
10/04/14 00:44:43
だが斬る

641:Name_Not_Found
10/04/14 01:08:43
>>639
IE7使えるじゃん
問題ない

642:Name_Not_Found
10/04/14 01:36:17
>>641
IE7以上は使用禁止=IE7は×

643:Name_Not_Found
10/04/14 01:41:08 FIr7FDoe
ページの読み込みが完了したら、そのページ内の画像URLの中で、Not Foundとかで表示されない画像URLのリストを調べるスクリプトです。
IEではうまくいくのですがFirefoxでうまくいきません。回避策を教えてください。
<html>
<head>
<script>
window.onload = function(){
  var str = "";
  var imgAry = document.images;
  for(var i=0; i<imgAry.length; i++){
    var img = new Image();
    img.onerror = function(){
      str += img.src + "\n";
    }
    img.src = imgAry[i].src;
  }
  alert(str);  // IEでは正常に「URLリンク(2ch.net)」と出てくれる
}
</script>
</head>
<body>
<img src="URLリンク(2ch.net)"><br>
<img src="URLリンク(2ch.net)"><br>
<img src="URLリンク(cast.texpo.jp)"><br>
<img src="URLリンク(2ch.net)"><br>
</body>
</html>

644:Name_Not_Found
10/04/14 03:25:44 JgC9T0UH
>>643
ちょうど手元のFirebugに似たようなスクリプト書いてあってワロタ
ちゃんと動くよ

var tmp = document.getElementsByTagName("img");
for(var i=0,l=tmp.length ; i<l ; i++)(function(img){
    img.onerror = function(){
        console.log(img);
    }
    img.src = img.src;
})(tmp[i]);


645:Name_Not_Found
10/04/14 03:28:31 JgC9T0UH
あー、わかった。

var img = new Image();

がいかんのよ。

646:Name_Not_Found
10/04/14 03:57:31
>>645
>>643じゃないけど、それは関係ないと思う
こっちで試してみ

var arr = [], elems = document.getElementsByTagName("img");
for (var i = 0, len = elems.length; i < len; i++) (function(elem) {
var img = new Image();
img.onerror = function() {
console.log(this.src);// こっちは出力される
arr.push(this.src);
};
img.src = elem.src;
})(elems[i]);
console.log(arr);// こっちは出力されない

さっきから試行錯誤してるんだが、よー分からんな
onerrorが駄目ならonloadでとって差分とればいいじゃないと思ったけどこれも駄目だった(Chromeならこの方法でできた)

647:Name_Not_Found
10/04/14 04:01:13
ヒント:同期と非同期

648:Name_Not_Found
10/04/14 05:10:33
ヒント:循環参照

649:645
10/04/14 09:55:34 JgC9T0UH
うまく伝わらなくて申し訳ない。

ヒント:スコープ

650:Name_Not_Found
10/04/14 14:14:51
Fxではimg.onerrorが非同期になっているから?!

同期にすればいいってこと?

651:Name_Not_Found
10/04/14 15:14:26
onError が発生する前にalert( str )まで行ってるんじゃね?
↓実行するとfinish onloadから表示された

<script type="text/javascript">
window.onload = function (){
var str = "";
var imgAry = document.images;
for(var i=0; i<imgAry.length; i++){
var img = new Image();
img.onerror = function(){
str += img.src + "\n";
alert( "from onerror\n" + str );
}
img.src = imgAry[i].src;
}
alert( "finish onload\n" + str);
}
</script>

652:643です。
10/04/14 18:14:34
みなさん、いろいろ試していただきありがとうございます。

  var str = "";
  var imgAry = document.images;
  for(var i=0; i<imgAry.length; i++){
    var img = new Image();
    img.onerror = function(){
      str += this.src + "\n";
      console.log("途中\n" + str);
    }
    img.src = imgAry[i].src;
  }
  alert("結果\n" + str);
  console.log("結果\n" + str);

ってやると、アラートではstrが空ですが、コンソール上では以下のような順番で出力
され、結果のstrも期待通りの出力になっていました。
アラート無しでうまくいくようにするためにはonerrorが発生するまで待つような処理にする必要がありそうですが可能でしょうか?

途中
URLリンク(2ch.net)
-----------------------------------
途中
URLリンク(2ch.net)
URLリンク(2ch.net)
-----------------------------------
結果
URLリンク(2ch.net)
URLリンク(2ch.net)
-----------------------------------

653:Name_Not_Found
10/04/14 19:51:05
まずメモリーリークを直せ

654:Name_Not_Found
10/04/14 23:36:40 JgC9T0UH
var elem = [<img>,<img>,<img>];
for(var i=0,l=elem.length ; i<l ; i++){
    img[i].onclick = function(){
        alert(i);
    }
}

655:Name_Not_Found
10/04/15 00:22:33 vQvFmtnL
URLリンク(zipdeyaruo.blog42.fc2.com)
このページを見ると、

  i+=0;i+=13;i+=5;i+=6;i+=3;i+=22;i+=3;i+=8;i+=18;i+=22;i+=1;i+=2;.....

と、延々と i になんか数字たしてるんだけど、これってなにやってるの?

656:Name_Not_Found
10/04/15 03:43:33
宣伝乙

657:Name_Not_Found
10/04/15 06:42:02
どうしてもボタン「すべて選択」が効かない。 教えてください。お願いします。function select()にイベントが届いていないようです。
0<body>
1<div id="imgCheck"></div>
2<script type="text/javascript">
3//@cc_on
4Number.prototype.zero = function(n){ return ('0000000000'+ this).slice(-n); }
5var html = '<form><input type="button" value="すべて選択" click="select(1)"><input type="button" value="すべて解除" onClick="select(0)">';
6for(i=0;i<10;i++){
7var src = 'img'+(i.zero(4))+'jpg';
8html += '<div class="imgbox"><img src="' + src + '.jpg" alt="'+src+'"><div><input type="checkbox" value="'+src+'">'+src+'</div></div>';
9}
10html += '</form>';
11document.getElementById('imgCheck').innerHTML = html;
12document.getElementById('imgCheck')./*@if(1)attachEvent('on'+ @else@*/addEventListener(/*@end@*/'mouseover', chk, false);
13function chk( evt ){
14var node = evt.target || evt.srcElement;
15if( node.nodeName == 'INPUT' && node.type =='checkbox' ) node.checked = !node.checked;
16}
17function select ( bool){
18 var x=document.getElementsByTagName('INPUT');
19
20 for (var i=0;x[i];i++){
21
22 if(!(x[i].type.match('checkbox')) )continue;
23
24 switch(bool){
25 case 1: x[i].checked = true; break;
26 case 0: x[i].checked = false; break;
27 }
28 }
29}
30</script>

658:Name_Not_Found
10/04/15 07:15:35
>イベントが届いていないようです
だろうな。HTMLすらまともに書けてないもの。

659:Name_Not_Found
10/04/15 09:45:47
イベントが届いてないなら届くように書けば良いじゃん
いちおうこれヒントな

660:Name_Not_Found
10/04/15 10:59:26
スレ違いかもしれないんだが、選んだ項目(プルダウンメニュー)によって
自動返信の内容を変えるフリーのメールソフトってないですかね?
PHP、CGIどちらでもかまいません。

661:Name_Not_Found
10/04/15 11:06:01
>>657
onclick="alert(select)"

スコープ順位の高い位置で select が定義されてる。
他に focus, click なんてのもある。

<input type="checkbox" onmouseover="focus(); click();">

名付けには気を遣え。

662:Name_Not_Found
10/04/15 11:17:47
>>657
<html><head></head><body>
<form><input type="button" value="すべて選択" onclick="sel(1);" /><input type="button" value="すべて解除" onclick="sel(0);" /><div id="imgCheck"></div></form>
<script type="text/javascript">
Number.prototype.zero = function(n) { return ('0000000000' + this).slice(-n); };
var addEvent = function(node, type, fn) {
  if (document.addEventListener) node.addEventListener(type, fn, false);
  else if (document.attachEvent) node.attachEvent('on' + type, function(e) { fn.call(node, e); });
}, sel = function(num) {
  var nodes = document.getElementById('imgCheck').getElementsByTagName('input');
  for (var i = 0; nodes[i]; i++) (function(node) {
    if (num == 0) node.checked = false;
    else node.checked = true;
  })(nodes[i]);
}, html = '';
for (var i = 0; i < 10; i++) {
  var src = 'img' + i.zero(4) + 'jpg';
  html += '<div class="imgbox"><img src="' + src + '.jpg" alt="' + src + '" /><div><input type="checkbox" value="' + src + '">' + src +'</div></div>';
}
document.getElementById('imgCheck').innerHTML = html;
addEvent(document.getElementById('imgCheck'), 'mouseover', function(e) {
  var t = e.target || e.srcElement;
  if (t.nodeName == 'INPUT' && t.type =='checkbox') t.checked = !t.checked;
});
</script>
</body></html>

663:Name_Not_Found
10/04/15 11:33:16
>>661,662

ありがとうございます。


がんばって今からやってみます。


664:Name_Not_Found
10/04/15 11:36:34
何かもういろいろひでえな

665:Name_Not_Found
10/04/15 12:03:07
>>662
えー……

666:657
10/04/16 23:39:44
>>661,662


なんとかがんばって理解しようとしてみた



・onclick」はonClick」でなくてもOKなんですね
・function(e)がよくわからない
 こうかいておけば、あらゆるイベントが起こった際に、これが呼び出される?
 eにはイベントオブジェクトが入る?
・元スクリプト>>657は、なぜ機能しなかったのか

・661さんの
 スコープ順位の高い位置で select が定義されてる。」

selectの書いた場所がどうならよかったのか
スコープ順位」とは?


ここらへんが謎です



667:Name_Not_Found
10/04/17 00:45:51
HTMLであれば属性名の大文字小文字は区別されない

> >>657は、なぜ機能しなかったのか
5行目「click」じゃなくて「onclick」だろう

・イベント属性(onclick)の中でコンテキスト(this)はその要素
・input要素はselectメソッドを持つ
<input ~ onclick="select(1)">だとinput要素のselectメソッドが呼ばれる
=> onclick="window.select(1)"
=> 関数名を変える

662もそうだが、そのままbool使えばいいだろう。1はtrue、0はfalseだ
というか最初からonclick="select(true)"にしとけばいい

668:Name_Not_Found
10/04/17 01:00:56 np2HCHTk
Operaでtextarea入力した単語の自動スペルチェックをOFFにする方法ってないでしょうか
.setAttribute("spellcheck", false)
とか使ってもだめでした。

669:Name_Not_Found
10/04/17 01:25:13
それはサイト側でやることなのか?
それと、もしそれでオフになったとしてもJSでやる必要なくね?

670:Name_Not_Found
10/04/17 01:35:46
>>668
特定サイトだけではなく機能自体をOFFにしたいのなら、
以下の手順で切り替え可能

ツール>設定>詳細設定>閲覧>スペルチェック

671:Name_Not_Found
10/04/17 02:03:28 np2HCHTk
>>670
レスどうもです。

自分の作ったHTML上で使えるツールを使う時だけOFFにしたかったのですが、
使う人に対して「どうしても気になるならこういう風に設定して」と説明文を書いておくしか無いですかね。

672:Name_Not_Found
10/04/17 04:32:17
正直、ただのお節介だと思う。
スペルチェックが必要ない人は最初から切ってる。
textareaを使ったサイトは2chを含め無数にあるのに、
あなたのサイトを訪れたときにだけスペルチェックの赤線が気になって
イライラするOperaユーザーなんて全世界に数人もいない。
逆に、それ以外の全ての人にとっては無駄な記述になる。
サイト側で気にすることじゃないよ。

673:Name_Not_Found
10/04/17 09:57:13 ngIEobeO
質問です。
IE限定のwindow.createPopup()を使用しています。
(IE7またはIE8のみの環境で使用しています)

これで作成したポップアップウィンドウが消えるとき(または消えたとき)のイベントを
ハンドリングしたいのですが、方法がわかりません。分かる方がいましたら教えていただけませんでしょうか?

<html>
<head>
<script>
function showPopup() {
    var popup = window.createPopup();
    var pb = popup.document.body;
    pb.innerHTML = '<div>test</div>';
    popup.show(100, 100, 100, 100, document.body);
}
function popupHide() {
    document.getElementById('msg').innerHTML = '消えた';
}
</script>
</head>
<body>
<div onclick="showPopup();">popup</div>
<div id="msg"></div>
</body>
</html>

試してだめだった方法(上記のpopup.show()の前に記述)
1. popup.onBlur='popupHide()';
2. popup.onUnload='popupHide()';


674:Name_Not_Found
10/04/17 10:36:22 V4JRvi1z
現在フォーカス持ってる要素って取得できますか?


675:Name_Not_Found
10/04/17 10:42:57
>>674
document.activeElement

676:Name_Not_Found
10/04/17 11:27:16
>>675
ありがとう。


677:657
10/04/17 23:12:15
>>667

御礼遅れました。
ありがとう。

678:Name_Not_Found
10/04/18 00:36:41
質問

なんでhtml内のうめこみスクリプトってjavascriptのみなの?
pythonとかjavaとかの文法がつかえれば便利だと思うんだけど
javascriptだけはなぜか不動の位置にあるのな。
たしかに、RailsとかPHPとかでjavascriptを動的に生成すればいいんだけど
それならRubyとかPHPの文法でいいじゃん、なんでjavascriptっていう違う言語に変換してるのか
よくわからん。

679:Name_Not_Found
10/04/18 01:02:23
ブラウザの歴史的ないきさつもあるし、実行環境で用意されてる関数がWeb向きということもあるし、
文法的なことを言えばプロトタイプベースの言語だからページ構造の変化に強く自由度が高くて便利。

680:Name_Not_Found
10/04/18 01:05:55
>>679
> 文法的なことを言えばプロトタイプベースの言語だからページ構造の変化に強く自由度が高くて便利。
他の言語つかったことないな?それとも信者?
そうじゃないというなら他の言語との比較をしてみてよ。C#やRubyやLispに比べて具体的にどのへんが自由度が高くてページ構造の変化に強いのか。

681:Name_Not_Found
10/04/18 01:08:20
Lispは使ったことないが、C#, Rubyは経験あるな。
まずプロトタイプベースの利点を理解した上で文句をつけてるのか、
理解せずにただ持ち上げてるというだけで信者扱いしてるのか白状しる。

682:Name_Not_Found
10/04/18 01:13:33
>>681
しらねーよwwそんなの。理解してません。てか、そんなの知らなくてもそれなりのシステムは組めてるからな。
たぶん説明されれば、わかるけど。

さあ、白状してやったから、
C#やRubyやLispに比べて具体的にどのへんが自由度が高くてページ構造の変化に強いのかいってみなさい。

683:Name_Not_Found
10/04/18 01:27:04
自由度が高すぎると困る
終わり

684:Name_Not_Found
10/04/18 01:38:30
VBScript「呼んだ?」

685:Name_Not_Found
10/04/18 01:39:59
なんでHTTPでなんでHTMLでなんでFlashなのかって言われても返答に困るようなもんだよなぁ
デファクトスタンダードって強いよね

686:Name_Not_Found
10/04/18 01:40:09
>>678
何かのフォームをイベント処理できるソフトを既存のRubyやPHPで書ける?
セキュアを完全保証できるという前提で

687:Name_Not_Found
10/04/18 01:50:28
>>685でFAだなあ。
あと文法と実行方式とを混同してるアホはちょっと頭冷やした方がいいと思うよ。
サンドボックスって言葉ぐらい知っててもいいと思う。

688:Name_Not_Found
10/04/18 01:51:23
言語仕様とオブジェクトライブラリは分けて語った方がいいぞ

689:Name_Not_Found
10/04/18 01:57:33
IEならレジストリいじって好きなエンジン呼べるはず
ActivePerl入れればtext/perlscript使えるんじゃなかったっけ

690:Name_Not_Found
10/04/18 02:06:07 jwQx4DTv
>>678
歴史的問題だと思う

ただ最近 <script type="text/hoge"> として俺言語を記述できるようにするハックを見た記憶がある

691:Name_Not_Found
10/04/18 03:25:34
URLリンク(d.hatena.ne.jp)

692:Name_Not_Found
10/04/18 10:22:02
>>682
>たぶん説明されれば、わかるけど。
ダウト。

693:Name_Not_Found
10/04/18 12:37:56
>>692
言語そのものに対する盲目的な信仰を告白するのは
よっぽどの人が言うんでもなけりゃ痛いだけだからやめとけ

694:Name_Not_Found
10/04/18 14:16:33
言語を単純な優劣でしか考えられない人がいるけどスルーで
Webクライアントに向いてるかという話題なのに

695:Name_Not_Found
10/04/18 17:30:21
>>693
信仰?
説明されても判らない程に頭が悪そうだ、って話だ。
言わせんな恥ずかしい。

696:Name_Not_Found
10/04/18 18:04:55
VBScript を盛り上げて行こうz

697:Name_Not_Found
10/04/18 19:54:59
お断りします

698:Name_Not_Found
10/04/18 20:52:09
C 系の言語ばかり使っていたら、考え方が偏っちゃうyo!

699:Name_Not_Found
10/04/19 01:42:03
真理に近づきたくばschemeをやるべし

700:Name_Not_Found
10/04/19 01:52:49
>真理に近づきたくば
いや別に

701:Name_Not_Found
10/04/19 02:24:02
真理タンにお近づきになりたいです!><

702:Name_Not_Found
10/04/19 21:18:23 KtV22HpC
質問です
万年カレンダーを作っているのですが当月は表示できても
前月と次月がうまく表示できません
ひと月だけなら前月も次月も表示できるのですがひと月しか
できず止まってしまいます
どうかご教授お願いします
ソースは省略してますがこんな感じです

monstr = new Array("1月","2月","3月","4月"…);
yostr = new Array("日", "月", "火", "水", "木", "金", "土");
maxday = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var now = new Date();
var today = now.getDate();
var cy, cm;

view_cal(0, 0);

function view_cal(year, month) {

var nDate = new Date();
cy = (!year)? nDate.getFullYear(): year; // 表示年
cm = (!month)? nDate.getMonth(): month; // 表示月
nDate.setFullYear(cy);
nDate.setMonth(cm);
nDate.setDate(1);
var yo1 = nDate.getDay();
var daycnt = 1;
var moncnt = 0;
var flag = 0;
get_cal = "";

703:Name_Not_Found
10/04/19 21:20:00 KtV22HpC
// 月欄
get_cal +="<p><span id=\"pmon\">←</span>" + monstr[cm]
+ cy + "<span id=\"nmon\">→</span></p>";
// 曜日欄
get_cal +="<table id=\"skejul\"><tr>";
for (i = 0; i < 7; i++) {
if (i == 0) { get_cal +="<td>";
} else if (i == 6) { get_cal +="<td>";
} else { get_cal +="<td>"; }
get_cal +=yostr[i];
get_cal +="</td>";
}
get_cal +="</tr>";
// 日付欄
while (flag < 2) {
get_cal +="<tr>";
for (i = 0; i < 7; i++) {
get_cal +="<td";
if (flag == 0 && yo1 == i) { flag = 1; }
if (flag == 1) {
if (daycnt == today) {
get_cal +=" " + "id=\"tod\""; // 本日の背景設定
}
}
get_cal +=">" + daycnt; }
if (daycnt++ >= maxday[cm]) { flag = 2; } // 最終日
get_cal +="</td>";
}
get_cal +="</tr>";
}
get_cal +="</table>";

704:Name_Not_Found
10/04/19 21:22:34 KtV22HpC
//出力
document.getElementById("calendar").innerHTML = get_cal;
}
document.getElementById("pmon").onclick = SetPrevMonth;
document.getElementById("nmon").onclick = SetNextMonth;
// 前月の表示
function SetPrevMonth() {
if (cm == 1) { cm = 12;
cy--;
 } else { cm--; }
view_cal(cy, cm); }
// 翌月の表示
function SetNextMonth() {
 if (cm == 12) { cm = 1;
cy++;
} else { cm++; }
view_cal(cy, cm); }

705:Name_Not_Found
10/04/19 21:58:12
他にも色々問題はありそうだけど、動かない理由は、
ハンドラを定義した id を持つ要素を view_cal 関数内で
毎回 innerHTML で書き換えているから。

706:Name_Not_Found
10/04/19 22:07:43 KtV22HpC
>>705
ありがとうございます
IDのpmonとnmonを関数の外に出して試してみます


707:Name_Not_Found
10/04/19 22:16:43
>>706
レスに貼られてるコードだと閉じブレース { が一個多い気がする。

SetPrevMonth、SetNextMonth 内で年またぎの判定を直す必要がある。
(getMonth() の返す値は 0 から 11)

そうすると view_cal 関数内で以下の修正が必要。

cy = (!year)?... -> cy = (year === undefined)?...
cm = (!month)?... -> cm = (month === undefined)?...

そうすると最初の呼び出しは view_cal(0, 0) でなく view_cal() にするとか。

あと、閏年は?
まぁ、設計から見直した方が良いよ。

708:Name_Not_Found
10/04/19 22:17:52
閉じブレースは } だった。

709:Name_Not_Found
10/04/19 22:40:50
正直カレンダーみたいな汎用スクリプトは
ググレば腐るほど出てくるよね・・・

710:Name_Not_Found
10/04/19 23:08:13
LightBox的などを開くと「image 1 of 10」って出るじゃないですか
ソースで記述した順に1of10、2of10ってなって1番下層にあるimageが10of10になります
これを1番上のものを10of10、1番下のものを1of10と逆にしたいのですがなにかいい方法ありませんか?
現在は current: "image {current} of {total}", となっています

711:Name_Not_Found
10/04/19 23:09:34
ああ、月末日なんて次月の0日にセットすれば分かるのに
意地でも自力で閏年計算するやつばっかりな
何なんだアレ

712:702
10/04/20 00:00:45
>>707
ありがとうございます
かなり改善されて年またぎのところもうまく動作するようになりました
感動しています
本当にありがとうございます
あとはおっしゃる通りうるう年のところだけの問題となりました
自分の勉強のためにカレンダーを作成してたのですが
ググっても万年に関してはけっこう強引なスクリプトばかり出てきまして…
当月のみのカレンダーなら良いのがいっぱいあったのですが
とにかく感謝しております
ありがとうございました


713:Name_Not_Found
10/04/20 00:19:06
>>711
それは仕様? 実装依存?

714:Name_Not_Found
10/04/20 00:19:51
実装依存でしょうねえ

715:Name_Not_Found
10/04/20 00:41:49
仕様だよ
つーか仕様も読まずに実装依存とか抜かすアホが多すぎるだろ

716:702
10/04/20 00:55:04
>>711
ありがとうございます
そのヒントで閏年も解決できました
非常に助かりました
計算するよりかは多少記述量も減るし楽でした

717:Name_Not_Found
10/04/20 01:51:05
setDate() はインスタンスの保持している年と月の値を使って
その月の初日の(基準日からの経過日数)を取得し、
そこに引数の日を加算し、日付を再計算し直す。
だから負の数でも32以上を与えても問題ない。

気をつける必要があるのは月。
12以上の値は問題ないが負の数については実装依存。
理由についてはECMA Script仕様書のMakeDay関数を参照。
(月) = (引数の月) % 12 のような計算はしていても
それを0以上に正規化するような処理は入っていないので、
カレンダー上で本当に「マイナス1月」を探して失敗することになる。
setMonth(-1) とかやってエラーにならないのは仕様書から外れてる。

718:Name_Not_Found
10/04/20 02:20:30
5.2節によりm modulo 12の結果が0または正であることは保証されてるから
月に負数を与えてもまったく問題ないだろ

719:Name_Not_Found
10/04/20 02:54:28
Dateの使い方を知らずに無駄計算している奴が多すぎ
どこぞの有名解説サイトからしてそうなんだが

720:Name_Not_Found
10/04/20 09:28:51
暇だったら解説してくれんかね?

721:Name_Not_Found
10/04/20 09:58:18
Jqueryで質問させてください。

<div id="newForm"><div class="input text"><input name="text" type="text" /></div></div>

Addボタンを押すと、上記のようなテキストフィールドが追加されます。
これを、下から順に消したいです。


$('#remove').click(function() {
var newForm = $('#newForm');
newForm.remove();
});

このようにしたのですが、下からではなく、上から消されてしまいます。

var newForm = $('#newForm').last();
など、いろいろな部分にlast()を使っても、divが残ったり上手く動かないです。

なにかよい方法はないでしょうか?

722:Name_Not_Found
10/04/20 10:09:49
>>711
おぉ、そんなんできるんだ。と思って試してみたら、
>>> new Date(2010, 4, 0)
Fri Apr 30 2010 00:00:00 GMT+0900 {}

その月の最終日がになってしまった。やり方が違う?

>>715
Dateの仕様読んだ事ないので読みたいんだけど、ECMA-262のことであってる?

723:Name_Not_Found
10/04/20 10:12:29
>>721
id="remove"の要素はどこにあるんだって言うのと、
clickされた要素はthisで取得できるからfunctionの中の1行目がムダなのと、
つっこみどころが満載です。
もうちょっと情報出してください。

724:Name_Not_Found
10/04/20 10:22:08
>>722
合ってる様に見えるけど、どう変?

725:Name_Not_Found
10/04/20 10:23:32
>>722
老婆心ながら、月は0~11ね。
5月0日→4月最終日だから、合ってる様に見える。

726:Name_Not_Found
10/04/20 10:23:55
>次月の0日にセット

727:721
10/04/20 10:32:04
>>723

レスありがとうございます!

失礼しました。 コードはこちらです。
URLリンク(files.uploadr.net)

cakeのコードなのでちょっと分かりづらいかもしれません。

728:Name_Not_Found
10/04/20 10:41:45
>>725
あぁ!そうだった。月は0-11か。
最初
new Date('2010/04/00')
と実行して、Firefoxは上手くいったがChromeが上手くいかず、
「あ、引数の渡し方違うわ」
と直したせいでそのまま4入れてた。すみません。

729:Name_Not_Found
10/04/20 10:44:09
>>727
まさか画像がくるとは思わなかったわw斬新だな
せめてブラウザで見た結果のソースをキャプチャしろよ
というか、コピペして貼り付けなよ。

730:721
10/04/20 10:54:55
>>729

すいません。
ブラウザのソースは長くなって改行もごちゃちゃで、
コピペすると全部入らないのでこうなってしまいました。

ちゃんとブラウザの結果をわかりやすく表示するように次回から考えたいと思います。


いろいろいじっていると、 removeするエレメントがclassじゃなくてidになっていたのが原因でした。
とりあえずは上手くいきました!

ありがとうございました!


$('#remove').click(function() {
var newForm = $('.newForm').last();
newForm.remove();
});

731:Name_Not_Found
10/04/20 12:22:22
Jqueryで質問させてください。

<div class="container">
<div class="form"><input type=text name="name"></div>
<div class="form"><input type=text name="name"></div>
<div class="form"><input type=text name="name"></div>
</div>

上記のformクラスを下から消していくには、

$('.form').last().remove();

といったコードでできますが、

formクラスを全部消さずに、最後の一つだけ残すような設定はできるでしょうか?

例えば、下記のような状態になるとremoveできなくなるような。

<div class="container">
<div class="form"><input type=text name="name"></div>
</div>

732:Name_Not_Found
10/04/20 12:49:00
>>731
if ($('.form').children().length > 1) $('.form').last().remove();

733:Name_Not_Found
10/04/20 13:02:25
まずJqueryって書くのやめろ

734:731
10/04/20 13:06:05
>>732

ありがとうございます!

>>733

申し訳ないっす!

735:Name_Not_Found
10/04/21 02:30:28
div.container > div.form:not(:last-of-type)

736:Name_Not_Found
10/04/21 09:16:01
>>735
それIEで動かなくね?

737:Name_Not_Found
10/04/21 09:46:57
jQueryなのに?

732みたいなのをよく見るけど
$('.form')をquerySelectorないしgetElementsByClassNameに置き換えてみろ
何回同じメソッドを走らせてんだよ
ましてIE7を気にするのならそのたびにdocumentから探索し直してんだぜ

738:Name_Not_Found
10/04/21 10:55:49
大規模サイトや情報量(≒ノード数)が多い文書なんかで >>732 みたいなことやられると、IEじゃなくてもモッサリするよね

jQuery使うのもいいけど、最低限、計算量のことぐらい考えてほしい

739:736
10/04/21 11:21:10
>>737
CSS3使ったSelectorsはIEだと動かなかったはず。実際手元のIE6だと動いてない。
まぁでもIEは捨ててもいいと思うけど。

varで保持せずに毎回$('div.form')とかで何度も要素を取得するコードはウチの会社でもよく見るなぁ。

740:Name_Not_Found
10/04/21 11:51:19 9wyYmVIx
でもローカル変数で保持すると、クロージャーでメモリリークする可能性が高くなる。
上で出てたけど、jQueryは<script type="application/jquery">で別エンジンにしてほしいわ。

741:Name_Not_Found
10/04/21 13:19:02
先行実装使うなよ

742:Name_Not_Found
10/04/21 13:42:20
Selectors3はとっくに勧告候補だぞ
動作確認してないがjQuery 1.4のソースコードを眺めてみたら
:nth-childはサポートしているが:nth-of-typeはサポートしていないっぽい
jQueryのセレクタエンジンはいろいろ中途半端だから信頼できん

743:Name_Not_Found
10/04/21 13:48:57
jQuery自体がセレクタを独自拡張してるからなあ

744:Name_Not_Found
10/04/21 14:35:34
Lightbox 2.04にて拡大後の画像をクリックでも閉じるようにする
方法を教えてください。

745:Name_Not_Found
10/04/21 14:40:35
Lightbox(笑)

746:Name_Not_Found
10/04/21 14:56:26
Lightboxの機能くらい自分で作れ

747:Name_Not_Found
10/04/21 17:58:41
uupaa.js使おうよ

748:Name_Not_Found
10/04/21 20:12:45
uupaaはハックの塊なのと設計が汚いのとで常用するのが怖い

749:Name_Not_Found
10/04/21 20:30:25
>>748
意味が判らん。
プログラムはハックの塊でしょ、フツーに。

750:Name_Not_Found
10/04/21 20:38:07
ふーん

751:Name_Not_Found
10/04/21 20:40:55
美しいプログラムはハックなどしない

752:Name_Not_Found
10/04/21 20:44:11
だがファックはする

753:Name_Not_Found
10/04/21 21:16:52
>>751
ちゃうちゃう。
プログラマがプログラムをハックする。

754:Name_Not_Found
10/04/21 21:18:09
意味わからん

755:Name_Not_Found
10/04/21 21:22:56
のでタップした

756:Name_Not_Found
10/04/21 22:41:13
>>740
IEのメモリリークなら3年ほど前の自動更新で修正されたけど。
可能性ってどういう意味?
未修正のリークパターンがあるなら教えてほしい

757:Name_Not_Found
10/04/21 22:56:18
クロージャで値への参照が残ってしまって一度作ったjQueryのオブジェクトが
ずっと消えずに残ってしまうって話じゃない?
ブラウザのバグの話ではなく、コード側の不具合のせいで起きるリーク。
Cでmallocしたのにfreeを忘れる系の。

758:Name_Not_Found
10/04/21 22:57:27
>>756
WebKitでも去年同じ問題が指摘されて修正されたよ
GeckoもWebKitもうまいハックで回避しているけど
GC機構に由来する何気に根本的な問題
IE7の修正は中途半端でIE8なら大丈夫

759:Name_Not_Found
10/04/21 23:00:54
JavaScriptのReferenceにもクロージャは可能な限り使うなって書いてあるな

760:Name_Not_Found
10/04/22 00:10:09
javascriptでレスポンスの文字列を取得しようと思い
iframeをターゲット指定し、POSTしたレスポンスを
判定しようと考えたのだけどうまくいかない
誰か良いやりかたしりませんか?

■実現したいこと
サーバが落ちてる時などに返却される文字列
をブラウザ上に表示させず、レスポンス内容を見て
原因を表示したい
■考えたフロー
①iframeに対してターゲット指定を行う
②javascriptから指定のフォームデータをPOSTでサブミット
③ターゲット指定しているiframeのオブジェクトを生成し
 readyStateを判定 complet ならばtrue falseなら 再帰的にもう一度呼び出す
④返却されたレスポンスに含まれる特定タグ(body等)オブジェクトを取得する。
 ※期待した戻り値は、指定したタグの要素数分の長さを持つオブジェクト配列
  結果は、.lengthが0で何も取得できなかった


761:Name_Not_Found
10/04/22 00:19:26
XMLHttpRequestというじゃだめなのか?
正常表示できたときには'iframe'で表示させたいってのなら駄目だが、divとかの中に結果突っ込むなら出来るぞ。

762:Name_Not_Found
10/04/22 00:49:41
エスパーすると外部鯖から取得したいんだと思う

763:Name_Not_Found
10/04/22 01:39:06
Dojo Toolkitについて勉強したいのですが
おすすめの本とかサイトあれば教えてください

764:Name_Not_Found
10/04/22 01:59:12
google

765:Name_Not_Found
10/04/22 03:27:03 YrKUvYka
>>762
便乗質問です。
<script type=“text/javascript“ src=“API“></script>
って書いて別鯖のAPIから情報取り出すとき、
script要素のロード完了ってわかるものですかね?

766:Name_Not_Found
10/04/22 04:50:15
script要素のロードが完了するまで
レンダリングも何もかも止まるんだが何か。

767:Name_Not_Found
10/04/22 16:32:30 gqy/b/W5
>>766
つまり、A.jsに
var n = 1;

って書いてあったとして、B.jsで
document.write("<script type='text/javascript' src=A.js''></script>");

って書いたら、何も考えずにnは定義済みと考えて良いってことですか?

768:Name_Not_Found
10/04/22 17:11:46 iHFlyciF
>>767
自分で試せや

769:Name_Not_Found
10/04/22 18:01:40 gqy/b/W5
>>768
うん試してます。
で、一見問題ないようなんだけど、もしかしてロードに時間が
かかったりすると問題あるのかなーと。

あ、>>766のは例えば、ブログのページを開いてから暫く動かなく
なるのが多いのも、広告やブログパーツの為に書かれた<script>待ち、
ってこと、かな?

770:Name_Not_Found
10/04/22 20:41:02
そういうこと
だからhead内に外部スクリプトを5個も6個も並べるとパフォーマンス最悪

771:Name_Not_Found
10/04/22 22:46:22
質問です。厳密にはHTMLの問題ですが、JavaScriptでの取得の問題なの
でここでお聞きします。optionを使ったコンボボックスでoption属性に
value値は必須なのでしょうか。よろしくお願いします。

772:Name_Not_Found
10/04/22 23:07:49
はい、次

773:Name_Not_Found
10/04/22 23:30:08
optionを使ったコンボボックスでoption属性に
value値は必須なのでしょうか。よろしくお願いします。

774:Name_Not_Found
10/04/22 23:47:46 1xOh/vLE
>>773
お前はMySQLのデータをSQL文で取得するけどJAVAで実装してるからと
JAVAのスレで質問してるような物だ
つまりスレ違い

つーか、そんくらいの事試せば直ぐ分かるだろうに…
ここに書く暇があるなら試す時間あるだろ

775:Name_Not_Found
10/04/22 23:58:55
殿方に「お前」って呼ばれた///

776:Name_Not_Found
10/04/23 00:14:11
>>773
省略すると<option>~</option>の間の文字列がvalueとして採用されるはず。
value, selectedIndexともに正常動作する。
submitしても正しく値は送られる。

>>774
なくても表示は全く問題なくできることは明らかでも、
選択された要素をJavaScriptで取得しようとしたときに
(規格として)何が起こることになっているのか、という話が聞きたいんでしょ?
的外れすぎるし比喩にすらなってない。

777:Name_Not_Found
10/04/23 00:15:03
調べればわかることは答えない

778:Name_Not_Found
10/04/23 01:19:39
>>776
正しいが現実的には「IE6でJSが正常動作しなくて良いなら」という条件がつく。

779:Name_Not_Found
10/04/23 01:41:11
IE6なんて都市伝説

780:Name_Not_Found
10/04/23 02:00:45
都市伝説と職場で毎日にらめっこしてる俺の立場は

781:Name_Not_Found
10/04/23 02:12:01
お前が都市伝説

782:Name_Not_Found
10/04/23 02:17:47
オライリーたんのリファレンス買おうと思ったら、
間違って絵がいっぱい書いてある方を買ってしまった。
おっぱい。

783:Name_Not_Found
10/04/23 03:58:01 RylGCLVm
>>770
ありがとう。
遅くなってすまんです。
やっと残業終わって帰ってきた~

784:仕様書無しさん
10/04/23 10:11:29
rec(document.images["gazou"],"click",changes);

function changes(e)
{
var event=e?e:window.event;
var target=event.target?event.target:event.srcElement;
target.src=target.src="c.jpg"?"c.jpg":"pics.png";
}

<img name="gazou" src="aaa" />
ってやって画像をクリックするたびに 1、2、1、2... と交互に出したいのですが
1、2で止まってしまいます 2のあと画像をクリックしても1にならず
どうやるかおしえて!クソ

785:仕様書無しさん
10/04/23 10:12:56
target.src=target.src="c.jpg"?"pics.png":"c.jpg";
だった解決法方法教えてクソ!

786:Name_Not_Found
10/04/23 10:15:26
初歩的ミスだろバーカ!

787:仕様書無しさん
10/04/23 10:17:33
はやくおしえろクソ
どうやってやるか教えてクソ

788:Name_Not_Found
10/04/23 10:18:44
>>787
>>786

789:仕様書無しさん
10/04/23 10:22:55
今マイクロソフトのHPをjavascriptで作成してるんです
だから早く教えてください

790:Name_Not_Found
10/04/23 10:24:33
イク!イクぅ!!

791:Name_Not_Found
10/04/23 10:27:57
ビクン、ビクン。

イク!イクっ!イクぅぅぅう!

792:仕様書無しさん
10/04/23 10:35:04
function changes(e){ var imgs=document.images["sss"]; imgs.src=imgs.src="pics.png"?"c.jpg":"pics.png";}
<img name="sss" src="pics.png" onclick="javascript:changes()">
画像1回しか入れ替わらないんです
クリックするたびに交互に入れ替わるようにしたいんです教えてください。

793:Name_Not_Found
10/04/23 10:44:39
挿れたらダメっ!イクっ!イクぅ!

794:仕様書無しさん
10/04/23 10:52:00
自己解決できた
クソガリどもはjavascriptヤッテしね
頭わいてるなここのごみすれ

795:Name_Not_Found
10/04/23 10:54:24
ASPの話ですが
C#の関数をjavaScriptのマウスイベントで呼び出すのって絶対無理?


796:Name_Not_Found
10/04/23 12:10:40
二行で矛盾できるとはやるな

797:Name_Not_Found
10/04/23 13:05:24
>>794
解決できたらその方法を示そうな。

798:Name_Not_Found
10/04/23 14:35:17
恥ずかしくて言えたもんじゃないだろ。


== を使うところで = を使ってるだけなんだから。
慣れてないなら、素直に if 文使えばいいのにな。

799:Name_Not_Found
10/04/23 15:30:43
>>794
2chなんてアホばっかりなんだからそれを理解して利用しなよ

800:Name_Not_Found
10/04/24 01:14:45
2ch で質問してる奴にそんなこと言ってどうすんだ。

801:Name_Not_Found
10/04/24 01:45:45
みんなまとめて爆発しろということ

802:Name_Not_Found
10/04/24 02:08:11
IE9でjavascriptのgetter、setterをサポートするかどうかわかる方いますか?

803:Name_Not_Found
10/04/24 05:42:36
はい

804:Name_Not_Found
10/04/24 22:23:27 qIAH5s2f
見える!私には見えるぞ!

805:Name_Not_Found
10/04/24 22:28:27
ど、どこですか?それは!

806:Name_Not_Found
10/04/24 22:36:19
ニュータイプの方ですか?

まあIE9の普及なんて当分先の話だろ

IE9、Windows XPでは利用できず
URLリンク(www.itmedia.co.jp)
>IE9はWindows 7とVistaにしかない技術を活用するため、Windows XPでは動作しないという。

807:Name_Not_Found
10/04/24 23:23:36
クライアントサイドでなくてコアの機能なんだから、IE の場合、JScript エンジン次第でしょ。
IE9 入れなくても WSH とかをバージョンアップすれば JScript エンジンも新しくなったはずだし
次世代 JScript エンジンの機能は XP 使いにも関係してくると思う今日この頃。

808:仕様書無しさん
10/04/25 00:40:42
td=setInterval(bgcolor(255),100);

function bgcolor(color)
{
var hex=color.toString(16);
if(hex.length<2)
{
hex="0"+hex;
}
var colorstring="#FF"+hex+"FF";
var blocks=document.getElementById("colo");
blocks.style.backgroundColor=colorstring;
color-=3;
}

setIntervarlでbgcolor(255)の255を引数としいてbgcolorに渡してるんだけど
デクリメントされなくて背景色がかわらない
引数を保存しとくことはできないの?staticみたいに


809:Name_Not_Found
10/04/25 00:49:54
setIntervalの使い方がおかしい。
引数には関数オブジェクトを渡す。

> setInterval(bgcolor(255),100);

これだと、bgcolor(255) を実行して評価し、戻り値undefinedを
100ms後に実行するという意味になる。

> var bgcolor = function() { ... };
> setInterval(bgcolor,100);

こうすれば bgcolor 関数が100ms後に実行される。
255をグローバル変数なり何なりに保存しておき、
呼ぶたびにデクリメントしてやればいい。

810:Name_Not_Found
10/04/25 01:00:23
>>808
setInterval(function() { bgcolor(255); }, 100);

とするか

setInterval("bgcolor(255)", 100);

でいいんじゃねーの

811:Name_Not_Found
10/04/25 01:06:37
デクリメントの意味も違うしな。
ほんとにプログラマ?

812:Name_Not_Found
10/04/25 01:51:10
>>810
毎回定数を与えているんだから、ちゃんと動いても色は変わらないと思う

813:Name_Not_Found
10/04/25 02:07:24
Javascriptの開発するときどういう環境でやるのが効率いいですか?
ちなみに今は秀丸&Firebug使ってます


814:Name_Not_Found
10/04/25 02:33:14
慣れた環境が一番だよ

815:Name_Not_Found
10/04/25 02:56:37
>>808
(function(color) {
var hex = color.toString(16);
if (hex.length < 2) hex = "0" + hex;
var colorString = "#FF" + hex + "FF";
var elem = document.getElementById('colo');
elem.style.backgroundColor = colorString;
var self = arguments.callee;
if (color >= 0) setTimeout(function() { self(color - 3) }, 100);
})(255);

816:Name_Not_Found
10/04/25 03:23:59
>>815
引数が 3 で割れねえとエラーになんねが?

817:Name_Not_Found
10/04/25 07:15:17
以下のようなコードの@はどういう意味でしょうか?

@if(hoge == 1)
 /* ここにコードがあります */
@end

818:Name_Not_Found
10/04/25 07:53:22
URLリンク(msdn.microsoft.com)

819:Name_Not_Found
10/04/25 09:14:59
>>818
ありがとうございます。
if文と@if文の違いがわかりません。

820:Name_Not_Found
10/04/25 09:29:50
>>819
JScriptとJavaScriptは別物

821:Name_Not_Found
10/04/25 09:38:49
ありがとうございました。
板違いだった事がわかり助かりました。
失礼しました。

822:仕様書無しさん
10/04/25 10:10:47
color=255;
td=setInterval("bgcolor()",100);

function bgcolor()
{
var hex=color.toString(16);
if(hex.length<2)
{
hex="0"+hex;
}
var colorstring="#FF"+hex+"FF";
var blocks=document.getElementById("colo");
blocks.style.backgroundColor=colorstring;
color-=3;
}

引き数無しならできた
無名関数わたさなくてもできたぞ
col=255;
bgcolor(col)みたいに引き数わたすやりかたおしえて

823:Name_Not_Found
10/04/25 10:12:50
よしきたまかせろ

824:仕様書無しさん
10/04/25 10:19:48
col=255;
"bgcolor("+col+")"
ってやってもわたせねえ
どうやるのか教えて

825:Name_Not_Found
10/04/25 10:53:24
>>822
>>815

826:仕様書無しさん
10/04/25 11:28:02
setIntervalでのやり方教えて

827:Name_Not_Found
10/04/25 14:11:46
var intervalId = setInterval(function () {
var color = 255;
var elem = document.getElementById("colo");
return function() {
if (color < 0) color = 0;
var hex = color.toString(16);
if (hex.length < 2) hex = "0" + hex;
var colorString = "#FF" + hex + "FF";
elem.style.backgroundColor = colorString;
if (color === 0) clearTimeout(intervalId);
color -= 3;
};
}(), 100);

828:Name_Not_Found
10/04/25 14:22:22
clearTimeout じゃない clearInterval

829:仕様書無しさん
10/04/25 14:45:51
誰もわかんないんじゃね?
ここまで答えられてないのは未知の世界

830:Name_Not_Found
10/04/25 15:23:56
827で問題ねーだろ

831:Name_Not_Found
10/04/25 18:38:20
ここって中学生ばっかり?

832:Name_Not_Found
10/04/25 19:05:12
オタクは煽れば答えたがる

833:Name_Not_Found
10/04/25 19:35:09 NSAfYaU0
前スレから中途になってたけど、テンプレ>>2改編はやっぱ必要だな。
「煽っても無駄よ」ってのプラス、
「〇〇書いてください、じゃない。お前が書くんだ。」
って感じのを交えて。

834:Name_Not_Found
10/04/25 23:48:47
煽るような奴が真面目にテンプレ読m

835:Name_Not_Found
10/04/25 23:59:34
お前らどんなライブラリ使ってる?

836:Name_Not_Found
10/04/26 00:06:36
mast.urbati.on.js

837:Name_Not_Found
10/04/26 00:14:37
>>836
kswk

838:Name_Not_Found
10/04/26 12:04:11
>>833
テンプレ>>2一式の差し替え案として出してほしい

839:833
10/04/26 14:50:00 MZgIU5zM
>>838
あー。俺、何スレか前に>>2の議論になったときに一案出してんだわ。
ちょっとログ漁ってくる。

何スレ前だか覚えてる人いる?

840:Name_Not_Found
10/04/26 17:50:31
前スレじゃなくて?

>>24

841:Name_Not_Found
10/04/26 19:15:46
>>840
そうそうそれそれ。その初期案出したんだが、前スレだっけ?
検索下手だな俺…。まあいいや。>>24のに継ぎ足してみる。
あとメル欄にマーキングしてみた。


【質問を書く上で】

1)「どんな意図で/何を/どう」操作した場合、「どのように」動作させたいのかを
 一般的な言葉や用語で簡潔に説明してください。
 ただ「動きません」ではわかりません。脳内用語・オレ用語は混乱のもと。

2)自力で調べたこと/試したことを明記のこと。
 OS、ブラウザ+バージョン、(あれば)エラーの行と内容を必ず書きましょう。
 エラーの行と内容を見るのはIE8、Firefox、SafariのJavaScriptコンソールで。

3)質問に関するソースコードを出来る限り貼ってください。
 余分が少なく、コピペだけで動作やエラー再現のできるものが理想です。
 1レスで入らないような長いソースの場合はアップロードする等工夫を。

4)閲覧者の迷惑になる質問は回答されません。
 別窓を多数開く、閉じる/戻る/クリックを妨害、画面占有、など。
 「分かんねえの?」と煽っても無駄です。

5)「初心者なので」「初心者ですみません」とか書いても好感は得られません。
 スレのみんなは助言はできるけど、あなたのJavaScriptを書くのはあなたです。

842:Name_Not_Found
10/04/26 19:56:37
> あなたのJavaScriptを書くのはあなたです。
くどいな
最初の「あなたの」はいらないと思う

843:Name_Not_Found
10/04/26 20:21:08
スレタイ案
ECMAScript(JavaScript/JScript)の質問用スレッドXX

844:Name_Not_Found
10/04/26 20:30:45
>>843
ECMAScriptに限るなよ。

845:Name_Not_Found
10/04/26 20:48:56
>>841
スレを改善したいからテンプレを改善するんでしょ?(自己満足じゃなくて)
だったらもう少しシンプルにしたほうがいいと思うけどなあ。

結局、読んでくれる人が増えないことには状況は改善されないよ。

シンプルにするならこんな感じかなあ。

846:845
10/04/26 20:50:55
【質問を書く上で】

1) 動作環境や現状を余さず書きましょう

 ・OS、ブラウザ、利用しているライブラリなど (参考:動作環境の書き方)

 ・エラーの行と内容、再現方法 (参考:エラー情報を確認する方法)

 ・自分で調べたことや試したこと

2) 質問に関するソースコードを貼りましょう

 ・ソースが長くなる場合は適当な工夫を (アップロードやインデントなど)

 ・なるべくエラーの発生する箇所のみを貼りましょう (関数や一連の処理単位で)

3) その他の注意事項

 ・閲覧の妨げとなるスクリプトは、ここでは回答されません

 ・問題の解決を他人に任せるのではなく、なるべく自分で解決する姿勢を保ちましょう

847:845
10/04/26 20:51:53
上、ちょっと改行は調整したほうが良さそう;
以下は【質問を書く上で】の次のレスに。

【動作環境の書き方】
適当な例を示す。ブラウザの略称など。

【エラー情報を確認する方法】
コンソールへのアクセス方法、簡単な操作方法

ほかにも何かあったら追加。。。

848:Name_Not_Found
10/04/26 21:33:57
Firefox3.6 上の Greasemonkey でスクリプトを作成しようとしています
OSは linux, windows, MacOS など、Firefox が動くOSすべてを想定しています

ページ上のJSからは見えず、PC間で異なる値であり、
かつ遷移・ブラウザの再起動などで変化しない値を取得する必要が出てきました
なにかいいものはないでしょうか
できればブラウザ内で完結でき、配布したときにユーザーが弄る必要のないものがよいのですが。。。

849:Name_Not_Found
10/04/26 21:35:14
何その糞トラッキングクッキー

850:Name_Not_Found
10/04/26 21:50:37
>>846
それでいいと思う
あと追加するとしたら【質問の見本】みたいなものかな

851:Name_Not_Found
10/04/26 22:00:20
>>846
シンプルでいいね。

>>848
flashでできなかったっけ・。


852:Name_Not_Found
10/04/26 23:00:07 MZgIU5zM
>>846
文才に嫉妬。
ただシンプルになると、例えば

> 1) 動作環境や現状を余さず書きましょう

って書いてもちゃんと理解できない人がいるのも事実。
そもそも、何がわからないのかがわからない状態で質問している
ケースも多いので。

853:Name_Not_Found
10/04/26 23:35:00
>>852
>(参考:動作環境の書き方)
とあるのでそちらを参照すれば理解できるのでは?

854:845
10/04/26 23:45:15
>>852
そうだなあ。。
やっぱり>>850の意見どおり、【質問の見本】を用意するべきかも。

根本的な問題として、質問者の意識を少し変えてやる必要がありそう。
=>修正案。冒頭( 【質問を書く上で】の真下 )に次の文句を貼り付ける。

より良い質問は、あなたの問題が解決される可能性を高めるでしょう。

855:Name_Not_Found
10/04/27 00:18:23
このスレも来年には10周年か

856:Name_Not_Found
10/04/27 00:36:30 sSRUi+Jx
関数型言語 のプログラミングを学びたいのですが
実はJavascriptは関数型言語なんだと聞きました。

関数型言語らしいプログラミングされている人いますか?

857:Name_Not_Found
10/04/27 00:55:47
非同期でやってれば嫌でもそれっぽくなる

858:Name_Not_Found
10/04/27 03:36:21
F#でもやってください

859:Name_Not_Found
10/04/27 09:32:50
>>856
JavaScriptの勉強をいくらしたところで関数型を学んだという
雰囲気にはならないと思うな。素直にHaskellでも勉強すれば?

860:Name_Not_Found
10/04/27 09:35:13
>>852-854
参考のレスと分けたり質問例を入れたりするのはいいかも
知れないけど、やっぱり具体例一式がまずないと判断し
づらいと思う。個人的には1レスに詰めてある方が好み。
ただでさえテンプレのレス数が多いと思っているので。

861:845
10/04/27 12:41:08
>>860
テンプレ改善の目的をはっきりさせるべきだと思う。

俺は読んでくれる人を増やしたいという思いの元で改善したんだけどなー。。
つまりは、実現できるかはともかく「質問レベルの向上」が目標。

単純に今のテンプレが「読みにくいから」とかいう理由なら俺は放棄。

862:Name_Not_Found
10/04/27 12:56:12
質問レベルの向上をめざすの、賛成でーす。その場合、
テンプレはどういう構造だといいのか? >>1 から全部見直し?

あと、2ちゃんのスレで質問レベルの向上って生半可なことでは
進まないと思っている。昔から「分からんから聞いちゃえ」な
奴は多数派だしこれからも絶えることはない。そういう奴が >>1
を見てちょっとは考えを修正するかどうか? または、そういう奴
の質問に対して「お前は >>1 に合致してない、却下」とかキツく
言うことで対応?現バージョンはその雰囲気が強いかも知れない。

863:845
10/04/27 13:08:55
>>862
少しでも読んでくれる人が増えるならそれで十分じゃないか。
より良い質問を目指す人には、補足を提供してやればいいんだし。

全員の質問レベルを向上させることは確実に不可能って分かってることでしょ?

864:Name_Not_Found
10/04/27 14:58:15
では、読んでくれる人を増やすにはどうするのがいいの?
テンプレを短く読みやすくする? 大多数の人は >>1 しか
読まない(ないし、>>1 すら読まない)。それをどうやって
>>2-7 まで見るように誘導するのがいいのかな? no idea...

865:Name_Not_Found
10/04/27 16:15:11
前スレでも言った気がするけど、今のテンプレは黒くてすぐに進んで読みたいと思えるものではないから、
読みやす”そうに”見えたら読む人は増えると思うよ。

>>2-7を読んでいないと思われる書き込みはスルーされます。
とか?

866:Name_Not_Found
10/04/27 16:26:02
じゃあ、テンプレの主要なものについて、読みやすく見える
本体と「参照」を分けて、テンプレ全体では10レスかもうちょっと
になるけどそれでいいことにする? あと、現在の >>1 はここで
議論していることとかぶっているけど、直す? いっそ

>>2-7を読んでいないと思われる書き込みはスルーされます。

だけにするとか?


867:Name_Not_Found
10/04/27 17:49:11
>>1 の差し替え案。
━━以下をクリアしてない人はスルーされます━━━
 一、テンプレ>>2-10に目を通している!
 一、正しい(validな)HTMLが書ける!
 一、JavaScriptはJavaとは別物だと知っている!
 一、自分でJavaScriptコードを書く気がある!
 一、ユーザに迷惑となるスクリプトは書かない!
 一、質問を分かる日本語で説明できる!
 一、トラブルを再現する最小限のサンプルを貼れる!
━━━━━━━━━━━━━━
自力で書く気がない人は他スレへ(テンプレ参照)。
前スレ スレリンク(hp板)
[必読]過去スレ全集 URLリンク(www2.atpages.jp)
      (閲覧のみ) URLリンク(usamimi.info)
      (閲覧のみ) URLリンク(wing2.jp)
[必読]ガイド URLリンク(developer.mozilla.org)
(GuideをReferenceに→Netscape版言語仕様。多くの実装が準拠:ECMA-262.ed3)
FAQ・注意・過去ログ・仕様書・関連資料・関連スレ>>1-10

868:Name_Not_Found
10/04/27 18:28:41
>正しい(validな)HTMLが書ける!
アプリケーション開発視点でいえばhtmlはUIに過ぎないしこの文言はいらない
特に最近はそういう傾向が強く
htmlをよく知らない他言語でのGUI開発経験者がスレに進出してきてることもあるはずだ
そういう層はIDEのコンポーネント配置で適当なhtml部品を選択してやるなんてのは当たり前になる
この文言の代わりにどのブラウザで動かないのかアプリケーションの対象ブラウザを書かせたほうがいい

869:Name_Not_Found
10/04/27 18:38:56
それは反対だな。UIとしてのみのHTMLだろうが、validなHTML
そのものの知識は持ってないとDOMで操作なんてできないと思うが。
別に普段自分で書かなくてもいいけど、validなものを「書ける」能力
は求めた方がいいと思う。

870:Name_Not_Found
10/04/27 18:57:32
validなHTMLを求めるなら
きちんとそっちへのテンプレも用意しろよ

871:Name_Not_Found
10/04/27 19:06:16
参考サイトに何か載せるということ? ここWeb制作板だし、別に
いらない気もするけど、載せるとしたらどこがいいの? W3C?

872:Name_Not_Found
10/04/27 19:15:16
validなhtmlが書けないと質問しちゃいけないってそりゃあんまりだろwwwww

873:845
10/04/27 19:26:10
この調子だと次のスレまでまたがりそうだね。
>>867なんかももし変更点があるようならメル欄利用してタグ付けしたほうがいいよ。

>>872
特別>>1に載せる必要はなさそうだね。

JavaScriptは普通ブラウザに実装されたECMAScriptのことを指すから>>869が言うように、
基本的にはDOMやCSSを切り離しては考えられない。

ただ、先の文言を追加してしまうと純粋なECMAScriptに関する質問の場合に差支えが生じてしまう。

たとえば変数のスコープ、それからクロージャ。現状としてこの類の質問を受け付けている以上は、
HTMLについての理解を特別>>1で求める必要はなさそう。

874:Name_Not_Found
10/04/27 19:51:52
単にこのスレ内でのHTML談議を排除するためだろ
HTMLに関係ない質問でとやかく言うことはないし、別に外す必要なくね

875:Name_Not_Found
10/04/27 20:02:59
俺もいらんと思うな。
特に>>1は極力削りたい派。

--

━━━━━━━━━━━━━━
>>2-10には必ず目を通そう!
なるべく自分で解決しよう!
迷惑スクリプトは書かない!
━━━━━━━━━━━━━━
ガイド URLリンク(developer.mozilla.org)
前スレ スレリンク(hp板)
過去スレ全集 URLリンク(www2.atpages.jp)

--

これだけでもいいかも、とか思う。
あと、メ欄にタグ付けしてみた。

876:Name_Not_Found
10/04/27 20:05:51
>>874
それならWeb開発の質問してる他言語のスレみたいに
○○(この場合JavaScript)とは関係ないHTML勉強するかWeb制作スレでも池
ていうレス返せばいいんじゃね

877:Name_Not_Found
10/04/27 21:16:04 2l5fEPHR
>>873
IEの変態仕様はどうする?(IE6~8)

878:Name_Not_Found
10/04/27 21:32:48
>>848
MACアドレスは?

879:Name_Not_Found
10/04/27 21:37:37
HTMLがvalidでないものにDOMアクセスして泥沼とかな奴には
「HTMLも書けないのにDOMだとか100年早いんだヨ!」と言いたい
んだけどな。そういう奴に限って「自分のHTMLは表示される
から無問題」とか信じてたりする。

880:845
10/04/27 21:38:37
>>877
MSDNへのリンクは必須だろうけど、主要な問題はリスト化してもいいかもしれない。
TABLE、それから連想配列の最後のコンマとか。。

FAQとかも、カテゴリごとに分けるべきかも。
【FAQ:DOM】、【FAQ:IE】

>>6については、h抜きは必要ないと思う。

881:Name_Not_Found
10/04/27 23:13:04
デバッグ手法についてはいいの?

882:Name_Not_Found
10/04/28 04:44:28 t6cJasrz
>>879
自分も5~6年前はストリクト教の信者だったので気持ちは
わからなくもないけど、JSスレでそこまでアレするのもキモイ気がする。

つか、これに限らず、この話題って突き詰めていくと
>>2-10に初級JS講座が出来ちゃうような気が…

883:845
10/04/28 07:32:47
>>881-882
今回はあくまで「手入れ」でしょ?一から作り直す訳じゃないし。
次の項目を整理するくらいでいいんじゃないかな。

>>1,質問をする上で => シンプルに
FAQ => カテゴリ分け、数項追加(>>877特にIE?)

必要であれば補足事項ということで、次の内容を用意するかあるいは外部サイトを紹介するか。

エラー情報を確認する方法 、その他。

884:Name_Not_Found
10/04/28 08:35:55
やっぱり全面見直しは大変すぐるから>>883 でいいかなと。
追加する項目は文案書いてみほしい。

>>882 Strictである必要は全くないけどinvalidは絶対まずいよ。

885:Name_Not_Found
10/04/28 12:06:54 S6AnrVkK
正規表現の質問も平気ですか?

「xxxx=任意&yyyyyyy=任意&zzzzzz=任意」
と言う文字列から任意の値を各々取るにはどうしたらいいでしょうか?
xyzの文字は各々固定で、任意には何文字入るかわかりません


886:Name_Not_Found
10/04/28 12:12:03
>>885
splitのほうがいいよ

887:Name_Not_Found
10/04/28 12:23:27 S6AnrVkK
>>886
そうします、レス㌧


888:Name_Not_Found
10/04/28 12:24:51
'xxxx=任意&yyyyyyy=任意&zzzzzz=任意'.match(/[^&=]+(?=&|$)/g)

889:Name_Not_Found
10/04/28 13:47:12 S6AnrVkK
>>888
こんな簡単に出来るとは…
Sliceで実装してみた後だけど勉強になります!
ありがとうございます!



890:Name_Not_Found
10/04/28 14:58:00
flashを使ったmp3プレイヤーはいっぱいあるのですが、iPhoneユーザーを考えると、
JavaScriptだけを使ったmp3プレイヤーが必要だと考えています。

URLリンク(cssrevolt.com)

これは見つけたのですが、正直デザインがいまいちで…
他になんかあるでしょうか?

891:Name_Not_Found
10/04/28 15:05:47
━━本スレに書く事を許される者は以下の通り━━━
 一、正しい(validな)HTMLとは何か知っており書ける者
 一、JavaScriptはJavaとは別物であると知っている者
 一、自ら学んでJavaScriptコードを書く意思を持つ者
 一、ユーザに迷惑となるスクリプトを書かない者
 一、質問を分かる日本語できちんと説明できる者
 一、トラブルを再現する最小限のサンプルを貼れる者
 一、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者
━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。

892:Name_Not_Found
10/04/28 15:56:49
スレリンク(tech板)

893:Name_Not_Found
10/04/29 00:24:29 pnW2DOGH
>>890
iphoneサファリとかクロームライトって、embedでmp3再生できんの?

894:Name_Not_Found
10/04/29 00:30:45
>>893
>>890 のはiPhone/iPadでは聴けないと思う。
html5のaudioオブジェクトならiPadではインライン再生できるけど、iPhoneだと次のOS待ちのはず。

895:Name_Not_Found
10/04/29 07:26:32
先生質問です。
jQueryでリセットボタンにidをしこんですべてのチェックボックスをはずす
スクリプトをみつけたんですが、セレクトボックスも同時にリセットするように
したいです。どのように書けばいいのでしょうか?

(リセットボタンにidをつけなければ通常通りリセットされるのですがidをつけると
何故か動作しなくなってしまいました)

元スクリプト
$("input#alluncheck").click(function(){
var chkb = $(this).children("input[type=checkbox]");
$("table td input[type=checkbox]").attr('checked', false);
$("table td input[type=checkbox]").parent().removeClass("active");
return false;
});

html
<input type="reset" value="リセット" id="alluncheck">

ご教授くださいm(_ _)m

896:Name_Not_Found
10/04/29 08:01:13
自己解決しますた

897:Name_Not_Found
10/04/29 13:13:49 mChA73Va
>>894
>html5

おー、その手があったか。

898:Name_Not_Found
10/04/29 14:38:16
>>895
もう、答えは出てるじゃないか

899:Name_Not_Found
10/04/30 08:43:38
iPhoneのSafariでタッチを検出するイベントはtouchstart,touchmove,touchend,touchcancelなどがありますが、
これらを意図的に呼ぶことはできませんか?(elm.touchstart();などで直接よぶのではなく)

var event_func=function(e){
alert(e.touch[0].clientX);
}
document.body.addEventListner("touchstart", event_func, false);
myEventCall("touchstart", 123, 45);

myEventCallで画面上の(123, 45)をタッチし始めたことにするような実装がしたいのですが、
createEventやらinitEventやらの使い方がよくわからなくて困っています。

900:Name_Not_Found
10/04/30 12:11:02
そうですか。

901:Name_Not_Found
10/04/30 23:16:34
touchstart();

902:Name_Not_Found
10/05/01 00:44:29
お触りは禁止です!

903:Name_Not_Found
10/05/01 12:53:50
質問です。要素にクリックとダブルクリックの2つの関数を設置した
んですが、ダブルの方が効きません。症状はクリックと同じ動作に
なってしまいます。バブルなんとかという現象を以前達人の方に聞い
たことがあるのですがそれでしょうか。回避方法ありますか?それと
も2つするのが無理なのでしょうか。お願いします。

904:Name_Not_Found
10/05/01 13:12:27
クリックした瞬間にフォーカスが外れるか、最初のクリックでイベントを
止めるような処理がどっかに書いてあるんじゃない?
まずダブルクリックのイベントを外してみて、その上でダブルクリックしたとき、
シングルクリック2回が認識されるかどうかを確認してみたらいいと思う。

905:899
10/05/01 13:24:01
中途半端な知識しか持ってないくせしてその少ない知識を
ひけらかしたいだけの奴らしかいないスレに期待した俺が悪かった。
ヒントどころか国語力も危ない奴がいるなんて……。
お疲れさん。

906:Name_Not_Found
10/05/01 13:36:33
確かFirefoxとIEで挙動が違ったような。
片方がクリックのイベントが2回呼ばれて、もう一方がクリックとダブルクリックのイベントが1回ずつ呼ばれたと思う。
ブラウザの種類を判別してクリック連続押しを判別するようなプログラムを組んでみたら。

907:Name_Not_Found
10/05/01 13:39:31
IE8ではクリック+ダブルクリック、Firefoxではクリック×2+ダブルクリックだった

908:Name_Not_Found
10/05/01 13:42:18
答えが分かったなら書いてきゃいいのに

touchstartのインターフェイスタイプは
Appleの開発用ドキュメントにあるんじゃねの
少なくともそれが分からないとcreateEventもinitEventもしようがないよ
国語力を言う前にドキュメントを読む癖くらいつけろよな

909:Name_Not_Found
10/05/01 13:44:45
>>905
ここはiPhoneのスレじゃないからスレ違い。俺iPhone持って無いから答えようがない

910:Name_Not_Found
10/05/01 14:51:10
>>833

911:Name_Not_Found
10/05/01 16:25:11
>>910
社会不適合者は今後もずっとここに隔離されてもらわんと困るから、そんなのは必要ない

912:Name_Not_Found
10/05/01 16:31:54
と社会不適合者が申しております

913:Name_Not_Found
10/05/01 16:44:59
お前らせっかくのGWなんだからどっか外に出かけろよ。
金と気力がなくて2chとTwitterに張り付いてるのは俺だけで十分だ。

914:Name_Not_Found
10/05/01 16:51:04
お前一人にいい格好はさせねえよ

915:Name_Not_Found
10/05/01 17:15:56
お前一人をそんな酷い目に会わせない、の間違いじゃないの?
ってワケで俺も2chとTwitterの一日なのだが。

916:903
10/05/01 21:49:43
>>904,906さん
回答ありがとうございます。お二人のおっしゃるような感じです。
環境書き忘れてました。IE-8でした。やはり問題あるんですね。
アドバイス頂いたチェックしてもうちょっと頑張ってみます。
ありがとうございました。

917:Name_Not_Found
10/05/03 22:49:35
結局テンプレはどこをどう直すの?スレ立て人や
スレ立て規制時に代わりにたててくれる人が分かるように
このあたりで一式貼っておいてくれると安心なんだけど。

918:Name_Not_Found
10/05/04 00:27:19
見送りでいいんじゃねーの。
もう少し時間かかるだろ。

919:Name_Not_Found
10/05/04 15:49:12 T7fd45v+
>>913支援w

>>917
急ぐ必要もないし、もちょっと煮詰めてもいいと思う。
とりあえず現段階のまとめ。

>>2読んで質問の質を上げるためにリライトしよう
・凡例的なのは後続レスに別記がいいけど長くなる
・手直しだけにするか、>>1から作りなおすか


>>855
10年の途中で「手取り足取り」っていう糞スレを立てたのは私です。

920:Name_Not_Found
10/05/04 17:54:35
過去ログ見れば済むんだから>>1に全部まとめろ

921:Name_Not_Found
10/05/04 19:28:42
お断りします
   ハハ
   (゚ω゚)
  /  \
((⊂ )  ノ\つ))
   (_⌒ヽ
   丶 ヘ |
εニ三 ノノ J

922:Name_Not_Found
10/05/04 20:00:16
Chromeのスクロールイベントなのですが、スクロールを停止することができないです。
if (event.preventDefault) {
event.preventDefault();
}
event.returnValue = false;
return false;
どうすればいいでしょう。

923:Name_Not_Found
10/05/04 21:23:04
event.cancelable


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