+ JavaScript の質問用スレッド vol.63 +at HP
+ JavaScript の質問用スレッド vol.63 + - 暇つぶし2ch887:Name_Not_Found
08/04/12 01:39:21
>>886
まじな話、どうすんの?

888:Name_Not_Found
08/04/12 01:44:54
element.innerHTML はなぜ速く見えるか
URLリンク(blog.livedoor.jp)

889:Name_Not_Found
08/04/12 01:57:36
>>885
アホな自称"常連"の末路か。

890:Name_Not_Found
08/04/12 02:04:23
>>887

aaa.push("ちんちん");
aaa.push("まんまん");

innerHTML = aaa.join("");

891:Name_Not_Found
08/04/12 02:04:29
>>887

"a"+"b"+"c"+"d"
  ↓
["a", "b", "c", "d"].join("")

892:Name_Not_Found
08/04/12 02:13:03
それじゃ追加できないだろ

893:Name_Not_Found
08/04/12 02:13:11 zTSoQzWq
以下のようにtable_listでテーブル内の要素を参照したいと思います。
グローバルでtable_listを定義してfunction内で要素を参照
するにはどう記述すれば良いでしょうか?function内でtable_listを
定義すれば要素を参照できるのですが、グローバルで定義すると
function内では参照できないようです。

お手数ですがご教授頂ければ幸いです。

<head><script language="Javascript">
table_list = document.getElementById("table_list");
window.onload = disp_table;
function disp_table () {
// var table_list = document.getElementById("table_list");
.....
}
</script></head>

<body>
<table id="table_list">
<tr><td>.....</td></tr>
</table>
</body>

894:Name_Not_Found
08/04/12 02:19:43
>>892
aaa.push("ちんちん");
aaa.push("まんまん");

innerHTML += aaa.join("");

895:Name_Not_Found
08/04/12 02:21:15
べた書きで table_list = document.getElementById("table_list"); ってやっても
その時点では id="table_list" のものはないでしょ

896:Name_Not_Found
08/04/12 02:24:50
だな。そのソースの場合、ブラウザは
1. document.getElementById("table_list");を実行。nullが返却される。
2. <body>タグや<table id="table_list">読み込み
3. window.onload実行→disp_table

897:Name_Not_Found
08/04/12 02:30:31
実際は、>>890>>891の組み合わせだな。
pushメソッドより配列のコンストラクタ一発の方が早い。
だが追加ができない。
ちなみに>>894みたいなことができるコードって限られてるよね。イベント潰れちゃうから。

898:Name_Not_Found
08/04/12 02:43:56
1000行ぐらいのテーブルを挿入する競争ヤローゼ

899:Name_Not_Found
08/04/12 03:03:11
条件統一出来ないだろw CPUとかブラウザバージョンとか

900:Name_Not_Found
08/04/12 03:39:37
手書きじゃないのか

901:Name_Not_Found
08/04/12 05:38:56 0rg+p92U
setTimeoutについて質問があります。

function f0(){
f1( {'hoge':5} )
}

function f1( a ){
setTimeout("f2(a)", 500);
}

function f2( b ){
alert(b.hoge);
}

↑f0()を実行。

このように、文字列や数値以外のものを、setTimeoutに入れる関数の引数に指定するにはどうすればいいでしょうか。
文字列や数字であれば setTimeout("func(" + x + ")", 500); などとできるのですが・・・

902:Name_Not_Found
08/04/12 05:50:23
setTimeout( function(){f2(a);}, 500 );

903:Name_Not_Found
08/04/12 06:36:08
Firefoxなら
setTimeout("func(" + uneval(x) + ")", 500);

904:Name_Not_Found
08/04/12 07:09:31
Firefoxなら
setTimeout(func, 500, x);

905:Name_Not_Found
08/04/12 08:18:38
>>901 過去スレで頻出な質問だぞボケ!

906:Name_Not_Found
08/04/12 08:31:07
900超えたのでテンプレ議論あれば今どうぞ。
エラーが出る最小限のサンプルを作れとかは >>1 に入れる
べきなんだろうか。1行で済まないと苦しいというか。

907:ぼけなす
08/04/12 08:39:54 WZvANyQQ
ところで "FAQ サイト" とか 誰か作ってるのかなぁ~ ?
("テンプレ見ろボケが !" とかいわれそう... ぶるぶる...)

