+ JavaScript の質問用スレッド vol.55 +at HP
+ JavaScript の質問用スレッド vol.55 + - 暇つぶし2ch848:Name_Not_Found
07/04/27 16:05:49
上の見て思った。ちょっと確認なんだけどさ、
// --></script>
これって、なんかヤバくない?

849:Name_Not_Found
07/04/27 16:14:43
やばいねぇ

850:Name_Not_Found
07/04/27 16:15:55
>>848
遠い昔はやばかったが、今時それでやばいブラウザなんて知らないな。知っていたら挙げてくれ。
まあ、ふつうは染み付いた癖で改行を入れるだろうけれど、どうでもいい。

むしろE4X以降はコメントアウトやCDATAセクションをそのままXMLとして解釈するから、その方がやばいかもな。
もうこれからは問答無用でsrcでFAだろうな。コメントアウトのために余計な神経を使うのは馬鹿らしい。

851:Name_Not_Found
07/04/27 21:55:45
しかし>>842の国語力のなさに驚愕した。

852:Name_Not_Found
07/04/28 11:27:48 fDusG16N
ヘッダーに
<script langage="JavaScript" src="time.js"></script>

時計を表示したいところに
<script langage="JavaScript">tokei();</script>

JavaScript書くときもっと簡単になんないっすか?orz

853:Name_Not_Found
07/04/28 11:41:40
time.jsでtokei()すれば表示したいところにscriptおくだけでいいじゃないか。

854:Name_Not_Found
07/04/28 11:42:01
それが簡単なライブラリの使い方だと思うけど

855:Name_Not_Found
07/04/28 11:56:41
どこらへんが複雑なのかと

856:Name_Not_Found
07/04/28 12:14:18 k8zZNNTj
超初心者です、もしかしたら馬鹿らしい質問かもしれませんが、ご回答願います。
ブログのカスタマイズですがJavascriptについてなのでこちらで質問しました。

Google Analyticsを使用しているのですが、
Google Analyticsの使い方の説明に
「コード セグメントをコピーし、解析対象とする全ページの </body> タグの直前に貼り付けます。」
とあります。
なのでbodyの閉じタグの直前に貼り付けて使用しています。

今回、ブログメニューのツリー化を実行したく調べたところ下記の記事に行き着きました
URLリンク(shinobibloglab.blog.shinobi.jp)
すると「</body>のすぐ上に貼り付けてテンプレートを保存します。」
とあったのですが、どうすればいいですか?

857:Name_Not_Found
07/04/28 13:00:23
両方を順番に貼る。だいたいは干渉しないからそれで動くのでは。
万一干渉する場合は順番を逆にしてみる。それでだめなら両方一緒
に使うのをあきらめる。

858:Name_Not_Found
07/04/28 13:02:36
>>857
ありがとうございました。
チャレンジしてみます!

859:Name_Not_Found
07/04/28 13:04:54
してから書け

860:Name_Not_Found
07/04/28 13:06:07
>>859
なにをしていいかわからなかったのでしてからかけませんでした
申し訳ありません。

861:Name_Not_Found
07/04/28 16:09:23
実行できました。ありがとうございました>>857

862:Name_Not_Found
07/04/28 16:26:41
これでGW序の口かよ... コエーな。。。

863:Name_Not_Found
07/04/28 16:38:06
せかせかするんなら来るなYO
荒れるんだYO

864:Name_Not_Found
07/04/28 20:28:01
このサンプルを参考にして、ドラッグドロップをしたいのですが、
URLリンク(www.dotup.org)

指定をタグではなくIDにしたいので、
getElementsByTagNameをgetElementsByIdにしたのですが、動いてくれなくなりました。
他に何か設定しなおさないといけないところがあるのでしょうか?

865:Name_Not_Found
07/04/28 21:41:36
>>864
getElementById

866:Name_Not_Found
07/04/28 22:34:10
var PointX = obj.style.left + 2;
と計算したいのですが、
obj.style.leftが50pxのときに「50px2」と、文字列として合体してします。
数値として計算したいのですがどうすれば良いのでしょうか?

867:Name_Not_Found
07/04/28 22:34:53
idじゃなくてnameにしてByNameで拾えばもしかしたら動くかもね

868:Name_Not_Found
07/04/28 23:22:28
>>866
マジレスすると、

var PointX = 50 + 2;

styleはどういう形で設定されてるかなんてわからないから…


まぁきっとobj.offsetLeftとかを使えばいいんじゃねぇのってことなんだろうけど

869:Name_Not_Found
07/04/28 23:50:45
>>866
マジレスすると、

var PointX = parseInt(obj.style.left) + 2;

まぁstyle属性がセットされてないとNaNを返したりするから注意

870:Name_Not_Found
07/04/29 00:23:39
zIndex指定するのってこんなに重くなるのか!?

