+Javascriptの質問用スレッドvol.40+at HP
+Javascriptの質問用スレッドvol.40+ - 暇つぶし2ch103:Name_Not_Found
05/08/19 07:00:31 sOmwPdmF
全くの初心者で恐縮なのですが、一点質問させてください。

今、商品紹介ページのようなものを作成しています。
そのページで見せる画像についてなんですが、

ひとつの大きな画像(450*338pix)と、その下に複数のサムネイル画像(100*75pix)があり
サムネイル画像にマウスを乗せる、もしくはクリックすると上の大きな画像が切り替わるという
仕組みを作りたいと思っています。

幾つかのサンプルサイトを探しましたが、残念ながら該当するものが見つかりませんでした。
そこでこのような仕組みをご存知の方がいらっしゃいましたら教えていただけると幸いです。

104:Name_Not_Found
05/08/19 08:13:48
>>103
document.images[0].srcとかでググると沢山でてきます。


105:Name_Not_Found
05/08/19 08:42:35 sOmwPdmF
>>104
有難うございます。早速調べてみます。

106:Name_Not_Found
05/08/19 15:22:20
ほんとに見たのか世

107:Name_Not_Found
05/08/19 17:13:29
初歩的な質問で申し訳ないのですが
HTML上で

<SCRIPT SRC="URLリンク(www.XXXXXX.jp)" language="JavaScript"></SCRIPT>

このように記述してるものをjavascript上で実行する場合の記述方法をお教え願います。



108:Name_Not_Found
05/08/19 17:44:05
>>107
わかりやすく。

109:Name_Not_Found
05/08/19 18:07:09
>>107
そのHTMLにSRCの内容がその行に挿入されたと同じと思え。

110:Name_Not_Found
05/08/19 18:14:08
あー
document.writeすればいいのか。
さんくす>>109


111:Name_Not_Found
05/08/19 18:20:59
>>107
URLリンク(www.XXXXXX.jp)
の中身は見てみたの?
ただの js ファイルだと思うけど。

112:Name_Not_Found
05/08/19 18:35:46
>>110
ええー!?何がさんくすなんだよ!
微妙に変に伝わっちゃってるよ><

113:Name_Not_Found
05/08/20 17:35:57
>>107
おまえの前の話題を欲嫁。

114:Name_Not_Found
05/08/21 02:15:19 m75hJfiz
ランダム関数関連なのですが。

4つある画像を更新毎にランダム表示し、一度表示された画像は一巡するまで表示しないというスクリプトを書きたい。

ランダムに表示する所までは調べ調べ書いたのですが、その後の一度表示したものは再度選ばないという部分がどうしてもわからず。。
どなたかご存知でしたらご教示ください

<script language="JavaScript">
var imglist = new Array(
"1.jpg",
"2.jpg",
"3.jpg",
"4.jpg" );
var selectnum = Math.floor((Math.random() * 100)) % imglist.length;
var output = "<img src=" + imglist[selectnum] + ">";
document.write(output);
</script>

115:Name_Not_Found
05/08/21 02:35:39
>>114
画像のアドレスを配列にして、選んだときに配列から削除。
ランダムは配列の数から計算すれば動的に指定可能。
全て表示し終わると配列を初期化して繰り返し。

116:Name_Not_Found
05/08/21 02:49:47
更新毎とあるから、要はページ移動間でどうやって既選択分を覚えておくかって話しでない?
Cookie使うくらいしか思いつかないけれど。

117:Name_Not_Found
05/08/21 03:11:56
random.html?2+10+5+3
           ↑閲覧済みの画像番号

118:Name_Not_Found
05/08/21 03:16:10
すいません。
オブジェクトが持つ要素が分からなくて困っているのですが、
オブジェクトの要素を列挙する方法ってありますでしょうか?

例えば、
tags = document.getElementsByTagName('a');
for (var i in tags) { document.write(dir(tags[i])); }
で、
"href", "onmousedown", ....

って感じのやつです。