908:Name_Not_Found
08/04/12 08:49:39
洩れのところ(Unix Moz)ではinnerHTMLのが倍速いけど、
DOMでもっと速くできるもんなのかな?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test(count, dom) {
var t0 = new Date().getTime();
if(dom) {
var t0 = new Date().getTime();
var f1 = document.createDocumentFragment();
var s1 = document.createElement('span');
s1.appendChild(document.createTextNode('x '));
for(var i = 0; i < count; ++i) f1.appendChild(s1.cloneNode(true));
document.getElementById('d0').appendChild(f1);
} else { // innerHTML
var a = new Array(count);
for(var i = 0; i < count; ++i) a[i] = '<span>x <\/span>';
document.getElementById('d0').innerHTML = a.join('')
}
var t1 = new Date().getTime(); alert(t1-t0);
}
</script></head><body>
<div id="d0"></div><div><button onclick="test(10000, true)">Test1</button>
<button onclick="test(10000, false)">Test2</button></div></body></html>

909:Name_Not_Found
08/04/12 08:53:52
FAQはテンプレの>>3-4にあるので十分。>>901の質問も
>>4のQ14/A14を応用すればできる。応用できない奴は向いてない。

910:Name_Not_Found
08/04/12 11:11:24
向いてないとか完全否定は(・A・)イクナイ!!
勉強が足りないとかに汁。

911:Name_Not_Found
08/04/12 11:32:11
まあさ、勉強できる奴はメモ程度の持参でいいわけ。できない奴は
教科書に線引きまくりで。それでも点は取れない。

912:Name_Not_Found
08/04/12 12:01:04
デキッコナイス!

913:Name_Not_Found
08/04/12 12:23:19
テンプレに
~質問以前に手取り足取りしてほしい方は~
JavaScript手取り足取りスレッド
スレリンク(hp板)

って載せた方が良いような気もする。
いちいち誘導するの面倒になってきた

914:Name_Not_Found
08/04/12 12:30:58
type="file"操作の質問多いからこれテンプレ入れないか

915:Name_Not_Found
08/04/12 13:19:35 gYw71jVr
URLリンク(www.xn--cckza4ab6e9czhb.net)
これはJavaScriptかな?

916:Name_Not_Found
08/04/12 13:21:53
>>913
このスレはJavaScriptがある程度書けて、ソースコードによる回答でも理解が出来る人間が対象だろうから、
入門(隔離)スレとしてそのスレを利用するのが良さそう。

>いちいち誘導するの面倒になってきた
お前が◆.PT9876/4Uでは無いなら、誘導した事なんて無いだろうと。

917:Name_Not_Found
08/04/12 13:23:29
>>913>>916
隔離スレをテンプレに入れるかなあ。だいたいテンプレ読むような奴は
なんら問題ないんだよな。
>>914 こうかな。
Qx. input type="file"の値を参照/設定できないのですが…
Ax. セキュリティ制約のため絶対にできないようになっています。

918:Name_Not_Found
08/04/12 13:53:17
>>818>>830>>840
みたいなソースコードでの回答が分からないやつもいるしね

919:Name_Not_Found
08/04/12 14:03:05
>>917
参照できるだろ。
つうか、このとんでもな理解がごく当たり前のように妄信されているんだが、むしろこういう>>917みたいなのが自発的に頭を整理する方が先決だ。

920:Name_Not_Found
08/04/12 14:04:20
>>917
>>1のJavaScript質問スレ道場訓のようなゴタクよりも、
本当に必要な情報だけを書けばテンプレを見る人間も増えるのでは。

実際は初心者を隔離するというよりも、
すぐに発狂し煽るだけの"常連"の発生を抑制するのが目的なんだけど。

921:Name_Not_Found
08/04/12 14:06:09
>>917
JS出来ないやつだってまともなやつはテンプレ読むぞ。
JS出来ない真面目くんがテンプレに何も書いて無かったらここで質問しちゃうだろうに。

JS出来るやつはまともで出来ないやつは駄目な奴と考えては(・A・)イクナイ!!

922:Name_Not_Found
08/04/12 14:20:17
人権問題か

923:Name_Not_Found
08/04/12 14:33:24
以上>>917三連発でした

