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

私的良スレ書庫

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

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

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
801 : Name_Not - 2012/07/06(金) 22:54:14.90 ID:??? (+57,+29,-35)
「ゆるキャラ」の文字について著作権を主張する
802 : Name_Not - 2012/07/07(土) 00:04:17.90 ID:cbHJT+yw (+24,+29,-29)
同僚「休日何してた」
オレ「JS(Javascript)の勉強してた」
同僚「女子小学生(JS)とかキメーwwwww」
803 : Name_Not - 2012/07/07(土) 00:56:33.74 ID:??? (+47,+19,-3)
JavaScriptをJSとか言う奴は確かにキモイ
804 : Name_Not - 2012/07/07(土) 00:58:38.17 ID:??? (-4,-27,-10)
裸のJSを創造して以下省略
805 : Name_Not - 2012/07/07(土) 00:59:18.03 ID:??? (+57,+29,-17)
普通だろ
JS使ってる人間100人に聞いたら95人は普通って言うレベル
こんなクソ長い名前の言語も珍しいよな
806 : Name_Not - 2012/07/07(土) 01:03:55.13 ID:??? (+51,+28,-5)
え?たった3音節だよ
807 : Name_Not - 2012/07/07(土) 02:32:34.78 ID:??? (+17,+29,-23)
>>787
jsfiddleに乗っけてみた。

http://jsfiddle.net/6bW6R/

アニメーションgifとかは読み込めないので、見栄えは違うけど、だいたい動く。
…って、たしかに firefoxでは意図した通りに動かないね。なんでだろう。
808 : Name_Not - 2012/07/07(土) 06:03:08.82 ID:??? (+6,-30,-173)
applyに関する質問です。

メソッドチェーンさせたいのでa.push("test")の返り値をa自体にしたく
Array.prototype.my_push = function(x) { this.push(x); return this;}; としました。
単体ではうまく動くのですが、applyを使った時うまくうごきません。

var a = ['a','b','c'];
var b = [1,2,3];

// まずは通常版を試すと a = ['a','b','c', 1, 2, 3]; が返る これが望んでいる返り値です。
Array.prototype.push.apply(a,b);
return a;

// my_pushを使った下のコードでは a = ['a', 'b', 'c', 1]が返ってきます。何故なのでしょうか、
// 希望の動作をするにはどうすればよいでしょうか?お教え下さい。
return Array.prototype.my_push.apply(a,b);
810 : Name_Not - 2012/07/07(土) 06:46:34.46 ID:??? (+41,-30,-169)
>>807
バグなんかねー。
require() の後に alert() で時間を取ると動く。

if (...) {
require('http://serennz.sakura.ne.jp/toybox/lightbox/resource/lightbox_plus_min.js');
alert("foo");;
}

setTimeout() で alert() をキューに移すとやはり駄目。

if (...) {
require('http://serennz.sakura.ne.jp/toybox/lightbox/resource/lightbox_plus_min.js');
setTimeout(function() { alert("foo"); }, 0);
}

>>808
call を使う。
811 : Name_Not - 2012/07/07(土) 06:54:04.38 ID:??? (+5,-22,-2)
>call を使う。

ごめん、これは無視…
812 : Name_Not - 2012/07/07(土) 08:21:12.18 ID:??? (+8,-9,-1)
7音節です
813 : Name_Not - 2012/07/07(土) 11:48:25.25 ID:??? (-2,-30,-41)
Array.prototype.my_push = function(){
  this.push.apply(this,arguments);
  return this;
};

こうけ?
814 : Name_Not - 2012/07/07(土) 12:15:32.15 ID:??? (+25,-5,-10)
>>808
破壊的は要件に含まれてないようなので apply で代用できませんか?
815 : 808 - 2012/07/07(土) 13:29:56.29 ID:??? (+0,-30,-103)
>>809,810,813,814
my_pushを可変長に対応させる必要があったのですね。
my_push.apply(this, [1,2,3])すれば,my_push(1).my_push(2).my_push(3)に展開されるという全く意味不明な思い込みをしていました。
>>814 非破壊ならa.concat(b)で出来たのですがmy_push.applyがうまく動かない理由を知りたかった所でした。
813さんよろしくArray.prototype.my_push = function() { this.push.apply(this, arguments); return this;};でうまくうごくようになりました。
皆さんレスありがとうございました。
816 : 778 - 2012/07/07(土) 14:08:46.70 ID:??? (+69,+29,-46)
>>810
alert()確認しました。
動きました。
毎回ページを開くたびにalert()はどうかと思い、
時間を取る方法を、色々やってみましたが上手くいかず、、、
もうちょっと考えてみます。
819 : Name_Not - 2012/07/07(土) 16:06:26.76 ID:??? (+43,-30,+0)
>>816
原因はおそらく分かた。

