+ JavaScript の質問用スレッド vol.57 +at HP
+ JavaScript の質問用スレッド vol.57 + - 暇つぶし2ch352:Name_Not_Found
07/06/25 12:44:35
>>321
出遅れたけど思いついたんで書いとく。

var v = -1 ;

function vibration() {
  v = (v + 1) % 200 ;
  return Math.abs(v-100) ;
}

353:Name_Not_Found
07/06/25 12:56:40 aSAdCUdR
質問です。

●●.htmlから○○.htmlをiframeで読み込んで、
○○.html内の画像のスワップイメージで●●.html上の画像を変える事は
できないんですかね?
やり方を教えてください。

354:321
07/06/25 12:58:55
>>352
これです!!絶対値までは思いついていたんですが、あと一歩が出なかったんです!!
最高にスマートです!!ありがとうございました!!!

355:Name_Not_Found
07/06/25 13:02:31 yjW/+9fS
しっかりこちらに漂着.
さて, 回答する人はいるのか ? (わくわく)

356:Name_Not_Found
07/06/25 13:10:12
null がすりゃいいダロ

357:Name_Not_Found
07/06/25 13:29:43
>>353
2つのHTMLが同一鯖ならできるが別鯖なら絶対不可能。
frames.IFRAMEの名前.document.images.IMGの名前.src = '画像のURI';

358:Name_Not_Found
07/06/25 13:32:51
>>355
もしかして >>317-318 のことを言っている?質問者逃げたかも。

359:Name_Not_Found
07/06/25 17:19:39 u7Jcm1wx
<input type="text" name="hoge" id="piyo" onFocus="~">と同じ動作を
document.getElementById("piyo")で処理させたいのですが、

var aaa = document.getElementById("piyo");
aaa.onfocus = function(){~}

とすると動いてくれません…。どうすればいいのでしょうか?

360:Name_Not_Found
07/06/25 17:23:03
>>359
そのdocument.getElementById()は「当該要素piyoが読み込まれた後で」
実行されるようになってるんだろうな?

361:Name_Not_Found
07/06/25 17:31:38 yjW/+9fS
>>356
我が辞書に "frame" の文字なし

>>355
WebProg 板にも出没.
結局, 誰にも相手にされず...

>>359
window.onload=function(){
document.getElementById('piyo').onfocus=function(){~}
}

362:Name_Not_Found
07/06/25 22:40:18
URLリンク(www13.plala.or.jp)
のブロック崩しのソースコードを読んでいます。
"index.html"の下に"main.html"と"sub.html"の2つのフレームが置いてあり、
計3つのHTMLファイルでJavaScriptが動いています。

"sub.html"の中に下のような部分があるのですが、これは何をしているのでしょうか?
コールバックのトリガーみたいなのですが、仕組みがよくわかりません。
特に、「this.call = function()」「parent.callback = new CallBack()」のところが。
"callback"というのは、親フレーム(index.html)の変数で、兄弟フレームからも参照されています。
詳しい方、よろしくお願いします。

function CallBack() {
  this.call = function() {
    parent.fGame_init();
    parent.timerID = setTimeout( "gamemain()" , 0 );
  }
}
parent.callback = new CallBack();

※各URL
URLリンク(www13.plala.or.jp)
URLリンク(www13.plala.or.jp)
URLリンク(www13.plala.or.jp)

363:Name_Not_Found
07/06/25 22:46:32
>>362
典型的な OOP 記述.
function CallBack() は いわゆる constructor と呼ばれるもの

364:362
07/06/25 23:02:00
OOP関係ですか。知りませんでした。
少し調べたのですが、ちょっとすぐには理解できなさそうです。
勉強し直します。ありがとうございました。


365:Name_Not_Found
07/06/26 00:35:25 3/vkJzX1
あの、javascriptで2chとまったく同じデザイン、機能や仕様の掲示板って
作れるのでしょうか?

366:Name_Not_Found
07/06/26 00:38:05
はい?

367:Name_Not_Found
07/06/26 01:22:12 rDYL9hqk
URLリンク(q.hatena.ne.jp)
ここに書いてあることと同じことをしたら
>newDoc.getElementById("NotUnique")
この部分で
「getElmentById is not a function」
とエラーが出てしまいました
どうしてなのでしょうか?

368:Name_Not_Found
07/06/26 01:29:28
>>367
そのエラーメッセージはコピペしたんだよな?
だったら、getElmentByIdというメソッドが存在しないから。

369:Name_Not_Found
07/06/26 01:36:20 3/vkJzX1
javascriptでwebの掲示板作りって可能なんですよね?では2ちゃんねるの
ようなデザインに掲示板を作れるのですか?

370:Name_Not_Found
07/06/26 01:37:51
はい?

371:Name_Not_Found
07/06/26 06:46:05 /5OlroJP
>>367
"要求された id の element を探したけど見つからなかったぜ ゴルァ"
と言ってるのだと意訳しましょう.
getElementById() method では ありがちなエラーなのだ.

372:Name_Not_Found
07/06/26 07:30:19
>>369
>javascriptでwebの掲示板作りって可能なんですよね?
ダウト

373:Name_Not_Found
07/06/26 07:42:36
>>371
newDoc も document.getElementById('newDoc') みたいに getElementById で取得する実装になっているなら
まさに "要求された id の element を探したけど見つからなかったぜ ゴルァ" だが、
>367 の URL を見る限り、newDoc は document.createDocumentFragment() で生成されるようだから、見当違いだな。

>>367
URLリンク(q.hatena.ne.jp)  ここにある

> var TargetDiv = document.getElementById("Unique2");
> var newDoc;
> newDoc = document.createDocumentFragment();
> newDoc.appendChild(TargetDiv.cloneNode(true));
> alert(newDoc.getElementById("NotUnique").innerHTML);
> newDoc = null;

これを実行したものと仮定するが、ここで newDoc には DocumentFragment が入っている。
名前が紛らわしいが DocumentFragment は Document インタフェースを継承しないので
Document#getElementById メソッドは持っていない。だからエラーが出る。

直接は関係無いが、この URL に書いてあるような
同じ ID が何度も出てくる XML 文書を使うのはやめたほうがいい。理由は面倒なので書かない。

374:Name_Not_Found
07/06/26 08:01:49
>>371
元質問を良く見ろ。大嘘な解説偉そうにしてんじゃないよ半可通。

375:Name_Not_Found
07/06/26 08:05:26
>>369
javascriptではサーバ内に何か保存することは原理的に不可能。
だからアンタのブラウザ上だけで動作し、アンタ一人が書き込む
という掲示板しか作れないがそれでいいなら見た目は2ちゃんに
似せることもできるだろう。終了。

376:Name_Not_Found
07/06/26 09:42:27
対応するCGIプログラムをサーバ側に置けばかなり使いやすい物が出来るでしょう。
当然全員JavaScript有効が前提条件になるけど。

しかし2ch型2ch型と、いったいこれのどこが使いやすいのかね。
最低最悪のデザインと低スキル丸出しなバグの山と下痢便のようなファイル構成。
まだblogを掲示板代わりに使った方が便利だと思う。

377:Name_Not_Found
07/06/26 09:55:14
そうだね、お家帰ろうね

378:Name_Not_Found
07/06/26 11:29:06
おじいちゃん、こんなとこにいたんですね。
お薬の時間ですよ。さ、行きましょう。

379:Name_Not_Found
07/06/26 11:50:23 3JjgAU5G
質問です。
toSourceメソッドってIEでも動きますか。異環境なのでチップスお願いします。

380:Name_Not_Found
07/06/26 12:11:50 IQXeVWkY
みなさん返事ありがとうございます。では2ちゃんねるの管理人
ひろゆき氏はどのwebプログラミング言語でこの掲示板を作った
のですか?質問ばかりで申し訳ございません。

381:Name_Not_Found
07/06/26 12:43:05
perlじゃね?
ちなみに2chのクローンなんてのは沢山有るから、今更作っても全然需要無いよ

382:Name_Not_Found
07/06/26 12:43:48
最初はPerlだったかな

383:Name_Not_Found
07/06/26 13:05:11
>>379
IEでは動きません。終了。

384:379
07/06/26 17:05:27 o0Xsq1qy
>>383
ありがとうございます。やっぱ動きませんか。
実装予定はいつごろですかね?
ついでにsetAttributeとaddEventListnerもお願い
します。

385:Name_Not_Found
07/06/26 17:58:36
誰にいってんの?

386:379
07/06/26 18:59:42
>>385
あ、すいませんでした言葉足らずで。
ビルゲイツがいたもんですから。


387:Name_Not_Found
07/06/26 21:32:23
そのバスに乗ってた人はもうみんな死んだんですけど。

388:367
07/06/26 22:26:15
>>368>>371>>373
ありがとうございます

URLリンク(q.hatena.ne.jp)
ここに書いてあることは嘘だったんですね・・・
>値取得できました!
>ありがとうございました。
って書いてあるのに・・・


389:Name_Not_Found
07/06/27 02:25:14 lkiXFTix
*script内の処理
function erase()
{
document.test.file_name.value = "";
}
*body内の処理
<form name="test">
<input type="file" name="file_name">
<input type="button" value="削除" onClick="erase()">
</form>

input type="file"で入力したファイル名を、ボタンを押すことによって
テキストエリアから削除ができるようにしたいんですけど、削除できなくて困っております。
input type="text"時は上記のやり方で削除出来たんですけど…
どなたか方法を教えて下さい。お願いいたします。

390:Name_Not_Found
07/06/27 02:27:04
name使わないで><

391:Name_Not_Found
07/06/27 02:33:31
document.test.file_name

document.forms['test'].elements['file_name']
だよな?

392:Name_Not_Found
07/06/27 02:44:21 lkiXFTix
レスありがとうございます。しかしまだ解決dきていません。無知で申し訳ありません。

>>390
name使ったらダメなんですか?
>>391
document.forms['test'].elements['file_name'] = "";
で出来るわけじゃないんですよね?

393:Name_Not_Found
07/06/27 02:49:15
>>392
いやそれは知らん。
まあ.valueが抜けてるけど関係ないだろう。
ググったら直ぐに出ると思うけどなあ

394:Name_Not_Found
07/06/27 06:23:21
>>393 小島善雄でつか?

395:Name_Not_Found
07/06/27 08:39:16
>>389-393
なんで皆こんなに無知なの? <input type="file">のvalue
はscriptからは*絶対に*書き換えられない。書き換えられたら
パスの分かっている重要なファイルとか取られ放題になるだろ。

空にするだけなら、その<input type="file">を独立した
formの中に入れてそのformをreset()することでできるが、
formが分かれるとまずいということだと難しいよね。

396:Name_Not_Found
07/06/27 08:43:41
>>388
documentFragmentに対してdocument.getElementById()が使える
という「標準外の機能を持った」ブラウザがその時使われて
いたとかじゃないですかね。だからその書き込みは嘘じゃない
けどあなたには役に立たないとか。

397:Name_Not_Found
07/06/27 08:50:29
上のやり取りを見て質問です。
フォーム部品を指定するとき、どの書式が望ましいですか?

1 document.test.id.value
2 document.forms['test'].elements['id'].value
3 document.getElementById('id').value

3>2>1?

398:Name_Not_Found
07/06/27 08:52:02
>>395
嬉しそうだなぁ。。
質問者がいきなり自演して自分にウソを教えればこのバカバカしい習性を利用できる。