924:Name_Not_Found
08/04/12 14:46:14
このスレでinput type=fileの制約について整理しよう。
よくわかんないけど、
JavaScriptで値の参照は出来る。値の書き込みは出来ない。
動的にinput type=fileのタグを挿入することは出来る?
ブラウザのファイル選択ダイアログでファイルが選択された時のイベントを取得することは出来る。

他何か注意事項ある?

925:Name_Not_Found
08/04/12 14:57:18
>>924
自己レス。
動的にinput type=fileなタグ(ノード)を挿入することは出来る。
動的に挿入したノードに対し、clickイベントを発行することでブラウザのファイル選択ダイアログを出させることは出来る。
input type=fileノードが非表示状態でもイベント実行やファイル選択ダイアログでファイルを選択したことのイベント検知は出来る。

926:Name_Not_Found
08/04/12 15:08:22
ごたくはいいから1行ずつのQ&Aにまとめて提案してよ。まとまらないなら
次スレには入れられないというだけのことなんでね。

927:Name_Not_Found
08/04/12 15:12:47
FAQ14のこの項目の記述検討中ってのもそろそろ検討しようよ。
ちなみにFAQ14の記述のうちどのあたりを検討したいと思ったのかよく分からないのですが、
メモリリークする辺りであれば、
スクリプト内の循環参照は、用途が終わったら束縛を切ればいいよね。
ブラウザ側でのメモリリークバグについて一応触れておくぐらい?

928:Name_Not_Found
08/04/12 15:14:30
>>926
>>917>>919で意識違いが発生しているため、
FAQに入れるまえに確認が必要だろ。
そのあと、必要と思われるものをFAQにいればいいかなと思う。

929:Name_Not_Found
08/04/12 15:16:32
ではこうかな。これ以上(イベントとか)入れる余地はないと思うけど…
Qx. input type="file"の値を設定できないのですが…
Ax. セキュリティ制約のため設定は絶対にできないようになっています。


930:松崎しげらない
08/04/12 15:27:36
松崎しげらない

931:Name_Not_Found
08/04/12 15:29:30
>>100のようにブラウザによって違うとの意見もある。
なので、最近のブラウザのみ対象とした書き方がいいかなと思ってる。

>>638のやつも>>640が言うには何度も質問受けてると言ってる。


932:Name_Not_Found
08/04/12 15:34:22
>>927
切ればいいけどボタンとか設置していていつでも押せるように
なってるんだと切れない(最初から循環参照を避けるしかない)
ような気がするんだけどどうかな。
>>931
Qx. input type="file"の値を設定(参照)できないのですが…
Ax. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。

933:Name_Not_Found
08/04/12 15:36:07
面倒だから
Qx.<input type="file">の値を設定など出来ないですorz
Ax.このスレでは過去に議論が起きて決着がつかないためその質問には答えません

っていうのを提案

934:Name_Not_Found
08/04/12 15:41:08
>>932
でも作り上、循環参照を避けたつくり方にするのは、
きつい制約で現実的じゃないんじゃないの。

935:Name_Not_Found
08/04/12 15:50:42
おれは>>932のでいいと思う。
ファイル選択ダイアログのファイルの種類の指定方法が出来ないことは
FAQで触れるほどの質問は来てないと思ってる。

936:Name_Not_Found
08/04/12 16:59:52
>>933
そんなのなら書く意味がないよね。
>>934
いやまあ、やり方次第だろうけど、結局こういうふうにあれこれ
あるから「検討中」から記述を直すことができないでいるんだよねー。

937:Name_Not_Found
08/04/12 17:24:22
>>933がただの低脳かネタなのかが分からない俺orz

938:Name_Not_Found
08/04/12 17:27:14
>>101という意見もあるぞ。
IE8beta1、FireFox3beta5、Safari3.1で確かめたが、全部参照は出来たな。


939:Name_Not_Found
08/04/12 17:35:38
>>938
おっと。すまん。
FireFox2だとフルパスで取得できるけど、
FireFox3beta5だとディレクトリまでは取得できなくて、ファイル名だけだった。
でもこれはセキュリティーゾーンがローカルの場合。
インターネットゾーンどうなるかな?

940:Name_Not_Found
08/04/12 18:40:27
インラインフレームで、親から子へは、iframeにname属性付けて操作出来るんだけど
子から親を操作(親のhtmlに書いてある関数を実行)するにはどうしたらいいの?

941:Name_Not_Found
08/04/12 18:56:19
親(parent)