871:Name_Not_Found
07/04/29 00:32:06
いや、このくらい軽いよ

872:Name_Not_Found
07/04/29 01:14:45
>>869 足りない脳みそでもちょっとは使え

obj.style.left = "10em";

873:Name_Not_Found
07/04/29 14:09:59
>>872
サーセン

>obj.style.left = "10em";
さすがにこれは思いつきませんでした


874:Name_Not_Found
07/04/29 16:00:50
>>873 思いつかなくても、質問中に思いっきり書いてあるだろ。これで「さすがに」はない。


875:Name_Not_Found
07/04/29 16:31:58 8eiOYACX
質問です!
LightboxやLITEBOX、Highslideのどれでもなく、Macのようなヒュット拡大され、
Highslideのように自由にマウスでドラッグできるサイトを見かけたと
言ってるんですが、具体的にそういうサイトをご存じないでしょうか?

もしくは、何かしらの情報をお持ちの方、良かったら教えてください。

876:Name_Not_Found
07/04/29 19:40:14
>>866
まじめにやるなら、offsetLeft, getBoxObjectFor, getBoundingClientRectか
parseInt, currentStyle, getComputedStyle あたりも考慮に。

877:Name_Not_Found
07/04/29 20:09:32 5n2KVq6K
<input type="checkbox" name="flag" value="1" onclick="test(this)">テスト

input が沢山ある時、onclickでthisを渡し、それのキー番号?を知る方法はありますでしょうか?
document.getElementsByTagName("input")[ input_num ] のinput_numをthisから得たいです。
御教示宜しくお願い致します。

878:Name_Not_Found
07/04/29 20:18:53
>>874

>var PointX = obj.style.left + 2;
>と計算したいのですが、
>obj.style.leftが50pxのときに「50px2」と、文字列として合体してします。
>数値として計算したいのですがどうすれば良いのでしょうか?

さて、どこに書いてあるのだろうか……
エスパー様にはとても頭が上がりません

879:Name_Not_Found
07/04/29 20:45:17
>>878
頭が上がらないなら、ずっと下げとけよ

880:Name_Not_Found
07/04/29 21:30:51
>>875
Googleが作ってた検索インターフェイスであったな。そういうの。

>>878
ワロスwww アタマワルスキ...

881:Name_Not_Found
07/04/29 21:35:50
どう見ても相手は子供だろ。オトナ気ないツッコミはしてやんな。かわいそうだ。

882:255
07/04/29 22:23:38 g6Hd/FgH
質問です
ある要素の子要素をドラッグすると要素が動くというものを作ってみたのですが、
( 普通のドラッグ処理です )
スクロールバー側にドラッグしていきブラウザの外にマウスを動かすと
要素の移動に応じて勝手にスクロールバーがスライドしてしまいます
どうしたらスライドしなくなるのか教えてください
よろしければ何故スライドしたのかも教えてください
補足が必要であれば言ってください
以下はコードです
//
data = { window : null, obj : null, move : false };
move = function( e ){ // document.onmousemove = move
  if ( !data.obj || !data.move ) return;
  e = e || window.event;
  data.obj.x = ( e.pageX || e.x ) - data.obj.offsetX;
  data.obj.y = ( e.pageY || e.y ) - data.obj.offsetY;
  data.window.left = data.obj.x + 'px';
  data.window.top = data.obj.y + 'px';
};
down = function( e ){ // obj.onmousedown = down
  e = e || window.event;
  var w = e.target || e.srcElement;
  data.move = true;
  data.obj = { offsetX : (( e.pageX || e.x ) - w.offsetX), offsetY : (( e.pageY || e.y ) - w.offsetY) };
  data.window = w.parentNode.style;
};
up = function(){ data.move = false; }; // obj.onmouseup = up

883:882
07/04/29 22:26:50
名前欄255はミスなので気にしないでください

884:Name_Not_Found
07/04/29 23:42:31
>>882
ブラウザのスクロール機能がそう作られている(たとえば長い範囲を
ドラグで塗ることができるようにするため?)、という他ないのでは。
これを止めるにはスクロールバーを消すしかないような気がするが…

885:882
07/04/30 00:41:47
少し例になるかわかりませんが挙げておきたいと思います。

・ドラッグ時スクロールバーがスライドする
URLリンク(www.openspc2.org)
・ドラッグ時スクロールバーがスライドしない
URLリンク(www.openspc2.org)
URLリンク(www.openspc2.org)

参照「ドラッグ処理を行う」
URLリンク(www.openspc2.org)
コードを見比べても改良箇所以外変わってないのでスライドするしないの条件がわかりません

886:Name_Not_Found
07/04/30 00:49:54
そんなサイト参考にしてるからだろ

