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

私的良スレ書庫

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

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

JavaScript スレッド一覧へ / JavaScript とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - タグè¿1⁄2åŠ + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
301 : Name_Not - 2010/10/05(火) 18:48:51 ID:??? (+59,+29,-10)
>>300
ここってID出さないとダメなんですか?>>1は読みましたけど
302 : Name_Not - 2010/10/05(火) 19:21:55 ID:??? (-6,-29,-1)
 _, ,_
( ゚д゚ )
303 : Name_Not - 2010/10/05(火) 19:50:02 ID:??? (+52,+29,+0)
なかなかいいギャグ
304 : Name_Not - 2010/10/05(火) 21:56:40 ID:??? (+27,+9,-1)
評価する。
306 : Name_Not - 2010/10/06(水) 09:35:28 ID:??? (+51,-30,-21)
JPEGとかのEXIFの情報を表示したくてExifUtil.jshttp://acapulco.dyndns.org/exifutil/ 使おうと
思ってるんですが、上手くいきません。

原因調べるにはどうすればよいのでしょうか?
307 : Name_Not - 2010/10/06(水) 10:47:04 ID:7FErJPcr (+32,+29,-40)
>>306
はー、JSでバイナリファイル読むなんてかっちょいいな!
原因は作者に聞けば。幸い日本人みたいだし。

自分でソースを追って、誤りがあれば訂正して送ってあげるのが
利用者のあるべき姿な気はするが。
308 : Name_Not - 2010/10/06(水) 15:54:03 ID:??? (+64,+29,-41)
>>306
作者と同じサンプルでだめなら作者に質問すれば
そうじゃなきゃ設置ミスでしょ
firebugとかそこらへんで自分が書いたコードをブレイクすればいい
309 : 299 - 2010/10/06(水) 17:33:19 ID:??? (+0,-29,-44)
>>300 >>305
ありがとうございます。
この方法ですと、初回checkedはイベントで拾えるのですが、
一度選択すると、二回目以降は拾えないんですよね…。
確かに id="hoge1" は value="1" に設定されたので
二回目に選択しなおしても変化がない…という判定にされるのは分かるのですが。
310 : Name_Not - 2010/10/06(水) 17:36:21 ID:nOE7wbo/ (-20,-30,-244)
<li><a href="./"></a></li>をgetElementsByTagNameで'a'を取得し
上から順番にonmouseoverした時に0,1,2・・・と値を返していきたいけど分かりません。
お願いします。

JavaScript
--------------------------------------------------
window.onload = function() {
var aCNT = new Array();
var aEL = document.getElementsByTagName("a");
for (var i = 0; i < aEL.length; i++) {
aCNT[aCNT.length] = i;
}
for (var j = 0; j < aEL.length; j++) {
aEL[j].onmouseover = function() {
alert(aCNT[j]); ←jだと動かないが数字を入れると動く
}
}
}
--------------------------------------------------

xhtml
--------------------------------------------------
<ul>
<li><a href="./">link01</a></li>
<li><a href="./">link02</a></li>
<li><a href="./">link03</a></li>
</ul>
--------------------------------------------------
311 : Name_Not - 2010/10/06(水) 18:00:36 ID:??? (+33,-30,-78)
>>310
alert(j)にしたら原因が分かるんじゃないかな

var nl = document.getElementsByTagName('a');
var n;
for (var i = 0; n = nl[i]; ++i) {
  n.onmouseover = (function (count) {
    return function () {
      alert(count);
    };
  })(i);
}
312 : Name_Not - 2010/10/06(水) 18:22:35 ID:??? (+33,+29,-60)
>>310
わかりません。なのにコードの最後は動くってどういうこと?