942:Name_Not_Found
08/04/12 19:39:36
文字列リテラルにURIデコードできそうな文字列が入ってると
勝手にデコードされる挙動はどの仕様に含まれますか。

alert('%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A') // あいうえお

943:Name_Not_Found
08/04/12 19:44:06
>>941
htaのiframeからだと取得出来ないのね…
何回parent.parent.parent.parent.parent.parent.parentしても自分自身を返す

944:Name_Not_Found
08/04/12 20:20:33
>>942
アドレスバーさんの特殊能力じゃね?

945:Name_Not_Found
08/04/12 20:42:06
>>943
HTAをもっと流行らせる計画
スレリンク(tech板)


946:Name_Not_Found
08/04/12 21:08:54
>>944
そのとおりでした。アドレスバーで動かしてました。
アドレスバーではデコードされてから実行されるんですね……。

947:Name_Not_Found
08/04/12 23:44:28
>>921の言うとおりこのスレをきちんと主張したほうがいいと思う。
・このスレはある程度の基礎とマナーを備えた人が質問する場です。
 解答はソースコードが読める方でないと受けられないので、
 マナーが無い方はママのところへ、基礎が分からないもしくは勉強したい方は下のスレへどうぞ
 ~JavaScript手取り足取りスレッド~スレリンク(hp板)
って感じに。


948:Name_Not_Found
08/04/12 23:51:17
やっぱりJavaScriptはわかりづらいね。まともなページ見つけるのにも一苦労するし
メソッドの継承とかも簡単にできない不完全なオブジェクト指向だから結構操るのに大変

949:Name_Not_Found
08/04/13 00:35:54
言語仕様なんてたいしてつまずかないだろ。

950:Name_Not_Found
08/04/13 00:54:21
>>948
クラス-インスタンス思考のままだと、"何じゃこれ?"ってなるよ。

951:Name_Not_Found
08/04/13 07:29:09
前に覚えた言語をベースにして理解しようとするから躓くんだ。
すべて忘れて一から学べ。

952:Name_Not_Found
08/04/13 07:35:27
Javaでいうところの親クラスのメソッド呼び出しってどうやるんですかね?


953:Name_Not_Found
08/04/13 07:42:50
var ClassA = function(){
  this.method = function(){
    alert("testA");
  }
}
var ClassB = function(){
  var self = new ClassA();
  var superMethod = self.method;
  self.method = function(){
    alert("testB");
    superMethod();
  }
  return self;
}

こんな感じか?もっと簡単な方法ないかな?

954:Name_Not_Found
08/04/13 07:57:22
>>947 の意見は確かにその通りだと思うけど、もう
議論している余裕がないので次々スレで対応ということ
にしませんか。今回はFAQを1個追加、循環参照のはそのままで。
975超えたら作りましょう。

955:953
08/04/13 07:59:16
953じゃダメだな

956:Name_Not_Found
08/04/13 08:17:09
>>952
this.constructor.prototype.メソッド名.apply(this, arguments)
とか。

957:952
08/04/13 08:41:32
>>956
おお、すばらしい。
これは調べてもなかなか出てこないな

958:Name_Not_Found
08/04/13 09:11:32
ワロタ

959:Name_Not_Found
08/04/13 09:14:37
>>954
次々スレで対応ってことは、少なくとも次スレでは誘導しなきゃいけないんだな。

960:Name_Not_Found
08/04/13 11:39:30
PerlとかPHP系のサーバーサイドにできなくて、
JavaScriptとかVBScriptとかのクライアントサイドにできることって何かな?

今思ったのはどうせ学ぶんならPerlかPHPから始めればよかったって思ってる・・・
サーバーサイドが出来ればコンテンツの自給自足はある程度できるけど、
クライアントサイドを神の領域まで達してもネタぐらいしかできないような気がするんだ...

真面目に誰か助けてorz

961:Name_Not_Found
08/04/13 11:49:40
>>960
JavaScriptでできることってユーザインタフェース系だと
思うのね。メニューとかコンテンツの表示非表示とか動かすとか。
ただ、JavaScriptがちゃんと書けるようになれば鯖側言語だって
すぐ学べると思うけどなー。

962:Name_Not_Found
08/04/13 11:51:23
とうことはJavaScriptが初めての言語かと。
初めの1インチの誤りは1年後の50フィート。