399:Name_Not_Found
07/06/27 08:55:20
>>397
は?
1に決まってるだろ(呆)

400:Name_Not_Found
07/06/27 08:57:46
>>367
l の後ろの e が抜けている、つまり getElmentById じゃなくて getElementById
ということではないだろうか。
368 も同じことを言っているように見えるが。

401:Name_Not_Found
07/06/27 08:58:51
>>398
なるほどね、注意します ^_^; でもtype="file"の質問は
よく出るからFAQに入れてもいいかも。
>>397
1はIE専。その代替として
document.forms.test.elements.id.value
を勧めますが2でも3でも1よりマシでしょ。

402:Name_Not_Found
07/06/27 09:10:06
ダウト>javascriptではサーバ内に何か保存することは原理的に不可能

不可能なのはクライアントPCのファイルを操作すること

403:Name_Not_Found
07/06/27 09:13:27
>>402
だからさ、CGIとかと連携すればできるけど、そうじゃなかったら
ブラウザ上のJavaScriptでサーバ上の操作はできないでしょ。
CGIとの連携の話?それともサーバ上のJavaScriptの操作の話をしているわけ?
クライアントPCのファイル操作だってActiveXとかWSHとか言い出したら
話が別なわけで、前提をはっきりさせようよ。

404:Name_Not_Found
07/06/27 09:26:30
>>402
>ダウト
>ダウト
>ダウト

405:Name_Not_Found
07/06/27 09:53:10
>>401
1はIE専ってわけじゃないだろ
他ブラウザでも動くことは動く

406:Name_Not_Found
07/06/27 10:07:34
>>402
jsで鯖のファイルが弄れたら、やりたい放題無法地帯じゃねーかw
何その夢の技術ww

407:Name_Not_Found
07/06/27 20:13:29
ばかばっか

408:Name_Not_Found
07/06/27 20:21:39
オマエモナー

409:Name_Not_Found
07/06/28 03:40:09
質問させてください。

同ページ内に複数の<a>があるとして、
現在focusされている<a>が
document.getElementsByTagName('a')の配列の何番目なのか
取得する事って出来ないでしょうか。

よろしくお願いします。

410:Name_Not_Found
07/06/28 04:49:32
>>409
a element で focus と言う表現はおかしいと思わないか ?
それと getElementsByTagName('a') で得られるものは
"配列" ではなく, a element collection.
よろしくお願いされても答えようがない.

411:Name_Not_Found
07/06/28 07:01:19
>>409
forcus event で取得した、event 発火 element と、getElementsByTagName で取得した nodeList(配列)の要素を逐次比較。

めんどくさいな。

412:Name_Not_Found
07/06/28 07:18:08
何故 <a>で? って疑問があるが、
<input>でもフォーカスされているかどうか調べること出来たっけ?
あったらそれで、無けりゃイベントに何か仕込んで、
for (n in anchorElements)
でループしたらn番目って判断できそうだけど。

>>410
言いたいことはわかるが、>>409でも十分通じるんじゃね。

413:Name_Not_Found
07/06/28 07:38:08
>>412
煽り口調になってしまったけど,
"リンクの何番目" と言うことに重要性があるとは思えない.
もしかすると onmouseover で逆引きをやりたいのかも知れない.
"どうしても" というのなら index 用の array を用意して
onload で Index[A[i]]=i; (A: a element collection) てな感じで

414:Name_Not_Found
07/06/28 07:50:55
ついでだけど,
for(i in A) 形式は
A が element collection の場合は使えない.
それに対して A が array ならば OK.

415:Name_Not_Found
07/06/28 07:57:37
prototype.js使ってたら使えないけどね

416:Name_Not_Found
07/06/28 08:22:03
>>414
for(i in getElementsByTagName('TAG'))
でも動いてるんですけど...?
ダメなの?

417:Name_Not_Found
07/06/28 08:46:13
>>409
XPathを使えるなら『現在focusされている<a>』のpreceding::Aの個数を求めるのがおそらく最速。

>>414
element collectionなる造語はどこからでてきた。

for..inはDontEnum属性を持たないプロパティを列挙する。
ECMAScript実装上のNodeList[n]、HTMLCollection[n]が列挙不可かどうかはホスト依存。
少なくともGeckoは可能。Opera、Safariは不可。

まぁ配列を回すときはfor..inではなくindexを数えろというなら同意しなくもないが、
JavaScriptのArrayはindexが飛ぶこともある。
NodeListはindexが飛ぶことはないが生きている。

418:Name_Not_Found
07/06/28 09:20:28
また変なのが居着きそうだな

419:Name_Not_Found
07/06/28 16:54:34
>JavaScriptのArrayはindexが飛ぶこともある
ソースがわからんのだが

420:Name_Not_Found
07/06/28 17:38:49
>>419
ソースって情報元?ならECMA。

プログラムコードが見たいなら以下でどうぞ

var a = [];
a[1181542658] = "hello";
// コメント外したらブラクラ for(var i = 0; i < a.length; i++) { alert(a[i]); }
for(var i in a) { alert(a[i]); }

421:Name_Not_Found
07/06/28 18:16:17 meL89RVE
特定のブラウザでのみHTMLの一部を改変して表示させたいのですが、具体的にどういった方法でできるのでしょうか?

422:Name_Not_Found
07/06/28 18:22:03
改変するのと表示するのでは全く別のこと

423:Name_Not_Found
07/06/28 18:37:04
>>420
配列の中の定義された値だけを走査する、という状況なら index が飛ぶこともあるだろうが
配列を走査する、という状況なら 0 .. a.length - 1 まで全ての添え字で処理されるべき。
その点後者は、undefined も含めた全ての値にアクセスするわけではないので処理が“飛んでいる”と言えるな。
そもそもそういう使い方なら Array でする意味はないってことはわかって書いてるんだろ?

424:Name_Not_Found
07/06/28 18:39:20
>>421
1.サーバ側でブラウザ別に違うソースを書き出す
2.クライアント側でブラウザ別に違うソースを読み込む
のどっちかだね
このスレ的には2だから、あじゃあじゃ

425:Name_Not_Found
07/06/28 21:41:07
framesすべてに何かしたい時は
for(i in frames)でおk?
なんで試してみないのかというと、これでを使って
何かをしようというわけでもないから

426:Name_Not_Found
07/06/28 21:47:39
はい、次のかたどうぞ~

427:Name_Not_Found
07/06/28 23:09:03
>>425
だからそういうのは「保証されない」ってば。たまたま
手元のブラウザで動いたからそれでいいとか思わない方が
いいよ。保証されてない動作は他のブラウザやそのブラウザの
次のバージョンでどうなるか分からないんだから。

428:Name_Not_Found
07/06/28 23:15:44
>>427
>>425でいいじゃねーか。
他にどんな書き方があるんだよ?

429:Name_Not_Found
07/06/28 23:19:12 QOlzUv6n
質問です。
Date.parseは信用できないと聞いたのですが、皆さんは使っていらっしゃい
ますか?

430:Name_Not_Found
07/06/28 23:36:06
ま、Array#forEachを使っとけってこった。

431:Name_Not_Found
07/06/28 23:43:29
フォームに
00_00 などの文字列を貼って、submitしたら
00_00
01_01
02_02
03_03
04_04
05_05
06_06
07_07
08_08
09_09
10_10

10_0a と貼ったら
11_0b
12_0c
13_0d
14_0e
と展開してくれるスクリプトを書きたいのですが、どうやればいいでしょうか?









432:Name_Not_Found
07/06/28 23:54:18 IUjf0PIi
質問です。

二つのセレクトメニューで、現在の日付を初期値(phpで制御)として設定しています。

セレクトメニュー1  セレクトメニュー2
【2007年6月】 【28日】
2007年7月
2007年8月
  ・
  ・
それでセレクトメニュー1の値によってセレクトメニュー2の項目を
メニュー1が1月ならメニュー2に1~31日、2月なら1~28日といった感じに
変更したいのですが、メニュー1の値をどう指定すればいいかわかりません。

ご教授お願いします。

433:Name_Not_Found
07/06/29 00:01:30
ここでは教授はしない。

434:Name_Not_Found
07/06/29 00:21:54
>>431
まずその展開ルールを公開してくれ

435:Name_Not_Found
07/06/29 00:48:32
>>434
rubyのString#succやInteger#succで作ってやれば納得するだろ、おそらく。

>>432
本当に微妙な差だが、表形式のカレンダーを出力するのは、PHPの方が易しい。
だから、誰から見ても使いにくいというか使えない分割された糞セレクトコントロールじゃなくて、カレンダーを出力してもらえ。
どうせ、別の月へのリクエストはほとんど使われないんだから、わざわざJSに分散させる必要は全く無い。

436:Name_Not_Found
07/06/29 08:43:09
>>435
カレンダーにするかどうかは製作者の設計によるよね。画面の当該
領域が小さいものならカレンダーじゃなくselectというのは普通に
あるでしょ。
>>432
PHP側で「1番目のselectの何番目なら日付は何日まで」という情報を
適当な配列に生成しておいてもらい、それを参照するのが楽かと。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var days = [30, 31, 31];
function chg() {
var ind = document.forms.f0.elements.s0.selectedIndex;
var sel = document.forms.f0.elements.s1;
sel.options.length = 0;
for(var i = 0; i < days[ind]; ++i) {
sel.options[i] = new Option(String(i+1));
}
}
</script>
</head><body>
<form name="f0" action="#" onsubmit="return false"><div>
<select name="s0" onchange="chg()"><option>2007.6</option>
<option>2007.7</option><option>2007.8</option></select>
<select name="s1"><option>X</option></select>
</div></form></body></html>

437:Name_Not_Found
07/06/29 08:46:50
>>430 だからframesはArrayじゃないんですけど。
>>428 for(var i = 0; i < frames.length; ++i) ... が無難。

438:Name_Not_Found
07/06/29 10:41:49
>>431
同好の士みたいだし、オレのスクリプト分けてやるよ

439:432
07/06/29 10:55:16
>>435>>436
丁寧な回答本当にありがとうございます!
おかげさまでうまくできました。

あともう一つ聞きたいのですが、javascriptでの変数や関数をphpで使用すること
は可能ですか?
var ind = document.forms.f0.elements.s0.selectedIndex;
で取得した値をphpに渡す等

普通に代入しようとしたらエラーになってしまったんですが・・・

440:Name_Not_Found
07/06/29 11:24:31
>>439
JavaScriptはブラウザ上で動作し、PHPはサーバ上で動作してる
でしょ。だから普通に代入なんてできるわけがない。渡したければ
formの適当な要素(hiddenとか)の値としてセットしてそのformを
送信するとかでしょ。

441:Name_Not_Found
07/06/29 11:41:06
>>439
そんなときこそAJAXですよ。
まあ、渡せるのはデータであって、変数や関数じゃありませんが。

442:Name_Not_Found
07/06/29 14:31:24
>>437
Array.forEach(frames, function(f){ ... })
Array.prototype.forEach.call(frames, function(f){ ... })

