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

このエントリーをはてなブックマークに追加
1Name_Not_Found
前スレが900越したのでこちらに移行して下さい。
JavaScriptの事でききたいことがあったらこちらへどうぞ。

注: JAVA と JavaScript は別の物です混同しないようにして下さい。

住人のみなさん、煽らないで優しくしてあげてね。

vol.1 http://mentai.2ch.net/test/read.cgi?bbs=hp&key=972192155&ls=100

vol.2 http://natto.2ch.net/test/read.cgi?bbs=hp&key=985424635&ls=100
2:2001/07/03(火) 23:59
高度な JavaScript の本教えてちょ
3Name_Not_Found:2001/07/04(水) 00:16
>>2
とりあえずオライリーかなあ…しかし翻訳は翻訳してる
間に古くなるという感じも。
4:2001/07/04(水) 00:29
ありがとうございます

買うだけの価値はあるでしょうか?
5Name_Not_Found:2001/07/04(水) 00:47
>>4
オライリー高そうだからなあ…買う価値があるかと
言われると。実は8月アタマに本体価格1800円の
本が出る。これなら値段がこれだし、買って損とい
うことはないと思う。でもまあ、本屋でチェックし
てから決めてちょ。
6:2001/07/04(水) 00:56
>>5
何でそんなことまで詳しく知っていらっしゃるのですか?

ということで、本屋で見てみます
7うーん:2001/07/04(水) 01:38
あの、すいません。
くりっくしたら(別に何もないとこでも)音が出るようにするには
どうやったらいいのでしょうか。
教えて下さい。
8Name_Not_Found:2001/07/04(水) 01:41
>>7
茶碗と箸を持ち、ずっと待ち構える。
9:2001/07/04(水) 01:45
「何もないところ」に何かを置かなきゃだめでしょうねぇ
10Name_Not_Found:2001/07/04(水) 01:54
<body onclick="知らんけど">
11:2001/07/04(水) 02:31
>>9

<HTML><HEAD>
<TITLE></TITLE>
<SCRIPT Language = "JavaScript">
<!--
function playMidi(name)
{
if (document.getElementById) snd.src = name;
}
//-->
</SCRIPT>
</HEAD>
<BODY onclick="playMidi('morning.mid')">
<bgsound src="silent.mid" id="snd">
これでどうでしょう?
</BODY>
</HTML>
12:2001/07/04(水) 02:33
>>7 でした
13うーん:2001/07/04(水) 03:03
おおっ!
上のを参考にしてやってみたらできましたっ!
あれからもずーっとチャレンジしてたんですけどうまく行かずに
悩んでおりました。
ありがとうございます。
早速、使わせてもらいます。
14Name_Not_Found:2001/07/04(水) 03:21
>>7に近いですが
リンクをポイントしたらポコッって音を鳴らすにはどうすればいいですか?
15うーん:2001/07/04(水) 03:51
すいません。おまけで、もひとつ教えて下さい。
背景の絵をセンターに一枚だけ置く方法をお教えください。

もう、ほんとにすんまへん。
16:2001/07/04(水) 04:08
そいつはスタイルシート。CSS板でききな。

body {
background:#fff url(back.gif) no-repeat 50% 50% fixed;
}
17うーん:2001/07/04(水) 04:22
おおっ
これまた ありがとうございます。

できました!!!

そのプログラムをスタイル文で囲んだらよかったわけですね。

どうも ありがとうございます
18Name_Not_Found:2001/07/04(水) 09:19
>>17
だからプログラムとちゃうねん。なんやスタイル文って…
19:2001/07/04(水) 10:17
>>14

>>11のスクリプトの<body onClick〜>を消して
<A href="***.html" onMouseOver="playMidi('poko.mid')">Link</a>
だろ。
そのくらいできなきゃダメよ
20Name_Not_Found:2001/07/04(水) 11:06
テキストボックスが一個だけ置いてあるページで、そこのテキストボックス内で
enterを押すと勝手にsabmitされるのを防ぎたいんですけど、どうしたらいいですか?

IEだと、keypress="キーコードでenterを判断してfalseを返す関数" でうまくいくんですけど
NNだとkeypress自体が発生してくれない・・・。
2120:2001/07/04(水) 11:22
あ、すいません。自己解決できました。
22Name_Not_Found:2001/07/04(水) 11:33
>>21
そういう時は自己解決のあらましもキボーン。
23Name_Not_Found:2001/07/04(水) 11:46
>>17
こんな厨房が、俺のサイトcss使ってるんだぜーすげーだろ
みたいに粋がってたらかなり腹立つなぁ。
俺cssっつぅプログラム書けるんだぜーってか(w
2420:2001/07/04(水) 11:54
>>22 っと、スンマセン。それじゃ解説を・・

keypressイベントをテキストボックスのタグ内に入れるのではなく、
キャプチャーイベントとして取得したらOKでした。

--サンプル--
<head>
<script language="Javascript">
<!--
function kPress(myEvents){
if(document.all){
if(event.keyCode == 13){
return false;
}
}else{
if(myEvents.which == 13){
return false;
}
}
}
//-->
</script>
</head>
<body>
<FORM name="form1">
パスワード <input type="password" name="passwd" value="" size="15" maxlength="10">
</FORM>
<script language="Javascript">
<!--
//キャプチャーイベントの取得
//(ページが読み込み終わってから取得しないとオブジェクトエラーが発生するため)
document.form1.passwd.onkeypress = kPress;
//-->
</script>
</body>


こんな感じデス
25Name_Not_Found:2001/07/04(水) 11:55
>>23
そういうの腹立つか?CSSが書けるなんて「日本語喋れる」
のと大差なし。「日本語喋れる」と言われて腹立つか?
爆笑しちゃうだけだろー。

JavaScriptの話題じゃないと思われてるかも知れないが。
JavaScriptからページの中身の色変えたり位置変えたり
するにはCSS知らないと困るのだよねー。
2620:2001/07/04(水) 11:58
って、リファレンスよく読んだらキャプチャーイベントの意味違うじゃん・・・
逝ってきます
27Name_Not_Found:2001/07/04(水) 13:02
>>26
よく読まなくても、最初から全然違うYO! (ちょっと使ってみたかった…)

ところでリファレンス何見てます?Netscapeのは
Client JavaScript 1.3までしかないので不便!
Core JavaScript 1.5はあるけどこれはECMAと同じだし。
28Name_Not_Found:2001/07/04(水) 14:24
>>27
> ところでリファレンス何見てます?
見ないね。
JavaScriptはいろいろなメソッド・プロパティを使うと、
ブラウザ間での誤差調節が大変。
今までに書いたスクリプトなど確実なものを流用してるので、
あんまりリファレンスの必要性を感じない。

みんな、そんなもんなような気がするんだが・・・。

でも、オススメは知りたい。
他の人の意見も聞きたい。
29Name_Not_Found:2001/07/04(水) 14:26
age
30Name_Not_Found:2001/07/04(水) 14:53
うん、何かマターリしてて良いね。
31Name_Not_Found:2001/07/04(水) 16:39
>>28
一理ある。が、それが言えるのは自分が使うワザが
一通り揃って確立しているからであって、新しい
ことをやろうとしたら調べるためのリファレンスが
必要なんじゃない?今、ワザを学ぼうとしている人
にとっては切実な問題だよね。>リファレンス

確かにブラウザによる違いは大問題。自分では仕方
ないので、DOMとかECMAとか標準になってるものを
参照して、どうしても足りないところは検索したり
Netscapeのサイト、Mozilla.org、MSDNなんかを探し
ている。それでアタマ来るのは、MSってまとめて印刷
できるような形で情報を公開してくれないんだよね。
なんだかなー。
32:2001/07/04(水) 17:18
セレクトメニューを3つ「年」「月」「日」で作成したのですが、
このうちの「月」と「日」で、ありえない日付(例:6月31日など)を
選択した時にエラーメッセージを出すにはどうしたらいいのでしょう?
どなたか教えてください。
33Name_Not_Found:2001/07/04(水) 18:22
連番のオブジェクトをループで扱いたいのですが
配列などに一気に入れる方法ないでしょうか

text0
text1
text2

見たいな感じです
34Name_Not_Found:2001/07/04(水) 18:23
test
35Name_Not_Found:2001/07/04(水) 20:06
>>32
ん?
よくわからない・・・とおもったら、わかった。

月で2・4・6・9・11を選択した時に、
テキトウな変数作って、「1」を代入し、
日を選択した時にその値をチェック(onselectによって)すればいいんじゃない?


サンプル書こうと思ったけど、長くなりそう。
結構めんどくさいかも。
選択した後、サブミットするものなら、
その時にチェックするようにすればいいと思う。
36Name_Not_Found:2001/07/04(水) 21:05
>>33
(1)広域変数とはwindowオブジェクトのプロパティである。
(2)オブジェクトoのプロパティxはo['x']で参照できる。
以上を組み合わせると、次のようにすればよい。

var a = new Array[10];
for(var i = 0; i < 10; ++i) a[i] = window['text' + i];
オワカリカナー。
37Name_Not_Found:2001/07/04(水) 21:30
>>36
いかん、誤「Array[10]」正「Array(10)」だった。
欝だ死のう。
38Name_Not_Found:2001/07/04(水) 21:36
>>32 うろおぼえだが、入力値から一回 Date を作って、元の
日付フィールド値と比較すればよいとおもわれ。違ってたら
突っ込んでくれ。

var m = 6;
var d = 31;
var dt = new Date(2001, m, d);
if(dt.getMonth() != m || dt.getDate() != d){
  alert("逝ってよし");
}
39Name_Not_Found:2001/07/04(水) 21:50
>>38
あのー、蛇足かも知れませんが、Dateクラスでは月
番号は0〜11の範囲になっております。つまり6ての
は日本語でいう「7月」ですな。いや別に、このコー
ドが間違っているという訳じゃあないのですが、こ
れを見ている方、ご注意を。
40Name_Not_Found:2001/07/04(水) 23:19
いいリファレンス教えてくださいな
41:2001/07/05(木) 00:34
>>32 なんとなく作って見ました
こんなんでどうでしょう

<HTML><HEAD><TITLE></TITLE>
<SCRIPT Language = "JavaScript"><!--
function check()
{
var mon = document.myForm.month.selectedIndex;
var day = document.myForm.day.selectedIndex;

myMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

if (day+1 > myMonth[mon])
alert("日付を確認してちょ");
}
//--></SCRIPT>
</HEAD>

<BODY>
<form name="myForm">
<select name="month" onChange="check()">
<SCRIPT Language = "JavaScript"><!--
for (i = 1;i<=12;i++)document.write("<option value ="+i+">"+i);//--></SCRIPT>
</select>月

<select name="day" onChange="check()">
<SCRIPT Language = "JavaScript"><!--
for (i = 1;i<=31;i++)document.write("<option value ="+i+">"+i);//--></SCRIPT>
</select>日</form>
</BODY>
</HTML>
42芸能人の裏話!:2001/07/05(木) 00:50
43Name_Not_Found:2001/07/05(木) 00:57
varうざ
44Name_Not_Found:2001/07/05(木) 01:02
>>43
varつけないと広域変数になるから痛い目に会いやすくなるYO!
45:2001/07/05(木) 09:52
>>35さん、>>38さん、>>41さん、
どうもありがとうございます。
いろいろとためしてみますね。
46Name_Not_Found:2001/07/05(木) 10:40
>>37
作ってみました。
結果は

[object]
undefined
undefined
となりtext1とtext2が配列に入ってないようです。
なにが悪いんでしょうか?

<HTML>
<SCRIPT>
<!--
function arrayTest() {
var a = new Array(2);
for(var i = 0; i < 3; ++i) {
a[i] = window['text' + i];
document.write(a[i]);
document.write("<BR>");
}

}
// -->
</SCRIPT>
<BODY>
<INPUT type="text" name="text0">
<INPUT type="text" name="text1">
<INPUT type="text" name="text2">
<INPUT type="button" onClick='arrayTest();'>
</BODY>
</HTML>
47Name_Not_Found:2001/07/05(木) 10:59
>>46
name属性で指定したものって広域変数になるの?
なんか疑問だなー。私はgetElementByIdを使います。
<html><head><title>???</title></head>
<script type="text/javascript">
var a = new Array(3);
function test() {
for(var i = 0; i < 3; ++i) {
a[i] = document.getElementById('text' + i);
a[i].value = i;
}
}
</script>
</head><body><p>
<input type="text" id="text0">
<input type="text" id="text1">
<input type="text" id="text2">
<input type="button" onclick="test()" value="test">
</p></body></html>
48Name_Not_Found:2001/07/05(木) 11:01
>>47
いかん、「</head>」が1つ余計だ…逝ってきます。
49Name_Not_Found:2001/07/05(木) 11:32
>47
できました!
ありがとうございました

<html><head><title>???</title>
<script type="text/javascript">
var a = new Array(3);
function test() {
for(var i = 0; i < 3; ++i) {
a[i] = document.getElementById('text' + i );
//a[i].value=i;
alert(a[i].value);
}

for(var i = 0; i < 3; ++i) {
document.write(a[i].value);
document.write("<BR>");
}
}

</script>
</head><body><p>
<FORM name="name">
<input type="text" id="text0">
<input type="text" id="text1">
<input type="text" id="text2">
<input type="button" onclick="test()" value="test">
</FORM>
</p></body></html>
50Name_Not_Found:2001/07/05(木) 11:34
もうひとつのやりかた
windowオブジェクトのプロパティで値を受け取る方法は
<FORM></FORM>に<input TYPE=text>が入ってしまうと
どうすればいいのかがわからないです。
51Name_Not_Found:2001/07/05(木) 12:07
>>50
試してないけど、form要素の中に入れた場合は

<form name="form1" ...><input name="text0" ...>
という風にnameを指定したばあい(たとえば)、

document.form1['text' + i]

になるんじゃないかな。試してないヨ。
52名無しさん@MZ-2000:2001/07/05(木) 12:25
document.form1.elements['text' + i] とか。
53Name_Not_Found:2001/07/05(木) 12:56
51>
試してみました。
まさにそのとおり
['document.form.text' + i];
ってやって、うごかないなぁてtなやんでました

何度も教えていただき、本当にありがとうございました
54Name_Not_Found:2001/07/05(木) 20:33
>>53
それはそれは…

「広域変数」ってのはこの場合「document」だけです。で、
「document.font」ってのは「document」のプロパティで、
「document.font.text0」ってのは「document.font」の
プロパティなのですよね。オブジェクトとプロパティって
JavaScriptの基本なんだけど、案外知られてないのかな。
55女の子:2001/07/05(木) 20:50
 Hな会話もいいけど、ほんとにHをしよう

 たまに掲示板をみて、これでずっと楽しめるかなー? と疑問に思う。
なんかむなしくなって来ませんか?
だから、実際にHがしたい人がめぐり逢って、純粋に全て忘れて
one night love
楽しもう! 彼氏・彼女いてもOK! 妻・旦那いてもOK!
純粋にシタイひと 待ってマース!
http://village.infoweb.ne.jp/~rank/Rank/rankem.cgi?action=in&id=reika
http://village.infoweb.ne.jp/~rank/Rank/rankem.cgi?action=in&id=miyuki
http://village.infoweb.ne.jp/~rank/srank/rankem.cgi?action=in&id=yukiko
http://village.infoweb.ne.jp/~yama/cgi-bin/Ranklink/ranklink.cgi?action=rank&id=kiss1
http://210.224.170.32/~idol-pics/ranking/rankin.cgi?id=LNK1000011
http://bbx.kidd.ne.jp/minibbs.cgi?0001/miyuki143
http://bbx.kidd.ne.jp/?0001/1234567
Hな会話もいいけど、ほんとにHをしよう
http://www.hitoriasobi.com/netidol/idolhappy/maki/
56Name_Not_Found:2001/07/05(木) 21:23
>>55
アンタ分かってないね。掲示板が楽しいんじゃなくて
JavaScriptでプログラム作って動かすのが楽しいんだヨ!
57Name_Not_Found:2001/07/05(木) 21:26
>>54
「広域変数」ってのはwindowオブジェクトのプロパティーで
使うのが普通みたいだけれど、documentオブジェクトでも
やるってことですか
58Name_Not_Found:2001/07/05(木) 21:40
>>57
ちがうちがう。広域変数を作るのに

var x = 10;

なんていう風にして作れますよね(関数の外側で)。documentも
どっかで

var document = ...;

というふうに作っているものと思ってください。(xにオブジェクト
が入っているものとして)xのプロパティpはx.pで参照できます
よね。documentのプロパティもdocument.form1みたいにして
参照できますよね。これらは単なるプロパティであり、広域変数
ではありません。つまり単なる「p」、単なる「form1」では参照
できません。「x」や「document」はそれ単独でOKですよね。
これらは広域変数だから。広域変数とプロパティの違い、分かりま
した?
59Name_Not_Found:2001/07/06(金) 01:02
つうかグローバル変数と言え。
60Name_Not_Found:2001/07/06(金) 01:12
なるほど…が、「グローバル変数」だと理解するが「広域変数」だと
理解しない、という人は本当にいるんでしょうか?カタカナ語はでき
るだけ減らしたいと思ってるのですが…
61Name_Not_Found:2001/07/06(金) 02:04
「広域変数」
理解は出来ますがなんかもにょもにょします。
62教えて:2001/07/06(金) 02:12
教えてチョ!

マウスをクリックしたらそこに絵が表示される方法をおしえてっ!

お願いします!
63Name_Not_Found:2001/07/06(金) 02:23
>>62

http://www.geocities.co.jp/SiliconValley-Cupertino/5657/img20010514210907.gif
↑をクリックすれば絵が表示されるぞ。
これで完璧!
64遅漏スマソ:2001/07/06(金) 02:49
>>41 うるう年が…。>>38 の方が安全。月は -1 する必要あるが。
65Name_Not_Found:2001/07/06(金) 08:15
>>63
爆笑!

>>62
あらかじめ場所が空けてあってそこをクリックするとその場所
に絵が現れるのか、ふつうにページが表示されてる状態で、
どこでもクリックするとその位置にスーパーインポーズされる
形で絵が現れるのか、どっちですか?
66教えて:2001/07/06(金) 09:47
>65さんへ

ふつうにページが表示されてる状態で、
どこでもクリックするとその位置にスーパーインポーズされる
形で絵が現れる方です。

すいません、おしえてください。
67Name_Not_Found:2001/07/06(金) 10:45
var global = 50; //広域変数の宣言と初期化
alert(window.global);

広域変数って window プロパティー だったのか!?
これってジョーシキだったりして...

つまり
var val = 76;
window.val = 76;
は全く同じ意味なんですね。
68Name_Not_Found:2001/07/06(金) 11:08
>>64 これでよいかな
<HTML><HEAD><TITLE></TITLE>
<SCRIPT Language = "JavaScript"><!--
function check(){
var mon = document.myForm.month.selectedIndex;
var day = document.myForm.day.selectedIndex;
var year = document.myForm.year.selectedIndex;//追加
year = year+2001;//追加
myMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
if (!(year%4))myMonth[1]=29;//追加
if (day+1 > myMonth[mon])
alert("日付を確認してちょ");
}
//--></SCRIPT></HEAD>
<BODY>
<form name="myForm">
<select name="year" onChange="check()">//追加
<SCRIPT Language = "JavaScript"><!--
for (i = 2001;i<=2030;i++)document.write("<option value ="+i+">"+i);//--></SCRIPT>
</select>年
<select name="month" onChange="check()">
<SCRIPT Language = "JavaScript"><!--
for (i = 1;i<=12;i++)document.write("<option value ="+i+">"+i);//--></SCRIPT>
</select>月
<select name="day" onChange="check()">
<SCRIPT Language = "JavaScript"><!--
for (i = 1;i<=31;i++)document.write("<option value ="+i+">"+i);//--></SCRIPT>
</select>日</form>
</BODY></HTML>
69Name_Not_Found:2001/07/06(金) 11:16
>>61
グローバルスタンダード→「世界標準」
グローバルコーポレーション→「国際企業」

だから、

グローバル変数→「世界変数」または「国際変数」

なんてどお?
70むぎ茶      :2001/07/06(金) 11:18


中学生からやりなおしたら?


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
むぎちゃんねる
http://aho0baka.virtualave.net/bbs/bbs.cgi
メイリングリスト
http://www.freeml.com/ml_info.php?ml=bitvalley
71Name_Not_Found:2001/07/06(金) 11:42
■[global]のEXCEED英和辞典からの検索結果 


glob・al 
 
a. (地)球状の; 全世界の; 包括的な. 
globalism 
n. 世界的干渉主義, 世界的規模化. 
globalist 
n. 
globalize 
vt. 世界化する, 世界的規模にする. 
globalization 
n. 
globally 
ad. 
global backup 
【コンピユータ】 広域バックアップ ((ハードディスク全体のバックアップ)). 
global character 
【コンピユータ】 ワイルドカード. 
Global Infomation Infrastructure 
【コンピユータ】 世界情報基盤 ((略 GII)). 
global music 
=world music. 
Global Positioning System 
【コンピユータ】 (ナビゲーションに使われる)全地球測位システム ((略 GPS)). 
global product 
世界商品 ((同じ商標名で全世界で販売される)). 
global search 
【コンピユータ】 全文検索. 
global variable 
【コンピユータ】 大域変数, グローバル変数. 
global village 
地球村 ((通信環境の進歩により世界をひとつの村社会とみなす)). 
global warming 
地球温暖化. 
72Name_Not_Found:2001/07/06(金) 12:16
>>65
ホレ。N6/MozillaとIE5.5で確認。N4はさすがに難しい
だろう(画像が1個だけでつつくたびにそこに移動する
ってんならできると思うが)。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 0; left: 0; visibility: hidden }
</style>
<script type="text/javascript">
function show(x, y) {
var i = document.getElementById('i1').cloneNode(true);
document.getElementById('b1').appendChild(i); i.style.left = x + 'px';
i.style.top = y + 'px'; i.style.visibility = 'visible';
}
function h1(e) { show(e.clientX, e.clientY); } // N6, Mozilla
function h2() { show(window.event.clientX, window.event.clientY); } // IE
function init() {
if(window.addEventListener) window.addEventListener("click", h1, true);
else document.onclick = h2;
}
</script>
</head><body id="b1" onload="init()">
<p>あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ</p>
<p>あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ</p>
<p>あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ</p>
<p>あいうえおかきくけこあいうえおかきくけこあいうえおかきくけこ</p>
<div id="i1"><img src="test.png"></div>
</body></html>
73Name_Not_Found:2001/07/06(金) 12:36
>>67
広域変数がwindowのプロパティであるのはJavaScript
プログラマの常識であるべきなのですが、意外と知られ
ていないのかも。こういうことをちゃんと押えてあるか
どうかでイザという時に差がつくと思うのですけどね…
74Name_Not_Found:2001/07/06(金) 13:25
>>72
いや、やっぱし、N4でも画像を100個とか用意しとけば
その数まで現われるようにはできるな。まー、やりたい
人がやってよ。
75教えて:2001/07/06(金) 16:20
>65さん

あっそうです!
そうゆうのがやりたかったんです。
言われてすぐできちゃうなんてすごいですね。

おかげで助かりました。
ありがとうございました。
76Name_Not_Found:2001/07/06(金) 23:39
>>75
あのー、おせっかいだとは思いますが、あのコードについて
質問はないんでしょうか… できれば、コピペで動かすだけじゃ
なくて理解して応用できるようになって戴けると嬉しいと思う
のですが。おせっかいですみません。
77Name_Not_Found:2001/07/07(土) 00:24
>>76
私は75ではないですけど、教えてください

cloneNode(true);
appendChild(i);
window.addEventListener

私の持っている本を見ても1つも載ってなかったんです。
恥ずかしいですが...

76さんはどのようなもので勉強なさっていらっしゃるのでしょうか。
78Name_Not_Found:2001/07/07(土) 00:44
>>77
よくぞ聞いてくださいました(誰も聞いてくれなかったら
どーしようかと思った)。cloneNode()とかappendChild()
とかはDOMレベル2コアのメソッドです。DOMではHTML文書や
XML文書をNodeオブジェクトのツリーとして保持し操作させて
くれますが、そのツリーをそっくり複製したり、複製したサブ
ツリーをbodyノードの下に追加するのにこれらを使っている
わけです。

window.addEventListenerはDOMレベル2イベントのメソッド
ですが、こっちは単にクリックを取るためだけに使っているので、
これで頑張らなくてもIEやNetscapeの従来の方法で代替できま
すね(ていうかIE5.5はまだこれをサポートしてないです)。

私はW3Cの規格を読みまくって探求しましたが、やっぱりこれらを
学ぶのにDOMの規格を読むというのはなかなか敷居が高いところな
んじゃないかと思いますんで、これらをきちんと解説した
JavaScript本の登場が待たれるわけです。私の理解するところ
では、DOMと銘打った本も少しは出ていますが、だいたいXMLを
解析して何かする、という感じで、Web製作板っぽいのはナイよう
に思います。違っていたらどなたかぜひ指摘してください。
79Name_Not_Found:2001/07/07(土) 00:51
>>78
素晴らしいです。美しくて涙が出ちゃいそうです。
私も勉強します!
80Name_Not_Found:2001/07/07(土) 12:39
他のスレ読んでると、「JavaScriptはうざい、嫌いだ」
「JavaScriptは切っている」という書き込みもよく目に
します。しかしそれはJavaScriptが悪いんじゃなくて、
そういうウザい動作に使う奴が悪いんですよね。
JavaScriptに罪はないのにかわいそ…(泣)

で、こういうことは嫌われるからやめようとか、こうい
うことにJavaScript使うのなら歓迎されるんじゃないの
とか、そゆ話題もあるといいなあ…
81Name_Not_Found:2001/07/07(土) 12:44
>>80
ブラクラにJavaScriptを使うと嫌われます。そんだけ。
それ以外は歓迎!
82Name_Not_Found:2001/07/07(土) 12:50
>>81
ブラクラが好きな奴がいるか!!!

それはそーと、私は、新しく窓を開かせる
のはウザいから絶対やめた方がいいと思う。
83Name_Not_Found:2001/07/07(土) 16:08
>>82
「あなたが」ウザイと思うから絶対やめた方がいいの?
84Name_Not_Found:2001/07/07(土) 16:38
>>83
いや、私が「ウザイから絶対やめた方がいい」と
思っているだけで、そう思わない人の話も聞きたい
ですね。
85Name_Not_Found:2001/07/07(土) 18:57
DOMのことなんですけど、XMLの本には詳しく書いてあるのもありますね。
そういうのを見てDOMを使うのもよいかなぁなんて思ったりしているのですが...

でも、DOMって使いようによってはスバラシイですね
86Name_Not_Found:2001/07/07(土) 21:40
>>85
DOMを使うとページ内容がどういう風にでもいじくれますから、
アイデア次第で何でもできるっていう感じです。どっちかとい
うと「よいアイデア」の方がなかなかないですけど。

それで、XML+DOMでオススメの本って何でしょうか?

で、XMLもいいんですが、我々は今のところdocument.forms
とかonclickとか使いながらJavaScriptコードを書くわけで、
となるとHTML+DOMになるんですよね。しばらくすればXHTML
2.xとかなるかも知れないけど、ここんとこ当面は。

世の中、「HTML 4.01はもう古くて今はXHTML 1.1だ」とか
語る人もいますけど、我々JavaScriptor(?)はしばらくは
HTMLで書くんだろうと思っています。反論お待ちしてますが。
87Name_Not_Found:2001/07/07(土) 21:52
>>84
ツールバーとかを消したり
サイズ指定したりできるから僕は好き。
それよりソース見せないように
必死になってるサイトが僕は嫌い。

ソース見られるのってそんなに嫌なものなのかな?
88エッチ:2001/07/07(土) 21:53
/ww・━━ヽ、
           fvwwノイノノ))))
             |:::i::i(6リ イ (:"
             |i:!:!:ノハ、~ 、ノi http://www.hitoriasobi.com/netidol/idolhappy/maki/
             ||:f´:/ (^´:l::j
             ∨⌒\`、リノ
              /  ,  /⌒ヽ http://www.hitoriasobi.com/netidol/idoler/megu/
          /  /,ー<;;;,,,...ノ
            〈  〈)    /´\
          \. \  i \ \
            / \.\ .j  \. \
            f`ー´ヽ ヽ   \ ヽ、__
          i_,/⌒「>__ノ>     ヽ、_っ、)
          <~Y__  /7ハ:く      f /:::;;ヘ
          /7∧∨//ノヾヽ、   il.//〃ヽ
          /〃/;;〉;|;;|;|;;∧;\ゝ  |`i//f   i
        ム'ヘ__/_⊥」レヘ/ ̄   i| i'   |  |
              };:::::::::jj      i| ||  |  |
8984:2001/07/07(土) 22:41
>>87
ソース隠しって確かにおかしいですよね。ブラウザで
実行される以上、見えないなんて無理だよねえ。

ところで言葉足らずだったと気がついたので補足したい
のですが、私が嫌だと言ったのは「勝手に窓が開かれる」
ような場合です。「窓を開く」というボタンかリンクが
あって、そこを選択すると窓ができる。というのなら、
全然文句ないです。それだったら、窓の大きさ変えたり
ツールバーなくしたりしてもいいと思いますよー。独自
のブラウザもどきを作ったりして?
90Name_Not_Found:2001/07/08(日) 00:17
皆さんはXHTMLやXMLは普通に使えるのでしょうか
91Name_Not_Found:2001/07/08(日) 00:52
Window開くのがよくないっていうのが書いてあるのに申し訳ないのですが、Mac IE NN Win NNで
動作が不安定で、たまに開いたりしますが反応しません、ちょっと原因がわかりません。
<script language="JavaScript" type="text/javascript">
<!--
function hoge()
{window.open("hoge.html","ホゲ","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=no,width=400,height=600");
}
// -->
</script>

<a href="javascript:hoge()">ホゲページへ</a>
92( ´Д`):2001/07/08(日) 00:59
>>90
割合はそんなに多くはないんじゃないでしょうか。
JavaScriptはW3C勧告のDOMインターフェースとイコールじゃないですし。
93Name_Not_Found:2001/07/08(日) 01:22
>>92
あ、復活した!
94( ´Д`):2001/07/08(日) 02:22
>>93
ようやく仕事に忙殺されなくなったので、まあぼちぼちと出没します(苦笑
95Name_Not_Found:2001/07/08(日) 04:37
DOMは、javascriptとCSSの合わせ技だと思っている私は
勘違いヤロウですか?
96Name_Not_Found :2001/07/08(日) 05:34
お知恵を拝借させてください。
ページを横長にレイアウトして、左端に用意されたリンクをクリックすると、
画面を左から右へと横にスクロールさせていってページ内の指定した場所まで移動させるには、
どうすればよいのでしょうか。
タグで、<A NAME="xxx">〜</A>と<A HREF="#xxx">〜</A> とした場合のように、
ページ内の指定場所にジャンプするのではなく、画面をスクロールさせて見せたいんです。

イメージとしては掛け軸や巻物を広げて、一番左端にある目次から、
右側にある読み物に向かってスクロールさせて、リンクさせるといった感じです。
よろしければご教授ください。
97Name_Not_Found:2001/07/08(日) 09:59
>>90
XHTMLってHTMLと大して変わらないと思ってます。ちょっと
書き方が違うだけで。モジュールとかやりだすと違うのかも
知れないけどよく知らない。XMLもDTD書いてチェックするんで
なければ好きなタグ名が使えるというだけで、別に嬉しくはない。
XSLTみたいに大技やりたいとも思わないし。JavaScriptする
んならHTMLがいちばん便利。個人的考えですが。

>>91
window.open()の第2引数(ウィンドウ名)に日本語使っている
のが怪しげじゃないかな。英字と数字だけの文字列にしてみては
どうでしょう。

>>94
ぱちぱちぱち。

>>95
JavaScriptはプログラム言語であり、DOMはさまざまなモノ(含む
HTML、CSSの記述内容)をプログラム言語から操作できるように、
インタフェースを定めたもの。と考えると、「合わせる」には次元が
ちょっと違うように思います。
98Name_Not_Found:2001/07/08(日) 12:05
JavaScript って VBScript の Const のようなものってありますか?
99Name_Not_Found:2001/07/08(日) 13:57
>>98
JavaScript 1.5(N6/Mozillaに内蔵されてる奴)では
varの代わりにconstと書けるんだったかな。でも標準
じゃないので使わない方がよろしいでしょう。
100Name_Not_Found:2001/07/08(日) 14:55
>>96 かなりかっこ悪いですがどうでしょうか。
<HTML><HEAD><TITLE></TITLE>
<SCRIPT Language = "JavaScript"><!--
var xPos=0;
var timerID;
var xLim;
function jump()
{
timerID = setTimeout('jump(xLim)',100);
if (xPos>=xLim){
clearTimeout(timerID);
xPos = 0;return;
}
else{
xPos +=50;
}
scroll(xPos,0);
}
onUnload = clearTimeout(timerID);
//--></SCRIPT></HEAD>
<BODY>
目次<br>
<a href="javascript:xLim=1000;jump()">その一</a><br>
<a href="javascript:xLim=1500;jump()">その二</a><br>
<a href="javascript:xLim=2000;jump()">その三</a><br>
<Div style="position:absolute;top:30px;left:1000px">その一</Div>
<Div style="position:absolute;top:30px;left:1500px">その二</Div>
<Div style="position:absolute;top:30px;left:2000px">その三</Div>
<Div style="position:absolute;left:3000px"> </Div>
</BODY></HTML>
101Name_Not_Found:2001/07/08(日) 15:02
>>100追加
ジャンプ先?のポジションは xPos += ??の倍数じゃないとまずい。
あと、スペーサーgifかなんかを使って横幅を確保したほうがいいね。ネスケ6でエラーがでるけど動く。
102Name_Not_Found:2001/07/08(日) 21:00
>>100
私も書いてみました。100さんの違う点はdivの配置も初期設定
で自動でやるようにしたこと(この方がコンテンツが書きやすい…
どんどんdivを増やして行けば済む)、スクロール距離にかかわ
らず1秒でスクロールし終るようにしたこととかですかね。この
手のものの問題として、ユーザがスクロールバーを使って内容を
スクロールさせてしまうと、プログラムが考えている現在位置と
食い違うことだと思うのですが…現在のスクロール位置って取得
できるのでしょうか?知っている人いたら教えてください。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 0; left: 0; width: 300px; height:
400px; border-style: ridge; border-width: 4px; border-color: blue }
</style>
<script type="text/javascript">
var width = 300, cur = 0, dx = 0, count = 0;
function init() {
for(var i = 0; document.getElementById('i'+i); ++i) {
document.getElementById('i'+i).style.left = (width*i) + 'px';
}
}
function move(i) {
window.scrollTo(cur*width, 0); dx = (i-cur)*width/20; count = 20;
window.setTimeout(step, 50); cur = i;
}
function step() {
window.scrollBy(dx, 0); if(--count > 0) window.setTimeout(step, 50);
}
</script>
</head><body onload="init()">
<div id="i0"><a href="javascript: move(1)">1番目</a>
<a href="javascript: move(2)">2番目</a>
<a href="javascript: move(3)">3番目</a></div>
<div id="i1"><a href="javascript: move(0)">戻る</a></div>
<div id="i2"><a href="javascript: move(0)">戻る</a></div>
<div id="i3"><a href="javascript: move(0)">戻る</a></div>
</body></html>
103Name_Not_Found:2001/07/08(日) 23:27
Netscape の JavaScript エンジンは IE の JScript エンジンのように
外部からコンポーネントとして利用することって出来ます?
この辺りの仕様を知っている人がいたら解説願いたいですね。
104Name_Not_Found:2001/07/09(月) 00:03
>>103
COMのコンポーネントとして、というのは聞いたことありません。
Netscape(Mozilla)でソースコード公開してますし、他の
プログラムにJavaScriptエンジン組み込んで利用するには、
っていうページもありますけど。http://www.mozilla.org/js/
105100:2001/07/09(月) 00:06
>>102
いやぁ〜102さんのはカッコイイ!!
なんかいろいろ勉強になりました。あと、現在のスクロール位置の取得って
やっぱりできないですかねぇ
106( ´Д`):2001/07/09(月) 00:48
>>105
IE4以降であればscrollTop・scrollLeftというプロパティで取得できます。
(プロパティの値は数値形式で、単位はピクセルになっています)
例えば、Element1というidを持つ要素の縦スクロール位置を算出するなら
document.Element1.scrollTopといった形になります。
もちろんdocument.all("Element1").scrollTopと書いても構いませんし、
IE5以降であればdocument.getElementById("Element1").scrollTopでもOKです。
107(;´Д`):2001/07/09(月) 00:56
106でウソ書いてました。スマソ。
> document.Element1.scrollTopといった〜
Element1.scrollTopの間違いです。
document付けたらエラーになっちゃいますね、コレ。
10896:2001/07/09(月) 09:15
反応遅くてすいません。
>>100 さん
>>102 さん
ありがとうございます。 大変参考になりました。
( ´Д`) さんの情報も合わせて、もう一度チャレンジしてみます。
109Name_Not_Found:2001/07/09(月) 09:45
>>106
やっぱりMSIE固有の機能としてはあるんですね。N6/Mozilla
にあるなら両方対応にして使いたいところですけど…なんかの標準
に入りませんかねー。
110Name_Not_Found:2001/07/09(月) 11:20
メニューの項目にマウスオーバーさせるとそのメニュー内の小項目がバッと
表示されるような仕組みを作ろうと思っています。 具体的には

http://www.inktomi.com/japan/
http://www.imjp.co.jp/index.html

にあるようなものが作りたいのです。それで、市販されている本などを
参考にしながら以下のように自分で書いてみたのですが、
IE5.0だとうまくいくのですがNN4.7だとダメなんです。
うまくマウスオーバーが働かないようなのです…

<html>
<head>
<script language="JavaScript">

function showLAYER(layName){
if(document.layers)document.layers[layName].visibility="show"
if(document.all)document.all(layName).style.visibility="visible"
}
function hideLAYER(layName){
if(document.layers)document.layers[layName].visibility="hide"
if(document.all)document.all(layName).style.visibility="hidden"
}

var img_b = new Array();
img_b[1] = new Image(); img_b[1].src = "menu1_off.gif"
img_b[2] = new Image(); img_b[2].src = "menu2_off.gif"
img_b[11] = new Image(); img_b[11].src = "menu1_on.gif"
img_b[12] = new Image(); img_b[12].src = "menu2_on.gif"

function b_in(nam,num){
document.images[nam].src = img_b[num].src;
}

function b_out(nam,num){
document.images[nam].src = img_b[num].src;
}

</script>
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">

<span onmouseover="showLAYER('menu')">
<img src="menu1_off.gif" border="0">
</span>

<div id="menu"
style="position:absolute; left:0px; top:0px; visibility:hidden;"
onmouseover="showLAYER('menu')" onmouseout="hideLAYER('menu')">
<a href="top2.htm" onmouseover="b_in('p1',11)" onmouseout="b_out('p1',1)">
<img src="menu1_off.gif" name="p1" border="0"></a><br>
<a href="main2.htm" onmouseover="b_in('p2',12)" onmouseout="b_out('p2',2)">
<img src="menu2_off.gif" name="p2" border="0"></a>
</div>

</body>
</html>

よろしければどなたかご教授下さい。お願いします。
111Name_Not_Found:2001/07/09(月) 12:55
>>110
N4の場合、onmouseoverみたいにマウスイベント取るものは
もともとマウスイベントを取る要素でないとうまく動きません。
最初の<span>...</span>を適当な<a>...</a>に変えてみては?
112Name_Not_Found:2001/07/09(月) 13:08
<script language="JavaScript" src="hoge.js">
</script>
で複数の外部ファイルを指定することってできますか?
113Name_Not_Found:2001/07/09(月) 13:40
>>112
できるというか、複数指定したければ<script>...</script>
をその個数だけ入れるんではないでしょうか。1つのscript
要素についてはJSファイル1つだけ指定可能だと思います。
114102:2001/07/09(月) 13:45
N6ではwindow.pageXOffset、window.pageYOffsetでスクロール位置が
取れることが分かりました。で、IEと合わせて対応してみました。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 0; left: 0; width: 300px; height:
400px; border-style: ridge; border-width: 4px; border-color: blue }
</style>
<script type="text/javascript">
var width = 300, dx = 0, count = 0;
function init() {
for(var i = 0; document.getElementById('i'+i); ++i) {
document.getElementById('i'+i).style.left = (width*i) + 'px';
}
}
function move(i) {
var x = window.pageXOffset||document.getElementById('b1').scrollLeft||0;
dx = (i*width - x)/20; if(dx < 0) --dx;
count = 20; window.setTimeout(step, 50);
}
function step() {
window.scrollBy(dx, 0); if(--count > 0) window.setTimeout(step, 50);
}
</script>
</head><body id="b1" onload="init()">
<div id="i0"><a href="javascript: move(1)">1番目</a>
<a href="javascript: move(2)">2番目</a>
<a href="javascript: move(3)">3番目</a></div>
<div id="i1"><a href="javascript: move(0)">戻る</a></div>
<div id="i2"><a href="javascript: move(0)">戻る</a></div>
<div id="i3"><a href="javascript: move(0)">戻る</a></div>
</body></html>
115Name_Not_Found:2001/07/09(月) 13:56
フラグを使いたい場合なんですが、
boolean型の変数ってないですよね?

isParameterATrue = "true"
みたいな使い方をしてますが、みなさんはどうですか?
116Name_Not_Found:2001/07/09(月) 14:08
>>115
あのー、JavaScriptには変数には型がありませんが、
データにはありますよ。そして、論理値型がちゃんと
用意されてます。trueとfalseという立派なリテラル
もあります。だから「isParameterATrue = true;」で
いいんじゃないですか?
117名無しさん:2001/07/09(月) 14:13
cockieを消すことについて質問させてください。

/hello/hogehoge/bbs.cgi
にて発行したクッキーを

/hello/index.html
から、ファイル内に書いてあるJavaScriptで削除することはできますか?
同じディレクトリ(/hello/hogehoge/)からだとできるのですが…。
118Name_Not_Found:2001/07/09(月) 14:18
>>117
パスが違うからできないんじゃないかな。クッキーを
発行するときにパスを /hello/ に設定しておけばでき
るんじゃないでしょうか?
119117:2001/07/09(月) 14:34
やっぱりパスが違うとできないのでしょうか?
セキュリティためですよねきっと。

>>発行するときにパスを /hello/ に設定

これでやってみます。ありがとうございます。
120110:2001/07/09(月) 14:51
>>111 さん
確かに<span>を<a>に変えたらうまくいきました!
ありがとうございました!

ただ、この問題は解決したんですが、次の問題に当たってしまいまして…
メニューにマウスオーバーさせてメニュー内項目を
表示させるところまではうまくいったのですが、
メニュー内項目にマウスを乗せているときに
ロールオーバーで項目が光ったような演出をしているんですが、
(menu1_off.gif→menu1_on.gifのように)
やはりIE5.0だと大丈夫で、NN4.7だとダメなんです。

なお、>>111さんのご教示のとおり、<div>タグ内でも
マウスイベントはダメなようでしたので、
110で示した僕のソースの後半部分を以下のように変えてみました。

<div id="menu"
  style="position:absolute; left:0px; top:0px; visibility:hidden;">
<a href="top2.htm" onmouseover="showLAYER('menu'),b_in('p1',11)"
      onmouseout="hideLAYER('menu'),b_out('p1',1)">
<img src="menu1_off.gif" name="p1" border="0"></a><br>
<a href="main2.htm" onmouseover="showLAYER('menu'),b_in('p2',12)"
     onmouseout="hideLAYER('menu'),b_out('p2',2)">
<img src="menu2_off.gif" name="p2" border="0"></a>
</div>

</body>
</html>

何がダメなのかさっぱりわかりません…
あ、ちなみにNN4.7で見た場合、
ページを読み込んで一度マウスオーバーさせたあとマウスアウトさせると
JavaScript error:Type 'javascript:' into Location for details
というエラー文が表示されます。
どういう意味なんでしょう…??
121Name_Not_Found:2001/07/09(月) 15:12
>>120
うーん、何でしょうね?とりあえず、メニューと関係ない
場所でなら光らせられることを確認して問題を切り分けて
みてはどうでしょう?
122Name_Not_Found:2001/07/09(月) 15:30
JavaScriptの開発環境ってなにをお使いですか?

エディタの方が多そうなのですが、おすすめあればおしえてください
123むぎ茶      :2001/07/09(月) 15:33


開発ねぇ(n


┐(´ー`)┌


┏━━━━━━━━━┓
┃('Д')y ─┛~~ ┃
┃むぎ茶      ┃
[email protected]  ┃
┗━━━━━━━━━┛
むぎちゃんねる
http://aho0baka.virtualave.net/bbs/bbs.cgi
メイリングリスト
http://www.freeml.com/ml_info.php?ml=bitvalley
124Name_Not_Found:2001/07/09(月) 15:41
>>122
開発環境に望むものって何ですか?コンパイルが必要
なわけじゃなし、せいぜい100行とか200行くらいのス
クリプト書くだけですよね…私はエディタ以外で
JavaScript書くなんて想像できないな。
125Name_Not_Found:2001/07/09(月) 16:46
>>120

onmouseout="hideLAYER('menu'),b_out('p1',1)"

onmouseout="hideLAYER('menu';b_out('p1',1)"
だよね?
126120:2001/07/09(月) 19:15
>>121
いろいろ調べてみたのですがサッパリです。
とりあえずロールオーバーさせる部分だけを切り取って調べてみて、
ただひとつ分かったことは、DIVタグ内のstyle属性を消去してしまえば
ロールオーバー効果が発揮できるようになる、ということです。
でもこれだとメニュー内項目の表示のための絶対位置指定が
できなくなってしまい、困りまくりです。
どうしたもんでしょう??

(でも前にもstyleを指定しつつロールオーバーさせて
うまくいったような気がするんですが…←夢!?)

>>125
ウッカリしてました!
カンマじゃなくセミコロンですよね。
…と思って直してみたんですが、やっぱり
JavaScript error:Type 'javascript:' into Location for details
の表示が…。
う〜ん、わからない…
127Name_Not_Found:2001/07/09(月) 19:55
>>126
へー、それは不思議ですねえ。じゃあ、style属性を使う代わり
に<style>...</style>で別途指定してみてはどうでしょう?

あと、カンマでも合ってますよ。「式, 式」というのは「カンマ
演算子」で、左の式を評価し、続いて右の式を評価しますから。

ところで、上記のエラーが出た場合URL欄(ロケーション欄)に
「javascript:」と打ち込んでリターンしてみてください。
もっと詳しいエラー情報がみられます(これがないと何が悪くて
止まっているのか分かりません)。
128( ´Д`):2001/07/09(月) 23:38
>>127
えーと、レイヤを不可視にする際のvisibilityプロパティの指定を
"hide"から"hidden"に換えて試してみてください。
バージョンよっては"hide"が効かない疑惑がありますので。
129Name_Not_Found:2001/07/10(火) 08:43
>>128
N4あたりでは「show」「hide」でしたが、今はCSSに
合わせたので「visible」「hidden」なんですよねー。
たしか。
130126:2001/07/10(火) 12:36
相変わらずロールオーバー効果がうまく出ません…

>>127
styleを別で指定してみましたがダメでした。
もうちょっと調べてみます。
あと、URL欄に「javascript:でリターン」でエラー情報がでるなんて
全然知りませんでした。便利ですね!(って、知らない方が問題?)
それでエラーを表示させてみたところ、
document.images[nam] has no properties.
とのことでした。
これは、p1(メニュー内項目の画像の名前)が
関数に渡されてないということですかね?
もっと調査してみます。

>>128
レイヤの可視-不可視についてはしっかり機能してますので、
NN用→hide、IE用→hiddenでOKかと思います。
でも>>129さんの意見を見て思ったんですが、
NN6.xでは「hide」は使えないんですか?
NN6.xは持ってないので未チェックなんです。
今度導入して調べなければ。
131Name_Not_Found:2001/07/10(火) 13:19
>>131
分かりました! 実は私もちょうど昨晩! それで悩んで
いたのです。どうも、position: absoluteにした要素
中のImageオブジェクトがdocument.images[]に入って
くれないようです。面倒ですね。

私が取った解決策ですが、Imageオブジェクトのsrc
プロパティでロールオーバーする代りに差し替えたい
イメージを貼った別の要素(レイヤー)を同じサイズで
用意しておき、それらの要素全体としての可視/不可
視を切り替えて差し替えるようにして逃げました。
いったい何なんでしょうね〜?
132131:2001/07/10(火) 14:24
>>130
すみません、参照番号間違えました。ついでに昨晩作ってたモノ
をお見せします。2つの画像が切り替わりながら画面内を「ポン」
みたいに反射しつつ移動します。N4も対応。で、可視/不可視にす
る方法、N6/Mozillaでも'visible'/'hidden'が正しいです。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute }
</style>
<script type="text/javascript">
var v, h, unit, e1, e2, x = 0, y = 0, dx = 2, dy = 3, count = 0;
function init() {
if(!document.getElementById) {
e1 = document['d1']; e1.style = e1; e2 = document['d2']; e2.style = e2;
v = 'show'; h = 'hide'; unit = '';
} else {
e1 = document.getElementById('d1'); e2 = document.getElementById('d2');
v = 'visible'; h = 'hidden'; unit = 'px';
}
setInterval(move, 50);
}
function move() {
x += dx; if(x > 400 || x < 0) dx = -dx;
y += dy; if(y > 300 || y < 0) dy = -dy;
var e3 = e1, e4 = e2; if(++count % 50 > 25) { e3 = e2; e4 = e1; }
e3.style.visibility = v; e4.style.visibility = h;
e3.style.left = x+unit; e3.style.top = y+unit;
}
</script>
</head><body onload="init()">
<div id="d1"><img id="i1" src="a.png"></div>
<div id="d2"><img id="i2" src="b.png"></div>
</body></html>
133Name_Not_Found:2001/07/10(火) 15:22
えー、>>114 みたいに横に並んでいるページ構成って
色々使えませんかねー。カードを隣のと交換して動かす
のも簡単だし。カードゲームとか、いっそマージャン?
134VBS−>JS:2001/07/10(火) 18:56
質問です。JavaScriptにはVBScriptのOn Errorステートメントみたいな
機能はありませんか?実行時エラーを無効にするやつです。
135Name_Not_Found:2001/07/10(火) 19:08
>>134
try {
エラーが起こるかもしれない処理
} catch(e) { }
136Name_Not_Found:2001/07/10(火) 21:35
関数を3つくらい作って
function A{処理}
function B{処理}
function C{処理}

A→B→C って風に順番に連続して実行させるにはどうしたらいいんですか?
137Name_Not_Found:2001/07/10(火) 23:00
>>136
function ABC() { A(); B(); C(); }
138136:2001/07/10(火) 23:19
>>137
ありがとうございました
139Name_Not_Found:2001/07/11(水) 02:07
135へ
サンクスです
140Name_Not_Found:2001/07/11(水) 05:54
変数の中に関数名を入れ、その関数を呼び出す…
みたいな処理はJavaScriptでできますか?
141Name_Not_Found:2001/07/11(水) 08:19
>>140
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function test1(s) { window.alert('message: ' + s); }
var f = 'test1';
window[f].call(null, 'Hello, World.');
</script>
</body></html>
142130:2001/07/11(水) 09:22
>>132
お返事遅れました。
僕も別レイヤーの可視-不可視の切り替えでやろうかと思います。
ありがとうございました。
143Name_Not_Found:2001/07/11(水) 10:48
引数を持った関数内で、再帰で自分を呼び出すことはできますか?
144Name_Not_Found:2001/07/11(水) 11:08
>>143
できます。これができないようじゃまっとうな言語じゃない。

<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function fact(n) { if(n < 1) return 1; else return fact(n-1)*n; }
document.writeln('<p>' + fact(5) + '<\/p>');
</script>
</body></html>
145140:2001/07/11(水) 16:04
>>141
ありがとうございました。助かりました。
146141:2001/07/11(水) 16:12
>>145
なんか質問してくんないの〜? ;_;

(1)関数定義は広域変数に関数オブジェクトを
格納しているだけ。

(2)広域変数はwindowオブジェクトのプロパティ。

(3)関数オブジェクトはcallメソッドを使って
呼び出すことができる。

ということだったんですね。まあそれだけだけど。
147VBS->JS:2001/07/11(水) 21:23
VBScriptのClassステートメントに相応するものってJavaScriptにありますか?
Classステートメントは動的にオブジェクトを生成するのでVBScriptでは
IDispatchExインターフェイスの実装になるようです(IDispatchではない!)。
JScriptならVBScriptと同じActive Script Engineだからありそうな気がするのですが
見つけれなかった。JavaScriptだと根本的に異なるからあるのかどうかもわかりません。
実装にも詳しい人がいるみたいなのでちょっと板違うかなとも思いましたが聞いてみました。
(プログラム板だとちゃんと聞いてもレスしてくれる人がいないんだよね。)
148Name_Not_Found:2001/07/11(水) 23:21
>>147
うーんそれは…JavaScriptでオブジェクト種別を
定義する方法はあるけど、COMオブジェクトにしたい
わけね?それはちょっとなさそうだなあ…

JScrptなら確かにMSDNを探すとできるっぽいことが
書いてある。しかし具体的にどうやるのかは不明。
役に立たなくてすいません。
149Name_Not_Found:2001/07/11(水) 23:22
call メソッドの第一引数は何ですか?
あと、apply メソッドとの違いは何でしょうか。教えてください。
150( ´Д`):2001/07/11(水) 23:35
>>147
classはJavaScript2.0から利用できますが、
ブラウザの実装状況はちょっとわかりません。
IE5のJScriptあたりなら対応してるかもしれません。

また、オブジェクトの雛型を作りたいのであれば
以下のような記述方法があります。

function ColorObject(R, G, B){
  this.Red = R;
  this.Green = G;
  this.Blue = B;
}

var Colors = new ColorObject(63, 127, 255);

こうすることで、Red,Green,Blueという
3つのプロパティを持つオブジェクトの雛型が用意できます。
試しに、この後に続けて

alert(Colors.Red);

と記述すれば、アラートダイアログに"63"と表示されるハズです。
151Name_Not_Found:2001/07/11(水) 23:35
>>149
はいはい。第1引数は「this」に対応するオブジェクト
ですね。ですからメソッドも呼べるというわけ。
nullを渡すと広域オブジェクト(window)が使われます。

callとapplyの違いですが、引数をバラバラに渡すか、
1つの配列にまとめて渡すかの違いです。つまり

f.call(null, x, y, z);
f.apply(null, new Array(x, y, z));

は同じということになります。その場ごとに便利な方
を使えばよろしいんじゃないでしょうか。
152Name_Not_Found:2001/07/11(水) 23:43
>>150
わー! プロパティを大文字で始められるともにょもにょします。
153( ´Д`):2001/07/11(水) 23:44
>>149
第一引数はfunction型のオブジェクトであれば何でも構いませんが、
自身の引数を引き渡すためにthisを使うケースが多いです。
callとapplyの違いは引き渡す引数の個数です。
前者は指定した個数を、後者は全てを引き渡します。
154( ´Д`):2001/07/11(水) 23:47
>>152
自作のオブジェクトやプロパティを
分かりやすく命名するのには丁度いいんですが(笑
155147:2001/07/12(木) 01:06
>役に立たなくてすいません。
いえいえ、こんなに熱心に答えてくれるだけで十分嬉しいですよ、ほんとの話。
こういうこと言うと他所では煽り食らっちゃうけどね。
156145:2001/07/12(木) 01:35
>>146
イメージオブジェクトについて色々知恵つけた後だったので、
わりとすんなり飲み込めましたYO。
でもその後の流れを読むと、さらに「なるほど〜」という感じです。
157Name_Not_Found:2001/07/12(木) 07:54
>155
このスレは異例に煽りが少ないですよね。age荒らしも
来なかったし。コード載せまくりなのがいいのかな。
158Name_Not_Found:2001/07/12(木) 08:30
while(true) {
document.writeln('========= 終了 ===========');
}

終了荒らし(w
159Name_Not_Found:2001/07/12(木) 10:46
外部ソースを複数指定するときの書き方はこんな感じでいいですか?
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript"></SCRIPT>
<SCRIPT src="hoge.js"></SCRIPT>
<SCRIPT src="foo.js"></SCRIPT>
</HEAD>
<BODY>
<BODY>
</HTML>
160Name_Not_Found:2001/07/12(木) 11:05
>>159
だめ。やるならこんな感じ。
<SCRIPT type="text/javascript" src="hoge.js"></SCRIPT>
<SCRIPT type="text/javascript" src="foo.js"></SCRIPT>
161Name_Not_Found:2001/07/13(金) 00:17
昨日は新しい質問がなかった…
162Name_Not_Found:2001/07/13(金) 02:23
<SCRIPT LANGUAGE="JavaScript"></SCRIPT>
↑ここは目をつぶるとして      ↑閉じてどうするよ?じゃあこの一行いらねえじゃん。
163Name_Not_Found:2001/07/13(金) 08:10
language属性が標準じゃないというのはおいといて、
余分なマークアップがあるくらい大したことないよ。
グチャグチャに間違ったマークアップに比べればさ。
164Name_Not_Found:2001/07/13(金) 09:54
フレームで質問なんですが
左右にフレームを分けるとします
スクロールバーを一つにしたいんです
そしてスクロールバーを動かすと右も左も同時にスクロールする

というのはページにしたいんですけど無理でしょうか
165Name_Not_Found:2001/07/13(金) 10:25
スクロールバーが動いたっていうイベントありますか?
166Name_Not_Found:2001/07/13(金) 10:29
>>163
language属性が標準じゃないってことは>>144のように
<script type="text/javascript">
にしなきゃいけなんですか
167Name_Not_Found:2001/07/13(金) 10:47
自らのウィンドウサイズを変えるにはどうしたらいいんでしょうか?
新しいウィンドウを開いて元のウィンドウを消すというのはちょっと
イヤなので。
168Name_Not_Found:2001/07/13(金) 10:48
>>166
language属性でも動くけど<script type="text/javascript">の方が無難だよ( ̄ー ̄)b
169Name_Not_Found:2001/07/13(金) 10:56
>>167
こんな感じでどうですか?
<html>
<head>
<script type="text/javascript">
<!--
function monagiko(){
window.resizeTo(400,400);
}
//-->
</script>
</head>
<body onLoad="monagiko()">
</body>
</html>
170142:2001/07/13(金) 11:00
少し前に、
「メニューの項目にマウスオーバーさせるとそのメニュー内の小項目が
バッと表示されるような仕組み」
を作っていた者です。>>110
謎が解けましたので後進のために報告しておこうと思います。
(後進なんて言えるほど自分は進んでませんが…)

例えば"menu_bar"というレイヤーの中にある"menu1"という名前の
画像を操作しようとするとき、IEでは

document.images[menu1].src = swapImg[num].src;

のようにしますが、NNでは

document.layers[menu_bar].document.images[menu1].src = swapImg[num].src;

のようにしなければなりません。
つまり、IEではいきなり画像"menu1"を指定して操作できるのですが、
NNでは「"menu_bar"レイヤーの中にある"menu1"という画像」
のようにキッチリ指定しないとエラーになってしまうのです。

「そんなことも知らんかったのか」とお叱りを受けそうですが、
一応、ご報告まで。
171167:2001/07/13(金) 12:13
>>169ありがとうございます。うまくいきました。ただ、ツールバーやエクスプローラ
バーも込みでのサイズなんです。純粋にウィンドウだけのサイズを指定する
ことは不可能なんでしょうか?
172Name_Not_Found:2001/07/13(金) 13:41
>>171
こ、細かいな‥‥(-。-;
他の人に聞いてくれ。
173Name_Not_Found:2001/07/13(金) 13:43
>>170
なるほど! 大変参考になります。ただ予想するに、
この「レイヤー御大事」はN4のみの性質ではないか
と思います。N6からはレイヤーやめてますから。
試してませんけど。
174Name_Not_Found:2001/07/13(金) 13:57
>>164
N6でスクロールイベントが取れるよーな気がしないのでとりあえず
定期的に動かすというのをやってみました。N6/MozillaとIE5.5。

t0.html:
<html><head><title>???</title></head>
<script type="text/javascript">
function sync() {
if(typeof(window.frames[1].pageYOffset) == 'number') {
window.frames[0].scrollTo(0, window.frames[1].pageYOffset);
} else {
window.frames[0].scrollTo(0, window.frames[1].document.all.b1.scrollTop);
}
}
</script>
<frameset cols="*,*" onload="window.setInterval(sync,50)">
<frame src="t1.html" scrolling="no"><frame src="t1.html">
</frameset></html>

t1.html:
<html><head><title>???</title>
<script type="text/javascript">
function test() {
window.alert('>>>'+document.all['x'].scrollTop);
}
</script>
</head><body id='b1'>
<p>test...</p>
<p>test...</p>
(省略されました :-)
</body></html>
175Name_Not_Found:2001/07/13(金) 14:06
>>163
language属性が標準じゃないから使うとどういうマイナス
があるかというと…

another-htmllint掛けたときに怒られる!!! (w
176Name_Not_Found:2001/07/13(金) 14:11
<a href="javascript:kusottare()">  </a>

これも「お薦め出来ません」って言われるね
177Name_Not_Found:2001/07/13(金) 14:17
>>176
うん、だからなるべくボタン使う方がいいと思うんだ
よね。でもつい使っちゃうけど>>javascript: URI
178Name_Not_Found:2001/07/13(金) 14:26
割り込みすみません
jsファイルにdocument.writeでHTMLを埋め込んでる部分が
あるんですけど そこにログ解析のJavascript(gif画)を
貼ってcgiを動かすってのは可能ですか?
もちろんJava オフはカウントできないですが
初心者ですみません
どなたか教えていただけますか
179Name_Not_Found:2001/07/13(金) 14:26
>>172
N4、N6ではwindow.innerWidth、window.innerHeight。
IEではbody要素のclientWidthプロパティとclientHeight
プロパティ。一応、サイズを調べるだけの例を書いてみ
ました(javascript: URIですがあしからず :-)。実際に
使うには、まずwindow.resizeTo()で大きさ変更してみて、
次に上記の方法で内側の領域を調べて、その分だけふやし
てもっかい大きくすればいいんじゃないでしょうか。

<html><head><title>???</title></head>
<script type="text/javascript">
function test() {
if(typeof(window.innerWidth) == 'number') {
window.alert(window.innerWidth + 'x' + window.innerHeight)
} else {
window.alert(document.all.b1.clientWidth+'x'+document.all.b1.clientHeight);
}
}
</script>
<body id="b1">
<a href="javascript: test()">test</a>
</body></html>
180Name_Not_Found:2001/07/13(金) 14:32
>>178
質問の意味があまりよく分からないのですが、ふつうに
書いたHTMLだろうがdocument.write()で書いたHTMLだろ
うがHTMLとして表示されるときは同じですから、そこに

<img src="画像を返すCGIのURI">

というものが含まれていればそれを表示するとCGIが動く
のはアタリマエだと思います。そういう意味じゃなくて?

alt属性を書かないとanother-htmllintに怒られるという
突っ込みは遠慮します(w
181Name_Not_Found:2001/07/13(金) 14:41
>>178
レスありがとうございます
そういう意味です
って事はcgiに問題あるみたいです
ありがとうございました
182Name_Not_Found:2001/07/13(金) 14:46
>>181
まあそうなんでしょうけど、「"」の閉じ忘れとか
「>」が抜けてるとかはJavaScriptソースをよく
見ないと見落としやすいのですよね。お節介かも知
れませんが。
183Name_Not_Found:2001/07/13(金) 14:48
トムヤンくんの所の画像がぶるぶるするscriptとか凄くない?
折れドキュソだから、ソース見てもさっぱり解んねーよ。
pixelLeftとpixelTopくり返すだけじゃ駄目なんか?
184Name_Not_Found:2001/07/13(金) 15:02
>>183
どういう風に動かしたいのか言ってみ。画像そのものを
回転するとか言わない限り、だいたいどうにでもなるよ。
「ぶるぶる」という言葉のイメージだけでちょっと作って
みました。

<html><head><title>???</title></head>
<style type="text/css">
div { position: absolute; top: 100px; left: 100px }
</style>
<script type="text/javascript">
function move() {
var e = document.getElementById('d1');
var x = 90 + Math.floor(Math.random() * 20);
var y = 90 + Math.floor(Math.random() * 20);
e.style.left = x+'px'; e.style.top = y+'px';
}
</script>
<body onload="window.setInterval(move,25)">
<div id="d1"><img src="test.png"></div>
</body></html>
185164:2001/07/13(金) 15:07
>>174
わざわざありがとうございます
無事フレームの同時スクロール成功しました

欲を言えば
これだと指定してあるフレームにカーソルがあるときでしか
スクロール出来ないんですよね・・

どちらのフレームにカーソルがあってもスクロール可能
というのが理想ですが・・無理ですよね
186Name_Not_Found:2001/07/13(金) 15:09
>>184
ttp://www2s.biglobe.ne.jp/~club_tom/java-kouza/sample/ja-sam_ri.htm
↑ここの一番したに「ぶるぶるscript」あります。
 これ凄いっす。
187Name_Not_Found:2001/07/13(金) 15:18
>>186
うんなるほど。こういうのってどれくらい動かすとか、
そういうチューニングで気持ちヨサが上がるからねえ。
じゃあ、絵がぶるぶるした後ぽーんと画面の外へ飛ん
でいくとリンクがたどられるとかさ。
188Name_Not_Found:2001/07/13(金) 15:25
>>187
何か本買って来て勉強します。
では本屋逝って来ます。
ブルブルブルブル
189Name_Not_Found:2001/07/13(金) 15:27
>>185
うーん、scrolling="no"のフレームにカーソルがある時に
スクロールですか?スクロールバーはないんだから、矢印
キーってこと?キーイベントを捕捉してなんかすれば良い
のかも知れないけど、そのフレームへのキー入力は無いん
ですね?うーん…システム/ブラウザ独立に実現できる気が
あんまりしないなあ。
190184:2001/07/13(金) 15:32
>>188
本買いにいってもいーけど、質問あればいつでもどぞ。教えたがりクンなのでね>>俺
191181:2001/07/13(金) 16:42
です
’がぬけてました
何とか動きだしました ありがとうございました

ぶるぶるなんですが

function shock(){
for (i=0;i,i<19;i++){
window.moveBy(30,0)
window.moveBy(0,30)
window.moveBy(-30,0)
window.moveBy(0,-30)
}
}

document.write('<body onLoad="shock()">')
document.write('</body>')

何てどうですか?
192181:2001/07/13(金) 16:46

画像だったんですね

まちがえました
193Name_Not_Found:2001/07/13(金) 16:49
>>192
窓はぶるぶるするけどその中身は静止したまま、
なんていうのがあったら驚愕するかも。
194Name_Not_Found:2001/07/13(金) 16:56
>>191
ム、それをいぢって画像に応用できそうだぞ。
ちょっと借りるね。
195185:2001/07/13(金) 16:59
>>189
マウスの真ん中のグリグリって使ってる人少ないですかね
私はいつもそれでスクロールしてるので使えないと不便かと思いまして・・
でも意外と少ないかもしれませんね・・ ここらへんで妥協しておきます
ありがとうございました
196Name_Not_Found:2001/07/13(金) 17:06
>>194
いやちょっと、時間待ちのないループは
危ういことがあるよ。注意してやってね。

>>195
マウスホイール持ってない…持っている人
におまかせします。
197Name_Not_Found:2001/07/13(金) 17:08
>>193
想像してみた。
・・・
・・・
・・・
・・・
・・・
すごいかもしれない。
198Name_Not_Found:2001/07/13(金) 17:31
<html>
<head>
<script type="text/javascript">
<!--
function shocks(){
test.style.left="70px";
test.style.top="100px";
test.style.left="70px";
test.style.top="70px";
test.style.left="100px";
test.style.top="70px";
test.style.left="100px";
test.style.top="100px";
}
//-->
</script>
</head>
<body>
<div id="test" style="position:absolute;left:100px;top:100px;width:50px;height:50px;background:#000000;" onClick="shocks()"><img src="test.gif"></div>
</body>
</html>
こんな風にしたら一気に
test.style.left="100px";
test.style.top="100px";
が評価されてしまいました。
もう解んねーや、床屋行こ。
199Name_Not_Found:2001/07/13(金) 18:41
>>198
だから、setTimeout()かsetInterval()を使わないと
うまく行かないでしょ?後で説明してあげるよん。
さーめしめし。
200Name_Not_Found:2001/07/13(金) 19:37
>>174
t1.html 内の test() ってナニ?
メシ食べ終わったら教えてね
201Name_Not_Found:2001/07/13(金) 19:47
>>199
押忍、師匠。
勉強さしてもらいます。
ところで秀和システムのhtml&javascrit辞典は読んだんですが、人様の複雑なソース見たら理解不能っす。
何かお薦めの本ないですかね?
ビール買ってきます(出歩いてばっかりだな、今日‥‥)
202174:2001/07/13(金) 21:35
ごちそーさまー。(ソレはいいってば)

>>200
すいません、t1.htmlを利用してscroll位置がちゃんと取れるか
どうかテストした、そのゴミが消し忘れて残っておりました。

>>201
複雑なソースをいきなり読もうとしても難しいですよね。まずは
自力で、簡単だけどやりたいことだけはとにかくできるような
コードをなるべくたくさん書くようにするのがいいと思っていま
す。それを土台に機能を追加していく…ただ、やみくもに追加し
てるとグチャグチャになりますから、ある程度進んだら機能は変
更せずにきれいに整理しなおす。きれいになったらまた追加する。
読むのが大変な複雑なソースってこれを怠っているだけで実は大
したことないのかもよ。まあモノによるけど。
本ですか。本の話題って >>2 ですよね。以下無限に反復したりして。
203Name_Not_Found:2001/07/13(金) 22:08
>>198
お待たせしました。だいたい、こういうユーザインタフェース
を動かすものって「一連の処理をする」→「終ったところで画面
を更新してユーザ入力を待つ」→「ユーザ入力(クリック等)」→
「次の処理」…と進むので、処理の中で連続して位置を変更しても
最後のしか有効にならないというのはアリガチなのです。で、
自動で動かしたい時は上の「ユーザ入力を待つ」代わりに「時間待ち」
を呼びます。

window.setTimeout(関数, ミリ秒)

で、指定した時間だけ待つと「関数」が呼ばれますから、そこで
「絵をちょっと動かし、また同じsetTimeout()を呼ぶ」ことで連続
して次々に絵を動かしていけます。動かし終ったらその時はもう
setTimeout()を呼ばなければよい。従って、クリックされた時に
呼ばれる関数と、shock()時間待ち後の処理の関数の2つが必要な
わけね。また、次々に移動する位置は配列に覚えておくのがよい。
(つづく)
204203:2001/07/13(金) 22:11
以上をまとめるとたとえば次のようになるわけですね。
<html><head><title>???</title></head>
<style type="text/css">
div { position: absolute; top: 100px; left: 100px }
</style>
<script type="text/javascript">
var a = [70, 100, 70, 70, 100, 70, 100, 100], elt, count;
function shocks() {
elt = document.getElementById('d1'); count = 0; window.setTimeout(step, 50);
}
function step() {
elt.style.left = a[count++]+'px'; elt.style.top = a[count++]+'px';
if(count < a.length) setTimeout(step, 50);
}
</script>
</head><body>
<div id="d1" onclick="shocks()"><img src="test.png"></div>
</body></html>
205Name_Not_Found:2001/07/13(金) 23:14
コピーして貼り付けるだけ とかいってスクリプトを公開しているところでも
>>198みたいにタイマーを使わないでやってるのあるよね。
例えば背景色の連続変化させるヤツとか。
206Name_Not_Found:2001/07/13(金) 23:29
>>205
へーそうなんですか。ほとんどブラクラみたいな
もんですねー。お飾りが全力で走ってCPU食べたら
本業はどうなっちゃうの?って感じ。まあ短時間
で終るもんならいいんだろうけど、ブラウザによっ
ては思った効果が得られないかも知れませんしねえ。
207198:2001/07/13(金) 23:32
>>204
なるほどー。
getElementById←このプロパティとか初めて見ますわ。
奥が深いと言うか‥‥、先は長いっすね。
ありがとうございました。
208Name_Not_Found:2001/07/13(金) 23:43
>>207
id指定して要素オブジェクト取り出すのにいろんな
方法がありますけど、一応document.getElementById()
がDOM2の標準なのでネ。
209Name_Not_Found:2001/07/14(土) 00:28
初期レス(1〜50あたり)読んでみたんですが、妙な殺伐感がないですか?
「箸と茶碗持って待機する」とか(w
そんなんでjavascript動くんかいな。
めちゃアナログだなぁ。
210Name_Not_Found:2001/07/14(土) 00:32
function En(){
pass = prompt(" ","");
if{
(pass == " " ) alert(" ")
location.href = " .html";
}else {
alert(" ")
}

で「"("がありません」とエラーが出たのですが
「(」が足りないのはどこですか?
初心者なので、すいません。
211Name_Not_Found:2001/07/14(土) 00:56
>>210
全体的に頭が足らない
212Name_Not_Found:2001/07/14(土) 00:56
>>209
箸と茶碗、いいじゃないですか。私はウケました。
コード出してくれる人もボケる人もいて正解でしょう。
最近はまじめすぎじゃない?

>>210
3行目以降ですが、
if(pass == " ") {
alert(" ");
location.href = "...";
} else {
alert(" ");
}
あと16ビット文字(いわゆる全角)の「)」「;」
がありますが、記号類は8ビット文字(いわゆる半角)
でないとダメダメですから注意しましょうね。

拝見した感じから言うと、もっと簡単な例題でまず指
や目を慣らした方がよろしいんじゃないですか?
213Name_Not_Found:2001/07/14(土) 01:04
>document.getElementById()がDOM2の標準なのでネ。

この人も全体的に頭が足らない
214Name_Not_Found:2001/07/14(土) 01:09
>>213
お前の煽り方も低レベルだな、もしかして保護監察処分済みか?
馬鹿すぎて。
215ぴよぴよ:2001/07/14(土) 01:19
ぴよぴよです。
結果が、
20
20
64
4
となるはずなのですが、「20」しかでません。
コードは以下の通りです。
java入門のHPで出ていた通りに書いたつもりなのですが、何が違うのでしょうか。
<html><head><title>見よこれが始めての足し算なのだ</title></head>
<body><script language="javascript">
a=4;
b=16;
c=a+b;
document.write(a+b);
document.white("<br>");
document.write(c);
document.write("<br>");
document.write(a*b);
document.write("<br>");
document.write(b/a);
</script></body></html>
216Name_Not_Found:2001/07/14(土) 01:19
>>208=214
保護監察処分で悪かったなぁ。

じゃあ、document.getElementById()がDOM2の標準
だっつー理由を説明してクレクレ。
217216:2001/07/14(土) 01:26
>>215

×white
○write
ブラウザでエラーが出るように設定しといた方
がいいよ。
218Name_Not_Found:2001/07/14(土) 01:28
>>214
>もしかして保護監察処分済みか?
そんないいもんじゃないと思われ。単なるダウン症児の夏厨さ。
219ぴよぴよ:2001/07/14(土) 01:46
>>217
うわ!できた!!
ありがとうございます。
一文字でも違うと表示されないのですね。
私はホワイトって書きたかったのでしょうか。。。

ところで、プラウザでエラーが出るようにするって、どうやるのでしょうか。
自分でも調べてみますが、余力あったら教えてください。
220Name_Not_Found:2001/07/14(土) 08:08
221Name_Not_Found:2001/07/14(土) 08:21
222Name_Not_Found:2001/07/14(土) 10:05
↑ワラタ
ネスケで見てたのに「閉じる」をクリックしてしまったオレはバカか...
鬱だ氏のう...
223Name_Not_Found:2001/07/14(土) 10:10
>>221
た、確かに…(w

>>219
IE5.5では、「ツール」→「インターネットオプション」→
「詳細設定」→「ブラウズ」で「スクリプトエラーごとに
通知を表示する」をON、「スクリプトのデバッグを使用しない」
をOFFにする。しかしIEのスクリプトデバッガはよく分からない
表示満載で使いにくいと思う。自分がエラーの場所だけ分かれ
ばあとは「よく見る」ことでエラー取る習慣だからかな。

N4ではこのスレで前に出てたけど、URI(ロケーション)欄に
「javascript:」と入れてリターンすると詳細表示が出る。

しかしN6/Mozillaの「タスク」→「ツール」→「JavaScript
Console」、これが一番使いやすいと思う。だからWindowsな
人でもIEとMozillaと両方入れてデバッグ中はMozillaでやる
といいんじゃないかな。私はUnixな人なのでIEは別のマシン
で時々確認するだけなんです。

にしても「1文字違っただけで動かない」、プログラム作る人
にとっては当り前だけどはじめての人にとっては「驚き」なの
ね。なかなか面白い。
224Name_Not_Found:2001/07/14(土) 10:13
>>222
いやー、あれは何も起きないと分かっていてもクリック
したくなりますよね。そうか、イメージマップにしといてクリックするとブラクラとか…
225Name_Not_Found:2001/07/14(土) 10:19
>>223
「スクリプトのデバッグを使用しない」って何ですか?
226Name_Not_Found:2001/07/14(土) 10:26
>>225
お答えします。世の中にはプログラムのエラー個所を
調べるためのソフト「デバッガ」があります。IEでは
JavaScriptのエラー個所を正確に見るためにはこの
「デバッガ」を起動してそれに表示させることになり
ます。しかしこのデバッガが重たくてうざい…

それはさておき「スクリプトのデバッグを使用しない」
というのは滅茶苦茶な訳で、正しくは「スクリプトの
デバッグ用にデバッガを起動する」というチェックを
ONにする、というオプションの設定方式であるべきだと
思うのですね。これがなぜか条件が逆かつ説明が手抜き
で「スクリプトのデバッグを使用しない」をOFFにする、
という設定方法になってるわけです。あー気持ち悪い。
227Name_Not_Found:2001/07/14(土) 10:51
>>226
すみません、「スクリプトのデバッグを使用しない」
をチェックしてもしなくても何も変化が無くてよくわからないんです。
デバッガを他に持っていなければいけないんでしょうか
228Name_Not_Found:2001/07/14(土) 11:10
>>227
IE入れたらスクリプトデバッガも標準で入るものと
思ってましたが、そうじゃないんだろうか。ここは
知ってる人のコメントきぼ〜ん。

「スクリプトのデバッグを使用しない」のチェックを
外してますか?チェックをつけたらそりゃ「使用しない」
でしょうから…

あと、「スクリプトのエラーごとに通知を表示する」
はチェックをつけてますね?通知して、そこでデバッガ
に入るというとはじめてデバッガが動きます。

最後に、確実にエラーのあるJavaScriptコードで試して
ますか?
229Name_Not_Found:2001/07/14(土) 12:41
>>228
エラーごとに通知させて、確実にエラーのコード(document.white("???");とか)
にしてますけど。
ダイアログのほかにデバッガが起動するはずなんですか?
230Name_Not_Found:2001/07/14(土) 12:58
>>229
ううん、おかしいですね?ステータスバーに「ページで
エラーが発生しました」と出ていますか?その左側の注意
標識アイコンをダブルクリックして、出て来たダイアログ
ボックスで「詳細の表示」ボタンを押す…あれ、デバッガ
開けないなあ。すみません、私もナゼかできなくなってます。
もうちょっと探求してみます…
231Name_Not_Found:2001/07/14(土) 13:00
>>230
すみません、たびたび。上記のようにオプション設定した
後、IEを立ち上げ直さないとうまく行かない。うまく行く
場合はダイアログが「ランタイムエラーが発生しました。
デバッグしますか?」になっているはず。うーん、Windows
はむずかしい。
232Name_Not_Found:2001/07/14(土) 23:28
>>231
やっぱりできないのでデバッガをMSのページからDLしなきゃだめかも...

でも皆さんはデバッガ使ってますか?
自分は使わないんですが alert で変数の中身を確認したりしてやってます。
233Name_Not_Found:2001/07/14(土) 23:38
>>232
うーん、おつかれ様です。もちろん、alertでの確認
とか使いますヨ。ただ、いきなり死んだ時、どこで死
んだか分かりやすいといいから。IEでデバッガ使わなく
ても行数数えれば一応場所は分かるんだったっけな。
234Name_Not_Found:2001/07/14(土) 23:45
やっぱり ネスケのJavaScriptコンソール だな〜
で、デバッガは使っていらっしゃらないのですね?
235Name_Not_Found:2001/07/15(日) 00:02
>>226
うちで起動するデバッガはVisualStudioのInterDEV(多分)ですが
あれは確かに重くてうざいです。
236Name_Not_Found:2001/07/15(日) 00:13
ふだんはやっぱりN6のJavaScriptコンソールですね〜。
237Name_Not_Found:2001/07/15(日) 03:37
すいません、どなたか、それぞれのスクリプトがどういう効果
があるのか簡単で構いませんので解説していただけないでしょうか。
<script language="JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->

<script language=JavaScript>
<!--
var link = document.referrer;
var s_wd = screen.width;
var s_ht = screen.height;
var s_cl = screen.colorDepth;
document.write('<img src="./getlog.cgi?file=cinema&img=&link=http://****/&screen=');
document.write(s_wd + 'x' + s_ht + '&color=' + s_cl);
document.write('" height=1 width=1 border=0>');
// -->
</script>
<noscript>
<img src="./getlog.cgi?file=cinema&img=" width=1 height=1 border=0>
</noscript> <!-- ここまで --></p>

下のは何となく画面サイズを収得してるような気がするのですが、
わからないです。
238Name_Not_Found:2001/07/15(日) 03:52
>>237
上はお気に入りに追加。
下は画面が小さいと「大きな画面で見ろ」と警告します。
239Name_Not_Found:2001/07/15(日) 04:29
>>237
てめーで調べろYO!
240Name_Not_Found:2001/07/15(日) 04:58
右クリック禁止のスプリクトってどんな感じの命令なんでしょう??
241Name_Not_Found:2001/07/15(日) 05:37
>>237
dreamweaverのスクリプトだね。
fireworksかな?
242Name_Not_Found:2001/07/15(日) 09:31
>>238
冗談きついなあ…

>>237
最初のはtargという名前のオブジェクトのlocationプロパティ
にselObjで指定した選択メニューオブジェクトの現在選択されて
いる項目に対応する文字列の値を入れる。フレームやウィンドウの
locationにURIを入れるとページが切り替わるんだっけな。
resetが真のときは最後に選択メニューの選択項目を先頭の項目
に変更する。

2番目はHTTP_REFERRERの値と画面の幅と高さをQUERY_STIRNG
に埋め込んだ形で幅1、高さ1の画像を取り出すCGIスクリプトを
呼ぶ。つまり「こっそり」これらの情報を取るのね。邪悪だ。
JavaScriptが切ってある場合はこれらの情報なしでCGIスクリプト
を呼ぶ。それでもどっから見られているかは分かるわけさ。
243Name_Not_Found:2001/07/15(日) 09:35
サイバークリックメアド流出
被害者の会サイトはこちら↓
http://cyberprob.pocky.com/
244Name_Not_Found:2001/07/15(日) 09:41
>>240
ウィンドウのマウスイベントを捕捉して、右ボタンクリック
だったらそれ以上のイベント処理をキャンセルする。だと思う
けど個人的に右クリック禁止反対なので例題はパス。
245237:2001/07/15(日) 18:36
>>238
嘘は止めて。
>>242
ありがとうございます。
下のやつは個人情報やログを取る為のものですか。
訪問するたびにIPとか個人情報に近いものが記録されてるんですね。
うーん、公共の機関なのに何でだろ?
246ドリウイはイイね:2001/07/15(日) 20:11
ドリウイのスクリプトの使い方(デキル人はわかってると思いますが...)
<html><head>
<title></title>
<script language="JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script></head>
<body>
<form name="form1">
<select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
<option value="#1">HTML</option>
<option value="#2">JavaScript</option>
<option value="#3">CGI</option>
</select>
</form>
</body></html>
247Name_Not_Found:2001/07/15(日) 20:28
248Name_Not_Found:2001/07/15(日) 20:31
>>245
まあ個人情報とまでは行かないけど、見ている個々の
人に対応する情報ではありますね。もっとも、使う方で
「全体として」どこからリンクされてるとか、どれくら
いの画面サイズなのかとか調べるためだけに使っている
のなら「邪悪」とは言えないのかも。でもなんか嫌ですね。
249Name_Not_Found:2001/07/15(日) 22:19
>>247
ふむふむ、右クリック禁止集ですか。しかしIE専用のとか、
N4のみ対応してN6は尻抜けとか、ボロボロのが多いですね。
250( ´Д`):2001/07/15(日) 23:31
右クリックするなと言われると盲点を探りたくなるのが人情。
251245:2001/07/16(月) 00:45
>>237の上のは>>246の様にして使うのですね。
ありがとう。
252Name_Not_Found:2001/07/16(月) 02:58
とりあえず<BODY onContextmenu="return false:">しちゃえ
253Name_Not_Found:2001/07/16(月) 03:00
右クリック禁止されてたらAlt -V -C(IE)。
その労力と情熱を他のところにまわしてくれと言ってみるテスト
254Name_Not_Found:2001/07/16(月) 07:36
while(true) document.writeln("激しく同意");
255Name_Not_Found:2001/07/16(月) 12:28
真・良スレage!

ド素人なものでとても勉強になって折りまス。
よろしければ、JS勉強出来る良サイト(とほほ以外)を
教えていただけませんか。

あと。質問なんですが、
MENUフレームの各コンテンツへのリンク用メニュー画像に
オンマウスすると、別フレームの画像を変更したいのですが
どのようにしたらよろしいでスか。
256Name_Not_Found:2001/07/16(月) 13:01
>>255
JavaScriptのまともな解説はかなり見つけ難いと思って
います。とほほって良サイトなの?それはさておき、ホレ。

t.html:
<html><head><title>???</title></head>
</head><frameset cols="80,*"><frame src="t1.html"><frame src="t2.html">
</frameset></html>

t1.html:
<html><head><title>???</title>
</head><body><p>
<a href="..." onmouseover="top.frames[1].c2(document.getElementById('i1').src)">
<img id="i1" src="a.png"></a><br>
<a href="..." onmouseover="top.frames[1].c2(document.getElementById('i2').src)">
<img id="i2" src="b.png"></a></p>
</body></html>

t2.html
<html><head><title>???</title>
<script type="text/javascript">
function c2(s) { document.getElementById('i1').src = s; }
</script>
</head><body><img id='i1' src="c.png"></body></html>
257255:2001/07/16(月) 13:26
>>256
早っ!ど、どうもありがとうございます。
「とほほ」が良いってワケではなくて
良い悪い別として「「とほほ」以外で」って思って。ね。
258Name_Not_Found:2001/07/16(月) 19:51
if(document.all)

document.allって条件式なんですか?
全然条件じゃないような気がするんですが...
どう言う意味なんでしょうか?
259Name_Not_Found:2001/07/16(月) 20:09
>>258
まず、document.allっていうのはIEのみ存在するプロパティ
ですべての文書要素の集まりになってますよね。で、この
プロパティが存在しないブラウザでdocument.allを参照する
とundefinedになります。

次に、JavaScriptではif(...)やwhile(...)等、論理値が必要
な箇所に論理値でないものを書くと適宜変換が起こりますが、上記の
場合、

・任意のオブジェクト(nullでないもの)→true
・undefined→false

となります。というわけで、if(document.all)でdocument.all
を持っているブラウザならば(〜IEならば)、を意味するわけです。
260258:2001/07/16(月) 20:13
>>259
すごく分かりやすかったです。
ありがとうございました。
ちょっと質問なんですが、何でそんなに詳しいんですか?(^^;
261Name_Not_Found:2001/07/16(月) 21:01
>>260
なぜ詳しいか…えーと…ナイショです(w
262名無しさん@お腹いっぱい。:2001/07/16(月) 21:48
I-MODEのホムペつくってるんですが
PCからやってきた人を別のページに移動させる
スクリプトをおしえてください。
263Name_Not_Found:2001/07/16(月) 21:55
<script language="JavaScript">
<!---
function chbr(){
if(navigator.userAgent.indexOf("Mozilla")>=0)
location.href="index.htm";
else location.href="index2.htm";
}
//---> </script>
264名無しさん@お腹いっぱい。:2001/07/16(月) 22:16
>>263
ありがとう!
265Name_Not_Found:2001/07/16(月) 22:21
ゴメンっ
よく考えたらアイモードはJavaScriptは使えないんだよな...
<NOSCRIPT>タグで飛ばさないとだめだ〜
266Name_Not_Found:2001/07/16(月) 22:24
はぁ〜?
なんとi-modeは<noscript>タグも使えないようだ...
誰かフォローお願いします
267フォロー:2001/07/16(月) 22:30
諦める
268名無しさん™:2001/07/16(月) 22:36
ユーザーエージェントで判断して
pcから来た人は別のところへとばして
i-modeはそのまんまでいいんですけど。
>>263
をコピペしてPC上からアクセスしてみましたが
index2.htmをhttp://yahoo.co.jpとやってみましたが飛びませんでした
269Name_Not_Found:2001/07/16(月) 22:46
その関数を実行したかいな。
270Name_Not_Found:2001/07/16(月) 22:51
おいおい、index2.htm じゃなくて index.htm を書き変えるんだぞ
たびたびスマソ
271名無しさん@お腹いっぱい。:2001/07/16(月) 22:53
>>270
関数の実行はどうやるのですか?・・・すいません初心者で・・・
272Name_Not_Found:2001/07/16(月) 22:57
>>271 コレを<head>タグの間にコピペ
<script language="JavaScript">
<!---
function chbr(){
if(navigator.userAgent.indexOf("Mozilla")>=0)
location.href="http://yahoo.co.jp";
}
chbr();//これ
//---></script>
273名無しさん@お腹いっぱい。:2001/07/16(月) 23:04
>>272

できました。

ありがとうございましたっ
274Name_Not_Found:2001/07/16(月) 23:04
このスレの質問 http://natto.2ch.net/test/read.cgi?bbs=hp&key=995195987
簡単ながら作って見ました。マウスの位置取るの面倒だよねえ。質問あればどぞ。

<html><head><title>???</title>
<style type="text/css">
div { border-style: solid; border-width: 2px; border-color: blue;
position: absolute; visibility: hidden; z-index: 10;
width: 80px; height: 40px; background-color: white }
</style>
<script type="text/javascript">
var m0, xpos, ypos, vis = false;
function mNS(e) { pop(e.pageX-15, e.pageY-15); }
function mIE() { pop(window.event.clientX-15, window.event.clientY-15); }
function pop(x, y) {
m0.style.left = x+'px'; m0.style.top = y+'px';
m0.style.visibility = 'visible'; xpos = x; ypos = y; vis = true;
}
function mNS1(e) { move(e.pageX, e.pageY); }
function mIE1() { move(window.event.clientX, window.event.clientY); }
function move(x, y) {
if(x >= xpos && x <= xpos+80 && y >= ypos && y <= ypos+40) return;
if(vis) m0.style.visibility = 'hidden'; vis = false;
}
function init() {
m0 = document.getElementById('m0');
var elt = document.getElementById('b1');
if(elt.addEventListener) {
elt.addEventListener("mouseover", mNS, true);
window.addEventListener("mousemove", mNS1, true);
} else if(document.all) {
elt.onmouseover = mIE; document.onmousemove = mIE1;
}
}
</script>
</head><body onload="init()">
<p>ここに<span id="b1">menu</span>があります。</p>
<div id="m0">
<a href="http://www.yahoo.co.jp">Yahoo</a><br>
<a href="http://www.google.co.jp">Google</a></div>
</body></html>
275( ´Д`):2001/07/16(月) 23:14
長いサンプル貼る時は↓を使うといいよ。
http://wwwhtml.virtualave.net/up/file.cgi
276Name_Not_Found:2001/07/16(月) 23:24
>>275
ありがとうございます。でも、できる限り、「省略され
ました…」にならない長さの例題で済むようにがんばり
たいのです…今回は頑張れてませんでしたね。
277こんなんでどうか:2001/07/17(火) 01:06
function AnyKey(e){
if( navigator.appName.indexOf("Netscape")>=0 && e.which!=1 ){
alert("HOGE");
}else if( navigator.appName.indexOf("Microsoft")>=0 && event.button!=1 ){
alert("HOGE");
}
return(false);
}
if(navigator.appName.indexOf("Netscape")>=0){
window.captureEvents(Event.MOUSEDOWN|Event.KEYDOWN);
window.onmousedown = AnyKey;
window.onkeydown = AnyKey;
}else if( navigator.appName.indexOf("Microsoft")>=0){
document.onmousedown = AnyKey;
document.onkeydown = AnyKey;
}
278Name_Not_Found:2001/07/17(火) 02:20
240です。ありがとうございました。ALL。
(右クリック禁止に恨みがあるのか、皆。笑。
このスレ嬉しい。「スプリクト」の誤植に罵倒されるかと思た…。)
279Name_Not_Found:2001/07/17(火) 07:57
>>278
プログラムは1字違っても動かないが、日本語は1字違っても
読めるからネ。
280Name_Not_Found:2001/07/17(火) 08:40
エンジンについての質問です。
JavaScript(JScript)でVBScriptの

Set obj = Nothing

のような処理を行うにはどうすればよいですか?
試しに

obj = null;

などとやってみたのですが参照カウントがデクリメントしないので
IUnknown:Release() は呼び出されないようです。
281Name_Not_Found:2001/07/17(火) 10:44
>>280
COMオブジェクトについては暗いのですが、JScript
のオブジェクト管理が参照カウントかどうか…ごみ
集め方式を使っているかも知れませんしね。その場合
はごみ集めを強制起動することができればいいのかも…
分かりませんけどー。
282SUBMIT:2001/07/17(火) 12:03
JavaScriptの質問です。
ボタンを押さないとSUBMITをすることは出来ないのでしょうか?
この行に来たらSUBMITをするというように使いたいのですが、
可能でしょうか?
どうかお教え願います。
283Name_Not_Found:2001/07/17(火) 12:15
>>282
> JavaScriptの質問です。
そりは分かってる(w

> この行に来たらSUBMITをする
その「来たら」というのはマウスカーソルが来たらという意味?
そりは使いにくいんじゃないだろうか…まあ作るのは簡単ですが。

<html><head><title>???</title>
</head><body>
<form id="f1" method="post" action="test.cgi">
<p><input type="text" name="t1" value="Test"></p></form>
<p onmouseover="document.getElementById('f1').submit()">subimit...</p>
</body></html>
284SUBMIT:2001/07/17(火) 12:59
283さんお答えありがとうございます。
しかしマウスカーソルが来たらということではないのです。
ボタンを押すとか、マウスカーソルをもって来るだとかの
アクションを何もせずにいきなりSUBMITをするということは
出来ないでしょうか、と言いたかったのです。

<BODY>
あいうえお
かきくけこ
(ここでいきなりSUBMITをする)
</BODY>

うまく説明出来なくて申し訳ありません。
285Name_Not_Found:2001/07/17(火) 13:09
便乗スミマセン。
テキストエリアじゃなくて、えっと、この名前とか書く欄で、
改行しても送信されないってアレ、javascriptでしたっけ。
どうしたら良いんでしょ?
286285:2001/07/17(火) 13:10
「あ、ENTER押しても」でした。改行はされませんね…。
逝ってきましょうか?
287Name_Not_Found:2001/07/17(火) 13:24
>>284
ふむふむ。それでしたら、フォームの後の位置ならどこでも

<script type="text/javascript">
document.getElementById('f1').submit();
</script>

があるとそこまでレンダリング(表示)された瞬間に提出
できますが、それじゃページの内容を読んでいる暇がない
じゃないですか?何のためにそんなことしてるのか、もし
よろしければお聞かせ頂けませんか?

>>285
そうです、JavaScriptです。で、このスレのvol. 1だったか
vol. 2だったかでその質問ががいしゅつだったかと。探しに
逝ってきてください。
288SUBMIT:2001/07/17(火) 14:11
287さんありがとうございます。
ところで申し訳ないのですが、getElementById('f1')とは
何をしているのでしょうか?
初心者なもので……。
こんなことをする意味は、単に関数を呼び出してそこで
SUBMITをしたいだけです。
289Name_Not_Found:2001/07/17(火) 14:33
>>288
「document.getElementById(文字列)」は、指定した文字列を
idに持つノードオブジェクトを取り出します。ここでは
<form id='f1' ...>としていましたから、フォームオブジェクト
が取れて来ます。そのフォームオブジェクトのメソッドsubmit()
を呼ぶとフォームが提出できます。

ちなみに、これまでは「document[名前]」だとか
「document.all[名前]」だとかいろいろAd hocな方法で同様の
ことをやってましたが、document.getElementById(文字列)は
DOM2の標準に入っているので、私はこれを使うようにしてます。

そういえばこれが標準に入っている証拠を示せとかいきまいて
いる方がいましたが、どうされたんでしょうね?(w
290285:2001/07/17(火) 14:44
>>287さん
サンクスです。しかし、>>1のリンクはことごとく
「そんな板ないです」になってますね。
参った。
自力で探しに逝ってきます。
291SUBMIT:2001/07/17(火) 14:46
289さん、親切にどうもありがとうございました。
助かりました。
292Name_Not_Found:2001/07/17(火) 14:48
>>290
あれー?確かにこれらのスレは過去ログに逝ってますが、
「過去ログ倉庫で発見しました」って出ませんか?
読む人によって違うのでしょうか>>2ちゃんねる
293285:2001/07/17(火) 14:57
だめだ!闇雲に過去ログ漁っている時間がない!
>>292
マジで「そんな板ないです」に飛びますよ?
助けて下さい。
294Name_Not_Found:2001/07/17(火) 15:00
>>293
ちょいと下にスクロールさせてみなされ。
295285:2001/07/17(火) 15:05
あ、下の方にあったんですね…。
鬱だ…ちょっくら逝ってきます…。
296Name_Not_Found:2001/07/17(火) 15:08
<HTML>
<HEAD>
<TITLE></TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function calc1() {
document.Calc.Z1.value = eval(document.Calc.X1.value) * eval(document.Calc.Y1.value);
}
// -->
</SCRIPT>
</HEAD>

<BODY>
<FORM NAME="Calc">
商品A:
<INPUT TYPE="text" NAME="X1" VALUE="1600" SIZE="8">
円 x
<INPUT TYPE="text" NAME="Y1" VALUE="0" onChange="calc1(this.form)">
個 =
<INPUT TYPE="text" NAME="Z1" VALUE="0" SIZE="10">

</FORM>
</BODY>
</HTML>

質問があります。ぜひ教えてください。
このソースなんですが、フォームに入力すると掛け算してくれる
ものなんですが、入力した後にフォーム以外の部分をクリックしないと
結果がフォームに反映されません。
どうしてだか、わかる方いましたら理由と解決策を教えてください。
おねがいします。
297Name_Not_Found:2001/07/17(火) 15:08
教訓: ページは最初に見える画面しか読んで貰えない(w
298Name_Not_Found:2001/07/17(火) 15:16
>>296
ですからー、入力し終わっても「終わった」ことがプログラム
に分からないでしょ?リターンキーを打てば計算されるはず。
それで不満でしたら、たとえばマウスカーソルが出た時にも
計算させますか?「onChange=...」の隣に
「onMouseOut="calc1()"」も追加してみてください。なお、
calc1()はパラメタ不要ですよね?だって使ってないんだから。

私の好みとしては、「計算」ボタンは別に設ける方が素直だと
思うのですが、まあ好みの問題ですから。
299Name_Not_Found:2001/07/17(火) 16:44
>>298
なるほど。解決できました。
あと、真中のフォームの数字を消したときに
結果の出る右のフォームに「NaN」と出てしまうのですが
これは、「0」にはできませんか?
300216:2001/07/17(火) 16:45
>そういえばこれが標準に入っている証拠を示せとかいきまいて
>いる方がいましたが、どうされたんでしょうね?(w

getElementByIdがDOM2の仕様書に書いてあるのは見りゃわかるさー。
でも、document.forms[0]とかだったら、特に不具合もなくより多く
のブラウザに対応できるでしょ?

他人(特に初心者)に教える時は、そういったことも考えてあげなよー。
301216:2001/07/17(火) 16:49
あと、「標準に入っている証拠を示せ」じゃなくて
「document.getElementByIdがDOM2の標準だ」の
理由だよん。
302Name_Not_Found:2001/07/17(火) 17:10
>>300
ごもっともです。が、forms[0]はフォームにしか使えない
のに対してgetElementById()は色々使えるのでつい…
ちなみに自分ではN4用にはこういうコードを入れています。

if(!document.getElementById) {
document.getElementById = function(i) { return document[i]; }
}

>>301
ああ、分かりました。日本語が悪かったです。すみません。
「getElementByIdがDOM2に含まれているから」に訂正させてください。
おしまい。
303Name_Not_Found:2001/07/17(火) 17:24
>>299
そうですね、そういうこともちゃんとしようと思うと…
まず、数値を取り出すのにはeval()より整数ならparseInt()、
小数点つき数ならparseFloat()がいいと思います。で、これで
取得した後、isFinite()で検査するのがよいかと思います。
つまり次のような感じですかね?

var x1 = parseFloat(document.Calc.X1.value)
var y1 = parseFloat(document.Calc.Y1.value);
if(isFinite(x1) && isFinite(y1)) {
document.Calc.Z1.value = x1 * y1;
} else {
document.Calc.Z1.value = 0;
}
304Name_Not_Found:2001/07/17(火) 17:48
>>216
お前も相当しつこいね♪
305216:2001/07/17(火) 18:02
>>304
自分でも思った。
306Name_Not_Found:2001/07/17(火) 18:04
>>305
でもプログラム書きにはある程度しつこさも必要でしょ?
307Name_Not_Found:2001/07/17(火) 18:09
Seagate rule wa over the rule ga goto see.
308Name_Not_Found:2001/07/17(火) 19:51
addEventListener("mouseover", mNS, true)
この引数の意味を教えてください
309Name_Not_Found:2001/07/17(火) 20:51
>>308
「ノード.addEventListener(イベント種別, ハンドラ関数, キャプチャ)」
は、「DOMレベル2イベント」標準て規定されている、イベント取得
設定用のメソッドです。

「ノード」はイベントを取得したい対象範囲を表します。たとえば
divでもspanでもpでもtableでも…

「イベント種別」は"mouseover"とか"mousedown"とか、マウス関係の
イベントハンドラ名から「on」を取った文字列。今のところキー
イベントはこの方法では取れない。

「ハンドラ関数」はそのイベントが起きた時に呼び出される関数。

「キャプチャ」は真偽値で、trueだとイベントが宛先の部品等に
到着する前に横取りする(従来のNetscape流)。falseだと宛先の
部品で処理しなかった残りのイベントが受け取れる(従来のIE流)。
ということになってますね。

しかしこれを呼ぶよりこれまで通りonmouseoverプロパティに
ハンドラのコードを設定する方が見た目簡単ですけどね。私は
せっかくDOMで規定されてるんだからこっちを使ってしまふ。
310Name_Not_Found:2001/07/17(火) 23:10
>>309ありがとうございます。
これまでのonmouseoverプロパティ等はこれからは
使われなくなる傾向にあるんでしょうか?
311Name_Not_Found:2001/07/17(火) 23:18
>>310
傾向としてはですね。MicrosoftもNetscape/Mozillaも
「W3Cの標準に準拠」と叫んでますから、JavaScriptまわり
もそうなって行くんじゃないでしょうか…IE6なんかはどう
なんでしょうね?
312Name_Not_Found:2001/07/17(火) 23:23
DOM2のリファレンスってどこ見たらいいんだ?
313Name_Not_Found:2001/07/17(火) 23:32
>>312
W3Cのはこちら。和訳はどっかにあるのかな。まあ英語あんまり
読まなくてもオブジェクトやプロパティやメソッド読めばいい
わけなので。

http://www.w3.org/TR/DOM-Level-2-Core/
http://www.w3.org/TR/DOM-Level-2-HTML/
http://www.w3.org/TR/DOM-Level-2-Style/
http://www.w3.org/TR/DOM-Level-2-Events/

あと2つくらいあるけど、とりあえずこの4つがあれば足りる
と思っています。
314Name_Not_Found:2001/07/17(火) 23:34
NN4でdocument.getElementByIdを使っちゃうぞっていうのが
>>302にちょろっと出てきたので聞いちゃいます。
・関数リテラル
・function文
・Function()コンストラクタ
これらがどう違うのか、それと関数リテラルの使い方を教えてチョ
315Name_Not_Found:2001/07/17(火) 23:42
これはどうじゃ?
http://www2.plala.or.jp/ivjkiz/
316Name_Not_Found:2001/07/17(火) 23:48
Netscape6のonChangeにバグらしきものを発見したのですが、
onChangeに関するJavaScriptのリファレンスに直リン張ってくれませんかね?
リファレンス読んでバグってわかったらレポートアップしますんで。
317:2001/07/17(火) 23:48
ブラクラ
318Name_Not_Found:2001/07/17(火) 23:57
>>314
適宜順番変更しますネ。function文とは一番よく使うやつ。

function f(x, y) { return x+y; }

これってfという広域変数に関数オブジェクトが代入されるだけ。
ということは次の関数リテラルを使った例と同じこと。

var f = function(x, y) { return x+y; } ;←宣言文の終りの「;」

つまり関数リテラルは「名前をつけない関数定義」と思えば良い。
オブジェクトのメソッド定義に使ったり、短いハンドラを直接
書いたりするのに便利。最後にFunctionコンストラクタは「関数
定義の文字列を渡して関数を定義できる」という点で上2つと違う。
実行時にならないと関数のコードが決まらない場合に便利。

var n = ...
var f = new Function('x', 'return x + '+n+';');
319 :2001/07/18(水) 00:08
PosLeftって何ですか?
320Name_Not_Found:2001/07/18(水) 00:11
>>316
NetscapeはJavaScript 1.5(N6に内蔵されてるバージョン)
のリファレンスを出してないんですよね…いちお、
JavaScript 1.3のonChangeのリファレンスはこちら。

http://developer.netscape.com/docs/manuals/js/client/jsref/handlers.htm#1119802
321Name_Not_Found:2001/07/18(水) 00:14
>>319
PosLeft ??? 聞いたことないです。どこに出て来るの?
322Name_Not_Found:2001/07/18(水) 00:21
>>321
いや、過去ログ読んでたら震える(なんじゃそら?)scriptとか言うのあって、そのソース見たらあった。
てか、あのソース難解だな、、、誰か解説チボン
323Name_Not_Found:2001/07/18(水) 02:21
onClickやonMouseOverイベントでMidiやMP3を再生したいのですが、これらマル
チメディアファイルを扱うオブジェクトのメゾッドって無いのでしょうか?現状
ではdocument.writeinで<BGSOUND>タグを書き込んで実現しているのですが、こ
の方法だと一回しか鳴らせません。クリックするたびに鳴らしたいのです。
324こんなんでどうか:2001/07/18(水) 03:19
<SCRIPT><!--
function Sound(Name){document.all["BG"].src=Name;}
//-->
</SCRIPT>

<BODY><BGSOUND ID="BG">
<A href="" onMouseover="Sound('fileName');">■</A>
</BODY>
325Name_Not_Found:2001/07/18(水) 04:49
オブジェクトのメンバの数を知りたい時は、
どうすればいいのでしょうか?
326Name_Not_Found:2001/07/18(水) 07:36
>>325
var obj = ...オブジェクト...
var count = 0;
for(var prop in obj) ++count;

3行目のfor文はユーザが定義したプロパティの名前を
順番に変数propに入れながらループするので、その数
を数える。ただし、システムが予め用意しているような
プロパティは含まれないので注意。
327Name_Not_Found:2001/07/18(水) 07:57
>>322
うーん、どのスクリプトか分かんないんですけど…とりあえず、
「震える」のは次がポイント。

1. 位置を移動させる要素はCSSでposition: absoluteを指定。
例: <div id='d1' style='position: absolute'>...</div>

2. JavaScript側で移動させる要素のノードオブジェクトを取得。
例: var elt = document.getElementById('d1');

3. 特定の位置に移動させるにはそのノードのstyleプロパティの
下のtopプロパティ、leftプロパティに位置を書き込む。単位は「px」
(ピクセル)をつけるのが普通。
例: elt.style.top = '100px'; elt.style.left = '150px';
ただしN4ではstyleプロパティではなくオブジェクト直接、かつ単位なし。
例: elt.top = 100; elt.left = 150;

4. ランダムに動かしたい場合は0〜1の一様乱数Math.random()を利用。
例: elt.style.top = (100 + 10*Math.random())+'px';

5. 定期的に(連続して)動かしたい場合はsetInterval()を使う。
総合例: (N6/MozillaとIEのみ)

<script type="text/javascript">
var elt;
function init() {
elt = document.getElementById('d1');
setInterval(move, 50);
}
function move() {
elt.style.top = (100 + 10*Math.random())+'px';
elt.style.left = (100 + 10*Math.random())+'px';
}
</script></head><body onload="init()">
<div id='d1' style='position:absolute'>...</div>
...
328Name_Not_Found:2001/07/18(水) 10:55
>>318
ありがとうございます。ちょっと理解できました。
でも使いこなすのはつらいナ

document.getElementById = function(i) { return document[i]; }
これは return document.layer[i]; じゃないのですか?
329Name_Not_Found:2001/07/18(水) 12:47
>>328
はい、レイヤーだけだったら確かにそうなのですが、
「return document[i];」としておくとフォームや画像にも
使えるのでよりホンモノのdocument.getElementById()に
近い感じがして。ただし画像やフォームだとid属性ではなく
name属性で指定した名前が使われますから、N4とN6やIEで
互換にするためにはnameとidの両方を同じ値で指定すると
いった工夫が必要になりますし、レイヤーに入ったフォーム
や画像は取れませんし、やっぱり「ニセモノ」は色々と制約
がありますね。
330Name_Not_Found:2001/07/18(水) 15:39
今日は質問が来ませんねえ。どんな簡単なことでもいいから
質問が欲しい…(w
331Name_Not_Found:2001/07/18(水) 16:14
ページを強制的に全画面表示にさせる方法を教えてください。
小学校で子どもたちが勝手にPCの設定を変えられないようにしたいんです。
とりあえず,ブラウザをスタートアップに登録して全面表示にして
おけば,ネット以外は出来ないだろうと踏んでいるのですが・・・。
332Name_Not_Found:2001/07/18(水) 17:02
>>331
大きくするだけならJavaScriptでできますけど、あんまり効果的
じゃあないかも…まあお試しください。

<html><head><title>???</title>
<script type="text/javascript">
window.moveTo(screen.availLeft, screen.availTop);
window.resizeTo(screen.availWidth, screen.availHeight);
</script>
</head><body>
<h1>test...</h1>
</body></html>
333Name_Not_Found:2001/07/18(水) 17:32
>>332
有り難うございます。
でも,メニューバーや閉じるボタンは消えないんですね。
ううむ・・・残念。
でも本当に有り難うございました。
334Name_Not_Found:2001/07/18(水) 17:45
閉じるボタンなんか消せるわけ無いだろ。
最強ブラクラか?
335Name_Not_Found:2001/07/18(水) 17:56
>>334
それは「ブラ」クラではないだろ(w
336Name_Not_Found:2001/07/18(水) 18:24
良くアダルトサイトとかがやってるフルウィンドみたいなものでも良いんですけど・・・。
337Name_Not_Found:2001/07/18(水) 18:35
小学校のせんせなんかが
ここにきて質問してるんダ〜
うちの中学のせんせもきてるかも!
きをつけなくチャ☆
338Name_Not_Found:2001/07/18(水) 18:41
>>336
いちお、新しい窓を開いてやればメニューバーとかは消せますし
大きさ変更も「なるべく」止めることができますが。

<html><head><title>???</title>
<script type="text/javascript">
function init() {
var win = window.open("http://www.yahoo.co.jp/", "w1", "resizeable=no");
win.moveTo(screen.availLeft, screen.availTop);
win.resizeTo(screen.availWidth, screen.availHeight);
}
</script>
</head><body onload="init()">
<h1>test...</h1>
</body></html>
339Name_Not_Found:2001/07/18(水) 18:43
>>337
それより、小学校の先生が「良く」アダルトサイトって…
いやまあ、先生だって人間ですよね〜
340Name_Not_Found:2001/07/18(水) 18:58
全てのレイヤー(Divタグ)を不可視にしたい。
それをスマートにやる方法ありますか?
341Name_Not_Found:2001/07/18(水) 20:57
>>337
>>339
つまんないこと書くな。
342Name_Not_Found:2001/07/18(水) 21:16
開いたウィンドウから親ウィンドウって操作できるのでしょうか?
343C_sugar:2001/07/18(水) 21:24
>>342
基本でしょう。
忘れたけど。
344Name_Not_Found:2001/07/18(水) 22:27
>>342
opener
closed
使えばできる(みたいだ)けどIEでは動かんらしい
後は上の2つをキーワードにgoogleなりで検索してちょ
345340:2001/07/18(水) 22:39
自分で解決しちゃいました。こんなカンジです。

function hide_all()
{
for (i = 0;i<document.body.childNodes.length;i++)
if (document.body.childNodes[i].tagName == "DIV")
document.body.childNodes[i].style.visibility = "hidden";
}
346Name_Not_Found:2001/07/18(水) 22:46
>>345
div = document.getElementsByTagName("div")
for(i=0;i<div.length;i++) div[i].style.visibility = "hidden";
347345:2001/07/18(水) 22:50
>>346
わぉ〜
サンクス!
348Name_Not_Found:2001/07/18(水) 23:19
>>345>>346
もちろんいいんだけど、「別解」としてスタイルシート
をDOMで操作するという方法があります。「一気に」
「すべて」やるのならこれも覚えておくと有用かもよ。

<html><head><title>???</title>
<style id="s0" type="text/css">
div { visibility: hidden }
</style>
<script type="text/javascript">
function set(v) {
var list = document.getElementById('s0').sheet;
list.deleteRule(0); list.insertRule('div { visibility: ' + v + '}', 0);
}
</script>
</head><body>
<div>Test...</div>
<p><a href="javascript: set('visible')">visible</a>|
<a href="javascript: set('hidden')">hidden</a></p>
</body></html>
349Name_Not_Found:2001/07/18(水) 23:32
>>342>>343>>344
「親ウィンドウを操作する」って具体的にはどういうことを考えてる?
基本的には、ある窓から別の窓を操作できるるのは、「両方の窓が同じ
サーバからのドキュメントを表示している場合のみ」という制約があります。
それがOKなら、開いた窓からはwindow.openerで親ウィンドウのwindow
オブジェクトが参照できますから、「window.opener.moveTo(0,0)」でも
何でもできるはず。ただし、窓を閉じる時は「閉じまくり攻撃」を防ぐ
ため、原則として「閉じてもいいか」というダイアログが出る。
350345:2001/07/19(木) 00:40
>>348
はじめて見るものばかりです... そういうメソッドもあるんですねっ
使い方を見るととってもわかりやすいっす。
あと、詳しく書いてあるページ教えてくださいな。
351Name_Not_Found:2001/07/19(木) 01:17
>>338
<body>にイベントハンドラonLoadでwindow.open(フルスクリーン)かます。
元windowはsetTimeoutで自動的に閉じてしまう。

こんなんどうでせう?
消防マンセー。
352325:2001/07/19(木) 03:04
>>326
遅れましたがありがとうございました。
このスレ本当に勉強になります。
353Name_Not_Found:2001/07/19(木) 04:34
オブジェクトのn番目のプロパティを参照する場合どうしたらいいでしょう。
数字では指定できないのでしょうか。
354Name_Not_Found:2001/07/19(木) 04:56
>>353
できない
355Name_Not_Found:2001/07/19(木) 05:00
>>353
オブジェクトのn番目のプロパティて
何をどうしたいの?
356Name_Not_Found:2001/07/19(木) 07:08
>>350
DOMでスタイルシート操作するAPIは今の所、W3Cの文書

http://www.w3.org/TR/DOM-Level-2-Style/

これを見てやって見るしかないと思います。私はそれしか
知らない…どっかに解説してるページあったら私も知りたい。
357Name_Not_Found:2001/07/19(木) 09:55
sortメソッドの引数に関して...
そこに関数リテラルが出てくるんですけど、

str.sort(function (a,b){return a-b;});

これはどういう具合になっているのでしょうか。
358Name_Not_Found:2001/07/19(木) 10:28
>>357
strと書いてありますけど、これって配列(Arrayオブジェクト)の
sort()ですよね。配列を整列するときは、どんな順番で整列する
のか指定する必要があります。で、sort()に「比較関数」を渡す
ことでその順番を指定するわけです。比較関数は2つの引数x、y
を受け取り、「並べる順番について」x>yなら正、x==yなら0、
x<yなら負の値を返すことになってます。だから数値をその数値の
順に並べるなら「x-y」を返せばよいし、逆順に並べるなら「y-x」
を返せばよいし、数字の1桁目(10で割った余り)の順番に並べる
としたら「x%10-y%10」を返せばよいわけ。で、その比較関数を
普通に定義して名前を指定してもよいんだけど、そこでしか使わない
ような関数に名前を考えるのも面倒なんで関数リテラルにすること
が多いわけです。例を挙げておきますね。

<html><head><title>???</title>
</head><body>
<pre>
<script type="text/javascript">
var a = [1, 100, 13, 34, 25];
document.writeln(a.sort(function(a,b){ return a-b; }));
document.writeln(a.sort(function(a,b){ return b-a; }));
document.writeln(a.sort(function(a,b){ return a%10-b%10; }));
</script></pre>
</body></html>
359Name_Not_Found:2001/07/19(木) 17:40
>>358
まだもにょもにょしているのでお聞きします。
ある本には、「内部的には1つずつ要素の比較を行って、返される値が
正か負かによって順番を入れ替えるという作業が行われている」と書いてありました。
例えば、比較関数から正の値が渡された場合、sortメソッドは
二つの引数の順番を逆に並べて...といった操作を繰り返しているのですか?
よろしくお願いします。
360:2001/07/19(木) 17:47
たとえば a.sort(function(a,b){return a-b;}); についてです
361Name_Not_Found:2001/07/19(木) 18:09
>>359
想像されているのは次のようなsortの定義でしょうか?

function sort(f) {
var done = false;
while(!done) {
done = true;
for(var i = 1; i < this.length; ++i)
if(f(this[i-1], this[i]) > 0) { // then swap...
var z = this[i-1]; this[i-1] = this[i]; this[i] = z; done = false;
}
}
}

これは「バブルソート」というアルゴリズムですが、ひどく遅いので真面目な
実用に使われることはまずありません。Arrayのsort()であれば、もっと賢
い整列アルゴリズムが使われているでしょうけど、どのアルゴリズムにせよ
「必要なら2つの要素の大小を比較する」わけで、その箇所で比較関数を呼ぶ
わけです。
362Name_Not_Found:2001/07/19(木) 20:08
質問してもいいでしょうか。
最近JavaScriptを勉強しはじめたのですが
こんな感じの2段フレームが

| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
|                  |
|                  |
|――――――――――――|
|                  |
|                  |
|____________|

          ↓

| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
|                  |
|――――――――――――|
|      ↑ ↑ ↑      |
|      ↓ ↓ ↓      |
|――――――――――――|
|                  |
|____________|

シワワワワと開いて3段になるようなのって組めるのでしょうか。
本当に始めたばかりで、どこから手を付けたらいいのかすら
わかりません。
よろしくお願いします。
363Name_Not_Found:2001/07/19(木) 21:39
>>361
う〜む。よくわかりました。ありがとうございます。
364Name_Not_Found:2001/07/19(木) 21:56
>>362
フレームセットのrows属性を変更するたびに全ての窓が
リロードされてかっこ悪くなっちゃうヨ
365Name_Not_Found:2001/07/19(木) 22:35
はじめて書き込みます
よろしくおねがいします。

・ポップアップで開くウインドウがフレームの親.htmlだと読み込まれない率が
 かなり高いのですけど解決方法はありますか?

・そのポップアップウインドウ(フレーム)を閉じるJavaScriptはありますか?

これに1日はまってます。よろしくおねがいします。既知でしたらすみません
366Name_Not_Found:2001/07/19(木) 22:55
>>365
質問の状況がよく分かりません。フレームに分かれている
ページが表示されている状態で、新しく窓を開くけど、その
新しい窓にも元のフレームに分かれているページと同じもの
が表示されるようにしている、そうしたら正しくページの
内容が読み込まれない、というふうに読めますがそういう意味?

問題のソースを簡潔に整理したものが見られるとアドバイス
がもらいやすいと思いますが…
367Name_Not_Found:2001/07/19(木) 23:19
ポップアップさせるHTML[popup.html]
---------------------------------
<HTML>
<HEAD>
<TITLE></TITLE>
<script language="JavaScript">
<!--
//ポップアップ
function openwin1equip(){open("frame.html","00","toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=no,resizable=no,width=400,height=300");
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<A href="javascript:openwin1equip()">ポップアップ</a>
</BODY>
</HTML>
---------------------------------

親フレーム[frame.html]
---------------------------------
省略
---------------------------------

子フレーム01[01.html]
---------------------------------
省略
---------------------------------

子フレーム02[02.html]
---------------------------------
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<a href="javascript:close()">02です</a>
</BODY>
</HTML>
----------------------------------

ポップアップさせたframe.htmlがまず真っ白なまま文字などを読み込んでくれません。
しかしそのウインドウを1回閉じるてまたポップアップすると文字などが読み込まれます。

子フレーム02[02.html]のウインドウを閉じるJavascriptが反応してくれません
これはフレームに対応してないからでしょうか?

ちなみに作業環境は
Mac
IE5.0
です。

ながなが書いてすみませんでした。
よろしくおねがいします。
368ラクラブ:2001/07/19(木) 23:20
>>365
つくってみたYO
やってみて
ふぁいるは二つ。
index.html

<frameset rows="50%,0%,50%">
<frame src="blank.html">
<frame src="blank.html">
<frame src="blank.html">
</frameset>

ここまで

blank.html

<body onload="a()" bgcolor=black>
<script>
b=0;
function a(){
parent.document.body.rows="30%,"+b+"%,30%";
if (b<30){
b++
setTimeout("a()",200)
}
}
</script>
369Name_Not_Found:2001/07/19(木) 23:21
あ すみません
上の文は365についてです。
366さんの質問に答えたつもりです。
すみません ながったらしくて...
370ラクラブ:2001/07/19(木) 23:51
>>365
http://2ch.coco.co.jp/test/index.html
オイラの鯖にいれといたから
よかったら参考にして。んじゃ
371ラクラブ:2001/07/19(木) 23:58
あー
>>362

だった!!! 
372Name_Not_Found:2001/07/20(金) 00:16
>>367
うーん、不思議ですね。対症療法ですが、とりあえず
framesetのonloadイベントハンドラで、子フレームそ
れぞれをreloadしてみてはどうでしょう。
373ラクラブ:2001/07/20(金) 00:23
>>367
報告だけど、WIN IE5.5 で >>367 のScriptをそのまま
実行させてみたけど 問題なく 動いたよ。
MAC IE は不安定! MAC IEなんかで初心者が
JScriptを開発すんのは酷かと思われ。
374ラクラブ:2001/07/20(金) 00:24
あげ
375Name_Not_Found:2001/07/20(金) 00:25
>>370
おもしろい。
フレーム展開と同時に背景を
フェードさせてもおもしろいかもしんない。
376ラクラブ:2001/07/20(金) 00:32
>>375
ウザいだけ
377Name_Not_Found:2001/07/20(金) 00:33
>>370
Mozilla 0.92で見たらリロードしまくりでいまいち
でした…なかなか難しいですね。
378ラクラブ:2001/07/20(金) 00:49
Mozillaデみんな!!!!
IEユーザー向けに設計してんだYO!
厨房め
379Name_Not_Found:2001/07/20(金) 00:52
>>365
frameset+frameじゃなくてiframeだったら自由に制御できる
かなと思って作ってみました。結構面倒。窓の大きさを変更
された時に対処するとか、IEだとスクロールバーが出ない程度
に調整するとか、課題がいくつかありますが一応。

<html><head><title>???</title>
<style type="text/css">
iframe { position: absolute; left: 0px;
border-style: ridge; border-color: blue; border-width: 4px }
</style>
<script type="text/javascript">
var width, height, half, f1, f2, f3, mid = 0, count = 20;
function init() {
if(window.innerWidth) {
width = window.innerWidth-8; height = window.innerHeight-16;
} else {
var b1 = document.getElementById('b1');
width = b1.clientWidth; height = b1.clientHeight;
}
half = height/2; f1 = document.getElementById('f1');
f2 = document.getElementById('f2'); f3 = document.getElementById('f3');
f1.style.width = f2.style.width = f3.style.width = width+'px';
f1.style.top = '0px'; f1.style.height = half+'px';
f2.style.top = (half+8)+'px'; f2.style.height = '0px';
f3.style.top = (half+8)+'px'; f3.style.height = half+'px';
setTimeout(step, 3000);function step() {
mid += 5; f2.style.height = mid+'px'; f3.style.top = (half+16+mid)+'px';
f3.style.height = (half-8-mid)+'px'; if(--count > 0) setTimeout(step, 50);
}
</script></head><body id="b1" onload="init()">
<iframe id="f1" src="t1.html"><iframe id="f2" src="t2.html">
<iframe id="f3" src="t3.html"></body></html>

}
380ラクラブ:2001/07/20(金) 00:58
25に"}"追加しないとだめぢゃん(藁
381ラクラブ:2001/07/20(金) 01:00
>>379
んへぇ。なかなかイイカンヂだけど
いやー!重いね。。

ソースに関してはなかなか参考になるけど

こんなぺ−じあったとしても、見る気にならん
382ラクラブ:2001/07/20(金) 01:02
>>379
あと、人のこと言える立場じゃないけど
ソースが汚い・・(藁
オープンソースにするなら後で改良していく人たちの
事も考えて、もうちょい奇麗にしてYO
383ラクラブ:2001/07/20(金) 01:05
ご存知だろうけどborderは一つ一つ設定しなくても
border:4pt ridge blueでokよ。
無駄なソースはナルベク省こうね!
384Name_Not_Found:2001/07/20(金) 01:15
>人のこと言える立場じゃないけど

立場じゃない。顔洗って出直せ。
385ラクラブ:2001/07/20(金) 01:18
まあまあ。落ち着けよ(藁
386Name_Not_Found:2001/07/20(金) 01:21
ちゃんと顔洗ったのか?
387ラクラブ:2001/07/20(金) 01:22
いや、脂がついたままだ(藁
388Name_Not_Found:2001/07/20(金) 01:28
ラクラブ、かあちゃんが早く飯食っちゃえってよ。
389ラクラブ:2001/07/20(金) 01:29
>>379
隊長!f2のwidth>f3のwidth になると 鰓ー になります!
390ラクラブ:2001/07/20(金) 01:30
>>388
ごめーん、まま、もうちょっとまってぇー!
391ラクラブ:2001/07/20(金) 01:36
隊長!
頼むから、iframeのタグは閉じてくれ(w
392Name_Not_Found:2001/07/20(金) 01:57
>>ラブラブ 愛してる!
393ラクラブ:2001/07/20(金) 01:59
...。。ハァ?
394ラクラブ:2001/07/20(金) 02:01
<style type="text/css">
iframe {border:ridge blue 4px }
</style>

<script type="text/javascript">
var width, height, half, f1, f2, f3, mid = 0, count = 20;

function init() {
width = 400;height = 400;

half = height/2;
f1 = document.getElementById('f1');
f2 = document.getElementById('f2');
f3 = document.getElementById('f3');

f1.style.width = f2.style.width = f3.style.width = width+'px';

f1.style.top = '0px';
f1.style.height = half+'px';

f2.style.top = (half+8)+'px';
f2.style.height = '0px';

f3.style.top = (half+8)+'px';
f3.style.height = half+'px';

setTimeout(step, 3000);

function step() {
mid += 5;
f3.style.height = (half-mid)+'px';
f2.style.height = mid+'px';

f1.style.height = (half-mid)+'px';

if(--count > 0) setTimeout(step, 50); }

}
</script></head><body id="b1" onload="init()">
<iframe name="f1" src="t1.html"></iframe><br>
<iframe name="f2" src="t2.html"></iframe><br>
<iframe name="f3" src="t3.html"></iframe><br>

アレンジ版ー☆
395Name_Not_Found:2001/07/20(金) 02:02
>>392
全部抱きしめて♪
396ラクラブ:2001/07/20(金) 02:08
>>394
http://2ch.coco.co.jp/test/2.html
ここに、おいときます。
なんか、かっくいいよね。
397Name_Not_Found:2001/07/20(金) 04:35
配列のソートは、サンプル等よく見かけるのですが、
配列Aをキーにして、配列Bをソートしたい、
といった場合、どう書けばいいのでしょうか?
398Name_Not_Found:2001/07/20(金) 06:31
Aを入れ替えるときに同じ要素番号で
Bも入れ替えたらいいんじゃないだろうか?

for i=1 to max-1
for j=i+1 to max
swap a(i) , a(j)
swap b(i) , b(j)
next j
next i

面倒だからbasicなバブルソートかいてしまった。
399Name_Not_Found:2001/07/20(金) 06:42
>>397
うーん、下手に小細工するより、AとBの要素をペアにした配列
Cを作って、整列して、コピーし戻すのが分りやすいと思うな。

var C = new Array(A.length);
for(var i = 0; i < A.length; ++i) C[i] = {a:A[i], b:B[i]);
C.sort(function(x,y) { return x.a > y.a; });
for(var i = 0; i < A.length; ++i) B[i] = C[i].b;
400362:2001/07/20(金) 11:23
>ラクラブさん
すごいです。
ありがとうございます。
今から中身を見せていただきます。
理解できるよう、がんばってみます。
401ラクラブ:2001/07/20(金) 12:37
>>400
つーか、こっち使え。
http://2ch.coco.co.jp/test/3.html
理解できなきゃ、あほYO(藁
402ラクラブ:2001/07/20(金) 12:44
う。早くも、偽発生・・・ 欝
てか、リンク先がないじゃん。 >>401 藁
403Name_Not_Found:2001/07/20(金) 17:13
iframeが閉じてなかった…欝だねえ(w

でもね、CSSのプロパティはDOM2から使うときはフルスペル
のでないと使えないのよ。e.style.borderWidth = '4px'
とかさ。だからCSSでもフルに書くのが私の趣味。短く書く
のが趣味の人は別にそれでいいんじゃない。ソースが汚くて
悪かったな(これは本当に悪いと思ってる)。

if文がなくてどーやって整列できるんだ? >>398
404Name_Not_Found:2001/07/20(金) 17:17
匿名掲示板を信じている君が鬱
405Name_Not_Found:2001/07/20(金) 18:30
>>404
お前もしつこいね、甘えたこと言ってんじゃねぇよ。
406Name_Not_Found:2001/07/20(金) 18:47
>>399
これどーゆー意味ですか?オブジェクトリテラルってやつですか?
あと、中カッコが変なところにあるような...
407Name_Not_Found:2001/07/20(金) 18:51
インラインフレームって、ネスケとマックのエクスプローラーで
対応してないんじゃん?
408Name_Not_Found:2001/07/20(金) 19:42
>>406
はい、オブジェクトリテラルです。

C[i] = {a:A[i], b:B[i]} ←すいません、「)」じゃなく「}」ですね。

これは次のものと等価です。

C[i] = new Object();
C[i].a = A[i];
C[i].b = B[i];
409Name_Not_Found:2001/07/20(金) 19:48
>>407
そうですね、もともとN6/MozillaとIE5.5対応のつもりでした。
書かなくてすみません。しかしMac IE5.5もiframe非対応なんですか。
410Name_Not_Found:2001/07/20(金) 20:04
そろそろ、次の質問、来ないかなあ!
411 :2001/07/20(金) 23:51
Mugi くんにも困ったものだ。。。
412ななし:2001/07/20(金) 23:57
mugiさんってこのスレにいるの?何番かこっそり教えて。
413Name_Not_Found:2001/07/21(土) 00:00
淫乱フレイム?
414"削除"人A:2001/07/21(土) 00:33
みなさんがお世話になっている人だよ。
415Name_Not_Found:2001/07/21(土) 00:36
http://www.vaio.sony.co.jp/Misc/Gigapocket/

ここみたいに横スクロールさせるスクリプトが知りたいのですが。
このページのソースは、自分には難しく分からなかったです。

もしあまり複雑にならないやり方があれば、
教えてもらえるとサンクスです。
416ラクラブ:2001/07/21(土) 00:36
質問、、、ねえなあ
417Name_Not_Found:2001/07/21(土) 00:40
>>409
え?N6で動く?
418Name_Not_Found:2001/07/21(土) 00:45
Mugi氏いるの?
「元常連」は失礼すぎる思うぞ。
頭の中に虫がいるだろ?
419ラクラブ:2001/07/21(土) 00:58
なに、mugiって、
ウザイ名前。
420Name_Not_Found:2001/07/21(土) 01:01
配列の添え字に文字列を使えるようですが、これってイイと思う?
421Name_Not_Found:2001/07/21(土) 01:15
>>420 連想配列のことか?
422Name_Not_Found:2001/07/21(土) 01:28
JavaScript に連想配列ってないよね?
423Name_Not_Found :2001/07/21(土) 02:07
ボタンを押して表示画像を切り替えってありますよね。
画像ではなく、テキスト表示にするにはどうしたらよいのでしょうか。
ボタン切り替えで、ある説明文をそれぞれ表示したいんです。
本を買ってみたものの、何をどうしたらいいのか分かりません。
教えいただけるとありがたいです。
424ラクラブ:2001/07/21(土) 02:19
>>423

<script>
a=new Array()
a[0]="あぼぼぼぼ";
a[1]="いごごごご";
a[2]="あはははは";
function abon(num)
{txt.value=a[num]}
</script>
<input name="txt">
<input type="button" onClick="abon('0')">
<input type="button" onClick="abon('1')">
<input type="button" onClick="abon('2')">

こんなかんぢで、どうだい?
いちお、恒例の、アプもしとく、、 ↓
http://2ch.coco.co.jp/test/dada.html
425ラクラブ:2001/07/21(土) 02:25
>>423
解説付きYO

<script>
// Script By 2ch.coco.co.jp

a=new Array() // 配列の宣言

//表示させたいメセジを番号つけていく

a[0]="あぼぼぼぼ";
a[1]="いごごごご";
a[2]="あはははは";

//ボタンがおされたら
//上の番号のメセジが表示される。

function abon(num)
{txt.value=a[num]}

</script>
<input name="txt">

<input type="button" onClick="abon('0')" value="0">
<input type="button" onClick="abon('1')" value="1">
<input type="button" onClick="abon('2')" value="2">

<!-- onClick="abon('メセジの番号')" --!>
<!-- おしまい --!>
426ラクラブ:2001/07/21(土) 02:31
>>423
でもさ、input じゃかっこわるいから
こっちのほうが、実用的かも。。
イチオ、アプもしとくね。 http://2ch.coco.co.jp/test/da2.html
<script>
// Script By 2ch.coco.co.jp

a=new Array() // 配列の宣言

//表示させたいメセジを番号つけていく

a[0]="あぼぼぼぼ";
a[1]="いごごごご";
a[2]="あはははは";

//ボタンがおされたら
//上の番号のメセジが表示される。

function abon(num)
{txt.innerHTML=a[num]}

</script>
説明:<span id="txt"></span>
<br>
<input type="button" onClick="abon('0')" value="0">
<input type="button" onClick="abon('1')" value="1">
<input type="button" onClick="abon('2')" value="2">

<!-- onClick="abon('メセジの番号')" --!>
<!-- おしまい --!>
427Name_Not_Found:2001/07/21(土) 02:44
423です。
すばやいお返事ありがとうございます!
これが分からなくて作業がとまっていたんです。
本当にありがとうございました。
428ラクラブ:2001/07/21(土) 02:46
おうおう!
こちとら、質問がぜんぜんこなくてマァタリしてたとこで
ちょうどよかったYO!
また来てね!
429397:2001/07/21(土) 02:56
>>398 >>399
ありがとうございました。おかげさまで解決しました。
配列をオブジェクトみたいに(言い方変?)使えるなんて知らなかったので、
これも勉強になりました。が、
分かったような分からないような点が出てきました。
Array と Object って結局同じなんでしょうか?
430Name_Not_Found:2001/07/21(土) 06:48
>>429
ArrayとObjectの違いは、Arrayが番号の添字で参照するのに
何かと便利にできていること。たとえばlengthに値を入れること
で「長さを縮める」ことができる。

[値,値,…] で作られるのはArray。

{名前:値, 名前:値, …} で作られるのはObject。
431Name_Not_Found:2001/07/21(土) 08:12
>>415

これって、 >>114 みたいに横スクロールさせる奴をフレームに入れれば
できますよね。いちお、簡略化して作ってみました。読めないとこ質問してね。
t.html:
<html><head><title>???</title></head>
<frameset title="main" cols="100,*">
<frame title="left" src="t1.html"><frame title="right" src="t2.html">
<noframes><body><p>frame only...</p></body></noframes>
</frameset>
</html>

t1.html:
<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 0px; width: 100px; height: 100px;
border-width: 4px; border-color: blue; border-style: ridge }
</style>
<script type="text/javascript">
function init() {
for(var i = 0; i < 3; ++i)
document.getElementById('d'+i).style.left = (i*100)+'px';
}
</script>
</head><body onload="init()">
<div id='d0'><h1>0</h1></div>
<div id='d1'><h1>1</h1></div>
<div id='d2'><h1>2</h1></div>
</body></html>

t2.html:
<html><head><title>???</title>
<script type="text/javascript">
var dx, count;
function move(d) { dx = d/10; count = 10; step(); }
function step() {
top.frames[0].scrollBy(dx, 0);
if(--count > 0) setTimeout(step, 50);
}
</script>
</head><body>
<p><a href="javascript: move(-100)">right</a>|
<a href="javascript: move(+100)">left</a></p>
</body></html>
432ラクラブ:2001/07/21(土) 08:34
>>415
>>http://www.vaio.sony.co.jp/Misc/Gigapocket/
わ。これって、いいな!
まるでFRASH!さすがSONYとかおもちゃうな。
433ラクラブ:2001/07/21(土) 08:35
あ。。FLASHの間違いね。(藁 スマソ
434ラクラブ:2001/07/21(土) 09:56
>>415
http://2ch.coco.co.jp/test/sony/
に、ちょっとわかりやすく(?)したのを
置いとく。 もうちょっとしたら
モット詳しい解説を載せますー。マア、お暇でしたら参考にして。
435Name_Not_Found:2001/07/21(土) 11:01
>>431
イイ!!

>>434
何をアプしてあるの?

あと、ギガポケットっていうサイト、ドリウイでつくってあるじゃん...
436ラクラブ:2001/07/21(土) 11:16
どりういってなにー?
437Name_Not_Found:2001/07/21(土) 12:08
macromedia の DreamWeaver だヨ
438ラクラブ:2001/07/21(土) 12:41
あ、ビルダーっすか?
なぁんだ。。
439Name_Not_Found:2001/07/21(土) 13:03
>>438
ヴァカですか?
440ラクラブ:2001/07/21(土) 13:16
Macromedia から新しいDreamweaver のバージョンが出ました。Dreamweaver のEnterprise版ともいうべきソフトで、名前は Ultra Dev(ウルトラデヴ) です。太っているのかと思ってしまう名前ですね。(^^;DrumBeat というASP,JSPの作成ツールがあったのですが、このソフトとDreamweaver がくっついてUltra Devに なりました。

Ultra Dev はDreamweaver,DrumBeatの特徴を兼ね備えたソフトです。 Dreamweaver と同じ感覚でページのデザイン、 サイト管理ができます。実際、この文章もUltra Dev で書いています。これに加えて、DrumBeatの機能である サーバーサイドの処理が行えます。サーバーサイドのスクリプトは、ASP,JSP,ColdFusionの3種類で、ビヘイビアと 同じ感覚で挿入することが出来ます。 また、サーバーサイドのタグの実行結果を ドキュメントウィンドウ上で確認することができ、サーバー上で確認する手間が省けます。

初日でほとんど使ってないためあまり機能がわかっていませんが、徐々に紹介していこうと思います。

2000/06/10

UltraDeveloper4になってからなんにもしてませんが、サンプルだけは作りました。解説本を執筆中です。
441Name_Not_Found:2001/07/21(土) 13:27
>>440
いいんだけど、このスレにはビルダ固有の話題じゃなく
あくまでJavaScriptの話題を書いて頂くようキボーン。

ドリウィでどういう操作という話をされてもわらかん。
JavaScriptコード出てくれれば読めるけどさ。
442Name_Not_Found:2001/07/21(土) 13:43
>>394

ラクラブさん、>>379 のコードきれいにしてくれたのは嬉しい
んだけど(ホントきれいだねえ)、iframeのid属性をname属性に
書き換えちゃったらまずいよ。なんせgetElementById()で参照
してんで。そこだけ直したらN6/Mozillaでも動くんだよね。

ちなみに >>379 で何を苦労してたかってゆーと、ウィンドウの
サイズを取得してそれに合わせてiframeの大きさを設定すること
だったんだけど、その機能はなくてよかったのかな…
443Name_Not_Found:2001/07/21(土) 18:41
>>348
IEでは動かないけど、どのメソッドが対応していないんですか?

>>399
C.sort(function(x,y) { return x.a > y.a; });
このreturn のなかの ">" って何でしょうか?

かなり前の話ですみません...
444Name_Not_Found:2001/07/21(土) 19:10
>>443
調べてみましたが、IEだとstyle要素のノードからスタイルシート
オブジェクトが取れてくれません。なので、document.styleSheets[]配列から取りました。またinsertRule()/deleteRule()もないようです。
とりえあず、ルールの差し替えなんでcssTextに値を入れる方法で対処。
N6/MozillaとIE5.5用です。

<html><head><title>???</title>
<style type="text/css">
div { visibility: hidden }
</style>
<script type="text/javascript">
function set(v) {
var list = document.styleSheets[0];
if(list.deleteRule) {
list.deleteRule(0); list.insertRule('div { visibility: ' + v + '}', 0);
} else {
list.cssText = 'div { visibility: ' + v + '}';
}
}
</script>
</head><body>
<div>Test...</div>
<p><a href="javascript: set('visible')">visible</a>|
<a href="javascript: set('hidden')">hidden</a></p>
</body></html>
445Name_Not_Found:2001/07/21(土) 19:17
>>443
はい、タグの終わりです。嘘です(w

まちがいました、すいません。もちろん、
「return x.a - y.a;」が正しいです(泣)
446415:2001/07/21(土) 22:47
431さん、丁寧に教えてくれてほんと感謝です。
今まで試行錯誤して、やっとできました。
フレームを多用する場合、
top.frames[0]をparent.フレーム名に変えなくちゃならんですよね。
そこで苦労してました。
いずれにせよ、サンクス!

ラクラブさんの、よりGigaPocketのやつに近くてすげー。
447Name_Not_Found:2001/07/21(土) 23:04
プルダウンメニュー(横にリンク先に飛ばすボタンがついているタイプ)
で選んだリンク先の説明をテキストボックスに表示させて、
その後ボタンでリンク先に飛ばす、ということは可能ですか?
わかりにくくてすみませんが解読できた方、
よかったら教えてください。
448Name_Not_Found:2001/07/21(土) 23:58
>>447 ホレ。

<html><head><title>???</title>
<script type="text/javascript">
var mesg = ['やふーだ', 'ぐーだよ'];
function change() {
document.forms[0].elements[1].value =
mesg[document.forms[0].elements[0].selectedIndex];
}
function jump() {
location.href = document.forms[0].elements[0].value;
}
</script>
</head><body><form action="#"><p>
<select onchange="change()">
<option value="http://www.yahoo.co.jp/">Yahoo</option>
<option value="http://www.goo.ne.jp/">Goo</option>
</select><br>
<input type="text" size="60" disabled><br>
<input type="button" value="GO!" onclick="jump()">
</p></form></body></html>
449ラクラブ:2001/07/22(日) 00:48
いやあ、しかし、みんなエレメントとか多様しまくりやねえ。。
オイラいっつも、nameとidでやってる。。
勉強になりました、、
450429:2001/07/22(日) 01:09
>>430
ありがとうございました。理解いたしました。
451Name_Not_Found:2001/07/22(日) 03:34
レイヤと、その中に入れる画像と、
同じIDを使っても問題ないですか?
452Name_Not_Found:2001/07/22(日) 06:52
>>451
HTMLの仕様書読め
453Name_Not_Found:2001/07/22(日) 08:34
>>451
idはもともと「そのドキュメントでは一意」であるように
つけることになってるんで。同じにならないように工夫し
ましょう(何か頭に1文字つけるとか)。
454ラクラブ:2001/07/22(日) 09:39
>>452
ヴぁか?
仕様書よむのめんどいからここで聞いてんだRO。
455Name_Not_Found:2001/07/22(日) 09:44
>>454
hagesiku doui!
456Name_Not_Found:2001/07/22(日) 11:51
location = ???
location.href = ???
どちらがより良いですか
457 :2001/07/22(日) 13:44
location オブジェクトのデフォルトプロパティが href である。
458Name_Not_Found:2001/07/22(日) 14:34
つまりどっちでも同じってことなんですか?
459447:2001/07/22(日) 15:43
>>448さん
ありがとうございます。
早速試してみたんですがリンク先にうまく飛べなくて、
アドレスのところにこのページの変わりに
(...ne.jp/~***/otameshi.htmlとしたのですが)
...ne.jp/~***/nullと表示されました。
これはどういうことなんでしょうか?
あと、1行以上のフォームへの表示も可能ですか?

またわかりにくくってすみません。
460Name_Not_Found:2001/07/22(日) 16:21
>>459

うーん、不思議ですねえ。その<select>...</select>の
あたりだけ貼りつけて見ません?あと、「1行以上の」という
意味がよく分りませんが、選択するたびにその選択内容の説明
が追加されるっていうこと?または単に説明が長いからっていう
こと?説明が長いだけなら<input type="text" ...>を
<textarea rows="行数" cols="文字数"></textarea>
に取り換えるダケでいいはず。
461Name_Not_Found:2001/07/22(日) 19:48
>>457

そもそも、MSのリファレンスには「locationオブジェクトのデフォルト
プロパティがhrefだからlocationに値を入れるのはlocation.href
に入れるのと等しい」と書いてあるけど、また実際そのように動作する
ようだけど、これってどういう言語機能なのかよく分からない。

たとえばdocument.locatinにこれまでに入っている値(Location
オブジェクト)を捨ててまったく別のモノ(たとえば数値の「0」とか)
を入れたりすることはできるのか?なんかできなさそうだよね。つまり
このプロパティだけ何か「普通でない」わけ。

Netscapeのリファレンスには、「document.locationに値を
入れようとすると、新しいLocationオブジェクトが作られ、その
hrefプロパティに値が格納され、document.locationプロパティ
にはそのLocationオブジェクトが格納される」と書いてある(ように
読める…と思う)。これならまあJavaScriptの動作としてプロパテイ
への値の設定で何か実行するというのはもともとあるから納得できる。

IEのもうちょっとましな説明、見つけた人いる?
462447:2001/07/22(日) 21:16
>>460さん
レスありがとうございます。
そう!単に説明が長くなるな、と思ったので行が設定したかったんです。
<textarea rows="行数" cols="文字数"></textarea>でできました。
ところでこれはピクセルでの指定はできないのでしょうか?

で、リンクに飛ばないことについてですが、
取りあえずなので>>448を普通にコピペしただけなので、
<select onchange="change()">
<option value="http://www.yahoo.co.jp/">Yahoo</option>
<option value="http://www.goo.ne.jp/">Goo</option>
</select>
ココはなにもいじってないのですが。
463Name_Not_Found:2001/07/22(日) 21:36
>>462

ピクセル単位で指定したければ

<textarea style="width: 200px; height: 100px"></textarea>

とかですかね。rowsとcolsも一応指定するんだっけかな?
リンクいじってないって、リンク先を変更したんですよね。
URIにヘンな文字…たとえば「\」とか「"」とかが入って
ないかとか、全体を「""」で囲みそこなってないかとか、
その辺チェックしてみては。
464Name_Not_Found:2001/07/22(日) 23:18
質問がなくて暇なので「画像が窓の中を飛ぶ」というのを書き込んで
見ます。N4、N6/Mozilla、IE5対応(のつもり)。興味ある方お試しください。

<html><head><title>???</title>
<script type="text/javascript">
var elt, suf = 'px', x = 0, y = 0, xmax = 300, ymax = 200, dx = 3, dy = 4;
function init() {
if(document.getElementById) {
elt = document.getElementById('d1');
} else {
elt = document.d1; elt.style = elt; suf = '';
}
setInterval(move, 50);
}
function move() {
elt.style.left = (x += dx) + suf; if(x < 0 || x > xmax) dx = -dx;
elt.style.top = (y += dy) + suf; if(y < 0 || y > ymax) dy = -dy;
}
</script>
</head><body onload="init()">
<div id="d1" style="position: absolute"><img src="test.png"></div>
</body></html>
465Name_Not_Found:2001/07/22(日) 23:23
>>463
textarea において rows と cols は必須属性
466Name_Not_Found:2001/07/22(日) 23:40
皆さんのサンプルを見ていると、NNも意識している方が多いようですが、
自分はIE5(Win、Mac)、IE4(Win)だけに対応するようになりました。
シェアが少ない割に、NNにも対応するのは時間も手間もかかるので…。
このあたりどう考えてますか?
467IUnknown:2001/07/22(日) 23:43
>461

興味があるので参加させていただきます。普段はプログラム板の住人として

 http://piza.2ch.net/test/read.cgi?bbs=tech&key=981823340
 http://piza.2ch.net/test/read.cgi?bbs=tech&key=982930049

などに顔を出している者です。

>そもそも、MSのリファレンスには「locationオブジェクトのデフォルト
>プロパティがhrefだからlocationに値を入れるのはlocation.href
>に入れるのと等しい」と書いてあるけど、また実際そのように動作する
>ようだけど、これってどういう言語機能なのかよく分からない。

IE では Location オブジェクトは正式には HTMLLoction オブジェクトと
呼ばれるオートメーションオブジェクトです。IE における JScript の
言語機能を理解しようとするならば COM インターフェイスやオートメーションに
関する知識が不可欠となってきます。オートメーションオブジェクトには
デフォルトのプロパティというものを割り当てることが出来ます。
これは COM インターフェイスの実装段階で行うものです。正確には
メソッドを識別するための ID である DispatchIDというものに 0x00000000
という値を割り当てたものが デフォルトのプロパティとなります。
これはステートメントの戻り値がオブジェクトの参照で終わる場合、つまり

document.location = "http://www.xxx.com/"

のようなときですが、デフォルトのプロパティである href が呼び出されます。
これらの認識はオートメーションコントローラのパース段階で行われるものであり
(JScriptやVBScriptエンジンなど)、オートメーションコントローラを
自作する場合はそれを知った上で実装する必要があります。オートメーションでは
このようなコンポーネントとコントローラ間での取り決めがいくつもあります。
とはいえスクリプトのプログラマは単にスクリプト言語の仕様として理解する
だけで構わないでしょう。

COM については初心者でもわかるように噛み砕いて短く説明することははっきり言って
不可能です。それぐらい理解するには不可欠な概念が沢山あるのです。
ある程度の基礎知識さえ身に付けれれば世界は結構広がってきます。
このスレッドの趣旨とは離れてしまいますが IE における JScript の理解を
深めたいならばこの世界に足を踏み込んでみるのもいいかもしれませんね。

IEのオブジェクト階層について勉強するならば「COMアーキテクチャと実践
スクリプティング」という書籍である程度掘り下げて解説しています。
VC や VB などの言語知識がないと少々難しいかもしれませんが、興味があるならば
読んでみてはどうでしょう。COM や IEに関することであれば上記のスレッドで
質問すれば誰か答えてくれるかもしれません。私よりずっと詳しい人が沢山います
から(予習しないで質問すると結構手厳しい反応が返ってきたりしますけどね)。
468Name_Not_Found:2001/07/22(日) 23:46
時間も手間もかかるっていっても、慣れてる人なら
数分単位だろ。

極端に面倒くさいのは割り切るかも。
469456:2001/07/23(月) 00:06
>>467
で、結局同じってことなんでしょ?
470Name_Not_Found:2001/07/23(月) 00:10
>>467

なるほど、オートメーションだったのですね。にしても、

> これはステートメントの戻り値がオブジェクトの参照で終わる場合、つまり
> document.location = "http://www.xxx.com/"

せんせー、これでなぜ「ステートメントの戻り値がオブジェクトの参照」
なのか分かりません。ECMAの言語仕様から行けば、この文の戻り値は代入
された値つまり文字列値であるように思えるのですが。
471Name_Not_Found:2001/07/23(月) 00:17
>>466

自分はJavaScriptでどんなことができるかに興味があるので、
まずN6/Mozillaが対象になりますね。IE5.xって標準に準拠して
るといいつつ欠けてることが多いから。で、余裕があればIE5.5
でチェックして、N4はできないことが多いから、これはできると
分かる場合は対応します。 >>468 が書いているように、できると
分かっていることを対応するなら数分ですよ。IE4.x? そんなの
知らない(w
472IUnknown:2001/07/23(月) 00:49
>470
御免なさい、説明不足でした。この場合は左辺がという意味です。
document.location は window.document.location ですよね。
ここから説明します(IEについてのみの概念です)。

window オブジェクトとは JScript エンジンが IEと接続した際に
渡されたインターフェイスで IHTMLWindow2 インターフェイスを
指します。私たちが通常 window オブジェクトのメソッドやプロ
パティとして呼び出しているものはすべて IHTMLWindow2 インター
フェイスが公開するメソッドです。実はプロパティの設定や
取得でさえも本当はメソッドなのです。ただその実装や呼び出しに
ちょっとした取り決めがあって便利に利用することが出来るように
なっているんです。まあそれはおいておくとして、既に JScript
は window オブジェクトを知っていますから(さっき渡されました
よね)直接メソッドを呼び出すことが出来ます。これが document
メソッドから書き始めることが出来る理由です。window オブジェクトの
document メソッドは IHTMLWindow2 インターフェイスから document
メソッドを呼び出すことになります。このメソッドは IHTMLDocument2
インターフェイスを返します。これはオートメーションでいうと
みんなのよく知っている Document オブジェクトです(オートメーション
ではインターフェイスと言う概念をラッピングしてしまいます)。

window.document の部分です。

次に Document オブジェクトの location メソッドですが、これは
先ほど取得した IHTMLDocument2 インターフェイスを使って location
メソッドを呼び出します。戻り値は IHTMLLocation インターフェイス
です。つまり location オブジェクトですね。

window.document.location の部分です。

するとスクリプトではこれに文字列を入れようとしているではありませんか!

window.document.location = "http://www.xxx.com/"

現在、左辺は location オブジェクトです。JScript エンジンはこういうときに
デフォルトプロパティでこの代入を試そうとします。これは前に話した
デフォルトプロパティを割り当てられている IHTMLLocation インターフェイスの
メソッドです。JScript は DispID が 0x00000000 である href メソッドを
を見つけます。そしてスクリプトの記述どおりに「プロパティの設定」という方法で
この値を href メソッドを使って代入しようとします。このメソッドは代入される
値には BSTR というデータ型しか受け付けません。これはオートメーションの世界で
用いられる文字列型です。つまり document オブジェクトの href プロパティには
文字列しか設定できないと言うことになります。正しく文字列が渡されたらめでたく
代入は成功となるわけです。ちょっと説明端折りましたがわかっていただけましたか?


IE のオブジェクトをインターフェイスの定義として詳しく調べたいのであれば
OLE Viewer なるツールがマイクロソフトから無料で提供されています。
これは自身のマシンにインストールされているCOMコンポーネントを調べる際に
役立ちます。 IEが公開するすべてのオブジェクト(インターフェイス群)、
メソッドを調べることが可能です。

http://www.microsoft.com/com/resources/oleview.asp

使い方がわからなければ聞いてください。
473466:2001/07/23(月) 05:09
>>468 >>471
お話を聞いて、食わず嫌いだったのかも…と思い直しまして、
NN6への対応に取り組むことにしました。
document.imageとdocument.allを、document.getElementByIdにして、
細かいところをいじるだけで、とりあえず「見れる」ようにはなりました。
「難しい」「面倒」と思い込んでいたようです。
474Name_Not_Found:2001/07/23(月) 05:18
>>114 の横スクロールさせる方法に、
残像を残しながら同じ位置に表示されるレイヤーを加えたいのですが、
そういうことはできますか?
475447:2001/07/23(月) 05:40
>>462さん
ありがとうございます。
試してみたら、
IEでは反映されるみたいですね。>ピクセル指定
で、ついでにIEでリンク先に飛んでみたらうまく行きました。
ってことは
NCではうまくいかないスクリプトってことなんでしょうか?
両方で使えるようにはできないのでしょうか?
当方MACにて主にNCを使っております。
476Name_Not_Found:2001/07/23(月) 06:45
>>472
説明は大変よく分りました。そうすると、JScriptエンジンはCOMオブジェクト
のプロパティはものによっては代入させてくれないということになるのでしょう
かね?普通のオブジェクトであれば

obj.prop = 値;

という文があった場合、objのプロパティpropの値を取り出してしまうわけでは
なく、objにプロパティpropがまだなければ作り、そこに「値」を設定しますよ
ね。つまり「… obj.prop …」のように参照する時とは動作が違うわけです。
しかし

document.location = 値;

の場合はdocumentオブジェクトのプロパティを設定しようとはせず、常に
locaitonプロパティの中身をまず参照してきて、それがHTMLLocation
インタフェースを持っていることを見るのですよね(その後の説明は分ります)。
その辺、普通の言語の意味づけとちょっと違うなと思いました。
477Name_Not_Found:2001/07/23(月) 07:01
>>475

驚愕!N4で試したら、確かにうまく飛べません。option要素の
valueの扱いになにかヘンなところがあるんですね>>N4
なので、メッセージと同様、行き先も配列に覚えるように修正し、
N4での動作確認しました。失礼しました。なお、大きさのピクセル
指定はN4は無理でしょう(スタイルシートの実装がもともと不完全)。
N4ではそれらしい値になるようにrows/colsを調整するんでしょうね。

<html><head><title>???</title>
<script type="text/javascript">
var mesg = ['やふーだ', 'ぐーだよ'];
var dest = ['http://www.yahoo.co.jp/', 'http://www.goo.ne.jp'];
function change() {
document.forms[0].elements[1].value =
mesg[document.forms[0].elements[0].selectedIndex];
}
function jump() {
location.href = dest[document.forms[0].elements[0].selectedIndex];
}
</script>
</head><body><form action="#"><p>
<select onchange="change()">
<option>Yahoo</option><option>Goo</option></select><br>
<textarea style="width: 200px; height: 100px" rows="10" cols="40">
</textarea><br>
<input type="button" value="GO!" onclick="jump()">
</p></form></body></html>
478447:2001/07/23(月) 07:25
>>477さん
ありがとうございました!
なにがなにやらわからないけれど
NCで飛べるようになっていました!
こういうのを自分で考えて作れるようになりたいなあ、と
今回心底思いました。勉強が必要ですね。
今回はコピペで。(ありがとうございます

ところで、このプルダウンを複数作って、
説明をひとつのテキストエリアに表示させることも可能ですか?
一度に質問しないで注文つけるみたいに
何回も何回も質問して大変申し訳ありません。
479Name_Not_Found:2001/07/23(月) 07:29
>>474

「残像を残しながら同じ位置に表示される」という意味がよく分りません。
つまり、フレームの中は横にスクロールするけど、そのスクロールについて
行かずに同じ位置に表示され続けるような内容を一緒に入れておくって
いうことでしょうか?それだと「残像」という言葉とちょっと違う気も
して…いちお、ちょっと直して作ってみましたが。N6/MozillaとIE5。

t.html:
<html><head><title>???</title></head>
<frameset title="main" cols="100,*">
<frame title="left" src="t1.html">
<frame title="right" src="t2.html">
<noframes><body><p>frame only...</p></body></noframes>
</frameset></html>

t1.html:
<html><head><title>???</title>
<style type="text/css">
div.fix { position: absolute; top: 110px }
div { position: absolute; top: 0px; width: 100px; height: 100px;
border-width: 4px; border-color: blue; border-style: ridge }
</style>
<script type="text/javascript">
function init() {
for(var i = 0; i < 3; ++i)
document.getElementById('d'+i).style.left = (i*100)+'px';
}
</script>
</head><body onload="init()">
<div class="fix" id="fx">Fixed</div>
<div id="d0"><h1>0</h1></div>
<div id="d1"><h1>1</h1></div>
<div id="d2"><h1>2</h1></div>
</body></html>

t2.html:
<html><head><title>???</title>
<script type="text/javascript">
var elt, epos = 0, dx, count;
function init() { elt = top.frames[0].document.getElementById('fx'); }
function move(d) { dx = d/10; count = 10; step(); }
function step() {
elt.style.left = (epos += dx) + 'px';
top.frames[0].scrollBy(dx, 0);
if(--count > 0) setTimeout(step, 50);
}
</script>
</head><body onload="init()">
<p><a href="javascript: move(-100)">left</a>|
<a href="javascript: move(+100)">right</a></p>
</body></html>
480Name_Not_Found:2001/07/23(月) 07:34
>>473

ちょっとやって見るとわりと簡単でしょ?しかしこういうことをやる
ほど、document.getElementById()がいちばん使いやすいと思う
んですよね。といいつつforms[]とかも使うんだけど。
481Name_Not_Found:2001/07/23(月) 07:42
>>478

プルダウンが複数で説明表示領域が1つっていうことは、そこには
現在選ばれている各プルダウンに対応する説明が「連結されて」入る
っていうことですか?それだったら

var msg0 = [...];
var msg1 = [...];

みたいにプルダウンごとに説明の配列も用意しておき、説明を入れる所で

...value = msg0[...selectedIndex] + msg1[...selectedIndex];

みたいに連結してほうりこめばできると思います。プルダウンが10個くらい
あるようだとループや配列使わないとめんどくさそーですけど…

せっかく説明したい人がいるんですから、コピペしたときに「ここはどういう
意味ですか」くらい質問していただけると、自分で書けるようになる早道じゃ
ないでしょうか?何回にも分けて質問するのはかえっていいと思いますよ。
482Name_Not_Found:2001/07/23(月) 18:33
javascriptの変数をperlに渡すことはできますか?
483474:2001/07/23(月) 19:15
>>479
「残像を残しながら同じ位置に表示される」というのは、
┏━━━━━━━━━━━━━┓
┃              ┌────┐┃
┃              │        │┃
┃              │        │┃
┃              │        │┃
┃              │ fixed  │┃
┃              └────┘┃
┃口                  ┃
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃  ┌  ┌ ┌ ┌┌────┐┃
┃  │  │ │ ││        │┃
┃  │  │ │ ││        │┃
┃  │  │ │ ││        │┃
┃  │  │ │ ││ fixed  │┃
┃  └  └ └ └└────┘┃
┃        口          ┃
┗━━━━━━━━━━━━━┛
┏━━━━━━━━━━━━━┓
┃              ┌────┐┃
┃              │        │┃
┃              │        │┃
┃              │        │┃
┃              │ fixed  │┃
┃              └────┘┃
┃                  口┃
┗━━━━━━━━━━━━━┛
こんな感じなんですけど、わかります?
えっと、□はスクロールバーです。
484447:2001/07/23(月) 19:16
わたしの説明わかりにくかったと思います。
補足にもならないような補足させてください。

*Aのプルダウン ↓説明
 「犬関係」
   犬日記  ←犬の成長記録です
   犬掲示板 ←犬関係の掲示板です

*Bのプルダウン ↓説明
 「猫関係」
   猫日記  ←猫の成長記録です
   猫掲示板 ←猫関係の掲示板です

テキストエリアには随時選択したリンク先の説明が新しく表示される。
・・・イメージとしてはこんな感じなのですが。
そういえば、テキストエリアって書き込み可なのですね。
不可にする方法ってあるのでしょうか?
485447:2001/07/23(月) 19:17
>>481さんのレスを受けて、(間違った受け止め方しますね…)
見よう見まねで>>477をいじってみました。

<html><head><title>???</title>
<script type="text/javascript">
var msg0 = ['やふーだ', 'ぐーだよ']; var msg1 = ['ぐーぐる', 'らいこす'];
var dest0 = ['http://www.yahoo.co.jp/', 'http://www.goo.ne.jp'];
var dest1 = ['http://http://www.google.com/intl/ja/', 'http://www.lycos.co.jp/'];
function change() {
document.forms[0].elements[1].value =
msg0[document.forms[0].elements[0].selectedIndex]
+ msg1[document.forms[0].elements[0].selectedIndex];
}

}
function jump() {
location.href = dest0[document.forms[0].elements[0].selectedIndex]
+ dest1[document.forms[0].elements[0].selectedIndex];
}
</script>
</head><body><form action="#"><p>
<select onchange="change()">
<option selected>choose</option><option>Yahoo</option><option>Goo</option>
</select><br>
<select onchange="change()">
<option selected>choose</option><option>Google</option><option>Lycos</option>
</select><br>
<textarea style="width: 200px; height: 100px" rows="10" cols="40">
</textarea><br>
<input type="button" value="GO!" onclick="jump()">
</p></form></body></html>

そしたらこんなのになっちゃって、勿論動作しなくなってしまって。
皆様から見ると物凄くばかな間違いをしているでしょうから
凄く恥ずかしいのですが、どうか指導してやってください。
それでは、過去ログでどこか良い初心者向けページ探してきます・・・
486Name_Not_Found:2001/07/23(月) 21:54
>>485

あー、...elements[0]とか...elements[1]とかゆーのは、
「このフォームの何番目の部品」という意味ですから、select
を増やしたらそれに応じて番号を調整してくださいねー。
487Name_Not_Found:2001/07/23(月) 22:22
>>484
textareaもinput type="text"と同じくdisabled属性を指定しておけば書き込み
不可にできます。しかしおんなじのを2組とか3組とかにすると、elements[]の
番号では指定が苦しいですよね。idを使うように直して見ました。

<html><head><title>???</title>
<script type="text/javascript">
var mesg = [['やふーだ', 'ぐーだよ'], ['ぐーぐる', 'いんふぉしーく']];
var dest = [['http://www.yahoo.co.jp/', 'http://www.goo.ne.jp/'],
['http://www.google.co.jp/', 'http://www.infoseek.co.jp/']];
function change(i) {
var sel = document.getElementById('s'+i);
var txt = document.getElementById('t'+i);
txt.value = mesg[i][sel.selectedIndex];
}
function jump(i) {
var sel = document.getElementById('s'+i);
location.href = dest[i][sel.selectedIndex];
}
</script>
</head><body><form action="#">
<p><select id='s0' onchange="change(0)">
<option>Yahoo</option><option>Goo</option></select><br>
<textarea id='t0' disabled style="width: 200px; height: 50px"
rows="2" cols="30"></textarea><br>
<input type="button" value="GO!" onclick="jump(0)"></p>
<p><select id='s1' onchange="change(1)">
<option>Google</option><option>Infoseek</option></select><br>
<textarea id='t1' disabled style="width: 200px; height: 50px"
rows="2" cols="30"></textarea><br>
<input type="button" value="GO!" onclick="jump(1)"></p>
</form></body></html>
488Name_Not_Found:2001/07/23(月) 23:17
>>483
なるほどねー(w しかしこういうのはDOMでは難しい。画像をベタに描いて
いるんじゃないですからねー。作っては見ましたが…N6/MozillaとIE5.5。

t.html:
<html><head><title>???</title></head>
<frameset title="main" cols="200,*">
<frame title="left" src="t1.html">
<frame title="right" src="t2.html">
</frameset>
</html>

t1.html:
<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 0px; width: 200px; height: 100px;
border-width: 4px; border-color: blue; border-style: ridge }
div.fix { position: absolute; top: 110px; left: 100px;
width: 40px; height: 20px; background-color: white }
</style>
<script type="text/javascript">
var a = new Array(10), epos = 100, dx, count;
function init() {
a[0] = document.getElementById('fx');
for(var i = 1; i < 10; ++i) {
a[i] = a[0].cloneNode(true); a[i].style.visibility = 'hidden';
document.getElementById('b1').appendChild(a[i]);
}
for(var i = 0; i < 3; ++i) {
document.getElementById('d'+i).style.left = (i*200)+'px';
}
}
function move(d) { dx = d/10; count = 10; step(); }
function step() {
var x = a[9]; for(var i = 9; i > 0; --i) a[i] = a[i-1]; a[0] = x;
for(var i = 0; i < 10; ++i) a[i].style.zIndex = 20-i;
a[0].style.visibility = 'visible'; a[0].style.left = (epos += dx) + 'px';
window.scrollBy(dx, 0);
if(--count > 0) {
setTimeout(step, 50);
} else {
for(var i = 1; i < 10; ++i) a[i].style.visibility = 'hidden';
}
}
</script>
</head><body id="b1" onload="init()">
<div class="fix" id="fx">Fixed</div>
<div id="d0"><h1>0</h1></div>
<div id="d1"><h1>1</h1></div>
<div id="d2"><h1>2</h1></div>
</body></html>

t2.html:
<html><head><title>???</title></head><body>
<p><a href="javascript: top.frames[0].move(-200)">left</a>|
<a href="javascript: top.frames[0].move(+200)">right</a></p>
</body></html>
489Name_Not_Found:2001/07/23(月) 23:22
>>482

> javascriptの変数をperlに渡すことはできますか?

えーと、Perlで書かれたCGIプログラムに渡すんですよね?
でしたら、たとえば変数xだったら

location.href = 'CGIのURI?value=' + x;

とかすれば、呼び出されたCGIでは変数「value」の値としてx
の値が取れると思いますが…
490( ´Д`):2001/07/23(月) 23:44
最近は繁盛してるなぁ。出番がない(w
491Name_Not_Found:2001/07/24(火) 00:20
↓のタグで target="_blank" や target="_top" の効果を出す方法を教えてください。
既出だったらすみません。

<form>
<input type="button" value="2ちゃんねる" onClick="location.href='http://www.2ch.net/';return false;">
</form>
492Name_Not_Found:2001/07/24(火) 00:46
何をしたいんだ
JavaScriptに頼るのが正しいとは限らない
HTMLが標準で用意してる機能を使え

<form action="http://www.2ch.net/" target="_top">
<input type="button" value="2ちゃんねる">
</form>

FORMを送る前になにかしたいのであれば
適宜onClick="hogehoge();return false;"を入れて
function hogehoge(){
〜処理〜
document.form[0].submit();
}
493Name_Not_Found:2001/07/24(火) 06:47
>>491
「_top」だったら「top.location.href = '...'」じゃないすか。
「_blank」は新しい窓を開くんだから「window.open('...', '_blank');」
でしょうかね。
494491:2001/07/24(火) 08:13
レスありがとうございます。
>>493
ついでにもうひとつ。
フレーム表示で、フレームにたとえば name="main" と名前をつけたときに
target="main" にするにはどうしたらよいのでしょう?
495491:2001/07/24(火) 09:43
>>492

当然
<form action="http://www.2ch.net/" target="_top">
<input type="button" value="2ちゃんねる">
</form>
も使用しています。
しかし、これだとformをいくつか並べると改行されたりして一行で収まらないんですね。
レイアウト、デザインの問題ですが。
496Name_Not_Found:2001/07/24(火) 10:15
489さんありがとうございます。
助かりました。
497Name_Not_Found:2001/07/24(火) 10:49
>>494
そのフレームmainが大元のHTMLファイルで定義されている
ものとしてよいですね?

top.frames.main.location.href = '...';
498491:2001/07/24(火) 12:52
>>495
window.open('...', 'main');
で試してみたらできました。

>>497
ありがとうございます。
試してみます。↑とどちらがよいでしょうか。
499Name_Not_Found:2001/07/24(火) 13:04
>>498
なるほど、フレームであってもwindow.open()でもいいのですね。
だったら、どちらでも好きな方でいいんではないでしょうか。
500491:2001/07/24(火) 13:51
499さん、アドバイスありがとうございました。
501Name_Not_Found:2001/07/24(火) 14:10
document.form.ここ.value
「ここ」の名前を変数で制御したいのですが、
どうすればよいのでしょうか?
502Name_Not_Found:2001/07/24(火) 14:14
>>501
JavaScriptでは「オブジェクト.名前」は「オブジェクト['名前']」
と等価です。従って、たとえば変数xで制御したければ

document.forms[x].value

こうなりますね。あと、formじゃなくformsですんでよろしく。
503Name_Not_Found:2001/07/24(火) 14:30
>>502
ありがとうございます。
センキュー。
5045a:2001/07/24(火) 14:51
http://www.microsoft.com/japan/ms.htm
マイクロソフトなんかの一番上の「サイトマップ」等の
プルダウンメニューっぽいヤツってJavaScriptですか。
そしてどうしたらあんなことが出来ますか。
505Name_Not_Found:2001/07/24(火) 15:06
>>502
すみません、formsってなんですか?
そこは自分で決めたフォーム名を入れるのではないのですか?
506Name_Not_Found:2001/07/24(火) 15:18
>>502
わかりました。
お騒がせしてすみません。
507Name_Not_Found:2001/07/24(火) 15:26
>>504
JavaScriptっぽいですね。そのテの質問、このスレの前の方で
出ていたかと。要約すると、各メニューはposition: absolute
で位置指定した要素で、最初はvisibilityを'hidden'にしといて、
メニューボタンとこにonmouseoverイベントハンドラつけといて、
マウスが上へ来たら対応するメニューを'visible'に変更するとか、
そんな感じでできるんじゃない。
508Name_Not_Found:2001/07/24(火) 20:34
this の使い方を教えてください
509Name_Not_Found:2001/07/24(火) 20:57
>>508
thisは、メソッドの中からそのメソッドが張り付いているオブジェクトを参照する
のに使います。だけじゃ分かりにくいですね。たとえば、画面上でいろいろなもの
を動かすのに、オブジェクトを利用するものとします。このオブジェクトを仮に
Plateオブジェクトとして、new Plate(id, x, y)で作り出すものとします。
なお、HTML側では動かすものはposition: absolute指定でidも指定しておくもの
としましょう。

function Plate(id, x, y) {
__this.elem = document.getElementById(id); this.xpos = x; this.ypos = y;
__this.elem.style.left = x+'px'; this.elem.style.top = y+'px';
__this.moveBy = function(dx, dy) {
____this.elem.style.left = (this.xpos += dx)+'px';
____this.elem.style.top = (this.ypos += dy)+'px'; }
}

これでたとえば次のようにして使えるわけです。

var myimg = new Plate('i1', 100, 100);
...
myimg.moveBy(3, -5);
...

このように、オブジェクトのメソッドやコンストラクタを書くときには、その
オブジェクト自身を参照するためにthisを一杯使うわけです。おわかりかな。
510Name_Not_Found:2001/07/25(水) 00:24
>>509
そっけない質問にもかかわらず、わかりやすい説明ありがとうございます。
511504:2001/07/25(水) 09:48
>>507
ド素人なもので、よく分からず申し訳ありません。で、今、ログを
ツラツラっと探してみたんですけど、どれのことか分からなーいデス。
「JavaScript の質問用スレッド vol.2」の627-628のコトでしょうか。
vbスクリプトって何ですか。もしかして私、逝った方が良いですか?
512504:2001/07/25(水) 09:52
てか、良ければこういう過去ログの627-628みたいなのに
ここでリンクを貼る方法を教えて下さい。
スレor板違いですが…。
513夏厨:2001/07/25(水) 09:55
面倒だからりんくだけ、こうやればい〜の。>>511-512
514504:2001/07/25(水) 10:41
あ、じゃなくて、「過去ログの」>>511-513とか。
515cambo:2001/07/25(水) 10:55
現在、ページを開いている状態で、画像表示位置を固定してJPEG2000画像が
順番に次々と表示させることができるように試行錯誤を繰り返しております。
しかし、JPEG2000画像をホームページ上で表示させるにはPLUG-INが
必要となるため<EMBED>タグを用いる必要があります。
<EMBED>は<IMG>と同等にうまく扱えないようで困っております…。
どなたか何かよい解決方法を教えて頂けないでしょうか?
よろしくお願い致します。
いただけないでしょうか
516夏厨:2001/07/25(水) 11:00
>>504
過去ログのURLのうしろにこんな風に付けて。倉庫入りのはHTML化してるから無理だよ。
&st=511&to=513&nofirst=true
例)
http://natto.2ch.net/test/read.cgi?bbs=hp&key=987484510&st=511&to=513&nofirst=true
517504:2001/07/25(水) 11:10
>>516さま
あ、ホントだ。ありがとー。
518Name_Not_Found:2001/07/25(水) 11:47
あがげ
519Name_Not_Found:2001/07/25(水) 13:15
>>511
VBScriptっていうのはMSが出しているJavaScriptの対抗馬です。
それはさておき、結局サンプルを作ってみました。メニューの中
をリンクにするとか、N4で動くようにするとか、そのあたりは適当
に直してくださいねー。(分からなければ聞いてください。)

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; background-color: white }
div { border-width: 4px; border-style: ridge; border-color: blue }
body { margin-top: 70px }
div#b0 { top:20px; left:20px; width:90px; height:30px }
div#m0 { top:50px; left:20px; width:200px; height:120px; visibility:hidden }
div#b1 { top:20px; left:120px; width:90px; height:30px }
div#m1 { top:50px; left:120px; width:200px; height:120px; visibility:hidden }
</style>
<script type="text/javascript">
function pop(i) {
document.getElementById('m'+i).style.visibility = 'visible';
}
function unpop(i) {
document.getElementById('m'+i).style.visibility = 'hidden';
}
</script>
</head><body>
<div id="b0" onmouseover="pop(0)" onmouseout="unpop(0)">File</div>
<div id="b1" onmouseover="pop(1)" onmouseout="unpop(1)">Edit</div>
<div id="m0" onmouseover="pop(0)" onmouseout="unpop(0)"><table>
<tr><th>aaa</th></tr><tr><th>bbb</th></tr><tr><th>ccc</th></tr>
</table></div>
<div id="m1" onmouseover="pop(1)" onmouseout="unpop(1)"><table>
<tr><th>aaa</th></tr><tr><th>bbb</th></tr><tr><th>ccc</th></tr>
</table></div>
<h1>This is a pen...</h1>
</body></html>
520511:2001/07/25(水) 13:23
>>519
うわ。カッコイイ!
ほんとありがとうございますー。
適当にイジってみて、分からなかったらまた質問します。
あと、これはVBスクリプトじゃないですよね?
521Name_Not_Found:2001/07/25(水) 13:23
>>515
質問されている点がよく分からないのですが、つまり
<embed ...>で画像を切り替えて行く方法ということ?
それはそのプラグインのドキュメントを調べるべきでし
ょう。<embed ...>を沢山並べて切り替えるっていうのは
見るからに恐ろしそうです。しかし画像をPNGとかにすれ
ば普通に取り扱えるんですよね。JPEG2000でないと駄目な
理由ってどういうことでしょう?後学のため教えてください。
522デブキン世U世大尉:2001/07/25(水) 13:26
⇔■⇔■⇔■⇔■⇔■⇔■⇔■⇔■⇔■⇔■⇔■
>>1-2000
板違い。真性厨房板に逝け。
http://www.dragoncity.ne.jp/~l705/v/index2.html
523Name_Not_Found:2001/07/25(水) 13:44
>>520
ご安心ください。これはJavaScriptです。私はVBScript書けません。
524cambo:2001/07/25(水) 13:58
>>521
jpegやpng等の場合ならhtmlでは<image src=sample1.j2k name="test">
とし、java script内で document.test.src = sample2.j2k とすれば
画像を変更できるのですが、TAGをembedに変更して
<embed src=sample1.j2k name="test"> とすると
画像を変更することはできなくなりました。
これはやはりembedTAGの影響と思うのですが、
何とかこの状況を打破できるような方法を模索しております。
displayでnone,blockの切り替えで一応表示変換できるようにはなったのですが
この方法だとページが最初にLoadされた時に、すべてのファイルを
読み込んでおく必要があるのでページの表示が遅くなってしまいます。
こういった理由もあり一定時間間隔で画像を更新できるように src=… を
変更したいと考えております。

JPEG2000を採用する理由ですが、機能性から今後利用機会が多くなることが
予想されるため、現在試行しているところです。

簡単ではありますが、ご回答させて頂きます、
ご検討して頂ければ幸いです。よろしくお願い致します。
525Name_Not_Found:2001/07/25(水) 14:04
>>524
embedはその場所に表示を行なうための別のプログラムを埋め込んで
動かしますから、ブラウザ自体の表示能力を使う<img>に比べると
色々不自由です。で、そのembed用のプラグインがシステムに入れて
あると思うのですが、そのドキュメントを探しましょう。たぶん、

document.plugins[0].メソッド(パラメタ…);

みたいな呼び出しを使って画像を取り換えられるだろうと想像します。
とにかくプラグインの機能についてはそのプラグインのドキュメント
を見ない限り分かりません。あと、そのプラグインを持っていない
システムでは表示できないということもお忘れなく。だからPNGを使う
方が何かといいと思うけどなあ…(でも画像についてはよく知らない)。
526cambo:2001/07/25(水) 14:21
PLUG-INは現在「Netscape & Internet Explorer Plug-in for JPEG2000」
というものを用いております。
これは窓の杜等にあり、簡単に検索できると思います。
(すいません。直リンクはOKかどうか分からないため控えさせて頂きます)

当方、まだまだ初心者のため
>document.plugins[0].メソッド(パラメタ…);
について、具体的に教えて頂けないでしょうか?

PLUG-INの普及に関してはご指摘の通りです。
ご指摘ありがとうございます。
527Name_Not_Found:2001/07/25(水) 14:35
>>526
なるほど、窓の杜は見ました。ヨサゲですが、残念ながら
私はUnix使いなのでダウンロードして使うことはできません。
ドキュメントだけどっかにないか探して見ましたが、見つけ
られませんでした。誰かドキュメント読める人探してみて!
528cambo:2001/07/25(水) 14:49
>>527
これがご指摘のドキュメントに当たるのかどうかわかりませんが
長くなるので一部を転載いたします。(十分長い… (^.^;) )

1.動作環境

Win32 API が利用できる環境(Windows Me/Windows 2000/Windows98/Windows95/WindowsNT)
このうち、(Windows 2000/WindowsNT)は現在不可です。
当然ですが、ブラウザインストールが必要です。

2.使用方法

他のプラグインと大体同じ扱い方です。
IE4,5では、
「C:\Program Files\Internet Explorer\PLUGINS」
「C:\Program Files\Plus!\Microsoft Internet\PLUGINS」
Netscape 6では、
「C:\Program Files\Netscape\Netscape 6\Plugins」
に入れればよいはずです。
場所が多少違っても大体同じようなところに入れれば動作すると思います。

特殊な環境でテンプラリフォルダが違う場合は
レジストリファイルを使ってください。
デフォルトは「C:\WINDOWS\TEMP」(Windows Me,98,95)
または、「C:\TEMP」(Windows 2000,NT)です。
うっかり間違ってレジストリファイルを登録した場合は
Windows Me,98,95では、「win9xdef.reg」
Windows 2000,NTでは、「winntdef.reg」
を上書き登録するか、またはレジストリエディタで
「HKEY_LOCAL_MACHINE\Software\Am\npj2kplg」
を削除してください。

Netscapeのローカルオープンに対応したい場合、EMBEDタグに「TYPE="image/j2k"」
を追加してください。
529Name_Not_Found:2001/07/25(水) 14:55
>>528
うーん、これを見る限り、JavaScriptからプラグインの機能を呼び出す
方法については書かれていないようですね、残念ながら。
530cambo:2001/07/25(水) 15:08
>>529
残念ながらそのような記載は見つかりませんでした。

それから、内容のよく似たページを見つけました。
解決にまでは至ってませんが、ご参考になれば…。
http://web11.freecom.ne.jp/~chaichan/qanda/qa791.htm
531Name_Not_Found:2001/07/25(水) 15:10
>>529
希望とはやや違うかも知れませんが、JavaScriptで
窓を新たに開き、そこに<embed ...>を書き込む方法
なら、最初に全部読み込まずに順番に画像を表示して
行けると思いますがどうでしょう。窓が別なのが嫌な
ら、フレームにすることもできますね。
532cambo:2001/07/25(水) 15:21
>>531
そうですねぇ。frameが別になるというのは実は私も考えました。
この場合は、このframeのみ全体をreloadする形になるんでしょうか?

でも、やはり同じwindoow内で行いたいですねぇ。
何かよい方法はないでしょうか?(わがまま言ってすいません… m(_ _)m )
533Name_Not_Found:2001/07/25(水) 15:35
>>532
画像を最初に全部読まないようにして、なおかつ窓を
分けないとすると、プラグイン固有の機能を調べて使う
ことになりますが、プラグインのドキュメントにそれが
書いてないとすると、外部からそのような機能が呼べる
ように作ってないのかも知れませんね…いちお、フレーム
に分ける奴を作って見ました。t1.htmlは最初は何でもよい
です。画像ファイル名を配列に入れておき、順番に表示でき
るようにしました。ここでは<img>を使ってますが、当然、
<embed ...>になるように書き換えてくださいね。

t.html:
<html><head><title>???</title></head>
<frameset title="main" cols="200,*">
<frame title="left" src="t1.html">
<frame title="right" src="t2.html">
</frameset></html>

t2.html:
<html><head><title>???</title>
<script type="text/javascript">
var doc = top.frames[0].document, cur = 0, arr = ['test.png', 'test1.png'];
function move(i) {
cur += i;
if(cur < 0) cur = 0;
if(cur >= arr.length) cur = arr.length - 1;
doc.open(); doc.writeln('<img src="' + arr[cur] + '">'); doc.close();
}
</script>
</head><body>
<p><a href="javascript: move(-1)">prev</a>|
<a href="javascript: move(+1)">next</a></p>
</body></html>
534cambo:2001/07/25(水) 15:48
>>533
ありがとうございます。
参考にさせて頂きます。

また、クドイようで申し訳ありませんが
同じwindowでの表示更新について
何か良い解決策等思い当たりましたら
教えて頂ければ幸いです。
535初心者:2001/07/25(水) 16:15
すいませんが
<DIV></DIV>の中に<IFRAME></IFRAME>を入れると
IDP.My.LocationはNullまたはオブジェクトでは
ありません。というエラーが出るのですが
どうしてでしょうか?
536Name_Not_Found:2001/07/25(水) 18:05
<td></td>でくくれば
537Name_Not_Found:2001/07/25(水) 20:10
>>535
よく分からない質問ですね。そのエラー、JavaScriptコードから出て
いるんでしょ?ソース出してみてよ。

>>536
そんないい加減な...
538Name_Not_Found:2001/07/25(水) 20:12
<●´ー`●><●`ー´●></●´ー`●>
合ってる?
539Name_Not_Found:2001/07/25(水) 20:37
>>534
考えてみたら、フレームにしなくても適当な要素のinnerHTMLプロパティ
に書き込むことで<img>でも<embed>でも解釈させられそうですね。
innerHTMLって強力すぎてあんまり好きじゃないですが。また、N4は
まったく除外になってしまいますけどね。

<html><head><title>???</title>
<script type="text/javascript">
var cur = 0, arr = ['test.png', 'test1.png'];
function move(i) {
cur += i;
if(cur < 0) cur = 0;
if(cur >= arr.length) cur = arr.length - 1;
document.getElementById('d1').innerHTML = '<img src="' + arr[cur] + '">';
}
</script>
</head><body>
<div id="d1"><img src="test.png"></div>
<p><a href="javascript: move(-1)">prev</a>|
<a href="javascript: move(+1)">next</a></p>
</body></html>
540474:2001/07/25(水) 22:59
>>488
返事遅くてすいませんでした。
なんかここ最近スレの書き込みが多かったので見逃してました。すいません。
とりあえず今からやってみます。
さんきゅーです。
てゆうか、全然レスがないから怒ってます・・・?
ごめんなさいー
541Name_Not_Found:2001/07/25(水) 23:00
>>538
真ん中は
<●`ー´● />
だ。
542Name_Not_Found:2001/07/25(水) 23:42
var xml = new ActiveXObject("Microsoft.XMLDom");
こんな風にHTMLドキュメントからXMLにアクセスして操作しますけど、
N6でやる方法はありますか?教えてください
543Name_Not_Found:2001/07/26(木) 01:19
navigator.vbs=false;
execScript('navigator.vbs=true\nfunction vbFileExists(src)\non error resume next\nLoadPicture src\n
if(Err.Number=481)or(Err.Number=70)or(Err.Number=0)then\nvbFileExists=true\nelse\nvbFileExists=false\nend if\nErr.Clear\nend function','vbs');

function FileExists(s){
if(navigator.vbs){return vbFileExists(s);}
}

alert(FileExists('C:\\WINDOWS\\SYSTEM\\SAGE.DLL'));
こんな感じでローカルファイルの存在をチェックできちゃうんだけど、
いいのか?(IE4.0以降)
544うぉとっとっと夏だぜ!:2001/07/26(木) 03:28
http://www.dhtmlcentral.com/script/script16_demo.html
すいません、このscriptこれ以上短縮できないでしょうか?
相当格好いいのですが、多すぎてどれがどれだかわからないです。
545Name_Not_Found:2001/07/26(木) 07:48
困ったなー、普段使っているマシンから2ちゃんねるに書き込めなく
なったぞ...「すれ立てすぎ規制」は知っているけど「書き込みすぎ
規制」なんてあるの?

>>540
自分のペースでやればいいんではないでしょうか。
>>542
うーん、N6だとまずXML文書をどっかの窓に読み込んで、その
documentオブジェクトを参照するんでしょうかね?
>>543
VBScriptは知らないんだけど、やっぱり存在をチェックできるのは
まずいですよね。新たなセキュリティホールなんでしょうか?
>>544
機能がだいぶ多いですからね。自分が使いたい機能に絞って質問され
てはどうでしょうか?
546cambo:2001/07/26(木) 09:21
>>539
ありがとうございます!
innerHTMLなんて知りませんでした。
勉強します…。(^-^;)
でも、お蔭様でこれで何とかできそうです。
ありがとうございました。
547Name_Not_Found:2001/07/26(木) 09:49
>>545
>N6だとまずXML文書をどっかの窓に読み込んで、その
>documentオブジェクトを参照するんでしょうかね?
これはどうやってやればいいんでしょうか。
具体的に教えてもらうと嬉しいんですが...
548Name_Not_Found:2001/07/26(木) 10:26
タブの上にマウスを持っていくと、
ページのメニューを切り替えられるようにしたのですが、
これだと、メニューが増えるたびにonmouseoveが大きくなってしまい、拡張性が悪いように思います。
もう少しスマートなソースで同じ動作をさせることは出来ないでしょうか?

ちなみにブラウザはIEのみを考えています。

<Html>
<Head><Title>Sample</Title>

<script language="JavaScript">
<!--
function showlay(layerid)
{
document.all(layerid).style.visibility="visible";
}

function hiddenlay(layerid)
{

document.all(layerid).style.visibility="hidden"
}
//-->
</script>

<style type="text/css">
<!--
.place{position:absolute}
#ex1{left:10px;top:33px;width:auto;height:auto;background-color:red;visibility=visible}
#ex2{left:10px;top:33px;width:auto;height:auto;background-color:blue;visibility=hidden}
#ex3{left:10px;top:33px;width:auto;height:auto;background-color:yellow;visibility=hidden}

#red{background-color:red;margin-left:0px}
#blue{background-color:blue;margin-left:0px}
#yellow{background-color:yellow;left-margin:0px}
// -->
</style>
</Head>
<Body bgcolor="#ffffff">

<a id="red" onmouseover="showlay('ex1'),hiddenlay('ex2'),hiddenlay('ex3')">menu1</a>
<a id="blue" onmouseover="showlay('ex2'),hiddenlay('ex1'),hiddenlay('ex3')">menu2</a>
<a id="yellow" onmouseover="showlay('ex3'),hiddenlay('ex1'),hiddenlay('ex2')">menu3</a>

<div class="place" id="ex1"><H1>menu1</H1></div>
<div class="place" id="ex2"><H1>menu2</H1></div>
<div class="place" id="ex3"><H1>menu3</H1></div>
</Body>
</Html>
549544:2001/07/26(木) 10:31
>>545
そうですねぇ、まずはあのレイヤーウインドウ
をひとつに絞らないと駄目っすね。
550Name_Not_Found:2001/07/26(木) 11:53
>>548
やっぱり、面を配列に入れて「選ばれた面は表示、それ
以外は非表示」というのをループで回すんじゃないですか?

<html><head><title>???</title>
<style type="text/css">
body { background-color:white }
div { position:absolute; left:10px; top:33px; width:auto;
height:auto; visibility:hidden }
#ex0 { background-color:red; visibility: visible }
#ex1 { background-color:blue }
#ex2 { background-color:yellow }
#red { background-color:red; margin-left:0px }
#blue { background-color:blue; margin-left:0px }
#yellow { background-color:yellow; margin-left:0px }
</style>
<script type="text/javascript">
var elts = new Array(), count = 3;
function init() {
for(var i = 0; i < count; ++i) elts.push(document.getElementById('ex'+i));
}
function showlay(x) {
for(var i = 0; i < count; ++i)
elts[i].style.visibility = (x == i) ? 'visible' : 'hidden';
}
</script>
</head><body onload="init()">
<p>
<a id="red" onmouseover="showlay(0)">menu1</a>
<a id="blue" onmouseover="showlay(1)">menu2</a>
<a id="yellow" onmouseover="showlay(2)">menu3</a></p>
<div class="place" id="ex0"><h1>menu1</h1></div>
<div class="place" id="ex1"><h1>menu2</h1></div>
<div class="place" id="ex2"><h1>menu3</h1></div>
</body>
</html>
551Name_Not_Found:2001/07/26(木) 11:59
>>547
作ってみました。まずloadで読み込ませ、showで表示させます。N6専用。

<html><head><title>???</title>
<script type="text/javascript">
var win, pre;
function load() { win = window.open('t1.xml', '_blank'); }
function puts(s) { pre.childNodes[0].appendData(s + '\n'); }
function show() { pre = document.getElementById('p1'); show1(win.document); }
function show1(n) {
puts('<' + n.nodeName + '>');
if(n.nodeType == 3) puts(n.nodeValue);
var a = n.childNodes;
for(var i = 0; i < a.length; ++i) show1(a[i]);
puts('</' + n.nodeName + '>');
}
</script>
</head><body>
<p><a href="javascript: load()">load</a>|
<a href="javascript: show()">show</a></p>
<pre id="p1">
result...
</pre>
</body></html>
552Name_Not_Found:2001/07/26(木) 12:01
>>551
それのテストデータt1.xml:
<?xml version="1.0" encoding="iso-2022-jp"?>
<list>
<test>これはテストです。</test>
<test>これもテストです。</test>
</list>
結果はこんな感じ:
result...
<#document>
<#text>

</#text>
<list>
<#text>

</#text>
<test>
<#text>
これはテストです。
</#text>
</test>
<#text>

</#text>
<test>
<#text>
これもテストです。
</#text>
</test>
<#text>

</#text>
</list>
</#document>
553Name_Not_Found:2001/07/26(木) 12:47
NNって、cursor:handのように
マウスカーソルの形を変えることはできないんでしょうか?
554Name_Not_Found:2001/07/26(木) 13:18
>>553
N6/Mozillaではできますよ。N4は対応してないようですね。
そもそもこれってCSSの話題じゃないのかな…ま、実行時に
変更したければ「ノード.style.cursor」に指定を書き込めば
よいです。それならJavaScriptの話題ではある…

あと、そもそもhandっていうのはMSIE固有の名前みたいで、
CSS2ではauto crosshair default pointer move x-resize
text wait help url("ファイル") これだけが規定されて
いますね。url(...)はN6でもIEでもうまく行かないな…
555548:2001/07/26(木) 15:29
>>550
なるほど、配列を使うんですか
それは思いつきませんでした、どうもありがとうございます。
参考にさせていただいて、やってみたいと思います。
556Name_Not_Found:2001/07/26(木) 19:19
javaで見積ページを作りたいのですが、
以下のスクリプトで、if (f.あ.checked) のあ部分が日本語だと
エラーが起きてしまいます。日本語でも行ける方法はあるでしょうか?
素人ですので、分かりません。宜しくお願いいたします。
<script language="JavaScript">
<!-- Beginning of JavaScript
function sumup(f) {

var gokei = 0;
if (f.あ.checked) {

if (f.い.value != "") {

gokei += f.data10.value * f.う.value;

}


}
if (gokei > 0){

var tax = (gokei) * 0.05
f.gokei.value = gokei;
f.tax.value = tax;
f.total.value = gokei + tax;

}else{

tax = "";
f.gokei.value = "";
f.tax.value = "";
f.total.value = "";

}

}
// End of JavaScript -->
</script>
557Name_Not_Found:2001/07/26(木) 19:27
>>556
f['あ'].checked 等とすればいいのかも。
558Name_Not_Found:2001/07/26(木) 19:38
>>557
ご返答有り難うございます。識別子が必要と出ました。
宜しくお願いいたします。
559Name_Not_Found:2001/07/26(木) 20:28
>>558
おかしい! 'あ' のように「''」で囲んでありますか?
エラーの時はエラーの行番号が表示されるはずなので、
その行だけ張り付けてみてください。
560Name_Not_Found:2001/07/26(木) 20:50
..559
if (f.["あ"].checked) {
です。お願いします。
561Name_Not_Found:2001/07/26(木) 21:52
>>560
ほらほら! 「f.["あ"]」じゃなく「f["あ"]」ですよ。「.」が多い。

JavaScriptでは一般にo.xとo['x']が同等です。「.」が「[]」
になると思ってください。
562Name_Not_Found:2001/07/26(木) 21:56
>>551
if(n.nodeType == 3) puts(n.nodeValue);
これは何でしょうか?

やっぱりネスケではこのように新しい窓を開いてやらないといけないのか...
IEみたいに簡単にやる方法は今んところないんですかねぇ
563Name_Not_Found:2001/07/26(木) 22:05
>>562
それは「ノード種別がテキストノードだったらそのテキストを
表示する」という意味でそうやってます。ここはロードされた
XMLをたどってみてるだけですから、それぞれの人の必要に応
じて違う処理をするんでしょう。

そうですねえ、今のところこれしか知りません。新しい窓を開
く代わりにiframeにロードしたりobjectにロードしてもいい
かなと思ったのですが、iframe要素やobject要素から中の
ドキュメントツリーにアクセスする方法がよく分りません。誰か
知ってる方いたら教えてください。
564Name_Not_Found:2001/07/27(金) 00:19
背景色を徐々に変化させたいんですが、
白⇒黒とかじゃなくて
白⇒3D#c0c0c0などの任意の色で
変化させるにはどうすればよいでしょうか。
565質問太郎:2001/07/27(金) 01:51
あのー。
JScriptで
"1" と "2" をくっつけて "12"という変数にしたい場合は
どのようにすればいいのでしょうか???
どなたか、伝授でしてください!!
566質問太郎:2001/07/27(金) 01:53
>>564
3D??
567564:2001/07/27(金) 02:12
>>566
あ、間違いました
コピぺだったもので。
以外とムズいと思うんですけど。。
568Name_Not_Found:2001/07/27(金) 02:19
>>554さん

すみません。もうちょっと教えて下さい。
NN6では、具体的にどう書けばいいのでしょうか?
自分は単純に

<img src="test.gif" style="cursor:hand">

のような書き方をしているのですが、
カーソルを乗せても変化しません…。
569ラクラブ(久しぶり):2001/07/27(金) 03:12
>>565
文字列を数値に変換するには
Number()、parseFloat()、parseInt()、eval()など、
数値を文字列に変換するにはString()などを用います。
また、数値にするには0を引く、文字列にするには "" を足すという方法もあります。
xx = "123"; xx -= 0; → xxは数値変数になる
xx = 123; xx += ""; → xxは文字列変数になる
570564:2001/07/27(金) 05:23
自己解決しました
お騒がせしました
571Name_Not_Found:2001/07/27(金) 07:10
>>568
あー、ですからー、「hand」はIE独自の指定なのでN6にはありません。
と思います。

たとえば「wait」とか「crosshair」とか「help」とかにして試して
ください。それで動けば、要するに「hand」が標準じゃないからダメと
いうだけのことですね。やっぱり、JavaScriptと関係ない…
572Name_Not_Found:2001/07/27(金) 07:12
>>570
自己解決したときも概要を出しませんか〜。
573564:2001/07/27(金) 07:56
>>572
もちろんそう思ったんですが、
インターネット上で見つけたので
知らない人の書いたソースを勝手にコピペはさすがにまずいし、
概要を書けるほどスキルないし、
ブックマークしてなかったのでそのHPも再現が難しく(めんどくさく)
なってしまい、まいっか、となってしまいました。

このスレ的にオッケーだったら、コピペします。
574Name_Not_Found:2001/07/27(金) 08:43
>>573
なるほど、まあ大変ならわざわざそこまでしなくても
いいと思いますよ。色の連続変化ですが、RGB三色を(r0,g0,b0)
から(r1,g1,b1)まで変化させるとして、それを表すのに変数tを
0.0から1.0まで適当なきざみで変化させて、

r = (1-t)*r0 + t*r1

等で中間の(r,g,b)値を計算し、それを#xxxxxx形式にするのは

rs = Math.floor(r).toString(16);
if(rs.length() < 2) r = '0' + r;

等で16進文字列2桁にして、'#'+rs+rg+rb とすればいい、とか
でしょうかね。たとえばですが。もっとも、16進にするのが面倒な
ので、style指定にするのなら「rgb(r,g,b)」形式でいいから

'rgb(' + Math.floor(r) + ',' + Math.floor(g) +
+ ',' + Math.floor(b) + ')'

とかの方が楽かな。
575564:2001/07/27(金) 10:56
>>574
なんかそんな感じです。
各色ごとにスタート値とゴール値の差をとって、
それを適当な数値で割って、
割った値だけスタート値に足していく、
ですね。
576Name_Not_Found:2001/07/27(金) 12:44
探しにきたらすぐあるものですねー。
>>519みたいなのをN4で出来ないのでしょうか。
577568:2001/07/27(金) 13:47
>>571さん

ありがとうございました。
IEのhandはNN6のpointerに相当するんですね。
JavaScript外の質問ですみませんでした。
578Name_Not_Found:2001/07/27(金) 15:30
>>576
いや、N4でもできますよ。getElementById()がないとか、
styleがないとかはごまかせば何とでもなります。問題は、
N4だとonmouseover/onmouseoutが「リンクにしか働かない」
ことです。これに対処するには、メニューボタンやメニュー
本体を全部画像で作って、それをリンクの中に入れてくだ
さい。背景も枠も取っちゃって全部画像にするのがよいです。
世の中の類似品もみんなメニューが画像でしょ?

とりあえず、>>519 を途中まで対応したものを次に挙げます。
N4だとメニューが出るけどメニュー側のonmouseoverが働か
ないので選ぼうとしたとたんに消えてしまいます。画像に
して画像を<a onmouseover=... onmouseout=...>...</a>
の中に入れれば動くと思いますよ。
579Name_Not_Found:2001/07/27(金) 15:31
>>578
<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 0px; left: 0px; background-color: white }
div { border-width: 4px; border-style: ridge; border-color: blue }
body { margin-top: 70px }
#b0 { top:20px; left:20px; width:90px; height:30px }
#m0 { top:40px; left:20px; width:200px; height:120px; visibility:hidden }
#b1 { top:20px; left:120px; width:90px; height:30px }
#m1 { top:40px; left:120px; width:200px; height:120px; visibility:hidden }
</style>
<script type="text/javascript">
if(!document.getElementById) {
document.getElementById = function(i) {
var e = document[i]; e.style = e; return e;
}
}
function pop(i) {
document.getElementById('m'+i).style.visibility = 'visible';
}
function unpop(i) {
document.getElementById('m'+i).style.visibility = 'hidden';
}
</script>
</head><body>
<div id="b0"><a href="#" onmouseover="pop(0)" onmouseout="unpop(0)">
File</a></div>
<div id="b1"><a href="#" onmouseover="pop(1)" onmouseout="unpop(1)">
Edit</a></div>
<div id="m0"><table>
<tr><th>aaa</th></tr><tr><th>bbb</th></tr><tr><th>ccc</th></tr>
</table></div>
<div id="m1" onmouseover="pop(1)" onmouseout="unpop(1)"><table>
<tr><th>aaa</th></tr><tr><th>bbb</th></tr><tr><th>ccc</th></tr>
</table></div>
<h1>This is a pen...</h1>
</body></html>
580Name_Not_Found:2001/07/27(金) 18:25
縦にゆっくりスクロールするページを作らなきゃいけないのですが

function winScroll() {
for (j=0; j<100; j++){
for (i=0; i<10000; i++){
}
scrollBy(0,1);
}
}

とかだと、「このスクリプトが動作を重くしてます」とか言われて鬱です。
なんとか軽快にスクロールさせる方法はないでしょうか、、
あと、一番下までスクロールしたらfor文が止まるような仕組み
というのは無いのでしょうか、、
581Name_Not_Found:2001/07/27(金) 19:17
JavaScriptはじめて3日の超初心者ですが、
過去ログにあったものを流用して、外部ファイルの読みこみを利用して
画像をランダムで表示したいのですが、うまくいきません。

━外部ファイル━
var MaxImg=2
var ImgSrc=new Array();
ImgSrc[0]="<img src='img/img0.gif' class='rogo'>";
ImgSrc[1]="<img src='img/img1.gif' class='rogo'>";

function writeImg()
{
var num=Math.floor(Math.random()*MaxImg);
document.write(ImgSrc[num]);
}

━HTMLファイル━
<SCRIPT type="text/javascript" SRC="index.js">
<!--
writeImg();
//-->
</script>

何が違うのか教えて欲しいッス
582Name_Not_Found:2001/07/27(金) 21:12
>>580
普通はタイマー使うような気がするけど。

>>581
Src="**.js" って書いておいて、そのタグで挟んだコードって
実行されるの?なぞ。
583厨房:2001/07/27(金) 21:55
すいません。教えていただきたいことがあるのですが、

マウスカーソルを文字に乗せると違う所に画像が表示されて、
マウスオフするとなにも出ないというようにしたいんですが、

探してみると、何も出てない状態を、
白い画像を表示させること で表しているソースしか見つかりませんでした。

純粋に何も表示させない状態を作るのは不可能なんですかね?
もしよかったらアドバイスお願いします。m(_ _)m
584h++:2001/07/27(金) 22:02
>>581
<SCRIPT type="text/javascript" SRC="index.js">
<!--
この部分がまずいです。

<SCRIPT type="text/javascript" SRC="index.js"></SCRIPT>
横着せずにこれ書いて writeImg を呼び出して下さい。
585Name_Not_Found:2001/07/27(金) 22:28
>>583
<div>タグやら<layer>タグを駆使して色々と頑張ってみてください。
(IEとNNで挙動が異なるので気をつけてね)
586Name_Not_Found:2001/07/27(金) 23:05
visibility = "hidden"
587Name_Not_Found:2001/07/27(金) 23:10
ファイルをダウンロードさせるために
下記のようなの関数を作ってJavaScriptでFORMをsubmitさせているんですが

どうもWindows98,MEのIE5,IE5.5だと
まったく同じHTTPリクエストが2回以上あがってしまいます。
たまにちゃんと1回だけリクエストがあがることも有るのが謎。

いったんダウンロードさせたらそのファイルを削除してしまいたいのですが
そうすると二回目のHTTPリクエストでエラーになってしまって困っています。

解決方法や回避方法をご存知の方いませんか?

<SCRIPT TYPE="text/javascript">
<!--
function submitDwonload( submitPath, target, para1, para2, para3 ){
  document.downloadForm.action = submitPath;
  document.downloadForm.target = target;

  document.downloadForm.para1 = para1;
  document.downloadForm.para2 = para2;
  document.downloadForm.para3 = para3;

  document.downloadForm.submit();
}
// -->
</SCRIPT>

<FORM NAME="downloadForm" METHOD=POST ACTION="dummey/dummey.cgi" TARGET="_blank" >
  <INPUT TYPE=hidden NAME="para1">
  <INPUT TYPE=hidden NAME="para3">
  <INPUT TYPE=hidden NAME="para2">
</FORM>
588587:2001/07/27(金) 23:16
>>587
デバッグ前の間違ったスクリプトをアップしてしまいました
こっちが実際のソースです

<SCRIPT TYPE="text/javascript">
<!--
function submitDownload( submitPath, target, para1, para2, para3 ){
document.downloadForm.action = submitPath;
document.downloadForm.target = target;

document.downloadForm.para1.value = para1;
document.downloadForm.para2.value = para2;
document.downloadForm.para3.value = para3;

document.downloadForm.submit();
}
// -->
</SCRIPT>

<FORM NAME="downloadForm" METHOD=POST ACTION="dummey/dummey.cgi" TARGET="_blank" >
<INPUT TYPE="hidden" NAME="para1" value="" >
<INPUT TYPE="hidden" NAME="para2" value="" >
<INPUT TYPE="hidden" NAME="para3" value="" >
</FORM>
589581:2001/07/27(金) 23:49
>>584
出来ました、ありがとうございます!
590Name_Not_Found:2001/07/27(金) 23:55
>>588
どの部分で関数submitDownload 呼んでるの?
それによる。
591Name_Not_Found:2001/07/27(金) 23:56
try catch の使い方を教えてください
どういうときに例外がスローされるんですか?
592Name_Not_Found:2001/07/28(土) 00:24
>>591
どういうときって…関数じゃないものを呼ぼうとしたとかオブジェクト
じゃないもの(典型的にはnull)のプロパティをアクセスしようとした
とかeval()の中の文字列に構文エラーがあるとか…要するにいわゆる
エラーがあった時、だと思いますけど。
593Name_Not_Found:2001/07/28(土) 10:10
>>580
作ってみました。N6/Mozilla/N4/IE5で確認。ただし勝手にスクロールする
ページはひどく嫌わます。そのことはクライアントにくれぐれも注意して欲しい。
私も大嫌い。でもJavaScriptでプログラムするのは楽しい(w

あと、質問歓迎。

<html><head><title>???</title>
<script type="text/javascript">
var top = -1, count = 0;
function step() {
var t = window.pageYOffset;
if(t == undefined) t = document.getElementById('b1').scrollTop;
window.scrollBy(0, 1);
if(t == undefined) {
if(++count < 1000) setTimeout(step, 50);
} else {
if(t != top) { top = t; setTimeout(step, 50); }
}
}
</script>
</head><body id="b1" onload="window.setTimeout(step,50)">
<p>test...</p>
<p>test...</p>
<p>test...</p>
(中略)
</body></html>
594Name_Not_Found:2001/07/28(土) 10:22
>>583
こんな感じですか?N4/N6/Mozilla/IE5対応のつもり。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 100px; left: 100px; visibility: hidden }
</style>
<script type="text/javascript">
if(!document.getElementById) {
document.getElementById = function(i) {
var e = document[i]; e.style = e; return e; }
}
function show() { document.getElementById('d1').style.visibility = 'visible'; }
function hide() { document.getElementById('d1').style.visibility = 'hidden'; }
</script>
</head><body>
<p><a href="#" onmouseover="show()" onmouseout="hide()">Test...</a></p>
<div id="d1"><img src="test.png" alt="test img"></div>
</body></html>
595588:2001/07/28(土) 13:56
>>590 さん
画面の更新とダウンロードを同時にさせたいので
BODY タグのonLoadを使って呼んでいます。
引数パラメータはCGIであらかじめ固定でうめこんでしまっています。

(NT,2000のIEだとちゃんと1回だけHTTPリクエストがあがってくるですよ)
596Name_Not_Found:2001/07/28(土) 14:12
>>595
少し前にも類似の話題あったんですけど、N4とかはこの辺のタイミング
が怪しくないですか?

> document.downloadForm.submit();

これを少しおくらせて

setTimeout(document.downloadForm.submit, 50);

とかしてみません?


setTimeout(
597Name_Not_Found:2001/07/28(土) 14:18
>>596
↑最後の行、消し忘れスマソ。
5983415:2001/07/28(土) 16:05
はじめて書き込みをします。宜しくお願いします。
質問ですが、
別ウィンドウに開いているウィンドウのフレーム数を判別し、
特定のフレームのロケーションを変えるということを
JavaScriptでやる方法はないでしょうか?
全てのブラウザで可能な方法がありましたら、お願いします。
599Name_Not_Found:2001/07/28(土) 16:22
>>598
>全てのブラウザで可能な方法がありましたら、お願いします。

多分、この一言で答える気が失せると思われ。
600Name_Not_Found:2001/07/28(土) 18:19
>>598
質問の意味がよく分らないのですが、別の窓が1つあって、その窓が
いくつかのフレームに分れている場合に、その窓の中に含まれている
フレームの数を知りたい、ということでしょうか?

その「別の窓」に表示されているのが、こちらの(元の?)窓と同じ
サーバから来た内容であれば、調べればできるような気がしますが、
別のサーバだったらアクセスが禁止されてますから無理ですね。

で、特定のフレームのロケーションを変えるというのもよく分りま
せんが、フレームに分れているそのフレームの大きさ(他のフレーム
との境界位置)を変えるという意味?
601Name_Not_Found:2001/07/28(土) 18:47
Mugiさんの本がでるの?
602587,588,595:2001/07/28(土) 23:16
>>596 いえ、今問題になってるのは《Win98,Me》上のIE5 IE5,5です、、

(そういやN4まだ試してなかったです)
603Name_Not_Found:2001/07/28(土) 23:23
>>602
ああ、失礼しました。でもsetTimeoutで遅れを入れるのは
試してみませんか。
604通りがかり:2001/07/29(日) 11:09
JavaScriptの中で
スクリプトに変数を与える事はできないのですか?
例えば
sa.value
~~の部分を変数にして
sa=a
sa=b

とか、指定できるようにする・・・みたいな

解読できたかたいあら教えてください一
605Name_Not_Found:2001/07/29(日) 11:28
>>604
var name = 'sa'; // 'a'でも'b'でも何でもよい
window[name].value = ...;

ブラウザ内蔵のJavaScriptでは広域変数とはwindow
オブジェクトのプロパティのこと。プロパティ名を変数
で指定したければ「.」の代わりに「[]」。なんか激しく
ガイシュツだな。
606Name_Not_Found:2001/07/29(日) 14:15
DHTMLとジャバスクリプトは
同じ物なんですか?

よく、このソフトは
DHTMLとジャバスクリプトで
作りました。というのを聞きますが・・・・。
607Name_Not_Found:2001/07/29(日) 14:16
     setMes(a.name+'はb?',3000);
を表示させて、2秒後に
setMes(a.name+'はcかな?',3000);
を表示させて、さらに3秒後に
setMes(a.name+'はそれともD',3000);
を表示させるには
 どうすればいいでしょうか??
608Name_Not_Found:2001/07/29(日) 16:04
>>606
Dynamic HTMLとは特定の技術を指しているわけではなく、
HTML、CSS、DOM、などが定める標準規格(や独自規格)の
うち、動的にページ内容を変化させたりするのに使える部分
の総称だと私は考えています。で、実際に変化させるという
「動作」はプログラム言語で書きますから、その言語が
JavaScriptだということかな。
609Name_Not_Found:2001/07/29(日) 16:54
>>607
「どこに」メッセージを表示させるんですか?
このsetMesっていうのは何?
610Name_Not_Found:2001/07/29(日) 17:23
>>609
td.mag{
width:314px;
height:32px;

#mes{
font-size:22pt;

setMes(mag[0].innerHTML,2000);

文字を上のほうに表示しているわけです。
611Name_Not_Found:2001/07/29(日) 17:26
>>608
とてもわかりやすい解説をありがとうございました。
つまりJavaスクリプトを使って
動きのあるホームページ(DHTML)を
作っているというわけですね。
612Name_Not_Found:2001/07/29(日) 19:33
>>610
なんだかよく分りませんが、setMesっていうのを呼ぶとその
表示とやらができるんですよね。ということにしといて、それ
を何秒か後でやりたければたとえば

setTimeout(function() { setMes(...); }, 3000);

とかすれば三秒後に{}の内側が実行させられる、という風になり
ますが。まあ他にも書き方はあるけど。
613Name_Not_Found:2001/07/29(日) 20:32
http://pcweb.mycom.co.jp/news/2001/07/27/04.html
まず、Javaには2つの機能が存在する。
ブラウザー上のスクリプト言語のJavaScriptとJava言語で記述されたプログラム(アプレット)を動作する2つがある。
614Name_Not_Found:2001/07/29(日) 23:46
>>613
爆笑!!!
615Name_Not_Found:2001/07/30(月) 00:25
>>>612
教えていただき、どうもありがとうございます。
以下のように入力してみました。

setTimeout(function() { setMes(a.name+'はb?',3000); }, 3000);
setTimeout(function() { setMes(a.name+'はcかな?',3000); }, 3000);
setTimeout(function() { setMes(a.name+'はそれともD',3000); }, 3000);
とすると
     a.name+はb?   が表示され、3秒後に
     a.name+はcかな? が表示され、さらに3秒後
     a.name+はそれともD が3秒表示されるのかな と思ったんですが

     a.name+はそれともD しか表示されませんでした・・・・・。
    (瞬間的に a.name+はb? と  a.name+はそれともD が表示されたと思いますが・・・)

 どうすればいいでしょうか??

すいませんが、どなたか、わかれば教えてくれると嬉しいです。
616615:2001/07/30(月) 00:27
すいません。
訂正です↓
(瞬間的に a.name+はb? と  a.name+はそれともD が表示されたと思いますが・・・)
    ↓
(瞬間的に a.name+はb? と  a.name+'はcかな?  が表示されたと思いますが・・・)
617Name_Not_Found:2001/07/30(月) 00:29
setTimeoutを呼んだ時点から指定した時間経過後に実行されます。
だから3000、9000、12000を指定するべきでしょ?
618615:2001/07/30(月) 01:05
>>617

どうも、ほんとうにありがとうございます!!
うまいこといって、無事、解決しました!!!

ついでにもう1つだけ聞きたいんですけど、
setTimeoutなどのいろんな関数を紹介している本は
どんなのがありますか??

ジャバスクリプト リファレンスブックというのを
買えばいいんでしょうか???
619:2001/07/30(月) 02:28
おじゃまします。
Webサイト 初心者用スレッドver9で
「ブラウザ(IE4.0)にjpg画像を300枚ほど表示させる(レイアウトは気にしない)にはどうしたらいいですか?
imgタグをその数だけ書くのはコピーでも疲れます。ワイルドカートで *.jpg とはできないらしいので
なにかいい方法を教えてください。 」
と質問したところ いくつかのレスをいただき ここを紹介されたので来ました。

JavaScriptの中で画像表示する命令をくり返せばいいんでしょうか。
いろいろ試してみましたがうまくいかなかったので教えてください。できればソースもいただけると
助かります。
620Name_Not_Found:2001/07/30(月) 03:02
for (var i = 0; i<300;i++)
document.write("<img src='"+i+".jpg'><br>");

0.jpg〜299.jpgまで連番で表示ってどお?IE4に限らずできるよ
621:2001/07/30(月) 07:33
>>620
できました!ありがとうございます!!
622Name_Not_Found:2001/07/30(月) 07:57
>>618
JavaScript本の話題 >>1-31

しかしリファレンス本はこれがいいというのは出ていないです。ざっと見た
限り、DOM2までちゃんと載っているリファレンス本はまだ遭遇していない…
オススメがあればお願いします>皆様
623通りがかり:2001/07/30(月) 11:36
ところで、innerHTMLは
ネスケでも使用できるのか?
624Name_Not_Found:2001/07/30(月) 11:38
こんにちは。
質問です・・・。
まずa.gif、b.gif、c.gif、d.gifを用意します。
で、カーソルの↑を押すとa.gifが上に動き
       ↓を押すとb.gifが下に動き
       →を押すとc.gifが右に動き
       ←を押すとd.gifが左に動くようにするには
どうすればいいでしょうか?

    つまり、RPGのフィールド画面を作りたいのです・・・・。
  その時の動き方は、キャラクター(a〜d.gif)は真ん中で向きを変えて
  広いフィールドの景色が変るようにしたいです。
  で、フィールドの端の方に来たらキャラクターが動く(真ん中から外れる)
  ようにしたいのですが・・・・・。
 
  フィールドの大きさは別にどうでもいいです・・・。

  どうか、できる方がいらっしゃれば、よろしくお願いします・・・・。
625Name_Not_Found:2001/07/30(月) 11:43
>>623
N6/Mozillaでは使えるよん。非標準だからできれば
使わないで済ませたいが(個人的願望)(w
626Name_Not_Found:2001/07/30(月) 12:11
>>624
・キー判定の方法を調べる。
・画像の差し替えを行う。
・画像の位置変更を行う。
627Name_Not_Found:2001/07/30(月) 12:42
>>624
N6/Mozilla/IE5.5で作ってみました。

<html><head><title>???</title>
<style type="text/css">
img { position: absolute; top: 100px; left: 100px; z-index: 5 }
div { position: absolute; top: 0px; left: 0px; width: 200px;
height: 200px; background-image: url(test.png);
background-repeat: no-repeat; background-position: 0px 0px }
</style>
<script type="text/javascript">
var pane, img, xpos = 0, ypos = 0, imgs = new Array(4);
function init() {
imgs[0] = new Image(); imgs[0].src = 't0.png';
imgs[1] = new Image(); imgs[1].src = 't1.png';
imgs[2] = new Image(); imgs[2].src = 't2.png';
imgs[3] = new Image(); imgs[3].src = 't3.png';
pane = document.getElementById('d1');
img = document.getElementById('i1');
if(window.captureEvents) { // NS
window.captureEvents(Event.KEYDOWN);
window.onkeydown = function(e) { keypress(e.which); };
} else { // IE
pane.onkeydown = function() { keypress(window.event.keyCode); };
pane.focus();
}
}
function keypress(code) {
switch(code) {
case 37: xpos -= 10; img.src = imgs[0].src; break;
case 38: ypos -= 10; img.src = imgs[1].src; break;
case 39: xpos += 10; img.src = imgs[2].src; break;
case 40: ypos += 10; img.src = imgs[3].src; break;
default:
}
pane.style.backgroundPosition = (-xpos)+'px '+(-ypos)+'px';
}
</script>
</head><body onload="init()">
<p><img id="i1" src="t0.png" alt="main"></p>
<div id="d1">test...</div>
</body></html>
628587,588,595,602:2001/07/30(月) 14:56
>>603
試してみましたがやっぱりだめでした。

いろいろ調べたところ↓が原因でした
http://www.microsoft.com/JAPAN/support/kb/articles/J056/3/53.htm
ダウンロードさせるファイルってPDFだったんですけど
まさかプラグインが影響するとは思いませんでした。

お騒がせしました
629Name_Not_Found:2001/07/30(月) 15:07
>>627
本当にありがとうございます。
t0.png t1.png t2.png t3.png
test.png を用意して動かしてみると
動きました。
630Name_Not_Found:2001/07/30(月) 15:08
>>628
なるほどー、PDFプラグイン側の問題なんですねえ。勉強になりました。
631Name_Not_Found:2001/07/30(月) 15:24
>>629
フィールドの端に来たらキャラクタが動くようにしたけれ
ば、そのようにも改造できますよ。サンプルが長くなるん
でやらなかっただけで。たとえばキャラクタの位置を変数
x、yで指定するとしたら、

img.style.left = x+'px'; img.style.top = y+'px';

とかすれば好きな位置に動かせます。思いついたんですけど、
背景もキャラクタも同時に動くようにして、背景の端っこに
来たときキャラクタもちょうど領域の端っこに来るようにする、
なんてのはどうですか?プレーしにくいかなあ…
632Name_Not_Found:2001/07/30(月) 16:00
JavaScriptサンプル紹介のページを参考にしているのですが、
わからないことがあります。
function openWi12(fi,na,w,h) {
window.open(fi,na,"width="+w+",height="+h+",left=100,top=50,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,favorites=no,resizable=yes");

窓が開く位置を
left=○○

top=○○
で固定したいのですが、topを50にしても0にしても、それ以上 上に行ってくれません。
(何か決まりがあるのでしょうか?)
できれば、「-30」とか指定したいのですけど、マイナスを付けてもダメです。
方法はありますか?
633Name_Not_Found:2001/07/30(月) 16:02
>>631
なるほど・・。
おもしろそうですね!!
もう、戦闘シーンはできてるんですけど
今は↓のようにクリックしたらスタートするようにしているんですが
フィールド上を歩いていたら、ランダムでスタートするには
どうしたらいいんでしょうか??

<p align="center"><a href="javascript:StartBattle('battle')//?2001/04/01"
oncontextmenu="this.click();return false;">戦闘スタート</a></p>

このように↑していて、戦闘スタートをクリックすると
戦闘がはじまります・・・。
634Name_Not_Found:2001/07/30(月) 16:26
>>633
何がランダムなのか分からなかったのですが、Math.random()という
のを呼ぶと0以上1未満の乱数が取れますから、これに適当な数を掛けて
使うんじゃないでしょうか。たとえば0〜100にしたければ100を掛ける。
さらに切り捨て手整数にしたい場合は Math.floor(数値) でできます。
635Name_Not_Found:2001/07/30(月) 16:29
>>632
JavaScriptには「画面の範囲外に窓を置くことはできない」という
制約がありますので、それでtop=-30とかは駄目なんじゃないでしょう
か。たぶんですが…しかし0までは許されてよさそうなものですけど…

なぜこの制約があるかというと、画面の(ほとんど)外に「監視用の」
窓を置いておいてその中で動くJavaScriptを使ってイタズラする、
といった攻撃を禁止するためだと思います。
636Name_Not_Found:2001/07/30(月) 20:59
プルダウンのジャンプメニューで、同じページのアンカーポイント
に飛ばせるJavaScriptのサンプルを探しています。
いろいろ検索かけてみて探したのですがみつかりません。
違うページに飛ぶやり方は、みつけられたのですが、
同じページのアンカーポイントに飛ばしたいのです。

納期の時間もせまっていて、あせっています。
どうか、ご存知の方、お助けください。
637Name_Not_Found:2001/07/30(月) 21:30
指定を「〜.html#*」にすればいいだけじゃなかったっけか?
638Name_Not_Found:2001/07/30(月) 22:19
>>636
ホレ。しかし仕事に2ちゃんねる使うか〜。<html><head><title>???</title>

<script type="text/javascript">
var a = ['a','b','c']; ←アンカー名の配列
function jump() {
location.hash = a[document.forms[0].elements[0].selectedIndex];
}
</script>
</head><body>
<form action="#"><p><select onchange="jump()">
<option>A</option><option>B</option><option>C</option>
</select></p></form>
...
<p><a name="a">A</a></p> ←アンカー
...
</body></html>
639Name_Not_Found:2001/07/30(月) 22:21
ちょっとコピペ失敗した。スマソ
640Name_Not_Found:2001/07/30(月) 22:23
話の途中で申し訳ありませんが、プッシュボタンを複数設置し、
それぞれをクリックするとインラインフレーム内にhtmlを表示したいのですが、
どうしたら良いのでしょうか?
ハイパーリンクだったらうまくいくのに…
641Name_Not_Found:2001/07/30(月) 22:58
>>640
iframe要素のdocumentオブジェクトを取る方法が分からない
ので困るのですよね。誰か知らないかな。とりあえず、

<div id="d1">適当な初期メッセージ</div>

とかしておいて、ボタン押された時の動作として

document.getElementById('d1').innerHTML =
'<iframe src=" + uri + '"></iframe>';

で済むことは済むでしょう。IE5/N6/Mozilla専用になるけど。
642Name_Not_Found:2001/07/30(月) 23:45
>>636です。

>>637
そうやってみたのですが、だめだったんです・・・

>>638
ありがとうございます!
さっそく、やってみます。
>しかし仕事に2ちゃんねる使うか〜。
すいません、ここが一番頼りになりそうな気がして・・・
643Name_Not_Found:2001/07/31(火) 00:46
>>636です。

>>638
おっしゃる通りためしてみたのですが、上手くいきません・・・(泣)
ブラウザで見たときに、全くリロードもしない状態です。

当方、ジャバスクリプトに関しては、いつもサンプルを引用しているので、
ほとんど知識がありません・・
たいした知識がない消防は、こんなとこ間違えてんじゃねぇか、
そのようなポイントがありましたら、ぜひご指摘ください。

本当に頼ってばかりで申し訳ありません。。。
644Name_Not_Found:2001/07/31(火) 01:33
>>634
すいません、ランダムなのは
歩く歩数です。つまり、フィールド上を歩く(方向カーソルを押す)と
突然、戦闘がはじまる(戦闘のbattleというjsファイルに飛ぶ)ように
したいわけです・・・。方向キーを何回押したかカウンターかなんか
つけないといけないんですかねぇ・・やっぱり。
しゅみで、組み始めたばっかりなのでさっぱり分かりませんが
どなたか640あたりのフィールドのプログラムに
歩いていると戦闘がはじまる(戦闘のjsファイルの名前はbattleです)
コードを付け足してくれると嬉しいです。ホント、あつかましくて
すいません。もっと色々勉強して早く教えるがわに立てれば
いいなと思います。どうかよろしく・・・・・・・。
645Name_Not_Found:2001/07/31(火) 01:35
すいません、フィールドのプログラムは627でした・・・・。
646Name_Not_Found:2001/07/31(火) 01:41
こんばんは。
ランダムに a.mid b.mid c.mid ・・・・とn個の
MIDIファイルを流すようにするにはどうしたらいいでしょうか??
647Name_Not_Found:2001/07/31(火) 02:19
>>646
MIDI鳴らすな。
648Name_Not_Found:2001/07/31(火) 04:56
>>636です

うひゃ〜、いろいろやってみて出来なかったので、
もはや時間切れ・・・・
とりあえず、同じページで長々とまとめていたリストを
項目別にページ分けして、飛ぶようにしました。
これでダメ出しが出たら・・そのときまた考えます・・・。

せっかくおしえてもらったのに、できなかった自分に腹が立ちます。
時間がないので、今回はあきらめましたが、

すごく気になるので、あの・・
どなたか>>636のようなジャバスクリプトを実際に使っているサイトを
ご存知なら、おしえてくださいませ。。。

>>638 せっかくおしえてくれたのに、スマソ
649シロウト:2001/07/31(火) 06:37
どなたかご指導ください。

重たいページを表示するとき、JavaScriptで新しいwindowを開いて、その中に読み込み中です、と表示させます。
で、その重たい親ページのある画像がロード完了したら、新しく開いたほうのページを閉じるようにしたいです。

<script language="JavaScript">
<!--

function subWin(){
var new_window = window.open("information.html","info","width=300,height=100,scrollbars=0,scroll=0");
}


function loadedchck() {
if(document.whatsg.complete) = new_window.winClo();
}
//-->
</script>

<body onLoad="subWin(); loadedchck(); >
親windowには上記、小windowには下記


<script language="JavaScript">
<!--

function winClo(){
window.close();
}
//-->
</script>
のように記述していますが、機能しません。

お願いします。
650638:2001/07/31(火) 07:09
>>648
うーん、おかしいですね?N4、N6/Mozilla、IE5.5で確認
してOKですし、もしかしてアンカーの定義方法が違って
いるってことはないですよね?

<a name="A">ここがアンカーA</a>

とか、こういう感じになるはずですが…
651Name_Not_Found:2001/07/31(火) 07:18
>>644
キーコード437, 438, 439, 440がそれぞれ左、上、右、下
矢印キーですから、switch文の各caseのところでそれぞれの
数を数えるんでしょ。でも「どの位置」は変数xpos、ypos
で保持していますから、これが特定の「ます目」になったら
バトル、でいいんじゃないかな。そのどの「ます目」かは
乱数で決めると。

にしてもこのあたりになるともはやJavaScriptの技じゃなく
当り前のプログラミングですから、このスレの話題ではない
と考えます。まあ、頑張って面白いゲーム作ってください。
652Name_Not_Found:2001/07/31(火) 07:24
>>649
だいぶ違うんじゃない?onloadっていうのはその(重たい)ページのロードが
終わった時点で実行されるから、終わってからloading...なんて言っても
無意味でしょ?次のような感じになるんじゃないかな。

...
<script type="text/javascript">
var new_window = window.open(...);
function close_win() { new_window.close(); }
</script>
<body onload="close_win()">
...
653シロウト:2001/07/31(火) 07:44
>>652
有難うございます!
早速やってみたらできました!
こころから感謝します。
654Name_Not_Found:2001/07/31(火) 11:42
キーボードの[Shift]キーを無効化したいのですが、
このようなことは可能なのでしょうか。
655Name_Not_Found:2001/07/31(火) 11:56
>>654
ブラウザ上ので?んなのできるワケがない。WSHとかは知らん。
656Name_Not_Found:2001/07/31(火) 12:21
>>655
どうやんのかは知らんけど、そういうページ前に見たことある。
できるワケがないっていう根拠はなんなん?(w
657Name_Not_Found:2001/07/31(火) 12:23
>>656
あー、そのブラウザの窓の中だけならできるのかも。スマソ。
窓の外までできたらマズいと思うけど…(そーゆー意味だと思った。)
658Name_Not_Found:2001/07/31(火) 13:21
659高校性:2001/07/31(火) 16:37
フレーム分割したページで1つ目のページ内をクリックした時に
2つ目のページにしくんだJAVAがクリックを監視するJAVAプログラム
は作ることが出来ますか?もし出来るならソースを教えてください
660Name_Not_Found:2001/07/31(火) 16:53
>>659
このスレではJavaは扱っておりません。>>1 参照のことねー。
JavaScriptならもちろん作れるけど、クリックされた時
何をするの?何をするか決まらないのにソースは作れない。
661Name_Not_Found:2001/07/31(火) 19:12
過去ログを調べてみたのですが分からないことがあります。
質問させて下さい。

自サイト内ではa.htmlからb.htmlに移動するようになっているのですが、
a.html以外の場所やブックマークからb.htmlに来た場合、
a.htmlに訪問者を自動的に飛ばすようにしたいと思っています。

過去ログを見たところ
1)リファラを参照する。
2)URLの後に?を付けて ?以降があるかないかで認識する。
3)フレームを使う。
の3通りの方法があることが分かりました。

1)の方法をまず試したのですが、
a.htmlからb.htmlへの移動はjavascriptを用い自動で行っているので、
IEではリファラが空白になってしまい、
うまくいきませんでした。

2)の方法はうまくいったのですが、
a.html経由でb.htmlに来て、そこでお気に入りに追加した場合、
?以降もお気に入りのURLに登録されてしまうので、
お気に入りから直接b.htmlに来られた場合は対応できません。

で、結局3)の方法を用いることになりました。
次に続きます
662Name_Not_Found:2001/07/31(火) 19:13
続き
3)の方法では、
親フレームを作り、
a.htmlにonUnloadを記述して親フレームに情報を格納。
b.htmlにonloadを記述して親フレームに格納された情報を取り出す。
a.html経由なら普通にb.htmlを読み込み、
そうでない場合は、a.htmlに飛ばす
という風にすれば良いことまでは分かったのですが、

どうやって親フレームに情報を格納すればいいのか?
その情報をb.htmlからどうやって読み取ればいいのか?
が分かりません。
とても基本的なことかもしれませんが教えていただけないでしょうか・・。

ここ数日で初めてJavaScriptを勉強し始めたので、
もし全くの見当違いをしているなら、それも指摘していただければ幸いです。
663Name_Not_Found:2001/07/31(火) 20:19
そのページが開くたびに
ランダムで
いくつかのMIDIを鳴らすには
どうすればいいですか???
664Name_Not_Found:2001/07/31(火) 20:33
>>662
ちょっと違うかも知れませんが作ってみました。まずページAも
Bも親フレームの中の唯一の子フレームとして動作します。Aも
Bも単独でロードされると親フレームを呼びます。さらに、Aは
ロードされると親フレームにフラグを立てます。Bは旗が立って
いない場合はやはり親フレームを呼びます。個人的にはこういう
細工は嫌いなんですが、JavaScriptで遊ぶのは好きなので…
p.html:
<html><head><title>???</title></head>
<frameset cols="*" title="parent">
<frame title="a" src="a.html">
</frameset></html>

a.html:
<html><head><title>???</title>
<script type="text/javascript">
function check() {
if(window.top == window) location.href = 'p.html';
window.top.entryOK = true;
}
</script>
</head><body onload="check()">
<h1>A</h1>
<p><a href="b.html">goto B</a></p>
</body></html>

b.html:
<html><head><title>???</title>
<script type="text/javascript">
function check() {
if(window.top == window) location.href = 'p.html';
if(!window.top.entryOK) location.href = 'p.html';
}
</script>
</head><body onload="check()">
<h1>B</h1>
</body></html>
665Name_Not_Found:2001/07/31(火) 20:38
>>663
音を鳴らすの、嫌いだという人が多いですよねー。
それはそれとして、私は音関係、全然知らないんですが。
666Name_Not_Found:2001/07/31(火) 22:11
ランダムミディって
無理っぽいよね。
667Name_Not_Found:2001/07/31(火) 22:11
オーメン2は
あるのかな??
悪魔の啓示録666
668スダ子:2001/07/31(火) 22:31
スレ違いだったらすみません。
JDKのことをおききします。
http://www.ecs.cst.nihon-u.ac.jp/~mizocchi/b_java/jdkmeth.html
に書いてあるとおりに設定したつもりですが、
javac ***.java
で***.classを作ることができません。
やはり環境設定が間違っているのでしょうか。ちなみに、
AUTOEXEC.BAT


SET windir=C:\WINDOWS
SET winbootdir=C:\WINDOWS
SET COMSPEC=C:\WINDOWS\COMMAND.COM
SET PROMPT=$p$g
SET TEMP=C:\WINDOWS\TEMP
SET TMP=C:\WINDOWS\TEMP
SET PATH=C:\perl\bin;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\Perl\bin;;C:\latex\bin;C:\JOK\bin
SET TEXMFMAIN=c:/latex/share/texmf
SET TEXMFCNF=c:/latex/share/texmf/web2c
SET CLASSPATH =.
になっています・・・。
669661=662:2001/07/31(火) 22:58
>>664
661=662です。

ヒントなら頂けるかなと思っていたのですが、
全て作って頂いてしまって、
なんだか申し訳ないです。
でも、とても助かりました。
本当にありがとうございます。

ソースを読ませて頂いたのですが、
私には全く思いつきませんでした。
テクニックのある方はこういうのがすぐに思いつくのでしょうか・・。
(私があまりに無知なせいという突っ込みもきそうですが・・)

a.htmlとb.htmlについてですが、
ブラウザチェックページ(a.html)→各ブラウザ用の表紙(b.html)
という風になっています。
(実際はもう少しややこしくなっています)
そこから各ブラウザ用のページが続いています。

表紙(661,662のb.html)に直接来られると、
適合していないブラウザ用ページに来てしまう場合があり得る
ために上記のような質問をした次第です。

直リンク防止のような細工を嫌いな人がいらっしゃることは承知しています。
適合していないブラウザ用の表紙に来られた場合、
内容が全く見られない場合もあると思い質問しました。
訪問者に不評ならまた別の方法を考えてみます。

ともかく、ありがとうございます。
670Name_Not_Found:2001/07/31(火) 23:09
>>668
スレ違いかつ板違い。プログラム技術板へどぞ。
JavaScriptはJavaとはまったく別物です。
671Name_Not_Found:2001/07/31(火) 23:47
SET PATH=C:\JDK1.3\bin;%PATH%
672Name_Not_Found:2001/07/31(火) 23:50
ランダムミディできるヨ
673Name_Not_Found:2001/07/31(火) 23:58
上げ
674Name_Not_Found:2001/08/01(水) 00:20
>>672
どうやればいいでしょうか???
よかったら教えてください・・。
675ブラクラ:2001/08/01(水) 01:11
>>663
>>674
ほれ。 サンプルはここに、置いとくよん。
http://2ch.coco.co.jp/test/rndmidi.html

<script>
src = new Array();
src[0]="1.mid";
src[1]="2.mid";
src[2]="3.mid";

// ↑に、鳴らしたい曲を登録。

rnd = Math.floor(Math.random()*src.length);
document.write('<bgsound src="'+src[rnd]+'">')
document.write('いまなってる曲は'+src[rnd]+'どえす。');
</script>
676らくらぶ:2001/08/01(水) 01:12
あ。ネスケで動くかどうかは
知らないので(藁
いちいち、ネスカーのことなんてかんがえてらんないっす。
677Name_Not_Found:2001/08/01(水) 01:22
サウンドを止めるのも付け加えようネ
document.write('<bgsound id='bgs' src="'+src[rnd]+'">')
function stop(){document.getElementById("bgs").src = "silent.mid";}

ネスケはだめっす

誰かbgsound と embed のsrc 属性の変更について詳しく教えてください。
あと、ネスケのプラグインの事に関しても教えてほしいっす。
678らくらぶ:2001/08/01(水) 01:29
お、フォロー。さんくす。
ほえー。みなさん、普通にgetElenebtById()なんて
つかってんだに。。
679らくらぶ:2001/08/01(水) 01:35
でも、 >>677
document.write('<bgsound id='bgs' src="'+src[rnd]+'">')
これ、ちょっとまちがってる。 '' でかこんだら
変数になっちゃうぢゃん。 "bgs"に変更。んで、改良版も
置いとくね。 http://2ch.coco.co.jp/test/rndmidi2.html


<script>
src = new Array();
src[0]="1.mid";
src[1]="2.mid";
src[2]="3.mid";

rnd = Math.floor(Math.random()*src.length);
document.write('<bgsound id="bgs" src="'+src[rnd]+'">')
document.write('いまなってる曲は'+src[rnd]+'どえす。');

function stop(){document.getElementById("bgs").src = "";}
</script><br>
<input type="button" onClick="stop()" value="MIDI*STOP">
680らくらぶ:2001/08/01(水) 01:38
あー。ストップぼたんをつくると。
再生ボタンもつくりたくなるね。なんか。
ま、いいや。 次のしつもん、はよこーい。
681Name_Not_Found:2001/08/01(水) 02:04
ここで一度質問に答えてもらったものです。
親切に答えてもらってとても嬉しかったです。
久しぶりに人から親切にしてもらいました・・・。
無償で答えて下さってる皆さん、ありがとう。

自分もなんだか人に何かしたくなって、
他の板で、自分が答えられる質問に回答してきました。

なんだかやる気がでてきました。
682らくらぶ:2001/08/01(水) 02:20
【無償で】ってとこが 藁。。
683Name_Not_Found:2001/08/01(水) 03:08
同じWebページの中に特定の文字列(例えばhttp)がいくつあるか数える方法はありますか。

じつはリンクの総数を表示したいのですが、アンカータグ<a href="">ではなく
<form><select><option>を使っているため document.links.length では出ないのですが。
684Name_Not_Found:2001/08/01(水) 07:06
何でもかんでもJavaScriptで吐き出すのは趣味じゃないので
<bgsound id=BGM>
に対して
function MUSIC(SRC){ BGM.src=SRC ; }
当然、IE依存である

そして、IEのプロパティ-詳細設定で[サウンドを再生する]をオフにしていると
bgsoundは鳴らない、embedは鳴る。

embedでMediaPlayerを使う場合(MediaPlayerはsrcが空だとembedされない)に限定すれば
<embed name=EMBED id=EMBED type="application/x-mplayer2" src="dummy.wav"></embed>
に対して
function MUSIC(SRC){
if(document.all) document.EMBED.FileName=SRC ;
if(document.layers) document.EMBED.SetFileName(SRC) ;
}
でWinIEでもねすけでも再生されるはず。MacIEは不可。

止める
if(document.all) document.EMBED.stop() ;
if(document.layers) document.EMBED.Stop() ;
再生
if(document.all) document.EMBED.play() ;
if(document.layers) document.EMBED.Play() ;

使うプラグイン・ブラウザによって挙動もメソッドも違うので
QuickTime使いたいとかRealPlayer使いたいとかいう場合は調べてトライ&エラー
685Name_Not_Found:2001/08/01(水) 10:52
>>683
ページ内全部に渡って数えるんだったら(またまた使いたくないけど)
body要素のinnterHTML取って来てRegexpオブジェクトで調べるんでしょう
ねえ。しかしホントにそんなことがしたいの?ページ内容に普通に「http:」
があっただけで数えられてしまいますよね?まあ作っては見ましたけど。

<html><head><title>???</title>
<script type="text/javascript">
function test() {
var str = document.getElementById('b1').innerHTML;
var pat = /http:/g;
for(var i = 0; pat.exec(str); ) ++i;
window.alert(i);
}
</script>
</head><body id="b1">
<p><a href="javascript: test()">count...</a></p>
<p>http:</p><p>http:</p><p>http:</p>
</body></html>
686576:2001/08/01(水) 12:45
>>578-579
長いこと来れなくてスミマセン。
そしてありがとうございます。
ちなみに厨房なもので分かってないのですが、コレ、何が変わったのでしょうか。
コレを画像に置き換えてやったら良いのですか?
687683:2001/08/01(水) 12:48
>>685
ありがとうございます。助かりました。

685で<div id="b1"></div>とすれば、全ページではなく任意の範囲でもできますね。
688Name_Not_Found:2001/08/01(水) 13:52
1emが何pxかを得るにはどうすればよいですか?
689Name_Not_Found:2001/08/01(水) 13:57
>>686
変わったのはN4にgetElementByIdがないのに対処したことと、N4では
onmouseoverが<a>...</a>にしか効かないので無理矢理<a>...</a>を
使ったことです。ただ、このままだと<a>...</a>で反応するのは文字の
部分だけですから、中に画像を入れないとスムーズに行きません。
メニュー本体も同様に<a>...</a>の中に画像を入れてください。

>>687
なるほど、そういう意味ではdocument.links.lengthよりも良いのかも。
690Name_Not_Found:2001/08/01(水) 14:50
>>688
これが意外と難しい!適当な要素を幅em指定で作って、その幅を
取得すればいいと思ったのだけど、N6では幅を取り出す方法が
見当たらない(分かった人教えて…)。N4はスタイルシートがボロ
ボロ。とりあえずIE専用。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; visibility: hidden; width: 100em; padding: 0px }
</style>
<script type="text/javascript">
function test() {
var elt = document.getElementById('d1');
alert(elt.offsetWidth); // 100emだから実際にはこの100分の1。
}
</script>
</head><body>
<div id="d1">test...</div>
<p><a href="javascript: test()">test...</a></p>
</body></html>
691Name_Not_Found:2001/08/01(水) 14:53
↓は、宮坂雅輝著「JavaScriptハンドブック基礎編」(ソフトバンク)に載っていたサンプルです。
 ページを読み込むとクッキーを用いて「訪問者の名前を保存し、2回目以降は自動的に表示する」というものです。
 これを、読み込み時は<input type="text">に「名無しさん」と表示して<input type="button" value="ログイン">
 のクリックで動作するようにし、<input type="button" value="ログアウト">でクッキー削除するようにしたいのですが
 なかなかうまくいきません。↓とはまったく別のスクリプトでも構いません。よい方法をお教えください。

<script language="JavaScript">

names=getCookie("Name");
if (names==""){
inputName();
}
document.write("ようこそ "+names+" さん!");

function getCookie(key){
tmp=document.cookie+";";
tmp1=tmp.indexOf(key, 0);
if(tmp1!=-1){
tmp=tmp.substring(tmp1, tmp.length);
start=tmp.indexOf("=", 0)+ 1;
end=tmp.indexOf(";", start);
return(unescape(tmp.substring(start, end)));
}
return("");
}
function inputName(){
names=prompt("名前を入力してください。","名無しさん");
if(names==null){
inputName();
}
setCookie("Name", names);
}
function setCookie(key,val) {
tmp=key+"="+escape(val)+"; ";
tmp+="expires=Fri, 31-Dec-2010 23:59:59; ";
document.cookie=tmp;
}
</SCRIPT>
692Name_Not_Found:2001/08/01(水) 15:07
>>691
雑誌の例題そのままコピペってまずくない?
693Name_Not_Found:2001/08/01(水) 15:23
>>654

event.modifiersの値が4であればShiftキーだからそれを無効
になるように組めばいいのでは?
694691:2001/08/01(水) 15:29
>>692
[引用]で、しかも出典(書籍)を示しているから、まずくないと思いますが。
同じスクリプトが著者のwebで公開されています("名無しさん"だけ換えてます)

いろいろ手を加えてみたのですが、初心者のためなかなかうまくできません。
>>691の目的が達せられれば、まったく別の構文でもかまいません。
よろしくお願いします。
695Name_Not_Found:2001/08/01(水) 15:48
>>694
そうですね、最低限の引用と言えなくもないか…失礼しました。
しかし言ってはナニですけど私にはボロボロな例題に見えます。
動作が同じになるように作ってみました。

<html><head><title>???</title>
<script type="text/javascript">
function getCookie(k) {
var a = eval('/' + k + '=([^;]+)/').exec(document.cookie);
return a ? decodeURIComponent(a[1]) : ''
}
function setCookie(k, v) {
document.cookie = k + '=' + encodeURIComponent(v) +
'; expires=Fri, 31-Dec-2010 23:59:59; ';
}
function inputName() {
var n = '';
while(!n) n = prompt('input name', 'name-not-found');
setCookie('Name', n); return n;
}
</script>
</head><body>
<script type="text/javascript">
var name = getCookie('Name') || inputName();
document.writeln('<p>Welcome ' + name + '.</p>');
</script>
</body></html>
696Name_Not_Found:2001/08/01(水) 16:00
>>693
まずevent.modifiersはNetscapeブラウザのみですよね。
イベント横取りしてこのビット降ろしてもN4/N6とも普通に
[Shift]+[a]で「A」が入力できてしまいます。なんでかな?

IEではwindow.event.shiftKeyで表されますけど、これは
プロパティに書き込ませてくれません(だったと思う)。
それにIEではターゲットから外に向かってイベントが来る
ので横取りしてキャンセルするということができません。

何かうまい方法があるのでしょうか?
697Name_Not_Found :2001/08/01(水) 16:00
すいません >>174
左右のフレームを同時にスクロールさせる方法が書いてあったので
上下なら・・・

function sync() {
if(typeof(window.frames[1].pageXOffset) == 'number') {
window.frames[0].scrollTo(window.frames[1].pageXOffset,0);
} else {
window.frames[0].scrollTo(window.frames[1].document.all.b1.scrollleft,0);
}
}

でいけるかなと思ったらうまく動きません。どうしてかわかる人教えてください。
698Name_Not_Found:2001/08/01(水) 16:13
>>697
それでうまく行ってますよ?ははあ、下フレームのページのbodyタグが

<body id="b1">

になってないでしょ?違ったらスマソ。あれ?scrollleftじゃなくて
scrollLeftね、スペルミスにも注意。
699691,694:2001/08/01(水) 16:15
>>695
ご丁寧なレスありがとうございます。

>>691に書いたように、<body></body>中のボタンで操作できるようには
ならないでしょうか。できれば「キャンセル」で動作を中止できればなおいいのですが。
(例題のままだと、訪問者はクッキーを拒否できないですから。)
700ウトゥ:2001/08/01(水) 16:21
>>698

どうやら問題はLでした。
すいませんお騒がせしました。
701Name_Not_Found:2001/08/01(水) 16:47
>>699
作って見ました。キャンセルで中止っていうのがよく分からな
かったのですが…まあこの先は自分で好きなように作るのがいい
のではないでしょうか?

<html><head><title>???</title>
<script type="text/javascript">
function getCookie(k) {
var a = eval('/' + k + '=([^;]+)/').exec(document.cookie);
return a ? decodeURIComponent(a[1]) : ''
}
function setCookie(k, v, e) {
document.cookie = k + '=' + encodeURIComponent(v) + '; expires=' + e;
}
function init() {
document.forms[0].elements[0].value = getCookie('Name') || 'name-not-found';
}
function register() {
var n = document.forms[0].elements[0].value;
setCookie('Name', n, 'Fri, 31-Dec-2010 23:59:59');
}
function remove() {
setCookie('Name', 'x', 'Tue, 7-Jul-2001 23:90:59'); window.location.reload();
}
</script>
</head><body onload="init()">
<form action="#">
<p><input type="text">
<input type="button" value="Register" onclick="register()">
<input type="button" value="Remove" onclick="remove()"></p>
</form>
</body></html>
702691,694,699:2001/08/01(水) 17:06
>>701
たびたびありがとうございます。

>キャンセルで中止
入力プロンプトがあらわれたときに、名前を入力して「OK」を押せばその名前が表示され、
「キャンセル」を押せば入力とクッキー取得を中止して「name-not-found」が表示されるように、という意味です。

あれっ、「Register」ボタンを押しても入力画面があらわれません。
どうすればいいでしょうか。
703Name_Not_Found:2001/08/01(水) 17:06
>>701
23時90分て何だよ…欝だ死のう。
704login:ディストリいっぱい:2001/08/01(水) 17:15
http://2ch.dyn.to/
↑このサイトなんですけど
複数の板を検索対象にする時に毎回チェックボックスを選択するのは大変なので、
チェックを入れた状態で「クッキーに保存」「クッキーを消す」というボタンを
ポチッと押して選択状態が保存されるような便利な機能があるといいなあって思ってます。
さっきから調べてるんですけどあぶら汗がたらたら出るだけで全く理解できません。。
たぶんここにいる人たちならチョチョと作れるんだろうなあって思ったんで安易に助けを
求めに来ました。よろしくお願いします (^o^)

ちなみに僕のJavaScriptスキルは「拾ってきたものをコピペして貼り付ける」レベルです。
705Name_Not_Found:2001/08/01(水) 17:16
>>702
>>701 は、name-not-foundを書き換えてRegisterを押すんです。
コードを読んでくださいよ〜。一応直しましたが、やっぱり最後は
自分で好きなように作るのがいいと思いますよん。

<html><head><title>???</title>
<script type="text/javascript">
function getCookie(k) {
var a = eval('/' + k + '=([^;]+)/').exec(document.cookie);
return a ? decodeURIComponent(a[1]) : ''
}
function setCookie(k, v, e) {
document.cookie = k + '=' + encodeURIComponent(v) + '; expires=' + e;
}
function init() {
var n = getCookie('Name');
if(!n) {
n = window.prompt('Your Name:', 'name-not-found') || 'name-not-found';
setCookie('Name', n, 'Fri, 31-Dec-2010 23:59:59');
}
document.forms[0].elements[0].value = n;
}
function remove() {
setCookie('Name', 'x', 'Tue, 7-Jul-2001 23:90:59');
}
</script>
</head><body onload="init()">
<form action="#">
<p><input type="text" disabled>
<input type="button" value="Remove" onclick="remove()"></p>
</form>
</body></html>
706Name_Not_Found:2001/08/01(水) 17:26
>>704
それはいいんだけど、そもそもこの検索サイトの入力ページを
自分とこに持って来てクッキーでチェックボックスのON/OFFを
保存できるようにしたとして、そこから検索掛けられるの?
別とこから呼ばれたらはねるCGIが多いと思うんだよね。そこ
をまずチェックしないと徒労に終わるからね。

次に、このでっかいHTMLを直してどっかに置けってか?そんなの
JavaScriptの話題じゃないじゃん。チェックボックス2、3個の状態
を保存する例題くらいだったら作ってもいいんだけどね。そういう
例題を見てあのページを直す気があるんだったらね…

そうじゃないんなら私はパスだな。
707Name_Not_Found:2001/08/01(水) 23:55
var a = eval('/' + k + '=([^;]+)/').exec(document.cookie);
return a ? decodeURIComponent(a[1]) : ''
正規表現わからんちんですっ 教えてください。
デコードなんとか〜ってのも教えてください

正規表現はジャバスクリプターにとって必須ですか?
いざとなった時に正規表現はスパイスになるなっ!て思ったけど...
708Name_Not_Found:2001/08/02(木) 00:07
>>707
正規表現は強力ですし、必須ってことはないでしょうが、長々とループしな
くて済むからとってもお勧めですよ。解説ですが、まず

/名前=([^;]+)/

これで、「名前」の次に「=」、次に「;以外の文字が1個以上並んでいる」と
いうパターンを表します。なお、「;以外の文字が1個並んでいる」部分につい
ては、その範囲を記憶させます(ここがクッキーの値ですからね)。

正規表現オブジェクト.exec(文字列)

は、文字列を正規表現にあてはめ、その結果をあてはまらなければnull、
あてはまれば配列オブジェクトで返します。あてはまった場合は、a[0]が
文字列全体を保持しますが、「()」で囲んだ指定があれば、その1番目、
2番目、…にあてはまった部分文字列をa[1]、a[2]、…に保持しています。
ここでは「()」が1つだけだから、そこをa[1]で取り出すわけ。

クッキー等に覚えさせる時に漢字でも大丈夫にするために、従来はURL
エンコーディングを行うescape()、unescape()を使っていたと思うので
すが、これだとどの漢字コードかという情報がないため、復元したとき
化けることがあります。encodeURIComponent()、decodeURIComponent()
であれば、UTF-8が使われるので化けない…と思う。
709Name_Not_Found:2001/08/02(木) 00:08
<A>や<FONT>タグが使えるBBSに書き込むとき、
タグを交えたメッセージを送信する前に
実際どう表示されるかをプレビューすることはできるのでしょうか?

Javaスプリクトなら出来るということを聞いたのですが。
710Name_Not_Found:2001/08/02(木) 00:16
>>708
ありがとございます。ちょっと正規表現やってみます。
エンコードなんですけどUTF-8って何ですか?無知ですみません。
711Name_Not_Found:2001/08/02(木) 00:21
>>709
このページを開いてカット&ペーストしなされ。

<html><head><title>???</title>
<script type="text/javascript">
function preview() {
var win = window.open('#', 'preview');
win.document.open();
win.document.writeln(document.forms[0].elements[0].value);
win.document.close();
}
</script>
</head><body>
<form action="#"><p>
<textarea name="area" cols="64" rows="20"></textarea><br>
<input type="button" value="Preview" onclick="preview()">
</p></form>
</body></html>
712Name_Not_Found:2001/08/02(木) 00:25
>>710
最近のブラウザでは内部でUnicodeと呼ばれるコード系が
使われています。HTMLもJavaScriptもこのコード系が基準。
で、UTF-8とはUnicodeをファイルに格納したりするための
符号化方式。つまり「これはSJISか?」「これはEUCか?」
といったことを気にしないで済むわけです。
713709:2001/08/02(木) 00:47
>>711さん

うわっ、すごい!
最高です。

私はJavaスクリプトをほとんど知らないので、
ソース見てもよくわからないのですが、
<A>,<IMG>,<FONT>タグだけを有効にしてプレビューできれば
もっと最高なんですが、贅沢言ってますか?
714691,694,699,702:2001/08/02(木) 03:13
>>705
何度もありがとうございました。
すべての動作を同じページでやろうとするから難しくなるんですね。
クッキー保存・削除の作業を別ページにしたら、なんとか形になりました。
715Name_Not_Found:2001/08/02(木) 04:10
>>675-680
本当にありがとうございます。
感謝しています!!!!

じつはランダムミディというのは
あるページのボタンを押すと
a.jsファイルに飛ぶんですが
その飛んだ時、いろんな曲がランダムでかかるように
JSファイルをいじりたいのです・・・。
参考までに・・・・。jsファイルの初め部分です・・・。

bgm.src='ba1.mid';
//bgm.src='ba3.mid';
//bgm.src='ba2.mid';

bak.bak=new Array();
bak.bak[0]=new background('c:\\windowsタトー.jpg',1200,900,140,300,'',true);
と続きます・・・。

これをそのまま実行するとba1.midしか再生されないんですよね・・・。
これをjsファイルに飛んだらランダムで
midを再生できるようにしたいんですよ・・・・・・。
誰かよろしくお願いします。
716Name_Not_Found:2001/08/02(木) 04:26
function show(s,delay){
var t1=s.id;
if(s.constructor==String){t1=s;}
if(delay){
sto("show2("+t1+")",delay);
}else{
show2(s,delay);
}
}
というプログラムがありまして、
show2("+t1+")"のt1の部分に
数字が入りますが、その数字が
左から順(桁数の多い数字場合)に
1センチくらい上から落ちて弾むように
表示させることとかは出来ますか??
FF3のダメージのような
数字が、こぼれ落ちる感じにしたいのですが・・・。
717Name_Not_Found:2001/08/02(木) 06:25
>>715
書かれてる内容をちゃんと読んだ?
てとりあしとりでないと理解できんのか
だったら、あまりよろしくしたくないな

[bgm.js]

src = new Array();
src[0]="bgm_1.mid";
src[1]="bgm_2.mid";
src[2]="bgm_3.mid";……

n = Math.floor(Math.random()*src.length);
bgmFile=src[n];

そして、鳴らしたいHTMLファイルのHEAD内に
<script language="JavaScript" src="bgm.js"></script>
本文中に
document.write('<bgsound src="'+bgmFile+'">');

ねすけでも鳴らしたいならbgsoundではなくembedを
document.write('<embed src="'+bgmFile+'" autostart="true">');

bgm.src=...
という部分にこだわるならbgsoundじゃないと行かんし、ごにょごにょ

> bgm.src='ba1.mid';
> //bgm.src='ba3.mid';
> //bgm.src='ba2.mid';
> これをそのまま実行するとba1.midしか再生されないんですよね・・・。
「//」で始まる行は無視されるし、同じプロパティにいくつも値を突っ込んだら最後のものだけが有効になるからたくさん並べても意味がない。
そして、jsファイルってのはJavaScriptのファイルだから「ボタンを押すとjsファイル"に飛ぶ"」などという使い方はしない
<SCRIPT src=〜.js></SCRIPT>として利用するものだよ。分かってる?
718Name_Not_Found:2001/08/02(木) 08:52
確かにてとりあしとりじゃああまりよろしくしたくないケド。
コピペしかできないと豪語されるよりは、自分で書く気がある
ぶんだけいいのかしらん。でもコメントくらい知ってて欲しい〜。
719Name_Not_Found:2001/08/02(木) 09:32
>>688で、1emが何pxかを得るにはどうすればよいか質問した者です。
やはりダミーでブロック要素を作るしかないのでしょうか?
720作者:2001/08/02(木) 10:44
リディアたん?
721Name_Not_Found:2001/08/02(木) 11:03
メテオ★
722Name_Not_Found:2001/08/02(木) 11:22
>>719
CSS2の仕様によれば、emとは要するにfont-sizeの値の
ことだそうですが、これが直接取り出せるAPIが見当たらない
のですよねー。誰か分かる人いたら教えてください。
723Name_Not_Found:2001/08/02(木) 11:28
>>713
その3つのタグだけ有効っていうのは、残りのタグはどうなるの?
たとえば残りの「<」、「>」をすべて「<」「>」にすること
はできるけど、そしたら改行も何もなくなってくっつくよねえ。
どのBBSでもそのBBSなりの加工をして貼り付けているわけで、同じ
に見えるためにはその加工の真似をする必要があるわけだ。その
「仕様」がはっきり分かっているならできると思うけど…そこまで
労力掛けても「投稿前チェック」するだけなのに引き合わないんじゃ
ない?もっとも「こういうものをこう変換したい」と明確に分かって
いるならそれ書くのは(よっぽどヘンなもんでない限りは)簡単だから、
言ってみてくれていいよ。
724Name_Not_Found:2001/08/02(木) 11:34
>>723
うげげ、2ちゃんねるってこうなるのか。訂正します:

残りの「<」、「>」をすべて「&lt;」「&gt;」にすること
725Name_Not_Found:2001/08/02(木) 12:05
ごめんなさい、質問です。
ボタン画像に「このページをホームに設定する」という
機能を付けたいのですが、JavaScriptで可能でしたよね?
ネットや本で調べても方法がわかりません。どうか教えて下さい。お願いします。
726Name_Not_Found:2001/08/02(木) 12:28
>>725
ボタン画像とは何ですか? <input type="image" ...>のこと?

<a href="ホームのURI"><img ...></a>

じゃあ駄目なの?
727Name_Not_Found:2001/08/02(木) 12:32
>>716
show2()だのsto()だのが何であるか分からないようなコード
見せられても困るんだけど…とりあえず、文字がはずむという
のは作ってみました。結構行数多くなってしまった。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; font-size: xx-large; visibility: hidden }
</style>
<script type="text/javascript">
var body, tid, a = new Array();
function Panel(s, x, y, b, v, a, w) {
this.xpos = x; this.ypos = y; this.vy = v; this.wait = w;
this.alpha = a; this.base = b; this.moving = true;
this.elt = document.createElement('div');
this.elt.style.left = x+'px'; this.elt.style.top = y+'px';
this.elt.appendChild(document.createTextNode(s));
body.appendChild(this.elt);
}
Panel.prototype.move = function(dt) {
if((this.wait -= dt) > 0) return;
this.elt.style.visibility = 'visible';
if(!this.moving) return;
this.ypos += this.vy * dt; this.vy += this.alpha * dt;
if(this.ypos > this.base) {
this.vy = this.vy * -0.5; this.ypos = this.base;
}
if(this.ypos > this.base-5 && this.vy*this.vy < 5) {
this.ypos = this.base; this.moving = false;
}
this.elt.style.top = this.ypos + 'px';
}
function init() {
body = document.getElementById('b1');
a.push(new Panel('A', 100, 100, 200, 100, 400, 1));
a.push(new Panel('B', 125, 100, 200, 100, 400, 2));
a.push(new Panel('C', 150, 100, 200, 100, 400, 3));
a.push(new Panel('D', 175, 100, 200, 100, 400, 4));
tid = setInterval(step, 50);
}
function step() {
var flag = false;
for(var i = 0; i < a.length; ++i) {
a[i].move(0.05); if(a[i].moving) flag = true;
}
if(!flag) clearInterval(tid);
}
</script>
</head><body id="b1" onload="init()">
<p>test...</p>
</body></html>
728Name_Not_Found:2001/08/02(木) 13:09
>>727
おお!!すごいです・・・・。
実行して思わず感激してしまいました・・・。
ありがとうございました・・・。
しかし、プログラム見ても、まったく分からない・・・。
すごいですねぇ・・。どういうアルゴリズムで考えましたか??
尊敬のまなざしです・・・。
729Name_Not_Found:2001/08/02(木) 13:14
>>728
アルゴリズムは…物理シミュレーション。物体に速度と加速度
を与えて、基準線のところで反射させる(そのとき速度を半分
にする)。それらしく見せるのにパラメタの調整が大変ですね。
730リディアの友だち♪:2001/08/02(木) 13:23
>>720
作者さんですか??
会いたかったですよぉ〜!!
前にレスしたのはもう1人の友だちです・・。
私たちは今、分担して作っていますが
私の担当はキャラクターの数をもう1人増やすように
することと戦闘の曲をランダムで流す事です・・・。
結構難しいです。・・・・っていうか、キャラを2人にする方法が
さっぱりわからなくて悩んでます・・。
もしよろしければ何かヒントをもらえないでしょうか??
ここではちょっとと言うのであればメールアドレス教えますので・・・。
また、このスレを見てくれることを祈りつつ・・・・。
731725:2001/08/02(木) 14:03
>>726さん
説明不足でごめんなさい、画像をボタンとして使うだけです。
画像クリックで閲覧者のブラウザのホームに
該当ページを登録させたいのです。
よろしくお願いします。
732Name_Not_Found:2001/08/02(木) 14:16
はじめましてこんにちは。

今度ブラウザ上でゲームを作るつもりなのですが、
ページを表示させる時にスクリプトで
”サーチライト”(刑務所なんかで監視台から照らすライト)
を表示させたいのですけど。

いろんな所に落ちている
”cross”(マウスの現在位置から上下左右に直線を引く)や
マウスの後をつけてくる画像表示のスクリプトを
改造しようと思いましたが、うまくいきません。

どうか御指南よろしくお願いします。
733Name_Not_Found:2001/08/02(木) 14:16
>>731
ホームに登録って…??? JavaScriptでブラウザのお気に入り
等を操作することはできません。できたら大問題ですがな。
734Name_Not_Found:2001/08/02(木) 14:34
>>733
できるが?
735Name_Not_Found:2001/08/02(木) 14:46
>>734
そ、そうなんですか。知りませんでした。逝く前にぜひ教えてください。
736Name_Not_Found:2001/08/02(木) 14:51
>>732
斜めの線っていうのは難しいので、とりあえず十字形で…N6/Mozilla/IE5.5。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; z-index: 5; background-color: black;
width: 1000px; height: 1000px }
</style>
<script type="text/javascript">
var d = new Array(4);
function init() {
for(var i = 0; i < 4; ++i) d[i] = document.getElementById('d'+i);
if(window.captureEvents) {
window.captureEvents(Event.MOUSEMOVE);
window.onmousemove = function(e) { move(e.pageX, e.pageY); }
} else {
document.onmouseover = function() {
move(window.event.clientX, window.event.clientY); }
}
}
function move(x, y) {
d[0].style.left = (x-1010)+'px'; d[0].style.top = (y-1010)+'px';
d[1].style.left = (x+10)+'px'; d[1].style.top = (y-1010)+'px';
d[2].style.left = (x+10)+'px'; d[2].style.top = (y+10)+'px';
d[3].style.left = (x-1010)+'px'; d[3].style.top = (y+10)+'px';
}
</script>
</head><body id="b1" onload="init()">
<div id='d0'></div><div id='d1'></div><div id='d2'></div><div id='d3'></div>
<p>test...</p>
</body></html>
737Name_Not_Found:2001/08/02(木) 15:51
>>736

わざわざスクリプトを書いてくださいましてありがとうございます。
上記のスクリプトでいくつか質問させてください。
1.上から4行目での 1000px とは、画面サイズのことですか?
  つまりは 1000*1000 ということです。
2.クロスされる線の太さはx、yそれぞれの変数に足したり引かれてる
  10 の値を変更すればいいのですか?
  つまりは今の表示されている線の太さが 10 ということです。
3.線ではなく中央に円を表示させるにはどこを変更すればよいのですか?
  ここで私は悩んだのですが・・・
  最初の style の時点で円を指定してやらなければいけないのですか?

度重なるご無理なご指導ですがお願いいたします。
738734:2001/08/02(木) 16:02
お気に入りに追加。
http://www.chibaken.net/java/oki.htm
http://www.microsoft.com/JAPAN/developer/library/jpwebwk/essentials/versions/ICPIE5.htm
ホームページにすることはできないけど。
739Name_Not_Found:2001/08/02(木) 16:10
>>738
うーむ。window.externalなんていうものがあったのですね。勉強になり
ました。ホームページにはさすがにできないのですね、ちょっと安心。
740Name_Not_Found:2001/08/02(木) 16:20
>>737
はいはい。

1. 1000pxは「黒い箱」のサイズです。これが小さすぎるとマウスポインタ
が端に寄った時に目隠しの逆の端が出てしまって興醒めです。って、試せば
いいじゃん! 100px、100pxにして動かすのが一番簡単に理解できます。

2. はい、線の太さですが、マウスポインタの位置から両側に10ずつずらして
ますから、線の太さは20ピクセルですね。これを変えたければ10を変更すれ
ばいいです。って、やってみればいいじゃん!

また、今はちょうど十字路の形に目隠しを配置してますが、箱の位置をずらせ
ば矩形にできますよね。つまり矩形の上下左右を目隠しするように箱の位置を
指定すれば。で、その状態で3に続く…(w

3. 丸にしたければ、透過GIF/透過PNGで「周りが黒くて中央が透明」な画像を
作って、5番目の<div>...</div>の中に入れ、これをマウスカーソルの位置に、
つまりあけてある矩形のところにはめ込むように置けばいいと思います。他
の方法はちょっと思いつきません。
741Name_Not_Found:2001/08/02(木) 16:29
>>740

1.2について
なるほど、4つの門箱で縦横のラインを形成しているわけですね。
よくわかりました、ありがとうございます。

3.について
これはビルダーでも制作可能なんでしょうか?

1.2.については現在ビルダーでいろいろ試しています。
742Name_Not_Found:2001/08/02(木) 16:35
>>741
ビルダーの話題はビルダースレでお願いね。あと、画像は少し大きめに
(「のしりろ」を持たせて)作った方がいいかも。動かす時のタイムラグ
ですき間が見えたら興醒めですからね。
743Name_Not_Found:2001/08/02(木) 16:42
>>742
どうもいろいろありがとうございました。
どうしても分からないことがあればまたきます。
今日はこれにて失礼いたします。
744Name_Not_Found:2001/08/02(木) 17:53
>>742
あのぉ、そのぉ・・・
透過GIF貼りつけたのはいいのですが、
透過した部分がスクリプトの黒色に染まってしまって意味無くなってしまいます。
どうにかなりませんでしょうか?
745Name_Not_Found:2001/08/02(木) 18:04
>>744
おお! とりあえず、その画像を入れているdivだけ

<div style="background-color: transparent" ...>

にしてみてください。なんか場あたり的だな…本当は
もうちょっときれいにスタイルを指定し分ければいいん
ですよね。そうなるとJavaScriptの話題じゃないんで…
746Name_Not_Found:2001/08/02(木) 18:59
画面を表示させているんですが
表示している画像を少し上下に揺らせたいんですが
どうしたらいいですか??

鳥が翼を広げている画像なんですが
少し上下に揺らせて
飛んでるようにしたいんですよ・・・。
747Name_Not_Found:2001/08/02(木) 19:00
>>745

ん〜こんがらがってきてしまいました。
今日はとりあえず休憩します、慣れないもので・・・
もう一度明日やり直してみます。
いろいろありがとうございました。
ちなみに、背景色変更しても駄目でした。
748Name_Not_Found:2001/08/02(木) 19:03
ジャバスクリプトの
デバッグってどうしたらいいですか??

ソフトとかあるんでしょうか??
749Name_Not_Found:2001/08/02(木) 21:30
Netscape4.xならばlocationにjavascript:と入れてコンソールを呼び出せ
Netscape6ならばメニューから呼び出せる。
IEはインターネットオプションでスクリプトのデバッグを有効にすればエラーを通知してくれる

それじゃ不満か?
750Name_Not_Found:2001/08/02(木) 23:34
>>749
そして、N6/Mozillaのメニューから呼び出すJavaScriptコンソールが
一番使いやすいと思う。JavaScript開発のためだけでもMozillaを入れる
価値はあるのではないでしょうか?もちろん普段は好きなブラウザ使ってい
ればいいんだし…
751Name_Not_Found:2001/08/02(木) 23:38
>>746
ガイシュツだが短いので再掲する。ホレ。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 100px; left: 100px }
</style>
<script type="text/javascript">
function move() {
var e = document.getElementById('d1');
var x = 90 + Math.floor(Math.random() * 20);
var y = 90 + Math.floor(Math.random() * 20);
e.style.left = x+'px'; e.style.top = y+'px';
}
</script></head>
<body onload="window.setInterval(move,25)">
<div id="d1"><img src="test.png" alt="an-image"></div>
</body></html>
752Name_Not_Found:2001/08/03(金) 00:24
>>751
ありがとうございます・・。
しかし、飛んでいるというよりは地震なんですね。
ランダムで動きますし。
753709=713:2001/08/03(金) 00:48
>>723さん

えーと、つまり<font><A><img>以外は使う必要ないってことです。
例えば

+−−−−−−−−−−−−−−−−+
|赤い字  (←だと思って下さい)|
|大きい字 (←だと思って下さい)|
+−−−−−−−−−−−−−−−−+

と書き込むときに、711さんのやつだと

<font color="#FF0000">赤い字</font><br>
<font size="7">大きい字</font>

と書くんですが、ここで<br>を省略してもプレビュー時に
改行されるようにできたらいいなぁと思っているんです。

つまり上のやつをプレビューすると

+−−−−−−−−−−−−−−−−+
|赤い字<br>           |
|大きい字            |
+−−−−−−−−−−−−−−−−+

となるわけです。

723さんのやつでも十分満足なんですが、欲を言うと…
たしかに労力に見合いませんね。
754709=713:2001/08/03(金) 00:50
↑やはり枠がズレた

しかも下から2行目
723さんでなく711さんです

うぅ
755Name_Not_Found:2001/08/03(金) 01:33
ネスケで「ページを閉じる」動作に対してonUnloadが効かないのは、仕様ですか?
756Name_Not_Found:2001/08/03(金) 10:22
>>753
ほーら聞いてよかったね。あなたがやりたかったことは
「<a><font><img>以外のタグを無効にする」ことではなく、
「改行の個所に<br>を入れたい」ということなんでしょ?
直してみました。これが欲しかったものでしょう?

<html><head><title>???</title>
<script type="text/javascript">
function preview() {
var win = window.open('#', 'preview');
win.document.open();
s = document.forms[0].elements[0].value;
s = s.replace(/\n/g, '<br>');
win.document.writeln(s);
win.document.close();
}
</script>
</head><body>
<form action="#"><p>
<textarea name="area" cols="64" rows="20"></textarea><br>
<input type="button" value="Preview" onclick="preview()">
</p></form>
</body></html>
757Name_Not_Found:2001/08/03(金) 10:25
クリックするとテーブルのある特定のセルだけ
背景色が変えるということは可能でしょうか。
自分でいろいろやってみましたができませんでした。。。
758Name_Not_Found:2001/08/03(金) 10:26
>>752
動く幅を小さくするとか、上下にだけ動かすようにする
とか、乱数をやめて上下に交互に動かすとか、動く時間
間隔を変えるとか、交互じゃ粗いからsin曲線に従って
動かすとか、いくらでも直せると思いますが。そういう
のは自分で気に入るように決めるのがベストだと思います
よ。こういう風に動かしたいけど書き方が分からない、
という質問は歓迎します。
759Name_Not_Found:2001/08/03(金) 10:35
>>755
あれ、駄目ですか?

<body onunload="alert('ok?')">

とかして試してみると、ちゃんとアラートボックスが
出ますよ。ただ、IE5.5とN6/Mozillaではアラートが
出て、OKするとはじめて次のページに行きますが、N4
だとアラートが出るのと一緒に次のページへ行ってし
まいますね。だからonunloadの動作はしてるのだけど
JavaScript実行環境は消されてしまうので一見動作して
ないように見えるっていうことじゃないかなあ。確かに
それだと役に立たないといえば立たないか…
760Name_Not_Found:2001/08/03(金) 10:41
>>757 ホレ。N6/Mozilla/IE5.5用。

<html><head><title>???</title>
<script type="text/javascript">
function chg(i) {
document.getElementById(i).style.backgroundColor = 'red';
}
</script>
</head><body>
<table border="2"><tbody>
<tr><th id="t1" onclick="chg('t1')">A</th>
<th id="t2" onclick="chg('t2')">B</th></tr>
</tbody></table>
</body></html>
761725:2001/08/03(金) 10:45
>>738
遅レスですですみません。
どうもありがとうございました。
762Name_Not_Found:2001/08/03(金) 12:33
age
763Name_Not_Found:2001/08/03(金) 12:56
>>758
すいません
動く時間を5秒だけだとか指定する事は出来ますか??
5秒動いてあとは止まるようにしたいんですが・・・。

こないだ始めたばかりで
まだプログラムのどこの部分が
どういう働きをするのかが
分からないんです・・・。
本当に手を煩わせてしまってすいません。
764Name_Not_Found:2001/08/03(金) 13:09
JavaScriptと他の言語を組み合わせて作る事って出来るんですか??
たとえば、JavaScriptで作ったボタンをクリックすると
perlやVBやCなんかのプログラムファイルを実行できるとか・・・。
765Name_Not_Found:2001/08/03(金) 13:16
>>763
ついでにsin関数で上下に動くようにし、N4にも対応しました。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 100px; left: 100px }
</style>
<script type="text/javascript">
var elt, tid, time = 0, suf = 'px';
if(!document.getElementById) {
document.getElementById = function(i) {
var e = document[i]; e.style = e; return e; }
suf = '';
}
function init() {
elt = document.getElementById('d1');
tid = setInterval(move, 30);
setTimeout(function() { clearInterval(tid); }, 5000);
}
function move() {
time += 0.03;
elt.style.top = (Math.floor(10*Math.sin(time*10)) + 100)+suf;
}
</script></head>
<body onload="init()">
<div id="d1"><img src="test.png" alt="an-image"></div>
</body></html>
766Name_Not_Found:2001/08/03(金) 13:19
>>764
ブラウザに内蔵されてるJavaScriptだと難しいんじゃないでしょうか。
あ、Java Appletは組み合わせられます。あと、サーバ側のCGIを呼ぶ
んならそのCGIのURIからロードするだけだからできます。

WSHなんかだとローカルプログラムの起動ができるんだろうけど、私は
WSH知らないのでパス。
767Name_Not_Found:2001/08/03(金) 14:01
関数が不定数の複数の引数を受け取って、それを関数内で使えるようにするには
どのようにしたらよいでしょうか?
768Name_Not_Found:2001/08/03(金) 14:11
>>767
<html><head><title>???</title>
<script type="text/javascript">
function sum() {
var v = 0;
for(var i = 0; i < arguments.length; ++i) v += arguments[i];
return v;
}
</script></head><body>
<p><a href="javascript: alert(sum(1,2,3,4,5))">test</a></p>
</body></html>
769Name_Not_Found:2001/08/03(金) 14:13
ponというところに画像を2秒間だけ
表示させたいんですけど下のようにしたらだめでした。
どうしたらいいですか??

setTimeout(function() { pon[0].src='a.gif'; }, 2000);
770Name_Not_Found:2001/08/03(金) 14:22
>>769
まず差し替える画像は最初に全部取り寄せておいた方が無難です。
あと、このpon[0]はどっから来てるの?ソース全部示すか、長すぎ
るようなら要点が分かる程度に示して欲しいな。それで、2秒間と
いうのはページが表示されてから最初の2秒間? 最後に、表示され
なくなった時点ではそこは「別の画像」が来るの?まるきり表示さ
れないの?まるっきり表示されなくするんならvisiblityを制御する
方がいいと思いますよ。たとえばこんな感じ?N4/N6/Mozilla/IE5。

<html><head><title>???</title>
<style type="text/css">
div { position: relative }
</style>
<script type="text/javascript">
if(!document.getElementById) {
document.getElementById = function(i) {
var e = document[i]; e.style = e; return e; }
}
function hide() { document.getElementById('d1').style.visibility = 'hidden'; }
</script></head>
<body onload="setTimeout(hide, 2000)">
<div id="d1"><img src="test.png" alt="an-image"></div>
</body></html>
771Name_Not_Found:2001/08/03(金) 14:32
>>765
本当にありがとうございました。
最後にもう1つ・・・。
下にもう1つ表示させる
画像を追加したいのですが
どうしたらいいでしょうか??
772Name_Not_Found:2001/08/03(金) 15:18
>>771
そんなの…
(1)<div>...</div>追加。idは変えてね。
(2)要素を保持する変数eltをもう1つ別の名前で増やす。
(3)init()でのその初期設定も増やす。
(4)move()で好きなように動かす。
これくらいできなきゃダメじゃん。何か問題ある?
773Name_Not_Found:2001/08/03(金) 16:03
スレ違いかもですがKW-SITEってどこ行ったんですか?
774Name_Not_Found:2001/08/03(金) 16:24
>>760
ありがとうございました。
ところで、
<script language="JavaScript">より
<script type="text/javascript"> のほうがいいのでしょうか?
775Name_Not_Found:2001/08/03(金) 16:45
>>774
HTML 4的にはscript要素にはtype属性が定義されているが
language属性は定義されていない。よってtype属性を使うのが
正しい。ただしJavaScript言語の版を使い分けるため(たとえば
このコードはJavaScript1.2以降用とか)には、language属性に
たよる必要がある。でもこのスレでそんなことやってる人は見た
ことがないようだ…
776732:2001/08/03(金) 17:20
>>745

今日改めて作り直しました。
一応これで予定通りになりました、ありがとうございます。
ここからもう少し簡略化できるでしょうか?

<TITLE>ans1</TITLE>
<style type="text/css">
div { position: absolute; z-index: 5; background-color: black;
width: 1024px; height: 768px }
</style>
<script type="text/javascript">
var d = new Array(5);
function init() {
for(var i = 0; i < 5; ++i) d[i] = document.getElementById('d'+i);
if(window.captureEvents) {
window.captureEvents(Event.MOUSEMOVE);
window.onmousemove = function(e) { move(e.pageX, e.pageY); }
} else {
document.onmouseover = function() {
move(window.event.clientX, window.event.clientY); }
}
}
function move(x, y) {
d[0].style.left = (x-80)+'px'; d[0].style.top = (y-828)+'px';
d[1].style.left = (x+80)+'px'; d[1].style.top = (y-60)+'px';
d[2].style.left = (x-1104)+'px'; d[2].style.top = (y-708)+'px';
d[3].style.left = (x-944)+'px'; d[3].style.top = (y+60)+'px';
d[4].style.left = x-80;d[4].style.top = y-60;
}
</script></HEAD>
<BODY id="b1" onload="init()" bgcolor="#339933" text="#99ff66" link="#ffff66" vlink="#ffcc00" alink="#ffffff">
<div id='d0'></div>
<div id='d1'></div>
<div id='d2'></div>
<div id='d3'></div>
<div style="background-color: transparent" id='d4'><IMG src="hoo.gif"></div>
<p>test...</p>
</BODY>
</HTML>
777Name_Not_Found:2001/08/03(金) 17:28
>>776
ほとんどそのままなんだから改めて貼らなくても…あのね、topとかleftとか
に入れる値は単位がついているべきなんで、「(x-80)+'px'」等とした方がいい
ですよ。しかし皆さんbodyタグで色指定るの好きですねえ。まあ別にいいですが。
778732:2001/08/03(金) 17:30
すいません、肝心な事忘れていました・・・

1、このブラウザゲームは640*480で動かすつもりなんですが
  その際、黒い箱の大きさは640*480でないといけませんか?
  また、640*480よりも小さいとどうなりますか?
2、640*480指定で開いているのに、操作者がブラウザを
  最大化した時には黒い箱はどうなりますか?
3、あんまり画面の端の方(下及び右)に行くと箱の表示が変になります。
  これは箱の値を大きくしないといけませんか?

どうかよろしくおねがいいたします。
779732:2001/08/03(金) 17:38
あの〜、重大な点が・・・

4、透過GIFから覗いてる部分をクリックできないんです。
  これができないとホントに先に進めません(泣
  リンクをクリックするにはどうすれば・・・?
780Name_Not_Found:2001/08/03(金) 18:52
>>779
爆笑!あなたそんなこと言ってなかったじゃない〜。そりゃ
透過GIFであろうと画像があるんだから向こう側をクリック
するのは困難だよね。四角い穴で我慢するか、どうしても
丸くしたければonmousemoveだけじゃなくonmousedownも取る
ようにして自前で何をクリックしてるか判定するとかさ。
XY座標は取れるんだから、何をどこに配置とか決まっていれば
判定はできるよねえ。

またはクリックしたら数秒間画像をどけて、もっかいクリック
させる?それは嫌っぽいな…

黒い箱の大きさは指定した通りの大きさで、ブラウザ窓の大きさ
を変えようが何しようがそのまんまです。なんだから、方眼紙
に図を書いて考えましょうよ。私だってそんなに考えてない
から、そらで回答なんか思いつかないよ〜。
781暗号:2001/08/03(金) 19:05
何となくJavascript関係のページ見てたらescapeとunsecapeを使って文字コード変換をすると言うのがありましたけど他にこのような変換⇔解読を行える方法ってあるのでしょうか?
もしあるなら教えてください。
782ともくん:2001/08/03(金) 19:22
こんにちは(^^)/。
さっそくですが、性格診断みたいなやつの作り方を教えてください。
783Name_Not_Found:2001/08/03(金) 19:33
>>772

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 100px; left: 100px }
</style>
<script type="text/javascript">
var elt, tid, time = 0, suf = 'px';
if(!document.getElementById) {
document.getElementById = function(i) {
var e = document[i]; e.style = e; return e; }
suf = '';
}
function init() {
elt = document.getElementById('d1');
tid = setInterval(move, 30);

}
function move() {
time += 0.03;
elt.style.top = (Math.floor(10*Math.sin(time*10)) + 100)+suf;
}
</script></head>
<body onload="init()">
<div id="d1"><img src="test.png" alt="an-image"></div>




div { position: absolute; top: 200px; left: 200px }
</style>
<script type="text/javascript">
var elt2, tid, time = 0, suf = 'px';
if(!document.getElementById) {
document.getElementById = function(i) {
var e = document[i]; e.style = e; return e; }
suf = '';
}
function init() {
elt2 = document.getElementById('d1');
tid = setInterval(move, 40);

}
function move() {
time += 0.03;
elt2.style.top = (Math.floor(10*Math.sin(time*10)) + 100)+suf;
}
</script></head>
<body onload="init()">
<div id="d1"><img src="test2.png" alt="an-image"></div>

</body></html>

と言うふうにしてみましたが
できませんでした・・・。
784Name_Not_Found:2001/08/03(金) 19:38
>>772

こうしたら出来ましたが
2つとも独立させて動かすには
Sinの位相をずらすしか
ありませんか??

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 100px; left: 100px }
</style>
<script type="text/javascript">
var elt, tid, time = 0, suf = 'px';
if(!document.getElementById) {
document.getElementById = function(i) {
var e = document[i]; e.style = e; return e; }
suf = '';
}
function init() {
elt = document.getElementById('d1');
tid = setInterval(move, 30);

}
function move() {
time += 0.03;
elt.style.top = (Math.floor(10*Math.sin(time*10)) + 100)+suf;
}
</script></head>
<body onload="init()">
<div id="d1"><img src="test.png" alt="an-image">



<style type="text/css">
div { position: absolute; top: 200px; left: 200px }
</style>
<script type="text/javascript">
var elt2, tid, time = 0, suf = 'px';
if(!document.getElementById) {
document.getElementById = function(i) {
var e = document[i]; e.style = e; return e; }
suf = '';
}
function init() {
elt2 = document.getElementById('d1');
tid = setInterval(move, 40);

}
function move() {
time += 0.03;
elt2.style.top = (Math.floor(10*Math.sin(time*10)) + 100)+suf;
}
</script></head>
<body onload="init()">
<div id="d1"><img src="test2.png" alt="an-image"></div>

</body></html>
785Name_Not_Found:2001/08/03(金) 19:44
>>727
プロトタイプなんとか〜ってところを教えてください
786Name_Not_Found:2001/08/03(金) 19:48
>>784
位相より角速度(time*10の10)を変えたらどうです?
しっかし、ここまで2つコピーしなくてもいいような。
もーちょっと修行しましょうよ。
787Name_Not_Found:2001/08/03(金) 19:54
>>785
function MyObj(...) {
this.value = ...;
this.method = function(...) { ... }
}

というふうにして「new MyObj(...)」でオブジェクトを作りますよね。
このときvalueとかmethodとかはオブジェクトごとに値を保持してる
わけです。でも全部のMyObjオブジェクトで共通の定数とか、共通の
メソッドなんかは、1箇所に入れた方が美しいわけです。

MyObj.prototype

というオブジェクトは関数を作ると自動的に用意されますが、ここに
そういう共通するものを入れておけば共有されます。

MyObj.property.sharedValue = ...;
MyObj.property.commonMethod = function(...) { ... }
788Name_Not_Found:2001/08/03(金) 19:59
>>781
escape()とunescape()はURL符号化とその解読ですね。同様のもの
として文字コードをUTF-8にしてからURL符号化するencodeURIComponent()
とdecodeURIComponent()があります。でもこれらは暗号じゃあないです
から。分かってる人なら解読するのも簡単です。解読が困難なように
するのは標準では無いです。Mugiさんのページとかに行けばいろいろ
あったと思うけど。
789Name_Not_Found:2001/08/03(金) 20:01
>>782
もうちょっと具体的に言ってくれないとねえ。ブラウザの前に座って
いる人の性格が分かる関数なんかは、当然ないです(w
790Name_Not_Found:2001/08/03(金) 20:16
>>786
修行不足ですいません・・・。
2つめの角速度(time*10の10)を変えたんですが
それが1つめの画像にも影響してしまいます・・・。
やっぱり、あのソースは間違いなんでしょうか・・・。
791Name_Not_Found:2001/08/03(金) 20:39
>>790
お気の毒ですが…もしあれがコピペし損ないでないのなら、はっきり言って
ボロボロです。<body onload="init()">が2つあるわ、
function init() {... も2つあるわ…元のソースに戻って、
次の箇所「だけ」を増やすようにしましょう。

(1)<div>...</div>の1行。idは新しくする。
(2)elt2の宣言。
(3)elt2の初期設定。
(4)elt2.style.topの設定。

つまり3行とちょっとしか増えないはずです。頑張ってください。
792 :2001/08/03(金) 20:39
センセイ モシカシテ マミヤサン?
793Name_Not_Found:2001/08/03(金) 23:11
>>791

以下のようにしてみましたが
どうしてもダイブイーグルが
飛んでくれません・・・。どうすればいいですか??


<html><head><title>飛んでる敵・2匹</title>
<style type="text/css">


div { position: absolute; top: 100px; left: 100px }
div2 { position: absolute; top: 200px; left: 200px }
</style>


<script type="text/javascript">


var elt,elt2,tid, time = 0, suf = 'px';



if(!document.getElementById) {
document.getElementById = function(i) {
var e = document[i]; e.style = e; return e; }
suf = '';
}



function init() {

elt = document.getElementById('d1');
elt2 = document.getElementById('d2');

tid = setInterval(move, 30);
}



function move() {
time += 0.03;

elt.style.top = (Math.floor(10*Math.sin(time*10)) + 100)+suf;
elt2.style.top = (Math.floor(10*Math.sin(time*20)) + 100)+suf;

}



</script></head>
<body onload="init()">

<div id="d1"><img src="フロータイボール.gif" alt="an-image"></div>
<div2 id="d2"><img src="ダイブイーグル.gif" alt="an-image"></div>

</body></html>
794753:2001/08/04(土) 01:09
遅レスすいません。

>>756さん

感動して目頭が熱くなりました。
本当に聞いてよかったです。

自分も少しは勉強しなくちゃいけませんね。

あらためて、どうもです。
795732:2001/08/04(土) 01:10
>>780

はぁ、この時間までずっと頑張ってましたけどうまく解決できませんでした。
2度クリックはしんどいので、白箱の外側にgif4枚貼りつけることで円形に
する方法で解決する見込みです。2度クリックもアイデア次第では面白いかも。
(ガラスを開ける→取る みたいな)
あと、どうしても画面端に行くと箱の動きがおかしくなるんです。
これに関してなにかイイ知恵ありませんでしょうか?

今日はここまでで寝ます。御指南有難うございました。
796Name_Not_Found:2001/08/04(土) 01:17
move cross engine for NS 4+

これってなんですか?
797102:2001/08/04(土) 03:07
始めまして。
連想配列のクリアや要素の削除ってどうやればいいでしょうか。

var the_array = new Array("a":1, "b":2);

なんてのがあるとして、

the_array["a"]だけを削除してthe_array["b"]だけを残したい。
the_array == {}にしたい。

よろしくお願いします。
798Name_Not_Found:2001/08/04(土) 03:43
ある画像をクリックすると、別にある
ただ文字が入っただけのブロック要素を消したいんですけど
どうしたら良いですか?
799Name_Not_Found:2001/08/04(土) 11:03
<html>
<head>
<script type="text/javascript">
<!--
function kesu(){
test.style.visibility="hidden";
}
//-->
</script>
</head>
<body>
<a href="#" onClick="kesu()"><img src="arugazou.gif"></a>
<div id="test" style="position:absolute;left:100px;top:100px;width:100px;height:100px;visibility:visible;">あ</div>
</body>
</html>
>>798
意味が分からん。
とりあえず勝手に判断して作ってみたナー。
800Name_Not_Found:2001/08/04(土) 11:33
>>793
惜しかったですね。まずHTMLにdiv2なんていうものはないです。
全部<div>...</div>にしましょう。ですから、スタイル指定も
1つのdivでいいのです。場所変えるのはelt.style.top/left、
elt2.style.top/leftをいじくればどうにでもなるでしょ?

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; top: 100px; left: 100px }
</style>
<script type="text/javascript">
var elt,elt2,tid, time = 0, suf = 'px';
if(!document.getElementById) {
document.getElementById = function(i) {
var e = document[i]; e.style = e; return e; }
suf = '';
}
function init() {
elt = document.getElementById('d1');
elt2 = document.getElementById('d2');
tid = setInterval(move, 30);
}
function move() {
time += 0.03;
elt.style.top = (Math.floor(10*Math.sin(time*10)) + 100)+suf;
elt2.style.top = (Math.floor(10*Math.sin(time*20)) + 100)+suf;
}
</script></head>
<body onload="init()">
<div id="d1"><img src="test1.png" alt="an-image"></div>
<div id="d2"><img src="test.png" alt="an-image"></div>
</body></html>
801Name_Not_Found:2001/08/04(土) 11:43
>>795
なるほど、4枚貼るっていうのはアイデアですね。しかし、右/下端に
来るとおかしくなるというのがどうも分かりません。自分の手もと
(N6/Mozilla/IE5.5)では再現しないので…OSとブラウザは何ですか?
あと、目隠しのサイズを小さくしたら(たとえば100x100)、右/下端に
100、100寄るまでは正常なのですか? もしそうなら、箱のサイズを画
面から大幅に出ないように位置と一緒に制御すると大丈夫になるかも
知れませんね。幅は「要素.style.width」、高さは「要素.style.height」
です、もちろん。
802Name_Not_Found:2001/08/04(土) 11:56
>>797
「new Array("a":1, "b":2)」っていう構文はおかしいと思う…
それを書くなら「{a:1, b:2}」でいいんでは?次に、特定の
プロパティを消去するのは、たとえば上記オブジェクトが変数
xに入っているとして

delete x.a;

なんてすればいいのでは。全部消去してbだけ残すんならforを使って

for(var p in x) if(p != 'b') delete x[p];

こんな感じ?
803Name_Not_Found:2001/08/04(土) 12:06
長いプログラムの中で
A.src='a.png';が入っていたんですが
それを消すのに
A.src=' ';としてみると、画像は消えるんですが
画像の存在を示す×マークが残ってしまいます。
×マークも消すにはどうすればいいでしょうか??
つまり何もないようにしたいのです・・。
804Name_Not_Found:2001/08/04(土) 12:10
>>803
せっかくのスレなんだからガイシュツかどうかくらい見ようよ。
>>770 がほぼそのまま使えるんじゃないの?
805Name_Not_Found:2001/08/04(土) 12:11
>>804
あと、>>799 の「あ」のところに画像を入れておけばそれでも消せるし。
806らくらぶ:2001/08/04(土) 12:15
>>803
その「長いプログラム」のどこかに、A自体を定義しているとこが
あるとおもうから、そこを消してみてん。
もしくはhtmlを記述してるとこに、Aを表示させろ!みたいな
とこがあるとおもうけん、そこを消せばよし!
ソースみないと、どこをけせばいい、とかないけん
こればっかは、 803 さんががむばって試行錯誤してね。

んぢゃー。
807803:2001/08/04(土) 13:18
>>804-806

さっぱりわからなかったので
透明の絵に変えたら
うまくいきました!!
808732:2001/08/04(土) 13:18
>>801
おはようございます・・・こんにちはですね・・・

http://k-free.com/javatest/javatest.htm

適当な所借りてみました、これで確認してみてください。

こちらの環境ですが、win98,ie5.5です。
809Name_Not_Found:2001/08/04(土) 13:33
>>807
js以前にhtmlを理解しているか迷わせる文言だ‥‥
810732:2001/08/04(土) 13:33
>>801

具体的に申しますと、ブラウザのバーを動かさないと行けない場所に
行った時点で表示がおかしくなるのです。
根本的な原因はやはり箱の大きさにあるのでしょうか?
811Name_Not_Found:2001/08/04(土) 14:24
>>801
ああ、ようやく理解しました!まさかスクロールバーでスクロールさせる
ほど大きい画面であれをやると思っていなかったです。もちろん、スクロ
ールのことは全然考えていなかったのでおかしくなって当然ですね。で、
対策ですが、スクロール位置を取得してその分ずらせばOKだと思います。
N6/MozillaとIEで違いますのでハンドラの中でやった方が簡単かな。最初の
バージョンをそのように直してみました。IEではbody要素を取得しておく
必要がありますので、変数bの宣言と初期設定が追加になってるのに注意。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; z-index: 5; background-color: black;
width: 1000px; height: 1000px }
</style>
<script type="text/javascript">
var d = new Array(4), b;
function init() {
b = document.getElementById('b1');
for(var i = 0; i < 4; ++i) d[i] = document.getElementById('d'+i);
if(window.captureEvents) {
window.captureEvents(Event.MOUSEMOVE);
window.onmousemove = function(e) {
move(e.pageX+window.pageXOffset, e.pageY+window.pageYOffset); }
} else {
document.onmouseover = function() {
move(window.event.clientX+b.scrollLeft,window.event.clientY+b.scrollTop);}
}
}

function move(x, y) {
d[0].style.left = (x-1010)+'px'; d[0].style.top = (y-1010)+'px';
d[1].style.left = (x+10)+'px'; d[1].style.top = (y-1010)+'px';
d[2].style.left = (x+10)+'px'; d[2].style.top = (y+10)+'px';
d[3].style.left = (x-1010)+'px'; d[3].style.top = (y+10)+'px';
}
</script>
</head><body id="b1" onload="init()">
<div id='d0'></div><div id='d1'></div><div id='d2'></div><div id='d3'></div>
<p>test...</p>
</body></html>
812Name_Not_Found:2001/08/04(土) 14:32
>>811
わー!ポカをやりました。上記の修正はIEでのみ必要で、
N6/Mozillaでは元のままのが正しいです。うーん、難しい。
ところでJavaScriptのテストにjavatestという名前をつけ
られるのはすごくもにょもにょするのですが…
813732:2001/08/04(土) 17:58
>>812

あ、こうすればよかったのですね?
本当に有難うございました。やっと一歩前に進めそうです。

え?亀レス?この時間まで何をしていたのかと申しますと・・・
アップしていたところのパスワードを書いてあったメールを削除してしまい
右往左往していたのです。結局見つかりましたがまだあっちは直してません。

もにょもにょですか・・・よく分からないんですけど・・・
その感覚は好きな女の子の前で恥ずかしがるような感じみたいなものですか?
それとも小便したくても我慢せざるをえないような感じですか?

なんにせよ有難うございました。
814夏厨:2001/08/04(土) 18:47
厨房です。ごめんなさい。教えてください。
a = "<IMG SRC='giko.gif'>";
b = "<IMG SRC='mona.gif'>";
と変数に文字列を入れて
document.write(a,b);
を実行するとそれぞれのイメージタグを吐き出してくれるのですが
document.write(1,2);
と書いて上と同じ結果を得るにはどうしたらよいのでしょうか。
どうしても文字ではなく数字を使いたいのですが…。
815Name_Not_Found:2001/08/04(土) 19:06
>>814
絶対にできませんね。

a[1] = '<img ...>';
a[2] = '<img ...>';
document.writeln(a[1]+a[2]);

くらいで我慢しませんか。
816Name_Not_Found:2001/08/04(土) 19:16
参考書を見て↓の現在の日時を表示するスクリプトをつくったのですが、
8月なのに"7月"と表示されます。どこがおかしいのでしょうか。PC内蔵時計はあってるのですが。

<html><head><title>?</TITLE>
<script language="JavaScript">
<!--
function Tadaima(){
Ima = new Date();
nen = Ima.getFullYear();
gat = Ima.getMonth();
nit = Ima.getDate();
day = new Array("日","月","火","水","木","金","土");
yob = day[Ima.getDay()];
jik = Ima.getHours();
hun = Ima.getMinutes();
byo = Ima.getSeconds();
document.form1.nichiji.value= nen +"年 "+ gat +"月 "+ nit +"日"+"("+ yob +")"
+" "+ jik +"時 "+ hun +"分 "+ byo +"秒";
setTimeout("Tadaima()",1000);
document.form1.burauza.value = navigator.appName;
}
//-->
</script>
</head>
<body onLoad="Tadaima()">
<form name="form1">
<input type="text" name="nichiji" size="50">
</form>
</body></html>
817814:2001/08/04(土) 19:16
やっぱり無理でしたか。あきらめますー。
ありがとうございました。
818Name_Not_Found:2001/08/04(土) 19:42
>>816
これもガイシュツなんだけど…JavaScriptのDateクラス使った
場合、月は0〜11で表わされます。だから「7」でちゃんと8月なの。
819815:2001/08/04(土) 20:01
>>817
撤回します。次のようにdocument.writeに自分で作った関数を
入れて良ければ何とかなります。しかしふつーのdocument.write
が使えなくなるので結構困るけど。ほとんど冗談の世界ですが。

var a = new Array(3);
a[1] = 'test 1';
a[2] = 'test 2';
document.write = function() {
for(var i = 0; i < arguments.length; ++i)
document.writeln(arguments[i]);
}
document.write(1, 2);
820816:2001/08/04(土) 20:36
>>818
vol.1から全部を見るのはたいへんなので、どの辺に出てたか教えていただけませんか。
821Name_Not_Found:2001/08/04(土) 20:57
>>816
たとえばvol.2 の87近辺とかかな…何がガイシュツか
と言われるとちょっと困るかな。
822Name_Not_Found:2001/08/04(土) 21:55
>>787
とってもとってもよくわかりました!!
それでですねぇ、>>727の関数リテラルの中の処理が???なんです。
alpha や vy っていう変数は何でしょうか?
プログラムを書く時はコメントを書いてくれるとうれしいのですが...
//やはり物理のおべんちょしたほうがいいかナァ 加速度がどうのこうの〜とか
823Name_Not_Found:2001/08/04(土) 22:02
>>818
多くの言語では、月と曜は0から始まります
なぜならば、この二つは
>>day = new Array("日","月","火","水","木","金","土");
とやっているように、文字列に直すことが多く、配列の添字は0から始まるから。

(月が0から始まるというのは)既出とかではなく、
言語のかなり基本部分なので、たいていの解説書で触れているはず。
書かれてないような解説書は、日付の扱いを取り上げてないか、
当然のことだからあえて言うまでもないと省いたかのどちらか。
824823:2001/08/04(土) 22:03
ぁぅ、818ではなく、>>816
825Name_Not_Found:2001/08/04(土) 22:24
>>822
はい、物理のお勉強ですね。まず、文字が「落ちて」くるっていう
ことは、下に行くほど速く落ちなければ変でしょう?速さはだいたい
Vで表します。縦方向っていうのはY軸だから、Y方向の速度でvy。
そして、時間が経つほど速度が増すので、dt時間ごとに比例定数を
αとして、α・dtだけ増すことにします。つまりvy += α・dt。
そして、跳ね返る時は向きが正反対になるのだから、vyの符号を
反転する…つまり -1.0 を掛ければいいんだけど、それじゃ完全な
反射だからちょっと遅くする。つまり -0.5 とか適当にそれらしい
値を掛ける。

で、ここまではずっとvyを計算してきましたが、上下方向の位置つまり
Y座標の値をyで表すとすると、yは速度が大きいほど速く変化するわけ
ですよね。だから速さなんだもんね。で、これは y += vy・dt で表せる
わけ。距離=速さ×時間って習ったよねえ。
826Name_Not_Found:2001/08/04(土) 22:29
>>823
月番号が0からってのは当然ですかね?だって日番号は1から
始まりますゼ。英語では月は番号で呼ばない(January, Februay, ...)
ということに思い至らないと分からないんだよね。そして思い至ると、
日本みたいに番号で呼ぶ国のことも考えてくれぇぇぇぇぇ!と叫んでしまふ。
827815:2001/08/04(土) 22:34
>>819
わー!間違えた。

(誤) document.writeln(arguments[i]);

(正) document.writeln(a[arguments[i]]);
828Name_Not_Found:2001/08/04(土) 23:54
ここのスレをみて、今日の夜8時からジャバスクリプトをしようと
決心したんですけど、最初はどんな本を読んだらいいですか??
ちなみにプログラム経験は全く無しです。
829Name_Not_Found:2001/08/05(日) 00:13
>>828
本の話題 >>1-10 しかしあんまり出てませんね。
この本オススメという話題もっと出てもいいんでは…
830Name_Not_Found:2001/08/05(日) 00:19
>>829
スマソ、>>1-31 くらいでした。
831Name_Not_Found:2001/08/05(日) 00:24
>>828
とりあえず一番分厚い本を買え
あとなるべくまだ発売されてあんまり立ってないやつ
間違っても薄いやつにするな
832Name_Not_Found:2001/08/05(日) 00:42
>>831
初めから分厚いの買うとやる気が消えないか??
1色刷りで字も小さいし。出来るだけ新しくて
カラフルで薄いのがいいと思うぞ!!
833Name_Not_Found:2001/08/05(日) 01:16
>>828
例くらい上げてやれよ・・。
834823:2001/08/05(日) 01:26
>>826
プログラミングの常識≠一般常識ではないし。
一般的かどうかはともかく、日本でも葉月とか長月とかいうものはあるから
月名に数字とは別の呼び名を持たせるという考えはわりと世界的にあるんじゃないかな
月と日と時間は意外に概念が違うと。

プログラミング初めてまず、添え字が0で始まるというところに違和感あったり
中には1から始まる言語もあるようだし

>>828
そういや、Web製作のためのリンクor図書スレッドってないですね
「JavaScriptという言語」に対してならオライリー、
HTMLを操作するためのJavaScript、ということなら解説本、
付録でリファレンスのついてない解説本(Tips本)は存在を無視すべし。

ぼくはオライリーと、良書ではないが「ホームページに今すぐ活かせる〜」
835Name_Not_Found:2001/08/05(日) 01:35
836798:2001/08/05(日) 01:59
>>799さま
分かりづらい質問ながら答えてもらってすみません。
まったくその通りでした。ありがとう。
837id="ejiru":2001/08/05(日) 02:05
最近次から次へとJS本がでてるけど、
みんな同じことしか書いてないような気がしない?
で、>>5の本まだ出ないのぉ?
838799:2001/08/05(日) 02:05
>>836
たまたまPC開いたらgoodtiming!!(マジ)
ドウイタシマシテ
寝ます。
839Name_Not_Found:2001/08/05(日) 02:58
同じことしか書いてないと優香、ほとんどチンピラ
だと思う。
840Name_Not_Found:2001/08/05(日) 12:00
>>837
ウーン、そろそろ本屋さんに並んでもいい頃なんですが…
841Name_Not_Found:2001/08/05(日) 14:22
txtファイルやhtmlのソースなんかが
すごい大きなサイズの場合、例えば、その中から
a[1] = 'test 1'; と言う部分だけを探したい時
その文字の部分の色が変わって
書かれている場所を教えてくれるような
ソフトを探しているんですけど、ありませんか??

vectorなんかで検索しようにも
どういう名前で検索したら言いかが分かりません。

だれか愛の手を・・・。
842Name_Not_Found:2001/08/05(日) 15:04
spcファイルを鳴らしたいんですが
なんかいい方法ありますか??
spcをmidに変換ってできませんよねぇ・・・・。
843816:2001/08/05(日) 17:29
>>823,>>826
ご指摘の通り曜日と同じ処理をしたらうまくできました。ありがとうございます。
844Name_Not_Found:2001/08/05(日) 17:33
フォームを使う処理で、たとえば
<form name="form1"></form> <form name="form2"></form>
と並べると、改行されて間が空いてしまいますね。
1つにまとめられればいいですが、どうしても2つにしなくてはならないときに
間を空けずにレイアウトする方法はありますか?
845Name_Not_Found:2001/08/05(日) 18:25
>>841
キーワードは「テキストヴューアー,テキストエディタ,grep」といったあたりで.

>>844
スタイルシート.というか,この質問自体 JavaScript とあまり関係がない.
846Name_Not_Found:2001/08/05(日) 19:16
>>837
激しく同意。
「これ!」といったのが無いよね。
847Name_Not_Found:2001/08/05(日) 21:42
今日はプログラムの質問が来ないぞ!
848はうら:2001/08/05(日) 22:48
はじめまして、はうらと言います。
よろしくお願いします。

【ページを移動すると、元のページが閉じる】
っていうのは、実現可能なのでしょうか?

窓Aがあり、窓Aから窓Bを開く。
窓Bからフォーカスを窓Aに戻すと
窓Bが閉じる。

↑こういう事がしたいのです。

JAVAスクリプトの onUnload と window.close()
を使って試してみたのですが、出来ませんでした。
JAVAスクリプトはいまいち、よく理解していない為
書き方がマズかったのかもしれませんが、根本的な所で
間違っているのかもしれません。
<body onUnload="window.close()">
↑このように書いてみたのですが・・・

<SCRIPT>
<!--
onUnload="window.close()";
// -->
</SCRIPT>
↑これをヘッダ内にも書いてみたりしました。

もしかすると、恐ろしく基本的な事なのかもしれませんが
わかる方いらっしゃいましたら、宜しくお願いします。
849Name_Not_Found:2001/08/05(日) 22:58
>>847
フォーカスが外れた時起動されるハンドラはonunload
ではなくonblurです。body要素の属性をonblurに直し
てみては?

あと、HTMLでは属性の大文字小文字は問題にならない
のですが、JavaScript側では問題になります。で、たぶん
全部小文字で書かないと動作しないんじゃなかったかな。
うろ覚えですけど。
850はうら:2001/08/05(日) 23:20
>>849 さん
ありがとうございます。
無事解決する事が出来ました。

使うのが違うって・・・
予感的中、恐ろしく基本的な事でした・・・(鬱

初歩的な質問にレス下さってありがとうございました。
851Name_Not_Found:2001/08/06(月) 02:02
独習Javaという
本がありますよね。
独習Javaスクリプトという本はあるんでしょうか??
852Name_Not_Found:2001/08/06(月) 02:22
>>851
MYCOMから出てる「1週間でマスターするJavaScript」
ってのはありますが。
まあなんとなく基本はわかりますよ。

あとはリファレンス集とか参考にしたり、
いろんなサイトからソースぱくったりしつつ精進。。
853Name_Not_Found:2001/08/06(月) 08:57
と言うか、識者の皆様は、一番最初Javascript始める時、
どの様にして入られたのですか?本?それとも何かで
習われたとか?やっぱ習うべきですか。
854Name_Not_Found:2001/08/06(月) 09:02
JavaScriptを専門で教えてるところなんてあるのかな。
あるんならどういう内容なのか知りたい〜。

もっとも、プログラミングに入門するのにJavaScript
ってちょっといいと思うんだけどなー。
855Name_Not_Found:2001/08/06(月) 12:52
>>832
じゃあ、良いカラー刷りの本1冊選んで下さい。
僕を含む、ここに来てる素人衆はソレ1冊買えば、
「テキスト●ページ見て」みたいなことができますNE。名案。
856734:2001/08/06(月) 12:53
>>725
探したらありました。

指定URLをスタートページにする
http://203.141.192.39/special/003/
857Name_Not_Found:2001/08/06(月) 13:01
すいません、JavaScriptとDHTMLとの
関係がわかりません。初心者です。教えてください。
858Name_Not_Found:2001/08/06(月) 13:18
>>857 激しくガイシュツだな。>>606-608
859Name_Not_Found:2001/08/06(月) 13:49
>>857
stylesheetをjavascriptでイジリ倒すのがdhtml。
カナーリ叩かれそうだが、こう思っておけ。
860Name_Not_Found:2001/08/06(月) 13:57
>>859
スタイルシートとまったく関係のない例。

<html><head><title>???</title>
<script type="text/javascript">
function step() {
var elt = document.getElementById('i1');
var c = elt.firstChild.data.substring(0, 1);
var s = elt.firstChild.data.substring(1);
elt.firstChild.data = s + c;
}
</script>
</head><body onload="setInterval(step,50)">
<h1 id='i1'>This is a pen....</h1>
</body></html>
861Name_Not_Found:2001/08/06(月) 18:28
>var a = [70, 100, 70, 70, 100, 70, 100, 100], elt, count;

上の方で見つけたんですが、変数にこんな沢山値を入れれるんですか?
しかもその働きがワカリマセン。
862Name_Not_Found:2001/08/06(月) 20:17
>>861
えー、[値, ...] というのは配列リテラルです。だからそこんところは次のと同じ。

var a = new Array(8);
a[0] = 70; a[1] = 100; a[2] = 70; a[3] = 70;
a[4] = 100; a[5] = 70; a[6] = 100; a[7] = 100;

短い方がいいでしょ?
863Name_Not_Found:2001/08/06(月) 20:19
ただの配列
864861:2001/08/06(月) 20:35
>>862
丁寧に書いてくれたので理解できました。
どうもですm(_ _)m
865Name_Not_Found:2001/08/06(月) 23:59
オイッ、だから普通の配列と同じように扱えるんだってば…
866Name_Not_Found:2001/08/07(火) 00:07
>>865
その説明で分かると思うか?オブジェクト指向言語に慣れてないと
結構つらいと思うのだけど…

for(var i = 0; i < 7; ++i)
document.writeln(['Sun','Mon','Tue','Wed','Thr','Fri','Sat'][i]);

とかこういう例でも挙げた方がいいのかな…
867Name_Not_Found:2001/08/07(火) 00:10
オブジェクト指向でなくてもどんな言語にも配列はあるでしょぉ
868Name_Not_Found:2001/08/07(火) 00:17
>>867
その通り。しかし「変数に配列値を入れたとたんに配列として
使える」というのは型のないオブジェクト指向ならではでしょ?

Cの場合: ○int a[] = {1,2,3,4,5}; ×int i = {1,2,3,4,5} ×int a[] = 5;

JSの場合: ○var a = [1,2,3,4,5]; ○var i = {1,2,3,4,5} ○var a = 5;

気分的にだいぶ違うと思うんだけどね。まあ違わないと思う
人と論争しても決着なんかつかないから好きずきということで
いいや。>>866 は撤回しておきます。それでいいんだろ?
869868:2001/08/07(火) 00:19
なんか誤植だらけだった。スマソ。

Cの場合: ○int a[] = {1,2,3,4,5}; ×int i = {1,2,3,4,5}; ×int a[] = 5;

JSの場合: ○var a = [1,2,3,4,5]; ○var i = [1,2,3,4,5]; ○var a = 5;
870Name_Not_Found:2001/08/07(火) 00:21
質問が来ないなあ!もう寝よ。
871Name_Not_Found:2001/08/07(火) 00:26
背景のなんでもない所をクリックすると、そこにボックス属性が!
みたいなのはどうしたらいいスか。
クリックしてALTを出す、みたいな。
872Name_Not_Found:2001/08/07(火) 00:29
いやいや、べつにけちつけたいわけじゃないのよ
で、型がないからできるってこと?
873Name_Not_Found:2001/08/07(火) 00:32
ボックス属性ってなんだろ
874Name_Not_Found:2001/08/07(火) 00:35
>>871
透過GIFにALT
875Name_Not_Found:2001/08/07(火) 00:40
ジャバスクリプトで
FFの戦闘シーン(敵複数とキャラクター複数)みたいなのは出来ますか??
876874:2001/08/07(火) 00:45
>>874
嘘ですので信用しないで下さい。
877Name_Not_Found:2001/08/07(火) 00:45
>>871
こんな感じ?N6/Mozilla/IE5用。N4も直せばたぶんできる…

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; z-index: 5; border-style: ridge;
border-color: blue; border-width: 4px; visibility: hidden }
</style>
<script type="text/javascript">
var elt;
function init() {
elt = document.getElementById('d1');
if(window.addEventListener) {
window.addEventListener('click',
function(e) { pop(e.pageX, e.pageY); }, false);
} else {
document.onclick = function() {
pop(window.event.offsetX, window.event.offsetY); }
}
}
function pop(x, y) {
elt.style.visibility = 'visible';
elt.style.left = (x-3)+'px'; elt.style.top = (y-3)+'px';
}
function unpop() { elt.style.visibility = 'hidden'; }
</script>
</head><body id="b1" onload="init()">
<div id="d1" onmouseout="unpop()">Popup...</div>
<p>test...</p>
</body></html>
878Name_Not_Found:2001/08/07(火) 00:53
>>872
うーん、そうじゃないなあ。ふつうの言語の配列って、あくまでも
変数定義するときに「これ配列ね」って定義するじゃない。それが
int a[] とかいう形でなくてもいいんだけど。

オブジェクト指向言語で、配列もオブジェクトっていう設計のだと、
変数はあくまでも普通の(オブジェクトを入れる)変数であって、
入れる(型がある場合は入れられる)ものが配列だから配列として使
えるっていうか。もともとの

var a = [....], b, c;

なんていうの、aもbもcも普通の変数だけどaは初期設定で入れる
ものが配列オブジェクトだからそれでa[0]とか言えるようにように
なる、っていうの、やっぱり普通の言語の配列と違うっぽくない?
気分の問題だから違わんと言われたらそれまでなんだけどね。
879Name_Not_Found:2001/08/07(火) 00:58
>>875
FFをやったことないのでパス。別スレでゲーム作ってるよ。
880Name_Not_Found:2001/08/07(火) 01:25
>>875
無茶苦茶言うなぁ(;´д`)
それはJAVAの世界じゃないの?
881Name_Not_Found:2001/08/07(火) 11:27
>>875
★★初心者でもできる?JavaScriptで作るRPG★★
http://natto.2ch.net/test/read.cgi?bbs=hp&key=996553119&ls=50

のなかで、それあったよ。JavaScrpitでFFの戦闘シーンつくってるの。
>> http://www5.justnet.ne.jp/~uuuu/battle/
いやあ、すごいよ。
882Name_Not_Found:2001/08/07(火) 12:12
他には無いJavaScript@TIPS書みたいのを、まじめにつくりたい人募集中ー!
参加希望者は [email protected] までご連絡くださいー。
883Name_Not_Found:2001/08/07(火) 12:26
>>882
jscriptっていう名前はどうなんだろうね?MS専用みたいじゃん。
884Name_Not_Found:2001/08/07(火) 12:46
>>881
実はそれを知って
キャラと敵が多いのは無いかなぁと思い
>>875に書き込んだわけです・・・・。
885Name_Not_Found:2001/08/07(火) 12:48
背景を青にして
文字をテロップさせるのって
どうしたらいいですか??

FF3のスタート画面みたいにしたいんですが・・・。
886Name_Not_Found:2001/08/07(火) 12:50
>>881
そのFFってスタートすると
周りの背景が黒くなるじゃない!
それってどうしたら実行した時に
黒く出来るのですか??
887Name_Not_Found:2001/08/07(火) 12:52
表示した絵を
下からがけ崩れみたいに
崩したいんですが、どうしたらいいですか??
888Name_Not_Found:2001/08/07(火) 12:52
>>884
なるほど。それを、はやくイエよ。
>>886
フルスクリーンにしてるのだ。
ええっと、どうやるのかわ、忘れた(w

質問。マイクロソフトの↓
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/behaviors/reference/behaviors/homepage.asp
にある、iframeみたいななかに、ページが表示されてるよね
あれってどうやるのか、わかるひといない?
ちょい、スレ違いかもだけど、分かるひとおしえて!
889Name_Not_Found:2001/08/07(火) 14:03
>>885
背景青は<body style="background:#0000ff;">でいいんじゃ?
テロップってどんなんだ?
下からスクロールしてくるヤツか?フェードイン、フェードアウトか?
皆が皆FF経験者ではない。
詳細キボン。
890Name_Not_Found:2001/08/07(火) 14:25
>>889 まったくだ。私もよく分からんがとりあえず作ってみたぞ。

<html><head><title>???</title>
<style type="text/css">
body { background-color: white }
div { color: white; position: absolute; top: 20px; left: 1024px;
font-size: xx-large; width: 2400px }
</style>
<script type="text/javascript">
var d1, b1, count = 255, xpos = 1024;
function init() {
d1 = document.getElementById('d1'); b1 = document.getElementById('b1');
step1();
}
function step1() {
b1.style.backgroundColor = 'rgb(' + count + ',' + count + ',255)';
d1.style.left = (--xpos)+'px';
if(--count >= 0) setTimeout(step1, 20); else step2();
}
function step2() {
d1.style.left = xpos+'px'; xpos -= 4;
if(xpos >= -2048) setTimeout(step2, 20);
}
</script>
</head><body id="b1" onload="init()">
<div id="d1">これはテストです。これはテストです。これはテストです。</div>
</body></html>
891Name_Not_Found:2001/08/07(火) 14:48
>>887
とりあえず作ってみたが。もっと加速度がついて落ちる方が
よければ前にあった「はずむ」のを混ぜる。もっとランダムな
のがよければ乱数を使う。画像は当然加工して作るよね。

<html><head><title>???</title>
<style type="text/css">
div { background-color: blue; color: white; width: 100px;
height: 100px; position: absolute; font-size: xx-large }
</style>
<script type="text/javascript">
var a = new Array(), tid, time = 0;
function Panel(i, x, y, t, m) {
this.elt = document.getElementById(i);
this.elt.style.left = (this.xpos = x)+'px';
this.elt.style.top = (this.ypos = y)+'px';
this.start = t; this.max = m;
this.move = function(t) {
if(t < this.start || this.finish) return;
this.elt.style.top = (this.ypos += 4)+'px';
this.finish = this.ypos > this.max; return this.finish; }
}
function init() {
for(var i = 0; i < 4; ++i)
for(var j = 0; j < 4; ++j)
a.push(new Panel('d' + i + j, j*100+100, i*100+100, 3-i*0.5+j*0.1, 500));
tid = setInterval(step, 20);
}
function step() {
var finish = true, t = (time += 0.02);
for(var i = 0; i < a.length; ++i) if(!a[i].move(t)) finish = false;
if(finish) clearInterval(tid);
}
</script>
</head><body id="b1" onload="init()">
<div id="d00">A</div>
<div id="d01">B</div>
<div id="d02">C</div>
<div id="d03">D</div>
<div id="d10">E</div>
<div id="d11">F</div>
<div id="d12">G</div>
<div id="d13">H</div>
<div id="d20">I</div>
<div id="d21">J</div>
<div id="d22">K</div>
<div id="d23">L</div>
<div id="d30">M</div>
<div id="d31">N</div>
<div id="d32">O</div>
<div id="d33">P</div>
</body></html>
892Name_Not_Found:2001/08/07(火) 14:49
>>888
iframeみたいなのって、iframeじゃないの?何が問題なの?
893Name_Not_Found:2001/08/07(火) 15:27
>>889
ほんと、すいませんでした。
下から上に向かって
テロップします・・・。
ちなみに音も付けたいです・・。
894Name_Not_Found:2001/08/07(火) 15:28
>>>893
音というのはmidiです・・・。
895Name_Not_Found:2001/08/07(火) 15:46
>>894
<html>
<head>
<style type="text/css">
<!--
body{
background:#0000ff;
}
#mona{
position:absolute;
width:200px;
height:200px;
top:400px;
background:transparent;
color:#ffffff;
}
-->
</style>
<script type="text/javascript">
<!--
function giko(){
if(mona.style.pixelTop>-200){
mona.style.pixelTop-=10;
setTimeout("giko()",100);
}
}
//-->
</script>
</head>
<body onLoad="giko()">
<div id="mona">こんなんかナー!!!</div>
</body>
</html>

ちなみに>>890さんの方が詳しい。
当スレの神だ。
896Name_Not_Found:2001/08/07(火) 15:57
>>895
1瞬だけ
上のほうに文字が出ますね・・・。
897Name_Not_Found:2001/08/07(火) 17:01
>>895
最初にpixelTopを参照するのがうまく行っていないとみた。
プロパティの参照って結構問題ありだから、位置は決め打ちで
JavaScript変数側で持った方がいいと思うよ。その他いろいろ
自分流に直してしまいました…下につけます。

この1か月くらいすっかりこのスレにはまってしまい、常連の方たち
を押しのけて解答しまくったのでほとんど荒らし状態でしたが、明日
から夏休みで帰省するもんでいなくなります。我ながらやりすぎだった
と反省してますので、勘弁してくださいネ。( ´Д`) さんラクラブ
さんその他以前からの常連の皆様、あとはよろしく。ネットカフェの
蔭あたりから拝見してます(んなトコロで開発するわけに行かんもんね)。

あ、今晩、いや明日の朝まではいます(w

<html><head><title>???</title>
<style type="text/css">
body{ background-color: blue }
#mona { position: absolute; top: 400px; color: white }
</style>
<script type="text/javascript">
var elt, pos = 400;
function init() {
elt = document.getElementById('mona');
setTimeout(giko, 100);
}
function giko() {
elt.style.top = (pos -= 10)+'px';
if(pos > -200) setTimeout(giko, 100);
}
</script>
</head><body onLoad="init()">
<div id="mona">こんなんかナー!!!</div>
</body></html>
898Name_Not_Found:2001/08/07(火) 17:43
>>897

このスレ見てたら、私もFF作って見たくなりました・・。

テロップされる文字を中央に表示して
テロップの範囲が一番下から一番上までではなく
少し上下の淵を残すには
どうしたらいいですか??
1番下より少し上から
ジワーッと文字が現れて、テロップの後
1番上よりすこし下に来たところで
ジワーッと文字が消えるように
してみたいですが
どうしたらいいですか??
899Name_Not_Found:2001/08/07(火) 17:50
>>898
その「ジワーッと現われる/消える」が、色が変わって現われたり
消えたりするのか、見えない「枠」があってそのふちから出入り
する感じなのか、どっちですか?

あと、中央に表示というのは、下から出て来て、中央で止まって、
また動き出して上へ消えて行くということ?
900Name_Not_Found:2001/08/07(火) 18:16
>>898
とりあえず、上下を箱で目隠しする方で作ってみました。
配列に「動かし方」を入れてあるのでそこだけ直せば色々
ヘンな動きもできます。

<html><head><title>???</title>
<style type="text/css">
div { position: absolute }
div#d1 { top: 0px; height: 40px; width: 100%; background-color: white }
div#d2 { position: absolute; top: 300px; left: 100px }
div#d3 { top: 260px; height: 240px; width: 100%; background-color: white }
</style>
<script type="text/javascript">
var a = [0, 80, -2, 80, 0, 40, 1, 5, -15, 20];
var elt, tid, ypos = 300, dy = 0, count = 0;
function init() {
elt = document.getElementById('d2'); tid = setInterval(step, 50);
}
function step() {
if(count == 0 && a.length == 0) { clearInterval(tid); return; }
if(count == 0) { dy = a.shift(); count = a.shift(); }
if(dy != 0) { elt.style.top = (ypos += dy)+'px'; }
--count;
}
</script>
</head><body onload="init()">
<div id="d2">This is a pen...</div>
<div id="d1"></div>
<div id="d3"></div>
</body></html>
901898:2001/08/07(火) 18:56
>>889-900
本当にありがとうございます。
中央に表示と言うのは
普通、文字は左端から表示されますが
言葉では分かりにくいので・・・・。

例:りんごとみかん

//普通//

りんごとみかん

//中央に表示//

            りんごとみかん

・・・と、こうしたかったわけなんですよ。
902Name_Not_Found:2001/08/07(火) 20:00
半角カタカナと全角カタカナの入力可のテキストボックスを作りたいのですが
入力チェックのやり方がわかりません。
教えてください
903Name_Not_Found:2001/08/07(火) 20:49
>>902
あのー、文章の意味が不明なんですが…テキスト入力欄において、
いわゆる半角のカタカナや、全角のカタカナが入っていたら警告
するとか、そういう意味でしょうか?
904Name_Not_Found:2001/08/07(火) 21:49
一度オンクリックで処理した関数を、ブラウザのリロードなしでもう一度動かすにはどうすれば?
関数の初期化みたいな…
905Name_Not_Found:2001/08/07(火) 21:57
>>904
えー?別にどこからだって呼べばいいじゃないですか。「もう1度」
動くのは「いつ」であって欲しいんですか?クリックされてから
何秒後とかそういう感じ?
906Name_Not_Found:2001/08/07(火) 22:06
>>905
クリックしたら即です
907Name_Not_Found:2001/08/07(火) 22:15
>>906
あのー、onclickで指定された関数はもともとクリックされる
たびに何度でも実行されますが…現状のどういうところに困って
らっしゃるのか分りません…
908Name_Not_Found:2001/08/07(火) 23:23
>>903
いちお、カタカナ(8ビット、16ビット)の判定だけ
作ってみました。Unicodeのコード番号調べるだけですけどね。

<html><head><title>???</title>
<script type="text/javascript">
function check() {
var c = document.forms[0].elements[0].value.charAt(0);
if(c >= '\uff61' && c <= '\uff9f') {
document.forms[0].elements[2].value = '8ビットカタカナ';
} else if(c >= '\u30a1' && c <= '\u30fe') {
document.forms[0].elements[2].value = '16ビットカタカナ';
} else {
document.forms[0].elements[2].value = 'カタカナ以外';
}
}
</script>
</head><body>
<form action="#"><p>
<input type="text"><input type="button" value="check" onclick="check()"><br>
<input type="text">
<p></form>
</body></html>
909Name_Not_Found:2001/08/08(水) 00:28
リンクの場所にマウスを置くと、右側に右向きの矢印が現れるというものは、
どうしたら出来るのでしょうか?
いろいろ調べてみたのですが、わかりません。
すみません。。。教えてください。よろしくお願いします。
910Name_Not_Found:2001/08/08(水) 00:46
<Script Language="JavaScript">
<!--

var pakaWi61=".html";
var paMeWi61="パスワードを入れて下さい。";

function adWi61() {
var pa=prompt(paMeWi61,"");
if (pa!=null) if (pa!="") location.href=pa+pakaWi61;
}

// End -->
</Script>

上のjavascriptは入力した言葉+.htmlでファイル名になり、
そのページがあればそこへジャンプする。
適当に入力した場合(パスがあってない)は指定したページ
(例えばend.html)とかに飛ばすようにはできないかな?
どなたかお願いします。
911Name_Not_Found:2001/08/08(水) 02:37
>>909
<html>
<head>
<script type="text/javascript">
<!--
function mieru(){
cursor.style.visibility="visible";
}
function mienai(){
cursor.style.visibility="hidden";
}
//-->
</script>
</head>
<body>
<a href="#" onMouseOver="mieru()" onMouseOut="mienai()">りんく</a>
<div id="cursor" style="position:absolute;visibility:hidden;">→</div>
</body>
</html>
ゴメソ、これくらいしか解らぬ。
912Name_Not_Found:2001/08/08(水) 02:52
>>910
webmonkey(検索してね♪米鳥にあった筈)にprompt使って飛ばすやつ、あったよ。
そのアイデア凄くいいね!
913Name_Not_Found:2001/08/08(水) 03:03
>>909
CSS使うんだよ〜。
914001:2001/08/08(水) 03:58
go liveでウィンドウcloseのアクションを付けたのですが、
やたらソースコードが長いんです。まず、
<!-- #EndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<csactions>
<csaction name="end" class="Close Window" type="onevent">
</csactions>
<csscriptdict>
<script><!--
function CSClickReturn () {
var bAgent = window.navigator.userAgent;
var bAppName = window.navigator.appName;
if ((bAppName.indexOf("Explorer") >= 0) && (bAgent.indexOf("Mozilla/3") >= 0) && (bAgent.indexOf("Mac") >= 0))
return true; // dont follow link
else return false; // dont follow link
}
これは多分UAでアクションを分けてると思うのですが、
この次..
915002:2001/08/08(水) 04:01
CSStopExecution = false;
function CSAction(array) {
return CSAction2(CSAct, array);
}
function CSAction2(fct, array) {
var result;
for (var i=0;i<array.length;i++) {
if(CSStopExecution) return false;
var actArray = fct[array[i]];
if (actArray == null) return false;
var tempArray = new Array;
for(var j=1;j<actArray.length;j++) {
if((actArray[j] != null) && (typeof(actArray[j]) == "object") && (actArray[j].length == 2)) {
if(actArray[j][0] == "VAR") {
tempArray[j] = CSStateArray[actArray[j][1]];
}
else {
if(actArray[j][0] == "ACT") {
tempArray[j] = CSAction(new Array(new String(actArray[j][1])));
}
else
tempArray[j] = actArray[j];
}
}
else
tempArray[j] = actArray[j];
}
result = actArray[0](tempArray);
}
return result;
}
CSAct = new Object;
これは良く分からないです。
さらに..
916003:2001/08/08(水) 04:06

function CSCloseWindow() {
if (self.parent.frames.length != 0) {
self.parent.close()
} else {
window.close()
}
}

// --></script>
</csscriptdict>
<csactiondict>
<script><!--
CSAct[/*CMP*/ 'end'] = new Array(CSCloseWindow);

// --></script>
</csactiondict>
</head>
となって
<a href="#" onclick="CSAction(new Array(/*CMP*/'end'));return CSClickReturn();" csclick="end"><img src="close.gif"></a>
これがボタンなのですが、javascriptであるという宣言
が見あたらないんですがなぜでしょうか?出来ればもっと短くしたいのですが。
917001-003:2001/08/08(水) 04:08
長々と申し訳ないです。
918Name_Not_Found:2001/08/08(水) 04:14
>>910

いいアイデア! 誰か改造して!
俺も使いたいかも(w
919Name_Not_Found:2001/08/08(水) 04:19
>>001-003
GoLiveってそんなにイイかな?
GoLive使うより手書きの方が全然シックリ来る。
adobeのモノは勝手に色々付け加えるので有名。
pagemill然り。
返答になってないな...
920Name_Not_Found:2001/08/08(水) 06:54
>>910

<TITLE>パスワードで他のページに飛ぶ</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--

function getPassword() {
pw = prompt("パスワードを入力してください:","")
if(pw) {
location = pw + ".html"
} else {
alert("パスワードが入力されていません")
}
}
// end of JavaScript -->
</SCRIPT>
</HEAD>
<BODY>
<A HREF="javascript:getPassword()">秘密のページ</A>
</BODY>
</HTML>

同じような内容だけど、パスが空白だったらアラートがでるようになってる。
不正解パスだったら・・・ってのはどうやればいいんだろう?
誰か頼む(^人^)
921Name_Not_Found:2001/08/08(水) 07:47
>>921
こういうのはネ、「正しいパス」をモロに入れたらソース見られて
バレちゃうじゃない。だから、正しいパスにMD5みたいなハッシュ
関数を掛けたものを計算しといて、その答えを保持しといて、打ち
込まれたパスワードにも同じ関数を掛けて、計算した値が保持して
る値のどれかと一致したらOK、というふうにするわけ。デタラメな
入力でたまたま一致してしまう確率は極めて低い。MD5の計算は、
たとえばこちら。

http://pajhome.org.uk/crypt/md5/md5src.html

もちろん、予め計算するのにも同じ関数を使う必要があるので、
計算用のJavaScriptプログラムも別途作らないとね。
922Name_Not_Found:2001/08/08(水) 08:31
>>909
N6/Mozilla/IE5.5で作ってみました。N4はマウス位置をうまく取れない…

<html><head><title>???</title>
<style type="text/css">
div { position: absolute; visibility: hidden }
</style>
<script type="text/javascript">
var img, elt;
function init() {
img = document.getElementById('d1');
elt = document.getElementById('a1');
if(elt.addEventListener) {
elt.addEventListener('mouseover',
function(e) { pop(e.pageX, e.pageY); }, false);
elt.addEventListener('mouseout', unpop, false);
} else {
elt.onmouseover = function() { pop(window.event.x, window.event.y); };
elt.onmouseout = unpop;
}
}
function pop(x, y) {
img.style.left = (x-40)+'px'; img.style.top = (y-5)+'px';
img.style.visibility = 'visible';
}
function unpop() { img.style.visibility = 'hidden'; }
</script>
</head><body onload="init()">
<div id = "d1"><img src="test.png" alt="a pointer"></div>
<p>test.....<a id="a1" href="#">test...</a></p>
</body></html>
923Name_Not_Found:2001/08/08(水) 08:35
>>919 に賛成。なんで窓を閉じるだけでこんな長いの? 自分で考えた方が楽。
924Name_Not_Found:2001/08/08(水) 08:56
>>921

僕はよく解らないのですが、>>910>>920もパスワードはソースには
書かれてないですよね? それなのにソースを見られたらバレちゃうと
はどういう意味なんでしょうか?
例えばランダムにiejfan.htmlっていうファイルを作って、パスワード
にiejfanって入力しない限り進めないんじゃないんですか?
違うのかなぁ。ちょっと疑問に思ったもので。(^^;
925Name_Not_Found:2001/08/08(水) 12:23
カリスマさんがいなくなっちゃうのぉ...(涙)
926Name_Not_Found:2001/08/08(水) 13:27
>>924
920が最終、且つ限界形。
パスを間違っている場合は放置。
javascriptで正誤判断をするとなると、‘どれが任意のページに逝けるパスか’
又は‘どれ以外が任意のページへ逝けないのか’を条件式にカキコせねばならないと思われ。
  ↓
ソース見る
  ↓
パス解る
  ↓
マズー(゜д゜;
927Name_Not_Found:2001/08/08(水) 14:37
同じフォーマットのページが続くので、共通部分のHTMLを外部jsファイルから
書き出しているのですが、その中にonMouseイベントなどのJavaScriptが入ると
どうにもうまくいきません。

document.write("
ソース
")

なんて横着してちゃダメですか?
どなたか知恵を貸してください。
928Name_Not_Found:2001/08/08(水) 14:41
http://www2.sala.or.jp/~uuu/rpg/rpg.lzh
のプログラムって
変な関数多いんですけど
これって本当にジャバスクリプトなんですか??
929Name_Not_Found:2001/08/08(水) 16:30
http://natto.2ch.net/test/read.cgi?bbs=hp&key=994168119&st=583&to=583&nofirst=true
のスクリプトで、
onMouseoverしたときに、visibleだったらhiddenに、hiddenだったらvisibleに...
というように、判定をして可視・不可視を変更させたいのですが、
これって、難しい事なのでしょうか?
930Name_Not_Found:2001/08/08(水) 17:34
>>929
>>911に書いてあんのがそうじゃねぇの?( -"-)
931Name_Not_Found:2001/08/08(水) 17:49
>>929
<html>
<head>
<script type="text/javascript">
<!--
var m="visible";
var n="hidden";
function DQN(m,n){
cursor.style.visibility=m,n;
}
//-->
</script>
</head>
<body>
<a href="#" onMouseOver="DQN(m)" onMouseOut="DQN(n)">りんく</a>
<div id="cursor" style="position:absolute;visibility:hidden;"><img src="test.png"></div>
</body>
</html>
932929:2001/08/08(水) 18:31
ごめんなさい...
>>594 の間違いでした。
ここに書かれているスクリプトをマウスオーバーで動作させるのではなく、
マウスクリックで表示・非表示できるようにしてみたいのですが、

function show() {
if(document.getElementById('d1').style.visibility == 'visible'){
document.getElementById('d1').style.visibility = 'hidden';
}else{document.getElementById('d1').style.visibility = 'visible'; }
}

のように付け足してみたんですけど、IE5.5では動いても、NN4.7ではhiddenに
なってくれないんです。
933929:2001/08/08(水) 20:16
なんとか自己解決できそうです。
まだまだやりたい表示にはなっていないのですが、
とりあえず、MacNN4.7で表示・非表示の切替えができました。
<html>
<head>
<style type="text/css">
div { position: absolute;visibility: hidden }
</style>
<script language="javascript">
<!--
function sh(idName){

if(document.getElementById) { //NN6,Mozilla,IE5用
iObj = document.getElementById(idName);
if(iObj.style.visibility == "visible"){
iObj.style.visibility = "hidden";
}else{ iObj.style.visibility = "visible";
}
}

else if(document.all) { //IE4用
iObj = document.all(idName);
if(iObj.style.visibility == "visible"){
iObj.style.visibility = "hidden";
}else{ iObj.style.visibility = "visible";
}
}

else if(document.layers) { //NN4用
iObj = document.layers[idName];
if(iObj.visibility == "show"){
iObj.visibility = "hide";
}else{ iObj.visibility = "show";
}
}
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF">
<a href="#" onClick="sh('a0')">tes1</a>
<div id="a0">123</div><br>
<a href="#" onClick="sh('a1')">tes2</a>
<div id="a1">123456</div>
</body>
</html>
934Name_Not_Found:2001/08/08(水) 20:35
macか・・・お互い苦労しますな・・・
935Name_Not_Found:2001/08/08(水) 21:28
>>917
<a href="javascript:window.close();">Close Window</a>
これ足して終わり。
訳の分からないのは削れ。
936:2001/08/08(水) 22:57
>>933 もっとスマートにやろうヨ。WinIE5.5、N4.7、N6確認
<html><head>
<style type="text/css">
div { position: absolute;visibility: hidden }
</style>
<script language="javascript">
<!--
var iObj,vi="visible",hi="hidden";
function sh(idName){
if(document.getElementById)//NN6,Mozilla,IE5用
iObj = document.getElementById(idName).style;
else if(document.all)//IE4用
iObj = document.all(idName).style;
else if(document.layers){//NN4用
iObj = document.layers[idName];
vi="show";hi="hide";}
iObj.visibility = iObj.visibility==vi?hi:vi;
}
//-->
</script></head>
<body bgcolor="#FFFFFF">
<a href="javascript:sh('a0')">tes1</a>
<div id="a0">123</div><br>
<a href="javascript:sh('a1')">tes2</a>
<div id="a1">123456</div>
</body></html>
937929:2001/08/09(木) 00:10
>936
うわ!ホントにスマートになりましたね!
個別に対応させて、その中でチマチマ...ってことぐらいしか、頭にありませんでした。
iObj.visibility = iObj.visibility==vi?hi:vi;
は、こういう書き方もあるんだーと感動。
ありがとうございます。
表示・非表示は結構使う場面多いと思うので、さらに精進いたします。
938Name_Not_Found:2001/08/09(木) 00:19
このスレ以外、この板は氏んでおる
言わば良スレはこれだけと言える
あげておくか…
939Name_Not_Found:2001/08/09(木) 01:39
<script>
xx="x";
~これがいんぷっとをいれてるつもり。
document.write('<input id="x">')
[xx].value="a";
~~~~ここを変数にしたいの。
</script>

いんぷっとの中にどうやったら文字をかける?
だれか、おしえてーー
940Name_Not_Found:2001/08/09(木) 01:39
<script>
xx="x";
document.write('<input id="x">')
xx.value="a";
</script>
941Name_Not_Found:2001/08/09(木) 01:43
変数にシテ、もじをかきたいのね、つまり。
942:2001/08/09(木) 02:09
>>939-941
意味わからないヨ。ボタンをクリックするとその「いんぷっと」の中の文字が
変わるっていうのかな?タグをdocument.writeで書き出してるところも
意味わからないし...具体的に何がやりたいのかおせーてね
943Name_Not_Found:2001/08/09(木) 06:11

サイト内に商品の選択肢&個数入力フォームを作って、「購入」ボタンを押すと
次のページで品物の数と合計金額が出てくるような、
ネット通販みたいなサイトを作りたいのです。

他スレで、javascriptを使えばできると聞いてやってきました。
またまた舐めるように過去ログ読んだんだけど載ってないようなので
カキコした次第です。。。
944Name_Not_Found:2001/08/09(木) 11:46
>>909 です。
できました!!ありがとうございました。
ちなみに、左側に出したい場合はどうするのでしょうか?
初心者すぎてすみません。
945Name_Not_Found:2001/08/09(木) 12:29
>>943
誰に聞いたのか知らないけど、それはCGIの仕事。
そういう大事なことにJavascriptを使うのは控えた方が無難です。
946Name_Not_Found:2001/08/09(木) 12:33
>>944
>>931

<div id="cursor" style="position:absolute;visibility:hidden;">←</div>
 <a href="#" onMouseOver="DQN(m)" onMouseOut="DQN(n)">りんく</a>

こういう風に書き換える。
全角スペースで調整してる所が痛々しい・・・(鬱
947Name_Not_Found:2001/08/09(木) 14:37
>>943
フレームや別ウインドウを使う場合はケースバイケースだが、おおむね
ページを移動せずに合計金額等を計算したいというのならJavaScriptで
ページを移動するならCGIで計算する。
最終的に注文を受け付けるためにはCGIを使う(メールで受け付けても良いけど)

CGIとcookieとJavaScriptを効率的におり混ぜて使いましょう
948Name_Not_Found:2001/08/09(木) 16:39
はにゃーん
949Name_Not_Found:2001/08/09(木) 16:51
ドロップダウンメニューを2つ置き、
一方を選択すると、もう一方の選択肢
(とそのとき選ばれている値)を
書き換えること出来ますでしょうか?
950Name_Not_Found:2001/08/09(木) 17:21
>>949
できます。
951Name_Not_Found:2001/08/09(木) 18:42
ボタンをクリックすると
wavを再生するようにするには
どうすれば・・・。
952Name_Not_Found:2001/08/09(木) 22:10
>>951
geocitiesの助け合い広場へ逝きなさいね、ボクちゃん♪
953Name_Not_Found:2001/08/09(木) 22:35
>>951
midiもwavもやることは同じなので>>675-680あたりを参照
954Name_Not_Found:2001/08/09(木) 23:19
新しいスレ立ててちょ
955Name_Not_Found:2001/08/09(木) 23:40
>>954
オマエガナー
956Name_Not_Found:2001/08/10(金) 02:19
javascript ポケットリファレンス
の74ページに背景色の変更のサンプルが載ってるのですが、
<html>
<head>
<body bgcolor="ffffff">
<form>
<input tpe="button" value="red"
onClick="document,bgcolor=" 'red' ">
</form>
</body>
</html>
こんなんです、変なのは分かるのですが、どういう
変数を宣言するとかわかりません。javascriptの宣言すら書いてないです。
ちなみに全く変化無しです。これを画像にonMouseover
で変更出来るようにしたいのですが、お願いします。
957956:2001/08/10(金) 02:21
附属のCDが掲載されてるサンプルと全然関係ないので
少し、凹みました。
958Name_Not_Found:2001/08/10(金) 02:43
しかし検索してもどれもフォームばかりですね。
困った。
959Name_Not_Found:2001/08/10(金) 03:24
サブウィンドウを出すときにtoolbar=falseと書くのと、
=0と核のでは結果は同じですが、何か違いはあるのですか?
960Name_Not_Found:2001/08/10(金) 03:29
>>959
結果オーライ
961Name_Not_Found:2001/08/10(金) 03:44
false=0
true=-1
言語でと定義されているだけじゃないの?
962Name_Not_Found:2001/08/10(金) 05:09
サブウィンドウでgifアニメーションを表示させてるのですが、
ウィンドウが読み込まれる前に始まってしまいます。
ウインドウが表示されると、3コマぐらい進んでるのですが、
これを改善するには、どうすればいいでしょう?
そもそも無理でしょうか?
963<:2001/08/10(金) 06:50
JavaScriptで
【曜日ごとに セルの背景色 を 変える】
ことはできるでしょうか?
964Name_Not_Found:2001/08/10(金) 08:29
メインウィンドウでツールバーやボタンを消したいのですが、
できるでしょうか?
965Name_Not_Found:2001/08/10(金) 10:01
>>962
アニメーションの種類にもよると思うけど、
1コマ目の表示時間を長くして調節するのはダメなの?
966Name_Not_Found:2001/08/10(金) 12:14
>>956
<html><head>
<body bgcolor="ffffff">
<img src="hoge.jpg"
onMouseOver="document.bgColor='red'"
onMouseOut="document.bgColor='white'">
</body></html>
967Name_Not_Found:2001/08/10(金) 12:16
>>961
0,null,undefined,空文字->false
それ以外->true
968Name_Not_Found:2001/08/10(金) 14:24
>>956
onClick="ほげほげ"やonMOuseOver="ほげほげ"等のイベントは指示された内容「ほげほげ」がJavaScriptと解釈されます。
ちなみに、netscapeだとimgに対して直接mouseoverやclickは機能してくれないので
aやilayerで囲む。このへんの互換性が辛いからボタンを使うサンプルが多い。
969956
>>966 >>968
ありがとう。助かりました。
もう970近いし、区切りも良いので、新スレ立てさせてもらいました。
+ JavaScript の質問用スレッド vol.4 +
http://natto.2ch.net/test/read.cgi?bbs=hp&key=997445548&ls=50

以降こちらでお願いします。