887:Name_Not_Found
07/04/30 02:29:01
まあ、ドラッグという操作をあらためて見てみれば、むしろ面倒な操作だけどな。
目的地が一つなら、(ダブル)クリックで勝手に移動してくれた方が楽だし、
目的地が複数なら、クリックで選択して目的地の一つをクリックすればドピュっと移動してくれれば、その方が簡単だろう。
いずれの場合でも、必要と思うなら、移動の様子をアニメーションとして見せても構わない。

888:Name_Not_Found
07/04/30 06:44:26
                               ____
                              /     \   ∧__T _ ,,,r -r-T‐-、
                              /        \─   。r *o:*::f:::r:::..l
                    __,-,,-、  ___'/  /\   /\\::::::::*o;;;ro ot_f_ヽ丿
                   __/| | l |ヾ-"~ |       (_人)    | -v--v-'''''''"V"~~┴
               l⌒ 二 -l ..uUU""l-- \           /
              └   l´  (,,,, ./., - イ          /
      .ト            |  {  |,.ィ'''フ''''=、r'"~      i,, `ヽr''"`ヽ、 ヽ、
   ヽ、i / .∠         /  /  .| ノ"    )=、 ̄ ̄,,..ィ'"´i       ヽ、
    / y'_/          /  / /  |     ノ  ´ ̄ `Y"´            i
 .ゝ-+-::i⌒ヽ        /  ''   ,.|   .__,,..         レ      _,,,,、       j、、
  .__/::| |  i >>888   /     r´ } ィ'''i"        J   ,,.ィ'"~  `'ヲ''ー-、ノ、 ヽ、
   / /:| |  i       ,,ノ     / ,,l  ,人        ,,l、        ノt   ) `ヽヽ
    i ::| |  )     .| /,    ,;'  .人 /"``ゝ、       人       ,,イ  jt、  ヽ   i
    /i ::し//      |''´  、 ` _ノ /、   `ー--;::-ニ"_,ゝ=---‐''"   ,ノ ヽ、 ヽ  t、
     ::| ((      ヾ、ノ,    .__ノ´ ヽ、 r  、 f"   `i´ ̄` Y  `ヽ /  ゝ-,ヲ'''   )

889:877
07/04/30 10:05:44 zPYOOue3
>>877をどなたか宜しくお願いします。

890:Name_Not_Found
07/04/30 10:25:33 4lpCFbIT
>>877
>input_numをthisから得たい
"input_num" の意味を考えてみましょう.
"n番 field" の意味しかありません.
this から "n番" を得て それから どうするのって話です.

891:Name_Not_Found
07/04/30 10:32:59 4lpCFbIT
訂正:
"n番 field" -> "n番 input element"

892:Name_Not_Found
07/04/30 10:36:13
>>877
キー番号って何よ。valueのことか? それともtrue/flase?

893:Name_Not_Found
07/04/30 10:49:10
>>877
var myForm = document.getElementById("tekitou");
var flags = myForm.getElementsByTagName("input");
for(var i=0, l=flags.length; i<l; i++) {
if(flags[i].type == "checkbox") {
flags[i].onclick = function() {alert(this.value);}
}
}

とかじゃだめかな。本当はformのidで絞り込んだほうがいいけどまあ
クリックしたらthis.value(1とか2とか)が表示される。
このthis.valueをalertでなく別なfunctionに渡す

894:Name_Not_Found
07/04/30 10:50:34
うお、半角スペースが消去されて見づらい……
>>893の補足。myFormはターゲットにしたいform要素のid取得ね

895:Name_Not_Found
07/04/30 11:15:48 zPYOOue3
>>890
自分の要素num?が得れれば各フォーム毎にidつけないで操作したり便利かなと

nextSibling parentNode lastChild などで現在は対応してるけど、
あると楽になる場面あると思うんだけどなあ

896:Name_Not_Found
07/04/30 11:56:56 4lpCFbIT
>>895
一々 HTML 中に id を振らなくても script から後付けできるし,
id 以外の attribute を付け加えても良い事を肝に銘じるべき.

form で重要なのは "name:value " と言った形のデータであって,
"input element の何番目" と言う情報は対象 element を間接的に指定する手段に過ぎない.
一方, この場合の "this" は element そのものを指しているので.
this.id, this.vale, ... とすることによって好きな物をとり出せる.

つまり, onload で あらかじめ加工しておけば
this.~ とすることによって操作ができる.
問題解決のためには別の方向から攻める柔軟な頭が大切だ.

897:Name_Not_Found
07/04/30 13:09:25 zPYOOue3
>>896
すんません、遅くなりましたがアドバイスありがとうございます。
this.id, this.vale 等は理解してます。

Ajax関連(主にscript.aculo.us)を利用した時、要素にid付加が面倒だったのがキッカケで、
URLリンク(jsgt.org) ←など参考にしながら色々とスクリプト編集しなおしてるのですが、
parentNode等だと直感的な操作ではなかったので(連続しまくると可読性が悪い)
"次の<TD>"、"次の<A>" って方法があればと思いました。 ありが㌧