MDCにあるArray#forEachの代替コードは
for (var i = 0; i < len; i++) { if (i in this) ...
添字の抜けも考慮してある

443:Name_Not_Found
07/06/29 14:48:53 LDupVtZA
質問です。
Date.parseは信用できないと聞いたのですが、皆さんは使っていらっしゃい
ますか?


444:Name_Not_Found
07/06/29 15:25:17
>>443
どんな文字列なら解析してくれるのかよく分からないんだよね。
だから実用に使うページの場合は自分で正規表現とかで解析するよな。
でないと「どういう文字列を与えればいいのか」と言われた時に答えられない。


445:443
07/06/29 15:53:05
>>444
やはりそうですか。自分できっちり設定します。
ありがとうございました。

446:Name_Not_Found
07/06/29 19:15:33 vOAzjufZ
質問させてください。
JavaScriptを利用して、一つのウィンドウを使い、内容を表示して確認、次の内容を表示して確認というようにしたいと思い、つぎようなコードを作ってみました。
実行すると、一つ目と二つ目の画面は表示できますが、二つ目の画面のボタンは動作しません。何がまずいのでしょうか?

<html><head><meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<script type="text/javascript">
function q1() { document.open();
document.write("1.ABCD");
document.write("<form><input type='button' value='2へ進む' onclick=q2();></form>");
document.close(); }
function q2() { document.open();
document.write("2.EFGH");
document.write("<form><input type='button' value='1へ戻る' onclick=window.q1();> ");
document.write("<input type='button' value='3へ進む' onclick=q3();></form>");
document.close(); }
function q3() { document.open();
document.write("3.IJKL");
document.write("<form><input type='button' value='1へ戻る' onclick=q1(); >");
document.write("<input type='button' value='2へ戻る' onclick=q2();></form>");
document.close(); }
// -->
</script><title></title></head>
<body>
<p><script type="text/javascript"><!-- q1(); // --></script></p>
</body>
</html>

447:Name_Not_Found
07/06/29 19:35:28
なにがまずいって?
// --> んなものつけてるからだろ

448:Name_Not_Found
07/06/29 19:44:36
>>446-447
どっちかというと <!-- がまずいんでしょ。そんなもん
書かないのが吉だと思うね。ところで FAQ>>3 のQ4-A4は
読んだかね?

449:Name_Not_Found
07/06/29 20:07:29 vOAzjufZ
<!--
// -->
は、JavaScript OFF にしてる場合、または JavaScript 非対応ブラウザへの対策

>448

やはり、あの方法のどれかを使うしかないようですね。

450:Name_Not_Found
07/06/29 20:48:45
>>449
> !--
> // -->
> は、JavaScript OFF にしてる場合、または JavaScript 非対応ブラウザへの対策

一体、何年前から来た人ですか?

451:Name_Not_Found
07/06/29 21:04:32
異次元だね

452:Name_Not_Found
07/06/29 21:24:37
もし仮にだな、閲覧したヤシのパソコンの画面いっぱいに

コードが大解放されたとして、別にそれでいいよ。



453:Name_Not_Found
07/06/29 21:26:02
そんなのを書いとくともっと深刻な事態になるんだから。

454:Name_Not_Found
07/06/29 21:35:37
>>449
HTML4.0が勧告されてから、そろそろ10年。
今時、script要素の中身を垂れ流してしまうブラウザなんてほぼ皆無かと。
対応ブラウザのJavaScriptをOFFにしたってscript内を表示したりはしないし、
対応していないLynxなんかも勿論、表示しない。
だいたい、それだけスクリプトに依存したページを作っておいて対策もなにも無いでしょう。

それと普通は<!--で始まってる行は無視されるから、そのコードが動くとは思えないんだけど。

455:Name_Not_Found
07/06/29 21:42:58
>今時、script要素の中身を垂れ流してしまうブラウザなんてほぼ皆無かと。
えーと、今時の携帯でもふつうに垂れ流すけど。
そして、今では携帯コンテンツのプログラムが俺の仕事の半分を余裕で超えたよ。
スクリプトをコメントアウトせずにじかに出力するとかありえないからw

456:Name_Not_Found
07/06/29 21:43:58
>>452
だから、あなたは何年前から来た人ですか?

457:Name_Not_Found
07/06/29 21:45:05
>>455
え?
最近の携帯ってJSに対応してるの?
JS使ってるって事は対応してる機種があるって事だよね?

458:Name_Not_Found
07/06/29 21:54:51
JavaScriptの話題じゃないぜ。

459:Name_Not_Found
07/06/29 21:57:58
JapanSe・だろ

460:Name_Not_Found
07/06/29 22:00:32
>>458
じゃぁCSS?

461:Name_Not_Found
07/06/29 22:11:54
>>455
ごめんね。携帯のはHTMLブラウザだと思ってないから勘定に入れてなかった。
特にi-modeとか独自路線過ぎる。
でも、なんで携帯コンテンツにscriptを?

462:Name_Not_Found
07/06/29 22:26:06
そりゃ携帯サイトにJavaScript入れるならコメントアウト
するかも知れないけどね… 入れないよなふつー。

463:Name_Not_Found
07/06/29 22:41:05
嘘だよ
垂れ流す携帯の機種言ってみろよ

464:Name_Not_Found
07/06/29 23:22:13
>>448
<!-- から行末までが無視され、// から行末までが無視されるから、
単に <!-- と //--> は別の行に書けば済むだけ。書かない方が吉ってことはない。
書き方が悪いのが問題なだけだ。

465:Name_Not_Found
07/06/29 23:56:44
XHTMLでは書いちゃだめですよ。スレ違いながら。

466:Name_Not_Found
07/06/30 00:13:40
どう見てもXHTMLじゃないし

467:Name_Not_Found
07/06/30 01:04:35
だからトラブるでしょ。現に。書いたっていいことない。まあ
どーしても書きたいというのなら止める権利はないよなー。

468:Name_Not_Found
07/06/30 01:35:01
書いちゃだめというなら
何故だめなのか理由を説明してあげたら?
そのほうが為になるよ

469:Name_Not_Found
07/06/30 01:43:51
そんなことよりソース垂れ流す携帯の機種が気になって眠れない

470:Name_Not_Found
07/06/30 07:19:12
各キャリアに問い合わせれば?

471:Name_Not_Found
07/06/30 07:32:45
ばーかばーか

472:Name_Not_Found
07/06/30 08:25:23
オマエモナー

473:Name_Not_Found
07/06/30 08:31:22 fnkN5MWo
JavaScriptで所定のノードの中にある派生ノードの数を数えるにはどのようなコードを書けば良いのでしょうか?

474:Name_Not_Found
07/06/30 08:31:52
HTMLなら書く。
XHTMLなら書かない(っつーか、外部に出す)。
これでいいだろ。
何で一緒にしちゃうんだか

475:Name_Not_Found
07/06/30 08:33:04 fnkN5MWo
今現在、

function countNodes(){

count=0;

for (n=n.firstChild; n!=null; n=n.nextSibling){
count++;
}
}

と書いているのですが、うまく動作しません…

476:Name_Not_Found
07/06/30 08:53:44
うまく動作しないってどういうこと?
まあ、そのコードは単に n.childNodes.length でいいと思うけど

477:Name_Not_Found
07/06/30 08:57:06 fnkN5MWo
>>476
function countNodes(){

count = 0;

for (i=0; i<this.childNodes.length; i++){

count++;

}

こういう事でしょうか?

478:Name_Not_Found
07/06/30 08:58:35
>>468
いや別に駄目なんて言ってないよ。でも現にそれ書いた
ために動かないというのが今回の質問者のトラブルなんでしょ。
過去スレでも同様のトラブルは何回も出ている。それでも書きたい
なら本人の勝手ということでは。

479:Name_Not_Found
07/06/30 09:07:16
いや、こういうこと。ループにするとか、複雑にする必要はない。
function countNodes(){
count = n.childNodes.length;
}

480:Name_Not_Found
07/06/30 09:09:02
>>477
「派生」という言葉をどういう意味で使っているのかが
分からないんで説明してみて。あるノードの内側にある要素の
数ということなら次のような感じだと思うけど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function count(node) {
var c = 1;
for(var i = 0; i < node.childNodes.length; ++i) {
var n = node.childNodes[i];
if(n.nodeType == 1) c += count(n);
}
return c;
}
</script>
</head><body onload="alert(count(document.getElementById('d0')))">
<div id="d0"><p>xxx<span>yyy</span>zzz</p><div>aaa</div></div>
</body></html>

481:Name_Not_Found
07/06/30 09:19:37
>>480
おいw
1から始めるから1個多くカウントされてるぞ。

こんなバグを混入させないためにもなるべく簡単に書くのがいい。
この>>480の場合でも一行で終わる。
node.getElementsByTagName('*').length


482:Name_Not_Found
07/06/30 09:23:19
>>481
あ~、「あるノードの内側」を「あるノード以下」に読み直して
ください ^_^;; だって1にしないと内側をカウントする役に
立たないでしょ。しかし getElementsByTagName('*') ですか、
勉強になりますた。

483:Name_Not_Found
07/06/30 12:24:21
また偉そうなバカだな。

484:Name_Not_Found
07/06/30 14:09:26
>>481
それ、見当違いだと思うけど。

<div>なんとか<span>かんとか</span></div>

divの子孫ノードは何個有る?

485:Name_Not_Found
07/06/30 16:13:54
>>484
484のdivの子孫ノードの数は通常は3つ。
480は「あるノードの内側にある要素の数」であって、
「子孫ノードの数」ではないのだけれど、それを分かって質問しているんだよね?

486:Name_Not_Found
07/06/30 16:25:20
子孫ノードを数えるように直してみた。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function count(node) {
var c = 0;
for(var i = 0; i < node.childNodes.length; ++i) {
var n = node.childNodes[i];
if(n.nodeType == 1) c += count(n) + 1; else c += 1;
}
return c;
}
</script>
</head><body onload="alert(count(document.getElementById('d0')))">
<div id="d0">なんとか<span>かんとか</span></div>
</body></html>

487:Name_Not_Found
07/06/30 16:43:04
再帰処理キャ━(゚∀゚)━!!

488:Name_Not_Found
07/06/30 17:01:08
>>485
元質問読めば?

489:Name_Not_Found
07/06/30 17:11:43
>>488
481の元は480だろ。475のことを言ってるのなら476で終わってる。
それが違うのなら言ってきてもよさそうだが477以降出てきていないみたいだしな。
結局476、480の言うようにちゃんと要求を言ってもらわないと
475のしたかったことなんて分からないだろ。

490:Name_Not_Found
07/06/30 17:20:40
innerHTMLのタグの数数えたりして。


491:Name_Not_Found
07/06/30 17:31:55
うーん、なんか>>486じゃまずい気が… attributeなんかも数えて
しまうよな…それともそれもノードということでいいのかな…

492:Name_Not_Found
07/06/30 17:43:58
>>491
属性ノードは要素の子ノードではない。
つまり、>>486では属性の数など数えてはいない。

493:Name_Not_Found
07/06/30 20:32:06
質問させてください。
2次方程式x*x-10*x+20=0 の2つの根のうち、6<=x<=8にある根を計算するプログラムを作ろうと思ってるんですが、"実行しましたが、ページでエラーが発生しました”とでてきてうまくいきません。
ライン:22 文字:19 エラー:':'がありません。 コード:0 らしいです。どこが間違っていますか教えてください><
<html><head>
<meta http-equiv="Content=Script-Type" content=text/javascript">
<tittle></tittle>
<script language="JavaScript" type="text/javascript">
function f(x){
return x*x-10*x+20;};
function g(x){
return 2*x+10;};

</script></head><body>
<script language="JavaScript" type="text/javascript">
var xx=10;
var eps=1.e-8;
for(i=0,i<100,i++){
x2=xx;
xx=xx-f(xx)/g(xx);
r=Math.abs(x2-xx);
if(r<eps){
document.write("x="+xx);
break;
};
};
</script></body></html>



494:Name_Not_Found
07/06/30 21:24:41
根ってなんだよ
因数?それとも解?

495:Name_Not_Found
07/06/30 21:43:01
解だと思います。因数ってよく分からないですが。
ただ、解決しました。ありがとうござます。

496:Name_Not_Found
07/06/30 21:43:05
>>493
Firefoxのエラー表示でも本田美奈子.
> missing ; after for-loop initializer

> ソースファイル: .../test.html
行: 14, 列: 17

> ソースコード:
for(i=0,i<100,i++){

497:Name_Not_Found
07/07/01 00:34:52
二次方程式なら解の公式を使えば簡単かつ精度が上がるんだけど、そういう課題なの?
(x = 5±√5 のうち範囲内にあるものをとる)

それと、片方の解(初期値のとり方で変わる)を出してるだけで
「6<=x<=8にある」という条件が抜けているのが気になる。
おそらくg(x)は微分なんだろうけど、2*x-10じゃないし。

498:Name_Not_Found
07/07/01 00:44:39
まあ要するにJavaScript以前の問題だな
レスからも滲み出てる

499:Name_Not_Found
07/07/01 01:30:09
ニュートン法だから、g(x)はたしかにまちがっている。
しかし、そんなことよりも、回答者がここまで底辺になってしまったことのほうが問題だろうな。
たとえば、一般式を使えば精度が上がるとか、ひどい寝言だ。
いよいよJSは再び暗黒時代に突入だな。

500:Name_Not_Found
07/07/01 01:43:03
>>499
意味が分からん。
二次方程式の解の公式に誤差があるとでも思ってるの?

501:Name_Not_Found
07/07/01 02:00:06
>>499は意味が分かってないか、近似値のことを言ってるんだと思う

502:Name_Not_Found
07/07/01 04:31:17
>>500-501
これはニュートン法という計算方法だ。理系なら大学1年ぐらいで習うと思う。

確かに2次方程式には解の公式があるからニュートン法を使う意味はないが、
プログラムを作っておけば、もっと難しい(解の公式がない)方程式にも
応用出来るから、そのテストとして2次方程式を解いてみたってところだろう。

>>499 は、みんながニュートン法を知らずに的外れなことを言ってることを
言ってるんだと思う。まあ、この程度で底辺と言う方もどうかと思ったが、
意味が分かってない人が分かってる人に対して分かってないと言うのもなぁ。

503:Name_Not_Found
07/07/01 04:43:35
大二病。

504:Name_Not_Found
07/07/01 04:51:11
で、どれとどれが質問者だ?
そこまで分かってるならあとはコードにするだけじゃないか。頑張れ

505:Name_Not_Found
07/07/01 07:48:36
>>494
"方程式の根"、普通に使う表現。

506:Name_Not_Found
07/07/01 10:07:18 2f5hHirb
document.formName.inputName.valueの、
inputNameの部分を変数にしたいのですが、
どのように書けばよいのでしょうか?

507:Name_Not_Found
07/07/01 11:39:50
>>506
document.forms['formName'].elements[inputName].value

508:506
07/07/01 12:45:24
>>507
すみません。どういうことでしょうか?

簡単な例をあげると、
function funcA(a, b) {
  var sum = a + b;
  document.forms.elementsA.value = sum;
}
function funcB(a, b) {
  var sum = a + b;
  document.forms.elementsB.value = sum;
}

<form name="forms">
<input type="button" onClick="funcA(1, 2); funcB(2, 3)">
<input type="text" name="elementsA">
<input type="text" name="elementsB">
</form>

こういうことをやりたいのですが、関数の中身は同じなので、
function func(name, a, b) {
  var sum = a + b;
  //elementsのところに引数のnameを入れたい
  document.forms.elements.value = sum;
}
としたいのですが、ただ単にelementsの場所にnameと書いただけではname="name"を探しにいくので、
引数の値を入れるにはどうしたらよいのでしょうか?

509:Name_Not_Found
07/07/01 12:57:03
最低限、>>1にある、URLリンク(developer.mozilla.org) くらい、読みなさい。

リファレンスを読まずに、スクリプトを書けるわけが無い。

510:Name_Not_Found
07/07/01 13:36:20
>>508
>elementsの場所にnameと書いただけでは
アフォですか?
だから>>507

511:Name_Not_Found
07/07/01 14:09:53 e3Q1EZ72
こんにちは。質問させてください。

ブックマークレットを作っています。

formの中にhiddenとtextの2種類のinputがある場合、
テキストフィールドのみを処理する方法はありますか?

または、テキストフィールドのみにxxx_6桁の連番という
共通のnameがついているのでelementの指定の中に正規表現を
使いテキストフィールドのみ処理する方法も考えられるのですが
document.forms[0].xxx_\d{6}.value;
このようにしてもうまくいきません。
この場合はどのように書けばよいでしょうか?

教えてください。

512:Name_Not_Found
07/07/01 14:13:20
>>508
>どういうこと
そういうこと

513:Name_Not_Found
07/07/01 14:14:34
>>511
>>507

514:Name_Not_Found
07/07/01 14:14:46
最低限、>>1にある、URLリンク(developer.mozilla.org) くらい、読みなさい。

リファレンスを読まずに、スクリプトを書けるわけが無い。

ふざけんな!

515:Name_Not_Found
07/07/01 14:33:24
>ふざけんな!

失礼な!

516:Name_Not_Found
07/07/01 15:20:46
>>508
もしかして、いやもしかしなくても、FAQ>>3のQ8/A8を読んでないでしょ。
テンプレが読めない奴は2度と来るなって。

517:508
07/07/01 16:23:06
>>516
見落としてました。どうもありがとう。

それにしても低脳使用者言語ほど回答者が偉そうと聞くけどまさにその通りですね(笑

518:Name_Not_Found
07/07/01 16:53:16
>>511 下記のtest()の内容をbookmarklet化すりゃいいんじゃないの。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var a = document.forms.f0.elements;
for(var i = 0; i < a.length; ++i) {
if(a[i].type == 'text') { a[i].value = 'text...'; }
else if(a[i].type == 'hidden') { a[i].value = 'hidden...'; }
}
}
</script>
</head><body>
<form name="f0" action="#"><div>
<button type="button" onclick="test()">TEST</button>
<button type="submit">SUBMIT</button>
<input name="a" type="text"><input name="b" type="text">
<input name="c" type="hidden"><input name="d" type="hidden">
<textarea name="e">test</textarea>
</div></form></body></html>

519:Name_Not_Found
07/07/01 17:31:26
>>517
低脳使用者言語って言葉をどこで聞いたかわかんないけど
捨て台詞はかっこ悪いからやめた方がいいよ

520:Name_Not_Found
07/07/01 17:32:09
>>517
スキルが上がってからもういっぺん>>506から読み直すことをオススメする

521:Name_Not_Found
07/07/01 17:41:27
多重配列ですが
hoge[0,0]とhoge[0][0]とはどう違うのでしょうか?

html_list = new Array();
html_list[0][0]="aaaa"
はエラー出て

html_list = new Array();
html_list[0,0]="aaaa"
はエラーが出ない と微妙に動作が違うんですよ

522:Name_Not_Found
07/07/01 17:54:40
>>521
html_list = new Array();
html_list[0] = new Array();;
html_list[0][0] = "aaaa";
で、どぞ。

html_list[0,0] ってのは完全に間違い。

523:Name_Not_Found
07/07/01 17:58:39
>>522
うーむ、一気にhoge[0][0]は使えないで
hoge[0]でまた配列に定義して…って繰り返さなきゃならんのか
遅くなりそうで心配だな


hoge[0,0]は動くことが幸運なのか。VBだったか他の言語と混ざりまくり


ありがとう

524:Name_Not_Found
07/07/01 18:05:48
hoge['a', 'b', 'c', 'd', 'e', ..., 'z'] == hoge['z']

525:Name_Not_Found
07/07/01 18:29:41
>>517
低能使用者言語ですら質問しなければわからない人乙。

526:Name_Not_Found
07/07/01 19:43:53
>>523
一気に定義するならこんな風に書ける
hoge = [["aaaa","bbbb"],["cccc","dddd"]];

これは以下の文と同じ
hoge = new Array();
hoge[0] = new Array();
hoge[1] = new Array();
hoge[0][0] = "aaaa";
hoge[0][1] = "bbbb";
hoge[1][0] = "cccc";
hoge[1][1] = "dddd";

527:508
07/07/01 22:06:20 2f5hHirb
>>517は僕じゃないです。
どうも答えてくださった方ありがとうございました。
おかげでなんとかできました。

528:Name_Not_Found
07/07/01 22:34:05
>>523
むしろ洩れは2次元配列は
var hoge = new Object();
...
hoge[x + ',' + y] = ...
hoge['0,0'] = ...
みたいに全部ハッシュ表でやるけど。大きい表だったら
考えるけど100かける100なんかならこれで十分。

529:Name_Not_Found
07/07/01 22:46:22
また多重配列ですが、AをBにコピーするにはどうしたらよいのですか?
B = A
だけじゃダメみたいなのですが、これも順番にループ回す必要があるのですか?

530:529
07/07/01 22:52:10
失礼。前言撤回。できてました


今回は順調にプログラミング中...
今度こそ完成しますように

531:Name_Not_Found
07/07/01 23:04:20
embedにsrcをセット(もしくはセットしてcreate)→読み込み→
→完了したらautostartしてhogeにnew Date().getTime()を代入
というのをやりたいんですが、いい方法を教えて下さい。

532:Name_Not_Found
07/07/01 23:05:33
>>529
コピーしたいならループ回す必要がある。


533:Name_Not_Found
07/07/02 00:03:25
a="a\ni"
a = a.replace(/\n/,"")
alert(a)
は当然aiと改行が消されるのですが
HTAでXMLHttpRequestを使って任意のページのソースを取得していると稀にこれでも消えない事があります
\n以外に改行を表すにはどうしたらよいのですか?

534:Name_Not_Found
07/07/02 00:11:23
>>533
\r

535:Name_Not_Found
07/07/02 00:17:09
>>534
replace(/(\n|\r)/,"")でも消えませんでした

html_a[i] = html_a[i].split("\n");
html_a[i] = html_a[i].join("")
だと消えたけど…分らないままなのは不安

536:Name_Not_Found
07/07/02 00:24:12
もしかして /\n/g

537:Name_Not_Found
07/07/02 00:37:52
見事それでした

スッキリ

538:Name_Not_Found
07/07/02 02:49:34 hbQsdqdg
form()でユーザーに入力してもらった値を、textinput(str)で受け取り、Texthyouji(str)
で値を表示させるスクリプトを書きました。
Firefox2で検証したのですが、ブラウザの右下のページを読み込んでるときに出る青いバーが止まりません。
キーボードのEscを押さない限りずっとバーが表示されつづけてページを読み込んでるようなんですが、
エラーコンソールやFireBugではエラーを確認できませんでした。IEとOPERAでは問題ありませんでした。
どこかおかしなところがありましたらご指摘お願いいたします。
function textinput(str)
{texthyouji(str);
}


form();

function form() {
document.write("<form action=\"\" method=\"post\">");
document.write("<input type=\"text\" name=\"inputInt\">");
document.write("<input type=\"button\" value=\"送信\" onClick=\"textinput(inputInt.value)\">");
document.write("</form>");

}


function texthyouji(str)
{document.write(str);
}

539:Name_Not_Found
07/07/02 03:21:03
ヒント:FAQ>>3 Q4

540:Name_Not_Found
07/07/02 05:04:20
>>538
document.close()

541:Name_Not_Found
07/07/02 07:01:05 N024WrJz
複数のチェックを付けると、
それに該当する内容を表示させるJSを探しています。
ご存知の方いらしたら教えてください。
イメージはこんな感じです。


例1.
[選択肢]↓ラジオボタンとかプルダウンメニュー
●赤  ●大きい  ●丸い  
○青  ○ふつう  ○四角  
○黄  ○小さい  ○三角  
--------------------------
[表示フィールド]
太陽についての説明文


例2.
[選択肢]
●赤  ○大きい  ●丸い  
○青  ○ふつう  ○四角  
○黄  ○小さい  ○三角  
--------------------------
[表示フィールド]
太陽についての説明文

リンゴについての説明文

542:Name_Not_Found
07/07/02 07:29:52
外部jsから外部jsを呼び出したいのですが可能ですか?
Javaでいうimport、Cでいうinclude、Perlでいうrequireみたいなものはないでしょうか?

543:Name_Not_Found
07/07/02 08:14:23
>>542
このスレの上の方にあったような気がする…
つかこのスレくらいひととおり目を通してないのかよ!
>>541
各ボタンのonchangeで関数を呼び出し、その関数では
各ボタンのON/OFFを全部収集してそれに対応する処理を
すればいいんじゃないの。全部そのまんま同じなんて
できあいのコードがあるような気はしないから、自分で
勉強して書くしかないんじゃないの。

544:Name_Not_Found
07/07/02 13:18:55
>>542 多重importやrequireをした事ありますか?あなた。

545:Name_Not_Found
07/07/02 13:33:18
それにしても低脳使用者言語ほど回答者が偉そうと聞くけどまさにその通りですね(笑

546:538
07/07/02 13:33:54 hbQsdqdg
>>539-540
お陰様で解決しました。今回はdocument.close()を指定するやり方をとりました。
ありがとうございました。

547:Name_Not_Found
07/07/02 13:55:18
>>545
それは理由があると思う。普通のプログラミング言語だとそれなりの
覚悟があって勉強する人が来るわけで、勉強したくない全部書けとかの
厨房は相対的に少ない。これに対し、JavaScriptの場合はHTMLだけ
勉強したけどそれでJavaScriptもすぐできると勘違いした奴が沢山
流れて来る。だからそんな甘いもんじゃないと言ってあげないと本人
のためにならない。型検査はないしプロトタイプオブジェクト指向
だしDOMとかAjaxとか言語仕様と別のことを沢山勉強する必要があるし
実は非常に大変なんだよね。だからこれからも甘ちゃんには厳しく
行きたいと思っていまつ。甘ちゃんにつけ上がらせたらロクなことない。
もちろんまっとうな質問はまっとうに回答してるとも。過去スレを
見れば証明されているよな。

548:Name_Not_Found
07/07/02 14:17:29
>>547
質問者を馬鹿にしても許される JavaScript (笑)

549:Name_Not_Found
07/07/02 14:36:45
PHPとPerlはできるけどJavaScriptはわからない

550:Name_Not_Found
07/07/02 15:44:06
'false''という文字列を真偽値に型変換できますか?

現在、str == 'true':true:false;みたいな感じでやってるんですが他にスマートな方法があれば教えてください。

551:Name_Not_Found
07/07/02 16:18:05
>>547-548
JavaScriptは釣りでいへば、フナだ。
鮒に始まって鮒に終わる。
雑草の如く生涯を貫くJavaScripterでありたい。

552:Name_Not_Found
07/07/02 17:42:34
>>550
str == 'true' だけでいい

そもそも真偽値を文字列で管理しなきゃいけない場合って何なのか、個人的に気になる

553:Name_Not_Found
07/07/02 20:37:15
>>552
文字列で出力したものを読むこともあるんじゃないかな
cookieとか

554:Name_Not_Found
07/07/02 20:59:49
HTAで
setTimeout
httpoj.onreadystatechange = function(){
if(httpoj.readyState==4){on_loaded(httpoj);}
}
httpoj.send( "" );
といったあとから来る命令を使っているスクリプト書いているんですが、こういう命令を使うスクリプトってウィンドウのクローズボタンでいきなり終了してもいいもんなんですか?
先程httpoj.sendの結果が全然帰ってこなくなり、タスクマネージャー開いてみたら
mshta.exe Microsoft(R) HTMLアプリケーション ホスト
がズラーッと20個くらい起動しっぱなしでした。ログオフしたら治ったのですがこれを防ぐにはどうしたらよいのですか?
クローズボタンじゃなくて、きちんと「終了する」を命令しないといけないもんなのでしょうか?

555:Name_Not_Found
07/07/02 21:34:20
>>554
それってイベントハンドラとその要素との間に循環参照があると
メモリリークするって IE のバグじゃないかしら
最近の Update で治ったと思っていたのだけれど、まだ治ってないみたいね
this とか使うのをオススメするわ

556:Name_Not_Found
07/07/02 22:58:23
>>555
そういうのはリークとは言わないよな。タスクが終了するような
手当は絶対に必要。だかHTAなんて知らんもんね、HTAのスレが
どっかにあったと思う。

557:Name_Not_Found
07/07/02 23:22:22
HTAってちょっとしたアプリケーション風味なコントロールができるただのHTMLでしょ。
HTMLの拡張子をHTAにしただけで動くものなんだから。

558:Name_Not_Found
07/07/02 23:25:53
htaとかhtmlは1つのファイルで完結するからいい
Visual C++ 2005 Express Editionとかなんでフォルダ作ってそん中にあちこちファイルつくんねん
しかもフォルダの位置変えたらなんかエラー出るし
その辺詳しく、詳しく開設したHPないんかな

559:Name_Not_Found
07/07/02 23:52:14
>>558
> htaとかhtmlは1つのファイルで完結するからいい
それはただの書き捨て・使い捨てスクリプトだからだろ。
作りこめば一月もすれば何であろうともファイルは増える、数十数百とな。
一つの機能のCRUDを分けた瞬間に最低でも4つのファイルが増える。
まあ、無職の日曜プログラマアに突っ込んでもしゃあないけどなw

560:Name_Not_Found
07/07/03 00:06:49 M6emMvwG
javascriptとactionscriptってどちらがゲームなどを作るのに向いているのでしょうか?

561:Name_Not_Found
07/07/03 00:10:59
アクション仮面

562:Name_Not_Found
07/07/03 00:32:01
ほほほーーい

563:Name_Not_Found
07/07/03 01:18:30
select要素内の特定のoption要素を選択不可または非表示にしたいのですが、可能でしょうか?
IE6を対象ブラウザとしていますが、options[3].disabled = trueや.style.display = "none"
は効き目なしでした。

564:Name_Not_Found
07/07/03 01:39:57
>>563
「IE option disabled」で検索したらなんかあったぜよ。
onchangeで見張って、選択されたらずらしちゃう感じみたい。
URLリンク(apptaro.seesaa.net)
URLリンク(apptaro.up.seesaa.net) // サンプル

// removeChildで消しちゃったほうが楽そう。


565:Name_Not_Found
07/07/03 01:47:58
>>563
このスレにselectの選択肢を全部消して作り直す例があるだろ。
このスレすら目を通すことができないのかね。

566:Name_Not_Found
07/07/03 04:25:15 L/mfD9ph
JavaScriptもPHPみたいに専用の関数ってあるのでしょうか?
これからJavaScriptを覚えたいのですがイメージがわきません。
たとえば、PHPでしたら文法と関数を覚えればたいていのことはできるのですが、
JavaScriptの場合は文法のほかに何を覚えていいのかイメージがわかりません。
どなたか教えてください

567:Name_Not_Found
07/07/03 04:54:36
あなたはPHPもろくに理解していないのではないでしょうか?
言っていることが支離滅裂です。

568:Name_Not_Found
07/07/03 05:07:57
>>566
>567 のような構ってチャンはシカトして良いですよ(笑)
JavaScript で何をしたいのかがよく分からないので
とりあえず幾つか例を挙げるだけになりますが……。

画面にウィンドウを表示させるなど、視覚効果に使いたい
 → DOM, CSS, Math
画面遷移をせずにデータを取ってきて表示させたい
 → XMLHttpRequest, DOM, RegExp
カレンダー
 → Date
その他いろいろ
 →各種ライブラリ

最近ではライブラリも色々出ているので、
「JavaScript ライブラリ」などで検索してサンプルを見るのも手っ取り早いです。

569:Name_Not_Found
07/07/03 05:27:22
いや理解してないだろ。
>JavaScriptもPHPみたいに専用の関数ってあるのでしょうか?
普通こんな質問しない。
PHPでOOPやってないならまずはそちらを勉強したほうがイメージわきやすいと思う。
PHPよりOOPはJavaのほうがいいけど。(PHPとJavaのOOPは比較的近いからわかると思う)

できることやることは基本的にどの言語でも一緒。
違う点はサーバサイドとクライアントサイドでできることが違ってくるという点。
そこがイメージわかないと言ってるんだとは思うが、
そこらへんはプログラムやってれば体でどういうことができないのかわかってくる。

まずは難しく考えず、クライアント側でもサーバ側でもできるスクリプトから書いていけばいい。
(例えば文字表示するだけのプログラムや計算して結果表示するプログラムとか)

570:Name_Not_Found
07/07/03 05:36:58 L/mfD9ph
なんか必死だね

571:Name_Not_Found
07/07/03 05:39:05 L/mfD9ph
>>568
ありがとうございます。
文法からはじめてみます。

572:Name_Not_Found
07/07/03 05:40:48
お前が必死だよwwwwwwwwwww

573:Name_Not_Found
07/07/03 05:49:21 Irggis4z
function method(arg) {
  if (arg == 1) {
    var str = "a";
  } else if (arg == 2) {
    var str = "b";
  }
  return str;
}

こんなのをJsLintにつっこんだところ、
エラーが出るのですが、なんでですか?

574:Name_Not_Found
07/07/03 05:56:38
>>573
どんなエラーが出るのですか?

575:573
07/07/03 05:58:30 Irggis4z
var strがブロック内に宣言できないのと、
2つめの(elseifのところ)var strが既に宣言されると言われます。

ブロック内ってなんのことやらわからず・・・orz

576:Name_Not_Found
07/07/03 06:09:11 10uVhSb2
>>575
Mozilla で JavaScript console を使えば良く判る.
この場合は str が 2度宣言されていることになるので
Error には上がらないけれど, Warnings でリストアップされる.

577:Name_Not_Found
07/07/03 06:17:33 Irggis4z
>>576
どうもありがとうございます。
同じ変数があった場合、後者のものに上書きされないのですね。
教えていただいたとおりMozillaを使ってみてみたいと思います。

578:Name_Not_Found
07/07/03 06:20:27
されるよ

579:Name_Not_Found
07/07/03 06:28:58 10uVhSb2
>>577
何か誤解されているような...

添削:
function method(arg) {
var str;
if (arg == 1) {
str = "a";
} else if (arg == 2) {
str = "b";
}
return str;
}


580:575
07/07/03 06:31:55 Irggis4z
>>579
あぁなるほど。
functionの外にvar strと書いてみたのですが、それでもエラーがでたので・・・
functionないのifブロックの前に宣言しとけってことだったのですね。
スコープの範囲を勘違いしていました。

581:Name_Not_Found
07/07/03 06:50:01 10uVhSb2
>>579
まだ話が伝わってない...
function 内での "var str" 記述は 1回 だけで良いという意味で,
2回目からは "無駄なことだ" と指摘される.
JavaScript の scope は非常に単純で function の中で使われるかどうかが重要.
function 中の どこで使われようが意味が変わることはない.

582:575
07/07/03 06:54:39 Irggis4z
頭悪くてすみません・・・
ようやく理解しました。2回目以降はstrでいいということですね。
JavaScript難しい(´ω`;)

583:Name_Not_Found
07/07/03 08:27:24
hoge1()//0
function hoge1(){
//1
hoge2()
}
function hoge2(){
//2
hoge3()
}

みたいに、今どんだけfunctionで潜ってる(?)かを調べるにはどうしたや良いのですか?

584:Name_Not_Found
07/07/03 08:32:08
URLリンク(www.red.oit-net.jp)
↑ここのjavascriptで作成された電卓をキーボードのテンキーで
入力できるように改造することは出来ますでしょうか?

585:Name_Not_Found
07/07/03 09:17:56
>>583
自作の関数だけなら、グローバル変数を1つ用意して各関数の入口で
1増やし出口で1減らすとかで数えるんじゃないの。
>>584
windowのonkeydownイベントハンドラで各キーが押されたら対応する
ボタンと同じ動作をするように手直しすればいいんじゃないの。
まあがんばって(全部は書かないけど個別に分からないところが
あれば質問どぞ)。

586:Name_Not_Found
07/07/03 12:46:30
ボタンが押されるなどのイベントが起きると、全体ではなくひとつの画像だけ更新されるようにするにはどのようにしたらいいのでしょうか?

587:Name_Not_Found
07/07/03 12:59:04
>>586
その画像がキャッシュされないようにするには、後ろに乱数をつけるとか?
document.images.画像の名前.src = '画像のURI' + '?' + Math.random();
画像ファイルは変わらず画像のURIが変わるとかなら、
後ろに何かつけたりする必要はない。

588:Name_Not_Found
07/07/03 13:11:58
>>585
> >>583
> 自作の関数だけなら、グローバル変数を1つ用意して各関数の入口で
> 1増やし出口で1減らすとかで数えるんじゃないの。
なるほど・・・

589:Name_Not_Found
07/07/03 16:37:58
text= "ab12cd";
reg_a="1[0-9]";
re = new RegExp(reg_a);
if(re.test(text)){alert("ok")}
これや
reg_a="\d";
ではok出るのに

reg_a="1\d";

reg_a="\d+";

でokが出ないのは何故なのでしょうか?

590:Name_Not_Found
07/07/03 16:43:02
>>589
ブラウザのURL欄に「javascript: alert("\d");void(0)」入れて
実行してみ。

591:Name_Not_Found
07/07/03 16:51:32
>>590
"d"となります

うーむ、正直alert("\d")が"d"を表示される事と、正規表現で\dがどのように動作するのかの関連性を理解できませんが…
これは対応していない ってことですか?

592:Name_Not_Found
07/07/03 16:54:37
>>591
だから「new RegExp("\d")」は「new RegExp("d")」と同等なの。
そしてアンタのテストデータには「d」が入っているよね。おめでとう。
「alert("\\d")」とかも試すと幸せになれるかもね。

593:Name_Not_Found
07/07/03 16:56:31
>>592
あああなーるへそ
A="\d"は内部的には"d"となっちゃうのね
A="\\d"だと内部的にも"\d"となって云々


ありがとう

594:Name_Not_Found
07/07/03 17:17:34
バカさらけ出す前にとほほでも読んで来い、ヴォケ

595:Name_Not_Found
07/07/03 17:36:52
読んだけど忘れていました^^;

596:Name_Not_Found
07/07/03 19:10:21
配列を使おうとおもうのですが、
リファレンスにかいてある、配列リテラルと、配列オブジェクト
どちらを使えばいいのでしょうか?

597:Name_Not_Found
07/07/03 19:44:31
好きなほう使えばいいと思います

598:Name_Not_Found
07/07/03 19:59:24
new Array(...)は「...」が1個でしかも数の時は
その要素数の配列ができてしまうという仕様。
[...] はそのような変わったことが起きない。
だから [...] の方を勧めるね。

599:Name_Not_Found
07/07/03 20:37:25
[...]だと「新たに配列を作る」ってことを言葉として書いてないから奨めかねる

600:Name_Not_Found
07/07/03 21:22:16
どちらも使わなければいいと思います

601:Name_Not_Found
07/07/03 21:50:05
ばか

602:Name_Not_Found
07/07/03 22:10:07
リンゴ 赤 100円
オレンジ オレンジ 70円
メロン 緑 300円
という多次元配列を作りたいのですが、

array(

603:602
07/07/03 22:13:09
途中で送信してしまった。。。すみません。

var arrayFruits = array(array("リンゴ", "赤", 100), array("オレンジ", "オレンジ", 70), array("メロン", "緑", 300);

こんな書き方はだめなんでしょうか?
ちなみにオレンジの70円
arrayFruits["オレンジ"][2](PHP風に…)をとりたいのですが、
オブジェクトを指定してくださいと言われます。

604:Name_Not_Found
07/07/03 22:16:49
array() ?

605:602
07/07/03 22:16:49
あれ・・・ちょっとおかしいですね。
PHP風だと
$arrayFruits = array(
array("リンゴ" => array("color" => "赤", "price" => 100),
array("オレンジ => array("color" => "オレンジ", "price" => 70),
array("メロン" => array("color" => "緑", "price" => 300)
);

で、
$arrayFruits["オレンジ"]["price"]ですね・・・

606:Name_Not_Found
07/07/03 22:19:01
>>603
JSONそのものだから、らくにできるだろ。

607:602
07/07/03 22:22:03
>>606
Wikipediaで調べてきました。どうもありがとうございます。
しかし不完全でみっともないPHPのコードなんて晒してすみませんでした・・・
>>605も変だ・・・しばらくやってなかったのでリハビリからはじめないと・・・

608:Name_Not_Found
07/07/03 22:27:26
リハビリというか、そろそろ4なんか捨てて5を使おうな。すれ違いだが、JSにも同じ風潮があって、このスレでもJS1.7が全く普及しない。たとえば、1.7を使えば順列列挙なんてあっさりできるのに、先月も延々と痛い議論が続いてたし。

609:Name_Not_Found
07/07/03 22:34:08
>>608
このスレで古いJavaScriptが捨てられないのならPHP4を捨てろなんて事言える立場にないだろ

610:Name_Not_Found
07/07/03 22:38:23
>>608
またおまえか

611:Name_Not_Found
07/07/03 22:42:45
Web制作板である以上、IEが対応してなければどうにもならん。
Array拡張程度なら何とかなるが。
IEでgeneratorやdestructuring assignmentを行う方法があるならぜひ聞きたい。

612:Name_Not_Found
07/07/04 00:52:16
使ってほしかったらさっさと日本語ドキュメントを書け

613:Name_Not_Found
07/07/04 03:08:51
IE の独自拡張にさんざ文句言って置きながら
Mozilla の独自拡張は諸手で喜ぶメンタリティが本気で分からない。

614:Name_Not_Found
07/07/04 04:01:14
まーた脳内で敵を作り出してるのか

615:Name_Not_Found
07/07/04 05:10:19
>>613
使うと文句言われるIE独自拡張の例を挙げてくれ

616:Name_Not_Found
07/07/04 07:55:06
洩れもECMAが対応するまではJS1.7の機能を使う気はないな。
リファレンスチェックするときECMAでチェックしてるし。

617:584
07/07/04 10:12:53
>>585
ありがとうございました。

618: ◆OVNYPzgZN2
07/07/04 11:14:47 d2uLlG6A
質問ですが、
document writeで出力する文字にHTML特殊文字があった場合にそのまま表示させるのは危険性があると思うので
HTML特殊文字のエスケープ処理を行いたいのですが、そのような関数はjavascriptにはありますでしょうか?
いろいろ調べた限り、javascriptの出力をエスケープをしているコード自体がなく困っています。


619:Name_Not_Found
07/07/04 11:28:14
>>618
ないね。もっともHTML的にトラブルになるのは「<」と「>」
だけだと思うけど。
str.replace(/</g, '&lt;').replace(/>/g, '&gt;')
じゃ不十分かな。

620:Name_Not_Found
07/07/04 12:49:29
>>619
あと半角の「&」もだよ。
半角「&」は真っ先に変換しないと < や > が二重に変換されるので注意。

621:Name_Not_Found
07/07/04 13:29:39
>>620
おお、すっかり忘れていた。アドバイス感謝。

622:Name_Not_Found
07/07/04 17:08:37
'はしなくてもいいの?
あ、sqlじゃなければいらねえかな

623:Name_Not_Found
07/07/04 17:52:31
質問です。Javascriptに排他制御は無いんですか?

624:Name_Not_Found
07/07/04 17:56:59
無いんですよ

625:Name_Not_Found
07/07/04 18:02:22
わかった、自分で実装してみる

626:Name_Not_Found
07/07/04 18:03:30
>>623
ピーターソン使えやボケが

627:Name_Not_Found
07/07/04 18:10:06
>>626
大学で習ったばかりだから、それを使う予定

628:Name_Not_Found
07/07/04 18:28:13
>>623-627
ブラウザ上のJavaScriptはシングルスレッドだから。
排他制御いらないでしょ。

629:Name_Not_Found
07/07/04 18:42:54
使いたいから使うわけで、必要か不要かはおまえ一人がきめることじゃない

630:Name_Not_Found
07/07/04 18:57:12
>>629
そりゃ結構だけど不要なのに排他制御のコードつけるって何の意味も
ないと思うよ。ま、ヘタ打って動かないもの(ブラクラ)作らないようにね。

631:Name_Not_Found
07/07/04 19:32:34
>>618
Attr の &, ', "
Text の <, &, ]]>
Comment の --, 末尾の -
CDATASection の ]]>
ProcessingInstruction の ?>

JavaScript リテラル内の ETAGO, 入れ子の文字列リテラル
CSS の url(), expression()

632:Name_Not_Found
07/07/04 20:32:27
>>630
setTimeoutがあるけどこれは処理割り込まないの?

633:Name_Not_Found
07/07/04 20:39:34
>>632
割り込まない。
というか、全体的な処理がfunctionをatomとして処理スタックにつんでいくイメージ。
再描画もたいていそのタイミング(functionの切れ目)で行われることが多い。

634:Name_Not_Found
07/07/04 21:25:34
質問させて下さい

URLリンク(www.simplexsimple.com)
はページ上部にしか移動できませんが
任意のidのフラグメントを指定した、上サイトのjavascriptは実装可能でしょうか?

よろしくお願いします

635:Name_Not_Found
07/07/04 22:11:38
>>634
どーにでもなるでしょ。idを指定してその要素の位置をoffsetTopで
取得、現在のscrollTopとの差で移動量を計算し、window.scrollBy()
で好きなように移動してけばいいじゃん。書くスキルがないのなら
勉強してね。

636:Name_Not_Found
07/07/04 23:02:18
>>635

技術的に可能という事が解りました
勉強します
ありがとうございました

637:Name_Not_Found
07/07/04 23:33:26 2HLrSMHH
質問です。
関数の中でreturnは2つ書けませんか?変数xがあるとして、
function test(){
return x;
//.....
//.....
return y
}
で、xとyを並べて表示させたいのですが。
ご教示ください。

638:Name_Not_Found
07/07/04 23:41:32
>>637
C言語でインラインアセンブラの勉強をしてみよう!

639:Name_Not_Found
07/07/04 23:56:11
return x; の時点で、関数抜けちゃうよ
return x,y; じゃだめなの?

640:Name_Not_Found
07/07/05 00:35:05
>>639
コンマ演算子は前を捨てるから、それだと y しか返らないよ。

return [x, y]; と配列にして返せば?

受け取り側が a = test(); なら、a[0] と a[1] で取り出せるだろう。

641:Name_Not_Found
07/07/05 00:48:15
>>637
普通の言語のスレでは遭遇しなさそうな質問だなあ。
function test1() {
if(Math.random() < 0.5) { return 'A'; }
return 'B';
}
では半々の確率で 'B' だけが返ったり 'A'と'B'とが
返ったりするわけか。
function test2() {
for(var i = 0; i < 10000; ++i) return 'A';
return 'B';
}
では 'A'が1万個と 'B'が1個返ったりするわけか。
あんたの脳内では。ちょっとすごいね。

642:Name_Not_Found
07/07/05 01:07:01
>>641
お前よりは尊敬できるけどな

643:Name_Not_Found
07/07/05 05:20:45
returnが呼び出されると関数は実行が即座に停止される。
つまり複数の値を返したい場合は配列を使う。

644:637
07/07/05 06:52:10
みなさんありがとうございました。納得です。

645:Name_Not_Found
07/07/05 11:06:10
>>633
じゃあyieldが実装されてしまった今は
関数単位でみればその前提は無くなるわけだね

646:Name_Not_Found
07/07/05 11:58:51
>>645
setTimeout()登録関数の途中でyieldするとどうなるわけ?
(あなたの勝手な期待ではなくどのように動作するのが仕様
かということだけど。)

647:Name_Not_Found
07/07/05 12:48:00
オブジェクト化してアクセスすりゃいいじゃん

648:Name_Not_Found
07/07/05 12:58:40
>>645
なにをいっているのかよくわからんな。
yield入りfunctionはジェネレータだから何もかわらんよ。

649:Name_Not_Found
07/07/05 14:59:15 vgqMaeo7
質問です。
function foo(){
this.myfoo=goo;
return this;
}
というコンストラクタのとき、return thisは必須ですか?

650:Name_Not_Found
07/07/05 15:14:59
>>649
必要ないです。

651:Name_Not_Found
07/07/05 17:01:48
コンストラクタの中で object を return すると
prototype やら何やら関係なくその object が返ってきちゃうんだよな
だから return this ってやると this っていう object がそのまま返っちゃうんだけど
これは結果としてコンストラクタとやってることは同じだから何も変わらないっていう、
中途半端な処理。あんまりオススメしない。

652:Name_Not_Found
07/07/05 18:39:59 bhyUg2pC
質問です。DOMの定義が今ひとつわからないんです。
DOMというのはブラウザごとにオブジェクトモデルはことなるので、
W3Cがブラウザごとに異なるオブジェクトモデルを統一するために作った
インターフェイスと言うことなのでしょうか?

653:Name_Not_Found
07/07/05 18:51:42
>>652 DOMの定義ならこれを嫁。
URLリンク(www.w3.org)
今ではブラウザとは無関係に「HTML/XMLドキュメントを操作するAPI」
ということになってる。実際Java(JavaScriptでなく)とかでもDOM使えるし。

654:Name_Not_Found
07/07/05 18:56:43
他言語で扱えるかどうかは聞いてない

655:Name_Not_Found
07/07/05 18:58:29
IDどうしたの?

656:Name_Not_Found
07/07/05 21:12:05
>>649
foo.call({}) のように使う事はよくあるだろう。
10年以上前なら意味がないと言ってもよかった。
しかし、apply()/call() 以降のここ約10年では、意味がある。
特にJScript5.5以降でこれらが採用され、それが普及したここ何年かは、意識して書き分けなければならないだろう。

657:Name_Not_Found
07/07/05 23:13:19
>>652
主にプログラミング言語からXML/HTMLを操作するためのデータモデルおよびAPI。
各インターフェイスが何を抽象化したものなのか
自分でパーサー書いてDOMツリーを構築してみれば嫌でも理解できる。
同時に標準APIの有難さと面倒くささもな。
DOMとは異なるデータモデル(XMLInfoset, XQuery/XPath等)と比べてみてもいい。

658:Name_Not_Found
07/07/06 04:42:12 IYjKoD5h
>>653 >>657

有難うございました。javascriptのdocumentオブジェクトとDOMのdocument interface
においてdocument.bgColorはどっちのアプローチになるのでしょうか?初歩的な質問
で申し訳ないです。

659:Name_Not_Found
07/07/06 08:36:59
>>658
W3C DOMの最初の版であるDOM Level 1にこういう記述がある。
URLリンク(www.w3.org)
つまりbgColorとかはDOM Leve 1では「古いから廃止」に
なってるわけで、含まれていないと考えるべき。
DOM Level 1以前の各ブラウザがサポートしていた共通
部分のことを「DOM Level 0」と通称するが、これは
あくまでも通称であってW3Cが標準化しているものではなく
何と何がDOM Level 0なのかは厳密に定まっていない。
だからbgColorみたいな古いものがDOMかどうかという質問は
「W3Cの定めるDOMではない」「W3C以前のDOMだと言うことも
できなくはない」ということかな。

660:Name_Not_Found
07/07/06 16:34:25 jlW8Jylo
質問です。
var a = new Object() ;
として、aのオブジェクトを使って色々やった後に
var a = new Object() ;
としたとします。
このとき、2つのインスタンスはどういう関係なのでしょうか。
aというオブジェクトと同じものがもう1個できたのか、
aというオブジェクトを上書きしたのか、
その辺のところがよく分かりません。ご教示ください。

661:Name_Not_Found
07/07/06 17:05:52
>>660
無関係。変数aに前に格納されていたオブジェクトへの参照は
どっかよそに保管されていない限り失われ、そのオブジェクトは
ごみ集めにより回収される。

662:Name_Not_Found
07/07/06 17:10:13 1Uvx8xRW
prototype.jsだと。継承って
ko.prototype = Object.extend(new oya, {});
になってるじゃないですか。

ko.prototype = new oya;
JavaScriptの継承ってこれですよね。

何が違うの?extendで明示してるだけ?

663:Name_Not_Found
07/07/06 17:35:57
>>662
prototype=new .. +αのことがしたいからでしょ。ソース読んでみては?

664:Name_Not_Found
07/07/06 17:40:47
>>663
ソース読むと、第2引数のプロパティを第1引数のプロパティにfor-inで渡して、
第一引数をリターン。つう感じです。

ふと思ったけど、継承でも
ko.prototype = Object.extend(new oya, {
 hoge : function(){
 },
 hogehoge : function(){
 }
});
みたいな作法が使えるのが良いのかな?

665:660
07/07/06 19:45:23
>>661
ありがとうございました。

666:Name_Not_Found
07/07/06 20:16:36
>>662
単に他との整合性で FA

667:Name_Not_Found
07/07/06 21:18:00
属性値の変更についての質問です。

ボタンを押すとテキストボックス(input type="text")を
非表示(type="hidden")にするということをしたいのです
がブラウザがIE(ver6,7で確認)だとうまくいきません。
以下ソースです。

<html>
<head>
<script>
function setattr()
{
//document.getElementById('test').setAttribute("type", "hidden");
document.getElementById('test').type = "hidden";
}
</script>
</head>
<body>
<input type="text" name="test" id="test"/>
<input type="button" onclick="setattr();" value="click" />
</body>
</html>

※コメントアウトしている方法でも試してみましたがうまくいきませんでした。

何か対策がありましたら教えてください。よろしくお願いします。

668:Name_Not_Found
07/07/06 21:41:05
その辺はブラウザの実装依存になりそうな気がする

remove して hidden のを append するんじゃいかんの?

669:Name_Not_Found
07/07/06 21:49:41
できないっぽいお
CSS で適当に対処したお

670:Name_Not_Found
07/07/06 21:58:31
ノードを消してから追加するのが無難かな

671:667
07/07/06 22:12:31
>>668~670さん
返信ありがとうございます!
削除して追加という手順がよさそうですね。
とくにその方法でも問題なく実装できそうなのでやってみます。

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

672:Name_Not_Found
07/07/07 10:33:26
>>658
語弊はあるが、階層構造を持つデータをテキスト的に(タグ等で)表現したのが XML であり、
オブジェクト的に表現したのが DOM、関数と軸と述語で表現したのが XPath だと思っている。

よく考えてみろ。HTML では BODY 要素型に属する bgcolor 属性が、
DOM では HTMLDocument インターフェイスに属するなんて、いかにも変だろ?
やはり bgColor は HTMLBodyElement インターフェイスのアトリビュートであるべきだ。

XML/HTML 自体が階層構造を持つデータであることを認識していれば、DOM はすぐ理解できると思うがな。
まあしかし、今更 bgColor なんてのが出てくる時点で HTML の理解も怪しそうだが。

673:Name_Not_Found
07/07/07 10:45:17 uorwyi/H
どこで質問していいのか分からないので間違っていたら誘導願いたいんですが

↓以下のサイトが自動更新プログラム(?)を用いて更新しているみたいなんですが、
URLリンク(yourvideo.hot-jp.com)

自分のブログも巡回先に入れられてるみたいです。
それを阻止するにはどうしたら良いんでしょうか?

<object>~</object>までと記事タイトルだけ引き抜いて自動更新してるみたいなんですが

その気になれば自分が書いた文章丸々ぱくって更新されることもあるんでしょうか?

(コピペならまだしも自動で全ての記事をぱくられて更新されまくると不快なので)

もしよろしかったら解答お願いします。
質問スレッドが間違ってたらすいません。

674:Name_Not_Found
07/07/07 10:59:43
すれちがい

675:Name_Not_Found
07/07/07 11:05:13
>>673
宣伝乙

676:673
07/07/07 11:14:45 uorwyi/H
どこで質問すれば良いんでしょうか?
web制作板以外で分かる人がいるとは思えないんです・・・

677:Name_Not_Found
07/07/07 11:18:08
>>676
誰が板違いなんて言った?

678:Name_Not_Found
07/07/07 11:19:22
直接相手に言えば?

679:Name_Not_Found
07/07/07 11:23:29
踏んでしまった…

680:Name_Not_Found
07/07/07 11:24:19
メール先、連絡先が分かりません
似たようなサイトがたくさん出てきた場合は対処に困るし
一発で回避できるような方法があればいいと思って

>>677
質問スレは制作初心者とcss、htacceseぐらいだと思うんですが
もしよろしかったらどこが適当なのか教えてもらえないでしょうか?

681:Name_Not_Found
07/07/07 11:26:23
ああもうこりゃ釣り決定だな
以降スルーで

682:680
07/07/07 11:27:31 uorwyi/H
なにがどう釣りなんでしょうか・・・

683:Name_Not_Found
07/07/07 11:30:57
スパム報告しておいたよ

684:Name_Not_Found
07/07/07 12:20:15
JavaScriptで画像を回転させられますか?
場所ではなく向きをです。

685:Name_Not_Found
07/07/07 12:39:49
質問偽装か

686:Name_Not_Found
07/07/07 13:48:44
>>684
URLリンク(dojotoolkit.org)

687:Name_Not_Found
07/07/07 14:40:23
>>684
canvas

688:Name_Not_Found
07/07/07 15:24:46
onload = func('hoge');
ってやったらIEに怒られた(´・ω・`)

689:Name_Not_Found
07/07/07 16:50:19
質問です。Javascript で「画像表示OFF」にしているかどうかを取得することは
出来るでしょうか?

690:Name_Not_Found
07/07/07 20:27:10
JavaScriptでページ内のflashだけリロードさせるにはどうしたらよいでしょうか。
「JavaScript」「flash」「リロード」で30分ぐらい検索したのですが、見つかりませんでした。
ヒントだけいただけたら自分で調べますので、よろしくお願いします。

691:Name_Not_Found
07/07/07 21:48:07
function adoLoadText(filename, charset) {
var stream, text;
stream = new ActiveXObject("ADODB.Stream");
stream.type = 2;
stream.charset = charset;
stream.open();
stream.loadFromFile(filename);
text = stream.readText(-1);
stream.close();
return text;
}
で5000kのutf-8のhtml読み込んでるんですが、とにかく遅い
10秒近くかかるんですが、他にutf-8が読み込める軽い方法ってありませんか?

ちなみにそのhtmlはテキストで1000行あるんですが、それをループとmatchするのは1秒かかるかかからないか
って感じです

692:Name_Not_Found
07/07/07 22:38:22
>>690
swf innerHTML div object

693:Name_Not_Found
07/07/07 22:38:41
ディスクから読むのとメモリ内で処理するのと1~2桁違うのは普通でわ。

694:690
07/07/08 00:17:49
>>692
innerHTMLで書き換えですね!
それらのキーワードで参考になるサイトも見つかりました。
ほんとありがとう!

695:Name_Not_Found
07/07/08 19:25:00 U7RXFIOP
文字列1x2x3x4x5xから最後のxを取り除く簡単な方法ありますか?

696:Name_Not_Found
07/07/08 19:38:31
>>695
str = "1x2x3x4x5x";
str.replace(/x$/,"");

697:Name_Not_Found
07/07/08 20:29:02 Hs9Jb1xa

ページロード時にフォームの初期化を行いたいのですが、BODYタグのOnLoadを使った場合、
例えば下のようにBODYタグの後に読み込まれるフォームの
オブジェクトを使ったJavaScriptの場合でもオブジェクトエラーにならないんですけど、
これはブラウザが自動的に読み込み中なのかどうか判定しているんでしょうか?

それともたまたまBODYタグを読み込むと同時にFORMまで読み込まれているからなのでしょうか?


<HTML ~~>
~~
<BODY OnLoad="javascript:document.forms[0].F1.value='XXX';">

<FORM ~~>
<INPUT TYPE="hidden" NAME="F1">
~~~


もし、たまたまエラーが起きていないんであれば、エラーが発生することの無いように
フォームがすべて読み込まれた後に、その初期化スクリプトを実行したいんですけど、
その場合はどこにどのように書けばいいのか、知っていたら教えてください。
(ブラウザはIE限定で構いません。)



698:Name_Not_Found
07/07/08 22:15:23
>>697
onloadハンドラはページ内容が全部読み込まれた後で実行されるから。
普通はonloadハンドラに初期化関数の呼び出しを書いて、その初期化
関数で初期化を行う。どのブラウザでもそれで動く。つかこのスレにも
そういう使い方はいくつも載っている。つかそれすら読めない奴には
2度と来て欲しくないね。カエレ。

699:Name_Not_Found
07/07/08 23:00:43
getElementById以外のgetElementBy~がよく分かりません。
たとえばgetElementByNameでいくつか集めてきて、それら全てに何かしたいときは
forをどういう風に書いたらいいんでしょうか

700:Name_Not_Found
07/07/08 23:06:08
>>699
getElementByNameならそもそもforなど無縁のはずだが
そういう考えだとあと20年はかかるだろうな


701:Name_Not_Found
07/07/08 23:13:55
>>700
なるほど・・・
いろいろ弄って覚えます

702:Name_Not_Found
07/07/08 23:36:16
getElementByNameってなに?


703:Name_Not_Found
07/07/08 23:52:29
みんないじわるだな。w
Element か Elements かの違いは非常に重要な意味があるからそこを見落とすな。

704:Name_Not_Found
07/07/09 02:05:05 if4RxLWH
iframeに表示されている内容を取得したいのですが、どうすればいいでしょうか?

705:Name_Not_Found
07/07/09 05:06:58
おれも知りたい↑
だれかおしえて

706:704
07/07/09 06:06:51 if4RxLWH
補足です。
iframeのform内の情報ではなく、iframe内のHTML自体を取得したいのです。
よろしくお願いします。

707:Name_Not_Found
07/07/09 08:27:53
>>704-706
frames.IFRAMEの名前.document.body.innerHTML
ただしIFRAMEの中身が他鯖なら絶対不可能。

708:699
07/07/09 14:17:22 06tSfGZX
例えばgetElementsByNameで集めてきたDIVを全て右に10px動かすというのはどういうコードになるんでしょうか。

709:Name_Not_Found
07/07/09 14:57:17
>>708
それぞれのdivがposition:absoluteやposition:relativeに
指定されていないのなら、position:relativeに指定して
leftに10pxを設定すればいいんじゃないの。あとは勉強すれば
できるだろ。全部書けというのは断るから。そうか、for文が
書けない?
for(var i = 0; i < a.length; ++i) { ...a[i]を操作... }
これでいいかな。

710:699
07/07/09 15:05:46 06tSfGZX
>>709
for(var i = 0; i < (a=getElementsByName('test')).length; ++i) { ...a[i]を操作... }
案外配列っぽいんですね;
ありがとうございました。

711:Name_Not_Found
07/07/09 15:32:44
>>710
ループの中で々getElementsByName()を呼ぶのはちょっと
重そうだけどね。ふつう
for(var i = 0, a = ...; i < a.length; ++i) ...
とかじゃないですかね。

712:Name_Not_Found
07/07/09 15:49:54 PSX0xquK
/動的に関数を作るときに変数に入った値をそのまま関数に埋め込むのってどうすればいいんですか?
たとえば
var value = 1;
var testalert = function(){ alert(value);};
value = 2;
testalert();

これだとアラートウインドで表示される値は 2 ですが、1を表示するようにしたいのです。

713:Name_Not_Found
07/07/09 16:01:34
>>712
ヒント:ローカル変数
ダウト:アラートウインドって?

714:Name_Not_Found
07/07/09 16:32:04
rnode=document.getElementById('palette').getElementsByTagName('TR');

<table width="88" border="1" id="palette">
<tr><td colspan="2" align="center" style="width:72px; height:20px;">
<div id="box"></div>
<div id="subbox"></div>
</td></tr>
<tr><td style="background-color:#ff0000; width:36px; height:36px">
<br></td>
<td style="background-color:#ffff00; width:36px; height:36px"><br>
</td></tr>
<tr><td style="background-color:#00ffff; width:36px; height:36px"><br>
</td><td style="background-color:#0000ff; width:36px; height:36px"><br>
</td></tr>
<tr><td align="center" style="background-color:#ffffff; width:36px; height:41px">
<img src="eraser.gif" alt="eraser"></td>
<td align="center" style="background-color:#ffffff; width:36px; height:41px">
<img src="pen.gif" alt="pen"></td></tr>
</table>

の場合rnodeには何が代入されるんですか?

715:Name_Not_Found
07/07/09 17:31:37
>>713
本当に分かってるんならソース書いてみなよ

716:Name_Not_Found
07/07/09 18:05:54
>>712
FAQ >>3-4 のQ14/A14 をよく読め。読んで応用できないなら向いてない。
>>714
tableの中にある4つのtr要素を含んだHTMLCollectionオブジェクトでは。

717:Name_Not_Found
07/07/09 18:30:13
>>713
ひっこめ半可通。

718:Name_Not_Found
07/07/09 18:42:59
ことあるごとにダウトって言ってる奴はなんなの?

719:Name_Not_Found
07/07/09 19:10:13
ダウトって普通に言わないか?
俺も良く使うんだが

720:Name_Not_Found
07/07/09 21:01:41
createしてから名付けたエレメントはgetElementsByNameに引っ掛からないんですね・・・徒労・・

721:Name_Not_Found
07/07/09 22:29:24 TFz/71e5
質問させていただきますm(__)m

<input class="term" type="text" name="term" value="○○を入力汁" size="17" />
というフォームを設置しているのですが,このフォームにフォーカスされたときに
valueの文字列が全部選択状態,あるいは消去されるようにしたいのですが,
どうすればよいでしょうか?

722:704
07/07/09 22:40:09 if4RxLWH
>>707
レスありがとうございます。

それと、説明が足らずすみません。ご回答いただいた内容で方向性はあっているのですが、
BODY内部だけではなく、HTMLソース全体を取得したいのです。

やりたかったこととしては、iframeにテキストファイル表示させて、
その内容を文字列として取得したかったのです。
外部ファイルの読み込みをしたかったということなのですが、
何かいい方法はないでしょうか?

document.documentElement.innerHTMLで<head>部分も取得できるようですが、
<html>タグの部分が取得できないのと、実際に<head>が書いてあるかどうかに関係なく、
必ず戻り値に<head>が含まれてしまいます。

純粋にファイルの内容だけをとりたいのですが、方法ご存知でしたら教えてください。

723:Name_Not_Found
07/07/09 22:43:39
>>722
iframe使わなあかんの?

724:704
07/07/09 22:50:24 if4RxLWH
>>723
必ずしも使う必要はないです。それが簡単そうかなと思ったので。

725:Name_Not_Found
07/07/09 23:47:39
>>724
XMLHttpRequest

726:Name_Not_Found
07/07/09 23:58:35
>>721
<input ... onfocus="this.value=''" ...>
ただし「この入力欄にフォーカスされたとき」になってる。

727:704
07/07/10 00:35:41
>>725
自分でモジュール集めたりとかもっとめんどくさいものだと思って逃げてたのですが、
そうでもないのですね。せっかくなのでこの機に勉強してみます。
ありがとうございました。

728:Name_Not_Found
07/07/10 04:02:35 nRpMLYBd
ajaxの話なんだが、丁度合うスレが無くて。誘導歓迎。

xmlhttprequestで通信中にabortしたときの動作が不定なんだが、
・IE6:status=0
・Gecko:停止するのみ
・FF:イベントは発生するが、statusを参照するとエラーを吐く
このFFの動作が厄介なんだけど、対処法って無いのかな?


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