for で数字が変わっていってどの要素でも最後の数しか認識しない場合は
関数でくるんでやるの>>311をよくやるんだけど、他になんか良い方法ってある?
313 : Name_Not - 2010/10/06(水) 18:46:14 ID:??? (+19,-29,-41)
>>312
JSの変数は関数スコープ
変数jがどこで宣言されているか(どこに属するか)を考えてみれ
314 : Name_Not - 2010/10/06(水) 18:53:46 ID:??? (+7,-30,-99)
>for (var j = 0; j < aEL.length; j++) {
>aEL[j].onmouseover = function() {
>alert(aCNT[j]); ←jだと動かないが数字を入れると動く

そりゃうごかねえよalertの行の時点で j の中に数字ははいってないもん
理由は相棒の>>313参照
315 : 312 - 2010/10/06(水) 18:58:58 ID:??? (+13,-26,-109)
>>313
俺は>>310の何が問題かは理解してるよ?
過去にこれではまったことがあって、その時は無名関数でくくって実行ってのをやったんだ。
他にも回避のための手段あるなら知りたいなって思って312を書いた。

>>314
ちょっとちがくね?alert(j);なら4返してくれる。
jはforが回り終わったあとのだから、常に4が入ってる。
aELは長さ4だから(ここも正しくはないが)、5番目の[4]はundefined
316 : Name_Not - 2010/10/06(水) 19:03:00 ID:??? (+57,+29,-23)
クロージャーを使おうとして失敗する例の
よく有るパターンですねわかります
319 : Name_Not - 2010/10/06(水) 19:36:23 ID:??? (+1,-29,-67)
>>318
ちょww 一応>>312の1行目の文について言い訳しておく。
「わかりません。」と書いているのに「j【alert(j)】だと動かないが数字【を返すはずのaCNT[j]】を入れると動く」ってのはどういう事
【】内だと勘違いして、動いているのにわかりませんって言っているように見えたんだ。sマン

>>317
さんくす。IEだとforが糞だから後者のほうが良さそうですね。
320 : Name_Not - 2010/10/06(水) 20:23:20 ID:??? (+33,-29,-18)
>>311
関数内で実行したら、メモリリークする…。

Internet Explorer リーク パターンを理解して解決する
http://msdn.microsoft.com/ja-jp/library/bb250448%28VS.85%29.aspx
321 : Name_Not - 2010/10/06(水) 21:35:39 ID:??? (+8,-30,-17)
>>312
with ({j;j}) { .... } 良い方法かどうかは知らない

あとこの例には当てはまらないけど、マウスオーバーされた要素に対して
何かしたいとかだったら単にthisでいい
http://gihyo.jp/dev/serial/01/crossbrowser-javascript/0005?page=2
322 : Name_Not - 2010/10/06(水) 21:37:38 ID:??? (-5,-29,-1)
>>321
j;j 訂正→ j:j
323 : Name_Not - 2010/10/06(水) 23:30:42 ID:??? (+19,-30,-117)
絞り込み検索の様なものを作成したいと思っています。

複数のプルダウンメニューから選択して検索ボタンをクリック、
該当するデータをリスト化(<ul><li>~</li><li>~</li>・・</ul>)して
htmlに出力するような事をしたいんですが、javascriptで可能でしょうか。

データはxmlで管理するのがよいかなと考えているので、
jqueryでxmlを読み込んで、該当するデータだけを出力、
ってな感じの流れを想定しているんですが。。
324 : Name_Not - 2010/10/06(水) 23:45:39 ID:??? (+46,+28,+0)
余裕ですよ
325 : Name_Not - 2010/10/06(水) 23:46:19 ID:??? (+25,+0,+1)
>>323
可能
326 : Name_Not - 2010/10/06(水) 23:50:09 ID:??? (+92,+28,-4)
>>320
それはもう修正されてる…
http://support.microsoft.com/kb/929874/ja/
328 : Name_Not - 2010/10/07(木) 00:27:12 ID:??? (+64,+29,-3)
なにそのきんもーい書き方
JavaScriptおそろしいね
329 : Name_Not - 2010/10/07(木) 01:10:34 ID:??? (+9,-24,-34)
無名関数で追加したイベントって除去できるの?
330 : Name_Not - 2010/10/07(木) 01:33:39 ID:??? (+13,-30,-90)
>>329
できる
item.addEventListener('mouseover', function (evt) {
item.remoceEventListener('mouseover', arguments.callee, false);
}, false);
331 : Name_Not - 2010/10/07(木) 01:41:17 ID:??? (+32,+0,-19)
removeがremoceになってるのはおいといて
イベント発生させないとだめなのか
それはそれでどうなの
332 : Name_Not - 2010/10/07(木) 01:57:26 ID:??? (+73,+29,-50)
>>326
ありがとう。
IE6SP3 で修正されたのは知っていたんですが、今でもリークパターンの指摘を受けるのでまだ対応すべきと認識していました。(>>4 でもメモリリークに触れられていたり)
実際のところ、今はリークパターンを考慮しない人が大半なのかな…。
333 : Name_Not - 2010/10/07(木) 01:59:53 ID:??? (+36,-30,-70)
>>331
どんな方法であれ、addEventListener 時に指定した関数オブジェクトを指定できれば、removeEventListener できる。
名前付き関数を使えない理由は何なの?
334 : Name_Not - 2010/10/07(木) 02:02:03 ID:??? (+9,-29,-87)
>>328
ES5でもブロックスコープは定義されなかったからね・・・
letが使えればもっとスマートに書けるんだけど、クロスブラウザ不可

>>330
callee、将来的にはどうなるか不透明すぎるのだけがネック
Strict ModeだとTypeError投げるようになる(実装してる処理系ないけど)

あとはYコンビネータ実装してゴニョるとか
335 : Name_Not - 2010/10/07(木) 05:03:05 ID:??? (+62,+29,-7)
>>333
レスへのレスにレスしてるだから気にしないで
336 : Name_Not - 2010/10/07(木) 13:13:35 ID:??? (+3,-30,-155)
二次元配列の一部を共有するような配列って作れますか?

具体的には
var board = new Array(); /* データを入れる */
var boardinner = new Array(); /* boardのデータの真ん中部分を入れる */

この時、配列の中身のデータは共有されてて
boardinner[1][2]=10とかやると、board[2][3]も10になり
board[2][3]=20とやるとboardinner[1][2]も20になるような感じです。

今テトリスを作ってて、ブロックが落ちてつもるところまではできて、
これから行を消すコードを入れる段階なのですが
壁も含んだボードなので、壁を含まないboardinnerみたいなのが作れると
記述がシンプルになるなと思ったのですが
思うように作れません
337 : Name_Not - 2010/10/07(木) 13:21:47 ID:??? (+3,-30,-49)
class Test
var str = "xxx";
function a(){
return "[" + this.str + "]";
}
function b(){
return "<" + this.str + ">";
}

こんな感じにクラスで書きたいんですけど方法ありませんか?
338 : Name_Not - 2010/10/07(木) 13:32:25 ID:??? (+3,-30,-48)
var Test = function() {

};

Test.prototype = {
str: "xxx",
a: function() {
return "[" + this.str + "]";
},
b: function() {
return "<" + this.str + ">";
}
}
339 : Name_Not - 2010/10/07(木) 13:34:45 ID:??? (+3,-30,-120)
こんな感じで書いてください。クラスとかそういうものはありません。
クラスやらインターフェースやらの導入が計画されていた時期もありましたが、お流れになりました。

var Test = function () {
// 初期化処理
};
Test.prototype = {
str: "xxx",
a: function() { return "[" + this.str + "]" },
b: function() { "<" + this.str + ">" }
};

使い方
var test = new Test();
alert(test.a()); // => "[xxx]"
340 : Name_Not - 2010/10/07(木) 13:46:07 ID:??? (+52,+29,+0)
カップルになるべき
341 : Name_Not - 2010/10/07(木) 14:07:37 ID:??? (+11,-29,-57)
ある場所Aからある場所Bまでの間の、リンクを押すと新しいウィンドウにするという仕組みにしたいのです。
AとBの間ではJSで外のデータを読み込んでいるのですが、そこのリンクを新しいウィンドウで表示させたいのです。
自分のサーバーの中のデータではないので、改造できないのです・・

ヘッド内に<base>を使うと、ページ全体になってしまうし

AB内のソースもいじれないので、rel="external"もできないし


何か方法はないでしょうか?
342 : Name_Not - 2010/10/07(木) 16:03:29 ID:??? (-1,-29,-12)
読み込んで描きだす部分でtarget=_blankに書き換えればいいだろ。
それも出来ないっていうなら仕事やめた方がいい。
343 : Name_Not - 2010/10/07(木) 16:13:45 ID:??? (-1,-29,-7)
>>341
CTRL+左クリックかShift+左クリックで開ける
344 : Name_Not - 2010/10/08(金) 16:54:57 ID:??? (+0,-28,-46)
>>341
全然意味がわからんけど、jsでiframe作成してページ内に貼っていて、
そのフレーム中のリンクをクリックすると新しいウィンドウで開くようにしたいってこと?
345 : Name_Not - 2010/10/08(金) 19:07:53 ID:??? (+3,-30,-83)
chromeにて、document.body.clientHeight を使ってブラウザ画面の
縦の長さを取得していますが、ページによっては、
ブラウザの長さを取得できない場合があります。
何か、条件がありますか?
346 : Name_Not - 2010/10/08(金) 23:18:09 ID:??? (+4,-29,-6)
doctypeとか表示モードとかかなぁ。
ぐぐったら結構出てきたよ
347 : Name_Not - 2010/10/09(土) 04:58:04 ID:??? (+15,-30,-40)
>>346
ありがとうございます。とりあえず、それらの単語でぐぐってみたら
document.documentElement.clientHeight
というのも使える感じです。仕組みはよくわかっていませんが。
350 : Name_Not - 2010/10/09(土) 23:42:20 ID:??? (+14,-15,-18)
>>347
マジレスしてあげますがそれは5大ブラウザ全てに対応できないから
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - タグè¿1⁄2åŠ + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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