まあid付加がデザイン依存しないしベスト なんですよね。

898:Name_Not_Found
07/04/30 14:44:15
>>897
兄弟レベルにあるのなら次ので十分なんじゃないの?
var x = this.nextSibling;
while(x != null && x.nodeName != 'TD') x = x.nextSibling;
読みにくければこれを関数にして「nextName(this, 'TD')」
みたいに呼ぶとか。

899:Name_Not_Found
07/04/30 15:01:00 zPYOOue3
>>898
汎用性とか色々考えての質問なんだが。
3つ下の<TR>とか、2つ前の<A>とかね

900:Name_Not_Found
07/04/30 15:30:22
そんなすばらしいものはないからあきらめろ。
XPathだのTreeWalkerだの使えばすっきりいくかもしれんが。

901:Name_Not_Found
07/04/30 17:30:21
>>899-900
洩れもそういう複雑なことを言うのなら自分で新たに発明
するよりもXPathとかだと思うけど。自分でHTMLを書くんだから
自分で制約を設けてコードも簡潔に済むようにするんでも、
任意の構造のHTMLを書いてコードも頑張るのでも、好きに
したらいいのでは。

902:Name_Not_Found
07/04/30 19:51:09
>>896
> 一々 HTML 中に id を振らなくても script から後付けできるし,
> id 以外の attribute を付け加えても良い事を肝に銘じるべき.

それが出来るなら目印(idなど)は必要ないだろ。

903:Name_Not_Found
07/04/30 20:04:24
>>899
要するに、MSXMLのnextNode()みたいなことをやりたいが、
IEでHTMLを扱う時にはそれらしい簡単な方法がないから困る、っつうことだな。
再帰とかDOM標準で遊んでもいいが、実用的に実行速度重視で書けば、次のようになる。
今つらつらと書き込んだだけでテストしてないので動くかどうか知らんがな。

/*@cc_on @if (1)
function nextTo (context, root, filter) {
  var i;
  var all_length;
  var current;
  var all = root.all;
  i = context.sourceIndex - root.sourceIndex;
  all_length = all.length;
  while (i < all_length)
    if (filter(current = all.item(i++)))
      return current;
  return null;
}
function isTD(n) {return /^TD$/i.test(n.nodeName);}
function nextTD(context, root) {return nextTo(context, root, isTD);}
@end@*/

904:Name_Not_Found
07/04/30 20:25:07
>>899
あと、TRやTDのような、(?:inner|outer)HTMLの値が終了タグ省略の形で得られる物だから無理なんだが、
逆に、整形式が保証される場合には、XMLDocumentにloadXML()しちゃえば、nextNode()とか使い放題だ。
まあ、そういう神経を使うような分岐はやらない方が賢明だから、>>903みたいな関数を作って対応するがな。

他のブラウザ(というかFx)の場合は、こういういわゆる二重マークアップを扱う時には、
レスで挙がっているように、TreeWalkerを上手に使えば総じて速い。
しかし、XPathの方が包括的だし、XPathの方が流行っていて情報も多いだろうから、XPathを使うに限るだろうな。

あと、TreeWalkerはフィルターアウトされたノードの扱いにおいて、仕様と実装が異なるから、敬遠した方が良かろう。
ついでに、NodeFilterとメソッドacceptNode()のthisの扱いも特殊なので、知らなければ悩むことになりかねない。
だから、XPath使え、になるだろう。今のサイ本からはTreeWalkerは消滅したしw

905:Name_Not_Found
07/04/30 20:39:34 4lpCFbIT
>>902
>それが出来るなら目印(idなど)は必要ないだろ
どういう意味 ?
("それ" ができないと言いたいようにも読み取れるし,
"idなど は必要ない" との主張に重きがあるようにも読める)
仮に後半部だと仮定して答えると...

menu などのボタンを自動作成する script を書いたとする.
ボタンを押した時に呼び出す function に受け渡す parameter としては色々考えられる.
その中の候補として id が便利なことがある.
と, こんな所でどうかな ?

906:Name_Not_Found
07/04/30 20:43:22
次スレのテンプレ論議とかあれば今どうぞ。

907:Name_Not_Found
07/04/30 21:04:26
テンプレのネスケのリファレンスとガイドを格上げしよう(単独で>>1に)。基本的な事は、これ読めば書いてある。
まず、これ読めって回答が結構多い。

908:Name_Not_Found
07/04/30 22:49:22
>>907
なるほどー。反対意見はないですか?

909:Name_Not_Found
07/05/01 00:08:23 cnrEVKci
変数のサイズって制限ありますか?
読み込んだテキストを配列にいれておいて、任意で表示するってありきたりな処理ですが、
トータル100kb、200kb入れても問題ないでしょうか?

