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

1 名前:Name_Not_Found 投稿日:04/06/22 16:31 ID:???
━━━━━JavaScript質問スレ道場訓━━━━━
 一、礼節を重んじ常に努力精進すること
 一、ブラクラに打ち勝つ精神力を持つこと
 一、心身の優れたJavaScriptを学ぶこと
 一、雑草の如く生涯JavaScriptを貫くこと
 一、感謝と反省を忘れないこと
 以上
━━━━━━━━━━━━━━━━━━━━━━

このスレに書き込むことが許されるものは以下のとおり
・JavaScriptとJavaの違いを理解する者
・スクリプトを組むための最低限のHTML・CSSを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・まずFAQ(>>2)そして過去ログや関連資料を読むことができる者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
・対象環境や使用技術は質問者の裁量であることを理解する者
 (質問時、回答時にはなるべく対象環境を明記しよう)

前スレ http://pc5.2ch.net/test/read.cgi/hp/1084943518/l50
FAQ・過去ログ・関連資料・その他質問スレは >>1-10

2 名前:Name_Not_Found 投稿日:04/06/22 16:32 ID:???
【過去ログ】全部マスターしたらあなたもJavaScriptのプロ。
vol. 1 (倉庫)http://mentai.2ch.net/hp/kako/972/972192155.html
vol. 2 (倉庫)http://natto.2ch.net/hp/kako/985/985424635.html
vol. 3 (倉庫)http://natto.2ch.net/hp/kako/994/994168119.html
vol. 4 (倉庫)http://natto.2ch.net/hp/kako/997/997445548.html
vol. 5 (倉庫)http://pc.2ch.net/hp/kako/1002/10025/1002539301.html
vol. 6 (倉庫)http://pc.2ch.net/hp/kako/1005/10059/1005979370.html
vol. 7 (倉庫)http://pc.2ch.net/hp/kako/1010/10108/1010823511.html
vol. 8 (倉庫)http://pc.2ch.net/hp/kako/1014/10142/1014289221.html
vol. 9 (倉庫)http://pc.2ch.net/hp/kako/1017/10176/1017668857.html
vol.10 (倉庫)http://pc.2ch.net/hp/kako/1022/10220/1022077876.html
vol.11 (倉庫)http://pc.2ch.net/hp/kako/1026/10266/1026611260.html
vol.12 (倉庫)http://pc3.2ch.net/hp/kako/1030/10301/1030162756.html
vol.13 (倉庫)http://pc3.2ch.net/hp/kako/1033/10333/1033385900.html
vol.14 (倉庫)http://pc3.2ch.net/hp/kako/1036/10369/1036934434.html
vol.15 (倉庫)http://pc5.2ch.net/hp/kako/1041/10417/1041701828.html
vol.16 (倉庫)http://pc5.2ch.net/hp/kako/1045/10452/1045265973.html
vol.17 (倉庫)http://pc5.2ch.net/hp/kako/1047/10478/1047807902.html
vol.18 (倉庫)http://pc5.2ch.net/hp/kako/1051/10510/1051020507.html
vol.19 (倉庫)http://pc5.2ch.net/hp/kako/1054/10540/1054043048.html
vol.20 (倉庫)http://pc5.2ch.net/hp/kako/1056/10568/1056808693.html
vol.21 (倉庫)http://pc5.2ch.net/hp/kako/1059/10595/1059553020.html
vol.22 (倉庫)http://pc5.2ch.net/hp/kako/1062/10629/1062943541.html
vol.23 (倉庫)http://pc5.2ch.net/hp/kako/1067/10670/1067085950.html
vol.24 http://pc5.2ch.net/test/read.cgi/hp/1070943773/l50 (行方不明)
vol.25 http://pc5.2ch.net/test/read.cgi/hp/1075096787/l50 (行方不明)
vol.26 http://pc5.2ch.net/test/read.cgi/hp/1077362343/l50
vol.27 http://pc5.2ch.net/test/read.cgi/hp/1077362343/l50
vol.28 http://pc5.2ch.net/test/read.cgi/hp/1084943518/l50

3 名前:Name_Not_Found 投稿日:04/06/22 16:32 ID:???
【標準規格・リファレンス】
規格を読まずにどうなってるか分からんとか質問しないこと!

ECMA-262
http://www.ecma-international.org/publications/standards/ECMA-262.HTM

W3C Document Object Model Technical Reports
http://www.w3.org/DOM/DOMTR

MSDN Library JScript ドキュメント
http://www.microsoft.com/japan/msdn/library/ja/script56/html/js56jsoriJScript.asp

Microsoft MSDN online Library DynamicHTML (現在日本語版は古杉)
http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp

N6 Core JavaScript1.5
http://developer.netscape.com/docs/manuals/js/core/jsref15/contents.html

Gecko DOM
http://www.mozilla.org/docs/dom/domref/

NN4.x Client-side JavaScript1.3
http://developer.netscape.com/docs/manuals/js/client/jsref/index.htm

Netscape 一般
http://developer.netscape.com/

4 名前:Name_Not_Found 投稿日:04/06/22 16:33 ID:???
【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。

ECMAScriptチュートリアル
http://user.ecc.u-tokyo.ac.jp/~t10521/ecmascript/

MetaGraphic Cell
http://www2u.biglobe.ne.jp/~oz-07ams/prog/

どら猫本舗のリファレンスカウンター
http://www.doraneko.org/

はぎさんちのページ Mozilla's DOM Sample Project
http://cgi.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/mds.cgi

JavaScript basic samples
http://www.sumnet.ne.jp/domp/jsbs/

初めてのホームページ講座 JavaScript Dynamic HTML SAMPLES
http://www.hajimeteno.ne.jp/dhtml/

Dynamic Scripting
http://www.interq.or.jp/student/exeal/dss/

JavaScript深層
http://www.hawk.34sp.com/

(「とほほ」は内容に問題ありとの意見により削除してます)

5 名前:Name_Not_Found 投稿日:04/06/22 16:33 ID:???
【検索】
「キーワード『…』で検索しろ」「ぐぐれ」と言われた場合はこちらへ
http://www.google.co.jp/

【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!

Webサイト制作初心者用スレ vol.94
http://pc5.2ch.net/test/read.cgi/hp/1087025773/l50

/* CSS・スタイルシート質問スレッド【32】 */
http://pc5.2ch.net/test/read.cgi/hp/1087263288/l50

CSS/DHTMLバグ辞典スレッド 第4版
http://pc5.2ch.net/test/read.cgi/hp/1078463560/l50

役に立つ書籍は?
http://pc5.2ch.net/test/read.cgi/hp/992793435/l50

6 名前:Name_Not_Found 投稿日:04/06/22 16:34 ID:???
【質問を書く上で】
弱気な表現は避ける
  弁解じみた表現は良くない。また、まわりくどい。
    ex) 超初心者で何もわかりませんが……
     <そんなことより自分で試したことをた方が答えやすい>
情報を小出しにしない
  読み手は馬鹿にされた気分になる。
  無駄な倒置も不要だ。
  使用したブラウザ、バージョン、OSくらい書こう。
感情的にならない
  何の説明なく決め付ける文はよい印象を与えない。
  また態度の大きい人は嫌われる。
    ex) 答えられねぇんなら黙ってろ!!! <お前だけだよ>
無視するべきものは無視する
  無能、知ったかぶり、宗教的主張、煽り、ぬるぽ等。
表記ミスに注意
  内容がどんなにすばらしくても文字使いにミスがあると誤解を招く。
曖昧文は書かない
  いくつにも解釈できる文章は絶対に書かない。
    ex) ここではきものをぬいでください。
「」など無駄な強調は避ける
  読みにくい。♪や顔文字も同様である。
ソースは要点を整理して出す。
  そのまま貼って動かせると試してもらいやすい。
  長い場合はアップロードしてURIを貼る。

7 名前:Name_Not_Found 投稿日:04/06/22 16:36 ID:???
おつかれ〜!

8 名前:Name_Not_Found 投稿日:04/06/22 16:54 ID:???
時はまさに世紀末
淀んだ街角で僕らは出会った

9 名前:Name_Not_Found 投稿日:04/06/22 19:37 ID:???
>>1

>>6 ガッ


10 名前:Name_Not_Found 投稿日:04/06/22 19:43 ID:???
>>1


>>8
no boy no cry

11 名前:Name_Not_Found 投稿日:04/06/22 21:41 ID:???
【FAQ/よくある質問と回答】
…テンプレに入れるのは賛否あるのでとりあえずここに書いときます。

Q1. JavaとJavaScriptって同じですよね?
A1. 全然違います。型とかクラスはJavaだけ。DHTMLは普通JavaScript。
Q2. 開いた別窓/フレームの内容にアクセスできないのですが…
A2. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q3. JavaScriptでローカルファイルを読み/書きたいのですが…
A3. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q4. document.write(...)でページ内容を追加したいのですが…
A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
 innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。
Q5. document.all(...)がNetscapeで使えないのですが…
A5. それはIE専。標準のdocument.getElementById(...)を使いましょう。
Q6. Aタグのonclickで動作指定してるのですが時々動きません…
A6. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q7. フォーム部品名を変数にした「...myform.変数名.value」が駄目…
A7. 「document.forms.myform.elements[変数名].value」でどぞ。
 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
 例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。

12 名前:Name_Not_Found 投稿日:04/06/22 22:11 ID:???
正直>>6は いつだったかスレに変なのが沸いた時に
漏れが書いたものだが、もう不要と思われ。
というのも、テンプレが無駄に長くなるからだ。

13 名前:Name_Not_Found 投稿日:04/06/22 22:15 ID:???
そうだねえ、5まであれば十分かなあ。

14 名前:Name_Not_Found 投稿日:04/06/22 22:48 ID:GQMfUuAS
IE6 でウィンドウの高さを得るには
document.body.clientHeight を使うと思うのですが,
DOCTYPE スイッチで標準準拠モードにすると
document.body.clientHeight がウィンドウの高さではなく
body 要素自身の高さを返すようです.

この挙動の是非は置いておくとして (Opera も後者のようです),
標準準拠モードでウィンドウの高さを得るにはどうすればよいのでしょうか.


15 名前:Name_Not_Found 投稿日:04/06/22 22:54 ID:???
>>1


>>10
♪キーピューバーニーン かーけーぬーけてー

16 名前:Name_Not_Found 投稿日:04/06/22 23:04 ID:???
>>12
まあ なんか変な奴が来たら >>6読め って書くだけで済むから便利だよ

>>15
この腐敗と自由と暴力の真っ只中

17 名前:Name_Not_Found 投稿日:04/06/22 23:38 ID:???
>>14
標準準拠モードでは最外側要素はdocument.bodyではなく
document.documentElementになるんじゃないの。

18 名前:Name_Not_Found 投稿日:04/06/22 23:54 ID:???
なんじゃ>>11は・・・
Qに対してどれもまともな回答になってないじゃないか。
よくこんな陳腐なのを作ったものだな。

19 名前:Name_Not_Found 投稿日:04/06/22 23:57 ID:???
たしかに、、、
内容をよく見てみると、かなりきてる。。。

20 名前:Name_Not_Found 投稿日:04/06/23 00:00 ID:???
マトモなものが全く無いとは言わんけどね。

相手するまでも無いと思って放っておいたんだけど、
スルーしてると どんどん図に乗ってくるもんなんだなぁ。

21 名前:Name_Not_Found 投稿日:04/06/23 00:15 ID:???
よっぽど自分の作ったものをテンプレに入れたがってるみたいだね。
スレーしてるより不要と言ってやらんと。

22 名前:Name_Not_Found 投稿日:04/06/23 00:42 ID:???
多くの質問に、多少のFAQで問題が解決するはずがない、と思うのだがどうだろう

23 名前:Name_Not_Found 投稿日:04/06/23 07:59 ID:???
このスレで実験するということじゃないのかな。それで
スレの終わりまでに「>>11のXX番をよめ」で済むことが
何回以上あったら成功だと思う?

24 名前:Name_Not_Found 投稿日:04/06/23 08:34 ID:???
>>23
とりあえず最低7回。(QAが7個だから)
で、参照されなかった番号はリストラ。

25 名前:Name_Not_Found 投稿日:04/06/23 09:27 ID:???
参照されなかったものを削るというのはいいなあ!

26 名前:14 投稿日:04/06/23 09:38 ID:???
>>17
取れました,ありがとうございます.
…というかFAQっぽいですね(汗)


27 名前:Name_Not_Found 投稿日:04/06/23 14:55 ID:???
>>26
FAQに入れましょう(ry

28 名前:Name_Not_Found 投稿日:04/06/23 15:27 ID:???
windowの高さとクライアント領域の高さは別物ってことも付け加えとけ

29 名前:Name_Not_Found 投稿日:04/06/23 20:15 ID:CP3uCzld
言葉を慎まれよ

30 名前:Name_Not_Found 投稿日:04/06/23 20:16 ID:???
JavaScript外部ファイルについて
http://external.pcc.jp/~biso/

↑のサイトさんなんですが、ここ数日繋がらなくて本日やっと繋がったと思ったらパスワード制になってました
どうすれば入れるかわからないのですが誰かご存知の方いらっしゃったら教えてくださいませんか?

もし板違いでしたら恐れ入りますが誘導お願いします。

31 名前:Name_Not_Found 投稿日:04/06/23 20:51 ID:???
スレ違い。初心者スレへ逝け。

32 名前:Name_Not_Found 投稿日:04/06/23 20:54 ID:???
>>30
板違いだが、誘導といっても、答えられる奴はいないような気もする。

何のサイトか知らないが、管理者に問い合わせるしかないんじゃないの?
もしくは、ハッククラックの勉強をしてその道のプロになるといい。

33 名前:Name_Not_Found 投稿日:04/06/24 03:50 ID:???
誘導されてこちらにきました。よろしくお願いします。
日記用CGI Nicky!に
<!--
function txvad(){
document.sform.Message.value += document.sform.sel01.options(document.sform.sel01.selectedIndex).text;
return false;
}
// -->
body部分
<form name="sform">
<select name="sel01">
<option>あいうえお
<option>かきくけこ
<option>さしすせそ
</select>
<a href="#" onClick="return txvad()">入力</a> <br>
<textarea cols=25 rows=5 name="Message"></textarea> </form>
というのを『入力』ボタン無しで、セレクトするだけで入力されるようにしたいのですが、
このままですら、動きません。
自分なりにやってみたものが↓です
http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20040624034506711.txt
2564-2570行目:新規書込み画面のヘッダを足す
2436-2437行目:JavaScriptを足す

34 名前:33 投稿日:04/06/24 03:57 ID:???
続き:単体では動くのですがCGIに入れた途端動かなくなるのはどうしてでしょうか?
もしくは、http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20040623080435647.gifのように
リンクボタンを押すだけでテキストフィールドに指定の文字が入るようにしたいのですが、
どうすればいいのでしょうか…教授お願いします。
元の日記CGIです。
http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20040624034506710.txt
よろしくお願いします。

35 名前:Name_Not_Found 投稿日:04/06/24 04:13 ID:???
>>33
> http://tool-ya.ddo.jp/2ch/trash-box/contents.jsp?file=20040624034506711.txt
インデントに全角スペース発見

36 名前:Name_Not_Found 投稿日:04/06/24 09:10 ID:???
すれちがいですが悶絶のimiをおしえてください

37 名前:Name_Not_Found 投稿日:04/06/24 11:32 ID:???
国語辞典をひけ(ry
ttp://dictionary.goo.ne.jp/


38 名前:Name_Not_Found 投稿日:04/06/24 12:11 ID:???
板違いかもしれませんが質問させてください。
お絵かき掲示板などでの最新絵をhtmlに呼び出すのってjavaスクリプト
ですか?
こういう感じの→ttp://homepage1.nifty.com/ikkodate/title/seiken/main.html

39 名前:Name_Not_Found 投稿日:04/06/24 13:19 ID:???
>>38
そこ、リロードするとHTMLが(画像ファイル名が)変わるから
サーバ側でやってるんじゃないの。その場合WebProg板へどぞ。

あんたがやりたいことの内容によってはクライアント側だけで
(つまりJavaScriptで)できることもある。そっちを探求するの
ならやりたいことを具体的に分かりやすく説明してくれないと。

40 名前:Name_Not_Found 投稿日:04/06/24 13:21 ID:???
クライアントサイドとサーバサイドくらいは理解してて欲しい

41 名前:Name_Not_Found 投稿日:04/06/24 13:57 ID:???
先生、オフサイドが解りません。

42 名前:Name_Not_Found 投稿日:04/06/24 14:03 ID:???
質問です。
setIntervalで更新間隔に短い値を指定するとclearIntervalの認識が悪くなってしまうのですが
これを改善する方法はないでしょうか?
プログラムは下のように書いています。
----------------------

function test() {
 click++;
 if(click == 1){
  timerID = setInterval("Action()", 100);
 }
 if(click >= 2){
  clearInterval(timerID);
 }
}

----------------------

<div id="start" onclick="test()"></div>

43 名前:Name_Not_Found 投稿日:04/06/24 14:59 ID:???
>>42
そりゃ正確に1ミリ秒で実行してくれとか言われても困るだろう。
setInterval()を使う代わりにsetTimeout()で毎回自分を登録
するようにしてclickが2以上なら登録しないとかにしたらどうかな。

44 名前:Name_Not_Found 投稿日:04/06/24 15:14 ID:???
>>42
setInterval も setTimeout も、引数で渡すのは待ち時間で、
再帰関数化して繰り返したりする場合とかもそうだけど、
スクリプト自体の実行時間は別勘定になるから、ずれまくるもんだよ。

45 名前:Name_Not_Found 投稿日:04/06/24 17:57 ID:TM/Nbx1G
質問です

Windows 版 MSIE にて。
例えば http://hoge.com/foo/var.html という url のページで
<a href=""> と記述してある要素の href プロパティを参照すると
http://hoge.com/foo/ が返ってきます。
また、<a href="/foo/"> と記述してある要素も、当然ですが、
http://hoge.com/foo/ を返します。

この二つの要素を識別するにはどうしたらよいでしょうか。

46 名前:Name_Not_Found 投稿日:04/06/24 21:50 ID:???
hrefプロパティは同じ文字列になっちゃうんだろ?
じゃあhrefプロパティだけで判別するのは無理だってことだ
ということはhref以外の識別できる要素を与えてやるしかない
ここまで言えば後は分かるだろう


47 名前:Name_Not_Found 投稿日:04/06/24 22:06 ID:???
>>45
手元にWinIEがないのでこちらでは確認できないが、DOMのgetAttribute
メソッド使うとどうなる?


48 名前:Name_Not_Found 投稿日:04/06/24 22:14 ID:???
>>47
>>45じゃないがIE6は"http://〜"が返るようだ

49 名前:45 投稿日:04/06/24 22:22 ID:???
>>46
やっぱそうっすよね。
本来 <a href=""> なんてのはあり得ないわけで、もしも、あった場合の
安全装置として考えていたので。他を考えてみます。

>>47
漏れもちょうどやってみたところです。
http://〜が返r(略

どうも、ありがとう。

50 名前:Name_Not_Found 投稿日:04/06/25 09:17 ID:???
>>49
outerHTMLで比較するしかないのでは。
ちなみに空のURIは当該文書自身を示し
/foo/var.html に記述した href="" が /foo/ を参照するのは本当は間違い。
(でなきゃ href="#baz" が /foo/#baz を参照することになってしまう)

51 名前:Name_Not_Found 投稿日:04/06/25 19:38 ID:???
同じページに一枚絵のように別のcgiを埋め込みたいのですが、スキルが足りないせいでどうしても行き詰って
ます _/TO
自分が考えているのは、そのリンクをクリックしたばあいに右側にリンク先のページを表示させたいのです。
こんな感じのソースにしたいのですが、無理なのかなあ。。

他のサイトでどういう風にしているのか、判らずじまい・・・。
厨ぽくて、すいません(ノ□T)

<script language="JavaScript" type="text/javascript">
<!-- function chat(チャットのurl); // -->
</script>
</head>
<body>
<table>
<tr>
<td align="center" valign="top">
<a href="wl_index.html">TOP</a><br>
</td>
<td align="center" valign="top">
<script language="JavaScript" type="text/javascript">
<!-- document.write=chat // -->
</script>
</td>
</tr>
</table>

52 名前:Name_Not_Found 投稿日:04/06/25 20:03 ID:???
>>51
とりあえずテンプレのサイトで基本的なことを学んでから質問した方が
いいと思う。
たぶん、何をアドバイスしても分けわからんだろうから。

そんな書き方、どこでおぼえたの?

53 名前:Name_Not_Found 投稿日:04/06/25 20:05 ID:6YhDTYrI
あい、もっかい、勉強してきますです〜。

54 名前:Name_Not_Found 投稿日:04/06/25 20:06 ID:???
>>51
IFRAME使ってるだけじゃない?
まあその「他のサイト」ではどうなってるのかを自分で見た方が早いだろ。

55 名前:Name_Not_Found 投稿日:04/06/25 20:18 ID:???
>>51 のが、イメージを返す cgi へのアクセス、ということなら、

<img src="hoge.cgi?あqwsでfrtgyふじこlp;@:「」">

とだけ書いておけば済む、だろうね。で、そのイメージを切り替える
のであr

56 名前:Name_Not_Found 投稿日:04/06/25 20:55 ID:???
>>55
どうした?脳が破壊されつつあるのか?
>>51
あんたさあ、まずは
<script>
<!--
JavaScriptコード
// -->
</script>
のように行をきちんと変えた方がいいよ。にしても
あんたが書いているものはJavaScript的に無意味なんだが
ホント、どっからそういう書き方を学んだの?

57 名前:Name_Not_Found 投稿日:04/06/25 23:32 ID:+c+sy2NM
リロードするごとに一定の場所に表示される画像が
変わるようにするにはどうしたらいいでしょうか?

58 名前:Name_Not_Found 投稿日:04/06/25 23:42 ID:???
ランダムにする

59 名前:Name_Not_Found 投稿日:04/06/26 00:40 ID:???
>>57
<script type="text/javascript">
var imgs = ['img1.png','img2.png', ...];
document.writeln('<img src="' + imgs[Math.floor(imgs.length*Math.random())] + '">');
</script>


60 名前:Name_Not_Found 投稿日:04/06/26 01:36 ID:???
JSを切っている場合でも支障のないようにスクリプトを書いてくれ。
オレはJSは好きだけど、多くの場合切っているから。。。

61 名前:Name_Not_Found 投稿日:04/06/26 07:54 ID:???
ん?ランダム画像が飾りならほっとけばいいこと。
切った場合かわりの画像なり「JS切ったら使えない」
という説明を出すなら<noscript>...</noscript>に
囲んで入れとく。いちいち説明しないけどそゆことでしょ?


62 名前:Name_Not_Found 投稿日:04/06/26 12:56 ID:???
>>61
そうじゃなくて、document.writeを使わないで、onLoadでDOMを操作する
方法をとって欲しいなと。つまり、構造とプログラムを分離したいということです。

63 名前:Name_Not_Found 投稿日:04/06/26 14:22 ID:???
>>62
気に入らないなら代わりに回答してやれよ。

64 名前:Name_Not_Found 投稿日:04/06/26 14:45 ID:???
DOMの方がそういうメリットがあるよと言いたければ単刀直入に
そう言って欲しいな〜。とりあえず入門レベルの人には
document.write()がいけないってこたないと思うけどね〜。


65 名前:Name_Not_Found 投稿日:04/06/26 15:21 ID:???
...onloadでDOM操作は、確かに構造とプログラムの分離はできるが、
スクリプト無効環境下における支障の回避という面では
document.writeと変わらんだろ。結局は配慮するかしないかなんだから。

66 名前:Name_Not_Found 投稿日:04/06/26 16:01 ID:???
onloadなんてかざりだよ

67 名前:Name_Not_Found 投稿日:04/06/26 16:29 ID:???
つーかJavaScriptでDOM操作自体単なる装飾だよ
そう捉えれない奴らがスクリプト切ると見れないページ作るんだよねぇ

68 名前:Name_Not_Found 投稿日:04/06/26 16:46 ID:???
買い物かご作ったんだけど、クッキーで問題が出た。

商品ページと買い物かごのページは
http://自サイトドメイン/〜
なんだけど、住所とか入力するページからは鯖の無料SSLを使う
https://鯖のドメイン/〜
ドメインが途中で変わっちゃうんだけど、そうすると↑のドメイン&パスで焼いたCOOKIE
を↓の住所入力ページでは受け取れないんだよね。(受け取れるドメインって一つしか指定できないでしょ)

一応方法をいくつか考えてみた。
1.「注文に進む」ボタンをカートページにしかつけずに、カートページはいつも最新のカートの中身をhiddenで
持たせておいて、「注文に進む」ボタンを押した時にフォーム提出をする。
2.クッキーを二つ焼く。NAME=VALUEの内容は同一で、ドメインとパスの設定↑で挙げた二つにする。
3.カートのページもhttpsにしてしまう。
4.商品ページから全てhttpsにしてしまう。

それぞれの問題点
1.「カートの中身を見る」を経由しないと注文が始められないのは不便。
2.クッキーを二つ焼くのってアリ?なんか悪いことしてるみたいで、気が引ける。
3.これをやってしまうと、ブラウザの設定によってはhttpsとhttpの移動の度にアラートボックス
が出てしまい、かなりうっとうしい。
4.せっかくドメイン取ったのにそのドメイン使えるページが通販部分以外の2ページでは悲しい。

意見を聞かせて欲しい。

69 名前:Name_Not_Found 投稿日:04/06/26 17:12 ID:???
そんなページ、見なくていいじゃん?

70 名前:Name_Not_Found 投稿日:04/06/26 17:26 ID:???
>>67
どんなページだって「装飾だ」といえばそうなってしまうけどね。
いちいちページをリロードしない画像ビューアだとかツリーブラウザ
だとかそういうのもユーザインタフェースとしてアリだと思う。
ゲームなんかもね。JavaScriptを切ってそういうユーザインタ
フェースを使わない人もいるということを覚悟しておけばそれで
いいんじゃないの。

71 名前:Name_Not_Found 投稿日:04/06/26 17:29 ID:???
>>68
「注文に進む」ボタンが押されたら「お待ちください」ページに
飛び、このページはカートページと同様の内容を保持してhttps
側にすぐデータを提出する、というのはどうですかね。

72 名前:68 投稿日:04/06/26 17:44 ID:???
>>71
自動でフォームを提出させるページを作るという事ですか?
URLのバーが途中で変わるのって客側としてはイヤな印象を持たれそうで怖いです。
「処理中です。少々お待ち下さい。」
が出てちょっと間を置いてドメインが変わってしまうと、
「ん?別のサイトに飛ばされたのか?」
みたいに思い、手口が少しエロサイトみたいで・・・・・;
食品を扱う会社なので、信用第一でやっているのですが、本来専用の有料SSL証明書を買えば
こんな問題もなくなるんですが、クレジットカードは扱わないので、十何万も出す程の
事ではないかなと思っています。

73 名前:Name_Not_Found 投稿日:04/06/26 17:55 ID:???
>>72
だったら全ページにhiddenで最新の内容を持たせるのが一番いい
んじゃないですかね。で、「注文に進む」ボタンが押されたら
そのフォームをhttpsサーバに提出すると。

74 名前:68 投稿日:04/06/26 17:58 ID:???
>>73
やっぱそうですかね。ん〜。

実際のとこクッキーを二つ(ドメイン。パスだけが違う)焼くのってどうなんですかね?
悪いことですか?

あまりやったことないので良い悪いがわかりません;

75 名前:Name_Not_Found 投稿日:04/06/26 18:00 ID:???
>>67
うむ。
本気で動的なコンテンツ作って一般に公開したいなら
サーバサイドで組んだ方が閲覧環境広いしな

76 名前:Name_Not_Found 投稿日:04/06/26 18:07 ID:???
COKKIEを二つねえ。
俺やったことねえからよくわかんないね。
誰かやったことあるやついんの?

77 名前:Name_Not_Found 投稿日:04/06/26 18:13 ID:???
>>75
イケテル奴はJSとcgiをうまくからめて面白いものを作る。
JS切ってるやつには最低限の動作を
切ってないやつには最高のエンタメを

78 名前:Name_Not_Found 投稿日:04/06/26 18:21 ID:???
>>77
とりあえずsageろ

79 名前:Name_Not_Found 投稿日:04/06/26 18:23 ID:???
>>74
ドメインAが食べさせたクッキーをドメインBで読めないんだから
2つ使っても何の問題解決にもならないのでは?
>>75
動的たって動き方が違うでしょ。データをバシバシ管理するなら
サーバサイド。サクサク動かすユーザインタフェースメインなら
クライアントサイド。

80 名前:68 投稿日:04/06/26 18:31 ID:???
>>79
え?
ドメインAが食べさせたクッキーをドメインBで読むのは可能だったと思いましたが・・・・
domain=値
path=値
の部分って今から焼くクッキーをどのドメインのどのパスの時に提出させるかっていうことですよね?

複数ドメイン可能かっていうのは実験環境がないので確信がもてませんが、
domain=値
っていうのはそのためにあるんじゃないのですか?他にdomain=値の使い道がわかりませんが・・・・

間違ってたら教えて下さい。

81 名前:Name_Not_Found 投稿日:04/06/26 19:00 ID:???
domainの使い方なんて知るかボケ

82 名前:Name_Not_Found 投稿日:04/06/26 19:49 ID:???
Netscapeのクッキーのドキュメントより:

 domain=DOMAIN_NAME
  (中略)
  Only hosts within the specified domain can set a cookie for
  a domain and ... (後略)

つまりあるホストから「domain=...」で指定できる値はそのホストが属
しているドメインだけなのね。

 host.a.b.c が domain=a.b.c を指定→○
 host.a.b.c が domain=x.b.c を指定→×

「domain=」の用途は「特定ホストから食べさせたクッキーを同じドメ
インの他のホストと共有するため」であり「他ドメインと共有する」
ことは許されていない。考えてもみなよ、自分のページでamazon.co.jp
のクッキー捏造して食べさせてからAmazonに飛ばしてとかできたらヤバ
すぎるでしょ。

83 名前:Name_Not_Found 投稿日:04/06/26 22:44 ID:???
>>77
いけてる香具師はそもそもCGIは使いません

>>79
まぁ、実際にはフォームを動的に扱わなきゃならんから
JavaScript全く使わずってのは難しいけどね。
ユーザーインターフェースメインの処理でも
例えば商用サイトとかは
可能な限りLowerLevelのユーザを配慮せにゃならんけん

84 名前:Name_Not_Found 投稿日:04/06/26 22:44 ID:???
シングルクリックでa.htmlのサブウィンドウ、ダブルクリックでb.htmlのサブウィンドウを開かせることはできますか?

85 名前:Name_Not_Found 投稿日:04/06/26 22:45 ID:???
>>83
> いけてる香具師はそもそもCGIは使いません
それはない

86 名前:Name_Not_Found 投稿日:04/06/26 23:20 ID:???
>>84
IE専ならonclickとondblclickを使い分ければいいのでは。
クロスブラウザならonclickで時刻を取得し、前回クリック
との差で判別とかちょっとめんどそう。

87 名前:84 投稿日:04/06/26 23:54 ID:???
<img src="test.jpg" onClick="open1('a.html')" onDblClick="open2('b.html')">
こんな感じにやってみましたがダメでした、ダブルクリックしてもa.htmlの方が出てしまいます…

88 名前:Name_Not_Found 投稿日:04/06/27 00:12 ID:???
>>86-87
ondblclickはMozでもOperaでも使える。一応HTML4で標準化されてるしね。
ただ、IEを含めどのブラウザもonclickと併用すると
ダブルクリックの1回目のクリック時にonclickが発生するので
onclickではその後ondblclickが発生しないことを判定する必要がある。

Moz,Operaでは2回目のクリック時にもonclickが発生し、それからondblclickが発生するので
event.detailを使ってonclickからダブルクリックを検出する方がいいかもね。

89 名前:Name_Not_Found 投稿日:04/06/27 00:18 ID:???
>>86-87 クロスブラウザ版を作ってみたが。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var tid, time = 0, delta = 500
function test() {
var t = new Date().getTime();
if(time == 0 || t - time > delta) {
time = t; tid = setTimeout(link1, delta+50);
} else {
if(tid > 0) clearTimeout(tid); time = 0; link2();
}
}
function link1() { window.open('http://www.yahoo.com'); tid = 0; }
function link2() { window.open('http://www.amazon.com'); }
</script>
</head><body>
<p><img src="t0.png" onclick="test()"></p>
</body></html>

90 名前:Name_Not_Found 投稿日:04/06/27 00:22 ID:???
>>88
そうか〜ondblclickってHTML標準だったのか、きちんと見て
なかった。でもこれを使っても結構面倒なんで、結局は時間
見て判別するのが簡単のような気がしている。

91 名前:Name_Not_Found 投稿日:04/06/27 01:00 ID:???
俺ならonclickで変数に値1を代入&タイマーに変数を参照するウィンドウ開く関数を登録
ondblclickで変数を値2に上書き
って実装するかな。タイマーは0.5秒ほどかね

92 名前:Name_Not_Found 投稿日:04/06/27 01:04 ID:???
>>89
IEはダブルクリックの2回目ではclickイベントが発生しない(Win2000/IE6で確認)。
OS側のダブルクリックの反応時間設定がそれほど短くない場合
通常のダブルクリックでは期待する動作にならないだろう。
(反応時間 > deltaならば「ダブルクリックもどき」自体が不可能になりかねない)

93 名前:Name_Not_Found 投稿日:04/06/27 01:23 ID:???
っていうかシングルとダブルで動作を分ける必要がないだろ。
なんの為にそんなことするんだ?

94 名前:Name_Not_Found 投稿日:04/06/27 01:33 ID:???
どんな場合も必要なかったらそんなもの標準化されたりしないと思うが。

95 名前:Name_Not_Found 投稿日:04/06/27 01:56 ID:???
>>93
>>84

96 名前:Name_Not_Found 投稿日:04/06/27 02:07 ID:???
まぁ遊んでるだけだろう

97 名前:Name_Not_Found 投稿日:04/06/27 03:34 ID:vq7GoMK7
聞きたいのだがこのスクリプトがどういう動作をするのか詳しく聞きたい


<!-- VC active -->
<SCRIPT LANGUAGE="JavaScript">
<!--
// ValueParameters
ValueHost = "hs0068897";
ValueLoaded = false;
ValueID = "pagebuster";
ValueVersion = "1.1";
ValueBannerType = "pop";

ValuePopSize = "medium";


//-->
</SCRIPT>
<SCRIPT LANGUAGE="Javascript" SRC="http://oz.valueclick.ne.jp/jsmaster"></SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
<!--
if (ValueLoaded) ValueShowAd();
//-->
</SCRIPT>
<!-- vc active -->

98 名前:Name_Not_Found 投稿日:04/06/27 04:27 ID:???
>>97
まずそのリンク(スクリプト本体)を右クリックから保存してメモ帳とかで見たと仮定すると・・・
その本体でクエリを一つずつ組み立ててる。
ユーザIDからUA、広告のサイズ、表示方法、どの広告にするか・・・etc.
つまり想像できそうなことしかやってない。(はず)

99 名前:   投稿日:04/06/27 06:16 ID:???
javascriptを始めたばっかりの初心者なんですが、よく見かける、ブラウザ上でイラストや写真等のオブジェクトがブラウザ上を動き回るようなスクリプトってどー書けばいいんでしょうか??

100 名前:Name_Not_Found 投稿日:04/06/27 06:24 ID:???
>>99
まず写真やイラストのオブジェクトを適当に配置し
自由に座標を設定するといい。

でもマウスを追いかけるのは不評なのでやめよう。

101 名前:Name_Not_Found 投稿日:04/06/27 06:26 ID:???
>>99
動きを持たせるなら時間で位置を書き換える
なるべく幾何学的な動きの方が楽だ

102 名前:Name_Not_Found 投稿日:04/06/27 07:12 ID:vq7GoMK7
97はつまり広告をクリックしているということでいいのか?
つーかそれはコメントになっている感じだがそれでも動作するのか?
もし不正だったら通報しなきゃならん

103 名前:Name_Not_Found 投稿日:04/06/27 12:59 ID:???
ウインドウ内にD&Dされたファイルのパスを取得するってのは可能でしょうか?

104 名前:Name_Not_Found 投稿日:04/06/27 16:12 ID:???
無理です

105 名前:99 投稿日:04/06/27 16:18 ID:???
>>100
オブジェクト自体に座標を設定するやり方ってのが分からないんですよ。
どう記述すればいいのでしょうか?
あと、それには<DIV></DIV>やレイヤーでくくらないとダメなんでしょうか?

>>101
時間で位置を変えるってのは、時間ごとに関数を再び呼び出して実行させるってことですか??
window.setTimeout(script, msec) ←この関数しか思い浮かばないのですが。

106 名前:103 投稿日:04/06/27 17:25 ID:kwaizhig
>>104
HTAを使ってでも無理でしょうか?

107 名前:Name_Not_Found 投稿日:04/06/27 17:30 ID:???
>>102
表示だけ。
外部ファイル側はvalueclickのサーバー上にあるし自動クリックみたいなスクリプトが入ってるわけないじゃん(w

108 名前:Name_Not_Found 投稿日:04/06/27 21:07 ID:???
>>105
過去スレ群を読めば100回くらいはサンプルが貼られて
いるんじゃないですかね。それを見る気がないなら我々も
教える気にならんよ。

109 名前:Name_Not_Found 投稿日:04/06/28 01:14 ID:???
>>106
その前にブラウザにファイルをD&Dしたらどんな動作するかやってみた?

D&Dじゃないならformのinput type="file"で選択はできる
けど恐らくセキュリティ関係でスクリプトからは読めないかも

110 名前:Name_Not_Found 投稿日:04/06/28 18:17 ID:GInDAIra
document.open()をすると、ブラウザの履歴が一つ進んでしまいます。
これを進まないようにする方法はありますか?

111 名前:Name_Not_Found 投稿日:04/06/28 21:09 ID:???
>>110
サブに書き出す又はinnerHTMLを使いメインを書き換える

112 名前:Name_Not_Found 投稿日:04/06/28 21:30 ID:???
サブって何ですか?メインって何ですか?

113 名前:Name_Not_Found 投稿日:04/06/28 21:53 ID:???
document.open()なんか使ったことねぇ

114 名前:Name_Not_Found 投稿日:04/06/28 22:35 ID:???
>>112
window
>>113
ページをいくつかに分けて書き換えるときに使わない?
つかページ書き換えるときってみんな何使ってるの?

115 名前:62 投稿日:04/06/28 22:44 ID:???
レス遅くなりすぎでスマン。
jsはサーバーサイドのプログラムと役割分担をすれば、主にユーザーインターフェース、デザインを受け持つと思うので、
document.writeなどで構造自体を書き出すのはあまり賛成できない。
私はWebを使う場合、情報収集が多いので、デザインはどうでもよく、多くの場合jsを切っている。切っていて見れないページを
作ることはない。またjsは好きではあるが、Webにjsは必須であるかということについては疑問を持っている。
デザインを重視する人は、それを必要としない人がいることも認識して欲しいな〜と思う。

116 名前:Name_Not_Found 投稿日:04/06/28 22:48 ID:???
>>114
> ページをいくつかに分けて書き換えるときに使わない?
> つかページ書き換えるときってみんな何使ってるの?

createElement と createTextNode で書き換える内容をこさえて、
removeChild で消す部分をDOMツリーから取り外し、
appendChild で生成したモノをツリーにぶら下げる、

という方法。

117 名前:Name_Not_Found 投稿日:04/06/28 23:03 ID:???
>>116
JSって言っていいのかな?

118 名前:Name_Not_Found 投稿日:04/06/28 23:36 ID:05tfWPpd
「階和」というものを「n?=n+(n-1)+…+2+1」と勝手に定義し、
それを計算するプログラムを ↓の階乗を計算するプログラムを応用して作る
…という課題が出たのですが、
初心者のため、どのようにして書いたらよいのか全く分かりません。
時間があれば、一からじっくりと勉強したいのですが、 締め切りが迫っているため、とりあえず模範解答だけでも
教えて頂きたいと思い書き込みました。 どうかご親切な方、お力を貸して下さい。


119 名前:118の続きです 投稿日:04/06/28 23:37 ID:???
<html>
<head>
<title>簡単階乗計算機</title>
<script Language="JavaScript">
<!--
function fact(n){
if(n==0){
return 1;
}else{
return n*fact(n-1);
}
}

function write_fact(){
n=document.frm1.number.value;
document.frm1.factrial.value=fact(n);
}
//-->
</script>
</head>
<body>
<h2>数字を入れてクリック</h2>
<form name=frm1>
<input type="text"name="number"size="3">
!=<input type="text"name="factrial"size="16">
<p>
<input type="button"value="計算"onClick=write_fact()>
</p>
</form>
</body>
</html>

120 名前:Name_Not_Found 投稿日:04/06/28 23:51 ID:???
掲示板にて静的HTMLを吐き出すタイプを作成したのですが
名前とメールのクッキーを呼び出す際にHTMLをXHTML1.1で記述してる為、
form要素にname属性が振れず、四苦八苦しております。
classはboardと振っているのですが、このクラス名でアクセス(?)する方法がわかりません。

document.forms.board.elements['name'].value = getCookie("Cookname"); やら
document.forms['board'].elements['name'].value 等、色々試しましたが
どれも代入してくれませんでした。
IDを振ろうにもページ内に表示されてる各トピック毎にフォームが存在する為に振れず...。

よければクラスでアクセス(?)する方法を教えてもらえないでしょうか。

121 名前:Name_Not_Found 投稿日:04/06/29 00:15 ID:???
>>120
ID属性つけてdocument.getElementById("id");

122 名前:Name_Not_Found 投稿日:04/06/29 00:15 ID:???
>>120
クラス名だけでアクセスする方法はないのでちょっと遠回りだけど、
var target;
var tmp = document.getElementsByTagName("input");
for(var i=0 ; i<tmp.length ; i++){
    if(tmp[i].className.indexOf("Cookname") != -1){
        target = tmp[i];
    }
}

123 名前:122 投稿日:04/06/29 00:17 ID:???
で、アクセスはできます。
途中でsubmitしてしまったスマソ

124 名前:120 投稿日:04/06/29 00:48 ID:???
>>121
いや、IDはごにょごにょ…。

>>122
どうも、ありがとう。
しかし、こちらの説明不足だったようで(´・ω・`)
紹介してくれたのはinput要素のクラス名がCooknameの場合と思いますが、そうではなくて…。

HTMLソース晒します。
<form method="post" action="./bbs.cgi" class="board">
<fieldset>
<legend>新規投稿フォーム</legend>
<dl>
<dt><label for="name">名前</label></dt>
<dd><input type="text" name="name" id="name" value="" /></dd>
<dt><label for="mail">メール</label></dt>
<dd><input type="text" name="mail" id="mail" value="" /></dd>
<dt><label for="title">タイトル</label></dt>
<dd><input type="text" name="title" id="title" value="" /></dd>
<dt><label for="message">内容</label></dt>
<dd><textarea name="message" id="message" cols="40" rows="3"></textarea></dd>
</dl>
<p><input type="submit" value="書込" /></p>
</fieldset>
</form>

このソースのinput要素のname属性がnameのとこにCooknameを、
mailのとこにCookmailをgetCookieサブルーチンを通した値をvalueに与えたいのです。
説明不足すみませんでした。

125 名前:Name_Not_Found 投稿日:04/06/29 00:56 ID:???
> いや、IDはごにょごにょ…。
なんだそれは

126 名前:Name_Not_Found 投稿日:04/06/29 01:15 ID:???
>>124
アホですか?
cookieを読んでvalueに入れればいいだけだろ

127 名前:Name_Not_Found 投稿日:04/06/29 01:18 ID:???
まぁ、マターリいこうぜ!

128 名前:Name_Not_Found 投稿日:04/06/29 06:22 ID:???
>>118-119
自然数以外が入力された時に無限ループやエラーが
起こらないようにしておいたよ〜

function fact(n){
return (n=Math.abs(parseInt(n)))!=n?n:n?n+fact(n-1):0;
}

function write_fact(){
with(document.frm1)factrial.value=fact(number.value)||"not a natural number!";
}


129 名前:118 投稿日:04/06/29 08:16 ID:???
>>128
助かりました!
どうもありがとうございます。

130 名前:122 投稿日:04/06/29 12:18 ID:???
>>124
getElementsByName なんてのも遭った飢餓。

131 名前:Name_Not_Found 投稿日:04/06/29 14:54 ID:???
>>130
あったあった。
getElementByName とか書いちゃって
「動かねーよボケ」ってディスプレイをビンタしたことあるなぁ

132 名前:Name_Not_Found 投稿日:04/06/29 17:07 ID:PrcECRN5
http://hp.xrea.jp/m/link/37.html
上記ページのようなtree型メニューを作りたいのですが
NN4に対応して、
さらに
treeを複数使用し
展開するtreeは必ずひとつにしたい
(他のtreeを展開しようとすると、現在展開しているtreeは自動的に閉じる)
のですが、
使用、または、技術的に可能なものでしょうか。
もし可能でしたら、スクリプトを教えていただけないでしょうか。
よろしくお願いします。

133 名前:Name_Not_Found 投稿日:04/06/29 17:21 ID:???
>>132
可能。
サンプルソースはいくらでも転がってるからあとはgoogleで

134 名前:120 投稿日:04/06/29 22:42 ID:???
なんとか出来ました。
>>122さんのが大きなヒントになってくれました。
秀和システムの参考書の「HTMLを配列として扱う」という所を読んでピンときたです。

function writeCookie () {
  var tmp = document.getElementsByTagName("form");
  for(var i=0 ; i<tmp.length ; i++){
    document.forms[i].name.value = getCookie("Cookname");
    document.forms[i].mail.value = getCookie("Cookmail");
  }
}

以上のようにルーチン化してonLoad属性にて読み込むことで
全てのフォームに反映されそうです。

色々とありがとうございました。

135 名前:122 投稿日:04/06/29 23:22 ID:???
document.forms[i] は tmp[i] だね。
せっかく変数(つか、配列)にほりこんだんだから、それ使った方が
メモリにやさしいかも。

あと name="name" はよくない気がする。

136 名前:Name_Not_Found 投稿日:04/06/29 23:27 ID:???
ところでXHTML1.1はDOM HTMLでアクセスできるのか……?

137 名前:120 投稿日:04/06/29 23:40 ID:???
>>135
あ、なるほど。
document.tmp[i]とか書いてましたorz
動かないわけですね。精進します。

nameの値…、これはJS的によろしくないのですね。
authorに変更しておきます。何度もありがとうございます。

138 名前:Name_Not_Found 投稿日:04/06/30 00:07 ID:???
>>137
変数名とか、予約語に触れないようにしたいけど、全部覚えるのは無理、
って場合は、例えば name じゃなくて user_name とか u_name とか、
二単語ぐらい繋げるのが手っ取り早いかも。

139 名前:Name_Not_Found 投稿日:04/06/30 02:49 ID:???
>>136
DOMを用いて要素にアクセスできる。

140 名前:136 投稿日:04/06/30 03:11 ID:???
>>139
DOM 2 HTMLの "only for [HTML 4.01] and [XHTML 1.0]
documents" は気にしなくて良いの?

141 名前:Name_Not_Found 投稿日:04/06/30 05:49 ID:???
1.0との互換部分は問題ないんじゃ?
多分実装上1.1はDOMは全然使えませんなんて糞なことはないかと・・・

142 名前:Name_Not_Found 投稿日:04/06/30 08:22 ID:???
>>140
動く実装があるかも知れないが、その動作は保証されない、ということ。
確かにDOM2HTMLはXHTML1.1/XHTMLMOD以降のXHTML
(名前空間がhttp://www.w3.org/1999/xhtmlであるだけのスキーマ不明のXHTMLや
他のXML中に埋め込まれたXHTMLを含む)における動作を保証するものではない。
でもまあ大半のXHTML文書がそうであるようにtext/htmlで認識させてあれば
実装の裁量でHTML4とみなされDOM2HTML通りに(HTML4として)動作する可能性が高いだろう。
# 勿論保証された動作ではない。

143 名前:Name_Not_Found 投稿日:04/06/30 16:56 ID:???
フォームのtextfieldで既定文字数以上を入力できない
ようにする方法を教えてください。

今までは既定文字数、行数を入力すると
既定数以上は反映されないようにしていました。

144 名前:Name_Not_Found 投稿日:04/06/30 17:57 ID:???
>>143
maxlength じゃいかんの?

145 名前:Name_Not_Found 投稿日:04/06/30 21:00 ID:qy8HWVhR
質問です

何度も同じ文字やタグを記述するときに、あらかじめその文を<head>内で短い文字に指定しておいて、
<body>内で、その指定した短い文字をdocument.writeか何かを使ってみやすく記述することはできるんでしょうか?

例えば、何度も
<font color="red">●</font>
や、
<font color="blue">●</font>
<font color="lime">●</font>
<font color="black">●</font>
などの何種類もの文をたくさん不規則に記述するとき、作業的にもめんどくあとでみるとわかりづらいし混乱しやすいので
簡潔にわかりやすくすることはJavaScriptにおいて可能かどうか知りたいです

また、他によい方法(JavaScript以外でも)を知ってる方いましたらお願いします
なお、現在PCではないため上記の記述例は確認がとれないです

146 名前:Name_Not_Found 投稿日:04/06/30 21:27 ID:???
>>145
たぶん可能。
「たくさん」とか「不規則」とかちょっと抽象的で何がしたいのかいまいちワカンナイ。

その例のパターンが多いなら要所要所で
<script language=javascript><!--
f("red", "●", 5);
// --></script>
色, 本文, 繰り返し回数
みたいに呼び出せる関数作ったらいいんじゃない?

その出現順序が全く不規則なら
配列に("red","red","blue","lime","black","black")みたいに省略して
あとから<font color="">●</font>を付け足して組み立てるとか。

147 名前:Name_Not_Found 投稿日:04/06/30 22:22 ID:???
XHTML1.1はもはやHTMLではない。Content-Type: application/xhtml+xmlで、
XMLとして解釈させるべきもの。
XHTML1.0はtext/htmlを使ってHTMLとして解釈させてもよい。

148 名前:Name_Not_Found 投稿日:04/06/30 22:41 ID:???
>>146
そう言う事は、htmlやらcssで工夫すれ。
その程度のパターンなら、いちいちscriptタグ
書く方がめんどい。

149 名前:Name_Not_Found 投稿日:04/06/30 23:25 ID:???
>>147
スレ違い。

150 名前:136 投稿日:04/06/30 23:36 ID:???
>>142,147
d
将来的にはCoreでやりくりしたほうが確実そうってことだね。

151 名前:Name_Not_Found 投稿日:04/07/01 00:07 ID:???
>>150
Coreでどうにもならないのがdocument.cookieとdocument.referrer.substr(0,0)+"http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_hp/1087/1087889503.html"...。

152 名前:Name_Not_Found 投稿日:04/07/01 01:22 ID:???
strict厨は居場所に戻った方が良いんじゃね?

153 名前:Name_Not_Found 投稿日:04/07/01 01:48 ID:???
ああごめんね。邪魔したな。

154 名前:145 投稿日:04/07/01 03:07 ID:???
何がやりたいか、だけど
落ちゲーの「ぷよぷよ」ってわかるかな・・、
>>145で出した例ではそのぷよぷよの画面を模式的に表した図を書く例です
つまり、画像を用いずに文字で書くわけなのでひたすら

<font color="red">●</font><font color="blue">●●</font><font color="lime">●</font><font color="red">●</font><font color="yellow">●</font><br>
<font color="blue">●</font><font color="lime">●●</font><font color="blue">●</font><font color="yellow">●●</font><br>
・・・・

みたいに書かないといけないので手間がかかりみづらく、完成図が浮かびにくいので、いい方法がないか悩んでる次第です


155 名前:Name_Not_Found 投稿日:04/07/01 03:08 ID:???
そうでもないよ。

156 名前:Name_Not_Found 投稿日:04/07/01 03:19 ID:???
>>154
俺は元ばよツアマスターですよ。 いや、マジで。
色を使わなくてもこんなんで解らないかなぁ・・。

        ■
○     ○■
×     ○■
      ×○
×     ○■
×■×○■×
×■×○■×
○○■×○■
○■×○■×

でもこーやって文字で描こうとすると環境によってズレるんで
おとなしく画像使ったほうがいいと思うよ。

157 名前:Name_Not_Found 投稿日:04/07/01 05:32 ID:???
万能tableレイアウターの俺が来たよ

158 名前:Name_Not_Found 投稿日:04/07/01 13:05 ID:???
onMouseOver="〜" などで
event.srcElement で得られたエレメントの 要素リスト番号?を調べる方法はありますでしょうか。

予め全ての <TD> に ユニークID を割り当てておけば var str = event.srcElement.id; とかでOKですが
元々作られている表で .getElementsByTagName("TD")[str-n] という感じで使用したり、
そのカラムの別の要素にアクセスしたりしたいと思いまして

ご教示おねがいします

159 名前:Name_Not_Found 投稿日:04/07/01 13:28 ID:???
>>158
var tmp = document.getElementsByTagName("td") でドキュメント内の
td が全部詰め合わせになった配列が手にはいるので、

もちろん、その親要素で限定しても全然構わないけど、

for(var i=0 ; i<tmp.length ; i++){
    if(tmp[i] == event.srcElement で得られたエレメント){
        ごにょごにょ
    }
}

とすれば、どの td か、っていうのはわかります。

160 名前:158 投稿日:04/07/01 13:49 ID:???
>>159さん有難う御座います

http://www.microsoft.com/japan/msdn/columns/dude/dude07232001.asp
なども参考にして色々と頑張ってみようと思います。

161 名前:Name_Not_Found 投稿日:04/07/01 14:46 ID:???
dakara DOM tsukae tte

162 名前:Name_Not_Found 投稿日:04/07/01 18:02 ID:???
750 名前:Name_Not_Found[sage] 投稿日:04/06/14(月) 14:09 ID:???
HTMLとCSSが理解できていない人には(DOMを操作することは)難しい

163 名前:Name_Not_Found 投稿日:04/07/01 18:32 ID:???
<td width=\"100%\">

何処かがおかしい・・・?

164 名前:Name_Not_Found 投稿日:04/07/01 19:17 ID:???
>>163
td 要素に指定されている width は推奨されない属性です。

165 名前:Name_Not_Found 投稿日:04/07/01 21:55 ID:???
なんだ・・ 9連鎖書いたのにレスまだなのか・・・ 暇なんで108連鎖書いてもいいですか?

166 名前:Name_Not_Found 投稿日:04/07/01 22:16 ID:???
>>165 ホレ。ぷよのアルゴリズムは自分でやるように。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title><script type="text/javascript">
var a, cr, cc, rows = 6, cols = 6;
function init() { a = document.getElementById('t0').rows; start(); }
function start() {
var c = Math.floor(rows*Math.random());
if(a[0].cells[c].firstChild.nodeValue == '_') {
a[0].cells[c].firstChild.nodeValue = '○'; cr = 0; cc = c;
setTimeout(step, 500);
} else setTimeout(start, 500); }
function step() {
if(cr < rows-1 && a[cr+1].cells[cc].firstChild.nodeValue == '_') {
a[cr].cells[cc].firstChild.nodeValue = '_';
a[cr+1].cells[cc].firstChild.nodeValue = '○'; ++cr;setTimeout(step, 500);
} else setTimeout(start, 500); }
</script></head><body onload="init()">
<table summary="test"><tbody id="t0">
<tr><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th></tr>
<tr><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th></tr>
<tr><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th></tr>
<tr><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th></tr>
<tr><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th></tr>
<tr><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th><th>_</th></tr>
</tbody></table></body></html>

167 名前:Name_Not_Found 投稿日:04/07/01 22:28 ID:???
>>156
挟み込みか…

168 名前:Name_Not_Found 投稿日:04/07/02 00:51 ID:MsjyYkfn
window.location.href に関する質問です。

Aというページをbとcにフレーム分割した場合
bのリンクをcフレームに表示させようとすれば、

parent.c.location.href = URL

ですが

AをBとCに分割し、更にCをdとeに分割した場合に
Bのリンクからdフレームへ表示をさせるには、どのように指示すれば良いのでしょうか?
環境はIE5 (Win2k)です。
よろしければご回答お願いします。

169 名前:165 投稿日:04/07/02 02:21 ID:???
>>166
なんだか解らんけどすげーな、サンクス。
4つで消えるようにするには縦横の繋がりを調べていかないといけないよな、
結構大変そうだ・・。 暇なんで挑戦してみるわ。

>>167
このスレに挟み込みが解る奴がいるとは思わなんだ。

170 名前:Name_Not_Found 投稿日:04/07/02 05:22 ID:???
>>168
俺恥ずかしいことにフレームに関しては何も知らないんだけど
B→Cの場合には
parent.c.location.href = URL
つまりBから出発してB→A(parent)→CでOKなわけだ

じゃあB→C→Dの場合は
B→A→C→Dでいいのでは?と俺なら考えるけどな

ホントにフレームの扱いに関しては何も知りません

171 名前:145 投稿日:04/07/02 06:22 ID:???
>>156>>165
レス遅くなってすみません
画像はPCないため使えないです
あとぷよぷよは例なので実際は違うもので、対戦ぱずるだまというやつです
ぷよのほうがわかりやすいので例にしてみました
それにしてもマスターがこんなとこにいるなんて驚きです
ぷよのアルゴリズムはどっかに研究してるスレがあったような・・

レスくださった方ありがとうございました
あきらめて普通に書きます。。

172 名前:Name_Not_Found 投稿日:04/07/02 07:38 ID:???
>>168
parent.frames.C.frames.D.location.href = URL;
>>170
知らないと言い訳しながら役に立たない発言をするのは
やめませう。
>>171
結局どういうものを求めているのか分からない。見せ方は>>166
のようなコードで、あとは並べたり消したりするアルゴリズム
をちゃんとすれば済むんじゃないの?アルゴリズムは当然自分で
やるよね、JavaScriptだからどうだという話題じゃないし。

173 名前:Name_Not_Found 投稿日:04/07/02 10:53 ID:E9eQFPTJ
質問させてください。
ページ上部にボタン横が並んでいてそのボタン一つ一つに
Javaスクリプトでポップアップメニュー下方向に表示させる設定をしています。
しかし、ボタンの下部分はiframeで別ページを表示させており、
ポップアップとかぶってしまうんです。かぶっている部分にカーソルをもっていくと、
iframe部分がアクティブになってしまい、ポップアップが消えてしまいます。

ポップアップを消えないようにしたいのですが、良い知恵はありませんか??
ご教授して頂けたら幸いです。
よろしくお願いします。

174 名前:Name_Not_Found 投稿日:04/07/02 10:54 ID:???
す、すいません(^▽^;) あげちゃいました・・・

175 名前:Name_Not_Found 投稿日:04/07/02 12:23 ID:???
>>173
iframe使わない。
iframeにかぶらないポップアップにする。
iframe部分をアクティブにしない。

176 名前:170 投稿日:04/07/02 14:56 ID:???
>>172
ん?そのコード俺の予想通りじゃん
自分なりに予測して調べてみればって伝えたかったんだけど、遠まわしな表現が気に入らなかったのか

177 名前:Name_Not_Found 投稿日:04/07/02 15:39 ID:HN5nS+m0
質問なんですが、ブラウザ上で、携帯のように
入力の段階で(送信した後で正規表現などで判定したりではなく)
テキストボックスに半角数字しか入力できないようにしたりする事は
できますか?もし、実現可能なら教えてください。お願いします。

178 名前:Name_Not_Found 投稿日:04/07/02 15:46 ID:???
>>177
出来るが、JavaScript じゃないので、初心者スレにでも行ってみると。
http://pc5.2ch.net/test/read.cgi/hp/1087865807/

179 名前:Name_Not_Found 投稿日:04/07/02 15:49 ID:HN5nS+m0
返事ありがとうございます。

180 名前:Name_Not_Found 投稿日:04/07/02 16:09 ID:???
>>177-178 ん?こういう奴のことじゃないのかな?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function ck(i) {
if(i.value.match(/[^a-zA-Z0-9]/)) alert('!!!');
}
</script>
</head><body>
<form action="#" name="f0"><p>
<input type="text" name="t0" onchange="ck(this)">
<input type="submit"></p></form>
</body></html>


181 名前:Name_Not_Found 投稿日:04/07/02 16:10 ID:???
>>176
そんな誰でも分かるような予想を偉そうに(しかも言い訳つきで)語る時点で(ry

182 名前:156 投稿日:04/07/02 16:45 ID:???
>>171
スマン、なんか思いっきり質問の意味を間違えて受け取ってた・・。
こういう意味だったのか。 ↓

<script type="text/javascript">
<!--
r = '<font color="red">●</font>';
b = '<font color="blue">●</font>';
l = '<font color="lime">●</font>';
k = '<font color="black">●</font>';

document.write(b+"<BR>")
document.write(r+"<BR>");
document.write("  "+k+l+r+b+"<BR>");
document.write(r+b+k+l+r+b+"<BR>");
document.write(r+b+k+l+r+b+"<BR>");
document.write(r+b+k+l+r+b+"<BR>");
// -->
</script>

183 名前:Name_Not_Found 投稿日:04/07/02 16:54 ID:???
誰でも分かるなら質問されないと思うが

184 名前:Name_Not_Found 投稿日:04/07/02 16:59 ID:???
>>176
>そのコード俺の予想通りじゃん
全然違うだろうが

185 名前:156 投稿日:04/07/02 16:59 ID:???
>>171
もっと書きやすくしてみた。

<script type="text/javascript">
<!--
r = '<font color="red">●</font>';
b = '<font color="blue">●</font>';
l = '<font color="lime">●</font>';
k = '<font color="black">●</font>';
n = "  ";

retu = new Array(6);

retu[5] = b;
retu[4] = r;
retu[3] = n+k+l+r+b;
retu[2] = r+b+k+l+r+b;
retu[1] = r+b+k+l+r+b;
retu[0] = r+b+k+l+r+b;

for (i = 0; i < retu.length; i++){
document.write(retu[retu.length-i-1]+"<BR>");
}
// -->
</script>

これにretu[6]とかをどんどん付け足していくだけ。
nはスペース(空のマス)ね。

186 名前:156 投稿日:04/07/02 17:02 ID:???
>>171
あ、その時は retu = new Array(6); の6も書き換えてね。(^^;A
retu[〜] の 〜 + 1 の数値ね。

187 名前:156 投稿日:04/07/02 17:36 ID:???
>>171 む・・ 最初から retu = new Array(20); とかにしておけば良いかも。

188 名前:156 投稿日:04/07/02 17:40 ID:???
>>171
そのままじゃ問題あるので書き直し。 何度もスマソ

<script type="text/javascript">
<!--
r = '<font color="red">●</font>';
b = '<font color="blue">●</font>';
l = '<font color="lime">●</font>';
k = '<font color="black">●</font>';
n = "  ";

retu = new Array(30);
retu[5] = b;
retu[4] = r;
retu[3] = n+k+l+r+b;
retu[2] = r+b+k+l+r+b;
retu[1] = r+b+k+l+r+b;
retu[0] = r+b+k+l+r+b;

for (i = 0; i < retu.length; i++){
if ( retu[retu.length-i-1] != undefined ){
document.write(retu[retu.length-i-1]+"<BR>");
}
}
// -->
</script>

189 名前:168 投稿日:04/07/02 18:29 ID:???
>>170さん >>172さん 回答ありがとうございます。解決しました。
170さんの言われているような parent.C.D.location = というようなアプローチは既に試してはいたのですが
〜.frames.C.〜のようなやり方があるとは知りませんでした。

(検索してそれらしいものはありましたが、どこの解説でも"〜.frames[フレーム名].〜"となっていたので)

大変助かりました、ありがとうございます。

190 名前:Name_Not_Found 投稿日:04/07/02 18:36 ID:???
>>188
わざわざデフォルトの長さを決めておく必要もないのでは。
長さなんてどうせ可変だし。まあそういう主義ならいいけど。
最後のfor文は漏れだったら配列を予め逆順にしておいて
document.write(retu.join('<br>'))で済ましちゃうなぁ...。

191 名前:Name_Not_Found 投稿日:04/07/02 18:42 ID:???
>>189
それは >>11 のQ7と類似の問題(つまりどっちでも実質同じこと)。
そしてC.D.とか書くよりframesをちゃんと書いた方がトラブルが少ない。

192 名前:156 投稿日:04/07/02 19:01 ID:???
>>190
そっか、30なんて指定する必要無かったのか…_| ̄|○
ご指摘サンクス子。

配列の順番が逆なのは落ち物パズルの場合、下段のほうから
書いていけたほうが修正するときに便利だからデス。

>>171
完成品っす。

<script type="text/javascript">
<!--
r = '<font color="red">●</font>';
b = '<font color="blue">●</font>';
l = '<font color="lime">●</font>';
k = '<font color="black">●</font>';
n = "  ";

retu = new Array();
retu[5] = b;
retu[4] = r;
retu[3] = n+k+l+r+b;
retu[2] = r+b+k+l+r+b;
retu[1] = r+b+k+l+r+b;
retu[0] = r+b+k+l+r+b;

for (i = 0; i < retu.length; i++){
document.write(retu[retu.length-i-1]+"<BR>");
}
// -->
</script>

193 名前:Name_Not_Found 投稿日:04/07/02 20:02 ID:???
ページを読み込んだ時に〜〜〜をする、というのはどうやったら出来ますか?

194 名前:Name_Not_Found 投稿日:04/07/02 20:10 ID:???
onload

195 名前:Name_Not_Found 投稿日:04/07/02 21:04 ID:???
font タグ とか document.write とかマジキモイから。

196 名前:Name_Not_Found 投稿日:04/07/02 21:25 ID:???
>>193

window.onload = function(){
//ここにやりたい処理。
}

>>195
キモイね。真っ白になっちゃえばいいのにね。

197 名前:Name_Not_Found 投稿日:04/07/02 22:05 ID:k2h0d5Z5
ちょっと質問です、答えていただけるとありがたいです

<body onload="myFunc()">
<SCRIPT language="JavaScript"><!--
myMsg = "ここに表示させたい文字列
myCnt = 0;
myOP = window.opera; // OP
myN6 = document.getElementById; // N6
myIE = document.all; // IE
myN4 = document.layers; // N4
if (myOP) myBR="O6"; // ブラウザは OP6以上
else if (myIE) myBR="I4"; // ブラウザは IE4以上
else if (myN6) myBR="N6"; // ブラウザは NS6以上
else if (myN4) myBR="N4"; // ブラウザは NN4
else myBR=""; // ブラウザは 分からん
function myFunc(){
myMess = myMsg.substring( 0 , myCnt )+"_";
myCnt = ( myCnt == myMsg.length ) ? 0 : myCnt+1;
if (myBR == "I4"){ // IE4の時の表示ルーチン
document.all("myIDstr").innerText = myMess;
}else if (myBR == "N4") { // NN4の時の表示ルーチン
document.layers["myIDstr"].document.open();
document.layers["myIDstr"].document.write("<div>");
document.layers["myIDstr"].document.write(myMess);
document.layers["myIDstr"].document.write("</div>");
document.layers["myIDstr"].document.close();
}else if (myBR == "N6") { // NS6の時の表示
document.getElementById("myIDstr").innerHTML=myMess;
}
setTimeout( "myFunc()" , 200 ); // ぐるぐる回る/スピード
}
// --></SCRIPT>

198 名前:Name_Not_Found 投稿日:04/07/02 22:07 ID:k2h0d5Z5
上記のスクリプトは
某所で公開されていた文字のタイピング表示スクリプトなのですが、
これだと文字を表示し終わると文字が消えて
最初から表示されるというループのようになってしまうんです
これをループさせずに、一度表示したらそのままって感じにするにはどうしたらいいのでしょうか・・・

唐突ですいませんが、よろしくお願いします

199 名前:Name_Not_Found 投稿日:04/07/02 23:21 ID:???
>>198
//myCnt = ( myCnt == myMsg.length ) ? 0 : myCnt+1;
上を消して下に書き換える。
if( myMsg.length < myCnt ) return;
else myCnt++;

こんなコードを人様に公開するなんてマジで終わってんな。

200 名前:Name_Not_Found 投稿日:04/07/03 00:41 ID:i2NFvVMt
置き換えたところできました!
助かりました〜^^;
サンクスです!

201 名前:Name_Not_Found 投稿日:04/07/03 01:05 ID:???
//<img name="foo">
function f(){
 document.foo.src = xxx();
 setTimeout("f()",60000);
}
f();
こんな感じで画像の自動更新はできるのですが、
テキストの自動更新ができません。
どうしたらいいですか?

202 名前:Name_Not_Found 投稿日:04/07/03 01:08 ID:???
>>201
"要素.innerHTML" に代入が簡単。

203 名前:Name_Not_Found 投稿日:04/07/03 01:15 ID:i2NFvVMt
NO,197 198で質問した者です
myMsg = "ここに表示させたい文字列"
の文字列の改行方法がいまいちよくわからないのです

myMsg[0] = "ここに表示させたい文字列"
myMsg[1] = "ここに表示させたい文字列"

ってな感じで行数を増やすと、ブラウザが対応してません
となって表示されなくなってしまうし・・・
ご指導していただけるとありがたいです

204 名前:Name_Not_Found 投稿日:04/07/03 01:25 ID:???
>>195-196
@


205 名前:Name_Not_Found 投稿日:04/07/03 01:29 ID:???
なによ、その変な@マークは。ふざけてるの?

206 名前:Name_Not_Found 投稿日:04/07/03 01:30 ID:???
なんだと

207 名前:Name_Not_Found 投稿日:04/07/03 01:42 ID:???
だんなと?

208 名前:204 投稿日:04/07/03 01:50 ID:???
@の意味を知らない人はすっこんでてね。

209 名前:Name_Not_Found 投稿日:04/07/03 01:59 ID:???
なんかわいた

210 名前:204 投稿日:04/07/03 02:07 ID:???
>>209
@

211 名前:Name_Not_Found 投稿日:04/07/03 02:13 ID:???
>>210
@

212 名前:Name_Not_Found 投稿日:04/07/03 02:15 ID:???
>>211
使い方が違いますよ、ド素人ですね?

213 名前:Name_Not_Found 投稿日:04/07/03 02:23 ID:???
javascriptのDOMを勉強したいんだけどさー、解りやすい解説+サンプルが載ってる
ページがあったら紹介しなよー、悪いこと言わないからさー。 あー

214 名前:Name_Not_Found 投稿日:04/07/03 02:23 ID:???
@
どういう意味か教えてください。よろしくお願いします。
ご指導していただけるとありがたいです

215 名前:Name_Not_Found 投稿日:04/07/03 02:25 ID:???
>>214
あっそ。

216 名前:Name_Not_Found 投稿日:04/07/03 02:27 ID:???
>>213
悪いこと言わないからさー。 あー きらめたほうがいいね。

217 名前:Name_Not_Found 投稿日:04/07/03 02:36 ID:???
>>216
やだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだやだ

218 名前:Name_Not_Found 投稿日:04/07/03 02:56 ID:???
>>217
@
↑これ正しい使い方?

219 名前:Name_Not_Found 投稿日:04/07/03 08:52 ID:???
>>213
そゆときは >>1-6 をまず見れ。

220 名前:Name_Not_Found 投稿日:04/07/03 08:54 ID:???
>>203
HTMLって改行は<br>でしょ。だから文字列の中に<br>を
埋めておけばいいのん。

221 名前:Name_Not_Found 投稿日:04/07/03 10:26 ID:???
文字列の中で<BR>を叫んだ着物

222 名前:Name_Not_Found 投稿日:04/07/03 10:40 ID:i2NFvVMt
>>220
この場合、文字中に<BR>を入れると
表示させたとき<BR>が改行ではなく、そのまま文字として認識され
たとえば

今日もいい天気ですね<BR>どこか買い物にでも行こうかな

とやると、そのまんま表示されてしまうのです

223 名前:Name_Not_Found 投稿日:04/07/03 12:09 ID:???
>>222
改めてレスをたどってやったが、元は>>197だな?
ならば、innerText使ってるから無理。
innerHTMLに汁。
っつか、>>197の意味判ってる?

224 名前:Name_Not_Found 投稿日:04/07/03 12:09 ID:TQXVduHO
"\n"

225 名前:Name_Not_Found 投稿日:04/07/03 13:14 ID:???
>>224
何だこのヴァカは?

226 名前:Name_Not_Found 投稿日:04/07/03 13:32 ID:???
<pre>あ\nほ</pre>

227 名前:Name_Not_Found 投稿日:04/07/03 13:33 ID:???
\r

228 名前:Name_Not_Found 投稿日:04/07/03 15:49 ID:???
strict厨混じるとキモイ流れになる証拠だな


229 名前:Name_Not_Found 投稿日:04/07/03 15:50 ID:???
>>228
@

230 名前:Name_Not_Found 投稿日:04/07/03 16:11 ID:???
>>228
は?
ただヴァカがヴァカに答えてあげてるだけだろ。

231 名前:Name_Not_Found 投稿日:04/07/03 17:00 ID:???
どんたこすったらどんたこすっ♪

232 名前:Name_Not_Found 投稿日:04/07/03 18:03 ID:???
悪いけどココ教えて君と知ったか厨しかいないスレだから
そこんとこ理解して発言んするように

233 名前:Name_Not_Found 投稿日:04/07/03 23:00 ID:???
http://www.nvidia.com/page/home
のメニューみたいに、マウスを乗せると下にメニューが表示されるようにしたいのですが
それらしい、JavaScriptをコピーして実行させても左下にエラーが表示されて
実行されません。多分、JavaScriptが間違ってるのかと思います。
何方か教えてください。

234 名前:Name_Not_Found 投稿日:04/07/03 23:02 ID:???
夜釣りの時期か

235 名前:Name_Not_Found 投稿日:04/07/03 23:13 ID:???
>>233
そういうの配ってて、使い方くらい書いてあるサイトたくさんあるから探せYo!

236 名前:Name_Not_Found 投稿日:04/07/04 14:31 ID:fGhkVJkQ
質問です。
index.htmlのhead内に、特定のページAから来たら特定のページBにすっとばすJSを、
body内に、アクセス解析レンタルのJSを入れています。
立ち上げると毎回エラー表示が一回出ます。

<head>
(略)
<SCRIPT LANGUAGE = "JavaScript">
<!--
if( document.referrer.substr(0,0)+"http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_hp/1087/1087889503.html" == "http://www.XXX.jp/~A/XXX/index.html"||
document.referrer.substr(0,0)+"http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_hp/1087/1087889503.html" == "http://www.XXX.jp/~A/XXX/index.html#7"||
document.referrer.substr(0,0)+"http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_hp/1087/1087889503.html" == "http://www.XXX.jp/%7eA/XXX/index.html"||
document.referrer.substr(0,0)+"http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_hp/1087/1087889503.html" == "http://www.XXX.jp/%7eA/XXX/index.html#q07" )
window.location = "http://www.XXX.or.jp/~B/XXX/osirase.html"
//-->
</SCRIPT>
</head>
<body(略)>
(略)
<SCRIPT TYPE="text/javascript" SRC="http://レンタル元のURL/js.php?007f140log04_レンタルのID/index"></SCRIPT>
(略)
</body>

「オブジェクトを指定して下さい」と出るのですが、飛ばしJSはあるサイトで教わった通りに書いていると思うし、
レンタル解析の記述も多分間違えてないと思うのですが…
なお、referrerが四つあるのは「~」が「%7e」に化ける環境があるらしいのと、アンカーがつく場合があるので。
どこをどう直せばいいのでしょうか。よろしくお願いします。

237 名前:Name_Not_Found 投稿日:04/07/04 14:33 ID:???
>>236
日本語がおかしい。

238 名前:Name_Not_Found 投稿日:04/07/04 14:33 ID:???
すいません>236ですが、間違えました。
referrerの二番目の#7と四番目の#q07はどっちも同じです。


239 名前:Name_Not_Found 投稿日:04/07/04 14:37 ID:???
window.location → location.href

自分も初心者だから後は上級者に聞いてくれ。

240 名前:Name_Not_Found 投稿日:04/07/04 14:49 ID:???
>>238
で、何行目でエラーが出たの?

241 名前:Name_Not_Found 投稿日:04/07/04 15:08 ID:???
>>235
自分なりに探してみましたが見つかりませんでした。
マウスポインタを乗せるとリンク先のページの説明が表示されるのは
見つかりましたが、少し開き方が違ってました。
ご存知なら教えてくれませんか?

242 名前:Name_Not_Found 投稿日:04/07/04 15:41 ID:???
教えてクンのすくつにようそこ

243 名前:Name_Not_Found 投稿日:04/07/04 16:21 ID:???
低脳が集まる糞スレと聞きましたがここですか?(ゲラゲラ

244 名前:238 投稿日:04/07/04 16:23 ID:???
すみません自己解決しました…
240さんのお言葉でもう一度確認してみたら、<body onLoad="preloadImages();">
が残ってて、その画像を消してしまったためでした。
お騒がせしてすみません。

245 名前:Name_Not_Found 投稿日:04/07/04 16:42 ID:???
氏ね。

246 名前:Name_Not_Found 投稿日:04/07/04 17:06 ID:???
あ、240さんありがとうございました。言い忘れてごめんなさい。
逝ってきます

247 名前:Name_Not_Found 投稿日:04/07/04 21:07 ID:???
>>246
>index.htmlのhead内に、特定のページAから来たら特定のページBにすっとばすJSを、
>body内に、アクセス解析レンタルのJSを入れています。

句読点の使い方が変。

248 名前:Name_Not_Found 投稿日:04/07/04 21:31 ID:???
最近の教えてクンは日本語も出来ないのか…

249 名前:Name_Not_Found 投稿日:04/07/04 22:55 ID:???
糞レスがループする糞スレと聞きましたがここですか?(ゲラゲラ

250 名前:Name_Not_Found 投稿日:04/07/04 23:04 ID:???
本当に難しく質問する価値のある質問だと結構役に立つ
んだけど、そういう質問はあまり多くないからね。
嘘だと思ったら過去ログが十数本読めるから読んでみれ。

251 名前:Name_Not_Found 投稿日:04/07/05 00:19 ID:???
メンドクサイから有用な質問・回答抜き出してまとめサイト作ろうか?w

252 名前:Name_Not_Found 投稿日:04/07/05 00:23 ID:???
ほーカス住人のためのまとめサイトですか?
タイトルもこれでいいぞ。さぁ作れ(プゲラ

253 名前:Name_Not_Found 投稿日:04/07/05 00:29 ID:???
なんでプゲラなのか分からない

254 名前:Name_Not_Found 投稿日:04/07/05 09:20 ID:???
>>251
本当にメンドクサイ作業がそれだと思うけど、やる気あるなら応援するぞ。

255 名前:Name_Not_Found 投稿日:04/07/05 14:02 ID:???
質問です。
とあるPHPで吐くHTMLなんですが。
フォームのエレメントタグで以下のように出てきます。
<input type="text" name="code[id]">
これに値を参照/代入したいのですが、
document.form1.code[id].value
document.form1.code["id"].value
document.form1.code.id.value
等は未定義エラーが発生します。
document.form1.elements[0].vlaue
なら可能ですが、フォーム内容に修正を加えたとき番号がずれる可能性が
ありますので、できる事なら避けたいです。
何か良い方法はありますでしょうか?

256 名前:Name_Not_Found 投稿日:04/07/05 14:21 ID:???
>>255
何か根本的に間違っているんじゃないの。PHPで生成してる
わけだから、「name="code1"」とか「name="code2"」とか
連番を振るようにして、あとは >>11 のQ7/A7を使うのが
いいと思うけど。

257 名前:255 投稿日:04/07/05 15:09 ID:???
>>256
PEARのQuickFormでエレメントをグループ指定すると、
name="group1[element1]" といった感じで吐くんですわ。

258 名前:Name_Not_Found 投稿日:04/07/05 16:10 ID:???
>>257
それはHTMLとして正しくないんで、ふつーPHP側でそれ以外の
方法があるんじゃないの。JavaScriptの話題じゃないね、バイバイ。


259 名前:255 投稿日:04/07/05 16:27 ID:???
>>258
正しくないっていわれたー。
なにを根拠に...

そして、自己解決しました。
document.form1.elements['code[id]'].value
で参照、設定が可能でした。


260 名前:Name_Not_Found 投稿日:04/07/05 16:39 ID:???
name 属性使うのってどうなの?

261 名前:Name_Not_Found 投稿日:04/07/05 16:43 ID:???
>>259 はい根拠。標準なんか知ったもんかという奴は来ないで欲しい。

http://www.w3.org/TR/REC-html40/types.html#type-name

ID and NAME tokens must begin with a letter ([A-Za-z]) and may
be followed by any number of letters, digits ([0-9]), hyphens
("-"), underscores ("_"), colons (":"), and periods (".").

262 名前:Name_Not_Found 投稿日:04/07/05 16:50 ID:???
>>259
動くとしてもそもそもヘンだと思わないか? 配列にするために
「code[id]」という書き方をしたんだろ。ところがその「code[id]」
というのが名前になっちゃって配列の添字は別に指定するってのは…

まあ動きゃなんでもイイっていうわけなのかも知れないけど、それ
続けてくとコードがボロボロになって手に負えなくなると思うぞ…

263 名前:Name_Not_Found 投稿日:04/07/05 16:50 ID:???
http://www001.upp.so-net.ne.jp/oka/fr-14.htm
こんな感じのメニューで、普通のテキストの下に表示させたいのですが
どうすればいいのでしょうか??

264 名前:Name_Not_Found 投稿日:04/07/05 16:53 ID:???
>>263
どこにだって表示させればいいんじゃないの?何が問題なわけ?
ある程度は自力でやらないと回答も得られないと思うけどな。

265 名前:255 投稿日:04/07/05 17:01 ID:???
>>261
なるほど、了解した。スマソ

>>262
いや、俺も最初はゲゲっておもった。
>>257で挙げたクラスライブラリをつかうとそういうHTMLを吐くんだわさ。

266 名前:Name_Not_Found 投稿日:04/07/05 17:06 ID:???
>>264
 普通のテキストリンク
┃開いたリンク1 ┃
┃開いたリンク2 ┃
┃開いたリンク3 ┃
┃開いたリンク4 ┃
┃開いたリンク5 ┃
┗━━━━━━┛
                         普通のテキストリンク
                         ┃開いたリンク1 ┃
                         ┃開いたリンク2 ┃
                         ┃開いたリンク3 ┃
                         ┃開いたリンク3 ┃
                         ┃開いたリンク4 ┃
                         ┃開いたリンク5 ┃
                        ┗━━━━━━┛

こんな感じに表示させたい位置がずれてるのです。
こういうのには対応できないのですか・・・?

267 名前:Name_Not_Found 投稿日:04/07/05 17:39 ID:???
>>266
うーん、そのソースぐっちゃぐっちゃで全部読み切ったわけじゃ
ないけど、HTMLからメニュー構成の情報を取得して全部もっかい
document.write()で書き直してるような気がする。だとすれば
そういう配置には「対応していない」んじゃないかな〜。

もっと普通の(document.write()で書き直したりしない階層メニュー
のサンプルを探した方がいくない?

268 名前:Name_Not_Found 投稿日:04/07/05 17:45 ID:CYrulQJz
hoge.html内で
window.open('test.cgi');
をやって、test.cgiにファイルを作成させています。
窓を開かずに、test.cgiだけ実行させるにはどうすればいいでしょうか。


269 名前:Name_Not_Found 投稿日:04/07/05 18:10 ID:???
>>267
対応してないんですか。。。。
http://www.sky.sannet.ne.jp/masapine/java_link8.html
これも(・∀・)イイ!!かなと思ったのですが、ポップアップのところにリンクが
張ってあったらクリックできないし、ポップアップがマウスの位置からになってる・・・^^;

270 名前:Name_Not_Found 投稿日:04/07/05 18:41 ID:???
>>268
思いつきなんだけど、

var tmp = document.createElement("img");
tmp.src = "test.cgi";

とかしてみると、アクセスしてくれんかね。駄目だったら、
cgi に 何か image/gif とかを返してもらうようにして、

document.getElementsByTagName("body")[0].appnedChild(tmp);

としてみるとか。

271 名前:Name_Not_Found 投稿日:04/07/05 19:28 ID:???
>>261
既出だが、標準を尊重したいならお前こそ仕様書読み直すことだな。
お前の引用した部分は、inputのname属性のようなCDATA型の属性には関係がない。
name="code[id]" は (X)HTML 的には何も問題がない。

272 名前:Name_Not_Found 投稿日:04/07/05 20:03 ID:???
>>271
スマン、漏れは>>261じゃないんだけど、後学のために聞かせて
欲しいんですが。

> ID and NAME tokens must begin ...

の下りは、ティムたんの誤爆ってことなの?
属性値ってPCDATAだと思ってた… orz

273 名前:272 投稿日:04/07/05 20:04 ID:???
×下り
○件

274 名前:Name_Not_Found 投稿日:04/07/05 21:02 ID:???
>>271
ふーんそうなのですか、勉強になりまつ。ところで質問なのですが、
その箇所のすぐ上にこうありますよね。

* CDATA is a sequence of characters from the document character
set and may include character entities.

(...中略...)

For some HTML 4 attributes with CDATA attribute values, the
specification imposes further constraints on the set of legal
values for the attribute that may not be expressed by the DTD.

この「DTDではCDATAと書かれているがさらに強い制約があるもの」
とは具体的にはどの要素のどの属性なんでしょう。自分はてっきり
これはすぐ下に続くID、NAME、IDREF、IDREFS、NUMBERについての
言及だと考えてしまっていたのですが。よろしくお願いしまつ。

275 名前:Name_Not_Found 投稿日:04/07/05 21:10 ID:???
スレ違い

276 名前:255 投稿日:04/07/05 21:12 ID:???
なんだなんだ? 別に問題ないのか?
外部ライブラリなんで、急に仕様変更になったりしたらやだなと思ってたんだけど、
とりあえずは安心してられるのかな?

277 名前:Name_Not_Found 投稿日:04/07/05 21:18 ID:???
>>272
DTD みると ATTLIST に
ID とか NAME とか NUMBER とか属性の宣言値が書いてあるだろ。
IDトークンとかNAMEトークンてのはそれを指している。

> 属性値ってPCDATAだと思ってた
引用符で囲まれて表記される属性値表記の解釈は確かにPCDATAとして行われる。
ただ、ではそれで例えば "maxlength NUMBER #IMPLIED"
というような宣言を無視できるかというと、そういう話ではないので。

>>273
> この「DTDではCDATAと書かれているがさらに強い制約があるもの」
大雑把に言うとDTDにおける "CDATA" という内容の引数実体参照。
%ContentType; とか、 %URI; とか外部仕様が存在するものを指す。

スレ違いスマソ。

278 名前:268 投稿日:04/07/06 09:12 ID:???
>>270
こんなやり方があるんですね、その方法でうまく行けました。
ありがとうございます。


279 名前:Name_Not_Found 投稿日:04/07/06 11:47 ID:???
>>277
なるほど、了解しますた。
>>276
あと、name="..."が同じ要素を沢山作ったらそれが1つの
配列としてアクセスできるというのはDOMには書かれて
いないように記憶してるのだけど…それも読み違いなら
すまんけど。

280 名前:Name_Not_Found 投稿日:04/07/06 13:26 ID:???
Strictスレ行けよバカ

281 名前:255 投稿日:04/07/06 14:07 ID:???
>>279
えーと、グループ化しても配列化しないオプションがあった。
つか、わざわざ配列化してしまうオプションを有効にしていた。
いろいろすれ違いネタになりお騒がせしてすまんかった。> all

282 名前:Name_Not_Found 投稿日:04/07/06 14:20 ID:???
DOMの問題はこのスレでしょ。

283 名前:283 投稿日:04/07/06 22:30 ID:???
OS:Windows2000 SP4
ブラウザ:IE6SP1

商品の広報用のHTMLがあるんですが、そのHTMLをIEで参照することが出来
なくて困ってます。

Scriptを使わず通常のタグだけなら問題ないんですが、動的HTMLを使うた
めHTMLの中に約9000程のdocument.writeを追加したところ、IEで参照する
とページを読み込み続けて20分程経っても読み込み完了することが出来な
い状態です。document.writeの代わりに直接タグを打ち込むと約40秒程で
読み込みが完了しますのでHTML自体には問題無いと思います。
ネットスケープやOperaでは特に問題なく参照することが出来ました。
IE5.5はIE6ほど重くは無かったんですが、それでもかなり重い状態です。
動的HTMLを生成したいため、実際の運用では直接タグを打ち込むというこ
とは出来ません。
対処法、もしくは原因など知っていたら御教授願えないでしょうか?

284 名前:Name_Not_Found 投稿日:04/07/06 22:39 ID:???
釣られてみようか。

>>283
> 約9000程のdocument.write

が悪い。何をどうしたらそんなことになってしまうのか。
先に行っておくと、DHTML 技術を使うことには何ら問題はないよ。

write なんてしないで、要素を生成して、DOMツリーに追加すればおk

285 名前:283 投稿日:04/07/06 23:03 ID:???
>>284

つっこまれるのはわかってましたけど、document.write
の大量配置はやっぱりまずいんですね。

ネスケでは一応見れていたので、何らかの解決策がある
のではと思って質問してみました。
document.writeでやっていくことにはあまり固執する
気は無いんですけど、ネスケとIEではdocument.write
の扱いは違うんでしょうか?

286 名前:Name_Not_Found 投稿日:04/07/06 23:13 ID:???
>>285
たいして違わないけど、
document.write というオブジェクト+メソッドの構文を
ひとくくりに echo や print みたいな標準出力の代わりと思っているのは、
大きな勘違い。

JavaScript は DOM ツリーにぶら下がるエレメント群とそのプロパティを
ごにょごにょする為のモノ、本筋は。

NN4 に気を遣っているならば、すでにそのスクリプトは
NN4 とのクロスプラットフォームドスクリプティングの限界を
越えてしまっているモノだと思って違う道を探った方がいいよ。

287 名前:Name_Not_Found 投稿日:04/07/06 23:21 ID:???
>>284
9000回のDOMノード追加もやり方次第では相当な処理時間がかかると思うが。

>>285
document.writeを使うにしろDOM操作でいくにしろ
画面の再描画回数を減らす方向でルーチンを改造するのが吉。
9000回分のタグを全部配列に入れておいてjoin()した文字列を一気にdocument.writeとか。

288 名前:Name_Not_Found 投稿日:04/07/06 23:23 ID:???
そんなに多数書いてるならほとんどをdocument.writeにしてるのか?
いくら動的HTMLと言ってもイノシシ並に前しか見れないんだな

289 名前:Name_Not_Found 投稿日:04/07/06 23:25 ID:WA+fL9sm
言葉をつつしみなさい。

290 名前:283 投稿日:04/07/06 23:29 ID:???
早速のレスありがとうございます。
商品数が約2000ほどあってHTMLのサイズが10MBまで膨れ
上がってました。document.writeの使用率は30%ぐらい
という所です。仕様上の問題があって分散して表示という
事が出来ない状況でこんな事態になってしまいました。

JavaScriptの本来の使用目的に外れて限界を超えていた
みたいですね。
もう一度再構築する形で進めて生きたいと思います。
ありがとうございました〜。

291 名前:Name_Not_Found 投稿日:04/07/06 23:51 ID:???
>>290
ページは1つであってもobject要素などを使えば他の(分けた)
HTMLを埋め込めるから適宜分割して生成できるよ。9000行の
writeはどう見ても尋常じゃないねえ。実はその9000行のうち
変化するところは一部なんじゃないの?

292 名前:283 投稿日:04/07/07 00:05 ID:???
商品数・価格によって変動させているんですが、おっしゃる通り変
化するところも一部だし、データベースから数値を引っ張っている
わけではないので、あまり意味が無いといえばその通りなんですよね。
本来はJavaSevletで…ということなんですが一品物だったのでこの
ような事態になりました。
JavaScriptは予想以上に奥が深いようで勉強になりました。



293 名前:Name_Not_Found 投稿日:04/07/07 00:33 ID:???
>>292
それでなんで9000行?もしかして表の縦数列をずーっと変えている
とか?

294 名前:Name_Not_Found 投稿日:04/07/07 01:11 ID:4GZ84nlM
ホバーウインドウって 人気あるの?


295 名前:Name_Not_Found 投稿日:04/07/07 05:57 ID:???
ホバーウインドウ?
ポップアップウィンドウのこと?それともただのいわゆるポップアップ?

296 名前:Name_Not_Found 投稿日:04/07/07 06:09 ID:???
>>283
>document.writeの代わりに直接タグを打ち込むと約40秒程で
> 読み込みが完了しますのでHTML自体には問題無いと思います。

多分、これが嘘。
そのdocument.writeのどこかに問題があると思われ。
\"の間違いとかで、変なhtmlになってないか?

297 名前:Name_Not_Found 投稿日:04/07/07 14:58 ID:???
てっゆーかJavaScriptだけで商品数・価格によって変動する動的ページ?
商品数・価格はどこから取得するんだよ

298 名前:Name_Not_Found 投稿日:04/07/07 15:38 ID:???
>>297
車のオプション見積もりページなんかみたいなのだろ

299 名前:Name_Not_Found 投稿日:04/07/07 19:23 ID:???
>>298
しかしそういうんだったら、オプションとか選ぶとその場で
計算して表示とかいう感じになりそうなもんだけど。9000行
書くというのはやっぱり納得がいかない。

300 名前:Name_Not_Found 投稿日:04/07/07 20:15 ID:???
5の平方根を、2分法とニュートン法の
2種類で求める為に、下のようなプログラムを、数学の参考書、
Javascript辞典とにらめっこしながら書きましたが、どうも
構文エラーが出てしまい、上手く働きません。どこが悪いのでしょうか。
すいません、本当に解りません。

<html>
<body bgcolor=orange>
<center>
<h2>5の平方根を、2分法で求める</h2>
<script language="javascript">
e=10e-8;
a=5;
x1=2;
x2=3;
f1=x1*x1-a;
document.write("<table border=3>");
document.write("<td algen=center>" + x1 + "</td>"
+ "<td algen=center>" + x2 + "</td>"
+ "<td algen=center>" + |x1-x2| + "</td>");
document.write("<tr>");

while(Math.abs(x1-x2)>e){
y=Math.abs(x1-x2);



301 名前:Name_Not_Found 投稿日:04/07/07 20:15 ID:???
document.write("<td algen=right>" + x1 + "</td>"
+ "<td algen=right>" + x2 + "</td>"
+ "<td algen=right>" + y + "</td>");
document.write("<tr>");

x3=(x1+x2)/2;
f3=x3*x3-a;
if((f1*f3)==0){
break
}else{
if((f1*f3)>0){
x1=x3
}else{
x2=x3;
};
};
};

document.write("</table>")
document.write("<h2>")
document.write("e=" + e + "<br>")
document.write("a=" + a + "<br>")
document.write("aの平方根" + x3 + "<br>")
document.write("</h2>")
</script>
</body>
</html>

302 名前:Name_Not_Found 投稿日:04/07/07 20:27 ID:???
まずは algen から突っ込もうか。

303 名前:Name_Not_Found 投稿日:04/07/07 20:31 ID:???
× |x1-x2|
○ (x1-x2)
見間違えた?

304 名前:Name_Not_Found 投稿日:04/07/07 21:24 ID:LeqrcjfY
>302-303
そこ直したら、あっさりできました…ありがとうございます!!
物凄く助かりましたjavascriptとともに、数学も勉強しなおしてきます。
本当に、ありがとうございました。

305 名前:Name_Not_Found 投稿日:04/07/07 22:48 ID:???
ていうかそんな平方根求めるようなスクリプトなんにつかうんだ?
利用方法がまったく思いつかない

306 名前:Name_Not_Found 投稿日:04/07/07 22:50 ID:???
学校の宿題

307 名前:Name_Not_Found 投稿日:04/07/08 00:33 ID:???
プログラムを書く練習じゃない?

308 名前:Name_Not_Found 投稿日:04/07/08 00:57 ID:???
世界経済を救うための計算だよ

309 名前:Name_Not_Found 投稿日:04/07/08 11:46 ID:???
inputの中に入力したものをリアルタイムで表示させたいのですが、
<form name="mform">
<input type="text" name="test" size="35" value="" onkeyup="document.writeln(mform.filter.value);">
</form>
こうするとすべてページが消えた上にポツリと内容が表示されます。
表示する場所などの指定がよく分かりません。どうにかできないでしょうか?

310 名前:Name_Not_Found 投稿日:04/07/08 11:47 ID:???
ミスりました。
○mform.test.value
×mform.filter.value

311 名前:Name_Not_Found 投稿日:04/07/08 13:02 ID:???
innerText

312 名前:Name_Not_Found 投稿日:04/07/08 13:48 ID:???
>>309
ほーら、そういうときは >>11 のQ4/A4を見れ。

313 名前:Name_Not_Found 投稿日:04/07/08 13:54 ID:???
>>309
DOM つかおう。

314 名前:Name_Not_Found 投稿日:04/07/08 21:24 ID:???
東京DOM

315 名前:Name_Not_Found 投稿日:04/07/08 21:49 ID:???
>>311
ありがとうございます。
無事に動作させられました。

>>312,313
FAQにあったのにすみませんでした。
innerTextでとりあえず動作できたのですが、
DOMの場合はどんな感じになるんでしょうか?
とりあえずサンプルをいじくっているのですが、
function test1(){
var theNode = document.getElementById('testmes');
theNode.firstChild.nodeValue = "てすてす";
}

<p id="testmes"></p>
..(略)
<input type="text" name="test_input1" value="あいうえお" onkeyup="test1();">
この"てすてす"を単にmform.test_input1.valueとしただけではダメですよね...。
どうやったらvalure値が取得できるんでしょうか?

316 名前:Name_Not_Found 投稿日:04/07/08 22:01 ID:???
>>315
ほーら、そういうときは >>11 のQ7/A7を見れ。

317 名前:Name_Not_Found 投稿日:04/07/08 22:02 ID:???
>>316
その前に>>3,4じゃないか?

318 名前:Name_Not_Found 投稿日:04/07/08 22:03 ID:???
>>315
普通にgetElementByIdとかでもいいし。で、valueプロパティ

319 名前:313 投稿日:04/07/08 22:33 ID:???
>>315
それだったら、onkeyup="test1(this);" ってすれば。
あと、原理主義的かもしれないけど、空のpはよくないです。

320 名前:Name_Not_Found 投稿日:04/07/09 00:51 ID:i8VR6geA
<!--
var tx=Array();
tx[0] = "あいうえお";
tx[1] = "かきくけこ";
tx[2] = "さしすせそ";
document.writeln(tx);
//-->
これを実行すると
あいうえお,かきくけこ,さしすせそ
の様に「,」で区切られるのですが、
この区切りをなくす方法を教えてください。



321 名前: ◆jHejx.Ji8k 投稿日:04/07/09 00:52 ID:???
あげちゃった

322 名前:Name_Not_Found 投稿日:04/07/09 00:56 ID:???
>>320
>>4のリファレンスサイトを熟読して
配列について調べてみよう

323 名前:Name_Not_Found 投稿日:04/07/09 10:16 ID:???
>>320-322
ヒント: 「tx.j???(??)」

324 名前:Name_Not_Found 投稿日:04/07/09 15:58 ID:???
え〜と、別スレで質問したら誘導してもらい、ここにきました。
マルチすんません。

今、myHPにアンケートを挿入しようとしています。
そこで一つの案というか壁にぶち当たりました。
はい、いいえのラジオボタンで
「はい」だったらその下のフォームオブジェクトが使えて、
「いいえ」だったらその下のフォームオブジェクトがグレーになって使えなくなるような
プログラミングってありますか?

例えば・・・
以下のアンケートに答える気がありますか?
○はい ○いいえ
で「はい」にチェックを入れるとそれまで記入できなかったフォームに書き込めるようになるみたいな・・・

当方素人なもので果たしてこのようなことが出来るかどうかも分かりません。
私の希望に添うようなページなどありましたらURLを示して頂ければ幸いです。
CGIは少々勉強してのでソースみて何とかしたいと思っています。
どなたか知っている人いたらご教授下さい。

325 名前:キューブ ◆jHejx.Ji8k 投稿日:04/07/09 17:05 ID:???
<!--
var tx=new Array();
tx[0] = "あいうえお";
tx[1] = "かきくけこ";
tx[2] = "さしすせそ";
document.writeln(tx.join(""));
//-->
とやったらできました。
>>322-323
ありがとうございます。

326 名前:Name_Not_Found 投稿日:04/07/09 17:25 ID:???
>>324
チェックが「いいえ」についてたら
オブジェクトのdisabledプロパチーをtrueにすりゃよろし

327 名前:Name_Not_Found 投稿日:04/07/09 17:28 ID:???
ステータスバーに「実行しましたが、ページでエラーが発生しました」
と表示されるのを、表示させないようにすることはできますか?
もちろんエラーを直すこと無しにです。。








328 名前:Name_Not_Found 投稿日:04/07/09 17:45 ID:???
>>327
エラーが起きないように直せる実力がないのならJavaScript
なんかやめた方がいいと思うけどねえ。ちなみに答えは「できます」
で、その方法は検索すればすぐ分かると思うよ。だから書かない。

329 名前:327ではないですが 投稿日:04/07/09 17:55 ID:???
>>328
できるんだ。知らなかった…

330 名前:327 投稿日:04/07/09 18:01 ID:???
>>328
エラーの原因もわかってるのですが
第3者のデータを扱ってるので
独力では中々解決するのが難しくて・・

後散々検索しても見つかりませんでした

331 名前:Name_Not_Found 投稿日:04/07/09 18:14 ID:???
データがどうであろうとコード側でチェックして
まずい動作をしないようにすればいいだけのことだが。
「onerror」だよ、もろじゃん。もっかい検索すれ。

332 名前:Name_Not_Found 投稿日:04/07/09 18:18 ID:???
森田検索

333 名前:329 投稿日:04/07/09 19:47 ID:???
onerror ってそういう使い方だっけ?
try catch の方じゃなくて?

334 名前:327 投稿日:04/07/09 20:24 ID:???
onerrorにしろtry catch にしろ
ステータスバーのエラーを表示させないために
何を記述すればよいのかさっぱりわかりません

335 名前:Name_Not_Found 投稿日:04/07/09 21:30 ID:???
>>334
あららまだわかんない?
onerrorを空の関数でハンドルすればいいんでしょ。
下のでどーよ。

<html>
<head>
<script>
window.onerror = new Function( "" ) ;
</script>
</head>
<body>
<script>
a = ; // エラーになるコードをわざと書いておく
</script>
</body>
</html>

336 名前:Name_Not_Found 投稿日:04/07/10 00:57 ID:???
>>324
レスつかないみたいですね。
IE6とNN7以外で動作するコードは↓のような雰囲気。

<html>
<head>
</head>
<body>
<form>
<input type="radio" name="yesno" checked onclick="idtext.disabled=false">YES
<input type="radio" name="yesno" onclick="idtext.disabled=true">NO
<br>
<textarea id="idtext"></textarea>
</form>
</body>
</html>

ほかの書き方は
「javascript disabled」というキーワードでぐぐれば
いくらか出てくる。

337 名前:Name_Not_Found 投稿日:04/07/10 01:20 ID:???
>>326

338 名前:324 投稿日:04/07/10 12:59 ID:???
>>326 >>336
レスどうもありがとうございます。
なんとか出来そうです。

ところでdisabledの命令先が2箇所以上になる場合どのようにフォームを指定すれば良いのでしょうか?
idtext.disabled のidtextをAとすると
A?B.disabled
?には何が入るのでしょうか?
さんざん調べたのですが、分からなかったものでもう一度お伺いすることにしました・・・。
宜しくお願いします。

339 名前:Name_Not_Found 投稿日:04/07/10 13:02 ID:???
2箇所別々にtrueにするなり
ツリー追って順に処理させるなり好きにしる

てか調べ方足りないんじゃないの?

340 名前:Name_Not_Found 投稿日:04/07/10 13:35 ID:???
>>339
どうも >>338 は「1行を超えるコードが書けない」人ではないかと。
もしそうなら何言っても無駄ぽ。

341 名前:Name_Not_Found 投稿日:04/07/10 16:22 ID:???
>>338
一冊JavaScriptの本を買って、読破してから再質問してみてください。

このスレの雰囲気からするとJavaScriptの文法を
だいたい抑えている人が対象みたい。
だからあんまり初歩的な質問にまで下ってしまうと
真っ当なレスはつきません。

ちなみに、JavaScriptで複文にするときは「;」(セミコロン)を使います。
制御したいフォームのIDが「A」と「B」だったときは
onclick="A.disabled=false ; B.disabled=false"とすればよいです。

342 名前:Name_Not_Found 投稿日:04/07/10 16:57 ID:???
初歩的な質問だからレスつかないんじゃないぞ。
調べりゃ簡単にわかることだからレスつかなかったり煽られたりするんだろ。
過去ログ全部嫁とまでは言わんが、
せめてテンプレにある関連サイトに目を通すくらいはすべき

343 名前:Name_Not_Found 投稿日:04/07/10 17:44 ID:???
右も左も分からない人には行くべき道を教えてあげれません
行き先を教えても右も左も分からないので辿り着けないからです

344 名前:Name_Not_Found 投稿日:04/07/10 17:46 ID:???
>>342
わかんない人は、どこを見ていいものなのか分からないし
それが簡単なのか難しいのかすら、わかんないのだがね。

345 名前:Name_Not_Found 投稿日:04/07/10 19:58 ID:???
どこを見ていいものなのか分からない、
それが簡単なのか難しいのかすらわからない、
それならそこを脱してから質問書き込んでくれ

346 名前:Name_Not_Found 投稿日:04/07/10 20:02 ID:???
>>345
そういう人は自分で解決できるから、
質問しないんじゃないの?
そうなるとこのスレの存在が危ういw

347 名前:Name_Not_Found 投稿日:04/07/10 23:15 ID:???
「どこを見れ」とか「本を読め」とか「過去ログを読め」とか
その人のレベルに相応しいレスはついてると思うよ、一般に。

348 名前:Name_Not_Found 投稿日:04/07/11 00:43 ID:???
だな
「親切」であればいいわけではないし

349 名前:Name_Not_Found 投稿日:04/07/11 01:45 ID:???
UTF-8に変換せずに、元の文字コードのままURIエンコードする方法ってありますか?

350 名前:名無しさん@そうだ選挙に行こう 投稿日:04/07/11 07:33 ID:???
>>349
escape()、unescape()の話でしょうか?
エンコードに使われる文字セットは、ブラウザ依存で
選ぶことはできないと思われ。

351 名前:名無しさん@そうだ選挙に行こう 投稿日:04/07/11 13:41 ID:???
Unicode=UTF-8だと思ってんのか… なんでこんなアフォが(ry

352 名前:名無しさん@そうだ選挙に行こう 投稿日:04/07/11 16:29 ID:???
>>350
いいえ。元の文字コードのままURIエンコードする方法です。
encodeURIComponentやECMA-262 2nd Edition準拠のescapeではなく
Netscapeのescapeと同じ結果を他のブラウザで実現する方法です。
たとえばshift_jisのページの「あ」を「%82%A0」、euc-jpのページの「あ」を「%A4%A2」のように変換するエンコードです。

353 名前:名無しさん@そうだ選挙に行こう 投稿日:04/07/11 17:06 ID:???
>>352
がんばれば自前で関数を書けばできそうだが、ブラウザごとの互換性問題
を完璧に解決するのは、たぶんムリ。

漏れはキミが何をやろうとしているのか、わからない。
エンコードする前のデータはどこからくるのか。エンコード後のデータを
どこへ流そうとしているのか。(サーバ?クライアントクッキー?表示用?)

その近辺をもうちょっと詳しく。

354 名前:名無しさん@そうだ選挙に行こう 投稿日:04/07/11 17:41 ID:???
ブラウザごとの互換性問題を完璧に解決するには、
Unicode⇔JIS X 0208完全な変換テーブルを用意するしかないかと。
あともう一つの難関は文書の文字コード検知。
MozやIEならdocument.charsetで取得できるけど
標準化はされてないから取得できない環境もあるだろう。

355 名前:Name_Not_Found 投稿日:04/07/12 01:35 ID:???
>>342-348
金魚の糞みたいに連なって無意味なレスつけるな。
スレが読みにくいんだよ。

356 名前:Name_Not_Found 投稿日:04/07/12 01:41 ID:???
jsてなんでURLエンコ関数設けないんだろうな、長年疑問に思ってるんですけど・・。

357 名前:Name_Not_Found 投稿日:04/07/12 01:49 ID:???
>>356
JavaScriptには、ブラウザ内部の世界から外へは出ない(出さない)
っていう哲学やら思想があるからじゃないの?
一線引かないと、機能が拡張されすぎてワケ分からなくなったり
セキュリティーの穴も空きやすくなったりする。

358 名前:Name_Not_Found 投稿日:04/07/12 01:54 ID:???
それは哲学とか思想というより、理念と言うべきかと

359 名前:Name_Not_Found 投稿日:04/07/12 02:03 ID:???
>>358
あのー、コンピュータ言語の特徴を説明するときに
哲学(Philosophy)っていう言い方を普通に使うんですけど。
http://info.baeumle.com/java/intro/philosophy.html

ちなみに「哲学」といってもプラトンとかソクラテスが
出てくる世界とは違うのであしからず。

360 名前:Name_Not_Found 投稿日:04/07/12 02:23 ID:???
Philosophy には、考え方、根本原理みたいな意味もあるわけで、
「哲学(Philosophy)」のような表記をするのはどうかと思うが。

361 名前:Name_Not_Found 投稿日:04/07/12 02:34 ID:???
>>360
まーしつこいこと。
Philosophyってだけ言うとインテリ臭くてイヤだから
哲学(Philosophy)ってわざわざ書いたのにw

「Javaの哲学」っていう書名あるくらいだから
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=Java%E3%81%AE%E5%93%B2%E5%AD%A6
業界内では、Philosophyと哲学は一緒にしちゃって問題ないのよ。

コトバ博士は髭生えたオジサンになってからにしてw

362 名前:Name_Not_Found 投稿日:04/07/12 02:52 ID:???
358≠360 でつ。
Philosophy ≡ 哲学 なんて言うのは、一部の業界の馬鹿な技術者だけにしておいてクレー

363 名前:356 投稿日:04/07/12 05:36 ID:???
>>357
そういう哲学があったとは知らなかったよ、サンクス。

でもURLエンコが出来なくても外へは出せるんだよね、escapeは使えるわけだし。
外に出したいのか出したくないのかがはっきりしなくて中途半端だね。
どうせならURLエンコも実装してくれたらいいのに。('A`)

364 名前:Name_Not_Found 投稿日:04/07/12 07:39 ID:???
>>355
あんたはこのスレ読まなくていいよ。

365 名前:Name_Not_Found 投稿日:04/07/12 11:19 ID:???
>>363のURLエンコが何を指してるのか分からんがencodeURIって関数はあるよ

366 名前:Name_Not_Found 投稿日:04/07/12 11:41 ID:???
>>359
プライド高杉

367 名前:Name_Not_Found 投稿日:04/07/12 11:51 ID:???
>>366
放置しろや禿

368 名前:Name_Not_Found 投稿日:04/07/12 13:57 ID:???
指定したURLのHTMLソースを文字列として
変数に代入するにはどうすればいいですか

369 名前:Name_Not_Found 投稿日:04/07/12 14:04 ID:???
>>368
まず >>11 のQ2/A2を読め。もし自サーバのURLのソース
だったら改めて質問してくれれば相談にのる。

370 名前:Name_Not_Found 投稿日:04/07/12 14:13 ID:???
>>369
別サーバです。CGIで何とかします。ありがとうございました。

371 名前:356 投稿日:04/07/12 16:28 ID:???
>>365
そ、ソレダ! スマン、知らんかった_| ̄|○

372 名前:Name_Not_Found 投稿日:04/07/13 09:08 ID:???
suuji = 100 * 1.15

↑の計算結果を出力するとなぜか115ではなく、114.99…998となるのですが、原因はなんなんでしょう?
1000 * 1.15にするとちゃんと1150とでるし、10 * 1.15でもちゃんと出ます。
さらに、1.20などだと120と正しく出力されています。なぜか115付近の数値だけダメです。

373 名前:Name_Not_Found 投稿日:04/07/13 09:38 ID:???
凄いタイミングで372と同じところに躓いた。

よって質問省略。

374 名前:Name_Not_Found 投稿日:04/07/13 09:54 ID:???
>>372-373
コンピュータ上での実数計算は基本的に「近似値」だと思え。
だからあんたが「ちゃんと」と思ってるのは「たまたま」
四捨五入の結果そうなっただけのこと。それが嫌なら整数を
使うしかない。115の付近だけってことは全然ないよ。


375 名前:Name_Not_Found 投稿日:04/07/13 11:32 ID:1ZSgFAj9
タブ移動でリンク用の画像にフォーカスが合った時に時に
その画像を差し替えたいのですが方法が分かりません。
マウスのカーソルがあった場合はonmouseout、onmouseoverで
差し替えられるのですがTab移動で画像にフォーカスがあった場合は
駄目なので困っています。
<a>や<img>タグでblur、focusのような効果を期待出来る方法や
他にいい方法は無いでしょうか?



376 名前:Name_Not_Found 投稿日:04/07/13 11:46 ID:???
onfocus?

377 名前:Name_Not_Found 投稿日:04/07/13 11:48 ID:???
>>375
あんたは調べるということをしないのか。<a>タグにはonfocusも
onblurもあるだろ。何が問題なんだ???

378 名前:375 投稿日:04/07/13 12:08 ID:???
>>377

ご迷惑をお掛けしました
JavaScriptポケットリファレンスにNetscapeでこのスプリクトを・・・と書かれていたので
onFocusは使わない方が好ましいイベントかと勘違いしていました。

379 名前:Name_Not_Found 投稿日:04/07/13 14:00 ID:???
>>378
もうすこしちゃんとした本を見た方がいい、
つか、web系はまともな本が、ごくわずかしかないことを
覚えて置いた方がいいかも。

380 名前:Name_Not_Found 投稿日:04/07/13 14:46 ID:???
>>372-373
誤解を恐れずに言ってしまえば、コンピューターは小数を扱うのが苦手なので、
そういう数を利用するときは、分数として値を保持していれば基本的に誤差が出にくい。

381 名前:Name_Not_Found 投稿日:04/07/13 15:41 ID:???
質問いいでしょうか。
<FORM>内の<TEXTAREA>でタブキー押下でフォーカスを移動させずにタブ文字を挿入しようと思い、
探し回ってみたところ、以下のスクリプトで可能と言うことがわかりました。

<form>
<textarea cols="30" rows="5" onkeydown="
 /* テキストエリアが選択されている場合 */
 if(document.selection){
  /* タブキーが押下された場合 */
  if(event.keyCode==9) {
   /*  */
   r=document.selection.createRange();
   /* フォーカスを外す */
   this.blur();
   /*  */
   r.collapse(false);
   /* タブ文字を設定する */
   r.text='\t';
   /*  */
   r.select();
   /* 戻り値無し */
   return false;
  }
 }
">
</textarea>
</form>

コメントが空欄になっている部分が具体的にどのような処理を行っているかがわからないのですが、
何を行っているのかを教えていただけないでしょうか。

382 名前:Name_Not_Found 投稿日:04/07/13 16:37 ID:KUjuLGFL
http:click-tv:jp このサイトに日付とか置きたいんだけどどうすればいいですか?

383 名前:Name_Not_Found 投稿日:04/07/13 16:48 ID:???
>>382
Webサイト制作初心者用質問スレ vol.96
http://pc5.2ch.net/test/read.cgi/hp/1088856477/

↑へ行ってまともな日本語で質問しろ

384 名前:Name_Not_Found 投稿日:04/07/13 16:48 ID:???
リンク失敗にワロタ。
書けばいいじゃん、日付w

385 名前:Name_Not_Found 投稿日:04/07/13 16:48 ID:???
質問が意味不明しかもある意味マルチ

813 名前:Name_Not_Found 投稿日:04/07/13 16:28 ID:KUjuLGFL
最近友達が作ったんだけどどう思う?
http://click-tv.jp

386 名前:Name_Not_Found 投稿日:04/07/13 16:53 ID:KUjuLGFL
http://click-tv.jp URL間違ってた

387 名前:386 投稿日:04/07/13 17:11 ID:???
みなさん、このサイトに17:15に、
せーので来てください。
ガンガン来てください。
2ch 晒しに耐えられるかどうかの実験にご協力下さい。

http://click-tv.jp

# 他のスレにもどんどんコピペしてください。

388 名前:Name_Not_Found 投稿日:04/07/13 17:12 ID:eP69C9bI
テーブルセルのバックカラーをif文の条件にできますか??
例えば
黄色の時、白
白の時、黄色
というかんじで。
if(document.getElementById(id).style.backgroundColor=="#FFFF99")
を試してみたのですが、できないので・・・・。


389 名前:Name_Not_Found 投稿日:04/07/13 17:18 ID:???
>>388
JavaScript のプロパティとして明示されていなければ、
値は参照できないよ(例えば css でやったものとか。)

もし、bgcolor 属性とかを使っているなら、getAttribute みたいのが
あるので、それを使えば参照できる。

でも、td には bgcolor は駄目なので、class 属性を与えて、
色とかは css で、JavaScript は className を参照するように
するのが良いかと。

390 名前:389 投稿日:04/07/13 17:20 ID:???
>>389
> td には bgcolor は駄目

ごめんなさい。すごくうそ。

391 名前:Name_Not_Found 投稿日:04/07/13 17:25 ID:???
>>388
要素.style.backgroundColor="blue"; と設定したやつか、<td style="background-color:blue">
となってるやつならJSで取得できるみたいよIE6とFireFox0.8

392 名前:Name_Not_Found 投稿日:04/07/13 17:45 ID:???
>>391
みたい、ではなくて。
要素のstyleプロパティは要素のstyle属性で指定されるCSSプロパティを表す。

393 名前:Name_Not_Found 投稿日:04/07/13 17:47 ID:eP69C9bI
ありがとうございます。
明示してないと無理なんですね・・・。
白と明示したやつをJSで黄色に変更。
その変更したものを条件にしてたのでうまくいかなかったみたいです。

394 名前:Name_Not_Found 投稿日:04/07/13 18:12 ID:???
if(document.getElementById('cc').getAttribute('bgcolor') == "#FFCC66".toLowerCase())

<td bgcolor="#FFCC66" id="cc">ABC</td>

※ bgcolorを大文字で書いてもgetAttributeで得られる値は小文字なのでtoLowerCase()を使う

395 名前:Name_Not_Found 投稿日:04/07/13 18:17 ID:???
ああ、styleでやってるのか。
じゃあ>>394は的外れだった。

396 名前:Name_Not_Found 投稿日:04/07/13 18:26 ID:???
>>393
これが無理じゃないんだな。ここ見れ。英語だがサンプルコードは読めるだろ。
ttp://www.oreillynet.com/pub/a/javascript/excerpt/JSDHTMLCkbk_chap5/index5.html

397 名前:Name_Not_Found 投稿日:04/07/13 18:36 ID:???
>>395
的外れなところ何だけど
getAttribute('bgcolor')の値が小文字で正規化される保証はないので
どうせやるなら getAttribute('bgcolor').toLowerCase() == "#ffcc66" だろう。
# つーか "#FFCC66".toLowerCase() なんて "#ffcc66" で充分。

398 名前:Name_Not_Found 投稿日:04/07/13 19:03 ID:???
>>397
保証が無いのに"#ffcc66"で充分?
矛盾していないか?

399 名前:Name_Not_Found 投稿日:04/07/13 19:29 ID:???
>>398
そーいうことじゃなくて、文字ケース揃えて比較するのは結構だが
"#FFCC66".toLowerCase() なんて誰が何度やったって
"#ffcc66" 以外にならないだろ、という意味。

400 名前:Name_Not_Found 投稿日:04/07/13 19:58 ID:eP69C9bI
http://www.oreillynet.com/pub/a/javascript/excerpt/JSDHTMLCkbk_chap5/index5.html
↑参照させていただきました。ありがとうございます。
getElementStyle( )がオブジェクトでサポートされていないって怒られるのですが。
解決方法を教えていただけませんか??

401 名前:Name_Not_Found 投稿日:04/07/13 20:06 ID:???
不可能だとは思いますが、質問させていただきます。

二重送信防止策として、
<FORM method="POST" action="test.cgi" onsubmit="return confirm('送信します。宜しいですか?')">
というタグで確認は出しているのですが、OKを押した後にsubmitを
押されてしまって再度OKを押されてしまうと、結局二重送信になっ
てしまいます。

このcomfirmを、一度送信を押した後にcaution(「!」のアラート)に
変えるような何か良い方法はありませんでしょうか。

ご教授いただけますと幸いです。

402 名前:Name_Not_Found 投稿日:04/07/13 20:41 ID:???
>>400
IEならcurrentStyle
Moz系ならgetComputedStyleだったかな
その辺ググって味噌

「明示」されてる必要はありません

403 名前:Name_Not_Found 投稿日:04/07/13 20:50 ID:???
>>401
confirmだのcautionってのは初めて聞いたけど
二重投稿の基本的な回避策はサーバサイドでLocation発行して投稿ページをGETさせることだと思うけど
onsubmitの動作を書き換えたいなら単にスクリプトでオーバーライドすればよかろう
<FORM id="myform" method="POST" action="test.cgi" onsubmit="myconfirm()">
というHTMLなら
function myconfirm(){
document.getElementById('myform').onsubmit = fonction{caution()};
confirm('送信します。宜しいですか?');
}
みたいな


404 名前:Name_Not_Found 投稿日:04/07/13 22:07 ID:???
154 名前:nobodyさん[] 投稿日:04/07/12 22:47 ID:EG13IMpu
変数['length']で文字数とれるみたいなんだけど
これってふつうにつかってんの?


155 名前:nobodyさん[sage] 投稿日:04/07/13 13:11 ID:???
Divタグにスタイルシートでoverflowを指定し、
フレームのような画面分割を行っているのですが、
このDiv内のスクロールバーを操作することができません。

JavaScriptで操作することはできるのでしょうか?


405 名前:Name_Not_Found 投稿日:04/07/13 22:09 ID:???
>>400
あんたは馬鹿か。そのサンプルの使い方が解るまで入門本を読め。
それ以上的確なアドバイスはないと思う。
>>402
そのサンプルそのものを指し示しただろ。読んでから発言してよ。
>>401
onsubmit="return done?(alert('送信済'),false):confirm('OK?')&&(done=true)||false"

406 名前:Name_Not_Found 投稿日:04/07/13 22:09 ID:???
156 名前:nobodyさん[sage] 投稿日:04/07/13 15:52 ID:???
なんでこういうトンチンカン(ry

407 名前:Name_Not_Found 投稿日:04/07/13 22:51 ID:???
>>403
ありがとうございます。
参考にさせていただきます。

>>405
アラートすら出ません。
アドバイス有難うございます。

408 名前:Name_Not_Found 投稿日:04/07/13 23:35 ID:DjRfCpXI
初心者ですいません。教えて頂きたいのですが・・・
JavaScriptでシステム日付のファイル名を作成し、
そのファイルにリンクさせたいのですが、上手くいきません。
ヨロシクお願いいたします。



<SCRIPT language="JavaScript">
<!--
today=new Date();
theMonth = today.getMonth()+1;
theDate = today.getDate();
function filename(){
filename = theMonth + "_" + theDate + ".html";
}
//-->
</SCRIPT>

<A href=javascript:filename>リンク先</A><BR>



409 名前:Name_Not_Found 投稿日:04/07/13 23:37 ID:???
>>408
filename()

410 名前:408 投稿日:04/07/13 23:54 ID:???
ありがとうございます!

ただ、

<A href=javascript:filename()>リンク先</A>

だとちゃんとうごきません。

見るところが間違っていますか?

411 名前:Name_Not_Found 投稿日:04/07/13 23:59 ID:???
>>407
最初に「<script>var done = false;</script>」を入れてみて。
エラーが出てるようならその内容を教えて。
>>410
飛ばしたいわけだから関数定義の中、「filename=」とするかわりに
「location.href=」として。あと「href="javascript:filename()"」
のように「""」で囲まないとね。


412 名前:408 投稿日:04/07/14 00:15 ID:???
ありがとうございます。

しかし、location.href ですと、自動的にそのファイルに飛んでしまう
ので、「リンク先」をクリックしたら飛ぶようにしたいのです。

何度もすいませんです!!

413 名前:Name_Not_Found 投稿日:04/07/14 00:20 ID:???
>>412
ハア?リンクをクリックすると関数filename()が呼ばれて、
呼ばれるとその中で飛ばすわけだろ?何が問題なんだ?
>>407
コピペで試せるように全部作ってみたが一応OKのようだよ?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var done = false;
</script>
</head><body>
<form action="#" onsubmit=
"return done?(alert('送信済'),false):confirm('OK?')&&(done=true)||false">
<p><input name="t0" type="text"><input type=submit></p></form>
</body></html>

414 名前:408 投稿日:04/07/14 00:35 ID:???
お騒がせしました!
ありがとうございました!!

415 名前:Name_Not_Found 投稿日:04/07/14 01:20 ID:???
もっと書き込み隊 編集 & 書き込みスクリプト
http://bettsu.tripod.com/

416 名前:407 投稿日:04/07/14 01:58 ID:???
>>411
すごすぎです。
私が言ったそのとおりの挙動になりました。
感動しております。
本当に有難うございました。

417 名前:Name_Not_Found 投稿日:04/07/14 05:26 ID:???
コードクレクレ中しか居ないのな

418 名前:Name_Not_Found 投稿日:04/07/14 05:29 ID:???
おまけ

405 名前:Name_Not_Found[sage] 投稿日:04/07/13(火) 22:09 ID:???
>>400
あんたは馬鹿か。そのサンプルの使い方が解るまで入門本を読め。
それ以上的確なアドバイスはないと思う。
>>402
そのサンプルそのものを指し示しただろ。読んでから発言してよ。
>>401
onsubmit="return done?(alert('送信済'),false):confirm('OK?')&&(done=true)||false"

407 名前:Name_Not_Found[sage] 投稿日:04/07/13(火) 22:51 ID:???
>>405
アラートすら出ません。


ダサw

419 名前:372 投稿日:04/07/14 06:41 ID:???
>>374
>>380

ありがとうございます。納得できました。

420 名前:381 投稿日:04/07/14 09:16 ID:???
>>417
コードがあっても意味が理解できない人もいます。
俺とか。

誰か教えて下さい orz

421 名前:Name_Not_Found 投稿日:04/07/14 09:21 ID:???
>>420
検索もデキネェならあれだ、この先生
きのこれない。

422 名前:Name_Not_Found 投稿日:04/07/14 11:34 ID:???
>>420
ホレ探してあげたよ。ここを読んでも理解できないのなら我々に
できることはありません。残念ながら。
ttp://msdn.microsoft.com/workshop/author/dhtml/reference/objects/obj_textrange.asp

423 名前:Name_Not_Found 投稿日:04/07/14 13:13 ID:???
>>405 >>413
ですが、今考えて見たら最後の「||false」は不要でしたね。あっても
実害はないけど。

424 名前:Name_Not_Found 投稿日:04/07/14 13:24 ID:???
>>381
これってWindowsでしか動作しないんだから、
読解しなくていいと思うが。

425 名前:Name_Not_Found 投稿日:04/07/14 13:26 ID:???
いやいや、まずはどのコードも読解できるように勉強しておく
というのは基本でしょ。コピペしかできない人にはあまり来て
欲しくないしね。

426 名前:424 投稿日:04/07/14 13:33 ID:???
>>425
そもそもメソッドとオブジェクトを
片っ端からググって解析完了しちゃうくらいの作業を
読解とは言わないのかもしれんがwww

>>381はまだわかんないのか。

427 名前:??? 投稿日:04/07/14 20:30 ID:HO5hbpfc
フレーム解除のjsで親の親を指定したいのですが
イメージ的にこんな感じ↓
parent.parent.frame.location="***.html"
parent.parentの正しい指定の仕方をご教示願いたいのですが・・

428 名前:Name_Not_Found 投稿日:04/07/14 20:49 ID:???
>>427 そのframeとかいうのが余計。
parent.parent.location.href = URI;
top.location.href = URI;
どちらでも。

429 名前:??? 投稿日:04/07/14 21:01 ID:HO5hbpfc
frameは<FRAME NAME="frame">なのですが

430 名前:??? 投稿日:04/07/14 21:04 ID:HO5hbpfc
すいません。
parent.parent.frame.location
でいけました!!ありがとうございます。

431 名前:Name_Not_Found 投稿日:04/07/14 21:39 ID:???
>>430
変わってないじゃん

432 名前:名無しJS初心者 投稿日:04/07/14 23:03 ID:???
改造・吉野家コピペJS版が動きません。
http://ionazun.hottar.net/
バグと対処方法を教えていただけますか?

433 名前:Name_Not_Found 投稿日:04/07/15 00:03 ID:???
あんたの思うままにプログラム改造したげたりするスレ
じゃないんだ。ちゃんと自分でソース読んで分からない
とこだけ質問してよ。

434 名前:Name_Not_Found 投稿日:04/07/15 01:11 ID:???
>>432
牛丼が復活するまで待て。

435 名前:Name_Not_Found 投稿日:04/07/15 09:12 ID:m8b/fWjQ
このスレって結局は口先ばかりの人しかいないんですね。

436 名前:Name_Not_Found 投稿日:04/07/15 09:33 ID:???
JavaScriptって言語そのものが口先だけって感じがするよね。
クラスの実装とか。各社勝手な実装したり。

まあそんな適当っぷりが好きなんだけどね。

437 名前:Name_Not_Found 投稿日:04/07/15 09:59 ID:???
質問です。
テキストエリア内で特定の文字列だけの色を変えるにはどうしたらいいんでしょうか?

438 名前:Name_Not_Found 投稿日:04/07/15 10:50 ID:???
>>437
できない

439 名前:Name_Not_Found 投稿日:04/07/15 11:32 ID:???
>>435
面白い質問が出れば結構すごいよ。過去スレ読めば解る。
アンタみたいな煽りが効果ないことも同様に解る(ry
>>436
クラスなんてないがな。無知のくせに知ったかな発言する
んじゃね〜よ。ム板のプロトタイプベース・オブジェクト
指向のスレでも逝って勉強してこい。
>>437
テキストエリア内でなけりゃできるんだけどね。どうしても
テキストエリア内でなくちゃ駄目なの?

440 名前:Name_Not_Found 投稿日:04/07/15 13:11 ID:???
>>435
質問自体がぐぐれば分かるものが大半とか、
回答してもその後の返事がないとか、
殺伐とした雰囲気の原因は、このすれ(板)の平均年齢が低いからかと思われ。

441 名前:437 投稿日:04/07/15 13:38 ID:???
>>439
>テキストエリア内でなくちゃ駄目なの?
タブ文字と空白文字の区別が付けられるように、タブ文字にだけ何かしらの色を付けられたらと思っているのですが。

442 名前:Name_Not_Found 投稿日:04/07/15 13:46 ID:3yi9jt2d
質問です。
javascriptでスクロールする部分も含めたドキュメントの
高さと幅を取得したいのですがどうしても取得できません。

↓と全く同じ質問なのですが
http://chaichan.hp.infoseek.co.jp/qa2500/qa2881.htm

自分の環境では見えない部分(スクロールする部分)まで含めた値を取得できません。
環境は Win2k + IE5 です。

解決方法ご存知の方は是非ともお教えください。

443 名前:Name_Not_Found 投稿日:04/07/15 13:47 ID:???
>>439
クラスなんて無いのにある振りをしているから
JavaScriptは中途半端で優柔不断なんじゃないか。

444 名前:Name_Not_Found 投稿日:04/07/15 13:53 ID:???
>>443
ある振りなんかしてないだろ。あんたもここ逝って喧嘩売ってくれば。
http://pc5.2ch.net/test/read.cgi/tech/1070886635/l50
>>442
IE5はそーとー古いから「できない」かも知れないね〜。
>>441
色は難しいから「→」とか別の文字で表すとかしかないかも。
>>440
別に回答した後の返事がないことは漏れは気にしてないけどな。

445 名前:Name_Not_Found 投稿日:04/07/15 14:19 ID:???
テキストエリア内で色をつける方法を思いついたかも。
IE限定だとは思うけどちょっと試してみる。

446 名前:Name_Not_Found 投稿日:04/07/15 14:30 ID:???
>>445
無理だった。に、256ペソ

447 名前:Name_Not_Found 投稿日:04/07/15 15:17 ID:???
>>446
まあもうちっと待ってくれ。

あと、高いCPUスペックを要求される方法なら思いついた。
そっちはすぐに動いたけどCPU負荷がバカ高いのと
あまりにも馬鹿馬鹿しいので脳内会議で却下した。
目にも良くなかったし。

448 名前:Name_Not_Found 投稿日:04/07/15 17:03 ID:???
>>437
<div style="color: white; position: absolute; z-index: -1;"></div>
<textarea style="background-color: transparent;"></textarea>

こんな感じでtextareaのonkeyupでdivに内容をコピーしていくとか。
\tは<span style="background-color: red">\t</span>に変換しつつ。

449 名前:??? 投稿日:04/07/15 18:36 ID:WWGuUPpZ
こんばんは。
history.back()について質問させて下さい。

IEのブラウザ上に複数のフレーム(例えば2つ)を作り、
上部のフレームはname="f1"、下部のフレームはname="f2"とします。
f2のボタンの中には「戻る」ボタンがあり、
これを押すとこの画面が出る前戻らせたいので、
onclick=history.back()と記します。
ただこれだけですと、下のf2のみが前の画面に戻ってしまいます。
上のf1にもf2で実行させたhistory.back()を実行させたいのですが、
その場合f2の「戻る」ボタンのonClickにはどう記述すればいいのでしょうか?
(このような実装は可能なのでしょうか?)

どなたかご存知の方がいらっしゃいましたら、ご教授願えませんでしょうか?
よろしくお願いします。




450 名前:Name_Not_Found 投稿日:04/07/15 18:56 ID:???
>>449
onclick="parent.frames.f1.history.back();history.back()"

451 名前:??? 投稿日:04/07/15 19:06 ID:WWGuUPpZ
ありがとうございました。
無事解決。
感謝!

452 名前:Name_Not_Found 投稿日:04/07/15 22:40 ID:???
>>450
おまえネ申だろ。

453 名前:Name_Not_Found 投稿日:04/07/15 22:48 ID:???
>>452
ハア?このスレの常連なら誰でもそんなの瞬時に答えるだろ。
フレームの参照方法と「;」だけじゃん。

454 名前:Name_Not_Found 投稿日:04/07/15 22:51 ID:???
>>453
瞬時に答えは解るがそれを素直に書く奴はメッタにい(ny。

455 名前:Name_Not_Found 投稿日:04/07/15 23:58 ID:???
>>454
だってあの程度でモメても面白くないじゃん。もうちょっと
香ばしそうな質問のときに楽しめば十分だって。で、瞬時に
答えが出てるのを見た香具師が沢山誘引されるかもよ。

456 名前:Name_Not_Found 投稿日:04/07/16 00:15 ID:iyfZ3rIO
よく有るフォームページをつくってるんですが
フォームの中に郵便番号から住所を途中まで検索入力する
cgiを仕込んでます。

いまのとこ、郵便番号入力欄の横のaリンクてjavascriptキック→cgi
別ウインド(検索結果の読み込みテンプレートでもある)
を開き、そこのinputに検索cgiで検索した住所を
表示、そのウインドのボタンで元のフォームの
住所欄に検索結果を書き戻す、ってことをしてます。

こいつをなんとか、郵便番号入力欄のよこにボタンをおいて
クリックすると住所欄に一発で入れることって出来ないでしょうか?

<form></form>の間に<input type="buttn">をいれてそいつで
javascriptキック→cgiってのはありですよね?
サブミットはフォームそのものをcgiに使ってるから
そうするしかないんですよね。

457 名前:442 投稿日:04/07/16 00:24 ID:???
>>442です。

>>444
友人の環境(Win2k + IE6)からも確認してもらったのですが
同様に取得はできなかったようです。

ググッてて見つけたのですが、
ttp://east.portland.ne.jp/~sigekazu/css/javascript10.htm
こちらの【document.body.scrollHeight*】の欄の「読み込み完了時」の値が
自分の求める値そのものだと思うのですが、ソースを見たら
<SPAN>-</SPAN>
という記述だけ? なにがなにやら・・・ぁぁぁ...


458 名前:Name_Not_Found 投稿日:04/07/16 00:36 ID:???
>>456
だから別窓の代わりに隠しフレームにフォーム仕込んでそこ
で検索して結果を入力欄にコピーすればいいんでしょ?
>>457
なんか見てるものが違うんじゃない?別にonloadの動作中で
「document.body.scrollHeight」を参照すればいいでしょ?

459 名前:Name_Not_Found 投稿日:04/07/16 00:40 ID:???
>>457
でるがな。いま2ch見ているままでいいから、
url 欄に下記をぶちこんでみ。
javascript:window.alert(document.body.scrollHeight);window.focus();

460 名前:456 投稿日:04/07/16 01:00 ID:iyfZ3rIO
>>458
うーん、隠しフレームか。なるほど。
今の漏れのやり方は、ボタンでjavascriptキック→cgi検索。
テンプレートのポップアップウインド、おーぷん、背後にまわす。
そしてそのポップアップのonloadで、検索結果を
元ウインドのinputに書き戻してポップアップを閉じる。
というのをやってます。一応動くんだけど、一瞬ウインドが全面に出るんだよな。
なんか、マシンパワーがないマシンだと落ちないか心配。
ウインドをいきなり背面に開くってjavascriptで出来ませんかね?

461 名前:442 投稿日:04/07/16 01:17 ID:???
>>459
確かにそれだと出るのですが
実際にページ内で値を取得して表示しようとするとおかしくなるのです・・・

例えば

<html><body>

<script language="JavaScript"><!--
document.write(document.body.scrollHeight);
window.alert(document.body.scrollHeight);window.focus();
// --></script>

<br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br>

</body></html>

というのを表示した場合。
writeでは15と表示され、
alertでは51と表示されてしまいます。
<br>を何十何百と足しても同じです。
IE6で表示させても同じようです。


462 名前:Name_Not_Found 投稿日:04/07/16 01:27 ID:???
>>461
多くの人がwriteは便利な標準出力ていどに思っているかもしれませんが、
document オブジェクトに write した時点で、document が上書きされている
わけです。
write なんて窓から投げ捨てて、dom 使いましょう。

<script>
window.onload = function(){
var tmp = document.getElementsByTagName("body")[0];
var hei = document.body.scrollHeight;
var str = document.createTextNode(hei);
tmp.appendChild(str);
}
</script>

463 名前:祀子 投稿日:04/07/16 02:59 ID:1mbGvcN1
はにはに〜♪ 質問しにきた自他ともに認める腐女子の祀子でっす♥

みんな〜! よろしくね〜〜〜〜〜♥♥♥♥♥♥

早速質問だよっ! わたしが借りてるレンタルサーバのことなんだけど、
ボディタグ(きゃっ! ぼでぃなんてなんだかエッチ〜♥)の後ろに
のソースを勝手に入れられちゃうんだけどさ

<SCRIPT Language="JavaScript">
<!--
document.write("<img src='http://foo.com/access.cgi?");
document.write("referrer="+document.referrer.substr(0,0)+"http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_hp/1087/1087889503.html"+"'>");
// -->
</SCRIPT>

このjavascriptの "referrer" が返す文字列を偽装するってことは出来ませんでしょうか?
本当のreferrerでなく任意のreferrerをアクセス解析に送っちゃいたいの♥

わっかるっかなァ〜? わっかんねぇ〜だろ〜〜〜な〜〜〜・・・・・



イェーイ!

なんちゃって♥

464 名前:442 投稿日:04/07/16 03:05 ID:???
>>462
ありがとうございます。

でもonloadで値を得ても、ページ内でその値をimgタグのheightとかに利用したりできないんですよね。
どうやるんだろう・・・
個人的には問題はまだまだありますがレスを下さった方々に感謝です。

465 名前:Name_Not_Found 投稿日:04/07/16 07:39 ID:???
>>461 >>464
あんたはバカですか?自分で
> ttp://east.portland.ne.jp/~sigekazu/css/javascript10.htm
> こちらの【document.body.scrollHeight*】の欄の「読み込み完了時」の値が
> 自分の求める値そのものだと思うのですが、ソースを見たら
こう書いているよな。で、あんたがやろうとしたことはそのページの
隣にある「document.write(X)」と同じことだろ? そもそも読み込み
終わる前にブラウザがどうやって「ページの末尾までの大きさ」を
知ることができると思うんだ? ブラウザはE.S.Pでつか?

やりたいことがはっきりしてればDOMを使ってそれを実現するなどの
方法もあるが、あんたはやりたいことをはっきりさせずに実現が絶対
不可能なことを質問してるんだよ、自覚すれ。

で、やりたいことは具体的に何なのさ。たとえばページの左端に画像
入れてそれを縦目一杯引き延ばすとかだったらonloadの中でそれを
やるのは簡単だろ。

>>463
そのdocument.referrer.substr(0,0)+"http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_hp/1087/1087889503.html"はブラウザがサーバに送り出すHTTP_REFERRER
ヘッダの内容の「控え」だからJavaScript側から書き換えたりはでき
ません。アンタがやりたいことは誰でも一目で分かるアホなことさ。
残念でした。

466 名前:Name_Not_Found 投稿日:04/07/16 07:45 ID:???
>>462
…指摘内容が見当違いじゃない? >>461 はdocument.write()を
ドキュメントが上書きされるような使い方では使っていないよね。
質問内容をよく読んで回答してよ。

467 名前:442 投稿日:04/07/16 08:28 ID:???
>>465
単に私が不勉強なだけです。ごめんなさい。
何ができて、何ができないかがわかってなかったのです。
貴方の様に何もかもわかってる人じゃありませんので、このように質問させていただいてます。

>で、やりたいことは具体的に何なのさ。たとえばページの左端に画像
>入れてそれを縦目一杯引き延ばすとかだったらonloadの中でそれを
>やるのは簡単だろ。

概ねそういうことです。
私には今のところ実現できていません。
先ほどまでは
http://www.microsoft.com/JAPAN/developer/library/jpisdk/art/dhtmlpos.gif
などを見て、scrollHeight等で直接値を求められる便利な方法があるのではないか、という思い込みを持っており、
それを暗黙の前提にして質問をしてしまっていました。

ちなみに
>隣にある「document.write(X)」と同じことだろ?
というのは違うと思います。
自分でできる限りソースを読んだところ、
function ini()内で
getElementsByTagNameでもって
<SPAN>-</SPAN>
を書き換えている(?)と解釈しました。
まだ明確に理解できてませんので
DOMを勉強中です。


468 名前:463 祀子 投稿日:04/07/16 08:53 ID:???
>>465
控え〜〜〜〜?

ベンチじゃん。 代打要員じゃん、ショボ〜

出来ないと分かってガックシだけど、ご親切にどうもありがと♥

469 名前:Name_Not_Found 投稿日:04/07/16 09:20 ID:???
>>467
> というのは違うと思います。自分でできる限りソースを読んだところ、
そうそう、読めているじゃん。ところがあんたが書いた >>461
> function ini()内でgetElementsByTagNameでもって<SPAN>-</SPAN>を書き換え
になってないっしょ?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function chg() {
var i0 = document.getElementById('i0');
i0.width = 64; i0.height = document.body.scrollHeight;
}
</script>
</head><body onload="chg()">
<div style="position:absolute"><img id="i0" src="t1.png"></div>
<div style="margin-left: 20%"><p>a<br>a<br>a<br>a<br>a<br>a<br>
a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br>a<br></p></div>
</body></html>

470 名前:Name_Not_Found 投稿日:04/07/16 09:33 ID:???
>>465
そこは触るとこだったのか?

471 名前:462 投稿日:04/07/16 11:44 ID:???
>>466
全く持ってそのとおり。すまそ。

>>464
できる。

window.onload = function(){
var tmp = document.getElementsByTagName("body")[0];
var hei = document.body.scrollHeight;
var MyImg = document.getElementById("hoge"); // 高さを操作したい画像
MyImg.style.height = hei;
}

なぜ出来ないと思った?

472 名前:471 投稿日:04/07/16 11:44 ID:???
あ、tmp はいりませんでした。消し忘れ。

473 名前:Name_Not_Found 投稿日:04/07/16 14:56 ID:???
お前らもちつけ

474 名前:Name_Not_Found 投稿日:04/07/16 16:17 ID:???
質問です。
フォームで複数選択の項目をつくって、
選択されていた物のvalueをうまーくクエリ文字列として送信したいのですがm
うまい方法はあるでしょうか?

<select name="q" size="5" multiple>
<option value="a">項目1</option>
<option value="b" selected>項目2</option>
<option value="c">項目3</option>
<option value="d" selected>項目4</option>
<option value="e" selected>項目5</option>
</select>

こうして、このまま送信した時にクエリは
?q=bde

になってくれると凄くいいです。
よろしくお願いします(._.

475 名前:Name_Not_Found 投稿日:04/07/16 17:39 ID:???
window.onload = function(){
var MyForm = document.getElementsByTagName("form")[0];
MyForm.onsubmit = function(){
var tmp = this.getElementsByTagName("option");
var str = "";
for(var i=0 ; i<tmp.length ; i++){
if(tmp[i].selected == true){
str += tmp[i].value;
}
}
var MyHidden = document.createElement("input");
MyHidden.type = "hidden";
MyHidden.name = "適宜";
MyHidden.value = str;
this.appendChild(MyHidden);
this.submit();
return false;
}
}


全部妄想。

476 名前:Name_Not_Found 投稿日:04/07/16 17:43 ID:???
>>474 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function chg() {
var s = '', o = document.forms.f0.elements.q0.options;
for(var i = 0; i < o.length; ++i) if(o[i].selected) s += o[i].value;
document.forms.f0.elements.q0.disabled = true;
document.forms.f0.elements.q.value = s; return true;
}
</script>
</head><body>
<form name="f0" action="#" onsubmit="chg()"><p>
<select name="q0" size="5" multiple><option value="a">項目1</option>
<option value="b" selected>項目2</option><option value="c">項目3</option>
<option value="d" selected>項目4</option>
<option value="e" selected>項目5</option></select>
<input type="hidden" name="q"><input type="submit"></p></form>
</body></html>

477 名前:Name_Not_Found 投稿日:04/07/16 18:00 ID:???
教えてくださいまし。

フォームにselectタグかinputタグで、年月日を入力する際、
本日以前の日付しか入力(選択)できないようにする方法は
ありますか?

もしくはsubmit時にアラートを表示される方法でもいいです。

478 名前:Name_Not_Found 投稿日:04/07/16 18:04 ID:???
>>477
えーと。日を先に選択されたらどうすんの。月として今月が
選べないようにとか考えだすと大変だよね。alertで警告とか
なら別に問題はないと思うけど。基本的には、入力された
年月日と本日の年月日を比較するんでしょ。地道にやれば?
なにか分からないとこがあるわけ?

479 名前:Name_Not_Found 投稿日:04/07/16 18:21 ID:???
>>477
selectかinputか、とか言ってるが
inputだと事前に入力できないようにするのは無理じゃなかろーか。
inputを使うのであればalertしか手段はない。

selectなら事前に選択できない、
つーかoptionに入れない方法はある。
そこらへんは条件文こねくりまわせばできるハズ

480 名前:479 投稿日:04/07/16 18:22 ID:???
訂正。

inputはinputでもtextタイプね(´・ω・`)

481 名前:Name_Not_Found 投稿日:04/07/16 19:28 ID:???
>>476
ありがとう!

482 名前:Name_Not_Found 投稿日:04/07/16 19:45 ID:NnCvIZLM
>>463
<script>
var _document=document;
</script>
<script>
function document(){
}
document.write=_document.write;
document.referrer.substr(0,0)+"http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_hp/1087/1087889503.html"='任意のtanasinn';
</script>

こんなコードが↓の前に入るようにすればいい。

<SCRIPT Language="JavaScript">
<!--
document.write("<img src='http://foo.com/access.cgi?");
document.write("referrer="+document.referrer.substr(0,0)+"http://makimo.to/cgi-bin/html2dat/html2dat.cgi?pc5_hp/1087/1087889503.html"+"'>");
// -->
</SCRIPT>

483 名前:Name_Not_Found 投稿日:04/07/16 20:49 ID:???
>>482
つか、それ正しく動く?Mozillaだと「document.write is not a
function」と言われて駄目だけど。もともとwriteはdocumentの
メソッドであればこそ動くようにできてるんで、documentをすげ
変えるのは駄目…だったような気がするんだけど。

484 名前:Name_Not_Found 投稿日:04/07/16 21:05 ID:NnCvIZLM
>>483
IEではうまくいったけど、それ以外は試してない。
変則的なやり方だから無理っぽいね。

どんなブラウザでもうまく>>463の目的を果たしたいのなら、
もっと単純に、自動で挿入されるコードを<noscript>や<noembed>で無効化し、
自分で代替のコードを書いておけばいいんだけどね。

485 名前:Name_Not_Found 投稿日:04/07/16 21:10 ID:???
>>483
abstructViewのdocumentはreadonlyだから
そもそもdocumentの上書きに失敗するはず。

486 名前:Name_Not_Found 投稿日:04/07/16 21:13 ID:???
つか document をごにょごにょ出来ちゃうのは
セキュリティhqあwsでfrgtひゅじこlp;

487 名前:Name_Not_Found 投稿日:04/07/16 22:55 ID:BLsKrwc6
初心者です。昨日くらいから始めました。

質問です。
JavaScriptでブラウザにある表に新たに行を追加しようと考えています。
つまり

<TR><TD>"文字列"</TD><TD>"文字列"</TD></TR>

といった行を追加したいと思っています。
これをブラウザ上だけの処理でしたいのです。
つまり、DBサーバにINSERTしてSELECTで読み出したりせずに
ブラウザ上だけでソースに変更を加えたいと思っています。

多分、無理だと思っていますが、どなたかご存知の方がいらっしゃいましたら
ご教授の程、よろしくお願い致します。

488 名前:Name_Not_Found 投稿日:04/07/16 23:01 ID:???
>>487
勉強すればできるよ。
createElement, createTextNode, appendChild, insertBefore, getElementById
あたりを検索汁。

489 名前:Name_Not_Found 投稿日:04/07/16 23:10 ID:???
SQL書けるくらいのレベルなら
質問スレに書かずに自力で調べられそうなもんだが

490 名前:Name_Not_Found 投稿日:04/07/16 23:23 ID:???
>>489
それは意地悪じゃないすか。SQLとJavaScript+DOMはスキルの
内容がだいぶ違うよ。
>>487
サンプルは書いたからまあ勉強してみれ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function step() {
var t = document.getElementById('t0'), n = Math.floor(8*Math.random());
if(n == 0)
t.appendChild(document.createElement('tr'));
else {
th = document.createElement('th');
th.appendChild(document.createTextNode('' + n));
t.lastChild.appendChild(th);
}
}
</script>
</head><body onload="setInterval(step, 500)">
<table summary="test" border="2"><tbody id="t0">
<tr><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th></tr>
</tbody></table>
</body></html>

491 名前:Name_Not_Found 投稿日:04/07/16 23:36 ID:???
>>487
> DBサーバにINSERTしてSELECTで読み出したりせずに

connect じゃなくて?
ともあれ、この人、要素を追加するって概念がないのはしょうがないとして、
追加するデータそのものをdocument外から取得できないか、
って聞いているんじゃないのかな?

だとしたらさんざんガイシュツなので、html javascript data bind あたりで
ググってみて欲しい。

492 名前:Name_Not_Found 投稿日:04/07/16 23:45 ID:???
すいません。

うんちしてきても大丈夫ですか?

493 名前:Name_Not_Found 投稿日:04/07/16 23:55 ID:???
>>492
休み時間に行っておけとあれほd(以下略

494 名前:Name_Not_Found 投稿日:04/07/17 01:44 ID:???
http://www.openspc2.org/reibun/javascript/mouse/060/index.html
このスクリプトをネスケでも動作させるにはどうすればいいのでしょうか?
よろしくお願いします。

495 名前:Name_Not_Found 投稿日:04/07/17 01:51 ID:???
>>494
ネスケで動く奴を探した方が早い

496 名前:494 投稿日:04/07/17 02:42 ID:???
vol24の>>81で解決しました
http://66.102.7.104/search?q=cache:-04NTn6phnEJ:pc2.2ch.net/test/read.cgi/hp/1070943773/7-

497 名前:442 投稿日:04/07/17 07:29 ID:???
>>469
そうです。ソースを見てある程度の見当はつけられていたのですが
具体的にどうすべきか、というところまでは至っていませんでしたので・・・

お陰様でこの問題については解決できました。
返事が遅くなりましたが、大変勉強になりました。
ありがとうございます。

498 名前:Name_Not_Found 投稿日:04/07/17 14:13 ID:???
DOMで要素を追加出来るようにはなりました。
要素の削除は出来るんでしょうか。

アデランス経験者の方、お願いします。

499 名前:Name_Not_Found 投稿日:04/07/17 14:51 ID:???
アデランス経験は無いので答えられません

500 名前:Name_Not_Found 投稿日:04/07/17 14:53 ID:???
JavaScriptを、CSSみたいに外部指定して実行することはできますか?
また、できるなら方法を教えてください。お願いします。

501 名前:Name_Not_Found 投稿日:04/07/17 14:59 ID:???
できます。
リファレンスサイト回って調べりゃわかります

502 名前:498 投稿日:04/07/17 15:28 ID:???
>>499>>501
解かりました、どうもありがとうございました。
早速ヘアチェックに行ってきます、感謝です。

503 名前:Name_Not_Found 投稿日:04/07/17 17:30 ID:???
初めまして。少し教えてください。

とある所でJavaScriptサンプルをダウンロードし、
自分が使いやすいようにswitchやDIV固定などをして作りました。
なんとか自分がやりたい動作は出来るようになったのですが、
更新する度に「実行しましたがページ内でエラーが発生しました」と
ステータスバーに出ます。
どこが間違ってるのかいくら見ても分からないので教えてください。

配列の[0]が書いてないのはその方がこれから更新する時分かりやすいので
そうしました。

504 名前:503 投稿日:04/07/17 17:31 ID:???
>>503
自己レスです…URL貼り忘れました…。
http://opal.sakura.ne.jp/main/frame.htmlの左側のmenu.htmlです。
よろしくお願いします。

505 名前:Name_Not_Found 投稿日:04/07/17 17:48 ID:???
ライン: 237
文字: 3
エラー: 'colorMes52' は宣言されていません。
コード: 0
URL: http://opal.sakura.ne.jp/main/menu.html


506 名前:503 投稿日:04/07/17 17:53 ID:???
>>505
ありがとうございました!
237行目を消したら出なくなりました!

これから度々お世話になるかもしれませんがよろしくお願いします。

507 名前:503 投稿日:04/07/17 17:58 ID:???
連続投稿すいません。もう一つ教えてください。

http://opal.sakura.ne.jp/menu.html
なのですが、リロード時にも背景を出さない方法はあるのでしょうか?
このメニューが入っているフレームは
http://opal.sakura.ne.jp/frame.html
です。

508 名前:503 投稿日:04/07/17 18:00 ID:???
追記

でもTOPが表示されている時のリロード時は背景を出したいです…。
そんな難しいコト出来ますか?
初めて自分一人で組んだJAVA Scriptなのでその他文法が間違っていたらご指摘ください。

509 名前:Name_Not_Found 投稿日:04/07/17 20:18 ID:???
>>508
一番簡単確実なのは下側フレームも背景あり版と背景あり版を用意して
上下同時に切り替えることじゃないの。その場合target指定はやめて
<a href="下切替え先" onclick="parent.top.location.href='上切替え先'">...</a>
とするとかかな。

510 名前:508 投稿日:04/07/17 21:00 ID:???
>>509
レスありがとうございます。
なるほど!その手がありましたか!やり方までありがとうございます。
方法だけだと記述方法が分からなかったと思うので助かりました。

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

511 名前:Name_Not_Found 投稿日:04/07/17 21:04 ID:???
TOPだけフレーム無しの1枚にしたほうが簡単かmona

512 名前:Name_Not_Found 投稿日:04/07/17 21:17 ID:???
>>510
カーソルを十字にするのは厨の証。 来る客が減るよ。

513 名前:508 投稿日:04/07/17 21:25 ID:???
>>511
TOPだけ1枚ですか…確かにそれだと簡単ですね…。
戻るボタンでもちゃんと絵戻るし…。

>>512
忠告ありがとうございます。
でもそこまで必死に増やそうと思ってないのでいいです。
単なる趣味&自己満足ページですので…。

514 名前:Name_Not_Found 投稿日:04/07/17 21:49 ID:???
>>513
スレ違いだけど、十字カーソルは「座標位置を指定する」というメッセージ
を表しているわけだろ。それを別の用途、カッコのために使うというのは
すげー自己満足で恥ずかしいことなんだよな。Web製作板的には。

515 名前:513 投稿日:04/07/17 21:59 ID:???
>>514
それでも個人的に十字には思うところあるので…。
ごめんなさい、やっぱり十字のままでいきます。

516 名前:Name_Not_Found 投稿日:04/07/18 00:22 ID:???
>>515
窓全体が十字カーソルになっているよりも、何かのオブジェクトの上か、
何かの動作で切り替わるほうがカッコイイと思うのだが、
まあ、自分でデメリットも理解した上で使うなら後は頑張れ。

517 名前:Name_Not_Found 投稿日:04/07/18 04:11 ID:???
>>515
同じtiamet住人だと知り、marquee使いまくりでも許そうと思った。

518 名前:Name_Not_Found 投稿日:04/07/18 04:32 ID:???
うざいタグはオミトロンで全部無効にしてるからカーソルが変わることはなっしんぐ。

519 名前:Name_Not_Found 投稿日:04/07/18 11:38 ID:lu8AS4Km
黒い三連星

520 名前:Name_Not_Found 投稿日:04/07/18 15:28 ID:???
楽しい一年生

521 名前:Name_Not_Found 投稿日:04/07/19 01:53 ID:???
>>518
ウザい閲覧者は弾けないのが管理人の辛い所だw

オミトロンといえば作者が亡くなっていた。
せいぜい悲しめ。

522 名前:Name_Not_Found 投稿日:04/07/19 01:58 ID:???
うわまじかよ。ショック!


って名前も知らなかったが……。

523 名前:Name_Not_Found 投稿日:04/07/19 03:49 ID:WQy33kjm
初めまして。初心者です。最近、始めたばかりです。

以下のソースにてエラーが出ます。
原因が特定できていません。何かお気づきの方がいらっしゃれば、
助言の程、よろしくお願い致します。

【エラー】
エラー: 'document.form1.r1.length' は Null またはオブジェクトではありません。

【ソース】

〜略〜

<SCRIPT language="JavaScript">
<!--HPB_SCRIPT_CODE_40
var count;
function BoxChecked(check){
for(count = 0; count < document.form1.r1.length - 1 ; count++){
document.form1.r1[count].checked = true;//チェックボックスをON/OFFにする
}
}

// -->
</SCRIPT></HEAD>

〜略〜

524 名前:Name_Not_Found 投稿日:04/07/19 03:50 ID:WQy33kjm
>>160の続きです。
function SetUp_Table(&$result){
<HR>
<B>設定一覧</B>
<P><BR>
</P>
<TABLE>

〜略〜

<FORM>
<TABLE border="1">
<TBODY>
<TR bgcolor="#ffff80">
<TD nowrap align="center">選択</TD>
<TD>No.</TD>
<TD nowrap align="center">エリアコード</TD>
<TD nowrap align="center">正常/異常</TD>
<TD nowrap align="center">レスポンスコード</TD>
<TD nowrap align="center">レスポンスファイル</TD>
<TD nowrap align="center">応答時間</TD>
</TR>";

525 名前:Name_Not_Found 投稿日:04/07/19 03:51 ID:WQy33kjm
>>160,161の続きです。
if ($result != null){
$check_value = 0;
while( $data = mysql_fetch_array( $result) ){
print "<TR><TD align="center"><INPUT type="checkbox" name="r1" value = $check_value></TD>";
print "$check_value<br>";
$check_value++;
print "<TD nowrap align="center">{$data['No']}</TD>";
print "<TD nowrap align="center">{$data['エリアコード']}</TD>";
print "<TD nowrap align="center">{$data['正常_異常']}</TD>";
print "<TD nowrap align="center">{$data['レスポンスコード']}</TD>";
print "<TD nowrap align="center">{$data['レスポンスファイル']}</TD>";
print "<TD nowrap align="center">{$data['応答時間']}</TD></TR>";
}
}
</TR>
</TBODY>
</FORM>

〜略〜

526 名前:Name_Not_Found 投稿日:04/07/19 03:51 ID:WQy33kjm
>>160,161,162の続きです。

<FORM name=\"form1\">
<TABLE>
<TR>
<TD>
<INPUT type=\"button\" onclick=\"BoxChecked(true)\"; value=\"全て選択\">
</TD>
<TD> </TD>
<TD>
<INPUT type=\"submit\" name=\"delete\" value=\"選択項目の削除\" onclick=\"ScriptSelectDelete(settinglist)\">
</TD>
<TD width=\"173\"> </TD>
<TD width=\"21\">
<INPUT type=\"button\" name=\"delete\" value=\"リセット\" onclick=\"ScriptSetDefault(settingcode)\">
</TD>
</TR>
</TABLE>
</FORM>

527 名前:Name_Not_Found 投稿日:04/07/19 03:56 ID:WQy33kjm
申し訳ございません。
523-526の先頭に間違った番号を書いてしまいした。
正確には
>>523,524,525,526の続きです。
他の質問スレでこちらにて質問するようにと言われたので、
こちらに書かせて頂いています。


>>525の5行目(print "$check_value<br>"; )はデバッグするための
ものなので気にしないで下さい。

あと、自分がやろうとしてることは、
javaScriptを使用して、>>526の全て選択ボタン押下により
チェックボックスの全選択を行うことです。

質問の仕方に不備等がございましたら、
ご指摘くださいますようよろしくお願い致します。

528 名前:518 投稿日:04/07/19 04:04 ID:???
>>521
作者が死んだらもっと有名なサイトでも記事になると思うんだけど全然載らないね。
まだガセの可能性も十分にある。 馬鹿はすぐ信じるって言うけど本当だね。

529 名前:Name_Not_Found 投稿日:04/07/19 04:22 ID:???
すみません質問です。
文字列 "10011001" を16進数に変換するにはどうすればいいのでしょうか?

530 名前:529 投稿日:04/07/19 04:27 ID:???
あーわかったんでいいです。

531 名前:Name_Not_Found 投稿日:04/07/19 04:39 ID:???
>>523
document.form1.r1が表示されてないときに
スクリプトが実行されdocument.form1.r1.lengthを読もうとしたから。

スクリプトをBODYのonLoadから呼び出すか、
SCRIPTタグ自体をFORMタグより後ろに書くか、
<INPUT type="checkbox" 略 checked>

532 名前: 投稿日:04/07/19 04:41 ID:???
すまん、読み間違えてた。

533 名前: 投稿日:04/07/19 04:51 ID:???
>>523
わかった。
FORM2つあるけど、form1はcheckboxが無い方だぞ。
checkboxの有る方は無名。

534 名前:Name_Not_Found 投稿日:04/07/19 05:10 ID:???
>>523
そんな小汚いソースだからバグが見つけ難いんだよ。大体PHPの方もエラーだし。
てかPHPは関係ないんだから出力をコピペするべきだろに。
ソースから切り出すんじゃなくてさ。

535 名前:Name_Not_Found 投稿日:04/07/19 05:21 ID:???
>>529
2進数を16進数へってことなら

parseInt("10011001", 2).toString(16);

536 名前:518 投稿日:04/07/19 06:19 ID:???
動かないならネットに転がってるサンプルソースを使ってみるとか、
もっとシンプルなコードを書いて試してみるとかすればいいのに。

解からないからって丸投げしてたらいつまでたってもへぼのまま。

537 名前:Name_Not_Found 投稿日:04/07/19 07:53 ID:???
そもそも >>6 を読んでないんでしょ。
> ソースは要点を整理して出す。
>   そのまま貼って動かせると試してもらいやすい。
>   長い場合はアップロードしてURIを貼る。

538 名前:Name_Not_Found 投稿日:04/07/19 16:16 ID:iFy7kHJa
>>531532,533,534,536,537
みなさま、ご忠告ありがとうございます。
FORM nameの書く場所を間違えておりました。
しょうもないミスでなんともお恥ずかしいです。

また、自分自身の努力も足りなかったこと、汚いコードで質問したこと、
反省しております。
今後は>>6やご忠告を守るようにしていきたいと思います。

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

539 名前:Name_Not_Found 投稿日:04/07/20 03:39 ID:IDRVrNwz
別窓のフレーム内容を書き換えて表示させたい場合ってどうすれば良いですかね?
aaa.htmlの中がフレームで区切られてて、
bbb.html(name:sub)
ccc.html(name:main)
がある場合で、ccc.htmlの部分だけを書き換えたいのです。

window.open('aaa.html','mado','');
mado.main.location.href = 'ddd.html';

のようなコードだと、うまく出来ません。
良い方法などあったら、教えてください。

540 名前:Name_Not_Found 投稿日:04/07/20 04:59 ID:2VDcEyaF
書き換えるって、別のページの読み込みでしょう?
parent.main.location.href="ddd.html";
を使う。

541 名前:Name_Not_Found 投稿日:04/07/20 14:21 ID:???
sum1();〜sum10();と作ったのですが
for文を使って一度に動かす方法がわかりません
方法を教えてください

542 名前:Name_Not_Found 投稿日:04/07/20 14:28 ID:???
>>541
for (i = 1; i <= 100; i++) (window["sum" + i])();

543 名前:Name_Not_Found 投稿日:04/07/20 14:28 ID:???
for(var i=1 ; i<=10 ; i++){
    var exec_str = "sum" + i;
    exec_str();
}

544 名前:Name_Not_Found 投稿日:04/07/20 14:43 ID:???
>>542-543
動きました、ありがとうございます

545 名前:Name_Not_Found 投稿日:04/07/20 14:48 ID:???
>>543
なに大嘘教えてるんだ。それじゃ駄目だろ。>>542 が正解。
(もっとも10と100とを見間違えているようだけど。)

546 名前:Name_Not_Found 投稿日:04/07/20 16:10 ID:???
10()

547 名前:Name_Not_Found 投稿日:04/07/20 17:24 ID:???
まぁそれ以前にサブルーチンの設計がおかしいのが見え見えだけどな

548 名前:Name_Not_Found 投稿日:04/07/20 17:29 ID:???
ブラクラでも作ってんじゃねーの?

549 名前:??? 投稿日:04/07/20 17:37 ID:QXwkZJit
オブジェクトの指定をする時に直接nameで指定したオブジェクト名ではなくて
JSのなかで自分で編集したものをnameとしたいときの書き方がわかりません。
例えばtdのname=back01〜back05がある。
back01.style.backgroundColorではなく
for(i=0; i<5; i++){
alert("back0"+i.style.backgroundColor)
}
上のイメージでbackgroundColorの値を欲しいのですが
"back0"+i.style.backgroundColorではエラーになります。
ご教示下さい。


550 名前:Name_Not_Found 投稿日:04/07/20 17:54 ID:???
>>549
JavaScript が生成した要素ってこと?
なら生成した時点で変数にでも入れておけばいいのでは。

--

/* 生成 */
var MyInput = new Array();
for(var i=1 ; i<=5 ; i++){
MyInput[i] = document.createElement("input");
}

/*参照*/
window.alert(MyInput[3].style.backgroundColor);

--

ただし、css で指定した background-color は backgroundColor では
参照できないので悪しからず。

551 名前:Name_Not_Found 投稿日:04/07/20 18:15 ID:???
>>549
アンタはまず >>11 のQ7/A7と、あと >>388-396 を嫁。
それで必要な情報はすべてあるはずだ。過去ログ読めない奴は帰れ!

552 名前:Name_Not_Found 投稿日:04/07/20 18:30 ID:???
ベリーメロン・・・・

553 名前:Name_Not_Found 投稿日:04/07/20 18:33 ID:???
なんだよ、厨ばっかりじゃん。

554 名前:Name_Not_Found 投稿日:04/07/20 18:48 ID:???
本当に必要な情報はちゃんと指示されてるんだけどね。まあ
後で時間あったらサンプル貼ったげるよ。

555 名前:Name_Not_Found 投稿日:04/07/20 18:58 ID:vgdzu0RK
javaScriptはブラウザに邪魔で余計なギミックつける為にある、みたいな印象があって
一歩踏み込むのに躊躇してたんですが、質問です。

一定時間毎にCGIへフォーム送信したいのですが、javaScriptでそれは可能ですか?
答えは、可能か不可か、、だけでいいです。よろしくお願いします。

556 名前:Name_Not_Found 投稿日:04/07/20 19:02 ID:???
余裕可能

557 名前:observer@ ◆q7u/null4U 投稿日:04/07/20 19:12 ID:???
>>555
possil !

PS:
>javaScriptはブラウザに邪魔で余計なギミックつける為にある、みたいな印象
そういう使い方をする人が多すぎるために嫌われ者扱いにされているのは事実.
しかし,使い方しだいで おもしろい事ができる potential を秘めているのも事実.

558 名前:555 投稿日:04/07/20 20:45 ID:???
>>556-557
ありがとー

早速本買って勉強しまっする。
職場のみんなが「うぉっ!」っと言うようなツール作ります。
いや、作るつもり。

559 名前:Name_Not_Found 投稿日:04/07/20 21:35 ID:???
>>558
ポイントは、自窓で素直に送信しちゃうと返送されてくるページに
置き換わってしまうためスクリプトが中止されてしまうこと。これ
を避けるためには、targetを指定してCGIからの結果を別窓、別
フレーム、隠しフレーム等に誘導すること。


560 名前:Name_Not_Found 投稿日:04/07/20 21:50 ID:???
>>539
うまく出来ない原因は、そもそもウィンドウを開く部分…
window.open('aaa.html','mado','');

mado = window.open('aaa.html','mado','');
とする。ただ、このままだと、新しく開いたウィンドウが読み込み完了していないために、
用意されるべきオブジェクトが出来上がる前にそこへ新しく読み込もうとするため、エラーが出る。
すでに「mado」というウィンドウを開いている状態で、さらにフレーム内の「sub」「main」が
認識される状態なら問題ない。
onload を利用する方法もあるけど、フレームを使った場合は面倒なので、
aaa.html を事前に用意するよりは、スクリプト側で生成させたほうがうまく動くと思う。

>>540 は根本的に的外れだったかも知れないけど、上記理由からすでに読み込み完了で、
nameも認識されているため、別窓から、というのを諦めれば一番確実に動く。


561 名前:Name_Not_Found 投稿日:04/07/20 22:11 ID:???
>>559
post じゃなければ問題なし。

562 名前:555 投稿日:04/07/20 22:29 ID:???
>>559-561
ありがとー

現行でwebインターフェースのDBクエリツールがあるんです。サーバ側はperlで自作です。
で、最新情報をクエる度に、フォームに指定された検索ワードやオプション情報をメソッド=POSTで
送信するんですが、結構このツールの使用頻度が多くて、最近クリックもめんどっちくなってきて
何とかしたいけど、「あの」javaScript使うしかないんだろなーって思って>>555の質問に及んだわけです。
ググッても、なかなか見つからなかったので。

又、こうしれば?みたいなのがあれば、是非教えてほしいです。

563 名前:Name_Not_Found 投稿日:04/07/20 22:33 ID:???
>>562
post の場合、submit しなくてはならないのでどうしてもページ遷移が必要。
なので、>>559 の言うように、iframe とか小さく作って置いて、
そこにめがけて submit() すれば。

get で済ませられるなら、
var tmp = document.createElement("img");
tmp.src = "hoge.cgi?fuga=hage";

とか。

564 名前:555 投稿日:04/07/20 22:53 ID:???
>>559>>563thanks
なるほど、リザルトは別フレ-ム表示が必須なわけですな。。
メモメモ

565 名前:Name_Not_Found 投稿日:04/07/20 23:46 ID:???
>>549
TDにNAME属性なんて指定できるの? IDなら大丈夫だけど。

566 名前:Name_Not_Found 投稿日:04/07/21 00:33 ID:???
>>565
スレ違い

567 名前:Name_Not_Found 投稿日:04/07/21 01:13 ID:???
>>566
>>1
このスレに書き込むことが許されるものは以下のとおり
・スクリプトを組むための最低限のHTML・CSSを理解する者


568 名前:Name_Not_Found 投稿日:04/07/21 01:31 ID:???
>>567
アンカー間違ってるよ

569 名前:Name_Not_Found 投稿日:04/07/21 01:41 ID:???
>>567
(゚Д゚)ハァ?
「スクリプトを組むための最低限のHTML・CSSを理解」した上での
JavaScriptの質問を受け付けるってことだろ?
どこをどう拡大解釈すればHTMLタグの属性の質問受け付けることになるんだ?

570 名前:Name_Not_Found 投稿日:04/07/21 03:06 ID:???
目糞鼻糞

571 名前:Name_Not_Found 投稿日:04/07/21 08:51 ID:???
JavaScript+DOMでHTML要素をアクセスする場合、HTMLが標準に従って
書かれているかどうかが問題になる。標準に従っていなくても
IEやGeckoで大丈夫ならまあいいという考えもある。だから無関係
じゃないだろバカヤロ。

572 名前:Name_Not_Found 投稿日:04/07/21 09:15 ID:???
DOMスレ立ててそっち行け

573 名前:Name_Not_Found 投稿日:04/07/21 09:47 ID:???
>>572
現実を見てなさすぎだろ。DOMによる操作を除外したら
JavaScriptでやることのネタがほとんどなくなるよ。

574 名前:Name_Not_Found 投稿日:04/07/21 09:58 ID:???
>>571ももっともだが

このスレに書き込むことが許されるものは以下のとおり
(中略)
・スクリプトを組むための最低限のHTML・CSSを理解する者
(以下略)

なんだから、質問者はHTMLについて最低限理解してるわけだし、
たとえDOMでいじくる要素のプロパチーに関連してても
HTMLの質問に答える必要性は薄いんじゃないかな。

そもそも、現状、web制作板にはStrictHtmlスレもCSSスレもあることだし、
尚更こっちでHTMLに言及する必要はない

575 名前:565 投稿日:04/07/21 12:55 ID:???
あのー、>>565 なんですけど。なぜあの質問をしたかというと。
getElementById()を使った例題は問題なく動くんですよね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
for(var i = 0; i < 3; ++i) {
var c, e = document.getElementById('t' + i);
if(e.currentStyle) c = e.currentStyle.backgroundColor;
else if(!window.getComputedStyle) c = '???';
else c = getComputedStyle(e, '').getPropertyValue('background-color');
alert(c);
}
}
</script>
</head><body onload="test()">
<table summary="test" border="2"><tbody><tr>
<td id="t0" style="background-color: yellow">Yellow</td>
<td id="t1" style="background-color: purple">Purple</td>
<td id="t2" style="background-color: green">Green</td></tr></tbody></table>
</body></html>
それで書き込もうと思ったのですが、>>549 で質問者がtdにnameつけて
いると書いてたので、(1)idをnameに取り換え、(2)getElementById(...)を
getElementsByName(...)[0]に取り換えてみたらGeckoでは動くけどIEでは
動かない(「currentStyleはNullまたはオブジェクトではありません」)
んですよね。もちろんhtmllintでも「tdにname属性は駄目」というエラーが
出ます。だからやっぱりTDにNAMEはまずいんじゃないでしょうか。うまく
行くっていう人いますか?

576 名前:Name_Not_Found 投稿日:04/07/21 13:05 ID:???
最初からそういう風に書けばよいのに。
確かにこういう質問をStrictスレやCSSスレに出しても
JavaScriptスレへ逝けと言われるには違いない(ry

577 名前:Name_Not_Found 投稿日:04/07/21 15:59 ID:???
>>575
この件に限らないが、invalidな文書の処理はDOM仕様の範囲外。
文書中のエラーについて何ができても何ができなくても
その挙動は正しくも間違ってもいない。どんな動作結果も保証されない。
それを踏まえた上で、マズいかどうかは個別に判断すればよい。

578 名前:Name_Not_Found 投稿日:04/07/21 16:19 ID:???
>>577
のような説明だけで済めば楽なんだろうけど、実際にはinvalid
じゃないのとだけ指摘するとわらわらと叩きにくる奴らがいて
結局懇切丁寧にまずい場合について実験して差し上げるという
御苦労様な状態になるというわけだな。しかしJavaScriptスレ
でDOMを扱うなという奴にはあきれた。もう29スレ目なんだろ、
過去スレを読んでからものを言えよって感じ。

579 名前:observer@ ◆q7u/null4U 投稿日:04/07/21 17:52 ID:???
>>575
Sample:
http://www.h2.dion.ne.jp/~alter/etude/calendar.html

・ getElementsByTagName('td') を利用した典型.
・ ソースまる見えにするため,あえて外部ファイルかを避けています.
・ 書き換えによる転用は自由.
(丸ごとパクリもあり) <- 普通,プライドが許さないよね.

580 名前:Name_Not_Found 投稿日:04/07/21 18:01 ID:???
今回の件と(「TDである」以外は)何の関係もないサンプルですな。
何が言いたいんだ?

581 名前:Name_Not_Found 投稿日:04/07/21 18:08 ID:???
>>578
> 実際にはinvalidじゃないのとだけ指摘すると
指摘するならinvalidであることではなくて
不特定の清く正しいDOM実装間における動作保証がないことだと思うが。
それが気になるかどうかは質問者の状況次第だ。
少数の限定された実装のみが対象環境であるなら
W3C標準より各開発元の公開情報の方が動作保証を期待できるし。

582 名前:observer@ ◆q7u/null4U 投稿日:04/07/21 18:08 ID:???
>>580
IE5.0 動作確認済.
getElementsByTagName は DOM level1 なので,
一般的に使われている web browser ではサポートされていると考えて良い.
(NN4.x, IE4.x は知らん.)

583 名前:Name_Not_Found 投稿日:04/07/21 18:13 ID:???
>>581
そもそもIEで動かないんでしょ。普通それだけでだめじゃん。
>>582
そんなの問題ないに決まってるじゃん。だから何がいいたいのさ。

584 名前:@observer ◆q7u/null4U 投稿日:04/07/21 18:29 ID:???
>>583
td に name もしくは id を振るのは面倒だし,スマートじゃない.
って事かな ?

585 名前:Name_Not_Found 投稿日:04/07/21 19:17 ID:???
下記は、郵便番号の下4ケタの全角数字を半角数字に変換するスクリプトですが、
これを、郵便番号下3桁(name="zip2")と電話番号(name="tel")にも実装したいと思ってます。
ですが、このスクリプト全体を3回書くしかやりかたがわかりません。
onblurで関数を呼び出すとき、現在のオブジェクトを表すにはどうすればいいのでしょう?
<SCRIPT LANGUAGE="JavaScript1.2">
<!--
var char_zen = new Array("1","2","3","4","5","6","7","8","9","0");
var char_han = new Array(1,2,3,4,5,6,7,8,9,0);
var count;
function zen2han_zip1(){
var data = document.f.zip1.value;
while(data.match(/[0-9]/)){
for(count = 0; count < char_zen.length; count++){
data = data.replace(char_zen[count], char_han[count]);
}
}
document.f.zip1.value = data;
}
//-->
</SCRIPT>
<form name="f" method="post" action="index.cgi">
郵便番号<input name="zip1" type="text" id="zip1" size="3" maxlength="3" onblur="zen2han_zip1()">
-<input name="zip2" type="text" id="zip2" size="4" maxlength="4" onblur="????????????()"><br>
電話番号<input name="tel" type="text" id="tel" size="12" maxlength="12" onblur="????????????()">
</form>

586 名前:Name_Not_Found 投稿日:04/07/21 19:25 ID:???
>>585
そのスクリプトがいつ発動するのかにもよる。
つか、それそのままブラウザで見たら、
document.f.zip1.value は見つからん!ってエラーになる、でしょう?

イベントハンドラ、を調べてみると良いかも。
そのスクリプトを関数化して、onkeyup とか、onchange、onsubmit で
やるのがよいかもね。

587 名前:Name_Not_Found 投稿日:04/07/21 19:27 ID:???
>>584
個数を数えるほうがよっぽどマズいのが普通だよ。アンタが個数を
数えるの大好きなのはよく知ってるんで、好きなようにやってて
いいからさ。他人に押しつけないでくれ。
>>585
関数には「パラメタ」が渡せるんで。そしてonblurの中ではthisと
書くことで「このinput要素」を表せる。だから「onblur="zen2han_zip1(this)"」
として3つとも「この要素」を渡す。そして
(1)「function zen2han_zip1(e) {」のようにしてパラメタを受け取る。
(2)「var data = e.value;」として渡されたinputの値を加工する。
(3)処理し終わった時の書き戻しも「e.value = data;」として渡されたinputに書く。
だいたいお分かりかな。

588 名前:585 投稿日:04/07/21 19:29 ID:???
あ、すみません、
<script>から</script>は<head></head>内に書きます。

>そのスクリプトを関数化して、onkeyup とか、onchange、onsubmit で
>やるのがよいかもね。
関数化すること自体はわかるのですが、
onblurでもonkeyupでも、
郵便番号でも電話番号でもその関数を使い回せるようには、
zip1やzip2やtelといったnameをどうやってわたせばいいのでしょう?

589 名前:585 投稿日:04/07/21 19:36 ID:???
あ、すれ違いで>>587さんが答えてくださいましたね。
ありがとうございます。試したところ、ばっちり動作しました。
ありがとうございます。

590 名前:質問です 投稿日:04/07/21 19:47 ID:S8p5OvOc
下記のように足し算をしたいのですが、TextBoxに"2.03"など
一定の小数を入れると値が"2.0299999999999"などと勝手に
変換されて正確に計算できません。どうすれば正確に計算できるのでしょうか?
お願いします。

function testval(){
document.getElementById("test1").innerText
= Number(document.testform.val1.value)
+ Number(document.testform.val2.value) ;
}

591 名前:Name_Not_Found 投稿日:04/07/21 20:15 ID:???
>>590
質問前にこのスレくらい全部読め! >>372-374 にズバリあるだろ。
ときにこの問題もFAQに入れるかねえ(次スレにFAQを残すとして)。

592 名前:Name_Not_Found 投稿日:04/07/21 21:01 ID:???
>>591
そうやって答えてくれるから、手っ取り早くて助かります。
ありがとう。

593 名前:585 投稿日:04/07/21 21:22 ID:???
>>585です。さきほどはありがとうございました。
ところで、教えていただいたものを応用しまして、
「URIを入力してもらうテキストボックスで、全角が入れられたら自動で半角に変換するスクリプト」を作りまして、
手元のWinのIE6とNN7.1では動いているようなのですが・・・特にこれ、問題ないですよね?
一応・・・念のためというかんじで投稿させていただいているのですが・・・

なお、以下の点に考慮してます。
//★注1:3種類の全角ハイフンに対応
//★注2:URIで使用可能な文字は以下の通り(参考:RFC2396 http://www.ietf.org/rfc/rfc2396.txt)
// 0-9 - A-Z a-z _ . / ~ , $ ! * ' ( ) ; : @ = & +
// これ以外の記号や日本語は%nnの形式にエンコードされる
//★注3:日本語ドメインなどの類は無視

スクリプトそのものは、次のレスに書きますが、
http://www.geocities.jp/daisuke_ja/uri_zen2han.html
にも一応同じものをおいておきます。

594 名前:585 投稿日:04/07/21 21:24 ID:???
で、スクリプトです(2chの仕様により、長すぎる行(配列)は途中で改行いれてます)
<html><head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head><body bgcolor="#FFFFFF" text="#000000">

<SCRIPT LANGUAGE="JavaScript1.2">
<!--
    var char_zen_URI = new Array("1","2","3","4","5","6","7","8","9","0","ー","−","−",
"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","_",".","/",
"〜",",","$","!","*","’","(",")",";",":","@","=","&","+","%")
    var char_han_URI = new Array("1","2","3","4","5","6","7","8","9","0","ー","-","-","A","B","C","D","E","F","G",
"H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j",
"k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","_",".","/","〜",",","$","!","*","'","(",")",";",":","@","=","&","+","%")

    function zen2han_URI(e){
        var data = e.value;
        while(data.match(/[0-9ー−−A-Za-z_./〜,$!*’();:@=&+%]/)){
            for(count = 0; count < char_zen_URI.length; count++){
                data = data.replace(char_zen_URI[count], char_han_URI[count]);
            }
        }
        e.value = data;
    }
//-->
</SCRIPT>
<form name="f" method="post" action="index.cgi"><input type="text" name="url" onblur="zen2han_URI(this)">
(中略)</form></body></html>

595 名前:Name_Not_Found 投稿日:04/07/21 21:41 ID:???
>>593-594
まず文字単位のマッピングにその方法はあんましよくないと思う。
var s1 = 'ABCDE';
var s2 = 'ABCDE';
var map = new Object();
for(var i = 0; i < s1.length(); ++i) map[s1.substring(i,i+1)] = s2.substring(i,i+1);
のようにして変換表を初期設定し、変換は
var out = '';
for(var i = 0; i < data.length(); ++i) {
var c = data.substring(i, i+1);
if(map[c]) out += map[c]; else out += c;
}
のようにして表引きしながら変換するのがいいと思うけど。
それはそれとして、日本語文字を「%nn」にするのは大丈夫?
UNICODEでいいのなら問題ないけど他の文字コードにはJavaScript
では変換できないからね。

596 名前:Name_Not_Found 投稿日:04/07/21 22:31 ID:Kd9oBo9/
質問!
JSのsplitの使いかたについて


Perlでいう
(my $a , my $b ) = split/1/,'abc1def';
をJSでやる場合は

var a = 'abc1def'.split('1');
でやってa[0]とa[1]で使えばいいのかな?
この場合は、
var a = new Array();
とちゃんと書いて置いたほうがいい?


597 名前:Name_Not_Found 投稿日:04/07/21 22:35 ID:???
>>596
不要。split()は配列を「常に生成して返す」から、
var a = new Array();で用意した配列は「単なる無駄」
になるだけ。

598 名前:596 投稿日:04/07/21 22:40 ID:Kd9oBo9/
>>597
ありがとう!

599 名前:585 投稿日:04/07/21 22:41 ID:???
>>593-594です。

>>595さんありがとうございます。

実は、つくったあとある程度長いURIでためしたら、
ブラウザがかたまってしまいまして、
どうしたらいいかと悩んでました。

>>595さんのやりかたでやったら、
効率的に、長いURLでもなんら問題ありませんでした。
ちなみに
http://www.geocities.jp/daisuke_ja/uri_zen2han_2.html
にアップしてます。
ありがとうございました。

600 名前:Name_Not_Found 投稿日:04/07/21 22:41 ID:P0IePdRZ
window.open() と window.close() を組み合わせて、
最初に開いた1枚目のページのリンクに、
2枚目を開いて1枚目を閉じる、って
イベントをあてたいんだけど、どうしたら可能でしょう?

(リンク元:h0.html)
<a href="#" onClick="window.open('h1.html','plate1','width=100,height=100')">1枚目を開く</a>

(1枚目:h1.html)
<area shape="rect" coords="15,15,200,50" href="javascript:window.close()"
onClick="window.open('h2.html','plate2','width=200,height=200')" target="_blank"
alt="2枚目を開いて1枚目を閉じる">

↑これでやってみたけど閉じなかった。

601 名前:585 投稿日:04/07/21 22:43 ID:???
>>595さん

ひとつ言い忘れ。

>それはそれとして、日本語文字を「%nn」にするのは大丈夫?
>UNICODEでいいのなら問題ないけど他の文字コードにはJavaScript
>では変換できないからね。

日本語文字はそのままにしてしまおうというポリシーなので、だいじょぶです。
ありがとうございます。

602 名前:Name_Not_Found 投稿日:04/07/21 23:14 ID:???
>>600
うーん?「href="setTimeout('window.close()',500)"」とかどうかな。
taget="_blank"は要らないんでは。

603 名前:Name_Not_Found 投稿日:04/07/21 23:23 ID:???
普通は
onClick="window.open('h2.html','plate2','...');window.close()"
だと思うが。

604 名前:Name_Not_Found 投稿日:04/07/21 23:38 ID:???
javascriptで連想配列を作って、そのキーのリストを取得するにはどうすればいいかな?

var test = {
"a":1,
"b":2,
"c":3
};

このハッシュのキー一覧を配列として使いたい。

605 名前:Name_Not_Found 投稿日:04/07/21 23:42 ID:???
>>604
for(var key in test) alert(key);

606 名前:Name_Not_Found 投稿日:04/07/21 23:48 ID:???
テンプレにあるECMAscriptチュートリアルを読んでるけど、インスタンスは愛称って本当?
なんか
オブジェクト=実体
インスタンス=呼び名
みたいに書いてある気がするけど、前に
http://e-words.jp/w/E382A4E383B3E382B9E382BFE383B3E382B9.html
ここのインスタンスの項を読んだら、インスタンスの方が実体って感じがするけどどうなの?
教えてエロイ人!

607 名前:Name_Not_Found 投稿日:04/07/21 23:57 ID:???
うーん、どのチュートリアルかな。その説明はヘンだし、
オブジェクトとインスタンスって同じものだと思うけどな。

608 名前:606 投稿日:04/07/22 00:03 ID:???
http://www.axis.t.u-tokyo.ac.jp/~shunak/ecmascript/Objective.html
このページ読んでる。参考にしない方がいいかな?

609 名前:Name_Not_Found 投稿日:04/07/22 00:07 ID:???
>>606
その説明は間違い。
そこで言っている「愛称」はJavaScriptで言うなら「識別子」だろう。
JavaScriptではあるコンストラクタが生成したオブジェクト(識別子ではない)を指して
非公式にインスタンスという用語を用いることがあるが
この語に関する公式な定義はない。

610 名前:Name_Not_Found 投稿日:04/07/22 00:12 ID:???
オブジェクト=オブジェクト
インスタンス=実体
リファレンス=呼び名
という気持ちが。

611 名前:Name_Not_Found 投稿日:04/07/22 00:15 ID:???
正直、ECMAScriptチュートリアルは
解ってる人が読む分には適当に修正しながら読めるし
「そこそこ動くコードが書ければいい」程度の目的ならまあ果たせると思うが
深く勉強することを目的として読むには
誤解を招く表現が目立つので個人的には勧めない。

612 名前:606 投稿日:04/07/22 00:16 ID:???
>>609
そうなのかorz
インスタンスってイマイチ理解できないと思っていたら、あまり公式な用語ではないのか。
じゃあインスタンスについては深く考えずにいけばok?

後、例えば
a=1;
のaはオブジェクトだよね?どこかのメモリに格納して、そのメモリ内の値がオブジェクトで、
aという呼び方自体はオブジェクトではなくて、格納されてるメモリ番地を格納してるだけ?
駄目だ。もう少し色々読んでから質問しよう。

613 名前:Name_Not_Found 投稿日:04/07/22 00:18 ID:???
これは、new の役割を考えれば分かります。
new はメモリ上に記憶場所を確保して値をセット(オブジェクトの作成)した後、そのポインタを返す関数です。そしてインスタンスはその返されたポインタ(=メモリ番地)を格納する場所となります。

そのサイトこんなのもあるな

614 名前:Name_Not_Found 投稿日:04/07/22 00:27 ID:???
>>602
setTimeoutってこういうのにも使えるんだー。

>>603
デキタワァ*・゜゚・*:.。゜(n‘∀‘)η゚・*:.。゜゚・* !!!

そっかこういう書き方もありなのか。
サンプルコードとかリファレンスばっか
にらめてても駄目だな。

勉強になりますた。

615 名前:Name_Not_Found 投稿日:04/07/22 00:31 ID:???
>>610
リファレンスはアドレスを保有してるだけでしょ

616 名前:Name_Not_Found 投稿日:04/07/22 00:35 ID:???
>>612
JavaScript(ECMAScript)は仕様どおりに動作するのであれば
実装方法を問わない言語だ。メモリ番地云々のくだりに限らんけども、
どっちかっつーと他の言語(CやJava)からやってきた人向けの
動くコードを書くための手っ取り早い説明だと思われ。

617 名前:Name_Not_Found 投稿日:04/07/22 00:45 ID:???
jsってソースが汚いよね。
何よりもdocument.writeが汚い。
読みづらいというか。

後はCSSであれだけバラバラな実装の各UAに、動作を依存するのが怖い。
まあそんなにおかしなことにはならないだろうけどさ。

618 名前:Name_Not_Found 投稿日:04/07/22 00:48 ID:???
>>617
UAの実装の点には同意するが、
誰でも彼でも document.write とかやっているとは思わないでほしい。

619 名前:Name_Not_Found 投稿日:04/07/22 00:57 ID:???
むしろdocument.writeは滅多に使わない

620 名前:604 投稿日:04/07/22 01:05 ID:???
>>605
for ( 変数 in オブジェクト ){}
で、毎回変数にオブジェクトのプロパティ名が入れられるってことだよね?
なんか便利なものがあるんだね。連想配列じゃなくて、クラスにしちゃうことにしたよ。

621 名前:Name_Not_Found 投稿日:04/07/22 01:15 ID:???
function MyClass(a,b){
this.a = b;
return(this);
}
こういうシンボリックリファレンス的な使い方って駄目なのか・・・・期待してやってみたら駄目だった;

622 名前:Name_Not_Found 投稿日:04/07/22 01:18 ID:???
>>618619
!?どうやるの?

623 名前:Name_Not_Found 投稿日:04/07/22 01:21 ID:???
>>621
何をしたいかわからないけど、javascriptはオブジェクトの持ってるプロパティを
外部から追加できたと思うよ。

624 名前:Name_Not_Found 投稿日:04/07/22 01:30 ID:KIupdqa9
<ol start="1">
<li></li>
<li></li>
<li></li>
</ol>
とあって、<li>タグの個数をjavascript取得する方法ってありますか?

625 名前:Name_Not_Found 投稿日:04/07/22 01:34 ID:???
>>624
すべてのliの個数を取得する方法はありますよ

626 名前:Name_Not_Found 投稿日:04/07/22 02:32 ID:???
data = "1";
これを数値として評価するにはどうすればいいでしょうか?
b = data - 0;
b = new Number( data );
もっと簡単な方法はないでしょうか?
異なる10個の変数を足し算したいんですが、型が全て数値とは限らないので、
全てちゃんと数値に変換?したいんですが、スマートな方法はないでしょうか?

627 名前:Name_Not_Found 投稿日:04/07/22 03:01 ID:???
>>624
OL要素のchildNodesからnodoNameがLIであるもを拾う。かなあ

628 名前:Name_Not_Found 投稿日:04/07/22 03:10 ID:???
>>622
with(document){
write("hogehoge");
write("hogehoge");
write("hogehoge");
write("hogehoge");
write("hogehoge");
}

with最強


629 名前:Name_Not_Found 投稿日:04/07/22 03:24 ID:???
ある変数が未宣言、未定義かどうかはどうやって調べればいいでしょうか?
boose[1]が宣言されてない場合は、変数とさえ認識してくれてない気がするのですが・・・

630 名前:Name_Not_Found 投稿日:04/07/22 04:10 ID:???
if(boose[1] == null){ }

631 名前:618 投稿日:04/07/22 05:21 ID:???
>>622
ノードを生成して、ツリーにぶら下げたり、はずしたりするの。

632 名前:Name_Not_Found 投稿日:04/07/22 07:05 ID:???
>>630
それは絶対嘘だろ。一回使った後でもそこにnull入れちゃえるし。
>>629
その前に「boose[1]を宣言する」ってどうやるつもりなの。
「var a;」とかが宣言だよね。「var a = new Array(10);」
とかだと宣言+配列オブジェクトの代入だよね。
「var a[10];」なんてJavaScriptでは書けないし。
>>628
withなんてめったに使わない。読みづらいし。document.write()
>>619 と同じくほとんど使わないしね。
>>626
そのnewはなくてもいいよ。「Number(data)」ね。しかしそれより
簡単にはしようがないだろ。個々の変数をそれぞれ数値に変換する
わけだから。変数名に規則性があればループとか使えるだろうけど。
>>624
そのOL要素にid振って
var n = 0, a = document.getElementById('ID名').childNodes;
for(var i = 0; i < a.length; ++i) if(a[i].nodeName == 'LI') ++n;
>>621
なんかヘンな勘違いをしてるんじゃないの。何がやりたいかを
きちんと書いてみれ。
>>612
そのaはオブジェクトじゃなくて変数名だろ。さらにいえば
windowオブジェクトのプロパティ名だけど。


633 名前:Name_Not_Found 投稿日:04/07/22 07:22 ID:???
>>617
ソースが汚いのは書いてる奴がヘボなだけ。だって構文とか
Javaとほとんど変わりないんだもの。クラスがないとかはまあ
違うけどね。ヘボ人口が多いのは宿命だな、HTML半可通が
ステップアップとか称して乱入してくるわけだからね。

634 名前:Name_Not_Found 投稿日:04/07/22 07:44 ID:???
>>632
>>624 のそれは、ループせなんでも、

a.getElementsByTagName("li").length

で取得できるのではなかろうか。

635 名前:Name_Not_Found 投稿日:04/07/22 07:46 ID:???
>>629
一般的には boose[1] === undefined とかで事足りると思うけど
boose[1] = undefined; のような場合を「boose[1]は定義済み」として
区別する必要がある場合は、 boose.hasOwnProperty(1) を使う。

636 名前:Name_Not_Found 投稿日:04/07/22 07:56 ID:???
>>634
どういう根拠でそんなことが書けるんだ。
Error: a.getElementsByTagName is not a function
documentオブジェクトが持つメソッドは他のオブジェクトも
持っているとか思ってるならオブジェクト指向が分かってないぞ。

637 名前:634 投稿日:04/07/22 08:04 ID:???
>>636
あー、ごめん。a って後ろに childNodes ついてたんだね。
すまそすまそ。

document.getElementById("ID名").getElementsByTagName("li").length;

で、よござんすかね。

638 名前:Name_Not_Found 投稿日:04/07/22 08:06 ID:???
>>634
子孫ノードの検索ならgetElementsByTagName、子ノードの検索なら>>632
>>624にそのへんの使い分けが必要かどうかは解らんが。


639 名前:634 投稿日:04/07/22 08:06 ID:???
>>636
途中でサブミットしちゃった。
getElementsByTagName とか getElementsById とかをメソッドに
持っていないエレメントって、なにがあるの?

640 名前:Name_Not_Found 投稿日:04/07/22 08:09 ID:???
>>639
getElementsByTagNameはElementインターフェイスに定義されているから
どのElementも必ず持っているが、
getElementByIdはDocumentインターフェイスにしかないと思うぞ。

641 名前:634 投稿日:04/07/22 08:15 ID:???
>>640
お、マジで。
情報サンクス。
試してみるよ。

642 名前:Name_Not_Found 投稿日:04/07/22 10:20 ID:???
http://www.mitsubishielectric.co.jp/mobile/foma/d900i/style/index.html
上記のサイトのように「PAGE TOP」を押すとなめらかに移動するには
どうすればいいのでしょうか?

643 名前:Name_Not_Found 投稿日:04/07/22 10:49 ID:???
>>642
vol.27あたりに貼ったもの。基本的にはsetTimeout()を使って
一定時間ごとにwindow.scrollBy()で少しずつスクロールさせ、
その「少し」の量をだんだん減らしていく。あー、過去スレの
行方不明のがあると不便だよねえ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var dist = 0;
function test() {
var b = (document.documentElement || document.body)
var w1 = b.scrollWidth, w2 = b.clientWidth, w3 = b.scrollLeft;
dist = w1 - w2 - w3; setTimeout(step, 200);
}
function step() {
if(dist <= 0) return;
var d = Math.floor(dist*0.2 + 1); dist -= d;
window.scrollBy(d, 0); setTimeout(step, 20);
}
</script>
</head><body>
<p>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<a href="#" onclick="javascript:test();return false">test</a></p>
<div style="background: yellow; width: 2000px">test</div>
</body></html>

644 名前:Name_Not_Found 投稿日:04/07/22 13:53 ID:EMvraynd
よくあるこんなスクリプトを外部jsファイルにしてhtml上のinputにメッセージを流してるんですが、
こいつの「こんにちは、きょうはいい天気ですね」だけを外部テキストファイル化することって可能でしょうか?
倉の社長さんが非常に気にいっていて、結構おもしろいことを書くので好評なのでそれはほほえましいのですが
本人にやらせるとどうしても勝手に改行を入れたり「"」を消しちゃったりして面倒なんで
msgの内容だけを単純なテキストファイルに出来たらなと思ってるわけです。
外部テキストファイルはブラウザのフォームからcgiで生成させちゃおうかと思ってます。

msg="こんにちは、きょうはいい天気ですね";
function scroll()
{
msg=msg.substring(1,msg.length)+msg.substring(0,1);
document.formのname.inputのname.value=msg;
setTimeout("scroll()",200);
}

645 名前:Name_Not_Found 投稿日:04/07/22 14:02 ID:???
>>644
そのcgiで改行とかを削除して msg="%s"; と出力するしかないかと

646 名前:612 投稿日:04/07/22 14:38 ID:???
>>632
>そのaはオブジェクトじゃなくて変数名だろ。さらにいえば
>windowオブジェクトのプロパティ名だけど。

そうなのか。javascriptは基本的に
with(window){}状態なのかな?じゃあ
var a=0;
はどうなるんだろ?これの場合もwindowオブジェクトのプロパティの値をいじってることになるのかな?
っていうかjavascriptって外部からオブジェクトのプロパティを直接いじるの普通にありなんだね。


647 名前:Name_Not_Found 投稿日:04/07/22 14:39 ID:???
>>645
ちいさーいiframeとかを用意して、その中に呼び込んでごにょごにょする
のが常套手段だけど、cgi 書けるなら、そのままそのページに書き出して
やるほうが手っ取り早いよね。

648 名前:Name_Not_Found 投稿日:04/07/22 14:41 ID:???
>>646
JavaScript でのグローバルな変数は基本的にWindowオブジェクトの
プロパティと等価だ、

というようなことがオライリの本に書いてあります。

649 名前:Name_Not_Found 投稿日:04/07/22 14:44 ID:EMvraynd
>>645
どもっす。ほんと、javascriptは苦手なもんで。

このjsファイルの「"こんにちは、きょうはいい天気ですね"」のすぐ両端になんとか識別記号(半角のみ)を
入れることが出来ればそいつの内側だけをCGIをつかったフォームから編集させられるな。
と思ったが、この識別記号、行頭じゃないとうまく認識できないや。漏れのスキルじゃ。
jsソース内の「"」と「"」間の改行を無視させる方法があれば・・・

650 名前:629 投稿日:04/07/22 14:45 ID:???
>>632>>635
なんか勘違いしてました。
var boose;
とかしてたから何やっても駄目だったけど、
var boose = {};
としてからundefinedと比較したり、boose.hasOwnProperty(1)とかしたらしっかり反応してくれました。ありがとうございます。


651 名前:Name_Not_Found 投稿日:04/07/22 14:51 ID:???
>>644
漏れならメッセージだけ .txt ファイルに書いてもらうことにして
そのファイルを隠しiframeに読ませて普通の文字だけ抽出して使う
ようにするな。
>>646
ローカル変数は違うけど、グローバル変数はwindowのプロパティ。
window.test = 'ABC'; alert(test);
とかやってみればわかる。

652 名前:Name_Not_Found 投稿日:04/07/22 14:57 ID:???
>>649
改行削除と " とか \ のエスケープはCGIでやっちゃうんだよ。
次にCGIで var msg = "$msg"; 1行だけのJSファイルを書き出せば良いんだよ。
<script>2つでそのJSファイルと関数郡のJSファイル両方読みこmwxせcrtじげんft

653 名前:612 投稿日:04/07/22 15:43 ID:???
>>648>>651
ありがとうです!
なんか意外とjavascriptも面白いね^^perlとの違いで
「いちいち覚えるの面倒だな」
とか思ってたけど、多分perlよりは常識的なオブジェクト指向ぽいから、いいね。

654 名前:Name_Not_Found 投稿日:04/07/22 15:57 ID:EMvraynd
>>647
iフレームも考えたんですけどね、、社長さん、動くのがいいんだって。
「これだけはゆずれない」そうでw
ま、実際、一行スクロールとしては望ましい使われ方をしてるんでなんとかしてやりたいです。

655 名前:654 投稿日:04/07/22 16:00 ID:EMvraynd
>>652
その社長さんにftpはできればいじらせswでfrgthyじゅきろp;「’
毎日メールでご挨拶送られてきてそれを漏れが直してうpするのはツライ

656 名前:Name_Not_Found 投稿日:04/07/22 18:14 ID:???
今JavaScriptを勉強中なんですが、難しくて全然わかりません。
どこか超初心者でもわかり易く、体系的に学べるサイトなどはなでしょうか?
”とほほ”も見たんですが体系的に纏まってはいるんですが、細かい所がイマイチのってなくて
わかりませんでした。

657 名前:Name_Not_Found 投稿日:04/07/22 18:16 ID:???
>>656
>>1-6を読め

658 名前:Name_Not_Found 投稿日:04/07/22 18:28 ID:???
>>656
俺が教えてやる。
具体的に何がわからないんだ?

659 名前:656 投稿日:04/07/22 18:35 ID:???
全体的にわからないんですが、特に関数がわかりません。

660 名前:Name_Not_Found 投稿日:04/07/22 19:14 ID:???
>>659
そこまでだったら本読んだ方がいいと思うけどね。
一連の動作に名前をつけたものが関数、という説明で納得する?
function 名前() { 動作; 動作; … ; 動作; }

661 名前:Name_Not_Found 投稿日:04/07/22 19:17 ID:???
関数
http://dictionary.goo.ne.jp/search.php?MT=%B4%D8%BF%F4&kind=&mode=0&jn.x=0&jn.y=0

662 名前:Name_Not_Found 投稿日:04/07/22 19:19 ID:???
>>659
こいつネタだろ
テンプレサイト全て読んでも理解できなかったら、軽い知恵遅れの可能性があるからあきらめるしかない。

663 名前:Name_Not_Found 投稿日:04/07/22 19:29 ID:???
>>658 釣られてますよ

664 名前:656 投稿日:04/07/22 20:31 ID:???
つまり関数って、複数の処理(命令)を1つの入れ物に入れて纏める、ただの器みたいな物なの?

665 名前:Name_Not_Found 投稿日:04/07/22 20:35 ID:???

------------------------------------- 終了 -------------------------------------

次の質問ドゾ!!



666 名前:Name_Not_Found 投稿日:04/07/22 20:55 ID:rnNw35hI
ホームページ上で常に動く時計をつくりたいのですが、
次のプログラムで動きませんでした。
どこがだめなのか全然わかりません。

<HTML>
<HEAD>
<SCRIPT RANGUAGE="JavaScript">
<!---
var TC=0 ;
function TimeWatch(){
var time=new Date();
var hour=time.getHours();
var min=time.getMinutes();
var sec=time.getSecond();

if(hour<10)
{hour="0"+hour;
}
if(min<10)
{min="0"+min;
}
if(sec<10)
{sec="0"+sec;
}
document.Watch2.watch2.value=hour+':'+min+':'+sec;
//--->


667 名前:Name_Not_Found 投稿日:04/07/22 20:56 ID:rnNw35hI
</SCRIPT>
</HEAD>
<body bgcolor="#ffffff" onLoad="TimeWatch()">
<P>
<FORM NAME="Watch2">
<INPUT TYPE="text" NAME="watch2" SIZE=10>
</FORM>
</BODY>
</HTML>

668 名前:Name_Not_Found 投稿日:04/07/22 21:01 ID:???
>>664
機能だと思っておけばいい。
functionは自分で機能を定義できるもの。
まあ実際のとこは関数を完全に理解するにはjsの基本部分をちゃんと理解するべきだから、
後は解説サイトにいきなさい。

669 名前:656 投稿日:04/07/22 21:17 ID:???
>>668
ありがとうございます。
じゃあfunction自体には特に意味はなく、functionで定義した物に纏めて機能を与えられる物と考えてよいんですね?
あと、関数はfunctionだけなんですか?

670 名前:Name_Not_Found 投稿日:04/07/22 21:36 ID:???
こっちでやれよ。 うざい。

ものすごく頭の悪い発言してください その2
http://pc5.2ch.net/test/read.cgi/hp/1086686223/


671 名前:Name_Not_Found 投稿日:04/07/22 21:51 ID:???
>>666
「onload="setInterval(TimeWatch, 500)"」に直してみれ。
今は表示された時に1回だけ時刻を書き込んでるから動かないの。

672 名前:Name_Not_Found 投稿日:04/07/22 21:51 ID:???
>>654
ちがうーーーー、ってもういないかな。
iframe を表示用に使うのではなくて、
極小のiframe の中に表示したいテキストファイルを読んでおいて、
JavaScript でそのフレームにアクセスして、中のテキストを読むの。
で、その後は通常通りにごにょごにょしる、ってこと。

document 単位で初期化されてしまう JavaScript で外部ファイル読み込み
をするための苦肉の(常套)策なのです。

673 名前:Name_Not_Found 投稿日:04/07/22 22:06 ID:???
>>669
でもね、機能をまとめて名前をつけられるっていうのは偉大な発明
なんだよ。「右見て;左見て;右みて;左見る;」なんて書くより
「安全確認」とか書いた方が絶対分かりやすいわけ。

あと、パラメタが渡せるから毎回必要に応じて違うデータを処理
できたりするよね。それは >>585-589 を見ると分かると思うが。

674 名前:Name_Not_Found 投稿日:04/07/22 22:08 ID:???

自演 (゚听)イラネ

675 名前:Name_Not_Found 投稿日:04/07/22 22:11 ID:vSIu7FYe
>>672
漏れも興味あったんで横やり。
iフレームのソースをhtmlではなくて.txtを読ませる訳ね。
でもそのフレームにはアクセス出来てもそのなかの文字列を
msg="ここ"にどうやって読み込むんだ?

それよか、>>654のサーバー上のファイルの一部をフォーム経由で
書き換えるCGIに興味ある。自作ですか?
アドさらしたら、詳しい事聴かせてもらえますか?
漏れ、perlはさっぱりなんで金だしてでも
そのスクリプト欲し(ry
まじ、おながいします>>654

676 名前:656 投稿日:04/07/22 22:12 ID:???
>>673
なるほど、参考になりました。

677 名前:Name_Not_Found 投稿日:04/07/22 22:18 ID:???
>>675
前半の質問は過去スレvol. 8の769-772ね。
後半はWebProg板へ逝くこと。

678 名前:667 投稿日:04/07/22 22:24 ID:rnNw35hI
<body bgcolor="#ffffff" onload="setInterval(TimeWatch, 500)">

でいいのでしょうか?
私が昔のでやってみたところ、時計表示の窓は表示されたのですが、
中には時計は表示されず空白だったのです


679 名前:Name_Not_Found 投稿日:04/07/22 22:28 ID:???
>>676
あんだはjs以前にプログラミング自体の入門書を読んだほうがいいと思うぞ

680 名前:Name_Not_Found 投稿日:04/07/22 22:33 ID:???
>>678
あとさあアンタ、エラー出てない?「{」の数と「}」の数が合わないぞ。

681 名前:667 投稿日:04/07/22 22:42 ID:rnNw35hI
var sec=time.getSecond();
の後を}しないといけないみたいですね。。

682 名前:Name_Not_Found 投稿日:04/07/22 22:59 ID:???
>>681
っていうかここはお前の書いたゴミソースを正しく直すスレじゃねんだよ
黙って基本から勉強しなおせ

683 名前:Name_Not_Found 投稿日:04/07/22 23:45 ID:???
javaスクリプトを使ってブックマークツールを作りたいんですが
ブラウザ上でリストを追加・編集したいんです
なにか作成のヒントいただけますてしょうか…

684 名前:Name_Not_Found 投稿日:04/07/22 23:54 ID:???
>>681 でアンタはどうしょうもなくサイテーだということを
露呈したから、それ以上誰も助けてくれないと思うよ。地道に
本買って勉強しなって。じゃね。
>>683
JavaScriptでブックマーク勝手にいじれるわけないだろ。
もしいじれるならエロサイト逝ったらブックマークがエロサイト
だらけになるだろうよなあ。あきらめれ。

685 名前:Name_Not_Found 投稿日:04/07/22 23:54 ID:???
>>683
そんなウイルスみたいなのはやめてほしいと思うんだが、どうよ?

686 名前:Name_Not_Found 投稿日:04/07/22 23:57 ID:???
>>683
追加するとき。
1.追加する文字列から、テキストノードを生成
2.a 要素を生成して、追加する url と1を追加
3.li 要素を生成して、2を追加

削除するとき
1.消したい li を ul から削除

ヒントは、createElement createTextNode appendChild removeChild あたりかな。

ただ、上記の操作の内容を何かしらに保存する場合は、サーバ側に保存
させたり(cgi の技術が必要)、cookie にごっそり食わせたりする
(これはクライアント側だけでOK)必要があるね。
がんがれ。

687 名前:683 投稿日:04/07/22 23:58 ID:???
あ、誤解を招いたみたいで…

ブックマークというよりはリンク集みたいなもんです
認証付きでLi要素を自由に追加・削除できるというやつ

688 名前:686 投稿日:04/07/22 23:59 ID:???
>>684-685
あ、>>683ってクライアントのブックマーク(お気に入り)自体を
いじるって意味なの?それは無理ぽ。
MacIE のブックマークは謎htmlで出来ていて色々出来そうだけど、
やっぱり無理ぽ。

689 名前:686 投稿日:04/07/23 00:00 ID:???
>>688
だから書き込む前にリロードしろと… orz

690 名前:Name_Not_Found 投稿日:04/07/23 00:02 ID:???
>>686
やっぱし保存となるとサーバーサイドかクッキーになるんですか…
とりあえずPHPかJSPでもやってみます

691 名前:Name_Not_Found 投稿日:04/07/23 00:07 ID:???
>>690
その前にどうやって登録するつもりでいるのよ。URL窓から
コピペするわけ?そりゃ面倒すぎるだろ。大人しくブラウザの
ブックマーク使った方がましだって。

692 名前:686 投稿日:04/07/23 00:10 ID:???
すまそ、ヒントが中途半端だった。

getElementById
getElementsByTagName
createElement
createTextNode
parentNode
childNodes
nextSibling
appendChild
insertBefore
removeChild

この10個を抑えておけば、そこそこのことは出来ると思うよ。

693 名前:624 投稿日:04/07/23 00:33 ID:???
>632
>637
やりたいことはolタグの子ノードの検索です。ありがとうです。

694 名前:Name_Not_Found 投稿日:04/07/23 00:35 ID:???
なんか自分がその10個をマスターしたから自慢したくて
たまらないというふうに読めるね。

695 名前:Name_Not_Found 投稿日:04/07/23 01:18 ID:???
>>694
池沼は出てこなくて良い

696 名前:Name_Not_Found 投稿日:04/07/23 06:39 ID:SAom4d6Z
ブラウザ上(IE)のJavaScriptからWScriptのメソッドを実行する事は
できないのでしょうか?
要はWScript.Sleepが使いたいのですが…。
new ActiveXObject("WScript.Shell")
とかはOKだから、できそうな気もしないではないのですが。
(これはこれで「警告」出るからうれしくないのですが)


697 名前:Name_Not_Found 投稿日:04/07/23 08:01 ID:???
>>696
wscriptとブラウザとでは実行環境が違うので
実行環境が用意するホストオブジェクトの仕様は当然変わってきます。
WScriptオブジェクトはブラウザ上のJScript実行環境では使えません。
setTimeout を駆使して頑張りましょう。

698 名前:Name_Not_Found 投稿日:04/07/23 08:03 ID:???
>>696
警告なしに実行できたら黙って重要なファイル消しまくったり
もできることになりますな。sleep()がないとプログラムが
書けませんですか。setTimeout()だって別に問題ないと思うけどな。
ときにVBScriptにsleep()はあるのかな、VBScriptなら警告なし
に呼べるはず。

699 名前:Name_Not_Found 投稿日:04/07/23 09:06 ID:k6GluidM
質問させてください。
現在JSCRIPTを使用しているのですが、変数STRに"AAA,BBB,CCC"というような
カンマで区切られた文字列が入っているのですが、それをAAA、BBB、CCCごと
の3つの文字列に分割するか、または配列に変換したいのですが、
どなたかいい方法知りませんでしょうか。
稚拙な質問で申し訳ありませんが、何分HTMLの知識くらいしか無い者ですので、
どうか宜しくお願い致します。

700 名前:Name_Not_Found 投稿日:04/07/23 09:16 ID:???
>>699
とりあえず>>4のサイト全部から探してみてから質問してください

701 名前:Name_Not_Found 投稿日:04/07/23 09:50 ID:???
>>699
var str = "abc,def,ghi";
var ret = str.split( /,/g );
for(var i in ret)
alert(ret[i]);
こんな感じ?

702 名前:Name_Not_Found 投稿日:04/07/23 11:09 ID:mCJVUzsi
<form id="giko">
<input type="radio" name="auau" id="hoge" value="2ch" onclick="giko.submit();" onkeypress="giko.submit();" />
</form>

をネスケ7.1で見たとき、
auauをクリックしたときは無反応で、
選択後エンターキーを押したら動くのはバグですか?


703 名前:Name_Not_Found 投稿日:04/07/23 11:16 ID:???
var optVal = new Array();
optVal[0] = new Array( "test1", "○" );
optVal[1] = new Array( "test1", "×" );
optVal[2] = new Array( "test1", "▼" );
optVal[3] = new Array( "test2", "■" );
optVal[4] = new Array( "test2", "●" );
function innerCre( inV )
{
myN6 = document.getElementById; // N6
myIE = document.all; // IE
if (myIE) myBR="I4"; // ブラウザは IE4以上
else if (myN6) myBR="N6"; // ブラウザは NS6以上
cnt = optVal.length;
var str;
var listcnt=0
if( myBR == "I4" )str = document.all("innerPoint2").innerHTML;
else str = document.getElementById("innerPoint2").innerHTML;
for( var i=0; i < cnt; i++ )
{
if( optVal[i][0] == inV ){
str = str + '<tr><td bgcolor="#ffffa4">' + (listcnt+1) + '</td>';
str = str + '<td bgcolor="#ffffcc">' + optVal[i][1] + '</td>';
str = str + '<td bgcolor="#ffffa4"><input type="text" size="27"></td></tr>';
listcnt++;
}
}
if( myBR == "I4" ) document.all("innerPoint2").innerHTML = str;
else document.getElementById("innerPoint2").innerHTML = str;
}
※JavaScript部

704 名前:Name_Not_Found 投稿日:04/07/23 11:18 ID:K+P1vvfh
<body onLoad="innerCre( 'test2' )">
innerPoint2<Br>
<table border="0" cellspacing="1" cellpadding="2" width="100%" bgColor="#ffcd35">
<tbody id="innerPoint2">
<tr>
<td bgcolor="#ffffa4" align="center" width="5%"><b>NO</b></td>
<td bgcolor="#ffffcc" align="center" width="40%"><b>○/×</b></td>
<td bgcolor="#ffffa4" align="center" width="30%"><b>てきすと</b></td>
</tr>
</tbody>
</table>
</body>
</html>

※HTML部(>>703のつづき)
ネットスケープだと正常に動いて、IEだと未知の実行時エラーになります。原因がわかりません・・・orz

705 名前:Name_Not_Found 投稿日:04/07/23 12:15 ID:???
>>704
これもわりとFAQだな。MSのreferenceのinnerHTMLのところの記述:
: The property is read/write for all objects except the following, for which
: it is read-only: COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT,
: THEAD, TITLE, TR. The property has no default value.

IE4とIE5.5未満を捨ててDOMでやりなさい。そしたらGeckoとIEと共通のコードになる。

706 名前:703-704 投稿日:04/07/23 13:00 ID:???
>>705
ありがとう。
IE4,5.5切捨ては問題ないのでDOMをちょっと勉強してきます。


707 名前:Name_Not_Found 投稿日:04/07/23 13:06 ID:???
>>706
サンプルは >>490 とかがいいんじゃないの。

708 名前:703-704 投稿日:04/07/23 15:57 ID:R3DU2G+r
>>707
DOM初めて使ってみましたが面白いですね。
サンプル参考にして無事動的生成が出来ました。ありがとう御座います。


もうひとつ質問なんですが、

t.appendChild(document.createElement('tr'));
td = document.createElement('td');
td.setAttribute("bgcolor", "red");
td.appendChild(document.createTextNode('' + (listcnt+1)));

tdのバックグラウンドカラーを変えることができません。
widthは実行されるのですが・・・。またIEだけですが・・・


709 名前:Name_Not_Found 投稿日:04/07/23 16:15 ID:???
>>708
style プロパティでせめてみてはどうか。
td.style.backgroundColor = "適宜";
td.style.width = "適宜";

710 名前:703-704 投稿日:04/07/23 16:19 ID:???
>>709
ありがとぅ!!
出来ました。
なんか一つやると一つ忘れていく・・・どれがDOMでどれがJavascriptでどれがIEのみで・・
頭が混乱ですorz

711 名前:Name_Not_Found 投稿日:04/07/23 16:20 ID:???
>>708
ちなみにHTMLTableCellElementにbgColorプロパティというのもあるよ

712 名前:Name_Not_Found 投稿日:04/07/23 16:22 ID:???
>>702

on*="this.form.submit()"

>>708
// 2つ目を推奨しとく
td.setAttribute("bgColor", "red");

td.bgColor = "red";

713 名前:Name_Not_Found 投稿日:04/07/23 16:28 ID:???
>>710
アンタが最初に書いたものだけがIE専を含んでいる。このスレで
教えてもらったものは全部Gecko+IE+O7くらいのクロスブラウザ。
JavaScriptは言語の部分だけ。「どんなオブジェクト」「どんな
メソッド」は今回の話の範囲ではすべてDOM。

714 名前:Name_Not_Found 投稿日:04/07/23 16:31 ID:???
>>708-712
bgColor属性を書き換えるのはテーブルセル等ごく一部の要素
のみに適用可能。これに対してstyle.backgroundColor = '色'
であればどんな要素にでも適用可能。さらに背景色ではなく
背景画像もstyle.backgroundImage = 'url(ファイル名)'で可能。
だからstyleを使うことだけ憶えてあとは忘れていいと漏れは思う。

715 名前:703-704 投稿日:04/07/23 16:35 ID:???
>>711
>>712
やってみました。推奨のbgColorを使っときました。

>>713
>。「どんなオブジェクト」「どんなメソッド」は今回の話の範囲ではすべてDOM。
なるほど・・・・勘違いいていたようです。


次は追加したタグ(エレメント?)を削除しないと・・・。
削除はRemoveChildを使えばいいのかな?
とりあえずやってみます

716 名前:Name_Not_Found 投稿日:04/07/23 16:47 ID:???
>>710
> どれがDOMでどれがJavascriptでどれがIEのみで・・

DOM ってのはインターフェイスの種類の一つであって、JavaScript とかと
並列に並べて考えるものではないのです。
おいおいわかってくるとは思うけどね。
がんがれ。

717 名前:709 投稿日:04/07/23 16:50 ID:???
半ば自己レス。
CSS でやった方がいいような気がしてきた。
クラスか id つけて。

718 名前:703-704 投稿日:04/07/23 17:12 ID:???
>>717
CSSに変えてみます!

削除して追加。この流れで動的に変更できるようになりました。

削除部は以下

var rowArray=new Array();
function del_cell()
{
var t = document.getElementById('optArea');
var len = t.getElementsByTagName("tr").length-1;

tr=t.getElementsByTagName("tr");
for(i=0;i<len;i++){
rowArray[i]=tr.item(i+1);
}

for(i=0;i<len;i++){
t.removeChild(rowArray[i]);
}
}

こんな感じにしてみました。

みなさん本当ありがとう。

719 名前:Name_Not_Found 投稿日:04/07/23 17:14 ID:???
>>717
DOMでクラスつけるときは「要素.className = 'クラス名'」だからね。
JavaScriptでは「class」というのが予約語になっているもんで
(実際には使われていないんだけどね)。
>>715
i行j列のセルを消去したい場合は
var td = tbody要素.rows[i].cells[j]; td.parentNode.removeChild(td);


720 名前:Name_Not_Found 投稿日:04/07/23 17:26 ID:2NAhKS2i
>>719
便乗して申し訳ないですが。
obj というオブジェクトにクラス名"foo"を追加するときに、

if(obj.className != ""){
    obj.className += " " + "foo";
}
else{
    obj.className = "foo";
}

ってすると MSIE が認識してくれないのですが、
なにか良い方法はありませんか?

721 名前:Name_Not_Found 投稿日:04/07/23 17:27 ID:???
>>718
t = document.getElementById('tbody要素のID');
while(t.childNodes.length > 0) t.removeChild(t.firstChild);
とかの方が簡潔で分かりやすいかもね。

722 名前:Name_Not_Found 投稿日:04/07/23 17:38 ID:???
>>720
classNameに初期値はない(つまり最初に空文字列であるとは
保証されない)ので「if(obj.className) ...」とするのが
いいかも知れない。外してたらスマソ。

723 名前:720 投稿日:04/07/23 18:44 ID:???
>>722
あ、助言どうもです。
知りたかったのは、クラス属性ってスペース区切りで
複数のクラス名を割り当てるのを、JavaScript ではどうやるのかな、と。

724 名前:Name_Not_Found 投稿日:04/07/23 20:48 ID:???
>>723
そりゃもう、空白で区切って書けばいいんじゃないですかね?
この部分だけHTMLと違う書き方にする必然性ないし。

725 名前:Name_Not_Found 投稿日:04/07/23 22:06 ID:jc3iQYa/
ノードについて勉強したいのですがECMAscriptチュートリアルというテンプレにあるサイトを
見てますが見つかりません。テンプレのどのサイトがノードを勉強するのに一番適していますか?

726 名前:Name_Not_Found 投稿日:04/07/23 22:14 ID:???
Node?
http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247

727 名前:725 投稿日:04/07/23 22:17 ID:jc3iQYa/
>>726
せっかく教えてもらって恐縮ですが英文は読めません。
日本語サイトではノードについては取り扱われてないのでしょうか?

728 名前:Name_Not_Found 投稿日:04/07/23 22:19 ID:???
>>725
うーん、DOMのお勉強サイトはどこがいいのかな。


729 名前:725 投稿日:04/07/23 22:24 ID:jc3iQYa/
>>728
煩わせてしまってすみません。DOMがキーワードなのですね?
後は自分で調べてみます。とりあえずリファレンスサイトをいくつも熟読していけば
いずれはノードにたどり着けますよね。わがまま言ってすみませんでした。失礼します。

730 名前:Name_Not_Found 投稿日:04/07/23 22:29 ID:???
ここがおすすめかな。リンク集だけど仕様の和訳やサンプル集もあるから。
ttp://members.jcom.home.ne.jp/jintrick/Personal/links_dom.html

731 名前:725 投稿日:04/07/23 22:32 ID:jc3iQYa/
>>730
ありがとうございます!見に行ってみます。

732 名前:Name_Not_Found 投稿日:04/07/23 22:52 ID:2NAhKS2i
質問です。
td 要素を生成してDOMツリーに追加したいのですが、
この td を colspan="2" と等価にするために

vat a = document.createElement("td");
a.colspan = "2";

としてみましたが駄目でした(環境:NN7);
うまく探せなかったのですが、colspan を扱う td のプロパティは
なんというのでしょうか。

よろしくお願いします。

733 名前:Name_Not_Found 投稿日:04/07/23 23:01 ID:???
>>732
colSpan

734 名前:Name_Not_Found 投稿日:04/07/23 23:04 ID:???
>>732
英語は読まなくていいからスペル等はここをチェックすれ。
ttp://www.w3.org/TR/DOM-Level-2-HTML/ecma-script-binding.html

735 名前:732 投稿日:04/07/24 00:17 ID:???
>>733-734
ありがとう。

736 名前:Name_Not_Found 投稿日:04/07/24 00:50 ID:OnNhDE3L
時刻をリアルタイムで表示できる時計をHTMLタグで作りたいのですが、
htmlタグが分かりません。

次のタグでは□しか表示されませんでした。
助けてください。
よろしくおねがいいたします。

737 名前:Name_Not_Found 投稿日:04/07/24 00:51 ID:OnNhDE3L
これがタグです↓

<HTML>
<HEAD>
<BODY>
<SCRIPT RANGUAGE="JavaScript">
<!---
var TC=0 ;
function TimeWatch(){
var time=new Date();
var hour=time.getHours();
var min=time.getMinutes();
var sec=time.getSeconds();

if(hour<10)
{hour="0"+hour;
}
if(min<10)
{min="0"+min;
}
if(sec<10)
{sec="0"+sec;
}

738 名前:Name_Not_Found 投稿日:04/07/24 00:51 ID:OnNhDE3L
document.Watch2.watch2.value=hour+':'+min+':'+sec;
//--->}
</SCRIPT>
</HEAD>

<body bgcolor="#ffffff" onload="setInterval(TimeWatch, 500)">
<P>
<FORM NAME="Watch2">
<INPUT TYPE="text" NAME="watch2" SIZE=10>
</FORM>
</BODY>
</HTML>

よろしくおねがいいたします。

739 名前:Name_Not_Found 投稿日:04/07/24 00:56 ID:???
>>736-738
タグはだいたいあってます。
がんがれ。

740 名前:Name_Not_Found 投稿日:04/07/24 00:57 ID:???
<SCRIPT RANGUAGE="JavaScript">



<SCRIPT LANGUAGE="JavaScript">

だな。suretigaidaga,

741 名前:Name_Not_Found 投稿日:04/07/24 01:01 ID:???
>>737
□ってインプットボックスだけってことか・・・???
とりあえず
//--->}
の行が限りなく怪しいと思う。


742 名前:737 投稿日:04/07/24 01:10 ID:OnNhDE3L
あー!
ランゲージのつづり間違いはイタイですね。。。

743 名前:737 投稿日:04/07/24 01:11 ID:OnNhDE3L
>>741さん
そうです。
難しい。

744 名前:737 投稿日:04/07/24 01:18 ID:OnNhDE3L
行けたーーーー

745 名前:Name_Not_Found 投稿日:04/07/24 01:19 ID:???
いちいち上げんなボケ!

746 名前:Name_Not_Found 投稿日:04/07/24 02:31 ID:???
>>744
無理すればIDがオンドゥルって読めるね

747 名前:Name_Not_Found 投稿日:04/07/24 03:01 ID:NSYcdIw9
<HTML>
<SCRIPT LANGUAGE="JavaScript">
 function plus(){
  var VAL=eval(VAL1.value+"+"+VAL2.value) ;
  alert(VAL) ;
 }
</SCRIPT>
<HEAD><TITLE>TEST</TITLE></HEAD>
<BODY>
<INPUT TYPE=text VALUE="" NAME="VAL1"><BR>
<INPUT TYPE=text VALUE="" NAME="VAL2"><BR>
<INPUT TYPE=button VALUE="和の計算" onClick="plus()">
</BODY>
</HTML>

のVAL1とVAL2をラジオボタンにして予め数値を決めておいて計算したいのですが
どのように変えればいいですか?

748 名前:Name_Not_Found 投稿日:04/07/24 03:08 ID:???
>>747
何が不満なのか解らん。Number(VAL1.value) とかのほうがよさそうだが。

749 名前:Name_Not_Found 投稿日:04/07/24 04:04 ID:???
>>747
なにが不満っていうか、何がしたいのか、どのように変えたいか解らん。
テキストボックスのVALUEにあらかじめ数値を入れて入力不可に
で、ラジオボタンを押すと入力不可を解除?とか。
ラジオボタンは単なる飾りで、テキストボックスはhiddenにするのか…


750 名前:Name_Not_Found 投稿日:04/07/24 06:30 ID:???
ふつーラジオボタンを使いたいっていったらこういうことでは。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var v1 = '10', v2 = '100';
function test() { alert(parseInt(v1) + parseInt(v2)); }
function chg(v, e) { if(e.checked) window[v] = e.value; }
</script>
</head><body>
<form name="f0" action="#" onsubmit="return false"><p>
<input type="radio" onchange="chg('v1',this)" value="10" name="v1" checked>10
<input type="radio" onchange="chg('v1',this)" value="20" name="v1">20
<input type="radio" onchange="chg('v1',this)" value="30" name="v1">30<br>
<input type="radio" onchange="chg('v2',this)" value="100" name="v2" checked>100
<input type="radio" onchange="chg('v2',this)" value="200" name="v2">200
<input type="radio" onchange="chg('v2',this)" value="300" name="v2">300<br>
<input type="button" value="calc" onclick="test()">
</p></form>
</body></html>

751 名前:747 投稿日:04/07/24 10:54 ID:???
>>748->>750
すみません上手く説明できませんでした・・・
>>750の方法が知りたかったんです。
>>750さんありがとうございました!

752 名前:Name_Not_Found 投稿日:04/07/24 13:38 ID:???
innerHTMLとか、document.writeで書き換えられた状態のページソース全体を
保存する方法ってあるのでしょうか?

(なんかすごく既出っぽいんですがもしそうなら御免なさい)

753 名前:Name_Not_Found 投稿日:04/07/24 14:09 ID:???
>>752
ブラウザのブックマークに次のURLを*必ず1行にくっつけて*登録し(名前は
適当につけてよい)、ソースを取りたい時点でそのブックマークを選択する。
あとは開いた窓からコピペ。
javascript:w=window.open('about:blank');
w.document.write(document.body.innerHTML.replace(/</g,'<'));void(0)

754 名前:Name_Not_Found 投稿日:04/07/24 14:10 ID:???
>>753 の 「'<'」は「'&<;'」ね、すまそ。

755 名前:Name_Not_Found 投稿日:04/07/24 14:11 ID:???
>>754 ウアアアアン! もっかい。「'<'」は「'<'」ね。

756 名前:Name_Not_Found 投稿日:04/07/24 14:13 ID:???
>>753-755 もっかい全部貼ります。
javascript:w=window.open('about:blank');
w.document.write(document.body.innerHTML.replace(/</g,'<'));void(0)

757 名前:656 投稿日:04/07/24 14:20 ID:???
すいません、関数のreturnの意味が良くわからないんですが、returnを付けるとどうなるんでしょうか?

758 名前:Name_Not_Found 投稿日:04/07/24 14:26 ID:???
>>757
function 関数名() { 動作; 動作; … ; 動作; }
の動作のどっかに「return;」が含まれていると、それを実行した
ところでその関数の実行がおしまいになる。あんたねえ、本当に
入門書買って読んだ方がいいよ。ここで聞くのも多くの人にとって
迷惑だし(遊んでる自分はなんでもいいけど)、その調子で勉強して
たら何週間たってもマスターできないだろから自分でも損だよ。

759 名前:752 投稿日:04/07/24 14:45 ID:???
>>756
すばやいレス有難うございます。
なかなか使えそうですが、どうも書き出されたソースは多少成形されているようですね。
<tbody>が追加されてたり、値囲いのダブルクォートが省略されてたり。
あと、<body>〜</body>だけのようですね。

javascriptでの書き換え後のページソースをまるごとそのまんま、ってのが出来るとベスト
なんですが・・・。

アドバイスを参考に、もう少し研究してみます。

760 名前:Name_Not_Found 投稿日:04/07/24 14:52 ID:???
>>759
贅沢すぎ。そもそもinnerHTMLやdocument.write()ならともかく、
appendChild()みたいにDOMでツリーをいじくった場合は「もとの
HTMLソース」なんてものが存在しないわけだけど。
まあ研究すんのは自由だが。

761 名前:752 投稿日:04/07/24 15:29 ID:???
研究してみました。(っていうほどのことではないんですが…)
Explorerでスクラップブックをとるか、ネスケで「ページまるごと保存」をすると、
javascript書き換え後のソースをほとんどそのまんま得られるようです。

どうもお騒がせしました・・・。

762 名前:Name_Not_Found 投稿日:04/07/24 18:07 ID:???
>>757
数学で言う関数とはこんなもんだろ
y = f(x) = x^2 + 1
この関数をJavaScriptで書けば
function f(x){
 y = x * x + 1;
 return y;
}
となる。
alert( f(5) ); と書けば 26 とダイアログが出る。
「戻り値」で検索すればサンプルソースは山ほど出てくるはずだ。

763 名前:Name_Not_Found 投稿日:04/07/24 22:39 ID:???
function を 関数と言い換えてしまうんじゃなくて、手続きとか一連の処理と
考えてやれば何も違和感なく受け入れられると思うが、どうだろうか?
関数と言うとすぐに数学での関数を考えてしまうから...

764 名前:Name_Not_Found 投稿日:04/07/25 00:14 ID:???
そう言えば「変数」って言い方も違和感あったな。
数学での変数は一文字(+添え字)に限られてたから。

765 名前:Name_Not_Found 投稿日:04/07/25 01:54 ID:???
functionはクラス

766 名前:Name_Not_Found 投稿日:04/07/25 02:04 ID:???
俺的にはサブルーチン

767 名前:Name_Not_Found 投稿日:04/07/25 03:11 ID:???
値を返せないのが procedure(Pascalでおなじみ)
値を返せるのが function なのだが。

768 名前:Name_Not_Found 投稿日:04/07/25 03:53 ID:6I0seSdn
window.location.href に関する質問です。

Aのウィンドウのリンクから、(1)と(2)のフレームに別れた
Bと言うウィンドウを開いて、(2)の表示だけを変えたい場合はどうすれば良いでしょうか?
イメージとしては、下記のようにしたいのですが・・・

B.(1).location.href = 'test.html';

Bの中にJavaScriptを入れるのではなく、あくまでAの中に入れたいのです。
よろしければご回答お願いします。

769 名前:Name_Not_Found 投稿日:04/07/25 04:06 ID:???
うーん、けっこうマンドクサイね

770 名前:Name_Not_Found 投稿日:04/07/25 08:45 ID:???
>>768
var w = window.open('フレームセットのURI', '適当な名前');
で開いたとして、表示を変えたい時には
w.frames.フレーム2の名前.location.href = 'test.html';
>>767
今時Pascalなんてだれも勉強してないよ。Del厨以外は。
ともかくCでもJavaScriptでもfunctionはサブルーチンで
サブルーチンは値を返しても返さなくてもよい。

771 名前:Name_Not_Found 投稿日:04/07/25 11:12 ID:???
DOMの使い方で質問です。

ジャンプ格闘⇒拡散ビーム⇒バズーカ⇒ジャンプ格闘⇒拡散ビーム⇒格闘

は繋がりますか?

772 名前:Name_Not_Found 投稿日:04/07/25 13:13 ID:???
>>752
実装環境の有無は知らんが、DOM仕様的には
DOMImplementationLS.createLSSerializer().writeToString(node);
(詳細を知りたければ DOM3 Load and Save 参照)

773 名前:Name_Not_Found 投稿日:04/07/25 16:38 ID:???
>>771
バズーカ処理がブラウザ依存なので、ライブドア版Operaだと処理が追いつかなくて落ちます。
flashでGIMを使ったほうがいいんじゃないですかね。

774 名前:Name_Not_Found 投稿日:04/07/25 21:28 ID:???
>>768
>>539の焼き直しかよ。

775 名前:Name_Not_Found 投稿日:04/07/26 02:16 ID:???
質問する前にコードの断片が分かってればそれでスレ検索すればよいのだが
例えばlocation.hrefを使うことだけでも分かってればそれでレス抽出するとか
テンプレに入れてくんねーかな

776 名前:Name_Not_Found 投稿日:04/07/26 02:22 ID:3oqLzMpF
alertについていまいちよくわからないんですが、関数呼びだしの際に使用する、
エラー例外処理のようなものなんですか?

777 名前:Name_Not_Found 投稿日:04/07/26 02:57 ID:???
>>776
俺は、長ったらしい説明文を読みたい人だけに読ませる手段にしてる。
正しい使い方とかに拘ってるなら>>3-4あたりか。

778 名前:Name_Not_Found 投稿日:04/07/26 06:12 ID:???
>>776
例外処理ではないが、デバッグの時の出力には使える。
そもそも正しい使い方なんてあるのか

779 名前:Name_Not_Found 投稿日:04/07/26 07:20 ID:???
>>776-778
alert()は名前通り「警告ダイアログ」つまり「こういうことが
ありますからアブナイですよ、わかりましたねOK?」という表示
を出してOKボタンを押すまで先に進まないで止まって待つ、と
いうのが機能であり正しい使い方。でもたいていはデバッグとか
に流用してるよね。例外処理とはナンの関係もない、なんで例外
処理だなんて思うんだ?

780 名前:Name_Not_Found 投稿日:04/07/26 11:00 ID:???
北陸地方の農家を救済します。冷害処理

781 名前:Name_Not_Found 投稿日:04/07/26 11:19 ID:???
alertを「本来の機能」の用途で使ったことないし、そんな必要性も感じたことない。
それに、「アブナイですよ、わかりましたね?」って尋ねるなら、YesかNoを選択させるべきで、
alertのすることではない気がする。そもそもそんなアブナイことするな、とも言えるが。

782 名前:Name_Not_Found 投稿日:04/07/26 11:26 ID:???
ツリー型メニューをJavascriptでやろうとしていて
検索でいくつかサンプルを見つけたのですが
一つのツリーを展開したら他の開いているツリーは閉じるように
してあるサンプルは見つかりませんでした。

<script Language="JavaScript"><!--
trList = ["treeMenu1","treeMenu2","treeMenu3"];
function exMenu(tName)
{
for (i=0; i<trList.length; i++) eval(trList[i]).style.display = "none";
tMenu = eval(tName).style;
if (tMenu.display == 'none') tMenu.display = "block"; else tMenu.display = "none";
}
// --></script>

<a href="javaScript:exMenu('treeMenu1')">ツリーの項目</a>
<div id="treeMenu1" style="display:none">ツリーの中身<div>

で一つ開くと別のは閉じるんですが
そうすると今度はツリーの項目をもう一回クリックしても閉じません。
どう書き換えたら開くと別のツリーが閉じ、ツリー全部閉じるようにもできるでしょう。

783 名前:Name_Not_Found 投稿日:04/07/26 11:49 ID:???
>>781
その通り、だからalert()なんて本来の用途ではめったに
使うわけがない。どっちかというとconfirm()の方が普通
に使うよね。
>>782
アルゴリズムの問題だろ。今開いてるメニューがどれかを
記録しておいて、クリックしたときに今開いているのを
クリックした場合はそれを閉じ、そうじゃない時は既に
開いているものを閉じてクリックしたのを開くと。その
筋道に沿ってコードが書けなければ勉強するべきなんで、
誰かが書いてくれるなんて思わない方がいいよ。

784 名前:Name_Not_Found 投稿日:04/07/26 12:07 ID:???
>>782
http://mugi.cc/js/cbm/cbmindex.htm の cbm_vertical.htm 縦並びメニュー

785 名前:Name_Not_Found 投稿日:04/07/26 12:53 ID:???
質問です。

s1 と s2 と s3 といった名前の変数があり、
変数iを使用し ['s'+i] の形で変数にアクセスすることはできますか?
普通なら配列で作るべきなのでしょうが…。

786 名前:Name_Not_Found 投稿日:04/07/26 12:59 ID:???
>>785
[ ] ←これは何?
いずれにしてもやってみればわかるだろうに

787 名前:785 投稿日:04/07/26 13:13 ID:???
>>786
>>11のQ7のイメージなんです。

>>785の3行目は例えでした。失礼しました。
HTML上に配置されているオブジェクトはobj['s'+i]の形でアクセスできますが、
変数でも同じようなことはできますか?というい質問です。

var s1 = 5;
var i = 1;
alert(['s'+i]); // 5 と表示されて欲しい。

788 名前:785 投稿日:04/07/26 13:19 ID:???
自己解決。
evalでできました。

var s1 = 5;
var i = 1;
alert(eval('s'+i));

789 名前:Name_Not_Found 投稿日:04/07/26 13:34 ID:???
>>788
何やりたいのか分からないけど、
ずいぶんトリッキーだね。

790 名前:782 投稿日:04/07/26 13:38 ID:???
すみません782です。

trList = ["treeMenu1","treeMenu2","treeMenu3"];// ツリーメニューのリスト
function exMenu(tName)
{
for (i=0; i<trList.length; i++) eval(trList[i]).style.display = "none"
  →treeMenu1から順に全部のtreeMenuのstyleのdisplay要素にnoneを指定して一旦見えなくする。

tMenu = eval(tName).style;   

if (tMenu.display == 'none') tMenu.display = "block"; else tMenu.display = "none";
  →tMenuが見えない状態なら見える状態に、そうでなければ見えない状態にする。
}
// --></script>
<a href="javaScript:exMenu('treeMenu1')">メニューの項目</a>
<div id="treeMenu1" style="display:none">メニューの中身</div>

リンクをクリックすると必ず最初にdisplay:noneの状態になってからif以降が実行されて
メニューの中身が表示されるから、そこはクリックすれば必ず表示状態なわけですよね。
考え方としては最初の処理を無くして別の方法で他の部分が非表示になるようにすればいいんでしょうか?
例えばクリックした時にif構文を実行してから、その後それ以外のtMenuを全部非表示にするとか。

あとeval()の意味が説明を読んでも理解できません。

◆ object.eval(string) (e4/N3)
string を JavaScript コードと見なして実行します。JavaScript 1.4 では削除されました。代わりに eval() を用います。
◆ eval(statements) (e3/N2)
statements を JavaScript の構文と解釈して実行し、その結果を返します。

この場合どういう風に使われているんでしょう。

791 名前:Name_Not_Found 投稿日:04/07/26 13:54 ID:???
>>790
そのサンプルのコードなんですけどね。
サンプルになっていないみたいですよ。なーんか試作品の試作品を
サンプルにしてしまっているように見える。

自力でその伸縮するツリーメニュー(?)のコードとやらを書いてみて
はいかがでしょうか。実力以上のものを持ち上げるのは大変でしょ。

ちなみにevalは、実行時に式を評価するときに使います。
で、そのサンプルでevalを使っている個所はなんかヘンです。
sytleオブジェクトを配列に入れておくとか、オブジェクトの参照を
うまく使えばevalは不要だと思うんですけど。

そんなムダがあるのも、このサンプルが未熟に見える理由です。

792 名前:Name_Not_Found 投稿日:04/07/26 14:10 ID:???
>>791
おそらくスクリプト評価時点ではまだ treeMenu1〜3 が存在しないんだろうねぇ。

793 名前:Name_Not_Found 投稿日:04/07/26 15:04 ID:???
フレーム(header、main、futtoer)を使ってるページで、mainからフォーカスが
外れたら強制的にmainにフォーカスを戻したいのですが、どのようにすれば良い
でしょうか。

フレームmainに下記を記述してもonblurすら取得できていないようです。
window.parent.main.onblur = window.parent.main.focus();

環境はNN6〜になります。

宜しくお願いします。

794 名前:Name_Not_Found 投稿日:04/07/26 15:17 ID:4j33FUMG
JavaScript basic samples
http://www.sumnet.ne.jp/domp/jsbs/
にあった「履歴に残さず移動」ですが
ちょっと改造したらエラーが出る様になってしまいました
しかも履歴が残ってしまいます、

function pageReplace(){
window.location.replace("hoge.htm");
}
<body onLoad="pageReplace()">
のカタチですが、
エラー時のアラートは
「エラー:このオブジェクトではサポートされていない操作です」
です。
<body>に書いているのがいけないのでしょうか?

795 名前:Name_Not_Found 投稿日:04/07/26 15:21 ID:???
>>782はこういうことがしたかったのか?ちなみに全角スペースを半角
に置換しないとエラーになるので注意。
<html>
 <head>
  <script>
   var treeMenu = new Array() ;
   function exec( src ) {
    var o ;
    o = treeMenu[ src ] ;
    if ( o.style.display == "block" ) {
     o.style.display = "none" ;
    }
    else {
     o.style.display = "block" ;
    }
    for( var prop in treeMenu ) {
     if ( prop != src ) {
      o = treeMenu[ prop ] ;
      o.style.display = "none" ;
     }
    }
   }

796 名前:795 投稿日:04/07/26 15:22 ID:???
   function init() {
    var o ;
    for ( var i = 0 ; i < 3 ; i ++ ) {
     o = document.getElementById( "treeMenu" + i ) ;
     treeMenu.push( o ) ;
     o.style.display = "none" ;
    }
   }
  </script>
 </head>
 <body onload="init()">
  <div><a href="javascript:exec(0)">[ MENU1 ]</a></div>
  <div id="treeMenu0">-1-</div>
  <div><a href="javascript:exec(1)">[ MENU2 ]</a></div>
  <div id="treeMenu1">-2-</div>
  <div><a href="javascript:exec(2)">[ MENU3 ]</a></div>
  <div id="treeMenu2">-3-</div>
 </body>
</html>

797 名前:782 投稿日:04/07/26 15:40 ID:???
>>791
>ちなみにevalは、実行時に式を評価するときに使います。
>で、そのサンプルでevalを使っている個所はなんかヘンです。
実行時に式を評価、ですか。うーんよくわからない・・・orz
styleオブジェクトを配列に入れてしまうってのは
var a = newArray(style.display = "none",style.display = "brock")
ってことでしょうか・・・。

考え方としてはツリー1の項目をクリックした時に
「もしツリー1が非表示なら表示し、それ以外のツリーは全て非表示にする。
ツリー1が表示なら非表示にし、それ以外のツリーも全て非表示にする。」
という式が実行されるようにすれば可能なわけですよね。

<script Language="JavaScript"><!--
function exMenu(tName)
{
tMenu = document.all[tName].style;
if (tMenu.display == 'none') tMenu.display = "block"; else tMenu.display = "none";
}
// --></script>

<a href="javaScript:exMenu('treeMenu1')">メニュー1の項目</a>
<div id="treeMenu1" style="display:none">メニュー1の中身</div>
<a href="javaScript:exMenu('treeMenu2')">メニュー2の項目</a>
<div id="treeMenu2" style="display:none">メニュー2の中身</div>

として、これだけだとただ表示非表示がクリックで切り替わるだけなので、
if文の中か後(?)に引数(tName)以外の全てのidを非表示にする式を書き加えればいいのかな。
それ以外の全てというのをのをどうやって指定したらいいでしょうか。

>>795
やってみましたがスクリプトエラーが出て動作しませんでした。

798 名前:Name_Not_Found 投稿日:04/07/26 15:47 ID:???
>>794
同類のパターンが
http://www.google.co.jp/search?hl=ja&ie=UTF-8&c2coff=1&q=onload%3D%22window.location.replace%28&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
で3件ヒットするけど(逆にいうと3件しかヒットしないのだが)
あんまり参考にならないかな。

エラーメッセージのとおりonloadのときは、
まだwindow.location.replace()
を呼べる状態ではないんでしょうね。

799 名前:Name_Not_Found 投稿日:04/07/26 15:49 ID:Gbph2fFY
今日の18時までに1000行ったら、
妹(15歳・山田優似)のマソコ付ヌード写真ウプする。

800 名前:799 投稿日:04/07/26 15:49 ID:???
激しく誤爆スマソ

801 名前:798 投稿日:04/07/26 15:55 ID:???
>>798
スマソ。
試してみたら(IE6では)onload中にwindow.location.replace()
できるみたい。

802 名前:Name_Not_Found 投稿日:04/07/26 16:25 ID:UXF2KO1q
質問です。

別ページで開いたウインドウを別ページで閉じることは
出来るのでしょうか?

例えば
ページ1 ・・ 子画面を立ち上げる
 ↓処理
ページ2 ・・ ページ1で立ち上げた子画面を閉じる

わかる方はご教授ください。
よろしくお願いします。

803 名前:793 投稿日:04/07/26 16:26 ID:???
すみません、半分自己解決ししました。

hedar,footerフレームのBODYにonfocusイベントで
parent.main.focus();
でできました。

タブで送ったときは動作しないですが...

804 名前:Name_Not_Found 投稿日:04/07/26 16:54 ID:???
>>799
>>800は見なかったことにして、
埋め埋め。

805 名前:Name_Not_Found 投稿日:04/07/26 17:28 ID:???
>>802
別に何だって閉じられるけど「閉じていいですか」ダイアログは
出るかもしれないね。
>>794
ホントにそこから出るエラーなの?別のところを壊してない?
どうしてもそこでエラーになるのなら
setTimeout(function() { location.href.replace('行き先'); }, 100);
>>785-789
evalを使うのはダサイ。「window['s'+i]」でいいんでしょ。

806 名前:Name_Not_Found 投稿日:04/07/26 17:40 ID:???
>>790-791
あんたらはアホか?そこはeval()なんて使わずdocument.getElementById()を
普通に書けばいいとこだろ。元のサンプルがひどいにしても、何読んでるんだ?

807 名前:Name_Not_Found 投稿日:04/07/26 18:16 ID:???
>>806
>>790のレベルに合わせてあげてくれ。
「普通に書く」が分からなくて苦労してるんだよw

808 名前:Name_Not_Found 投稿日:04/07/26 18:21 ID:???
>>806
じゃあ

<script Language="JavaScript"><!--
function treeMenu(id){
if(document.getElementById){
if(document.getElementById(id).style.display == "none")
document.getElementById(id).style.display = "block";
else
document.getElementById(id).style.display = "none";
}
}
// --></script>

<a href="javaScript:treeMenu('id01')">メニュー1の項目</a>
<div id="id01" style="display:none">メニュー1の中身</div>
<a href="javaScript:exMenu('id02')">メニュー2の項目</a>
<div id="id02" style="display:none">メニュー2の中身</div>

でどうでしょうか。それで例えばidが01〜10まであったとして
5を開いたら1〜4と5〜10が閉まるようにしたいわけなんですが、
それをどうやって指定するのかわからなくて困ってるんです・・・。


809 名前:Name_Not_Found 投稿日:04/07/26 18:36 ID:???
>>808
var DivElements = document.getElementsByTagName("div");
for (var i = 0; DivElements.length; i++) {
  if (DivElements[i].id == id)
    DivElements[i].style.display = "block";
  else
    DivElements[i].style.display = "none";
}
とか。例えばだけど。

810 名前:809 投稿日:04/07/26 18:39 ID:???
すんません
誤: for (var i = 0; DivElements.length; i++) {
正: for (var i = 0; i < DivElements.length; i++) {

811 名前:Name_Not_Found 投稿日:04/07/26 18:41 ID:???
>>808
全部閉じてから開きたいやつを開けばいいじゃねぇかよ

812 名前:Name_Not_Found 投稿日:04/07/26 18:46 ID:???
>>809
早速やってみます。

>>811
だから先に全部閉じたら>>790と同じで
もう一回クリックした時に閉じるってならなくなると思うんですけど。

813 名前:Name_Not_Found 投稿日:04/07/26 18:49 ID:???
アホだ・・・

814 名前:Name_Not_Found 投稿日:04/07/26 18:52 ID:???
コードを書く以前にアルゴリズムを考えられないわけか

815 名前:Name_Not_Found 投稿日:04/07/26 18:55 ID:???
Language="JavaScript"

816 名前:Name_Not_Found 投稿日:04/07/26 19:00 ID:???
>>808
<script Language="JavaScript"><!--
var DivElements = document.getElementsByTagName("div");
function exMenu(id){
for (var i = 0; i < DivElements.length; i++) {
if (DivElements[i].id == id)
DivElements[i].style.display = "block";
else
DivElements[i].style.display = "none";
}
// --></script>

で全部出来ました。ありがとうございます。

>>813
気になるんで説明してくれませんか。
先に全部閉じるっていうのがクリックしたら一旦全て非表示にして
その後クリックした部分の表示を切り替えるって意味じゃないなら
どういう意味なんですか。

817 名前:Name_Not_Found 投稿日:04/07/26 19:05 ID:???
>>816
>>813じゃないけど、単に全部閉じてから表示させるのは良いとして、
その開く時点で、開くのか閉じるのか、どちらの動作かを判断させ、
閉じたい場合は開く処理をスキップするとかそういうのはダメなの?

818 名前:Name_Not_Found 投稿日:04/07/26 19:09 ID:???
もうほっとけ。
疲れるだけだから。

819 名前:785 投稿日:04/07/26 19:18 ID:???
>>805
>evalを使うのはダサイ。「window['s'+i]」でいいんでしょ
それです!そんなのを探してたんです。
本当にありがとうございます。

820 名前:Name_Not_Found 投稿日:04/07/26 19:18 ID:???
説明できないだけだろw

821 名前:Name_Not_Found 投稿日:04/07/26 19:50 ID:2JNPG1Pn
>>817
作ってみました。

<script Language="JavaScript"><!--
var DivElements = document.getElementsByTagName("div");
function exMenu(id){
switch(document.getElementById(id).style.display){
case "none":
for (var i = 0; i < DivElements.length; i++) DivElements[i].style.display = "none";
if(document.getElementById(id).style.display == "none")
document.getElementById(id).style.display = "block";
else document.getElementById(id).style.display = "none";
break;
case "block":
if(document.getElementById(id).style.display == "none")
document.getElementById(id).style.display = "block";
else document.getElementById(id).style.display = "none";
break;
}
}
//--></script>

0から組んで一応上手く動いたので間違ってはいないと思いますが。
でも809さんのやり方のほうが全然スマートですね。

822 名前:Name_Not_Found 投稿日:04/07/26 19:54 ID:???
と思ったら816は出来てなかった・・・。821が正解か。

823 名前:Name_Not_Found 投稿日:04/07/26 19:54 ID:???
こんなのは状態を別途持っとく方がずっと楽。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title><style type="text/css">
div { background-color: yellow; width: 80px; height: 40px; position: absolute }
#d0 { top: 40px; left: 40px } #m0 { top: 80px; left: 40px; display: none }
#d1 { top: 40px; left: 120px } #m1 { top: 80px; left: 120px; display: none }
#d2 { top: 40px; left: 200px } #m2 { top: 80px; left: 200px; display: none }
</style><script type="text/javascript">
var status = [false, false, false];
function sel(n) {
if(status[n]) {
document.getElementById('m'+n).style.display = 'none'; status[n] = false;
} else {
for(var i = 0; i < 3; ++i)
document.getElementById('m'+i).style.display =
(status[i] = (i==n))? 'block' : 'none';
}
}
</script></head><body>
<div id="d0" onclick="sel(0)">0</div><div id="d1" onclick="sel(1)">1</div>
<div id="d2" onclick="sel(2)">2</div><div id="m0" onclick="sel(0)">0</div>
<div id="m1" onclick="sel(1)">1</div><div id="m2" onclick="sel(2)">2</div>
</body></html>

824 名前:Name_Not_Found 投稿日:04/07/26 20:06 ID:???
もう>>782のお付き合いはやめちゃっていいんじゃないの?

1. HTMLのオブジェクトを取得するには、document.getElementById()をつかう
2. 各々のメニューの状態は配列で管理する
3. evalは使わなくてもできる

これだけのヒントが出ているんだから、あとは自力でできないと
どーしようも(ry

825 名前:Name_Not_Found 投稿日:04/07/26 20:15 ID:???
>>822
自分で解を作れたならスレ的にも本懐。アホが一人いるみたいだが気にするな。初心者ですとか他人任せとかしない限り無問題。

826 名前:Name_Not_Found 投稿日:04/07/26 20:21 ID:???
event.button以外にマウスボタンの値を取得する方法はないでしょうか。
buttonプロパティだとonmousedownとmousemoveイベント位でしか取得出来ないので…。

827 名前:Name_Not_Found 投稿日:04/07/26 20:24 ID:???
CASEの中にIFって結構荒業っていうか強引でない?
まぁ俺には配列で状態を管理とかわけわかめなんで何も言えんけど。。

828 名前:Name_Not_Found 投稿日:04/07/26 20:49 ID:???
>>826
そもそもMacとかマウスボタンが1つしかない環境もあるけど…
それにmousedownとmousemove以外ってマウスボタン押してない
から情報もないってことじゃないの?

829 名前:Name_Not_Found 投稿日:04/07/26 20:54 ID:???
なんかやけに伸びてるな

830 名前:Name_Not_Found 投稿日:04/07/26 21:37 ID:rjoz5eIR
HTMLのLINK要素で参照しているCSSファイル中でimportされているCSSファイルの
パスを取り出したいのですが、何か上手い方法はありますか?

何がしたいのかというと、あるHTMLで使用されている全てのCSSファイルのパスを
知りたいというわけです。

831 名前:Name_Not_Found 投稿日:04/07/26 21:46 ID:???
>>830
まずはDOM CSSでルールの中からimport探してそのhrefを参照
とかいう普通のことをやってみては?

832 名前:Name_Not_Found 投稿日:04/07/26 22:02 ID:???
>>830
IEだと普通のDOM2CSSは使えないので
document.styleSheets[n].imports[m] を参照することになる。

833 名前:Name_Not_Found 投稿日:04/07/26 22:20 ID:rjoz5eIR
>>831-832
おおありがとうございます。mozillaでCSSImportRuleさがすという方法で
なんとかできました。
しかしIEの方が楽そうですね。

834 名前:Name_Not_Found 投稿日:04/07/26 23:05 ID:???
クマクマ

835 名前:Name_Not_Found 投稿日:04/07/27 11:26 ID:???
width = p2.getX() - p1.getX();
height = p1.getY() - p2.getY();

String style, textstyle;

if ( scale <= 15000) {
style = "fill:#FF0000;fill-opacity:0.15;stroke:#FF0000;stroke-width:0.8";
textstyle = "fill:#FF0000;font-size:80;fill-opacity:0.4";
} else {
style = "fill:#0000FF;fill-opacity:0.15;stroke:#0000FF;stroke-width:0.8";
textstyle = "fill:#0000FF;font-size:80;fill-opacity:0.4";
}

fill-opacity:0.4とは、何を示す言葉なんですか?


836 名前:Name_Not_Found 投稿日:04/07/27 12:14 ID:???
ぐぐれ。

837 名前:835 投稿日:04/07/27 13:43 ID:???
>>836
ぐぐりましたが、説明と思われるところはありませんでしたので教えてください。


838 名前:Name_Not_Found 投稿日:04/07/27 13:54 ID:???
ソレSVG関係だよね。opacity=透明度。つまり半透明な色で塗りつぶす
とこどで、その透明度を指定している。

839 名前:Name_Not_Found 投稿日:04/07/27 13:58 ID:???
>>837
ダウトー(AA略
ttp://www.google.co.jp/search?hl=ja&ie=UTF-8&c2coff=1&q=fill+opacity&lr=

840 名前:Name_Not_Found 投稿日:04/07/27 15:06 ID:???
てか>>835の冒頭4行ぐらいが禿しくJavaScirptじゃなさげなんだが。

841 名前:835 投稿日:04/07/27 15:15 ID:???
>>838-840
ありがとうございました。
>>840
お察しのとおり、これは元々JAVAのプログラムの一部ですが、JAVAスレでスクリプトだと言われてこちらに来ました。

842 名前:Name_Not_Found 投稿日:04/07/27 15:20 ID:???
>>841
その言われたところに次のを貼っといて。
「バカヤローJavaとJavaScriptの区別もつかんくせに知ったかな
誘導するんじゃねーよ!! (JavaScriptスレ住人一同)」

843 名前:Name_Not_Found 投稿日:04/07/27 18:02 ID:???
Javascriptを利用して、HTML中にある「<!--コメント-->」
という文字列の、「コメント」という部分だけを抽出して表示するようなことは可能でしょうか?

844 名前:Name_Not_Found 投稿日:04/07/27 18:49 ID:???
>>843 こういう感じ?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var a = document.body.innerHTML.replace(/\n/g, '').split(/<!--/);
a.shift();
for(var i in a) a[i] = a[i].replace(/-->.*$/, '');
alert(a.join('|'));
}
</script>
</head><body>
<div><!-- コメント -->普通のテキスト</div>
<div><!-- コメント -->普通のテキスト</div>
<div><!-- コメント -->普通のテキスト</div>
<p><a href="javascript: test()">test</a></p>
</body></html>

845 名前:Name_Not_Found 投稿日:04/07/27 19:14 ID:???
>>843
CommentNodeからnodeValueを取得するのが一応の正攻法。

846 名前:Name_Not_Found 投稿日:04/07/27 20:38 ID:???
JavaScriptってhtmlに埋め込むのと、外部ファイルに作るのってどっちがいいの?

847 名前:Name_Not_Found 投稿日:04/07/27 20:40 ID:???
>>846
用途次第だろう。

848 名前:Name_Not_Found 投稿日:04/07/27 22:12 ID:???
>>845 なるほど。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function extract(n, a) {
if(n.nodeType == 8) a.push(n.nodeValue);
for(var i = 0; i < n.childNodes.length; ++i) extract(n.childNodes[i], a);
}
function test() { var a = new Array; extract(document, a); alert(a.join('|')); }
</script>
</head><body>
<div><!-- コメント -->普通のテキスト</div>
<div><!-- コメント -->普通のテキスト</div>
<div><!-- コメント -->普通のテキスト</div>
<p><a href="javascript: test()">test</a></p>
</body></html>

849 名前:Name_Not_Found 投稿日:04/07/27 22:17 ID:???
イベントハンドラは--<script type="text/javascript"><!--
//></script>--を記載しなくても良いんだよね?

850 名前:Name_Not_Found 投稿日:04/07/27 22:22 ID:???
>>849
HTML中に書くハンドラでは書きようがないだろ。
<body onload="...">
JavaScript中でハンドラを設定する場合…
window.onload = funciton() { ... };
やっぱり書きようがないだろ。どういう場合のことを言ってる?
そもそも自分はJavaScriptソースをコメントで囲むことはとっくに
やめてる。対応しないクライアントは捨ててる。(JavaScriptが動作
しないのはそれはそれでいいけど。)

851 名前:Name_Not_Found 投稿日:04/07/27 23:25 ID:???
>>850
window.document.onkeydownとか…関数の宣言と一緒に実行してしまう時には
囲むかも知れんね。<body>タグだと、範囲指定が上手くいかないときとか。
いやまあ、基本的にないわな。

852 名前:Name_Not_Found 投稿日:04/07/27 23:57 ID:???
>>851
理解できん。「宣言と一緒に実行」の例を書いてみせてよ。

853 名前:Name_Not_Found 投稿日:04/07/28 05:01 ID:???
質問です。ある要素の、CSS で指定された属性(色、装飾など)を
JavaScript から読み出すことはできないでしょうか?

やりたいことは、リンクを複数並べて、最後にクリックしたものだけが他の
リンクと色が違うようにしたいのです。

どなたか、お願いいたします。

854 名前:Name_Not_Found 投稿日:04/07/28 07:34 ID:???
>>853
<a href="#" style="color:red" onclick="alert(this.style.color)">リンク</a>
みたいなこと聞いてる?

855 名前:Name_Not_Found 投稿日:04/07/28 08:10 ID:???
>>854
この現スレで2回も「その方法ではCSS側で指定した色は読み出せない」
という話が出ていて読み出す方法も説明されているんだが。おまけに
質問者の意図からしたら役に立たないよな。
>>853
CSSで指定したものを読み出すのは面倒なわりに「最後にクリックした
もの」とほとんど関係ないだろ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
a, a:visited, a:active { color:brown }
</style>
<script type="text/javascript">
var last = null;
function chg(e) {
if(last != null) last.style.color = 'brown';
last = e; e.style.color = 'green';
}
</script>
</head><body>
<p><a href="http://www.yahoo.com" target="t" onclick="chg(this)">yahoo<a></p>
<p><a href="http://www.google.com" target="t" onclick="chg(this)">google<a></p>
<p><a href="http://www.goo.ne.jp" target="t" onclick="chg(this)">goo<a></p>
</body></html>



856 名前:Name_Not_Found 投稿日:04/07/28 08:19 ID:???
>>855
「ある要素の、CSS で指定された属性」ってだけじゃ
style要素による指定かstyle属性による指定か解らんから
メンド臭くない方を例示して聞いただけだが。

857 名前:Name_Not_Found 投稿日:04/07/28 10:57 ID:???
java scriptを外部から読み出したいんだけど、この際、複数の命令を1つの外部ファイルに
まとめてもいいの?

858 名前:Name_Not_Found 投稿日:04/07/28 11:25 ID:???
意味わからん

859 名前:Name_Not_Found 投稿日:04/07/28 11:26 ID:???
>>857
命令ってのは関数のことだと思うけど
いいよ。

860 名前:Name_Not_Found 投稿日:04/07/28 12:21 ID:???
>>835
VBScript?
まぁ、どうでもいいけど。

861 名前:853 投稿日:04/07/28 13:05 ID:???
>>854-856
ありがとうございます。要素の属性は、外部CSSファイルで指定されていて、
JavaScript とは無関係にデザイナーさんが変更する可能性があるのです。

その読み取り方は、このスレですでに紹介されていたのですね。失礼しました。
>>396 http://www.oreillynet.com/pub/a/javascript/excerpt/JSDHTMLCkbk_chap5/index5.html
が、まさに望んでいたものでした。ありがとうございました。

862 名前:857 投稿日:04/07/28 14:48 ID:???
ありがとうございます。
ちなみに、外部ファイルはひとつのHTMLに何個まで読み込めるんですか?

863 名前:Name_Not_Found 投稿日:04/07/28 15:05 ID:???
>>862
制限なんかないけどね。あまり多くすると遅くなるだろうけど100個
とかならまあ問題ないよ。

864 名前:857 投稿日:04/07/28 15:14 ID:???
そうなんですか、先ほど外部ファイルを2つほど作成し、1つのHTMLファイルで
2つ.jsファイルを読み込ませようとしたところ、どうしてもどちらか1つしか読み込んでくれず、
現在も悪戦苦闘しております。



865 名前:Name_Not_Found 投稿日:04/07/28 15:22 ID:???
>>864
同じ関数名でもあるんじゃないかなと思ったりした

866 名前:857 投稿日:04/07/28 15:27 ID:???
いま確認したところ特に同じものはありませんでした。
ちなみに、1つの外部ファイルに複数の処理を書いて試したんですが、一番最初に
書いた処理しか、実行してくれません。

867 名前:Name_Not_Found 投稿日:04/07/28 15:38 ID:???
できることができないのはどこか間違ってるからだろ。
全部晒すか自分で間違いを探せ。

868 名前:857 投稿日:04/07/28 15:43 ID:???
全部載せると大変になるので、問題があると思われる。複数の処理のつなぎ目を載せます。
for (i=1; i < n; i++){
y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);
x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);
}
ClockAndAssign();
setTimeout('Delay()',20);
}
if (ns||ie)window.onload=Delay;

/*-------別のスクリプト-------------*/
var TC = 0;
var Msg = "ようこそ!お料理のページへ";
var timer = 0;
function Mess() {
if (TC < 1000) {
TC++;
document.title = Msg;
Msg = Msg.substring(2,Msg.length) + Msg.substring(0,2);
var timeID=setTimeout("",1);
clearTimeout(timeID);
timeID=timer = setTimeout("Mess()",500);
}
else { document.title = " " }
}


869 名前:Name_Not_Found 投稿日:04/07/28 15:57 ID:???
>>868
そんな断片じゃ何とも言えないだろ。まず前半は「{」と「}」の
数が合わないしClockAndAssign()もDelay()も関数定義がないし。
後半はなぜ空文字列でsetTimeout()呼ぶのか分からんし即clearTimeout()
してるのもわからんしtimeIDがローカル変数なのもわけわからんし、
要はアンタがプログラミング下手すぎて失敗してるとしか思われん。

下のようなサンプルで「2つとも読み込めていること」「片方の中から
他方で定義した関数を呼べていること」が確認できるが何か?
---main.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript" src="t1.js"></script>
<script type="text/javascript" src="t2.js"></script>
</p><a href="javascript: test1()">test</a></p>
</body></html>
---t1.js---
alert('t1.js reading.');
function test1() { alert('Test1'); test2(); }
---t2.js---
alert('t2.js reading.');
function test2() { alert('Test2'); }

870 名前:857 投稿日:04/07/28 16:04 ID:???
個別では実行できています。
上のに関しては、if (ns||ie)window.onload=Delay;の後ろに”}”を付けると逆に実行されなくなります。


871 名前:Name_Not_Found 投稿日:04/07/28 16:06 ID:???
>>870
どっかにアップロードしてURIを晒せ。しかしどっちかというと
あんなボロボロなコードを大量に見たくはないけどね。まあ別に
見ようと見まいとこっちの勝手で怖いもの見たさもあるけどね。

872 名前:857 投稿日:04/07/28 16:08 ID:???
ちなみこのコードは私が書いたものではなく、サンプルをお借りして複数実行しようと
しただけです。

873 名前:853 投稿日:04/07/28 16:09 ID:???
javascript:var a=""; for(var i in document.getElementsByTagName("a")[0].style){a+=i +"<br>";}; document.write(a);undefined;

javascript:alert(document.getElementsByTagName("A")[0].style.visitedcolor);



すみません、先ほどの者ですが、あるリンクにフォーカスがあっても
周囲に点線が出ないようにするのは、JavaScript ではどう指定したら
良いでしょうか?

CSS なら
a:aciteve {border-style:none}
あたりでうまく行きそうですが、JavaScriptで個別の要素に設定する方法が
分からないのです。

具体的には、一度クリックしたリンクは、他のリンクがクリックされるまで
点線が表示されないようにしたいのです。

よろしくお願いします。

874 名前:853 投稿日:04/07/28 16:10 ID:???
すみません、>>873 の冒頭のコードは意味がありません。ただのゴミで、範囲
選択のミスによるものです。

875 名前:Name_Not_Found 投稿日:04/07/28 16:17 ID:???
>>873
考え方としては、onfucus の時に blur() してあげる、という方向で。
要素に onfocus="this.blur();" と書いてもいいし、
DOM にアクセスしてオブジェクトを取得して、

obj.onfocus = function(){ this.blur(); }

とするのも可。
ただし、マウス無しではそのアンカーなりを叩けなくなる諸刃の剣。
初心者には以下略

876 名前:Name_Not_Found 投稿日:04/07/28 16:25 ID:???
>>872
だったらなおさら、「食べ合わせ」が悪いかなんかだろ。
アップロードして動かない状況が再現してれば誰かが究明
してくれると思うけどね。それなしでグダグダ言っても
どうにもならんね。漏れは用事があるから出かける、さいなら。

877 名前:853 投稿日:04/07/28 16:30 ID:???
>>875
ありがとうございます。実は、最後にクリックしたリンクだけを無効に
して、地の文と変わらなくしたいのです。これらのリンクは、フレームの
左メニューです。

obj.onfocus = function(){ this.blur(); }
としましたが、リンクをクリックした直後には、点線が消えてくれません。
一度別の場所に(TABキーなどで)フォーカスを移し、もう一度クリックすると
今度はちゃんと点線が非表示になるのですが。

obj.onfocus = function(){
this.blur();
document.getElementsByTagName("BODY")[0].focus();
}
などとしても同じでした。

これは IE6 でも Mozilla 1.7 (Sylera) でも同じでした。
クリックの直後も点線が表示されないようにできないでしょうか。

878 名前:Name_Not_Found 投稿日:04/07/28 16:46 ID:6u3kfU39
<html>
<head>
<script type="text/javascript">
function test()
{
document.getElementById('check01').checked = true;
document.getElementById('check02').checked = false;
document.getElementById('flag').checked = true;
}
</script>
</head>
<body onLoad="test()">
<form name="test01">
<input type="checkbox" name="check01">check01<br>
<input type="checkbox" name="check02" checked>check02<br>
<input type="radio" name="flag" value="0" checked>0
<input type="radio" name="flag" value="1">1
</form>
</body>
</html>

このような時、フラグのvalue==1の方だけをchecked にする方法が良くわかりません。
実際はforでグリグリ回しながらgetElementById('check0'+i)のように状況に応じて一気に変更
したいとおもっています。
よろしくお願いします。

879 名前:Name_Not_Found 投稿日:04/07/28 17:11 ID:???
ページ(1):ページ(2)へのリンクで、クッキーに画像のパスを保存
ページ(2):クッキーからパスを呼び出し、imgタグに埋め込んで画像表示
というようにしたいのですが、どのようにしたらよいでしょうか。
わからないなりに数日間色々してみて、クッキーの書き込みまでは上手くいったのですが
クッキ−読み込み→imgタグに埋め込んで表示 がサッパリできません。

●ページ(2)
<html><head>
<script language="javascript" src="../js/cookie.js"></script>
</head>
<body>
<script language="JavaScript">
document.writeln('<img src="img(画像用のフォルダ)/'+name+'" width="10" height="10" alt="'+name+'">');
</script>
</body></html>

●外部JavaScriptファイル(cookie.js)
name=loadCookie()
function loadCookie(){
tmp = document.cookie+";";
tmp1 = tmp.indexOf("cookie_name",0);
if(tmp1 != -1){
tmp = tmp.substring(tmp1,tmp.length);
start = tmp.indexOf("=",0);
end = tmp.indexOf(";",start);
return(unescape(tmp.substring(start+1,end)));
}
return("");
}

おそらくとんでもなく簡単なんだろうとは思うのですが…
初歩的で申し訳ありませんが、どうかよろしくお願いします。

880 名前:875 投稿日:04/07/28 17:23 ID:???
>>877
どうか。

<script type="text/javascript">
window.onload = function(){
var tmp = document.getElementsByTagName("a");
for(var i=0 ; i<tmp.length ; i++){
tmp[i].onfocus = function(){ this.blur(); }
}
}
</script>

<ul>
<li><a href="#">ふんにゃか ふんにゃか</a></li>
<li><a href="#">ふんにゃか ふんにゃか</a></li>
<li><a href="#">ふんにゃか ふんにゃか</a></li>
<li><a href="#">ふんにゃか ふんにゃか</a></li>
<li><a href="#">ふんにゃか ふんにゃか</a></li>
<li><a href="#">ふんにゃか ふんにゃか</a></li>
<li><a href="#">ふんにゃか ふんにゃか</a></li>
<li><a href="#">ふんにゃか ふんにゃか</a></li>
</ul>

881 名前:853 投稿日:04/07/28 17:50 ID:???
>>880
すみません、私が意図していたのは、こういう感じです。

<script type="text/javascript">

var previousLink = { style:{} };

var setDisabled = function(link){
link.style.color = "black";
link.style.textDecoration = "none"
link.onfocus = function(){ this.blur(); };

previousLink.style.color = "purple";
previousLink.style.textDecoration = "underline";
previousLink.onfocus = function(){return true;};

previousLink = link;
}
</script>

<ul>
<li><a href="#" onclick="setDisabled(this);">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);">ふんにゃか ふんにゃか</a></li>
</ul>


882 名前:853 投稿日:04/07/28 17:51 ID:???
要するに、クリックした瞬間、そのリンクが地のテキストと見分けがつかない
ようにしたいのです。
色とアンダーラインはどうにかなりますが、クリックした直後は回りの点線が
消えてくれません。これを何とか消したいのです。

883 名前:Name_Not_Found 投稿日:04/07/28 18:16 ID:???
セルの背景画像をマウスイベントを使って変えたいのですが。
メニューが横に8つ並んでいてテキストはそのままで、背景画像だけを変えたいです。
画像はフォルダみたいな形をしていて、長さがばらばらです。高さは一緒。

表示されてるページのメニューが青で、マウスオーバーですべてのメニューが黄色になり、
表示されてないページのメニューは白です。
なので画像は24個あります。

検索してみたものはどれも長さ(幅)がそろっていたり、
最初の画像が同じだったりしてなかなか思うようにできません。
一つ一つ指定すると長いタグになってしまいそうなのですが、
何かいい方法はありますか?
よろしくお願いします。


884 名前:875 投稿日:04/07/28 18:28 ID:???
>>882
当方、WinXP + IE6・Win2k + IE5・Moz5系 で確認しているが、どうか。

window.onload = function(){
    var tmp = document.getElementsByTagName("a");
    for(var i=0 ; i<tmp.length ; i++){
        tmp[i].onfocus = function(){
            this.blur();
            this.className = "fun-nyaka";
        }
    }
}

li{ color: #000000; }
a.fun-nyaka:link,
a.fun-nyaka:visited,
a.fun-nyaka:hover,
a.fun-nyaka:active{ color: #000000; text-decoration: none; }

<ul>
<li><a href="#">ふんにゃか ふんにゃか</a></li>
<li>ふんにゃか ふんにゃか</li>
<li><a href="#">ふんにゃか ふんにゃか</a></li>
<li>ふんにゃか ふんにゃか</li>
</ul>


885 名前:878 投稿日:04/07/28 18:57 ID:???
私が馬鹿でした。汚してすみませんでしたorz

886 名前:853 投稿日:04/07/28 18:58 ID:???
>>884
こちらの説明がまずくて申し訳ありません。
条件として、

・最後にクリックしたリンクのみ、地の文と同じになる。
・他のリンクをクリックすると、地の文に見えたリンクは通常のリンクに戻る。
・つまり、地の文と同じに見えるリンクは、全体で1つだけで、残りは普通のリンク。

・リンクにフォーカスがあたると点線による囲みが発生する。クリック直後に
 それが消えるようにする方法を模索中。

・ただし、他の(通常の)リンクにTABでフォーカスを移動させたり、右クリック +
 Esc など、クリックしてもページが移動しない場合は、他の(通常の)リンク
 にはきちんと 囲み点線が表示されるようにしたい。もちろん、本文と同じ
 表示のリンクは囲み点線が表示されないようにしたい。

・スタイルシートは原則としてデザイナーが決めるので、こちらはJavaScript
 しかいじれない。>>881はそこを簡単のためにはしょっている。
 >>853 で CSS の値を読む方法を質問したのは、デザイナの指定した値を
 JavaScript から取得したいから。

こんなところだと思います。分かりにくくてすみません。

887 名前:Name_Not_Found 投稿日:04/07/28 19:18 ID:???
私も外部ファイルについて質問があります。
外部ファイルが複数ある場合で、例えば、(a.js),(b.js),(c.js)を1つのhtmlに呼び出す場合は、
<!doctype html public "-//w3c//dtd html 4.01//en""http://www.w3.org/tr/htlm4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type"content="text/htlml;charset=shift_jis">
<title></title>
<script src="a.js" type="text/javascript"></script>
<script src="b.js" type="text/javascript"></script>
<script src="c.js" type="text/javascript"></script>
</head>
の様な感じで個別に呼び出す感じでよいんですか?

888 名前:875 投稿日:04/07/28 19:46 ID:???
>>886

・地の文と同じになる。

>>884 で提示したモノでどう?駄目なら環境は?

・他のリンクをクリックすると、地の文に見えたリンクは通常のリンクに戻る。

→クリックされたモノ以外のスタイルを処理前に一度全部規値に直す
 this.parentNode.parentNode.getElementsByTagName("a") で全部取得できるはず。

・リンクにフォーカスがあたると点線による囲み

→これって、フォーカスされているときの枠線でしょ?まちがってるかな?
 blur() したら消えるアレじゃないの?

・ただし、他の(通常の)リンクに

→親要素に id でも付けて、それだけにアクセスすれば良いかと。
 getElementById とかで。>>884 で提示したモノは簡略化のために、全 a 要素にアクセスしてます。

・こちらはJavaScriptしかいじれない。

→css でやった部分を jss でやれば良いかと。
 obj.style.hogehoge = "fugafuga"; って感じで。

889 名前:Name_Not_Found 投稿日:04/07/28 19:56 ID:REQR2765
質問です。
任意のブロックの高さを取得する方法を教えて下さい。

エクスプローラ風階層メニューを作って、画面左側に配置し
float:left して、本文のブロックを右側に回り込ませています。

このとき、MacIE で、階層メニューを開いてメニューのブロックの高さが
大きくなったときに、回り込んでいるブロックの中の clear:left の位置で、
ずれてしまう(下記参照下さい)ことがわかりました。
http://v.isp.2ch.net/up/b0186052f9ca.html

そこで、MacIE のみ、階層メニューのブロックを position:absolute で
配置しようと思うのですが、このメニューブロックの高さを知りたいです。

よろしくお願いします。

890 名前:889 投稿日:04/07/28 20:24 ID:???
すみません、自己解決しました。
obj.clientHeight で取得できました。

891 名前:853 投稿日:04/07/28 20:25 ID:???
>>888
すみません、ちょっと遅くなりました。
a:visited はJavaScriptではどのように指定するのでしょうか?
また、a:hover, a:active はそれぞれonmouseover, onfocus のイベントハンドラ
として書き直す、と言うことでしょうか?

892 名前:853 投稿日:04/07/28 20:29 ID:???
>>884 のコードはこちらの環境で動くのですが(win2000, IE6)
やや挙動が意図と違うので、私の書いた >>881 と見比べて、私のコードが
どうして点線が消えないのか、検討してみます。

893 名前:853 投稿日:04/07/28 21:03 ID:???
できました!これでほぼ問題ないと思います。

<script type="text/javascript">

 var previousLink = { style:{} };

 var setDisabled = function(link){
  link.style.color = "black";
  link.style.textDecoration = "none"

  previousLink.style.color = "purple";
  previousLink.style.textDecoration = "underline";

  previousLink = link;
 }
</script>

<ul>
<li><a href="#" onclick="setDisabled(this);" onfocus="blur();">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);" onfocus="blur();">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);" onfocus="blur();">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);" onfocus="blur();">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);" onfocus="blur();">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);" onfocus="blur();">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);" onfocus="blur();">ふんにゃか ふんにゃか</a></li>
<li><a href="#" onclick="setDisabled(this);" onfocus="blur();">ふんにゃか ふんにゃか</a></li>
</ul>


894 名前:853 投稿日:04/07/28 21:14 ID:???
focus を全て抑制してしまったので、TAB キーによる移動をしようとしても
フォーカスが見えず、ほとんど不可能になりました。
しかしそれを除いてはほとんど問題はないと思います。

大変お世話になりました。ありがとうございました。

895 名前:Name_Not_Found 投稿日:04/07/28 21:47 ID:???
>>894
ともあれ、うまくいってよかった。
onfocus を onclick にしたら、tab 移動は出来るのではなかろうか。

896 名前:Name_Not_Found 投稿日:04/07/28 21:51 ID:???
おとなしくデザイナーと相談するという選択肢はなかったのか…

897 名前:888 投稿日:04/07/28 22:02 ID:???
>>896
webデザイナって人種には、www というシステム自体にはまったく
興味がなくて、ただ画面を作れさえすれば ok という人たちもいる。
グラフィックデザイン系をベースにwebに流れてきた人たちの多くは
そんな感じ。システムのことはシステム屋さんにまかせます我関せず、
というスタンス。

もちろんそんな人たちばかりではないけどね。

898 名前:853 投稿日:04/07/28 22:44 ID:???
>>895
やってみました。確かにうまく行きました!ありがとうございます。
クリックしたとき、一瞬だけ点線の囲みが発生するようになりましたが、
それをどう評価するかだと思います。

>>896-897
あと、システム屋が抜けたあとも、デザイナーさんがCSSを変更する可能性が
ありますので、特定のデザインに依存するコードはまずいのです。

ただ、私がCSS をいじってよいパートもありますので、それに関係する質問を、
いま CSSスレで行っています。

大変ありがとうございました。

899 名前:Name_Not_Found 投稿日:04/07/28 22:57 ID:???
>>898
onMouseoverではダメだったんだっけ?
つか、まあ…視覚的に見せたいがためにJavascriptを使うサイトなら
tab移動が快適に出来ないとイヤンって人は来ないかw


900 名前:Name_Not_Found 投稿日:04/07/29 02:12 ID:???
DOMで子ノードの追加は出来るようになりました。
妹ノードと猫耳メイドノードの追加もしてみたいのですがどうすればよろしいでしょうか。

901 名前:Name_Not_Found 投稿日:04/07/29 02:24 ID:???
>>900
妹? 兄弟ならElement.parentNode.appendChildなりinsert何とかなり。
猫? 解らん。

902 名前:Name_Not_Found 投稿日:04/07/29 16:27 ID:???
>>891
次のようにルールの追加機能を使えば:hover等も大丈夫。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
</style>
<script type="text/javascript">
function test() {
var r = document.styleSheets[0];
if(r.insertRule) r.insertRule('a:hover { color: green }', 0);
else if(r.addRule) r.addRule('a:hover', 'color:green');
}
</script>
</head><body>
<p><a href="http://www.yahoo.com">Yahoo</a></p>
<p><a href="javascript: test()">test</a></p>
</body></html>

903 名前:Name_Not_Found 投稿日:04/07/29 18:45 ID:???
消えていたウインドウが、リンクにカーソルを合わせると
カーソルの側に現れる、というスクリプトを考えています。
kl_slx()/kl_sly()については、長すぎるスクリプトの上、
問題にはいっさい関係が無いので省略しました。
<html>
<head>
<script type="text/javascript">
interval = 20;
Ypos = 0;
Xpos = 0;
function kl_slx(){ return 0;}
function kl_sly(){ return 0;}
function ShowImg(fname, e){
scx = kl_slx();
scy = kl_sly();
if(document.all){
Xpos = e.clientX+scx;
Ypos = e.clientY+scy;
}else{
Xpos = e.pageX+scx;
Ypos = e.pageY+scy;

904 名前:Name_Not_Found 投稿日:04/07/29 18:50 ID:???

}
if(document.all){
doc = document.all("rw");
doct = document.all("rwt");
docd = document.all("rwd");
}
if(document.getElementById){
doc = document.getElementById("rw");
doct = document.getElementById("rwt");
docd = document.getElementById("rwd");
}
doct.innerHTML = "<img src=\""+fname+"\">";
docd.innerHTML = "";

doc.style.display = "block";
doc.style.left = Xpos +interval;
doc.style.top = Ypos +interval;
}

905 名前:Name_Not_Found 投稿日:04/07/29 18:52 ID:???
</style>
</head>
<body>
<dl id="rw" style="position: absolute; display: none">
<dt id="rwt">a</dt>
<dd id="rwd">a</dd>
</dl>
<a href="#" onmouseover="ShowImg('./test.jpg', e)">test</a>
</body>
</html>

906 名前:Name_Not_Found 投稿日:04/07/29 18:53 ID:???
</style>じゃない、

</script>でお願いします。

907 名前:Name_Not_Found 投稿日:04/07/29 19:06 ID:???
だから何?

908 名前:Name_Not_Found 投稿日:04/07/29 19:29 ID:???


で、これを作ったんですが、
IEでは動くのに、NN系で動きません。
NN系の処理分岐はしたにも関わらず・・・

色々調節したり調べたりしてのですが、
どこが問題なのか分かりません。

直して頂きたく・・

909 名前:Name_Not_Found 投稿日:04/07/29 19:33 ID:???
>>903-905
e が未宣言

>>908
誰?

910 名前:Name_Not_Found 投稿日:04/07/29 19:43 ID:???
>>909
>>908=>>902-906



またタイプミス
onmouseover="ShowImg('./test.jpg', e)"
→eじゃなくて、event

911 名前:Name_Not_Found 投稿日:04/07/29 19:49 ID:???
で。どうすれば・・・
いいんだあああああああああああああああああ

困った

912 名前:Name_Not_Found 投稿日:04/07/29 19:58 ID:???
window.eventはGeckoには無い。

913 名前:Name_Not_Found 投稿日:04/07/29 20:03 ID:???
>>912
どこどこ!?
<a href="#" onmouseover="ShowImg('./test.jpg', event)'"〜の「event」の事か?

・・・じゃあ、Geckoで使える代用を探してきます

もしかしたらまた聞きに来るかもデス
その節は宜しくお願いしますー

914 名前:Name_Not_Found 投稿日:04/07/29 20:08 ID:???
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
★                                             ☆
☆ 質問者が返信する時は名前欄に「最初に質問したレス番号」を入れろ ★
★                                             ☆
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

915 名前:Name_Not_Found 投稿日:04/07/29 20:22 ID:???
>>913
過去スレ見たらIEとGecko両方でイベント取る例は山のように
見つかるよ。つか、IEが(例によって)標準に従わないだけ
なんだけどね。

916 名前:903 投稿日:04/07/29 20:28 ID:???
>>915
うーん・・・

(´Д⊂できなひ
とりあえずやれることやってみましたがマルデ分かりません

助けて貰っていいですか?

917 名前:903 投稿日:04/07/29 20:33 ID:???
<html lang="ja">
<head>

<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-type" content="text/css">
<meta http-equiv="Content-Script-type" content="text/javascipt">

<link rel="Stylesheet" href="./thr.css" type="text/css">
<link rev="made" href="mailto:">

<script type="text/javascript">
<!--
interval = 20;
Ypos = 0;
Xpos = 0;
function ShowReW(num,e){
scx = kl_slx();
scy = kl_sly();
if (KL_IE4){
Xpos = e.clientX+scx;
Ypos = e.clientY+scy;
}else{
window.captureEvents(Event);
Xpos = e.pageX+scx;
Ypos = e.pageY+scy;
}


918 名前:Name_Not_Found 投稿日:04/07/29 20:33 ID:???
if(document.all){
doc = document.all("rw");
doct = document.all("rwt");
docd = document.all("rwd");
ret = document.all("t"+num);
red = document.all("d"+num);
}
if(document.getElementById){
doc = document.getElementById("rw");
doct = document.getElementById("rwt");
docd = document.getElementById("rwd");
ret = document.getElementById("t"+num);
red = document.getElementById("d"+num);
}
doct.innerHTML = ret.innerHTML;
docd.innerHTML = red.innerHTML;

doc.style.display = "block";
doc.style.left = Xpos +interval;
doc.style.top = Ypos +interval;
}

919 名前:Name_Not_Found 投稿日:04/07/29 20:34 ID:???

function DestroyW(){
if(document.all){
document.all("rw").style.display = "none";
}
if(document.getElementById){
document.getElementById("rw").style.display = "none";
}
}

function ShowImg(fname, e){
scx = kl_slx();
scy = kl_sly();
if (navigator.userAgent.indexOf('Fire') != -1 && navigator.userAgent.indexOf('MSIE') == -1){
Xpos = event.clientX+scx;
Ypos = event.clientY+scy;
}else{
Xpos = e.pageX+scx;
Ypos = e.pageY+scy;
}

920 名前:Name_Not_Found 投稿日:04/07/29 20:34 ID:???
if(document.all){
doc = document.all("rw");
doct = document.all("rwt");
docd = document.all("rwd");
}
if(document.getElementById){
doc = document.getElementById("rw");
doct = document.getElementById("rwt");
docd = document.getElementById("rwd");
}
doct.innerHTML = "<img src=\""+fname+"\">";
docd.innerHTML = "";

doc.style.display = "block";
doc.style.left = Xpos +interval;
doc.style.top = Ypos +interval;
}

//-->
</script>

<Style type="text/css">
dl#rw {
display: none;
position: absolute;
background: #ffc;
border: ridge 3px #ffe;
}

921 名前:Name_Not_Found 投稿日:04/07/29 20:35 ID:???

dl#rw dt {
margin: 0;
}
</style>

<dl id="rw">
<dt id="rwt"> </dt>
<dd id="rwd"> </dd>
</dl>


<dl>
<dt id="t1">testtitle</dt>
<dd id="d1">testdata</dd>
<dt id="t2">testtitle</dt>
<dd id="d2">
<a href="#t1" onmouseover="ShowReW(1,event)" onmouseout="DestroyW()">>>1</a><br><br>
<a href="./www2.health.ne.jp/library/3000/w3000653.jpg" onmouseover="ShowImg('./www2.health.ne.jp/library/3000/w3000653.jpg',event)" onmouseout="DestroyW()">http://www2health.ne.jp/library/3000/w3000653.jpg</a><br>
</dd>
</dl>
</body>
</html>

922 名前:903 投稿日:04/07/29 20:37 ID:???
こんな感じです。

・・・NNでも、ツールヒント風に表示されるところまでは
何とかなったんですが、
表示される位置が・・・何故かマウスの位置に合致しないんです

ちなみにkl_slx()とkl_sly()は、現在のスクロール位置を返す関数なんですが、
スクロールの有無に関係なく上記現象が起きるので、
関係は無いです。return 0な関数として考えてください・・・・・

923 名前:Name_Not_Found 投稿日:04/07/29 20:40 ID:???


また間違えた訂正前の張っちゃった
>>919
if (navigator.userAgent.indexOf('Fire') != -1 && navigator.userAgent.indexOf('MSIE') == -1){
は、
if (navigator.userAgent.indexOf('Gecko') == -1){
にしてあります。たびたびすみません。

924 名前:Name_Not_Found 投稿日:04/07/29 22:14 ID:???
あのさあ、1回に4レスも5レスも消費されたら大迷惑なんだけど。
アップロードしてURIを貼ってくれ。だいたい位置合わせなんて
イベントからマウスポインタ位置を取って来るのが定石だろ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function init() {
var l = document.getElementById('a0');
if(document.all) {
l.onmouseover = function() { handle(window.event, 'visible'); };
l.onmouseout =function() { handle(window.event, 'hidden'); }
} else {
l.onmouseover = function(e) { handle(e, 'visible'); };
l.onmouseout =function(e) { handle(e, 'hidden'); }
}
}
function handle(e, v) {
var s = document.getElementById('d0').style;
s.visibility = v;
if(e.x && e.y) { s.left = e.x + 'px'; s.top = e.y + 'px'; }
else { s.left = e.pageX + 'px'; s.top = e.pageY + 'px'; }
}
</script>
</head><body onload="init()">
<p><a id="a0" href="http://www.yaoo.com">Test...</a></p>
<div id="d0" style="position:absolute;visibility:hidden">X</div>
</body></html>

925 名前:Name_Not_Found 投稿日:04/07/29 22:51 ID:C085R5n1
<SCRIPT language="JavaScript">
<!--
function OpenWin(){
win=window.open("○○.htm","new","");
}
// -->
</SCRIPT>


<A href="javascript:OpenWin()">○○のページへ</A>
というサンプルは多いのですが、開きたいページが複数ある場合は、
上のスクリプトではダメですよね?
<A href・・の部分をどんどん増やしても、<HEAD>〜</HEAD>内に
window.open("○○.htm","new","");でURLを指定してしまっては
意味ないですよね(>_<;)

初歩的な質問で、すいません。
javascriptは初心者で・・CSSならわかります!
誰か優しい方、教えてください。。よろしくお願いします。

926 名前:903 投稿日:04/07/29 22:52 ID:???
>>924
ん・・・

<a id="a0"
ってすれば確かにそれで解決なんだが、そういうわけにも行かない事情がある

第一に、<div id="d0"をvisibleに変える<aが不特定多数ある。
(CGIでの出力になるため)

第二に、aのidに対応するdivのidが一定でない
まぁこれは不特定多数ある故の事情だな

だから、<a href="#" onmouseover="init()"のように、onmouseoverから呼び出しせざるを得ない
でも、window.eventとeの使い分けが何となく分かったので、頑張ってみる。
次はソースをアップロードするので・・・すみません。

927 名前:Name_Not_Found 投稿日:04/07/29 23:16 ID:???
>>925
別に初心者だとか何だとかは不要なんだけど。やりたいことを
ちゃんと説明して欲しい。もしかして窓を数枚一気に開くの?
それって迷惑そうだけどな…

928 名前:Name_Not_Found 投稿日:04/07/29 23:33 ID:???
>>925
一つの関数を使いまわしたいんだろ?
イメージとしてはこんな感じだ

function OpenWin(引数){
win=window.open("引数.htm","new","");
}


<A href="javascript:OpenWin(引数)">○○のページへ</A>


929 名前:925 投稿日:04/07/30 00:06 ID:cu/xgoDg
>>927
違います。リンクしたいページが、複数あるという意味です。
すみません。

>>928
そうです、使い回したいんです!
ありがとうございます。
でも、引数と関数が、いまいち理解できてなくて・・

例えば、
function OpenWin(){
win=window.open("image/a.htm","image/b.htm","new","");
}


<A href="javascript:OpenWin(image/a.htm)">○○のページへ</A>
<A href="javascript:OpenWin(image/b.htm)">○○のページへ</A>

これはおかしいですよね??
具体的に書くと、どう修正したらいいですか?
申し訳ないです。。

930 名前:Name_Not_Found 投稿日:04/07/30 00:09 ID:???
function openwin(uri) { win = window.open(uri, "new"); }
...
<a href="javascript:openwin('a.html')">a</a>
<b href="javascript:openwin('b.html')">b</a>

931 名前:Name_Not_Found 投稿日:04/07/30 00:22 ID:???
javascript: よりこっちの方が良くないか?

function OpenWin() { window.open('', 'pop', '...') }

<a href="hoge.html" onclick="OpenWin()" target="pop">

932 名前:903 投稿日:04/07/30 00:44 ID:???
ありがとうございました。
お陰で完成いたしました。

933 名前:925 投稿日:04/07/30 01:03 ID:cu/xgoDg
>>930,931
どうもありがとうございます!'pop'にしたら、すぐリンクできました。
あの、popでも、ウィンドウのサイズ指定できますよね?
javascript:の時と同じように、
<a href="hoge.html",200,300 onclick="OpenWin()" target="pop">
で、できますか?それとも、
width="" height=""でやった方がいいんですかね。。

934 名前:925 投稿日:04/07/30 01:08 ID:cu/xgoDg
あ、サイズ指定は、
function OpenWin() {
window.open('', 'pop', 'width=()+20 height=()+30') }
って、書いてしまった方がいいですかね?
度々すいません。


935 名前:Name_Not_Found 投稿日:04/07/30 01:23 ID:???
>>925
リファレンスサイト周って一から頑張っておいで

936 名前:Name_Not_Found 投稿日:04/07/30 04:51 ID:???
>925
まず自分で試してみた?

あと「わからない」ではなく「わかろうとする気がない」のは(・A・)イクナイ!!
引数と関数というヒントもらったんなら「わかりません」即答ではなく、調べたら?
しょーじき「わかんないしわかろうとする気もないならあきらめたら?」ってカンジー(ミャハ



937 名前:Name_Not_Found 投稿日:04/07/30 08:02 ID:???
教えてクンであることが明らかになった以上相手にする奴は
いないと思われ。

次スレは975超えたら立てる予定だけど、FAQはどうしますかね。
このスレで複数あった質問を入れて不要なのを抜いてとかしてみる?

938 名前:Name_Not_Found 投稿日:04/07/30 11:28 ID:???
FAQを用意しても読むやついないか、読んでも理解できない(しようとしない)で
質問してくるんじゃないかなぁ。

939 名前:Name_Not_Found 投稿日:04/07/30 11:58 ID:???
>>938
読まないで同じ質問した奴にはそのレス番/項番を指し示すだけで済むので
現スレで見るかぎり、それなりに効果あったと思いますけどね。理解できない
場合はその人の程度によって噛み砕いてあげるか無視か決めればいい。改訂案:

Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. document.write(...)でページ内容を追加したいのですが…
A3. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
 innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。
Q4. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A4. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるしかない。
Q5. Aタグのonclickで動作指定してるのですが時々動きません…
A5. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q6. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A6. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q7. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A7. 「document.forms.myform.elements[変数名].value」でどぞ。
 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
 例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。
Q8. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A8. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。
Q9. 100*1.15の結果が114.999…998となってしまうのですが…
A9. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。


940 名前:Name_Not_Found 投稿日:04/07/30 12:52 ID:???

750 名前:Name_Not_Found[sage] 投稿日:04/06/14(月) 14:09 ID:???
HTMLとCSSが理解できていない人には(DOMを操作することは)難しい

これもいれとけw

941 名前:Name_Not_Found 投稿日:04/07/30 13:03 ID:???
>>940 こうでつか。

Q10. 見よう見まねでHTML+CSSを書いてDOMで操作してますがうまく行きません。
A10. DOMでの操作はHTMLとCSSがきちんと理解できてない人には無理。勉強すれ。

942 名前:Name_Not_Found 投稿日:04/07/30 14:32 ID:TUtWN4xA
http://505i.nttdocomo.co.jp/product/
↑のサイトにあるフローティングメニューの動きを使いたいのですが
そのままスクリプトをパクると怒られそうなので、
どこかで同じようなギミックのスクリプトを提供しているサイトをご存じないでしょうか?
どうぞ宜しくお願い致します。

943 名前:Name_Not_Found 投稿日:04/07/30 15:10 ID:???
別にどーゆーふーにでも好きな風に動かしゃいいだろ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var e, c;
function init() { e = document.getElementById('d0'); c = 40; step(); }
function step() {
e.style.top = (100 + Math.floor(80*Math.sin(Math.PI*c/20))) + 'px';
if(c > 0) { --c; setTimeout(step, 20); }
}
</script>
</head><body onload="init()">
<div id="d0" style="position:absolute;background-color:yellow">Test</div>
</body></html>

944 名前:Name_Not_Found 投稿日:04/07/30 15:12 ID:???
>>942
関数にMM_・・・ってついてるからDreamweaverで作ったみたいだな。

945 名前:Name_Not_Found 投稿日:04/07/30 16:13 ID:???
>>942
どちらでもおなじこと。
参考にさせてもらうサイトの中の人が「ぱくりニダ!」って言わない
心の広い人であることを願おう。

946 名前:Name_Not_Found 投稿日:04/07/30 16:15 ID:???
2ちゃんの(このスレの)ソースだったら「ぱくりニダ!」と言い
出されることはないだろ。なにしろ匿名なんだから。

947 名前:Name_Not_Found 投稿日:04/07/30 18:48 ID:???
>>939
A9の
> 100*1.15の結果が114.999…998
はバグじゃないの?

948 名前:Name_Not_Found 投稿日:04/07/30 18:58 ID:???
>>947
ホレあんたもURL窓に次のをコピペして実行してみ。
javascript:alert(100*1.15)

949 名前:Name_Not_Found 投稿日:04/07/30 19:06 ID:???
FAQが役に立つことが実証されますた。

950 名前:Name_Not_Found 投稿日:04/07/30 19:18 ID:tdJL39B/
doubleだからな。
結局、システムが微妙に丸めてるもんな。

951 名前:Name_Not_Found 投稿日:04/07/30 19:22 ID:???
丸めてるせいで計算が常に正確なものと勘違いする厨房が後を絶たない。
かといって切捨て表示されるのも結構つらい。痛しかゆしだね。

952 名前:Name_Not_Found 投稿日:04/07/30 20:05 ID:???
で、姉貴の病み上がり、ってのも気にかかったので
姉貴はそのまま寝かせた。

布団も汗で濡れてたの綺麗になったし、
姉貴のベッドで。

昼飯食うのも何だか気恥ずかしかった・・・・

夕飯はチゲにしたよ病み上がりだし。
はふはふ食べる姉貴にまたちょっと・・・・やばくなった

キスしたとたんに姉貴が余計可愛く見えてしょうがない

953 名前:952 投稿日:04/07/30 20:07 ID:???
大誤爆万歳

954 名前:Name_Not_Found 投稿日:04/07/30 20:07 ID:???
この萌える話はなんですか?

955 名前:Name_Not_Found 投稿日:04/07/30 20:14 ID:???
だからコンピュータでの姉貴の計算は病み上がりで誤差がつきものだという…

956 名前:Name_Not_Found 投稿日:04/07/30 20:19 ID:???
>>952
うお!?なんでこれがあるんだ??

俺が投稿したわけじゃ無いけど、俺が出入りしてるスレのレスだ。。。

957 名前:947 投稿日:04/07/30 20:28 ID:???
そうか2進数の小数点以下は1/2、1/4、1/8でしか表せないのか。
ちょっと調べたらわかった。スマン。

じゃあこんな感じか?
Q9. 100*1.15の結果が114.999…998となってしまうのですが…
A9. JavaScriptは浮動小数点演算を行わないため。100*115/100とか工夫しろ。

958 名前:Name_Not_Found 投稿日:04/07/30 20:31 ID:???
>>957
おもいっきり行うじゃんか! 何いってんだヨ!

959 名前:947 投稿日:04/07/30 20:44 ID:???
まじかよ! 自分ですごく納得したのにヨ!

960 名前:Name_Not_Found 投稿日:04/07/30 20:55 ID:???
だからさ、1/2 1/4 1/8 …を単位とした数しか正確に表せない
のは「2進数の小数点つき数」すべてに共通する性質なんだってば。
少数点が固定小数点でも浮動小数点でも同じこと。

10進数で置き換えれば分かるだろ。10進数は 1/10 1/100 1/1000 …
を単位とした数しか正確に表せない。これは固定小数点表現
「xxx.xxxxxxxx」であろうと、浮動小数点表現「0.xxxxxx × 10^N」
であろうと変わりないわな。で、JavaScript言語の規格ECMA-262では
数の2進浮動小数点による扱いを行うことを定めている。

961 名前:名無しさん◎書き込み中 投稿日:04/07/30 21:28 ID:QkQpVo8n
JavaScriptを学ぼうと思って、詳解 JavaScript辞典
(www.amazon.co.jp/exec/obidos/ASIN/4798002224/qid=1090942418/ref=sr_8_xs_ap_i1_xgl/249-2767256-4991525)
を買いました。。

JavaScriptでゲームとか作れるのかな?とおもい調べたらJavaScrioptでテトリスが作れるそうです
www.tamagawa.ac.jp/GAKUBU/KOUGAKU/InfCEng/festa2002/7tet.html
これを全て覚えたら、上のようなゲームが作れるようになるのでしょうか?

962 名前:Name_Not_Found 投稿日:04/07/30 21:29 ID:???
よほどのセンスがないと無理。

963 名前:Name_Not_Found 投稿日:04/07/30 21:30 ID:???
7行の話ね。

964 名前:947 投稿日:04/07/30 21:42 ID:???
じゃあこんなのは便利?

function f(a,sisuu){
  if(!a.match(/^(\d+)\.(\d+)$/g)) return a;
  sisuu = sisuu ? 'e-' + RegExp.$2.length : '/' + Math.pow(10,RegExp.$2.length);
  b = "" + RegExp.$1 + RegExp.$2 + sisuu;
  return b;
}

f('3.1415926') → 31415926/10000000 → eval →↓
f('3.1415926',1) → 31415926e-7 → eval → 3.1415926

965 名前:Name_Not_Found 投稿日:04/07/30 22:06 ID:???
>>964
何に使うためのものなのか分からんのだけど…

966 名前:Name_Not_Found 投稿日:04/07/30 23:20 ID:YnKFl/ZQ
>>961
日本語が書けるのと、日本語で作文が書けるのでは別。
プログラム言語でもそれはいっしょ。

967 名前:Name_Not_Found 投稿日:04/07/30 23:24 ID:???
技術的な問題として聞いてるのに
センスがどうとか言い出すやつ、わけわかんね。

968 名前:Name_Not_Found 投稿日:04/07/30 23:37 ID:???
>>961
1KBくらいでテトリスとかぷよぷよとかJavaScirptで作っている人、いたよね。
出来るか、ときかれたら、

あんたの頭がすごく柔軟であらゆる必要なアルゴリズムを思いつければ

という条件付で、出来る。

969 名前:Name_Not_Found 投稿日:04/07/31 00:04 ID:???
>>968
確かにそうだ。

970 名前:947 投稿日:04/07/31 00:26 ID:???
>>948 >>950 >>951 >>958 >>960 >>965
遅れたけど返答ありがとう。

>>965
少数点を含む実数を文字列として解釈して、整数と整数(指数)に分けるスクリプト。
最終的な誤差は最低限に抑えられるかもしれない。
100*1.15 →114.99999999999998
eval("100*"+f('1.15')) → 115
回りくどいけど、ちゃんと 115 と出る。

// 要所要所でこんなの通す方が妥当だとは思うけどね・・・
function myround(x){
  x *= 10000000;
  mp3=Math.round(x);
  return x/10000000;
}

971 名前:Name_Not_Found 投稿日:04/07/31 00:35 ID:???
それはさあ、10進数で切りのいい数のみを扱っている場合
の話だろ。実際に任意の数値を計算する場合は無意味だよな。
途中で丸めまくったら累積誤差は増えるしね。数値解析の基本。
まあやりたければ好きにしたらいいと思うけど。

972 名前:Name_Not_Found 投稿日:04/07/31 01:36 ID:???
>>941
>勉強すれ。
で、親切にしてるつもりだろうけど、それじゃ全てのFAQにいえる事だから無意味だね

Q10. 見よう見まねでHTML+CSSを書いてDOMで操作してますがうまく行きません。
A10. HTMLとCSSがきちんと理解できてない人には(DOMを操作することは)難しい。

のほうが、ループ的で良い。

973 名前:Name_Not_Found 投稿日:04/07/31 07:48 ID:???
>>972 了解しました。もっかい貼ります。新スレではFAQは
テンプレに入れてしまっていい?本スレみたいにちょっと離す?
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. document.write(...)でページ内容を追加したいのですが…
A3. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
 innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Moz等)で対応済。
Q4. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A4. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるしかない。
Q5. Aタグのonclickで動作指定してるのですが時々動きません…
A5. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q6. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A6. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q7. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A7. 「document.forms.myform.elements[変数名].value」でどぞ。
 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
 例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。
Q8. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A8. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。
Q9. 100*1.15の結果が114.999…998となってしまうのですが…
A9. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q10. 見よう見まねでHTML+CSSを書いてDOMで操作してますがうまく行きません。
A10. HTMLとCSSがきちんと理解できてない人にはDOMでの操作は難しいですね。

974 名前:Name_Not_Found 投稿日:04/07/31 10:09 ID:PzIaz4A0
http://www.waseda.jp/top/index-j.html

こういうサイドメニュー切替えやりたいけど、
開設しているサイトや書籍ありますか?
JSで動いているはずですが・・・

975 名前:Name_Not_Found 投稿日:04/07/31 10:15 ID:???
>>974
別に普通のonmouseoverによるレイヤーの切替えでしょ? >>4 でも
勉強すればいいんじゃないの。


976 名前:Name_Not_Found 投稿日:04/07/31 10:16 ID:PzIaz4A0
ありがとうございます。

onmouseover、レイヤーの切替えでググって見ます。

977 名前:961 投稿日:04/07/31 10:32 ID:khIVtydK
>>966 >>968
なるほど…
辞典を暗記し、頭が柔軟なら作れるということですよね?

978 名前:Name_Not_Found 投稿日:04/07/31 10:34 ID:???
新スレ http://pc5.2ch.net/test/read.cgi/hp/1091236825/l50
>>977
もっと的確な表現「プログラミングの才能があれば作れる」。

979 名前:Name_Not_Found 投稿日:04/07/31 13:10 ID:???
>>977
>>978が凄く良いことを言った。と個人的には思う。
がそれじゃ
「○○でこんな凄いことが出来るそうですが、自分にも出来るでしょうか」
 −「才能があれば。」
でオワリなので一言。

ぶっちゃけあんたにゃ無理。
辞典囓って、って根性が甘い。
暗記するなんざ誰だって出来るんだよ。要は経験だ、経験。

とキモイ40代的偉そうな態度を取ってみる((((・_・)

980 名前:Name_Not_Found 投稿日:04/07/31 13:14 ID:???
聞かれた事に対して普通に教えりゃイイのに
糞みたいな虚栄心ちらつかせる辺りが、十分キモい。

981 名前:Name_Not_Found 投稿日:04/07/31 13:21 ID:???
経験なんか大してなくたって作れるようになっちゃう奴いるよ。
それってやっぱり才能としか呼びようがないものだと思うなあ。

982 名前:Name_Not_Found 投稿日:04/07/31 14:44 ID:???
>>981
おもしろい文章を書ける人は、
コード書くのもうまい傾向がある。
どっちも使う脳みそが一緒だからか。

983 名前:Name_Not_Found 投稿日:04/07/31 14:47 ID:v2M0PIEN
業務でもシステムは経験が第一とか言ってる3〜40代って使えないのばっかりだしね。
経験浅くてもできるやつはいっぱいいる。
でも、結局は己次第。

984 名前:まーちゃん 投稿日:04/07/31 14:52 ID:AQcidDg5
今、WEB構築してるんだけど…
解像度に合ったウインドウサイズの変更ができないんです〜(T_T)
1024×768のサイズを基本にしたいんですが…

985 名前:Name_Not_Found 投稿日:04/07/31 15:14 ID:???
>>984
勝手に窓のサイズを変えるな。サイテーに嫌われるぞ。ユーザの
ブラウザはアンタの持ち物じゃないんだヨ!

ちなみに新スレ http://pc5.2ch.net/test/read.cgi/hp/1091236825/l50

986 名前:まーちゃん 投稿日:04/07/31 15:22 ID:AQcidDg5
でも…レイアウトがめちゃくちゃになっちゃうんだもん(T_T)
1024×768だとセル幅がきれいに合うんだけど、
それ以外だとはみでたり、足りなかったり…


987 名前:Name_Not_Found 投稿日:04/07/31 15:29 ID:???
>>986
論外だな、初心者スレへ逝け。ここでは絶対誰にも相手してもらえない。
>・ユーザーに迷惑となるスクリプトを書かない者


988 名前:Name_Not_Found 投稿日:04/07/31 15:42 ID:v2M0PIEN
何のためのスクロールバーなのか…。
何のためのわいずなのか…。

989 名前:Name_Not_Found 投稿日:04/07/31 15:58 ID:???
わいずって書くとなんだかやらしい響きだよな。

990 名前:Name_Not_Found 投稿日:04/07/31 16:03 ID:gp1G2wx3
>>983
んー、蓄積された知識を有しているとか、精神的な打たれ強さを形成しているとか
いう点を考慮すれば経験は大事だよ。経験が実になっている人間なら、多少のスキル
不足は克服できるから。経験が実にならないのは、自分のスキルに溺れて学ぶ姿勢を
怠った人間に多い気がするな。>979の言うのは、学ぶ姿勢込みの経験なわけだから
>981の指摘は的を外していると思うし、そういう人間はこのスレに頼らない罠…

>>984
レイアウトが合わないって時は、安易に窓のサイズを変えるよりも、まずレイアウトを
崩してしまうパーツを特定して、例えば文章ならフォントサイズ、改行方法を見直す
とかすべきかと思います。サイズを固定するなら、800*600程度までにしとかないと
1024×768だと画面全体に広がってしまいエロサイトみたいですよw
業務アプリのGUIを構築してるとか言う特殊な事情なら別だがね。


991 名前:Name_Not_Found 投稿日:04/07/31 16:08 ID:???
補足、1024X768でも画面全体に広がる環境もあるという事ね(わざわざ補足も不要と思うが)

#まあ、1280X1240も今時のデスクトップでは珍しくないが…


992 名前:Name_Not_Found 投稿日:04/07/31 16:09 ID:???
>>990
まずは前半は「ゲーム作り」の話なんだろ。経験とか打たれ強さとか言われても…
後半はもはやJavaScriptスレの話題じゃないよな。

ちなみに新スレ http://pc5.2ch.net/test/read.cgi/hp/1091236825/l50


993 名前:Name_Not_Found 投稿日:04/07/31 16:44 ID:???
>>992
どう読めば、>979,981-983,990と読んでゲーム作りの話になるのか意味不明。

あと、どこから前半後半なのか指示してくれないと解んない。




994 名前:Name_Not_Found 投稿日:04/07/31 17:02 ID:???
だって元がこれでしょ >>961
> JavaScriptでゲームとか作れるのかな?とおもい調べたらJavaScrioptでテトリスが作れるそうです
> www.tamagawa.ac.jp/GAKUBU/KOUGAKU/InfCEng/festa2002/7tet.html
> これを全て覚えたら、上のようなゲームが作れるようになるのでしょうか?

もちろん >>990 だったら空行で2つに分けられてるように見えるけど違うの?

995 名前:Name_Not_Found 投稿日:04/07/31 17:07 ID:???
>>994
>979,981-983,990までゲーム作りの話じゃないし>979も精神論をぶつオヤジと
前置きしてるから今更JSと関係あるなしの指摘は筋違い。
流れを読んでレスしてくれよな。

996 名前:947 投稿日:04/07/31 17:08 ID:???
>>971
数値解析で言うと計算順序で誤差を抑えられるじゃないですか。
それを考えてたんです。

しかし1.1*1.1の結果が
1.2100000…0002から
1.2100000…0001に変わったとしても意味無さそうですね(´・ω・`)
スレが変わらないうちに名無しに戻ります。

みなさまどうもありがとうございました。

997 名前:Name_Not_Found 投稿日:04/07/31 17:10 ID:???
後半云々については、元コメントを辿るなら解決策がJSとは関係無い
という事を指摘する以外のレスにしかならないと思う。
(もっとも、動的にフォントサイズを変えるようにするなどの対策は可能だな)

998 名前:Name_Not_Found 投稿日:04/07/31 17:10 ID:???
1000!

999 名前:Name_Not_Found 投稿日:04/07/31 17:11 ID:???
ズサーげと

1000 名前:Name_Not_Found 投稿日:04/07/31 17:11 ID:???
1000

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


戻る

偽Dat2HTML LO v1.0b13 Converted.
無料レンタル無料ホームページ無料オンラインストレージ