119:Name_Not_Found
05/08/21 07:11:05 C0iqX79v
いろんなサイトのソースを見ると
function MM_swapImgRestore() { //v3.0
っていうのをよく見かけるけど、これ何?

やってることは何となくわかるけど、なんでみんな同じの使ってるの?
バージョン3って?誰が書いたものなの?

120:Name_Not_Found
05/08/21 07:28:12
Dreamweaverだったかを使ってロールオーバーを設定するとそんな名前の関数がhtmlに挿入される。

121:119
05/08/21 07:43:05
>>120
なるほど、ソフトの仕業か。

結構いろんな公式サイトでも見かけるってことは、プロもDreamweaver使ってんだな。
もっとマシなロールオーバーの方法はいくらでもあると思うけど…

122:Name_Not_Found
05/08/21 10:47:06
>>118
っ[URLリンク(www.keynavi.net)

123:118
05/08/21 14:09:58
ありがとうございます。
目標達成です。

124:Name_Not_Found
05/08/21 20:07:59

フォトギャラリーを作っています。数百枚の画像ページがあるので、次のhtmlに移動したり、戻ったりするために
←Back Next→
などをスクリプトでやろうと考えています。(example_001.html などのファイル名)

現在のファイル名を取得し、連番の数字(001)を抜き出すことはできました。以下です

var path=window.location.href;
var file=path.substring(path.lastIndexOf('/',path.length)+1,path.length);
var num=file.substring(file.indexOf("_")+1,file.indexOf("."));

この数字に対して、

var number=eval(num)
var back=(number-1);
var next=(number+1);
document.write("example_");
document.write(back);
document.write(".html");

とすると、連番数字の冒頭の「00」が抜けてしまい、困っています。
document.write("00");
を追加しても、「example_015」などのように、桁があがれば当然対応できません。

良い方法があればご教示ください。長文失礼しました。





125:Name_Not_Found
05/08/21 20:14:12
先頭に00つけて後ろ3桁を取り出す

126:124
05/08/21 22:16:34
とても助かりました!ありがとうございました。


127:Name_Not_Found
05/08/22 07:58:22 1N2rthzY
例えば↓のようなコードがあったとして
--
<span id="a" onclick="alert()">c</span>
--

クリックしたときに、その要素の id 属性を参照して 上の例では「a」 と表示
するようにするには、alert() の引数はどのように書けばいいでしょうか

128:Name_Not_Found
05/08/22 08:07:09
this.id

129:Name_Not_Found
05/08/22 08:13:55
>>128
スバラシイ できた サンクス

130:Name_Not_Found
05/08/22 12:31:29 3Ia+tGB4
ページが読み込まれた時に、CSSのレイヤーを1秒だけ表示させて消す
という事をしようと思っています。
初心者スレで3日ほど前に質問させて頂いたところ、setTimeoutを組み合わせるとの
事だったのですが、本を読んでもさっぱりわからなくて困っています。
似たようなサンプルを探していたのですが、setTimeout Javascript サンプル というキーワードでぐぐっても
”レイヤーを消す(表示させなくする)”という方法がわからないのです。

以下が自力で書いたものです。2行ですが…
<SCRIPT LANGUAGE = "JavaScript">
<!--

var test;
test = ("<div id='test' style='background-color:gray; position:absolute; left:110px; top:110px; width:300px; height:300px; z-index:1;'>テストです</div>");

//-->
</SCRIPT>

onLoadとsetTimeoutを使うのでしょうが、どうかけばいいのか…というレベルです。
「こう書け」、「ここを参考にしろ」でも構いませんので、よろしくお願いいたします。

131:Name_Not_Found
05/08/22 12:47:57
>>130

<html>
<head><script type="text/javascript"><!--
function init(){
document.getElementById('test').style.visibility='hidden'
}
//--></script></head>
<body onload="setTimeout('init()', 1000);">
<div id='test' style='background-color:gray;position:absolute;left:110px;top:110px;width:300px;height:300px;z-index:1;'>
テストです</div>
</body>
</html>

132:130
05/08/22 12:57:12
>>131
ありがとうございます!即答していただいて、びっくりしています。
書いてあるものを見れば、あーこうやるんだってわかるんですけど
自分で書くとなると全く別ですね… 

Javascriptって結構面白いですね。今後、少しづつ勉強していきます。
本当にありがとうございました。

133:114
05/08/22 14:04:10 nNrvG3gf
114です。ありがとうござります。
みなさんの指摘通り本かってきていじくっていたのですが、
こまったことに、配列から要素を削除するpopなどのメソッドが
Macで使用できない事に気づきました。MacのIEは5.2までですが
pop()やshift()などの削除系メソッドは5.5からの対応。。。
みなさんはどう対応しているのでしょうか?
ただ、クリックすると4つの画像をランダムに表示するが、
一度表示された物は一巡するまで表示されない。というスクリプトが書きたいだけなのです!!
ただしMacの最新?IE(5.2)でみれないとなのですが。
ほかによい方法や、サイトなどがあればどなたかご教示ください。

現在のスクリプトです。
サンプルの外部ファイルを使って配列をシャッフルしています。
まずは外部ファイルから乗せます。


134:114
05/08/22 14:04:56 nNrvG3gf
まずは外部ファイルから乗せます。

function shuffleArray(ar,num){ //配列シャッフル。arは配列名。num回数。
var dummyArray=new Array(ar.length);
var l,m,n,o,p;
for(var i=0;i<num;i++){
l = (Math.round(Math.random()*10000))%(ar.length);
m = (Math.round(Math.random()*10000))%(ar.length);
n = Math.max(l,m); o=Math.min(l,m);
p=0;
for(var k=o;k<n;k++){
dummyArray[p]=ar[k];
p++}
for(var k=0;k<o;k++){
dummyArray[p]=ar[k];
p++}
for(var k=n;k<ar.length;k++){
dummyArray[p]=ar[k];
p++}
for(var j=0;j<ar.length;j++)ar[j]=dummyArray[j];
ar.reverse();
}
return ar;
}

135:114
05/08/22 14:06:05 nNrvG3gf
htmlです

<script type="text/javascript" src="arrayshuffle.js">

var test = new Array();
test[0]= "img/d1.gif";
test[1]= "img/d2.gif";
test[2]= "img/d3.gif";
test[3]= "img/d4.gif";

test = suffleArray(test, test.length);

document.write(test.pop() );
</script>

136:Name_Not_Found
05/08/22 14:07:26 T+kIweCg
リンクテキストの上にマウスポインタを乗せると、別の場所の画像が切り替わるということをすることは可能なのでしょうか?
また、その方法を教えてください。

137:114
05/08/22 14:08:43 nNrvG3gf
ageてしまた。スマソ
以上ですだれかおわかりになりましたらおたすけくださ

138:Name_Not_Found
05/08/22 14:27:02
>>137
____       ________             ________
|書き込む| 名前: |            | E-mail(省略可): |sage           |
 ̄ ̄ ̄ ̄        ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄              ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                              ∧ ∧  。  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                              ( ゚Д ゚) / < ここに「sage」(半角)と
                               ⊂ つ    | 入れるとスレがあがらない。
                            | ̄ ̄ ̄ ̄ ̄|   \_____________
                            |          |
                            |          |
                       | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|

139:114
05/08/22 14:43:19 nNrvG3gf
>>138
了解。。

140:Name_Not_Found
05/08/22 14:47:35
>>133
foo をもとからある配列として、値が"var"を消す。

var tmp = new Array();
for(var i=0 ; i<foo.length ; i++){
if(foo[i] != "var") tmp.tmp.length = foo[i];
}
foo = tmp;

てなことを昔はやっとりました。

141:Name_Not_Found
05/08/22 14:47:41
>>133
Mac IEとWin IEは別物なんでWinIE 5.5未満で実装されて
いなかった機能が現在のMacIEで使えないとは必ずしも
言えないよ。

そんなのより複数レス連続で貼るのやめてくんない?

142:Name_Not_Found
05/08/22 14:49:01
× tmp.tmp.length
○ tmp[tmp.length]

すまそすまそ。

143:Name_Not_Found
05/08/22 14:53:51
>>136
さんざん既出なんだけど…問題を切り分けて考えよう。

1. マウスポインタを乗せると
 onmouseover属性を使うなり、イベントモデルを使うなりする
2. 別の場所の画像が
 img要素にidやnameをつけてgetElementByIdするなりImage[name]なりでアクセス。
3. 切り替わる
 2のimgのsrcを希望のものと入れ替える

自分なりに調べてわかんないところがあったらまた質問してください。
 

144:Name_Not_Found
05/08/22 15:06:07
>>136はさっき、CSS質問スレッドで質問してたなwwwwwwwwww
Welcome!

145:Name_Not_Found
05/08/23 11:09:59
>>121の言うましなロールオーバーの記述を見てみたいもんだ

146:Name_Not_Found
05/08/23 13:29:03
Javascript&DHTML の組み合わせで、マウスでドラッグすることで2つの行を入れかえる、
といった派手で動的なサンプルが紹介されていたページがあったのですが、アドレスの
わかる方はいらっしゃいますか?

英語のページです。

147:Name_Not_Found
05/08/23 17:22:12
それくらい自分で作れるようになるためにあるのがこのスレ

148:Name_Not_Found
05/08/23 18:46:35
>>133
連想配列でフラグ立てたり、popとかを自前で作るなり、方法はいろいろあるでしょー。

149:Name_Not_Found
05/08/23 19:36:42
>>133

Array.prototype.pop = function()
{
var ret = this[ this.length - 1];
delete this[ this.length -1 ];
--this.length;
return ret;
}

でだめなんか?

150:Name_Not_Found
05/08/24 02:03:06
何故技術書は肝心の所を書かないのか
スレリンク(php板:401-番)

にて 2ch 発の技術書企画が進行中です。
主に Web 開発・運営に付いてのノウハウが集められる予定です。
興味のある方・我こそはと思う方は一度覗いてみてください。

151:Name_Not_Found
05/08/24 20:09:08 rqVxgMSq
やりたいこと
 ・HTML画面で参照ボタン押してファイル選択ダイアログで選択したローカル端末の画像を表示させたい。
 ・できればほとんどのブラウザで機能するようにしたい。最低でもIE、ネスケ、Firefoxの3つはOKにしたい。
<input type="file">で選択したら値を<img>タグのvalueにつっこんだら動くかなーってやってみたら、
ブラウザによって表示できたりできなかったりでよくわからんようになってきてます。
どなたかご存知の方ご教授ください。

152:Name_Not_Found
05/08/24 21:02:10
>>151
まず<img>のvalueじゃなくsrcだよなー。
type="file"のvalueを取得した後alert(...)で表示してみ。そこの
可否がブラウザによって違うだろうと予想するが。で、もしそうなら、
セキュリティ制約だからどーにもならんだろう。そうじゃないのなら
表示される値の様子で適宜対応可能と思われ。

153:Name_Not_Found
05/08/24 21:49:17
Firefoxでフォーム上の画像をクリックした時、クリックされた画像内座標を取得するにはどうしたらよいでしょうか?
IEだとwindow.event.offsetX,window.event.offsetYで得られる値です。

154:Name_Not_Found
05/08/25 00:05:57
みなさん、がんばって夏厨に手とり足とりですか?
ゴクロウサマです。一応暑中見舞いということで、また落ち着いた頃来ます。

>138
いいね。これからそれでいこうか?

155:Name_Not_Found
05/08/25 01:11:50
>>154
永久に来んでええぞ、ショボイ汚物。

156:Name_Not_Found
05/08/25 03:05:13
>>153
イベントに割り当てられた関数の引数 (arguments[0]) として
Event オブジェクトが渡される。
インラインスクリプトなら仮変数名 event で参照可能。

Mozilla の Event オブジェクトには offsetX や offsetY はないので
自力で計算する必要がある。
例えば event.pageX - event.target.x
このままの式では border や padding を含めた値になるので
正確に算出したければもう少し工夫してくだされ。

157:Name_Not_Found
05/08/25 09:35:24
>>156
event.target.xで値が取れません。
event.target.nameとすると該当オブジェクトのname値が得られるので使い方は間違っていないと思うのですが。


158:Name_Not_Found
05/08/25 11:52:17
>>157
event.target は img 要素 (HtmlImageElement) ですか?
そうでなければ x プロパティはないので、代わりに offsetLeft を
使ってください。

offsetParent が body でない場合は、offsetParent が body に
なるまで offsetLeft を順に加算していかないといけないようです。

159:Name_Not_Found
05/08/25 11:58:57 RSe5lFC0
>>152
やっぱりブラウザ毎に調査して編集したりしないとダメですかねー。
色々試してみます。

160:Name_Not_Found
05/08/25 15:15:37 8vf5tQ1b
表紙→サイト内の他ページ→表紙 と戻ると
表紙に施した、画像をランダムに変えるjavascriptが効かなくなるのですが
なにか対処法はないのでしょうか。
むかし何かで読んだ気がするのですがどうしても思い出せません。

WinXP + IE6 です。


貼ったソースはこれです。

<script language="JavaScript" type="text/javascript">
<!--
var n = Math.floor(Math.random()*30);
document.write("<img src=URLリンク(domain)"+n+".png width=148 height=111 border=0>");
//-->
</script>

161:Name_Not_Found
05/08/25 15:34:18
>>158
できました。ありがとうございます。

162:Name_Not_Found
05/08/26 11:23:29
>>160
windowのonloadのタイミングで動かしたらいいんでないの?
MacIEだと多重起動するかもしれないから注意しつつ。

163:Name_Not_Found
05/08/26 19:33:50 4kDk2Epj
100枚ほどある画像を、Javascriptで配列化しシャッフルして表示するサイトを
つくったのですが、キャッシュのせいで、更新したはずの画像が更新されなかったりします。おそらく,
var arrImage1 = new Array();
arrImage1[0]= "img/001.jpg";
arrImage1[1]= "img/002.jpg";
arrImage1[2]= "img/003.jpg";
      |
arrImage1[100]= "img/100.jpg";

と配列を組み、更新時サーバーにこの連番画像を上書きするだけで
更新できるサイトをつくろうとしたのが原因かと。。。

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<meta http-equiv="expires" content="0">

なども試したのですが効果ナシなしでした。
良い方法はあるでしょうか?


164:Name_Not_Found
05/08/26 20:02:20 btPQUHXY
どなたか教えてください。

javascriptでinnerHTMLで書き換えたものを
リロードしても保持するにはどうしたらよいでしょうか?

もし無理ならinnerHTML以外に書き換える方法ってありますか?

よろしくおねがいします。

165:Name_Not_Found
05/08/26 20:07:00

教えていただきたいのですが、
nameやpropertyなどまったく同じなボタンが何個かあります。
何番目のボタンがクリックされたか判定する方法はありますか?


<input type="text" name="a" value=""><input type="button" name="b" value="削除">
<input type="text" name="a" value=""><input type="button" name="b" value="削除">
(textボックスと削除ボタンがずっと続く。)

nameやidに連番を振りたかったのですが他の事情でちょっと無理なので、その方法は無しで考えたいです。


やりたいことは、何番目の削除ボタンが押下されたら、何番目のテキストボックスのvalueをクリアしたい、ということです。


166:Name_Not_Found
05/08/26 20:11:14
ソース腫れ>165

167:Name_Not_Found
05/08/26 20:23:05 /QcQHkxx
フレーム1 自サイト
フレーム2 他サイト の時…

フレーム1からフレーム2のフォームに値を渡すのはできないんでしょうか?
セキュリティの問題?

168:Name_Not_Found
05/08/26 20:23:25
>>165
document.forms[0].elements[0].value='';

169:Name_Not_Found
05/08/26 20:32:56
>>163
ブラウザのキャッシュは削除してみたの?

ところで JS と微塵も関係ないと思うんだけど。

170:Name_Not_Found
05/08/26 20:33:39
>>167
XSS になるのでどうがんばってもできません

171:Name_Not_Found
05/08/26 20:35:05
>>163
画像のパスに"?"とnew Date().getTime()をくっつけてみて
ランダムな数字でもよか

172:Name_Not_Found
05/08/26 20:36:27 /QcQHkxx
>>170
やっぱり… orz

173:165
05/08/26 20:41:44
<table>
 <TR>
  <TD>
   <INPUT type="text" name="data" value="">
   <INPUT type="button" value="削除" onclick="deleteData();">
   <INPUT type="hidden" name="mode" value="">
   <INPUT type="hidden" name="date" value="">
  </TD>
 </TR>
 <TR>
  <TD>
   <INPUT type="text" name="data" value="">
   <INPUT type="button" value="削除" onclick="deleteData();">
   <INPUT type="hidden" name="mode" value="">
   <INPUT type="hidden" name="date" value="">
  </TD>
 </TR>
(<TR>から</TR>まで同じのが多数繰り返し。実際はjspでforを用いて書いてます)
</table>
deleteDataをクリックしたときに、data、mode、date(他にもhiddenがいっぱいあります。)
をクリアしたいです。
ほかで、追加ボタンをクリックすると、<TR>から</TR>を追加したりするので、
連番を振るのが難しいです。
なので、削除ボタンをクリックしたときに、クリックした削除ボタンが何番目か解ったら、
168さんが書いたようにdocument.forms[0].data[n].value=''; が使えると思ったんです。
現状この"n"がわからないので困ってます。

174:Name_Not_Found
05/08/26 20:43:41
>>164
書き換えるパターンが多くないのなら
パターンを識別する情報を URL の query 部分に付加するとか

175:Name_Not_Found
05/08/26 20:46:08
>>164
innerHTMLでの変更内容をクッキーでも覚えておき、リロード
された時クッキーを見て同じ変更を施す、とかな。作るとなると
変更の内容によっては面倒だろうけど。

176:Name_Not_Found
05/08/26 20:47:39
>>173
そのソース
漏れの脳内ブラウザではまともに動かないみたいだ

個別に form に入れるんじゃダメなの?

177:Name_Not_Found
05/08/26 20:49:11
>>167
そのフォームを処理するCGIがよそからの提出を受け入れるのなら、
そのフォームと同じものをこちらで用意して提出するとかかな。
>>170
なんでXSSになるのか分からないんだけど説明してみて。

178:Name_Not_Found
05/08/26 20:49:26
>>175
クッキーは全体での容量制限があるから
あまり長い文字列を覚えさせて
ほかのクッキーを逼迫するようなコードは感心しない

179:Name_Not_Found
05/08/26 21:00:21
>>171
"?"/new Date()/getTime()/
は配列の部分のパスにそれぞれ指定していいものか?
>>175
禿同



180:164
05/08/26 21:08:14 btPQUHXY
みなさん、ありがとうございます。

innerHTMLで書き換えるのは全部で500行ほどです。
(ボタンをクリックするとテーブル行をどんどん増やしていく感じなんですが、
上限値がかなり大きいため。)
これをクッキーで保持してもOKでしょうか?

あと、考えたのは、
URLリンク(www.makoto3.net)
userData Behavior というのを使う方法です。
今日はじめて知ったので、ちょっと不安なんですが。

181:178
05/08/26 21:16:02
違った
一つのクッキーが 4kB までだった
ほかにもいくつか制約がある

URLリンク(wp.netscape.com)

182:Name_Not_Found
05/08/26 21:29:14 Wqgbia6k
>>173

function deleteData()
{
  this.previousSibling.value = '';
  this.nextSibling.value = '';
  this.extSibling.nextSibling.value = '';
}

は?

183:Name_Not_Found
05/08/26 21:29:57
>>173
onclick の所を "deleteData(this);" として関数を所有する
オブジェクト (この場合は HtmlInputElement オブジェクト) を
渡したらどうですか?

deleteData 側では受け取った引数を元に DOM の親子関係で
クリアする要素を決められるかと思います。
例えば parentNode の childNodes で兄弟ノードが列挙できます。

184:171
05/08/26 21:55:09
>>179
どの画像が更新されたかわからないなら全ての画像パスにアレしないと
キャッシュ読みにいってしまうよ。

>>164
window.nameに文字を保存することが可能。
そのwindowが閉じられるまで内容を引っ張りまわせる
クライアントサイドのセッションみたいな使い方できる

容量制限とか無いっぽい。NN4でも有効だったような。
細かい検証はしてないごめん




185:173
05/08/26 22:14:50
>>182-183
どうもありがとうございます!
deleteData(this)にして、

function deleteData(obj)
{
  obj.previousSibling.value = '';
  obj.nextSibling.value = '';
  obj.extSibling.nextSibling.value = '';
}
でやってみたんですが、
obj.previousSibling.value はundefindedになってしまいました。
nodeNameだと#textになるので、位置の取得はできてるっぽいのですが、
valueが取得できません。
ちなみにnodeValueだと空白でした。

もうちょっと考えて見ます。




186:Name_Not_Found
05/08/26 22:23:08
171>>
ありがとうございます。
うーむ。書き方が間違っているらしく動かにゃい。
スマソ。何でもよいのでアドバイスをください。
var arrImage1 = new Array();

arrImage1[0]= new Date().getTime()."img/001.jpg?";
arrImage1[1]= new Date().getTime()."img/002.jpg?";
arrImage1[2]= new Date().getTime()."img/003.jpg?";
arrImage1[3]= new Date().getTime()."img/004.jpg?";
arrImage1[4]= new Date().getTime()."img/005.jpg?";
arrImage1[5]= new Date().getTime()."img/006.jpg?";
arrImage1[6]= new Date().getTime()."img/007.jpg?";
arrImage1[7]= new Date().getTime()."img/008.jpg?";
arrImage1[8]= new Date().getTime()."img/009.jpg?";
arrImage1[9]= new Date().getTime()."img/010.jpg?";

逝ってきまつ。

187:Name_Not_Found
05/08/26 22:34:50
>>185
<input> の間に空白がある。
name が付いてるんだから parentNode.childeNodes の方が簡単。

>>186
arrImage1[0] = "img/001.jpg?" + (new Date()).getTime();
いちいち全部書かずに for 使えよ。

188:173
05/08/26 22:51:00
>>187

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

189:vvm-man
05/08/27 04:21:42
JavaScriptで作ったノベルツールなんですが。
おまいらに動作テストしていただきたい。
普段はゲ製作にいるんだけど、人少ないうえ、あんまし興味ないっぽくて動作検証してもらえないんだ……orz。

当方ドザですので、林檎ブラウザ、とくにサファリでの動作が気になります。
Windowsなら最新のブラウザのほとんどで動作可能。
ただし、Mozillaは偽ウィンドウのバッテン無効なので、ウィンドウ本体の閉じるボタンを押してあげてください。
MacはIEでなら動くとの報告。
前のテストの後、調整を加えたので、他の林檎ブラウザでも動くようになったかもしれないです。(望み薄)

起動と同時に全画面支配するので気をつけてください。
URLリンク(f58.aaa.livedoor.jp)
で速攻落ちする人(Macネスケでその報告あり)とか、いきなり全画面は嫌な人、あとポップアップブロックを設定してる人は

URLリンク(f58.aaa.livedoor.jp)
で試して。

ウィンドウだけが表示されて動かない人は、一分だけ待ってみてください。
シナリオファイルの読み込みに時間食ってるだけかも知れないです。

動作報告は動作の是非に、OSとブラウザの種類及びバージョンをつけてくれると有り難い。
エラー出た方はJavaScriptコンソールのエラーをはっつけてくれるとなお嬉しいです。

190:Name_Not_Found
05/08/27 06:37:46
>>189
氏ねよ

191:Name_Not_Found
05/08/27 13:46:17
URLから指定の変数を取得するにはどうしたら良いのでしょうか。
URLリンク(hoge.com)

と入力したらnameに入っているabcを取得したいです。

192:Name_Not_Found
05/08/27 14:34:46
>191

function getQuery(_win) {

 if (!_win) _win = self;
 var q = _win.location.search;
 if (q.charAt(0) == "?") q = q.substr(1);
 var qz = q.split("&");
 var qTmp = new Array();
 var tmp = new Array();

 for (var i=0; i<qz.length; i++) {
   tmp = qz[i].split("=");
   qTmp[tmp[0]] = tmp[1];
 }
 return qTmp;
}

q = getQuery();
alert( q.name );


193:Name_Not_Found
05/08/27 15:07:21
>>192
調べてみます。
ありがとうございました!

194:Name_Not_Found
05/08/27 15:36:19
>>191
URLリンク(akiyah.bglb.jp)
これでもいいかもね

195:Name_Not_Found
05/08/27 15:48:31
>>192
>>194
思い通りの動作をしてくれました。
とても参考になりました。ありがとうございました。

196:Name_Not_Found
05/08/27 15:51:02
>>191
参考になるかどうか
URLリンク(www.geocities.jp)スレリンク(hp板)

ちなみにこれ作る時 javascript質問スレの全過去ログを見たんだけど
この類の事は見つからなかったです。

あとは>>194で出ているlocation.searchとか。




197:167
05/08/27 18:27:07
>>177
㌧。残念ながらリファラを見てるのでよそからのPOSTは受け付けないんです。
document.referrerを書き換えられればいいんですが…

198:167
05/08/27 19:37:29
すみません。自己解決しました…

199:Name_Not_Found
05/08/27 19:39:39
>>198
何して解決したのさ

200:以後予定なし
05/08/28 21:41:26
山梨県が嘆くほどくだらない質問をしてもいいですか。

<!--
document.forms["form1"].name.value = location.search.substr();
//-->
でURLから[nama=blog]という引数を取得しようと思ったのですが、CGIに送るときに
[nama=ine%3Dblo]と送られてしまうのですがなぜでしょうか?

201:Name_Not_Found
05/08/28 21:45:40
189は踏んでいいのか?

202:Name_Not_Found
05/08/28 21:51:49
..name.valueでは、..nama.valueは取得できません。

冗談はさておき、
まず送られる前の引数が[nama=blog]かデバックしろ。
合ってれば、文字コードの問題。変換して送れ。

203:以後予定なし
05/08/28 21:58:32
>>202
初心者には優しくな。

デバックは通ったから変換の仕方教えてください。

204:Name_Not_Found
05/08/29 00:36:21
>>203
漏れもエンコードについてはよくわからんのだけど、
HTMLとCGIの文字コードを同じにしてみては?ってことではないでしょうか

205:Name_Not_Found
05/08/29 00:46:13
何いってんだ。文字コードとか関係ないだろ。

206:Name_Not_Found
05/08/29 01:01:02
PHPに送ってやれば文字化けしなくて済むんだけどねぇ…
PHPじゃだめ?

CGIだとエンコの必要があるからKent-Webあたりから
サンプル(掲示板でOK)もってきて研究してみては?

207:Name_Not_Found
05/08/29 02:28:53
だから関係ないって言ってるだろw

nama=ine%3Dblo
っていうのは、デコードしたって
nama=ine=blo
にしかならないだろが。

nama=blog って取りたいんだろ?
ine= がどっから出てきたのかとか blog の g が何で消えたのかとか直さないと解決にならないだろ。

208:Name_Not_Found
05/08/29 02:48:57
>>201
XMLHTTPを使って自分で簡易確認すればいいだろ

209:Name_Not_Found
05/08/29 02:58:24
>>206
なんか凄いですね。ばかな私たちにrfc2396の要約を語って頂けませんか。

210:Name_Not_Found
05/08/29 03:02:56
もうちょっとレベルの高い質問と回答プリーズ

211:Name_Not_Found
05/08/29 11:00:04
レベルの低い人たちが引く

212:Name_Not_Found
05/08/29 11:04:53
URLリンク(www.googkle.com)

213:Name_Not_Found
05/08/29 19:34:46
行末のhtm|htmlをjpgにreplaceするbookmarkletをキボンヌします。
宜しくお願いします。

214:Name_Not_Found
05/08/29 19:39:13
>>213
希望承りました。ところで質問は何ですか?

215:Name_Not_Found
05/08/29 19:48:21
bookmarkletでの正規表現(RegExp)の使い方ですぅ。

216:Name_Not_Found
05/08/29 20:00:12
釣りじゃないなら30分でつくってやるよ

217:Name_Not_Found
05/08/29 20:03:07
釣りじゃないです。エロいページ用です。宜しくお願いします。


218:Name_Not_Found
05/08/29 20:18:13
javascript:document.location=document.location.href.replace("htm", "jpg");
一応これでも出来ますが、複数の拡張子となると...


219:213
05/08/29 20:35:31
javascript:(function(){document.URL=document.URL.replace(RegExp("htm|html"), "jpg")})();
出来ました。お騒がせ致しました。
こんなもんでいいんでしょうか?

220:Name_Not_Found
05/08/29 20:44:35
>>219
それを判断するのはお前だ

221:Name_Not_Found
05/08/29 20:58:11
便乗:bookmarkletでfocusとfuncionってどういう意図があるんですか?

222:Name_Not_Found
05/08/29 21:20:10
funcionって初めて聞くなあ

223:k
05/08/29 21:25:16
>219
javascript:location.replace(document.URL.replace(RegExp(/html?$/),"jpg"))

>221
219 にある function は無名関数。普通は変数を隠したいときに使う。
219 は無意味につき参考にはならん。
focus は恐らく最後に付け足されたもののことを言っていると思われるが
最後に評価された式で undefined を返さないと
返り値が出力されてしまうのでソレを回避する為の小技。
因みに focus より void を使う人が多い。が、これは好みの問題。

224:k
05/08/29 21:34:41
RegExp 消し忘れ・・・orz

225:Name_Not_Found
05/08/29 21:38:41
void より無名関数の人の方が多いんでないの?

226:213
05/08/29 22:16:03
>>223
レスありがとうございます。スルーされてると思ってました。
URLリンク(www.tohoho-web.com)で見たのですが、
(//)のスラッシュがよく分かりません。
説明しているサイトないでしょうか?
記号なので検索でけません。


227:213
05/08/29 22:18:51
訂正:書いてありますね。
orz

228:Name_Not_Found
05/08/29 22:31:29
便乗:ページ内のリンクをbookmarkletで書き換えるにはどうすればよいのですか

229:Name_Not_Found
05/08/29 22:42:08
doc.getElementsByTagName('A') (か doc.links) と for でも使え

230:Name_Not_Found
05/08/29 23:00:11
JavaScript:with(document.body)innerHTML=innerHTML.replace(/\.html?/ig,'.jpg');focus();
これブックマーク

231:Name_Not_Found
05/08/29 23:03:28
>>230
せめて href の値だけ書き換えるようにしようよ

232:Name_Not_Found
05/08/29 23:03:34
javascript:Elem=document.body.getElementsByTagName('A');for(i=0;i<Elem.length;i++){Elem[i].href=Elem[i].href.replace('html','jpg');Elem[i].href=Elem[i].href.replace('htm','jpg');};void(0);


233:Name_Not_Found
05/08/29 23:04:38
スバラシス

234:213
05/08/30 00:19:57
度々申し訳ありません。
URLリンク(images.google.co.jp)
URLリンク(images.google.co.jp)
URLリンク(images.google.co.jp)
のように&start=20の部分を書き換えるにはどうしたらいいのですか?
またレス宜しくお願いします。

235:Name_Not_Found
05/08/30 00:33:28
応用しろよw

236:orz
05/08/30 00:35:53
orz

237:k
05/08/30 07:42:27
>232
replace も正規表現が使えますよ

>234
ただの教えてクンになってきたな

// e.g., start=N の N に100足す
javascript:for(l=document.links,i=0;i<l.length;i++)l[i].href=l[i].href.replace(/(&start=)(\d+)/,function(){return arguments[1]+(arguments[2]-0+100)});void 0

238:221
05/08/30 09:00:54
>>223
分かりやすい回答ありがとうございます
知りたい情報そのものでした
bookmarkletは字数を意識した方言が多くてややこしいです
replaceの第二引数に無名関数持ってくる手法もメモしておきます

239:234
05/08/30 15:22:47
レスありがとうございます。リンクの書き換えではなくロケーションバーの書き換えが欲しかったのれす。
javascript:(function(){document.URL=document.URL.replace(/(&start=)(\d+)/,function(){return arguments[1]+(arguments[2]-0+20)})})();
動く
javascript:location.replace(document.URL.replace(/(&start=)(\d+)/,function(){return arguments[1]+(arguments[2]-0+20)})
動かない。
第二引数に無名関数はすばらしいす。

240:Name_Not_Found
05/08/30 18:11:36
JavaScriptで<a>タグをするために document.createDocument('a') を実行したのですが、エレメントが正しく作成されないようです。
詳しくいうと、エレメント自体は作成されるのですが、色も変わらずアンダーバーもつかず、クリックしてもジャンプしません。
検証用のHTMLとJavaScriptは次のとおりです。どなたかアドバイスをお願いします。環境:Firefox1.06, IE6

<html>
 <head>
  <title>example</title>
  <script type="text/javascript">
  <!--
   // document.createElement("a")で<a>が作成されない?
   function add_link(url) {
    var elem = document.createElement("a");
    elem.attributes["href"] = url;
    elem.appendChild(document.createTextNode(url));
    document.getElementById('links').appendChild(elem);
   }
   -->
  </script>
 </head>
 <body>

  <button type="button" onclick="add_link('URLリンク(www.google.com)')">add link</button>
  <br>
  <span id="links"></span>

 </body>
</html>

241:Name_Not_Found
05/08/30 18:33:31
>>240
hrefを設定する部分の
elem.attributes["href"] = url;

elem.attributes["href"].value = url;
に変えると動くようになる

elem.href = url;
でもいいし、この方が簡略的

242:Name_Not_Found
05/08/31 03:29:29 G6DsaaU1
教えてください。
<table id="a">
 <tr><td>
<table><tr><td>
<input type="button" name="c" value="行番号" onclick="alert(・・・・);">
</td></tr></table>
 </td></tr>
 <tr><td>
  <table><tr><td>
<input type="button" name="c" value="行番号" onclick="alert(・・・・);">
</td></tr></table>
 </td></tr>
</table>

この場合に、alertでid="a"のrowIndexを出すためには、
this.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.rowIndex
としなければなりません。
parentElementがすごく多くなってしまうので、醜いのですが、
ほかに<input type="button"・・・ の位置から見てid="a"のrowIndexを
取得する方法ってありませんか?

それかボタンはname="c"で統一なので、
クリックしたのが何番目のcかが取得できればいいんですけど。

よろしくおねがいします。


243:Name_Not_Found
05/08/31 04:13:00
アンチテーブルレイアウターのネタ?

table に id 振ってあるなら document.getElementById('a').rowIndex でいいじゃん。

244:Name_Not_Found
05/08/31 06:04:02 FzB8fODy
>243
ありがとうございます。
でも取得できません。
table全体のrows.Lengthなら取得できるけど、自分(button)のいるrowのindexを
取得したいので。

連番等を振らずに自分が何番目のボタンかっていうのを取得したいのは、
173あたりと一緒かと思います。


245:Name_Not_Found
05/08/31 07:38:02
>>244
rowIndex は <table> 要素 (HTMLTableElement オブジェクト) じゃなくて
<tr> 要素 (HTMLTableRowElement オブジェクト) のプロパティ。
parentElement の数がそれでいいのは <tbody> があるから。

<table> の rows.item に対して、目的の要素が含まれるまでぐるぐる
回して調べる方法もあるけど、行数に比例して時間かかるよ。

与えた要素の 6 つ上の先祖を返す関数でも作ったら?
ついでに parentElement の代わりに parentNode を使った方がいい。

246:k
05/08/31 08:09:30
>>244
正直スマートな方法が思いつかんが

function getParentNode(_o, _t)
{
 _t = _t.toUpperCase();
 while (_o.tagName != _t) _o = _o.parentNode;
 return _o;
}
function getRootRowIdx(_o)
{
 var currentTabale = getParentNode(_o, "table");
 var parentTr = getParentNode(currentTabale, "tr");
 return parentTr.rowIndex;
}
function getButtonNum(_o, _name)
{
 var elmz = document.body.getElementsByTagName("input");
 var i, idx = -1;
 for (i=0; i<elmz.length; i++)
  if (elmz[i].name == _name)
  {
   idx++;
   if (elmz[i] == _o) break;
  }
 return idx;
}
function func(_o) // onclick="alert( func(this) );"
{
 var rowIdx = getRootRowIdx(_o); // rowIndex を取得
 var btnIdx = getButtonNum(_o, "c"); // ボタンのインデックスを取得
}

247:240
05/08/31 21:46:56
>>241
ありがとうございました。
elem.attributes["href"].value = url;
はうまくいきませんでしたが
elem.href = url;
だとうまくいきました。

JavaScriptのDOMだと、すべての属性がattributes配列にあるわけじゃなく、HTML標準の属性はプロパティとしてアクセスするみたいですね。
勉強になりました。

248:Name_Not_Found
05/09/01 01:28:49
function eventHandle (args) {
var e = args ? args : window.event ? event : null;
if ( ! e ) return null;

this.element = e;

this.clientX = e.clientX;
this.clientY = e.clientY;

if ( typeof(e.pageX) == 'number' ) {
this.pageX = e.pageX;
this.pageY = e.pageY;
}
else if ( typeof(e.x) == 'number' ) {
this.pageX = e.x + document.body.scrollLeft - document.body.clientLeft;
this.pageY = e.y + document.body.scrollTop - document.body.clientTop;
}
else if ( document.all ) {
this.pageX = e.clientX + document.body.scrollLeft - document.body.clientLeft;
this.pageY = e.clientY + document.body.scrollTop - document.body.clientTop;
}

return this;
}

これは何をしているスクリプトなんでしょうか?お願いします。

249:Name_Not_Found
05/09/01 05:22:04
質問です。JavaScriptからstyle.displayを操作してspanエレメントを表示させたり隠したりするスクリプトを書いています。
はじめはstyle.display="none"にしておき、ボタンを押すことで表示する/隠すを切り替えます。
しかし、<span style="display:none">foo</span>だと切り替えられるのに、<span class="hide">foo</span>にしてCSSでdisplay:noneを指定すると、うまく切り替わりません。
もっというと、CSSでdisplay:noneを指定したエレメントは、style.displayをどんなにいじっても、表示されません。
質問がわかりにくくてすみませんが、アドバイスをお願いします。なおFirefox1.06で試しました。
以下が検証用のHTMLファイルです。

<html>
 <head>
  <script type="text/javascript"><!--
   var flag = false;
   function toggle_display() {
    flag = !flag;
    var elems = document.getElementsByTagName('span');
    for (var i = 0; i < elems.length; i++) {
     elems[i].style.display = flag ? "" : "none";
    }
   }
  --></script>
  <style type="text/css"><!--
   .hide { display: none; }
  --></style>
 </head>
 <body>
  <button type="button" onclick="toggle_display()">toggle</button>
  <br>
  <span>foo</span><br>
  <span style="display:none">bar</span><br>
  <span class="hide">baz</span><br>
 </body>
</html>


250:Name_Not_Found
05/09/01 05:27:25
var p;

function a(){
a1 = document.f.a.selectedIndex;
a2 = document.f.a.options[a1].value;
var p = 0;

if(a2 == 10){
document.f.a.value = 10;
var p = 130;
}
if(a2 == 30){
document.f.a.value = 30;
var p = 670;
}
}

~(中略)~

function g(){


251:Name_Not_Found
05/09/01 05:28:13
function g(){
if( p < document.f.n.value ){
document.f.u.value = "N";
}
else{
if( document.f.n.value < p < document.f.n.value + document.f.m.value){
document.f.u.value = "N+M";
}
else{
  if( document.f.n.value + document.f.m.value < p < document.f.n.value + document.f.n.value){
  document.f.u.value = "N+N";
  }
else{
document.f.u.value = "";
}
}
}
}

aの数値を参照してn,mをそれぞれ計算させ、
gでn,mとpを比較してu文字列表示です
やりたいことは大体分かっていただけるでしょうか…(;´Д`)
悪戦苦闘しながらここまで組みましたが、変数の当て方とif分岐がうまく行っていないようで、正しく出来ません
(試しにpを130と書いて実行した時、n+m < 130 < n+n なのに、N+Mと表示されたりします…)

なんだかレベルの低い質問ですが、気の向いたエロイ方がいらっしゃればどうか何かヒントを…

252:Name_Not_Found
05/09/01 05:52:52
document.f.n.valueは数値じゃなくて文字列なので
数値に変換する必要がある

>document.f.n.value + document.f.n.value

変換するにはNumber関数を使う

Number(document.f.n.value) + Number(document.f.n.value)

253:Name_Not_Found
05/09/01 06:10:55
>>249
スタイルシートには、要素に適用されるスタイル (style 属性) と
<style> 要素などによって適用されるスタイルの二種類がある。
前者は後者よりも優先順位が高い。
elems[i].style.display のところで要素に適用されるスタイルを
変更してるけど、className は "hide" のままなので <style> 要素
で書かれたスタイルは依然適用される。
解決方法としては elems[i].style.display = flag ? "inline" : "none";
とすれば優先順位の規則によって <style> 要素の方は無視される。
style を使わずに className を変える方法もある。

>>250-251
document.f.m.value が何を指してるのかにもよるけど、その
プロパティは文字列じゃないの?
文字列だと "1" + "1" == "11" になるし、"130" < "2" になる。
数値として足したり比較したりする場合は parseInt や parseFloat で
明示的に数値に変換してから行う必要がある。

254:244
05/09/01 06:19:12 XAfx/g+1
>245,246
すごく参考になりました。
ありがとうございます!


255:249
05/09/01 08:21:06
>>253
ご指導のとおり
elems[i].style.display = flag ? "inline" : "none";
で出来ました。多謝多謝多謝。ありがとうございました。

256:Name_Not_Found
05/09/01 08:47:17
要素の子供をすべて消すためには、どうするのがいちばんいいでしょうか。
今は
var elem = document.getElementById('foo');
while (elem.childNodes.length > 0) {
elem.removeChild(elem.firstChild);
}
としているんですが、これよりスマートな方法がありましたら教えてください。

257:Name_Not_Found
05/09/01 09:21:48
>>256
var child;
while ((child = elem.firstChild))
elem.removeChild(child);
の方がループごとの子ノードの検索が一回になるので速いかも。
実装によるけど firstChild より lastChild の方が速いかも。
いずれもテストしてないので間違ってるかも。

258:Name_Not_Found
05/09/01 09:30:20
>>256
厨臭いのがアレだが一撃必殺

document.getElementById("foo").innerHTML = "";


259:Name_Not_Found
05/09/01 12:56:12
マナーの問題だとは思うのですが、
某企業のページ内で使われてたJavaScript処理部分がすばらしかったので、
どこかのフリーのものを転用してるのかと思ってソースを見たところ、
どうもオリジナルっぽかったんですが、
こういうのは使っても大丈夫なものなのでしょうか?

260:Name_Not_Found
05/09/01 13:08:15
> マナーの問題だとは思うのですが

死ねばいいと思うよ

261:Name_Not_Found
05/09/01 13:10:26
>はじめはstyle.display="none"にしておき
どうでもいいが、これはスクリプトをオフにしてたら見る事ができないと言う事か?

>>259
わからないように改造して使え

262:Name_Not_Found
05/09/01 13:39:06
>>260
オマエガナー

263:Name_Not_Found
05/09/01 13:45:49
技術だけを盗んでいくのがマナー
ソースをコピペしてはいけない

264:259
05/09/01 15:00:55
なるほど。
では技術を盗んで自分で作り直してみたいと思います。
でも似たようなものができあがりそうですよね・・・

265:Name_Not_Found
05/09/01 16:32:19
どうせ誰が作っても似たようなものになるんだ
それで文句言うのは、ブラウザスケジューラーの作者ぐらいだよ

266:Name_Not_Found
05/09/01 16:34:33 HE9OT77y
フォーム内のエレメントのエレメント番号を取得する方法を探しています。

あるエレメントにフォーカスが合っている時、規定のショートカットキーを押せば
対応したデータを入力し、次のエレメントにフォーカスが移る というのをJavaScriptで実現したいと思っています

エレメントの番号を何とかして取得して、その後はelements[i+1].focus();とかやれば簡単だろうと思ったのですが
リファレンスを読んでもどうやらエレメント番号を取得できるプロパティ、及びメソッドは無いようなのです

色々検索してみた所、エレメントにエレメント番号と同じidなりnameなりをあらかじめ与えておいて
それを取得する という方法で実現していたサンプルがあったのですが、
スマートさに欠け、保守の際に手間取りそうです

「無いから諦めろ」でも構いません
どうか一つお知恵を貸してもらえないでしょうか

ソースは次に書きます

267:Name_Not_Found
05/09/01 16:35:10
そうそう。まったくそのとおり。
万が一ソースがまるっきし一緒だったとしても
しょせんは確率なんだから。
たまたま一緒だったんですとかいえばOKだ。

268:266
05/09/01 16:47:21
bを押すと野球が選択され、次のエレメント(submit)にフォーカスが移ります
他の選択肢については省略しています
ブラウザ別の動作についても省略しています

<HTML><HEAD><TITLE></TITLE>
<SCRIPT LANGUAGE="JavaScript"><!--
function exampleFunction(keynum){
if(keynum == 71){
this.options[1].selected;
# 何らかの方法でエレメント番号を取得、iに代入
document.example.elements[i+1].focus();
}
}
--></SCRIPT></HEAD>

<body>
<FORM METHOD="POST" ACTION="./example.cgi" NAME="example">

<SELECT NAME="hobby" onkeypress="exampleFunction(event.keyCode)">
<OPTION VALUE=0>----
<OPTION VALUE=1>野球
<OPTION VALUE=2>ゴルフ
<OPTION VALUE=3>テニス
<OPTION VALUE=4>サッカー
<OPTION VALUE=5>バレー
<OPTION VALUE=6>ラグビー
</SELECT>
<INPUT TYPE="submit" VALUE="送信">
</FORM>
</BODY>
</HTML>

269:266
05/09/01 16:49:43
ここまで書いて思ったのですがexamplefunction関数を2入力にして
エレメント番号を渡す手もありますね。
本質的にはidやnameでエレメント番号を設定しておく方法と変わらないので
あまり意味がありませんが…

長々と失礼しました。

270:Name_Not_Found
05/09/01 16:55:39
>>248
尾根

271:Name_Not_Found
05/09/01 19:16:49 XwJF/OTW
jsの関数を作るに当たり、フォームオブジェクト(テキストボックス:obj)のmaxlengthを取得したいのですが、
なぜかobj.maxlengthとしても取得できません。どのようにすれば良いのでしょうか。


272:249
05/09/01 19:28:42
すみません、再度質問です。ボタンを押したら<tr class="hide">が表示されたり隠れたりするようにしてみたのですが、
IE6だとうまく動いてFirefox1.06だと妙な動きをします。具体的にはテーブルが崩れたり、余計な行が追加されたりします。
これはFirefoxのバグでしょうか。自分では判断つきかねるので、詳しい方にアドバイスをいただければと思います。

<html>
 <head>
  <script type="text/javascript" language="javascript"><!--
   var flag_display = false;
   function toggle_display() {
    flag_display = !flag_display;
    var elems = document.getElementsByTagName('tr');
    for (var i = 0; i < elems.length; i++) {
     var elem = elems[i];
     if (elem.className == 'hide') {
      elem.style.display = flag_display ? "block" : "none"; // or "inline" : "none"
     }
    }
   }
  --></script>
  <style type="text/css"><!--
   .hide { display:none }
  --></style>
 </head>
 <body>
  <button type="button" onclick="toggle_display()">toggle</button>
  <table border="1">
   <tr><td>001</td><td>foo</td></tr>
   <tr class="hide"><td>002</td><td>bar</td></tr>
  </table>
 </body>
</html>


273:249
05/09/01 19:33:37
>>261
> >はじめはstyle.display="none"にしておき
>どうでもいいが、これはスクリプトをオフにしてたら見る事ができないと言う事か?

ええ、見れなくてもかまいません。見たい人だけが見れればよく、大半の人には必要のないデータなので、デフォルトでは表示しないようにしたいんです。
見たい人はスクリプトをオンにしてもらいます。
もちろんサーバを立ててWebアプリにすればスクリプトがオフでもできるんですが、今回は完全にstaticなファイルなんで、なんとかJavaScriptでしこしことやってます。


274:Name_Not_Found
05/09/01 21:01:58
>>268
こんな感じでいいの? 引数には event を渡して。
function exampleFunction(event) {
var target, keynum, elements, i, next;
if ((event || (event = window.event)) && (target = event.target || event.srcElement))
if ((keynum = event.keyCode || event.which) == 66 || keynum == 98) {
// keypress の場合、大文字と小文字は区別される
// this.options[1].selected; // これは誤り
target.selectedIndex = 1; // 野球を選択
if (target.form && (elements = target.form.elements))
for (i = 0; i < elements.length; i++)
if (elements[i] == target) {
if ((next = elements[i + 1]) && next.focus)
next.focus();
break;
}
}
}

>>271
maxlength じゃなくて maxLength
JScript では大文字と小文字は区別される。

>>272
<tr> 要素の標準の display は "block" じゃなくて "table-row"

275:256
05/09/01 22:30:50
>>257
ありがとうございます。こっちのほうがちょっとだけスマートですね。
firstChildとlastChildはどっちが速いんですかね。たしかに興味あるところ。

>>258
試してみましたが、たしかに一撃必殺ですね。JavaScriptチックなのがいいですね。
""でもいいけど、nullでもいいみたいです。どっちがいいんでしょう。

276:Name_Not_Found
05/09/01 23:08:30
>>273
そもそもそのHPを見たいって人がいない

277:271
05/09/01 23:44:33
>>274
ありがとうございます。
そういうところはJavaと似ているんですね・・・。

278:Name_Not_Found
05/09/02 00:12:32 WCwPzKTI
質問です。
外部jsファイルをイベントで読み込むにはどうすればよいですか。
<script src="js1.js"></script>
を読み込みたいです。IDを振って、src呼び出しではうまく行きません。

279:Name_Not_Found
05/09/02 00:50:01
>>273
そういうポリシーなら余計なお節介だけれども

display は無指定にしておいて
onload で一回関数を呼ぶだけじゃん

280:Name_Not_Found
05/09/02 01:01:56
>>266
c = this.nextSibling;
while( c ){
 if( c.nodeType == 3 ){
  c.focus();
  return;
 }
 c = c.nextSibling;
}

でいいんじゃね?試してないけど。

281:Name_Not_Found
05/09/02 01:35:11
>>280
function exampleFunction(ev){
ev = ev? ev:window.event;
if (ev.keyCode == 98){
ev.srcElement.selectedIndex =1;
c = ev.srcElement.nextSibling;

while( !c.focus ){
c = c.nextSibling;
}
c.focus();
}
}

282:266
05/09/02 01:50:23
たくさんのレスありがとうございました。
色々な方法があるようですので、これから一つ一つ確かめて どれが自分の目的に一番合っているか
確かめようと思います。

283:Name_Not_Found
05/09/02 07:41:38
>>279
まともな奴ならそうするね

284:249
05/09/02 10:27:39
>>274
table-rowでいけました!ありがとうございます。

>>279
それだと、JavaScriptをオフにしている人には全部見えてしまいます。
JavaScriptをオンでもオフでも、デフォルトでは見えないようにしておき、
見たい人はJavaScriptをオンにするようお願いしています。

>>283
スキルもないうえにまともじゃないです。ごめんなさい。

285:Name_Not_Found
05/09/02 11:05:55
要するに、誰にも見て欲しくないページな訳ですね

286:Name_Not_Found
05/09/02 12:41:43 wOPuXxzH
二つのセレクトメニュー「Select1」「Select2」があって、Select1を操作、onChangeで<div id="change_select">以下の「Select2」がごっそり違う内容に差し変わるようにしたいと思っています。
Select1でHOGEをえらぶと、Select2にはA,B,Cという選択肢そうでなければD,E,Fという具合です。
もう疲れ果ててしまいました。
まず、ブラウザによって、document.allだったり、documentだったりで、うまく動かない。
これは、なんとか調べて分岐処理するとしても、致命的なのは、ブラウザによってはinnerHTMLで書き出したSelect2の値をPOSTしてくれない事です。
そもそも、innerHTMLで、こういった事をどうにかしようというのがおかしいのでしょうか?
実際はSelect1,Select2の前後にもinputなどがあったりするので、その他の入力が消えてしまうので書き換えるわけにはいかないのです。
(もっともSelect1を選んだ時点で一旦postさせるって手もあるけど)
なにか代替案などありましたらアドバイスお願いします。

287:286
05/09/02 12:43:20
ソースはこんな感じ。(環境によっては動きません。)
■スクリプト部■
<script language="JavaScript" type="text/javascript">
<!--
function ChangeSelect(){
var val = document.all.hogeform.Select1.value;
alert(val);
if(val == "HOGE"){
change_select.innerHTML = "<select name='Select2'><option value=''>お選びください</option><option value='A'>A</option><option value='B'>B</option><option value='C'>C</option></select>";
}else{
change_select.innerHTML = "<select name='Select2'><option value=''>お選びください</option><option value='D'>D</option><option value='E'>E</option><option value='F'>F</option></select>";
}
}
//-->
</script>
■フォーム部■
<form name="hogeform">
<select name="Select1" onChange="ChangeSelect();">
<option value="" >お選びください</option>
<option value="HOGE" >HOGE</option>
<option value="HAGE" >HAGE</option>
</select>
<div id="change_select">
<select name="Select2" onChange="ChangeSelect();">
<option value="" >お選びください</option>
</select>
</div>
<input type="submit">
</form>

288:Name_Not_Found
05/09/02 13:13:05
>>286
過去ログに数回以上出てる。探せ!!!

289:Name_Not_Found
05/09/02 13:34:46
bookmarkletでページの中のボタンを押す事は可能ですか?

290:Name_Not_Found
05/09/02 13:52:06
>>289
はい。
自分でやって、わからないところをまた聞いてください。

291:Name_Not_Found
05/09/02 14:01:46
出来ますね。ありがとうございました。
javascript:document.forms[0].elements[0].click();

292:Name_Not_Found
05/09/02 15:35:47
onclick()じゃないの?

293:Name_Not_Found
05/09/02 15:44:49
やってみてから訊いてください。

294:Name_Not_Found
05/09/02 16:02:45
初心者スレで聞いてたのですが、こちらの方が正しかったのでこちらに書かせてもらいます。
URLリンク(javascript.eweb-design.com)
こちらのjavascriptでボタンではなく文字でウィンドウが開くようにするにはどうすればいいのでしょうか?
よろしくお願いします。

295:278
05/09/02 16:06:41 0kZeGiuL
>>278 お願いします。
--[再掲]--
質問です。
外部jsファイルをイベントで読み込むにはどうすればよいですか。
<script src="js1.js"></script>
を読み込みたいです。IDを振って、src呼び出しではうまく行きません。

296:Name_Not_Found
05/09/02 16:06:54 7eM0ktie
●アドバイスお願いいたします。
HPにアクセスして来たときに、
IEならページを表示させて他のブラウザ(ネスケやオペラ)なら
①"IEをご使用ください"と表示させる
または
②別のページに飛ばす
ということをしたいと思っています。
できれば、ブラウザのバージョンには
あまり左右されない方向で。

未熟者でお手数かけますが
どうぞ、よろしくお願いします。orz
(.htaccessでもできたりするんでしょうか?)

297:Name_Not_Found
05/09/02 16:20:09
>>294
こちらの方が正しかった?なぜ?初心者スレに最適な問題だと思うが?
<a href="#" onclick="hogehoge()">文字でウィンドウが開く</a>
てか、これHTMLの問題じゃんよ。ここで菊のはまだ早すぎるな。

298:Name_Not_Found
05/09/02 16:23:52
と、いいつつ答える297であった。

299:Name_Not_Found
05/09/02 16:27:44
>>296
Google屁行け。それこそ山のようにアドバイスがあるであろう。


300:Name_Not_Found
05/09/02 17:08:56 7eM0ktie
>>299
すいません、ありすぎて分からないんです。
まだHTMLを、やっとこ覚えたばかりなので
どれが正しくてどれがヤバいものやら。。orz

301:Name_Not_Found
05/09/02 17:09:48
初心者が難しいことしようとするもんじゃないよ。
経験経験

302:Name_Not_Found
05/09/02 17:16:25
>>278 >>295 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var s = document.createElement('script'); s.src = 't1.js';
document.body.appendChild(s);
}
</script>
</head><body>
<p><button onclick="test()">Test</button></p>
</body></html>

303:296=300
05/09/02 17:45:43 7eM0ktie
>>301
そ、そうですよね。。
とにかく色々やってみることにします。
ありがとうございました。
でわ。┌[-_-;]┐

304:296=300
05/09/02 18:13:14 7eM0ktie
お世話になります。>>296の②(ブラウザ判定して各ページに飛ばす)は
↓これでなんとかできたみたいです。

<SCRIPT LANGUAGE="JavaScript">
var ver = navigator.appVersion.charAt(0);
var ie = 0, nn = 0;
if (navigator.appName == "Netscape") nn = 1;
if (navigator.appName == "Microsoft Internet Explorer") ie = 1;

if (ie && ver >=3) location.href = "ie.html";
else if (nn && ver >=3) location.href = "nn.html";
else location.href = "other.html";
</SCRIPT>

ちなみに、IEのときだけ別ページに飛ばさない
=このスクリプトを含むページのHTMLを表示するにはどう改造すれば
よいでのしょう?

教えてちゃんで申し訳ありません。
プログラムの仕組みを全く知らない初心者なので
よろしくお願いいたします。┌[-_-;]┐

305:Name_Not_Found
05/09/02 19:00:13
最近、ド肝を抜く感動のASCII-ARTがないね。
厨房ばかりで楽しみがそれくらいしかない、今日この頃。

306:296=300=304
05/09/02 19:15:51 7eM0ktie
とりあえずIEのときの実行命令(location.href = "ie.html"; )を削除してみたら
ブラウザ判定でIEだけ飛ばさないようにできたのですが、、
こっ、この記述は、、、正しいのでしょうか?
ド素人な質問でお恥ずかしいですが
間違ってるか合ってるかだけでも
教えて頂けるとありがたいのですが。。

if (ie && ver >=3) location.href = "ie.html";
else if (nn && ver >=3) location.href = "nn.html";
else location.href = "other.html";

if (ie && ver >=3) ;
else if (nn && ver >=3) location.href = "nn.html";
else location.href = "other.html";

307:294
05/09/02 19:52:37
>>297
有難うございます。
あちらでよかったのですね・・・すいません。
教えていただいた方法だとエラーが出てしまいました。
再度お願いします・・

308:249
05/09/02 20:46:44
>>285
どうしてこういう言い方するのかわかりませんが、ページのすべてを見せないようにしているわけじゃなく、
一部の人にしか必要のない箇所をみせないようにしたいだけです。

309:k
05/09/02 21:04:09
>>306

if (!(document.all && !window.opera)) location.replace( "not_ie.html" );


>>307

<a href="sample.html" onclick="openWindow()">ウィンドウが開く</a>

<a href="sample.html" onclick="openWindowC()">中央にウィンドウが開く</a>

310:296=300=304=306
05/09/02 22:12:49 7eM0ktie
>>309
kさん、ありがとうございます。
頂いた記述で動かすことができました。
えと、たぶん↓この使い方であってますよね?

<SCRIPT LANGUAGE = "JavaScript">
<!--
if (!(document.all && !window.opera)) location.replace( "not_ie.html" );
// -->
</SCRIPT>

すごく助かりました。(〃▽〃)ノシ ♪アリガトー

311:Name_Not_Found
05/09/02 22:18:03
>>307
エラーの出た行とエラーメッセージの内容を出さなければ
無視されるよ。>>297 自体はエラーなんか出そうもない単純さだしね。

312:Name_Not_Found
05/09/02 22:18:49
見たい人にjavascriptオンを強いるサイトなんてクソって事だ

313:Name_Not_Found
05/09/02 23:42:31
>>309
いい加減なコードを教えるな。ヴォケ
おまえも初心者スレ逝って、もう来るな。

314:310
05/09/03 01:07:55 rVCFx4qm
>>313
ええっ309サン違うんですか? ?(゚д゚;)三(;゚д゚)?アタフタオロオロ
どこをどう治せばいいんでしょう?


315:Name_Not_Found
05/09/03 02:55:12
>>308
素直に認証させれば?

316:Name_Not_Found
05/09/03 08:27:57
外部JSを呼び出すときにパラメータを渡すことってできます?
src=hoge.js?a=1
みたいな。できるとすれば、それをどうやって受け取ればいいんでしょうか?

317:Name_Not_Found
05/09/03 09:27:54
>>316
その書き方は通常、CGI にパラメータを渡すときに使う。
JScript で書かれた JScript のソースを吐く CGI というのもあり得るけど、
その場合はサーバー側で値を受け取るときだけに使うべき。
クライアントサイドのスクリプト同士であればグローバル変数を使えばいい。
HTML に <script> 要素はいくつでも含められる。
<script> 要素の src 属性から切り出すことも可能だけど、そんなことする
必要はほとんどないと思われ。

318:Name_Not_Found
05/09/03 09:38:06
>>317
よくわかりました
ありがとうございました~

319:Name_Not_Found
05/09/03 11:01:03
>>314
バカは氏んでも「治ら」ない、と思われ。
それもそうだけど、あのね、人さまに作ってもらったコードをわけもわからず
そのまま貼りつけて、動くとか動かないとか、それはちがうんじゃない。
クルマでもバイクでもロードに出るからには、メカを学ぶよね。故障しても
「直せ」ないのじゃ、どうしようもないと思うけど。

320:Name_Not_Found
05/09/03 11:06:56
Javaスクに対応していないブラウザってありますか?

321:Name_Not_Found
05/09/03 11:31:20
携帯電話のブラウザはJavaScript使えない

322:310
05/09/03 11:33:48 rVCFx4qm
>>319
JAFになっていただければ幸いですorz

323:Name_Not_Found
05/09/03 12:32:46
よし。おれが、そのJAFになってやろう。入会金と年会費を払いな。
入会金=3万円。年会費=12万6000円(消費税込み)。
年何回書き込んでも定額だが、板のルールに従わない場合は無視される。


324:Name_Not_Found
05/09/03 12:41:59
入会するには名前の欄にfusianasan、これお約束

325:Name_Not_Found
05/09/03 13:12:17
>>310 >>2
3)初心者という言葉は危険なので使わない方がよい。
 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。


326:Name_Not_Found
05/09/03 13:24:53
それ系の掲示板とかフォーラムで
タイトルに「初心者です」とか「教えてください」とかするヤツ。
これ最悪。
どんな質問であっても過去ログという財産になるのにタイトルでもう台無し。

327:Name_Not_Found
05/09/03 14:30:28
その点2ちゃんは書き込みにタイトルがないのがいいよね。
直に質問内容で検索すれば済むし。

328:310
05/09/03 14:40:33 rVCFx4qm
>>325-326
はい、気をつけます。ありがとうございます。
昨日から素人なりに勉強してみましたので
アドバイスいただければ幸いです。

やりたいこと:
Win+IEのユーザならそのページを表示させ、
それ以外のユーザなら別ページを表示する。

一番気になるのは3行目で、
「IEなら単にそのページを表示」させたいとき、
(…)と ; の間には何も書かなくて良いのか、ということなのですが。。

<SCRIPT LANGUAGE = "JavaScript">
if(navigator.userAgent.indexOf('Win') != -1) location = "other_os.html";
else if(navigator.appName == 'Microsoft Internet Explorer') ;
else location.href = "other_browser.html";
</SCRIPT>
<BODY>
WELCOME
</BODY>

どうぞよろしくお願いします。

329:Name_Not_Found
05/09/03 15:03:32
>>328
UA で振り分けなければならない理由は何なのかな ?
Script 自体は難しくはなくても, 問題が多すぎると思わない ?

1. アクセスしたとたんに勝手に飛ばされるのは良い気がしない.
2. ファイル数が増えるので管理が極めて面倒になる.

>(…)と ; の間には何も書かなくて良いのか、ということなのですが。。
無意味な1行になっているとだけ言っておく.

330:Name_Not_Found
05/09/03 15:06:20
>>306=>>319
カチンとくるのはわかる。
でも動かないものは動かなかったんだ。残念。

331:Name_Not_Found
05/09/03 16:42:08
>>328
そこには「何も書いてない」わけじゃないぞ。「;」つまり
何も動作をしない、という文が書いてある。IEの時は特に
飛ばさない、つまり「何もしない」のだからこれで正しい。
気持ち悪いのなら次のような書き方にすれば?
if(...)
__....;
else if(...)
__;
else
__.....;
あるいはちゃんt「{}」で囲んで(その場合は「;」も不要)、
if(...) {
__....;
} else if(...) {
__// do nothing ←不安だったらこういうコメントを入れる
} else {
__....;
}

>>329
無意味な1行っていうのはずいぶん適当であやふやな言葉だよな。
JSの言語仕様にもそんな用語はないし。ブラウザ判別と振り分け
の是非について論じたいのならここじゃなくどっか別のとこで
やった方がいいんじゃないか。迷惑ページってわけじゃないんだ
しよく知られている技法なんだから「質問者の裁量」でいいだろ。

332:Name_Not_Found
05/09/03 17:19:35
>>331
条件判断だけをやって何もやらないのは
Syntax として間違っていなくても いかがなものだろうか?
>>328 はつまるところ IE と それ以外を振り分けているだけ.
ならば, やり方は ほかにもあると思うけどなぁ~.

ぼくは 余計な仕事をさせないのがスマートだと信じてる.

333:Name_Not_Found
05/09/03 17:31:20
if(navigator.userAgent.indexOf('Win') != -1) location = "other_os.html";
if(navigator.appName != 'Microsoft Internet Explorer') location.href = "other_browser.html";
これは空気読めてない?

334:Name_Not_Found
05/09/03 17:58:02
ブラウザの判別も navigator.userAgent でいいんでないかな。
if(navigator.userAgent.indexOf("IE") == -1 ){
location.href = "other_browser.html";
}
な感じで。
("MSIE"だとIE7が不安なのでMS抜いてみました。関係なかったらすまぬ)

335:Name_Not_Found
05/09/03 18:05:30
3.UA は自己申告制; 必ずしも正しく振り分けられない;

336:Name_Not_Found
05/09/03 18:38:30
This script checks for specific types and versions of browsers (hence, it's fussy).
In this example, it's set to test for Netscape 4.05 for Windows and Netscape 4.6
for Macintosh. If the user has either of these browsers, they'll receive one alert
message. If not, they'll receive another. You can set the browser types and the
actions to anything you want. For instance, you can block users for a certain page
unless they're using a certain browser.


337:Name_Not_Found
05/09/03 18:59:32
無意味な1行というよりも、この議論そのものが空疎ではないのか。
盲人の周りに十数人も集まってきて、こっちだあっちだと言い合っている気がする。
次の質問のかたー、どぞーっ。

338:Name_Not_Found
05/09/03 19:03:36
>>337
聖徳太子だから平気。

339:Name_Not_Found
05/09/03 19:21:28
null うざす

340:Name_Not_Found
05/09/03 19:45:22
まぁnullの言ってることは正論なんだが、レベルが高すぎるんだよ。
それとたまに暴走するのが傷だな。
それを直せばいいやつなんだが。

341:Name_Not_Found
05/09/03 19:50:44
>>340
レベル高くないだろ。

342:Name_Not_Found
05/09/03 22:00:55
>>332
「振り分ける」というのは均等なif-else ifの構造で書く
のが美しい。その中で何をやる/やらないに影響されない
方がいいと漏れは思っているけどね。しかしこんな議論じゃなく
普通の質問こないかなあ。

343:Name_Not_Found
05/09/03 22:43:09
nullは無視しよう!
反応したら負けだ!
「。」のかわりに「.」を使ってるやつはnullだよ!

344:Name_Not_Found
05/09/03 22:50:34
>>332
それは null が JavaScript しか知らなくて
複数人での開発をしたことがないからだろ。

C とかだと空文で while を回す処理だって時々あるし。
最適化処理はコンパイラかインタプリタの仕事。

コーディングは人間が考える順序をそのままに記述した方が
遙かに可読性がいい。

345:Name_Not_Found
05/09/03 23:22:30
nullもまだ知識が足りなかったってことだけだろ。
別にいいじゃない。コテはずしたんだし。
個人的には、昔みたいな空気読めないオナニーレスがなくなったから
OKとするよ。引き際を覚えたんだろ。

346:Name_Not_Found
05/09/03 23:25:53 q8D1sZDU
質問です。
JAVAアプレットになかなかよいのがあるので自分のウェブページで使いたいのです
が、UPすると動きません。元々初期動作に時間がかかりイマイチとは思っているの
ですが、JavaScriptを使って普通に動作させる方法などありますか?


347:Name_Not_Found
05/09/03 23:37:09
ありません

348:Name_Not_Found
05/09/04 00:16:08
divでくくった部分のbackground画像をランダムで変更したいんですが
そのスクリプト部分を外部jsファイルか、出来ればhtmlはそのままにCSSで記述したいのです。
シンプルにやるいい方法ありませんか?

349:Name_Not_Found
05/09/04 00:54:00
あります

350:Name_Not_Found
05/09/04 01:33:09
>>348
外部だろうと内部だろうとJSの場合コードそのものは同じだから。
それでページが表示されるごとにだけランダムに選べばいいのか
一定時間ごとに表示中の背景がランダムに取り代わるのかどちらか
はあなたの説明だと不明確だと思うんだが。

351:Name_Not_Found
05/09/04 04:14:55
insertBeforeやappendChildで、
既存ノードのcloneNodeを挿入することは、普通はできないものなのでしょうか?
IEやOperaでは動作しませんでしたが、Firefoxでは動作しました。
代替手段としてinnerHTMLを使用していますが、
それ以外で何か手段があれば、教えていただけると幸いです。

352:348
05/09/04 09:46:53
>>350
失礼致しました。
表示ごとに背景が変わるようにしたいのです。
jsでbackgroundをリロードするごとに変更するというスクリプトはあるみたいなんですが、
それを外部に切り出すやり方が…_| ̄|○

353:Name_Not_Found
05/09/04 10:14:17
>>352
うざい。初心者スレへ逝け!!
あんた、いつも間抜けな初歩的質問してはバッタリ倒れてる人だね。

354:Name_Not_Found
05/09/04 10:15:28
確かに_| ̄|○これはかなり腹が立つな
自分で調べろクズ

355:Name_Not_Found
05/09/04 10:27:05
>>351
IE のバージョンによりますが 5 以上なら普通はできるものです。
ただし insertBefore, appendChild する要素によってはできない
ものがあります。
内容として出現が認められない場所に挿入しようとしていないか、
また、cloneNode したものの id が既存のものと重複していないか
確認してください。

>>352
基本的に <script> の内容をそのまま外部ファイルにするだけです。
それ以上、説明のし様がありません。
<script> の内容は空にして src 属性で外部ファイルの URI を
指定します。
外部ファイルの HTTP ヘッダで文字コードが明示されない場合は
charset 属性も指定してください。
過去のブラウザのバグを回避するため <script> と </script> を
密着させてはいけません。スペース一つ入れてください。

356:348
05/09/04 10:35:37
すいませんでした。もう少し自分で調べてきます。

357:348
05/09/04 10:37:19
>>355
ご親切に回答ありがとうございます。それだけでも参考になります。
ありがとうございました。

358:351
05/09/04 13:47:33
>>355
どうもありがとうございます。
もう少し試行錯誤してみます。

359:Name_Not_Found
05/09/04 14:37:41
>>355
<script src=...></script>がダメなブラウザなんてあったの。初耳。
どのブラウザで、どういう問題が起きるのか説明キボン。

360:Name_Not_Found
05/09/04 15:15:08
#なんか、他人をけなさずにはおれない人が多いようで。

>>312
外部に公開するページではなく、社内の内輪で使うドキュメントなので問題ないです。

>>315
WordのかわりとしてHTMLを使っているだけなので、サーバを立てるという手段はとれません。

そう書いてるんだけど、読み飛ばされてるよorz


361:Name_Not_Found
05/09/04 15:22:32
終わった話をいちいち蒸し返すな。馬鹿は放置しろ。

362:Name_Not_Found
05/09/04 15:43:26
>>360
自意識過剰ですね
書かれている事が全て自分に対しての事だと思ってるのですか?

363:360
05/09/04 16:35:29
自意識過剰で悪かったですね。基本的に自分は無視されないと思っています。

私の言葉は他の人とちがって一語一語選んで書いていますので、細心の注意を
払ってほしいです。社内の電子文書だということやHTMLの目的など私の言った
ことをよく読んでいれば、>>312>>315のような誤解は絶対に生じない筈です。
読み飛ばす人は、けっこう自分の社内でもそこらへんで上司のかたから注意を
うけているのでしょうね。答えを書く前に、自分の文章を何度も読み返してみ
ると、こういうまちがいは防ぐことができますよ。

364:Name_Not_Found
05/09/04 17:19:46
馬鹿はこっちだった

365:Name_Not_Found
05/09/04 17:22:47
>>363
なんか妄想だらけの文章ですね。
若者に説教をしている、おじさんみたいな感じで少し嫌ですわ。

前のほうのレスを読む気はないので、、
>>360>>363だけの内容でレスさせていただきます。

>外部に公開するページではなく、社内の内輪で使うドキュメントなので問題ないです。
このような目的ならファイルサーバを使えばいいのでは?
わざわざJSで小細工する意図がわかりません。
見たい人が見るようにするのなら、特定のディレクトリを作って、
そこにアクセスしてもらえばいいだけでしょ?

>サーバを立てるという手段はとれません
会社にもないんですか?
PCを会社で使っているとするならば、変わった会社ですね。

社内で電子文章を扱う機会が多いなら、
会社にサーバを導入するように、上司に提言すべきですよ。
私の会社では、ちょっとしたものならメッセンジャーで送りますがね。

366:360
05/09/04 17:30:22
分かってくださればそれでいいのです。私の意見を聞けるだけでも何かの進歩
に繋がるはずです。ただ、他人をけなさずにはおれない人が多いようなので、
一言申し上げただけですので。



367:Name_Not_Found
05/09/04 17:34:05
>>363
>>312はあなたに対する意見じゃないので、>>312に過剰反応するから自意識過剰と言われてるのですよ

368:Name_Not_Found
05/09/04 17:35:36
>私の意見を聞けるだけでも何かの進歩 に繋がるはずです。
そういうこというから自意識過剰って言われるんですよ。
正直あなたの意見なんてなんの進歩にも繋がりません。
マイナス要素だらけです。
厳しい意見があってこその進歩。
たとえそれが罵倒混じりであっても、助言として受け入れるべきです。
それがわからないあなたは一生進歩できませんよ。

369:Name_Not_Found
05/09/04 17:51:57
>>363
誰ですか?

>>365
>このような目的ならファイルサーバを使えばいいのでは?
>わざわざJSで小細工する意図がわかりません。
「JSで小細工する」ことと「ファイルサーバを使う」ことの関連がわかりません。
ファイル形式として何を使うかという話と、ファイルサーバを使う・使わないという話は関係がないと思います。
それからファイルサーバは使ってますよ。誰もファイルサーバを使ってないとは書いてません。Webサーバを立ててないだけです。

>見たい人が見るようにするのなら、特定のディレクトリを作って、
>そこにアクセスしてもらえばいいだけでしょ?
それだと、「通常必要なデータだけを書いたファイル」と「詳細なデータもすべて含んだファイル」の2つを用意しないといけなくなりませんか。
そんな面倒なことしなくても、「詳細なデータもすべて含んだファイル」をひとつだけ用意し、通常は必要とされない詳細なデータが見えないようになっているほうが、ドキュメント作成の手間も、管理の手間も少ないと思います。

> >サーバを立てるという手段はとれません
> 会社にもないんですか?
> PCを会社で使っているとするならば、変わった会社ですね。
社内で勝手にサーバを立てることは禁止されています。また情シスに申請しても、なかなか通りません。
個人情報保護法やプライバシーマークにきちんと取り組み、情報漏えいに気を使っている会社なら、自由にサーバを立てられないほうが普通だと思いますが。

>社内で電子文章を扱う機会が多いなら、
>会社にサーバを導入するように、上司に提言すべきですよ。
ファイルサーバのことでしょうか。Webサーバのことでしょうか。

> 私の会社では、ちょっとしたものならメッセンジャーで送りますがね。
ファイルサーバがなければメッセンジャーを使ったらどうかという提案ですか?意図がよくわかりません。

> 若者に説教をしている、おじさんみたいな感じで少し嫌ですわ。
偶然ですね。私もおなじように感じました。

370:Name_Not_Found
05/09/04 18:14:29
>>369
JSになぜそこまでこだわる?
>Webサーバを立ててないだけです。
内部のやり取りなら、Webサーバ立てる必要もないだろ。
Web上で閲覧するということにこだわる意図がわからない。
別の方法があってそっちが適切ならそっちを選ぶべき。

>「詳細なデータもすべて含んだファイル」をひとつだけ用意し・・・
できもしないのにこの言い分は理解できない。
自分の技量を考えて発言すべき。

>個人情報保護法やプライバシーマークにきちんと取り組み・・・
JSでどうにかしようとしているやつが言うべき言葉ではない。

とりあえず感じたこと。よほど暇な会社なんだな。

371:Name_Not_Found
05/09/04 18:23:02
ほっとけよ、こういう奴をわざわざ教育してやる必要なぞ無いだろ。
一度痛い目にあった方が、こういう奴にとっては為になるよ。

372:Name_Not_Found
05/09/04 18:27:36
   ∩∩
   | | | |
  ( ゚ω゚)  <しけんはんい ここまで
  。ノДヽ。    
   bb

373:Name_Not_Found
05/09/04 18:44:36
おかしい奴はスルー。2ちゃんの基本。

374:Name_Not_Found
05/09/04 18:48:27
流れをぶったぎるような質問お待ちしています。

375:Name_Not_Found
05/09/04 18:51:35
今反論するために>>369が必死に調べまわっています。
粘着レスまで数時間お待ちください。

頼むからもうこないでね。

376:Name_Not_Found
05/09/04 22:14:18
これでもJavaScript書かせればそこそこの連中なのに、なんか、くだらんヤシ
相手に技量と時間の浪費をしているなあ。
(これを俳句にしたいのだがうまくできない。云々浪費かな、まで)場所汚

377:Name_Not_Found
05/09/04 22:17:28
結局このスレの存続はいい質問が来るかどうかに掛かっている。
それは最初から分かっていることさ。まあ暇つぶしについては
各自の勝手ということで。

スクリプト 書きたいけれど ネタはなし

378:Name_Not_Found
05/09/04 22:26:14
じゃあお題

メニュークリックするとペローンとしたに伸びるやつ作って。
ドロップダウンメニュー?プルダウン?ナビゲーションメニュー?
名前よくわからないけど、Flashでよくあるやつ。

ディレイをうまく操作してFlashにより近いものよろしく。

379:Name_Not_Found
05/09/04 22:42:19
(´_ゝ`)

380:Name_Not_Found
05/09/04 23:44:14
>>378
そういうのはいくらでもあるから検索して探せば。ちっとも新しくないし行数は
多いからここに貼れないしね。質問としては5点。

381:Name_Not_Found
05/09/04 23:49:35
>>380
2kb以内32行で作ってみせろよ!

382:Name_Not_Found
05/09/04 23:53:58
>>381
おれは1行で書ける自信がある

383:Name_Not_Found
05/09/04 23:55:16
よしじゃあ1行でもいいから2kb以内に収めてくれ。
読みづらいソースはカンベンな?

384:Name_Not_Found
05/09/05 00:03:46
まあ、メニュー部分やメニューボタン部分を全部HTMLや画像で用意
して動かすだけならたいしたことはないが、汎用のメニューライブラリ
としてパッケージするとなると大変になるな。

385:Name_Not_Found
05/09/05 00:05:20
>>366
だから誰なんですか。

>>368
> 厳しい意見があってこその進歩。
厳しい意見はなかったように思います。あったのは、勘違いした意見とか、あおるための意見とか、とりあえず相手をたたくための意見とか。

>>367
そうですか。それは失礼しました。あまりにタイミングと内容が重なってたので勘違いしてました。
じゃあどなたへの意見だったのでしょうかね。ただの独り言だったのかな。

>>370
>JSになぜそこまでこだわる?
別にこだわってないです。無料で使えることとか、手軽さとかを考慮したら、HTMLとJavaScriptとがいちばん適切かなーと思っただけです。

>内部のやり取りなら、Webサーバ立てる必要もないだろ。Web上で閲覧するということにこだわる意図がわからない。
これも別にこだわってないですけど。「ぜったいにWeb上で閲覧したい」なんて一回も書いてないんですけど、どの書き込みからそのように感じたのでしょうか。

>別の方法があってそっちが適切ならそっちを選ぶべき。
そりゃそうです。ほかに適切な方法があれば当然そっちを選びますよ。
でも今までいわれた意見はどれも適切じゃなかったから、その理由を説明しただけです。それを「粘着」とかいわれてもねえ。

>できもしないのにこの言い分は理解できない。自分の技量を考えて発言すべき。
>>253と274のおかげでできました。それとも、「できもしないやつは質問するな」という意味ですか。

>JSでどうにかしようとしているやつが言うべき言葉ではない。
意味わかんないです。文脈から外れてますよ。
「情報漏えいを防ぐために、会社で用意したファイルサーバを使用し、勝手に他のサーバを立てない」という話なんですけど、それとJSとどう関係があるんでしょうか。

>とりあえず感じたこと。よほど暇な会社なんだな。
今は暇かも。

386:Name_Not_Found
05/09/05 00:07:50
   ∩∩
   | | | |
  ( ゚ω゚)  <しけんはんい ここまで
  。ノДヽ。    
   bb

387:Name_Not_Found
05/09/05 00:15:21
>>375
5時間ぐらい考えてたのかw

388:Name_Not_Found
05/09/05 00:16:27
揚げ足取りに対してのレスしかできなく、本質的なとこには触れない。
これ最凶。

389:Name_Not_Found
05/09/05 00:39:25
>>385
空気読めない粘着気質 まで読んだ

390:Name_Not_Found
05/09/05 00:40:28
ともかく厨房は放置でよろ。レスの無駄使いだからね。

391:Name_Not_Found
05/09/05 00:46:29
そもそも、なぜJSでやろうと思ったのかな?
自分でできない事をやると言ってひっこみつかなくなって、ここで聞いたソースをコピペして会社で自慢してるのかな?

392:Name_Not_Found
05/09/05 00:58:29
一言だけどうしてもいいたいんだ!ゆるしてくれえ。

>それだと、「通常必要なデータだけを書いたファイル」と
>「詳細なデータもすべて含んだファイル」の2つを用意しないといけなくなりませんか。
>そんな面倒なことしなくても、「詳細なデータもすべて含んだファイル」をひとつだけ用意し、
>通常は必要とされない詳細なデータが見えないようになっているほうが、
>ドキュメント作成の手間も、管理の手間も少ないと思います。

ここの部分。管理の手間でいうならあきらかに分けたほうが楽だと思うんだけどね。
ソースもごちゃまぜにするよりはわけたほうが見やすいしね。
作成の手間っていうのも、データを通常と詳細の2分割にすればいいだけだし・・・
漏れなら、サーバサイドスクリプトで詳細データ書き出して、
html側で表示ボタンでも作ってそれを押したら、詳細データ出るようにするけどな。

レス消費しちゃってゴメンネ。。。質問がくれば頑張って答えるから許してくんろ。

393:Name_Not_Found
05/09/05 01:03:58
>>392
> 漏れなら、サーバサイドスクリプトで詳細データ書き出して、

内向けの Web 鯖はないそうだ。

「分けたほうが楽」には同意。
自分以外の人がデータをいじる必要が出てきたときに
JS で(普通の人にとって)トリッキーなことをしてると却って手間が増えるわけで。

394:Name_Not_Found
05/09/05 01:11:13
まああれだ。

普段外向けのサイトを作成している人たちにとっては
JS Off でもそれなりに見られるようにしておくのはマナーのようなもんで。

そういった配慮をする必要のない内向けのドキュメントでも
「とりあえずそうしておく」というのは
何というか職人気質のようなもんだね。

「とりあえずそうしておく」ことを理解しない彼とこのスレの住人との
意見の一致を見ることはないのだろうね。

395:Name_Not_Found
05/09/05 01:15:02
内の人でも、JSオンにしなきゃならないなら見なくてもいいやって人がいるかも知れんしな

396:Name_Not_Found
05/09/05 01:21:33
いい解決方法を教えてあげよう。
一通りかきおわったら、必殺連続<br>で、その下に詳細を書いていくと。
IEでしか見るなよ。と注意書きすれば完璧。

397:vol.37-663より 愛を込めて
05/09/05 06:47:39
久し振りに荒れたな。
そろそろ俺の出番か?

398:Name_Not_Found
05/09/05 07:49:40
引っ込みがつかなくなってるのはどっちもどっちだな。
社内の話なんざ他人が口出す問題じゃないだろ。学生しかいねーのか。

399:Name_Not_Found
05/09/05 08:26:07
引っ込みがつかなくて喧嘩続けるてのがそもそもガキなんだろ。
どっち側も同じこと。迷惑な。

400:Name_Not_Found
05/09/05 10:16:28
チンむくは菌

401:Name_Not_Found
05/09/05 11:09:06
質問でございます。
外部に格納されているファイル(テキストファイル)内の文字(例えば日付等)を
読み込んで、画面上の指定した位置にテキストとして表示させるには
どのような記述になりますでしょうか?

どなたか、ご教授お願いいたします。

402:Name_Not_Found
05/09/05 11:11:34
>>401
Hawk's W3 Laboratory : XML : XMLHttpRequestについて
URLリンク(www.hawk.34sp.com)

403:Name_Not_Found
05/09/05 13:04:33
>>401
そのテキストファイルはサーバ上にあるのね?ローカルなら不可能。
ファイルをサーバから読み込むのはXMLHttpRequest()等を使う。
その文字列から必要な部分を取り出し、表示させたいとこには
divでもおいてIDを振り、innerHTMLに書き込む。

これで分からないなら自分で勉強してくれ。全部書く気はない。
過去ログ読めば沢山例の出ているアタリマエなことばっかりだから。

404:Name_Not_Found
05/09/05 13:08:36
>>401
過去ログvol.35のno.489を見れ。過去ログの検索できなきゃ駄目よ。

405:Name_Not_Found
05/09/05 14:13:47 JptN4bkY
チェックボックスにチェックを入力しないとテキストエリアに
書き込めない処理をネットで調べて以下のように書きました。
更新ボタンのform actionを*1の位置にすると上のテキスト
エリアが一切入力不可になります。
*2の位置ならば入力は可能ですが、値が飛ばせなくて悩んでいます。
*1か*2でうまくする方法、または別の方法があれば教えて頂けないでしょうか


406:405
05/09/05 14:15:09 JptN4bkY
<HTML>
<HEAD>
<script Language="JavaScript"><!--
function setTF(cOBJ,fName){
document.myFORM[fName].disabled = !cOBJ.checked;
}
function setTF1(cOBJ1,fName1){
document.myFORM1[fName1].disabled = !cOBJ1.checked;
}
--></script>
<TITLE>一覧</TITLE></HEAD>
<BODY>
<FONT size="4"><B>更新したい項目を選択して</B></FONT><BR>
<FONT size="4"><B>新しいデータを入力してください。</B></FONT><BR>
<form name="myFORM">
<input type="checkbox" onClick="setTF(this,'name')">名前:(15文字まで)
 <input type="text" size="15" name="name" disabled>
</form>
<form name="myFORM1">
<input type="checkbox" onClick="setTF1(this,'ad')">住所:(30文字まで)
<input type="text" size="30" name="ad" disabled>
</form>
<FORM action="" method="post">
<INPUT type="submit" value="更新" >
</FORM>
</BODY>
</HTML>


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