910:Name_Not_Found
07/05/01 00:25:08
>>909
数百kbなら何でもないでしょ。ふつーの画像1個のサイズと変わらんし。

911:Name_Not_Found
07/05/01 01:32:14
forでベンチしようぜ?

912:Name_Not_Found
07/05/01 04:15:57
>>908
反対はせんが載せるならきちんと管理が続いてるMDCのほうを載せてくれ。
Referenceの日本語訳も結構進んできたし。
あと、E4XとGecko DOM ReferenceのURLも古いままだから直してくれ。

JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
URLリンク(developer.mozilla.org) (和訳)
URLリンク(developer.mozilla.org)
URLリンク(developer.mozilla.org) (和訳)

E4X (ECMAScript for XML)
URLリンク(www.ecma-international.org)
URLリンク(www.ne.jp) (和訳)

Mozilla Gecko DOM Reference, Netscape devedge
URLリンク(developer.mozilla.org)
URLリンク(developer.mozilla.org) (和訳)
URLリンク(devedge-temp.mozilla.org)

913:Name_Not_Found
07/05/01 20:26:50 QWGDxlnj
質問です

914:Name_Not_Found
07/05/01 20:46:38
答えです

915:Name_Not_Found
07/05/01 21:17:49
報告です

916:Name_Not_Found
07/05/01 22:12:36
連絡です

917:Name_Not_Found
07/05/01 22:30:19
ゴルァ そこのおまえら資源をムダにしてるんじゃねえ!



918:Name_Not_Found
07/05/01 23:41:14
なんだコノヤロー!!

919:Name_Not_Found
07/05/01 23:46:36
何がコラか!タココラ!

920:Name_Not_Found
07/05/02 00:01:01
次の質問ドゾー。連休だからなあトホホ…

921:Name_Not_Found
07/05/02 00:10:55
>>920
javascriptって何ですか?

922:Name_Not_Found
07/05/02 00:35:28
>>921
今は亡きネットスケープ社が開発したブラウザ上で動くスクリプト言語です。
オブジェクト指向のような言語体系と、当時サンが作ったJavaにそっくりな
名前が特徴です。

923:Name_Not_Found
07/05/02 00:47:43
>>922
では、JavaScriptはサンのJavaと同じような言語だと考えてよいのですか?

924:Name_Not_Found
07/05/02 03:31:46
>>923
似て非なるものだと考えてください。

925:Name_Not_Found
07/05/02 07:14:21
お食事券と汚職事件みたいなもんか。

926:Name_Not_Found
07/05/02 08:26:54
最近prototypeとかDojoとか
MochiKitとかjQueryとか流行ってますが
おすすめはどれですか?

927:Name_Not_Found
07/05/02 08:31:45
適材適所ですが、Dojoがいいかな

928:Name_Not_Found
07/05/02 08:34:38
「JavaScript ライブラリ 比較」でぐぐる。

929:Name_Not_Found
07/05/02 10:31:53 qCpvRgaz
質問です。
JavaScriptではrubyのように、
['a','b','c'].each(function(i) {
F(i);
}
);
みたいに書くことはできますか?IEでできる方法ありましたら
ご教示お願いします。

930:Name_Not_Found
07/05/02 12:22:51
>>929
Array.prototypeに自分で追加しちゃってもいいのなら
(状況によってはライブラリや既存コードとの干渉があり危険)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
Array.prototype.each = function(f) {
for(var i = 0; i < this.length; ++i) f(this[i]);
}
</script>
</head></body>
<p><script type="text/javascript">
['a','b','c'].each(function(i) { document.write(i + '<br>'); });
</script></p>
</body></html>

931:Name_Not_Found
07/05/02 12:32:07
Arrayのprototype拡張するとかありえない

932:929
07/05/02 12:50:06 gIB6sOw+
>>930さん ありがとうございました。
危険ですね。for-inが悪夢を呼びそうです。
>>931さん
ありえない、とは?>>930さんのでもありえなくはない
と思うのですが。向学のためにお聞かせください。

933:Name_Not_Found
07/05/02 12:53:53
for-in関連の事じゃね

934:Name_Not_Found
07/05/02 13:00:48
Arrayだけは駄目だな。
他のはある程度許されると思うけど。

935:Name_Not_Found
07/05/02 13:01:23
あ、ごめん、Objectは論外ねw

936:Name_Not_Found
07/05/02 13:30:46
そういう言語なんだから自由に拡張すればいいだろ。