963:Name_Not_Found
08/04/13 12:21:48
>>960
JavaScriptは導入までのハードルが低いので勘違いされているけれど、
仕様的に自由度が有り過ぎるので、入門用としては非常に不向き。
現在のプログラミングはオブジェクト指向的な考え方が必須となっているので、
今後本気でプログラマを目指すなら、まずOOPなJavaをやるのをお勧め。

JavaScript自体は、OpenSocialなどを見ても判るように、
利用範囲は拡大傾向なのでやっておいて損は無いけれど。

964:960
08/04/13 14:29:02
ふむ、JavaScript頑張ってみるよ。
今月からJavaScript初めたんだけどある程度の基礎は消化したです。

どこらへんまで消化したら鯖側言語に移行すべき?

965:Name_Not_Found
08/04/13 14:46:24
>>964
今これから。JavaScriptが必要になったらまたやればいい。

966:960
08/04/13 14:56:30
じゃあ今日からJavaScriptを忘れて鯖言語に移行しよう。
またきっと戻ってくるよノシ

967:Name_Not_Found
08/04/13 15:48:11
>>960
>JavaScriptとかVBScriptとかのクライアントサイドにできることって何かな?
A:鯖処理の丸投げ。

968:Name_Not_Found
08/04/13 15:56:33
全部サーバー処理ですれば、それはトラフィックの増大を意味し、
ユーザーが増えるにつれて負担が倍増する。これが致命的。
サーバーからは出来るだけ最小限度の情報の送信に押さえて
後はユーザーのパソコンで勝手にやってもらうのが吉。
そんじゃないと例えばgoogleMapなんてもんはいくらでかいサーバーでも動かんよ。

969:Name_Not_Found
08/04/13 16:03:35

parentElement1.appendChild((document.createElement("span")).appendChild(document.createTextNode("aaa")));

みたいに捨て変数使わずに書きたいんだけどあってる?

970:Name_Not_Found
08/04/13 16:09:18
今はないんだけど昔この板でもリンクさせてたECMAScriptチュートリアルって
サイトあったよね。あれってどこかで生きてるのかなあ。知ってたら教えて。

971:960
08/04/13 16:32:47
JavaScriptとCGIの組み合わせでの負荷の軽減は、
2chのread.jsみたいなものですか?

972:Name_Not_Found
08/04/13 16:39:38
Ajaxもそういう意味合いはあるんだと思うな。
鯖側で送り出す部分は変化した最小限の部分だけになるから。

973:960
08/04/13 17:27:27
今PHPの基礎サイト見て軽く勉強してるけど、
JavaScriptが身についてるおかげで条件分岐とループと配列らへんはすぐ理解出来たよ。

今外部ファイルの読み書きに成功していて感動してる

974:Name_Not_Found
08/04/13 18:15:38
画像が4枚あってサムネイルをクリックしたらメインに表示されて
メインの画像がクリックしたサムネイルのところに表示されるようにするにはどうしてらいいのでしょうか?
↓サムネイルをメインに表示ができたのですが画像の入れ替えができません。

<head>
<title></title>

<script language="JavaScript"><!--
function bigImage(imageName,imageFile)
{
document.images[imageName].src=imageFile;
}
// --></script>

</head>

<body>
<img src="test.jpg1" name="bigScr">
<br><br>
<img src="test2.jpg" width=64 height=48 onclick="bigImage('bigScr','test2.jpg')">
<img src="test3.jpg" width=64 height=48 onclick="bigImage('bigScr','test3.jpg')">
<img src="test4.jpg" width=64 height=48 onclick="bigImage('bigScr','test4.jpg')">

</body>


975:Name_Not_Found
08/04/13 19:22:36 gocb4RkC
入力された文字数をカウントするテキストボックスを
過去スレを見て作ってみたんだけど、

> 55 :Name_Not_Found:2005/11/04(金) 17:04:49 ID:???
> 入力された文字列の半角文字と全角文字のそれぞれの
> 文字数を数えることってできますか?
>
> 56 :Name_Not_Found:2005/11/04(金) 17:24:50 ID:???
> >>55
> URLリンク(www.tohoho-web.com)

ちゃんと動作しました。ただ、一つだけ問題が。
Ctrl-X Ctrl-C Ctrl-V は利くんだけどCtrl-Z が動かない。
根本的に無理でしょうか?何か回避策があればぜひ教えていただければ…


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