createElement("script") して、動的に script を追加した場合、
残りの処理 (HTML の parse など) はブロックされずに進行する (仕様)。

lightbox_plus では Firefox (Gecko) に対して、DOMContentLoaded
イベントを利用してるから、動的に script を追加した場合、
script をネットワーク越しにダウンロードして実行する前に
DOMContentLoaded イベントが終わってしまってる。

はじめから script タグとして記述した場合は (<script src="..."></script>)、
そこで HTML の parse は一旦停止して、script に処理が移るから、
script 実行後に DOMContentLoaded が呼ばれて正常動作する。

alert() で処理を止めた場合に正常動作するのもおそらく同じ理屈。
alert() を表示して HTML の parse を止めている間に、追加した
script を読み込んで処理してるから動く。

簡単で確実な対処法は、>>781 で試している通り、性的に読み込む (*^_^*)
820 : Name_Not - 2012/07/07(土) 17:08:15.12 ID:??? (+13,+29,-55)
>>818
イベントはポップアップエレメントとやらの親で十分。
作った子はスタックにでも積んどいて適当に削除すればいい。jQueryでやるなら難しくないだろ。
821 : Name_Not - 2012/07/07(土) 17:49:53.01 ID:??? (-1,-29,-52)
>>819
scriptタグのonloadで、そのDOMContentLoadedが呼んでる関数を呼んでみるとか?
2回呼んだら駄目なものなら、工夫(改造)が必要だろうけど。
823 : Name_Not - 2012/07/07(土) 18:11:03.23 ID:??? (+25,+29,-16)
>>822
ポップアップが自分の親と子をわかっていれば良いと思うの
824 : Name_Not - 2012/07/07(土) 18:19:33.85 ID:??? (-27,-30,-79)
>>822

親.on('mouseleave', 'dl.popup_res_list', function () {
if (this === リスト末尾DOM要素) リスト、DOM木から削除;
});

mouseleaveで削除ならこんな感じ。リストは配列でいいんじゃないか?
てか、他人が書いたのか?
826 : Name_Not - 2012/07/07(土) 19:12:16.91 ID:??? (+53,+29,-41)
>>825
予想通りの実装になっててワロタ。
ポップアップから完全にカーソルはずしても親が残ってしまうよね。
ググって探す方が有意義。
827 : Name_Not - 2012/07/07(土) 20:37:27.45 ID:??? (+57,+29,-22)
すでにそういう実装してる2chログサイトいっぱいあるんだから
そこからパクってくりゃいいのに・・・
828 : 778 - 2012/07/07(土) 23:17:45.26 ID:??? (+77,+29,-56)
>>819
なるほどと思い。
requireの行を消してlightbox_plus.jsの中身を直接記入してみましたが、動きました。

>>778のようにしたのは、ガラパ携帯で見た時、重くさせない様にと考えていたので、
静的に全て読み込ませなくなってしまったのは少し残念です。

レスいただいた皆さんありがとうございました。
829 : Name_Not - 2012/07/08(日) 05:08:09.89 ID:??? (+13,-30,-214)
>>828
そこまでわかったのであれば自分でlightboxを初期化すればいいと思うけどね。
lightboxは単に、ユーザの便宜を考えて自動的に初期化するようになってるだけで
こっちが任意に初期化できないことはないわけでしょ。

lightbox_plus.jsの末尾で、初期化のための関数を
ページロード時のイベントに登録してるわけじゃん。
Spica.Event.run(function() { var lightbox = new Lightbox({...}); });
この無名関数(というかnew LightBox())を任意のタイミングで実行すればいいんだよ。