937:Name_Not_Found
07/05/02 13:36:50
まあこのように、議論百出くらい危険というか(w
ところで私ことスレ立て人してるのですが、連休で明日から
6日まで出かける間に満杯になると思われるので、どなたか
適当に次スレ立ててくださいませ…

938:Name_Not_Found
07/05/02 13:44:02
>>937
全然危険じゃないというか、危険を煽る必要が全くない。
仮にバグっても、初心者1週間でもない限り、誰でも一瞬で気付いて修正できる。

939:Name_Not_Found
07/05/02 14:59:39
いやそういう意味じゃなく単に賛否両論あるねという意味
なんだがそう読めないかな。賛成派がいることは否定しないよ。

940:Name_Not_Found
07/05/02 16:18:26
>>937
乙。一路平安!帰国の際はご一報を。マカデミアナッツageよろ。

941:Name_Not_Found
07/05/02 16:28:56
常時粘着してないと毎度々々スレ立てなんてできないよな…

942:Name_Not_Found
07/05/02 22:54:03
前スレであったけど、言語の基本的な性能を失わせるから駄目なんじゃなかったっけ。
危険を煽るとかそういうレベルではなく駄目だろ。

943:Name_Not_Found
07/05/03 02:45:23
俺は組み込みオブジェクトも拡張できるのが
JavaScriptの基本的な性能のひとつだと思ってるがな。
ObjectはさすがにないがArrayならメリットのほうが大きいだろ。
大体配列をfor-in文で回したら列挙の順番が保証されないし、
疎な配列なんて普段使わんから配列に関するfor-in文の有効性を感じない。
まあこれは全部自作スクリプトで構成するのが前提なんで、
外部ライブラリとか使うならデメリットのほうが上回るかもしれんが。

944:Name_Not_Found
07/05/03 09:41:19
mozillaの__defineGetter__ , __defineSetter__ に相当する動作をIE6で実現したいのですが何か良い方法はありませんか。
URLリンク(developer.mozilla.org)



945:Name_Not_Found
07/05/03 10:39:43
>>929
自分で拡張するのも悪くないと思うが、prototype.js を使うのがデファクトスタンダードかと。
Rubyちっくなクロージャも簡単に使えるようになる。

946:Name_Not_Found
07/05/03 10:42:46
疎な配列は、使うと便利だけどな。慣れてない人が多いだろうけど。
俺は組み込みオブジェクトのprototype拡張って、グローバル関数を作るのと同じくらい嫌だな。
適当なクラスを作るほうがいいなぁ。好みの問題だけどね。

947:Name_Not_Found
07/05/03 11:31:56
>>946
> グローバル関数を作るのと同じくらい嫌だな。

グローバル関数を作るのがかなり嫌な感じに読み取れたんだけど、
グローバル関数ってそんなに作らない方が良いものなの?
適当に作る時はクラスとか用意せずグローバル関数で作っちゃうんだけど。

948:Name_Not_Found
07/05/03 12:34:37
>>944
求めている物とは全然違うだろうが、
URLリンク(msdn2.microsoft.com)
にGET属性やPUT属性がある。

949:Name_Not_Found
07/05/03 12:46:19
>>947
適当なときは何をやってもいいと思うけど、
納品するソースコードの構造にはかなり気を遣う気がする。
基本的にはグローバル変数は1個か2個で、
あとはスコープで必要ないところから見えないようにパッケージしてる。

950:Name_Not_Found
07/05/03 13:12:54
>>945
>Rubyちっくなクロージャも簡単に使えるようになる。
現在はともかく、初期においてはどう見てもJS初心者だった作者が
勢いで好きなRuby風に書いたのだろうから、Rubyチックなのは当たり前だろう。
しかし、クロージャに関しては、Rubyチックなクロージャにできるわけがない。
そもそもRubyのクロージャは個性的だろ。少なくともJSのそれ(関数でクロージャ)とは違う。
まあ、メソッドの名前などが同じということと混同しているだけだろうが、少しでも正しい向きに認識した方がいい。

951:945
07/05/03 16:33:04
そのとおり、Rubyちっくなのはクロージャを利用するEnumerableなメソッドな。
eachはもとより、detectとかfindall、そしてinjectとか。
JSのクロージャじゃなくて、Prototype.jsで実装しているクロージャのこと。
関数でクロージャというのは、Rubyでも基本的には同様だ。

>しかし、クロージャに関しては、Rubyチックなクロージャにできるわけがない。
というのはコードブロックのスコープのことでも指してるのか?


952:Name_Not_Found
07/05/04 11:30:47
>関数でクロージャというのは、Rubyでも基本的には同様だ。
スレ違いなんだが、それどこの脳内Ruby?w

953:Name_Not_Found
07/05/04 21:04:50
正確には関数じゃなくてメソッドな。Rubyなんだから

954:Name_Not_Found
07/05/04 22:31:30
JavaScript質問スレ
スレリンク(hp板)

955:Name_Not_Found
07/05/05 00:31:18 Etv08Alo
質問なんですが、jsファイルからjsファイルをインクルードすることは不可能なんでしょうか?

956:Name_Not_Found
07/05/05 01:56:02
ねだるな、ググれ、さすれば与えられん

957:Name_Not_Found
07/05/05 03:57:18
つJSONP

958:Name_Not_Found
07/05/05 06:22:05
実際はJSONPを使わないけどな

959:Name_Not_Found
07/05/05 23:46:49
さすったら赤くなってきたよ

960:Name_Not_Found
07/05/06 00:22:03
function hoo(id_num) {

id_num.innerText = "Changed!";

}
これがうまいこと行かない。。
id_numが展開されてないみたいなんだけど、どうすればよろし?



961:Name_Not_Found
07/05/06 00:33:32
>>960
どう上手くいかないかってエラーと、
hooの呼び出し方をどうしてるかを書いた方がよろし

962:960
07/05/06 01:00:30
スマソ

function hoo(id_num) {
id_num.innerText = "Changed!";
}

呼び出し側
<input type="checkbox" name="1" value="chk" onClick="hoo(id_1);"<span id="id_1">データ取得する</span>

チェックボックスの横にある文字をチェックで動的に変更したいんだけど

hoo側のid_numが展開されずにid_1.innerTextとならない。
何かいい方法ない?



963:Name_Not_Found
07/05/06 01:07:38
inputを閉じてないのは何故なんだぜ?

964:Name_Not_Found
07/05/06 02:53:37
>>962
spanの前でinputを閉じてると仮定して、やりたいことはIEで上手く行ってる気がするけど?
Firefoxで駄目って言うならinnerTextをinnerHTMLに変えたらいいのかな

ただ、document.getElementById()使ってない時点で気持ち悪いから
FirefoxにFirebug入れてバグ取りした方がいいと思うよ

965:Name_Not_Found
07/05/06 03:29:59
Firebugって作者の独りよがりなtoString()の結果を吐く使えない拡張のことだよね。
面白いけど、あんなもの使えませんよ。
喜んでるのはPrototype.jsで入門したような初心者ばっかりじゃん。

966:Name_Not_Found
07/05/06 03:38:22
苦労人乙。

967:Name_Not_Found
07/05/06 04:02:11
いまだにprototype.jsとか使ったことないんだけど、最近とても負け組な気がしてます。

968:Name_Not_Found
07/05/06 04:42:57
>>965
>>962の状態から薦めるとしたらFirebugが一番いいかなと思ったのだけど。
あぁ。Firefoxは普通にjsコンソールでわかるのか。
Firebug入ってるのがデフォだから入れないと見れないかと勘違いした。

969:Name_Not_Found
07/05/06 09:19:42
prototype.jsは要らん。中見ると分かるが、あのライブラリを作った人間は
JavaScriptを他言語の視点で見ている。すでにbuggieなところも指摘されて
いる。要するに自作関数ひとつロクに書けない奴がありがたがっているだ
けのもの。

970:Name_Not_Found
07/05/06 13:42:28
それをここに書き込んでも、空ろに響くだけ。

971:Name_Not_Found
07/05/06 14:27:39 aETLRuxv
質問です。
var a = 1;
f(a);
function f(b){ alert( b ); }
で、f(a)を実行する時点でどうしてオブジェクト未定義の
エラーにならないのでしょうか。そのときはまだ関数が読
み込まれていないのでエラーが出ると思うのですが。

972:Name_Not_Found
07/05/06 14:53:32
関数は先に認識されてから実行される

973:971
07/05/06 16:08:50 aETLRuxv
>>972さん
そういうことなんですね。ありがとうございます。

974:Name_Not_Found
07/05/06 21:06:29
ところでjqueryってどこからダウンロードしたらいいんですか?

975:Name_Not_Found
07/05/06 21:11:14
休みはもうすぐ終わりだな

976:Name_Not_Found
07/05/06 21:28:53
月曜日だな

977:Name_Not_Found
07/05/06 21:48:41 J0s6cMJQ
URLリンク(blog.livedoor.jp)
>記法中のjavascriptを、(function(){/* ... */})()でくるむことで、変数衝突を回避
とあるのですが、()()と囲んでいるのはなんでしょうか?

978:Name_Not_Found
07/05/06 22:14:19
script.js
----
function hage(){
alert('go bold!');
}
----

index.html
----
<script src="script.js"></script>
<button onclick="hage();">hage</button>
----

上のソースで、script.jsの読み込みが完了していないときにボタンを押すとエラーになりますが、何かウマい解決方法はないでしょうか。

979:Name_Not_Found
07/05/06 22:17:23
>>977
function f(){
alert();
}
var a=f;
a(); ←「 () 」

/*-------------*/

var a=function(){
alert();
}
a(); ←「 () 」

/*-------------*/

(function(){
alert();
})(); ←「 () 」

980:Name_Not_Found
07/05/06 22:59:38
944です。

>>948
今回必要としている物とは違うようですが参考になりました。
機会があったら使用してみたいと思います。ありがとうございました。

質問した件はIE固有の話のため、少し強引ですがVBScriptとの連携で対応しようと考えています。
具体的にはVBScript側でProperty Let と Property Getを含めたClassの定義及び
インスタンス化までを行い、そのインスタンス変数をJavaScriptから使用します。

それでも生成済みオブジェクトに対して
動的にプロパティを追加することは出来ないですが、
例えば、Classの構造を記した文字列にプロパティ記述を追加し
execScriptすることで対応できないかと考えています。

スレ違いになりそうなのでこの辺で。

981:Name_Not_Found
07/05/06 23:01:02
>>978
script.js内にダブらないグローバル変数を定義しておいて、変数が見つかるまでsetTimeoutで一定時間ごとにループしつつ判定し、見つかったらbuttonにonclickイベントを割り当ててからループをやめる

・・・のは無駄なのでscript.jsの最後にbuttonにonclickイベントを割り当てる処理を書く。

982:Name_Not_Found
07/05/06 23:54:00
>>978
onclick="if (typeof hage == 'function') hage();"

しかしclickイベントタイプのようなbubblesプロパティがtrueであるイベントオブジェクトは
documentやwindowのように変更されない(変更されないと楽観視できる)オブジェクトを適切に選んでcurrentTargetにする。
ただしtargetを識別するための情報を事前に確保しておく。例えば<button id="HAGE">のように。

983:Name_Not_Found
07/05/07 06:27:12
window.hage&&hage() しちゃうな。>>982 と変わらんけど。
もしくは<head>内<script>でダミーのhoge()つくっといちゃう。

984:Name_Not_Found
07/05/07 09:00:59
<script language="JavaScript">
<!--
function myFunc(){
myD = new Date();
myYear = myD.getYear();
myYear4 = (myYear < 2000) ? myYear+1900 : myYear;
myMonth = myD.getMonth() + 1;
myMonth2 = (myMonth < 10) ? 0+""+myMonth : myMonth;
myDate = myD.getDate();
myDate2 = (myDate < 10) ? 0+""+myDate : myDate;
myMess = myYear4 + "" + myMonth2 + "" + myDate2;
document.write( myMess );
}
// -->
</script>

これでmyMessは20070507などとなってるわけですが、ここで

<a href=/contents/txt○○○○.html>今日のお話</a>

のようなリンクを作って、○○○○に今日の日付を入れたいのですが
どのようにすればいいのかわかりません
よろしくお願いします


985:Name_Not_Found
07/05/07 10:16:18
>>984
DOM getElementByID setAttributeあたりでぐぐれ

986:Name_Not_Found
07/05/07 15:58:14
>>984
<a href="javascript:window.location.href='/contents/txt'+myMess+'.html'">今日のお話</a>

987:Name_Not_Found
07/05/07 16:00:10
「;」忘れてた

988:Name_Not_Found
07/05/07 17:52:11
新スレ
スレリンク(hp板)l50

989:Name_Not_Found
07/05/07 19:31:40
湯加減は?うめる?

990:Name_Not_Found
07/05/07 20:39:50
次スレのテンプレにある参考サイトの是非とかここでやるのはどう?
実際にこういうサイトを見てる人の意見が聞きたい。

991:Name_Not_Found
07/05/07 21:19:05
>>989
風呂を「うめる」、というのはどこの言葉?
東北出身の母のいるうちでは普通に使うんだけど、
京都では周りにほとんど通じない気がするんだよな。


992:Name_Not_Found
07/05/07 22:33:40
うめるは結構いろんなところで通じるけど
大阪の友達は湯を張ることをうめるって言ってて混乱したな

993:Name_Not_Found
07/05/07 22:36:43
洩れは東京だけど。普通に使うよ。水を足して湯の温度を下げるっていう
意味で。あと、京都では風呂かも知れないけど、東京じゃ湯だね。


994:Name_Not_Found
07/05/07 22:44:48
新スレ
スレリンク(hp板)l50

995:Name_Not_Found
07/05/07 22:52:45
大阪出身。
うめるって使いましたが、
1.熱い時に水でうめる
2.ぬるい時にお湯でうめる
という使い方が多かった。1がより多かったかな

996:Name_Not_Found
07/05/08 00:19:59
大阪出身だけど、風呂の話をしている時に
「うめる」っていう動詞を使ったことはないな

997:Name_Not_Found
07/05/08 00:25:54
「水でうめる」って江戸っ子のジイさんが銭湯で言う。
「べらんめえ、うめるな」みたいな。

998:Name_Not_Found
07/05/08 00:36:57
関西じゃあ、うめるのは固体ですよね?

999:Name_Not_Found
07/05/08 00:39:56
方言ってわけでもないようだね
URLリンク(dictionary.goo.ne.jp)

↓1000

1000:Name_Not_Found
07/05/08 00:42:10
<丶`∀´>

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


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