もしくは100%動的に読み込むなら、イベントをセットするまでもなく
new LightBox({...}); // 即実行
でいい理屈(ブラウザの違いも関係なくなる)
830 : Name_Not - 2012/07/08(日) 17:04:36.58 ID:??? (+68,-29,-51)
javascriptの勉強を始めたのですが、ブラウザでの確認作業というのが面倒過ぎます。
たとえばRubyのirbみたいに、コンソールでコマンド打って即出力を確認できるようなツールは無いでしょうか?
831 : Name_Not - 2012/07/08(日) 17:11:31.00 ID:??? (+4,-18,+1)
ブラウザにコンソール付いてる
832 : Name_Not - 2012/07/08(日) 17:11:38.00 ID:??? (+15,-14,-1)
>>830
ブラウザ組み込み以外の処理系があるよ。
833 : Name_Not - 2012/07/08(日) 17:14:04.75 ID:??? (+47,+18,+1)
>>830
テンプレ嫁
834 : Name_Not - 2012/07/08(日) 17:19:33.20 ID:??? (+52,+29,-13)
くっそー役立たずどもめ
835 : Name_Not - 2012/07/08(日) 17:34:31.33 ID:??? (+69,+10,-49)
愚か者め
IE、火狐、クローム、オペラ、サファリで確認した後
さらにIE8でも確認するのが俺の流儀
836 : Name_Not - 2012/07/08(日) 17:49:46.06 ID:??? (+54,+22,+1)
>>830
消えろクズ
837 : Name_Not - 2012/07/08(日) 18:34:03.37 ID:??? (+110,+24,-67)
>>835
井の中の蛙め
俺の会社なんてIE6のチェックまで念入りにやってるんだぜ

なんたって会社のPCはIE6がデフォだからなぁ!!
838 : Name_Not - 2012/07/08(日) 19:20:43.85 ID:??? (+70,+29,-70)
>>837
井の中の蛙め
俺の会社なんてケツの穴のチェックまで念入りにやってるんだぜ

なんたって会社はホモがデフォだからなぁ!!
839 : Name_Not - 2012/07/08(日) 19:21:38.77 ID:??? (+42,+9,-43)
IE6から確認するのは、よほどのゴミサイトで無い限り普通だろ
適当サイトならIE7からでもいいかなぁと思うけど。
とはいえIE6とIE7のシェアは現状それほど変わらないからIE7だけカバーするのは実は大した意味が無い。
840 : Name_Not - 2012/07/09(月) 00:27:28.42 ID:??? (-6,-29,-1)
IE6サポート厨
841 : Name_Not - 2012/07/09(月) 00:29:11.40 ID:??? (+120,+24,-5)
もういい加減IE6は絶滅したんじゃねえの?
842 : Name_Not - 2012/07/09(月) 00:35:27.50 ID:??? (+34,-3,-1)
>>837がいる限りIE6は滅びぬ
843 : Name_Not - 2012/07/09(月) 00:41:56.92 ID:??? (+69,+29,-42)
>>841
受注のweb屋やってるとIE6使ってる奴から「ちゃんと見れないんだけど!!」って文句がくる
844 : Name_Not - 2012/07/09(月) 01:27:34.61 ID:??? (+104,+29,-20)
>>841
なんでそう思うのか理由を述べよ
おめでてーおつむだなw
845 : uy - 2012/07/09(月) 01:47:02.60 ID:??? (+65,+28,-1)
>>844
自分で考えろゴミカス
846 : Name_Not - 2012/07/09(月) 01:48:03.97 ID:??? (+55,+27,-66)
IE8ですら負の遺産と言われ、IE8撲滅運動なるものがあるのに
IE6が一定数いるなんて俺はモーレツに悲しい

まぁIE9も十分ウンチなんだけどね
847 : Name_Not - 2012/07/09(月) 01:49:25.84 ID:??? (+18,-9,-51)
マジでアホだらけだ・・・
IE6でもIE9でもjavascriptの挙動はほとんど変わらんっつーの
そういうバージョン気にするのはCSSの話だろ。
848 : Name_Not - 2012/07/09(月) 01:53:51.45 ID:??? (+55,+29,-46)
IE6は日本では一般用途ではすでに絶滅してる
今乗ってるのは学校とか官公庁とかシステム更新が遅れてるやつだけ
P2Pとか2chとかブロックされるレベルのそんなやつら対象にしないしどうでもいいだろ
849 : Name_Not - 2012/07/09(月) 01:54:37.01 ID:??? (+26,-1,-8)
CSSの変化ってJavascriptでめっちゃ重要じゃね?
850 : Name_Not - 2012/07/09(月) 02:57:34.58 ID:??? (-6,-29,-30)
IE9はDOMがだいぶ改善されてる
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / JavaScript スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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