+ JavaScript の質問用スレッド vol.20 +
━━━━━JavaScript質問スレ道場訓━━━━━
一、礼節を重んじ常に努力精進すること
一、ブラクラに打ち勝つ精神力を持つこと
一、心身の優れたJavaScriptを学ぶこと
一、雑草の如く生涯JavaScriptを貫くこと
一、感謝と反省を忘れないこと
以上
━━━━━━━━━━━━━━━━━━━━━━
このスレに書き込むことが許されるものは以下のとおり
・スクリプトを組むための最低限のHTMLを理解する者
・スクリプトを組むための最低限のCSSを理解する者
・JavaScriptとJavaの違いを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・過去ログや関連資料を読むことができる者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
前スレ
http://pc2.2ch.net/test/read.cgi/hp/1054043048/l50 過去ログ・関連資料・その他質問スレは
>>1-10
【質問を書く上で】 弱気な表現は避ける 弁解じみた表現は良くない。また、まわりくどい。 ex) 超初心者で何もわかりませんが…… <そんなことより自分で試してみた記述を書いてくれた方が答えやすい> 情報を小出しにしない 読み手は馬鹿にされた気分になる。 無駄な倒置も不要だ。 使用したブラウザ、バージョン、OSくらい書こう。 感情的にならない 何の説明なく決め付ける文はよい印象を与えない。 また態度の大きい人は嫌われる。 ex) 答えられねぇんなら黙ってろ!!! <お前だけだよ> 表記ミスに注意 内容がどんなにすばらしくても文字使いにミスがあると誤解を招く。 曖昧文は書かない いくつにも解釈できる文章は絶対に書かない。 ex) ここではきものをぬいでください。 「」など無駄な強調は避ける 読みにくい。♪や顔文字も同様である。 ソースは要点を整理して出す。 そのまま貼って動かせると試してもらいやすい。 長い場合はアップロードしてURIを貼る。
【Java】 と 【JavaScript】 は別物だ。(゚Д゚)ゴルァ!!
【VB】 と 【VBScript】 は別物だ。(゚Д゚)ゴルァ!! ついでに、スレ違いです。
それは言語として同じだし
そもそもJScriptはJavaScriptじゃないとかいってごねる 奴もめったにいないわけだし。JavaとJavaScriptは別物すぎ。 Java: 「int sum(int a, int b) { return a + b; } JavaScript: function sum(a, b) { return a + b; }
引っ張るネタでもないし。
質問がこない!
function sum(a: int, b: int): int { return a + b; } 型ってこうだっけ?
>>13 そりゃ何語だ?Pascalだったらこうだが。
function sum(a:integer, b:integer):integer { sum := a + b; }
もしかしてJavaScript 2.0では型宣言入るっていう話?
function sum(a:Integer, b:Integer):Integer { sum := a + b; } こうでした。
質問に飢えている今なら許されるかも! ----------------------------------------------------- function createFunction( n ){ return function( i ){ if( i > 0 ){ return Math.pow( i, n )+arguments.callee( i-1 ); }else{ return 0 ; } } } var sum2 = createFunction( 2 ); var sum4 = createFunction( 4 ); alert( sum2( 5 ) ); // 結果は 55 = 1^2+2^2+3^2+4^2+5^2 = 1+4+9+16+25 alert( sum4( 3 ) ); // 結果は 98 = 1^4+2^4+3^4 = 1+16+81 ----------------------------------------------------- クロージャ利用としているとわかってもよく理解できません。 誰かやさし〜く解説してください。
19 :
Name_Not_Found :03/06/29 02:32 ID:AQ3pRMHY
フレームをまたがって作用する様なjavascriptを外部ファイルでリンクして使うときは .jsファイルへのリンクを<head>内に書き込みするとおもうのですがこれは フレームセットのhtmlに書き込むものなのですか? それとも実際にその.jsファイルを作動させるhtmlに書くもの? あとスクリプトを外部にするのと<head>内に書くのではどうちがうのでしょうか?
20 :
Name_Not_Found :03/06/29 05:54 ID:zPXEgZOb
JavaScriptで出来てflashで出来ない事って 例えばどんな事すか
>>7 あぁ、テンプレ(?)に加えてくれたのね。ありがd
【JavaScript】 と 【flash】 は別物だ。(゚Д゚)ゴルァ!!
>>19 別にどっちに書いても好きな方でいいんじゃないの。
>>18 こういう質問はいつでも許されると思うけどな。返される関数はどうい
う関数かというと。引数iが0未満なら0を返す。そうでなければ
「Math.pow(i, n)」つまりiのn乗と、arguments.calleeというのは
呼ばれている関数自身を表すから、自分自身を再帰呼び出しして引数
としてi-1を渡すわけね。ということは「i^n + (i-1)^n + ... + 2^n +
1^n」を返す関数なわけよ。
で、function createFunction(n) { return function ... }
となっているということは、この「n」というのはcreateFunctionに渡
した引数の値だよね。だから
createFunction(2) → i^2 + (i-1)^2 + ... + 2^2 + 1^2
createFunction(4) → i^4 + (i-1)^4 + ... + 2^4 + 1^4
というふうな関数が返されるわけだ。
>>24 関数リテラルの中で再帰呼出ししたい場合はarguments.calleeを使う
よりも「function f(i) { ... f(i-1) ... }」のがスマートと思われ。
27 :
Name_Not_Found :03/06/29 22:05 ID:LK+D1K8l
>>26 こんな感じか?
構文無視みたいで少し気持ち悪いな。
function createFunction(n) {
return function f(i) {
if (i > 0) {
return Math.pow(i, n) + f(i - 1);
} else {
return 0;
}
}
}
var sum2 = createFunction(2);
alert(sum2(3));
28 :
27 :03/06/29 22:06 ID:???
あっ、インデントしくった(鬱
29 :
27 :03/06/29 22:14 ID:???
こうでもいいのか。何度もスマソ function createFunction(n) { function f(i) { if (i > 0) { return Math.pow(i, n) + f(i - 1); } else { return 0; } } return f; }
JavaScriptは糞
31 :
Name_Not_Found :03/06/29 22:17 ID:KLG2ETQY
32 :
Name_Not_Found :03/06/29 22:24 ID:VOsla6Zm
>>29 違うってば。
function createFunction(n) {
__return function f(i) {
____if(i > 0) return Math.pow(i, n) + f(i-1); else return 0;
__};
}
うーんすごい。ちょっとこういうかっこいい言語ほかにないぞ(w
>>19 実際はどこに書いてもイイが、読み込み(完了)のタイミングなど
問題が起きることがある
親フレームにコードが書いてあって、子フレームから見る際は
「ほぼ」読み込み済みと考えて差し支えないけど、兄弟フレームを
操作するコードや、兄弟フレームに記述されたコードの実行は、
読み込みが完了してないとエラーが出て、その後思った通りに
動かなくなることもある
外部jsは複数HTMLで同じ関数を使いたい場合が効果的(コードの保守性)
また、js ファイル自体がHTMLと別個にキャッシュされる(ブラウザ依存)ため、
おまけ程度に転送時間を稼げる
逆に、HTML毎に専用のjs書くなら、オーバーヘッド増えたりして、あんまりメリット無い
あと、同じ .js を読み込んでいるHTML同士で変数や関数の「共有」が
できるわけじゃないので、注意
そういう意味で、最初は、親フレームに変数も関数も集約させるパターンが
問題が起きづらい…… カモ(経験則)
タイミングの問題を避けるにはやっぱりframesetのonload から起動したく、そういう意味ではframesetを書いてある HTMLファイルに<script src="..."></script>を書きたいかもね。
35 :
27 :03/06/29 22:54 ID:???
>>32 違うってば、って漏れが書いた
>>27 と何が違うのかと(略
にしてもかっこいいかぁ?
冗談でもかっこいいなんて書けんぞ。
arguments.calleeに慣れてれば、関数リテラルのほうが全然理解しやすい。
ま、でもこれは個人の好き好きだな。
>>35 だから
>>32 も関数リテラルなんだってば。前スレでそういう話題
が出ていたと思うけど見つけられない…どういう話題だったかというと、
function f(...) { ... }
と書くと関数定義だからfという名前の関数ができてしまうが
return function f(...) { ... };
と書くとそえれは関数リテラルだからfという名前は外側の環境には
作られないというのがECMAの仕様、ただしIEではそこのところにバグ
がある、という話題。
細かいことだけど、framesetでの読み込みは単純な関数とかだったら問題ないけど、 ちょっと複雑になってくると不具合の原因になるかも。 例えば以下の関数をframesetで定義しておいた場合、 function getCookie() { var cookie = document.cookie; //... } この中のdocumentはframesetページのdocumentで、 フレームページのdocumentオブジェクトではないとか。 framesetページで変数等が静的に解決されることに注意する必要がでてくるね。
もちろん、フレーム切る以上は「どのdocumentか」は常に意識 しないとだめだよね。フレームって大変なわりにはあまりいいこと ないんじゃないかな(暴言かな)。
39 :
27 :03/06/29 23:23 ID:???
>>36 意味が分かった。無知でスマソ。
つまり以下の場合、IE以外ではエラーになるってことね。
function createFunction(n) {
var g = function f(i) {
if (i > 0) return Math.pow(i, n) + f(i - 1); else return 0;
}
return f;//未定義エラー
}
漏れもどっかでこの話題、聞いたことあるわ(w
い く ら 必 死 に コ ー ド を 書 い て も 【JavaScript OFF】 だ と 意 味 無 し
別に「どうやってできるか」とか話題するのが面白いんでいいじゃん。 必死にならないとコード書けないような奴は来なくていいよ。
42 :
Name_Not_Found :03/06/30 00:14 ID:cbIZ2A85
>>23 >>32 >>33 >>36 >>37 自分で試せばいいような事にれすどうもです。
せっかちな人は全部読み込む前にマウスを動かしたりしますよね?
そうするとマウスオーバー使ったやつなんかでエラーが起きるわけですね。
なるほど。タイミングか、そこまで考えてはなかったです。
自分はわりとこじんまりとした作り、スクロールバー無しで作りたい、
それでリンクをクリックする旅にフレームセットごと画面がばたばた書き変わるのが
いやなので複数のターゲットフレームだけを同時に変えたり兄弟フレーム同士で
連動させた部分があったり、かといってナビゲーション部分は
書き換えずに御クリックでボタン画像だけ差し換えて
現在地を解るようにするとか、そんなことばかりしてます。
よく、「まぞですか?そういうのこそフラッシュでやれば?」と言われますが
まだまだHTMLもCSSもjavascriptもままならないのでフラッシュは尻込みしてしまいます。
>>42 イベントハンドラをonloadが呼ばれた時につけるようにするとか、
onloadでフラグ立ててハンドラ類はまずこのフラグをチェックして
立ってない場合は何もせずに終わるとかしたらどうかな。
フレームの読み込みのタイミングを考慮したコーディングすると (解決策のない)環境依存したページになりそうな悪寒。
45 :
Name_Not_Found :03/06/30 16:07 ID:L9fwNfNM
すみません、リストボックスの連携・絞込みをするコードで、 function ChangeList(a,b){ for (i = 0; i < document.getElementById(a).options.length; i++) { //中略 }(a,bはリストボックスのname) という風に書いたら、 IE6では正常にに動くがネスケでは"has no properties"とエラー出てしまって、 どうやら正常にオブジェクトをとって来れないようだが どなたか原因わかる方どうかご伝授ください。
>>45 name 属性は id ではないから、 getElementById で取得できなくて当たり前。
name と同じ値の id を振るか、 getElementById(a)の代わりに
getElementsByName(a)[0] 等を使うべし。
47 :
Name_Not_Found :03/06/30 16:30 ID:L9fwNfNM
>46 早速のご回答ありがとうございます。 #またMSの親切な独自仕様にだまされた罠
48 :
sage :03/06/30 17:28 ID:L9fwNfNM
またまた質問( ̄▽ ̄;)もうネスケヤダ・・ IEでリストボックスに追加するときに使うselect.add(new Option) をネットスケープではどう書けばよいでしょうか?よろしくお願いします。
>>48 IEでも古いとaddがなかったりするんじゃなかったかな。これ定石。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var count = 0;
function add() {
var o = document.forms.f0.elements.s0.options;
++count; o[o.length] = new Option("option" + count, count, false, false);
}
</script>
</head><body>
<form name="f0" action="#"><p>
<input type="button" value="add" onclick="add()"><br>
<select name="s0"><option value="0">option0</option></select></p></form>
</body></html>
>>49 Optionのコンストラクタの第三と第四の引数の違いって分かる?
説明が見つからないのね…
mms://www.hoge.com/a/b/????/file_name.wma といったURLで、 ????ディレクトリに4文字の英数字が入ります。(全1679616通り?) この時、????に入る文字列をサーチする方法を教えてほしいのですけれど。 If文で、Elseを正解にして、エラーの出る限りループさせようと思っています。 ただ、MMSプロトコルというのが良く解らず、 HTTPでアクセスしてもブラウザでは見つかりません。 何か良い方法がありましたら、ぜひ教えれ。
53 :
sage :03/06/30 18:31 ID:L9fwNfNM
>49 ありがとうございます。m(_ _)m ところで o[o.length] = new Option(name,id); でもいけたのですが、上記のコンストラクタとはどう違うのでしょうか?
>>52 このスレに書き込むことが許されるものは以下のとおり
・スクリプトを組むための最低限のHTMLを理解する者
・スクリプトを組むための最低限のCSSを理解する者
・JavaScriptとJavaの違いを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・過去ログや関連資料を読むことができる者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
55 :
sage :03/06/30 18:40 ID:???
いまさら気づいたが、おれ、違うところにサゲ入れてたんだね 逝ってくる・・・・・
2ちゃんねる初心者?
ホームページでいくつか効果音のwavファイルを流しています。 (クリックすると音がするとか) ですが、1回目読み込むのに多少タイムラグがあります。 あらかじめキャッシュに読み込んでおくのは Javascriptでは可能でしょうか。
60 :
52 :03/06/30 19:34 ID:???
正直、スマンカッタ。 JavaScriptでやろうということに無理があったようです。
こん○○は。 早速教えて欲しい事があるんですが、お願いします。 えっとまず、インラインフレームを作って名前を(IFR) にします。するとtarget=IFRにすることでリンクができます。 それで次に質問があるのです。 親窓(親窓の中に小窓(IFR)があるとして考えてください。) から操作をして小窓をスクロールさせる。 まあ、簡単に言いすぎて意味がわからないと思うので えっと、親窓からJavascriptを使って小窓(IFR) のスクロールバーを動かす事はできませんか? ご指摘ヨロシクお願いします
>>62 opener.document.IFR.scroll(x, y);
>>57 HTML(タグ)で読み込んでおいて、鳴らさずに放っておく。
んで、JavaScriptを使ってクリック時に鳴らす。
>>63 に聞きたいんだが、なんでopenerが出て来るんだ?
>>62 ホレ。ただしiframeに表示するページも同じドメインでないと駄目よ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function scr(dx, dy) { window.frames.f0.scrollBy(dx, dy); }
</script>
</head><body>
<form name="f0" action="#"><p>
<input type="button" value="up" onclick="scr(0, -5)">
<input type="button" value="down" onclick="scr(0, 5)"></p></form>
<iframe name="f0" src="t065-a.html" style="width:100px;height:100px">iframe</iframe>
</body></html>
>>52 あのさあ、その168万通りを全部テストするわけ? 1つテストするのに
きっかり1秒だけ掛かるとして20日間掛かるわけだけど大丈夫なの?
何のテストなんだか説明してみない?
>>51 Optionコンストラクタの3番目と4番目の引数は論理型でそれぞれ「初期値
がチェック状態か」「現在チェック状態か」を表す。引数を2つしか書かない
場合は3番目と4番目はfalseとみなされるんだっけかな。
68 :
63 :03/06/30 23:08 ID:???
>>65 すまん、親窓って書いてたからウィンドウを開いて、
生成元のウィンドウのIFRAMEにアクセスするものと勘違いしてた。
69 :
52 :03/07/01 03:21 ID:???
>>66 まともなレスくれただけでも、ありがとうねと言いたい。
好きとは・・・まだ言えない。
ファイル(file_name)は沢山あります。
一つチェックするのに一秒かかるとなると少し困るんだけど、
仮にそうなら、全部を平均すると、およそ10日ですよね。
目的のファイルが見つかれば、そこで中止したいので。
結局、目的はファイルなので、
サブディレクトリを無視できるならしたいのですけど。
MMSのエラーってJavaScriptでは判断できないのじゃないかと、
悩んでいるわけでして。
そうするとMMSの勉強をしないとならないので、
ここではスレ違いということになりまして。
逝ってきますということになりまして。
文字を点滅させたいんですけどどうすればいいでしょう? <script language="JavaScript"><!-- myFlg = 0; function myFunc(){ if (myFlg == 0){ document.temp.value="a"; myFlg = 1; }else{ document.temp.value="b"; myFlg = 0; } } // --></script> <font color="#0000ff"><b><a name="temp"> <script language="JavaScript"><!-- setInterval("myFunc()",500); // --></script> </a></font></b> ってやったんですけどできませんでした。 どうすればいいのでしょう? よろしくおねがいします。
>>70 document.temp.value → document.all.temp.innerHTML
ただしIE4+だけ
>>70-71 ホレ、Gecko, IE, O7。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var count = 0, texts = ['A','B'];
function step() {
document.getElementById('i0').innerHTML = texts[++count % texts.length];
}
</script>
</head><body onload="setInterval(step,1000)">
<h1 id="i0">A</h1>
</body></html>
73 :
Name_Not_Found :03/07/01 09:55 ID:8YCrPk1K
セレクトボックスで選択して、テーブルの背景色を変えるという事がしたくて、 組んでみたのですが、IEでは上手く行ったのですが、NNではダメです。 助けて下さい <HTML> <HEAD> <SCRIPT language="JavaScript"> <!-- function change_bgcol(val_bgcol){ table_dsp.bgColor=val_bgcol; } // --> </SCRIPT> </HEAD> <BODY> <TABLE id="table_dsp" bgcolor=pink> <TR><TD> 内容 </TD></TR> </TABLE> <FORM name="form_bgcol"> <SELECT name="sentaku" onChange="change_bgcol(this.value)"> <OPTION value=pink>pink <OPTION value=red>red <OPTION value=blue>blue </SELECT> </FORM> </BODY> </HTML>
>>73 まずそのNNというのはN4を含むのかN6以降なのかはっきりさせて。
N6以降だったらIEならではのいい加減な書き方をやめればすぐ直る。
N4だとtableでは色を変えられないのでdivで囲んでレイヤーにする
んでちょっと長くなるね。
>>73 ほれ
function change_bgcol(val_bgcol){
if(document.all) table_dsp.bgColor=val_bgcol;
else if(document.getElementById) document.getElementById("table_dsp").style.backgroundColor = val_bgcol;
}
>73 >75 に else if (document.layers) 書き忘れた。 >74 見て勉強してくれ。
77 :
Name_Not_Found :03/07/01 12:29 ID:8YCrPk1K
できますね! でも全然わかんない。汗 特にif文で何をふりわけてるのか。 document.getElementById("table_dsp").style.backgroundColor = val_bgcol; だけで、IE,NN共に反応しますし。(NNは7です) getElementByIdっていうのはXULですか。。 これを足がかりに勉強します。ありがとうございました。
>>77 正しいね。document.getElementById(id名).styleだけ使っておけば
わざわざIE振り分ける必要ない。古いIE(5.1以前)は捨てるでしょ?
ちなみにXULではなくDocument Object Model (DOM)だよね。
79 :
Name_Not_Found :03/07/01 14:17 ID:Me3LoqBr
macとwinを判別して用意した外部スタイルシートを切り替えたいのですが ぐぐってもなんかやたらと難しいのばかり出てきます。 win or macというシンプルなos判別&スタイルシート切り替えの スクリプトのサンプルってどこかにないでしょうか?
getElementByIdはIE5.0以降でOKじゃなかったか?
>>78 その動けばイイという考え方は厨房丸出し。
if 文に入れるだけでエラーがでないのだからソレくらいのことはやる。
羞恥心があればの話だが。
>>81 そでつね、だからif(document.getElementById) ... だけで十分
でしょということで。古いIEとかN4を捨てたくない人は頑張るんだ
ろうけどね。
>>80 document.getElementById()はあってもstyle.backgroundColorも
あったかどうか…既に記憶していない>>IE5.0
83 :
Name_Not_Found :03/07/01 15:53 ID:QjEtjZn3
>>82aho
めんどくさいんで、漏れはまとめて onerror=null; とやってるんですが…厨房コードかなやっぱ。 てか if(document.getElementById)... ってやり方も document.getElementById が true に変換可能であるってだけで その条件式とは直接関係のない多くのことを仮定しちゃっているなら 動けばイイって考え方と大差ないよ。別にそれでいいと思ってるけど。
実際問題、ネットスケープ使ってる人は存在しないから、 table_dsp.style.backgroundColor=val_bgcol; で十分なんだけどね。
>>84 賛成だけど、先の背景の場合は
if(document.getElementById) {
__var e = document.getElementById('ID名');
__if(e && e.style) e.style.backgroundColor = '色指定';
}
くらいしとけば不完全なブラウザでもエラーは出なくなるよね。
87 :
62 :03/07/01 16:14 ID:UhY5/NIP
>>65 ありがとうございます。
これを有功に使わせていただきます。
次スレのテンプレでクロスブラウザ性について何か指針を 書くことにするかね?はいご意見あるかたどぞー。 例: IEの最新版以外はすべて無視で当然とする ってか(w
>>88 コードに要求するクロスプラウザ性は質問者が決めることだろ。
>例: IEの最新版以外はすべて無視で当然とする
そんな指針にするなら、スレタイに「JavaScript」なんてウソ書くなよw
まあ99%程度の精度で正しく実行されればいいのなら、 IE5以降を考えておけば問題ない。 逆にネスケやオペラとか考慮に入れても、100%に近づくだけで、 決して100%になるわけでもなし。
>>89 うん、そりゃ正しいね。テンプレの「〜者」に合わせると
・コードに要求されるクロスブラウザ性は質問者(Web製作者)
の判断事項であることを理解する者。
とかかな。標準への準拠なんかはどうするかな?
>>90 IE5.5より前を捨てて代わりにGeckoを入れても同じくらいの数値に
なりそうだな。
93 :
Name_Not_Found :03/07/01 17:29 ID:Y46ISY+F
FORMでリセットボタン押された後に処理したいことが あるんですけど、この場合、ふつーはどうやるんでしょうか? OnResetだとリセットの前だし、リセットされるまえにtimerを仕掛けるのも なんかへんな感じだし・・・ 先輩、おしえて
>>91 >標準への準拠
それも質問者が決めることでしょ。
>>93 <input type="button" onclick="this.form.reset();/*リセット後の処理*/">
とかかなあ。普通のやり方かどうかは解らん。
・コードに要求されるクロスブラウザ性は質問者(Web製作者) の判断事項であることを理解する者。 これを理解してない回答者が多くて小間ルナ。
>>94 それは分からん。質問者は「ハア、標準ってソレ何ですか」が多そう。
本当に質問者が決めれば済むと言えるのかなあ。
質問者に「こうしたい」というのがあればそれでいいとして、そうでない
場合は回答者が選択した上で「このコードはこういう点でIE限定」とか
「DOM2準拠」とか明示して示すとかがよくないかなあ。
97 :
Name_Not_Found :03/07/01 17:54 ID:Y46ISY+F
>>94 おお、ありがとうございます。
スマートな感じなのでその手でいきたいと思います。
感謝です。
>>95 まったくだね。ちなみに
>>73 は「NNで動かしたい」という趣旨の質問
に間違いないということでよろしいでしょうか。
これではどうかな。 ・コードに要求されるクロスブラウザ性や標準への準拠度は 質問者(Web製作者)の判断事項であることを理解する者。た だし質問者に特段の要望がない場合は回答者が選択した上で 明示する。
>>99 いちいち「IE専です」なんて明示してられっかバッキャロー、とかいう
人がいるんじゃないだろうか…
> いちいち「IE専です」なんて明示してられっかバッキャロー 本当に面倒でそんなこと言う香具師はいないよ。 IE専用だと知らずに(或いは忘れていて)答えて突っ込まれて逆切れした香具師の台詞だ。
>>82 .style はIE4でも操作できます。
function volume(x){ return function(y){ return function(z){ return x*y*z; };};} var box = new volume(1)(4)(27); ---------------------------------------- javascriptってこのような(最後の)「function(x)(y)(z)」という引き数の 渡し方ありなんでしょうか?(この表記法に何の意味があるかは別として…)
>>103 ありも無しもJavaScriptの基本
105 :
62 :03/07/01 21:20 ID:JJT6UMPN
すみませんが、もう一つ質問があります。 ご迷惑ですがどうかヨロシクお願いします。 この前の件ですが大分有効活用できました。 それでもうちょっと先ほどのを改造したいので質問に来ました。 あのボタンをずっと押しているとずっとスクロールする。 ってことは出来ませんか?ご迷惑な事は充分理解しておりますのですが みなさんのお力が必要です。お願いします。
>>104 volume(1)は「function(y) { return function(z) { return 1*y*z; } }」を返す。
だからvolume(1)(4)は「「function (z) { return 1*4*z; }」を返す。
だからvolume(1)(4)(27)は「1*4*27」を返す。引数の渡し方、普通じゃない。
しかしなんでnewがついてるのかが分からない…
>>105 何でも注文された通りに書くのがこのスレってわけじゃない。ボタンを
ずっと押している間、というふうにするためにはどーしたらいいだろうと
思う?何か努力していいこと考えられたら、書いてくれる人もいるかもよ。
>>106 >引数の渡し方、普通じゃない。
「普通だ」とも「普通ではない」とも読めるような表現を書き言葉で使うのはどうかと…
109 :
103 :03/07/01 21:48 ID:???
>>104 , 106
即レス有り難うございます。
人のプログラムでこのような記述を読んで(
>>106 さんの仰る通り)
どうしてfunction(x,y,z)というような記述をしないのだろうか?っていうか
文法上ありなのだろうか?と思って質問させていただきました。
別に無名関数が再帰してメモリの節約をしている訳でもなく意図は良く解らないのですが
(赤の他人のプログラムなので「そのもの」をもってこれません、申し訳ない)
とりあえず文法上あり、と言う事で、有り難うございました。
>しかしなんでnewがついてるのかが分からない…
すません、これは自分がつけちゃいました。意味ナシです。
>>108 そうだった、スマソかった。
>>109 それはねえ、カレーに関係があるんだよ。ム板の関数型なんたら
とかついてるスレで質問してみると親切に教えてくれると思うよ。
>>105 ホレ。Gecko、IE。のつもり。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var dy = 0, tid = 0;
function ss(d) { es(); dy = d; tid = setInterval(step, 50); }
function es() { if(tid != 0) clearInterval(tid); tid = 0; }
function step() { window.frames.f0.scrollBy(0, dy); }
</script>
</head><body>
<form name="f0" action="#"><p>
<input type="button" value="up" onmousedown="ss(-1)" onmouseup="es()">
<input type="button" value="down" onmousedown="ss(1)" onmouseup="es()"></p></form>
<iframe name="f0" src="t065-a.html" style="width:100px;height:100px">iframe</iframe>
</body></html>
function QQQ(){ //いろいろ } aiueo = new QQQ(); のとき、 aiueo.nameみたいなので、文字列"aiueo"の名前を取得したいんですが そういうのって用意されていますか?
>>112 1つ質問なんだけど、
aiueo = new QQQ();
abcde = aiueo;
としたとき2つの変数は同じオブジェクトを保持するよね。
で、このオブジェクトのnameプロパティは何であるべきだ
と思っている?
>>112 オブジェクトは固有の名前を持っていないので無理。
>>112 toStringメソッドやvalueOfメソッドのことか?
>>114 そうなんですか。ありがとう。
>>115 違いましたけど、valueOfは始めて知りました。ありがとう。
>>73 JavaScript Style Sheetsにすればいい
ご回答よろしくお願いします。 onMouseOverでレイヤーのスタイル(margin-leftの値)を変える関数をつくってみました。 function changeMargin(ID) { document.getElementById(ID).style.marginLeft = 10; } IE6,NS7だときちんと動作するのですが、NS4.7だとダメでした。あてずっぽうで、 function changeMargin(ID) { if(document.getElementById) { document.getElementById(ID).style.marginLeft = 10; } else if(document.layers) { document.layers[ID].marginLeft = 10; } } としてみましたがやはりダメでした。NS4.XでもJavaScriptでマージンの幅を変えるのは 可能でしょうか?
背景の色をだんだん変化させるスクリプトを作ろうと思っています。 5秒ごとに背景色を変える、ただしパッと切り替わるのではなく変色していく様にしたい。 IEだと希望通りになるけどNNやOperaだとどうも繰り返し時間が短い方にあわせられてしまうような変化になってしまいます。 最新のブラウザで動けば良しということでどこをいじると良いか分かる方お願いします。 以下ソース(※NNやオペラだとピカピカ変色しちゃうので注意) <html><head> <script language=javascript> <!-- var r1=0,g1=0,b1=0,r2=0,g2=0,b2=0,t1,t2,dd=10; function setColors(){ r1=Math.floor(Math.random()*128); g1=Math.floor(Math.random()*128); b1=Math.floor(Math.random()*128); t1=setTimeout("setColors()",5000); colorChenge(); } function colorChenge(){ r2+=Math.floor((r1-r2)/dd); g2+=Math.floor((g1-g2)/dd); b2+=Math.floor((b1-b2)/dd); document.bgColor=256*256*r2+256*g2+b2; t2=setTimeout("colorChenge()",100); } //--> </script></head> <body onload="setColors()" text="#ffffff">背景色変化</body></html>
>>120 document.bgColor=
'#' + (0x1000000+(r2<<16)+(g2<<8)+b2).toString(16).substring(1);
色指定は10進数じゃなくて '#' + 6桁の16進数文字列、だよね。
>>118-119 そもそもN4っていうのはテキストをreflowしない。変化させられるのは
(1)フォーム部品の内容、(2)レイヤーの位置や大きさ、それですべて。
あとは色変えるくらいか。そこまでの機能のブラウザなのね。
125 :
:03/07/02 13:00 ID:???
特定サイトからリンクされた時に他に飛ばすはScriptはこれでできますが
複数の特定サイトからの場合はつずけて「半角スペース」でよろしいですか?
よろしくご指導下さい。
<Script Language="JavaScript">
<!--
reff=document.referrer;
if(reff.indexOf('geocities.co.jp/xxxxxxxxxxx/7xxx/')!=-1){
location.replace('
http://www.yahoo.co.jp/ ')
}
//-->
</Script>
126 :
118 :03/07/02 13:07 ID:???
127 :
Name_Not_Found :03/07/02 13:16 ID:neLFq7xz
WebProg板から誘導されてきました。 マルチになってしまいますが、どうか教えて下さい。 Perlで書かれたチャットのサンプルソースを手直しして遊んでます。 ですがサンプルのままだと、発言ボタンをサブミットした時に、その発言内容がテキストボックスに残ってしまうんです。 2回目の発言をする時に一々前回の内容を手動で消すのもメンドウなので、どなたか自動で前回の発言を消す方法を教えて下さい。 作り的には、投稿部分とログ部分をフレーム分けしてます。
>>125 半角スペースで済むわけないだろ、indexOf()の勉強をしてから質問しなよ。
if(reff.indexOf('その1')!= -1||reff.indexOf('その2')!= -1|| reff.indexOf('その3')!=-1){
>>127 サブミットの結果ログが更新された時点でクリアする、でいいのね?
なおかつログと投稿部分は兄弟フレームなのね?それならそのログの中に
<script type="text/javascript">
parent.frames.投稿フレーム名.document.forms.フォーム名.elements.部品名.value = '';
</script>
というのを埋めておけばこの場所が(HTML的に)読まれる時にクリアされる。
129 :
Name_Not_Found :03/07/02 14:13 ID:a64UgaSB
複数のサムネイル画像があり、それをクリックすると 同じページにひとつある拡大画像が入れ替わるようなJavaScriptを用意したのですが、 サムネイル画像を次々にクリックすると、WinIEでのみ、 onClick処理に失敗して拡大画像が何も表示されない場合があります。 画像をロードし終わってないわけでなく、 一度サムネイル画像をクリックして、既に拡大画像が表示済みの画像でも 何度かクリックを繰り返すと失敗します。 この原因と対処策が分かる方いらっしゃいませんでしょうか? 【HEAD】 var preLoadImg = new Array(); for (var i=0; i>x; i++) { preLoadImg[i].src = "./img/bigphoto" + i + ".gif"; } function imgChg(num) { document.chgArea.src = preLoadImg[num].src; } 【BODY】 <img src="bigphoto0.gif" name="chgArea"> <a href="javascript:void(0);" onClick="imgChg(0);"><img src="smallphoto0.gif"></a> <a href="javascript:void(0);" onClick="imgChg(1);"><img src="smallphoto1.gif"></a> ...
>>129 所々省略の形跡がある虫食いコード見せられても解らないなあ。
どこかに var x=10; とか preLoadImg[i] = new Image(); とかあるはずだと思うが。
あとtypoだと思うけど i>x; じゃなくて i<x; だろ。
エラーメッセージは何も出てないの?
>>129 「onclick="imgChg(0);return false"」のようにすべてfalseを返させて
みてはどうだろう。void(0)で済んでいる気もするけどちょっと気になる。
132 :
129 :03/07/02 14:58 ID:???
>>130 すいませんです。あわてて書いていたもので、一部typoありました。
実際はもっと込み入ったスクリプトですが、
検証中につき、再現性のある出来うる限り簡略なスクリプトを色々試している最中です。
var preLoadImg = new Array();
for (var i=0; i<20; i++) {
preLoadImg[i] = new Image();
preLoadImg[i].src = "./img/bigphoto" + i + ".gif";
}
*20という数字は仮です。8くらいにしても発生する場合があります。
エラーメッセージは出てきません。
クリック音はするけど拡大画像は表示されない場合があるのです。
確認したところ、Win/Mac NN4.7x・6.0以降・MacIEでも
正常に動作したのですが、WinIE(6.0)だけこの現象が発生します。
>>129 >サムネイル画像を次々にクリックすると、WinIEでのみ、
「次々に」ってのが引っかかるなぁ、ダブルクリック拾ってるとか...
ondblclilck()も入れたらイイかも。
136 :
129 :03/07/02 15:12 ID:???
>>131 いけました!
return false; は
function imgChg(){} 内で使用して失敗していたので
関係ないかと思い込んでしまってました。
returnの認識不足かなぁ…
画像をロードしてる最中に、Javascript:void(0);が実行されて
処理がキャンセルされてしまう…ということなんでしょうか?
何はともあれ、動作的には解決しました。
ありがとうございました。
>>136 うーん、アタリか。onclickハンドラからfalseを返させるには
(1)関数fからfalseを返させた上で「onclick="return f(...)"」
(2)関数fの値は無視して「onclick="f(...);return false"」
のどちらかが必要だからねえ。でもfalseが帰らなかった場合でも
「href="javascript:void(0)"」ならページ遷移しないから動作
中断はしないはずだけど…そこがWin IEのバグなのかもね。
ちょっと調べてみたら qqq = new Array(); qqq["aaa"]=123; qqq["bbb"]=444; qqq["ccc"]=555; このときqqq.length=0で qqq = new Array(); qqq["5"]=888; このときqqq.length=6になります。 うーん、なんでなんでしょうか。
>>139 5を数値で認識したら
0〜5の要素がある=6だね
>>139 連想配列は配列ではない。
Arrayオブジェクトに連想配列のキーを追加したところで
lengthがキーの数を示すわけではない。
'5' は配列のインデックスだから
Arrayオブジェクトでは配列の長さを示すlengthが自動で変化する。それだけ。
142 :
Name_Not_Found :03/07/02 16:26 ID:i3OVidfQ
JavaScriptを使用して同じドメインでPC,i-mode,ez-web.j-sky用の異なるページ にジャンプさせたいんですけど、どなたかやり方ご存じでしたら、教えてください。
>>142 携帯電話側がJavaScriptを実装していないのでどうあがいても不可能。
サーバーサイド側の技術を探してくだちい。
アンタらいい加減にしろ(怒)。
>>1 を嫁。書き込む資格なし。
149 :
Name_Not_Found :03/07/02 18:24 ID:XBSxS8ct
40.onlinked = function(){ alert( 41.value ) ; }; IE限定だ。
>>149 そうかな?この「道場訓」は2001年11月のvol.6いらいずっと
受け継がれて来ているしそれに文句も出ていない。これに文句
があるんならよそ逝ってやってくれってことだ。
javascript:Function("for(var i=0,el;el=document.links[i];i++)if(el.getAttribute('href')==40)el.parentNode.removeChild(el);")() Bookmarklet に登録汁。
155 :
Name_Not_Found :03/07/02 18:42 ID:tMhFkiTO
エスケープ文字で文頭や行頭をあらわしたいのですがそういう表現は可能でしょうか?
>>155 エスケープ文字という意味が不明だけど。
158 :
Name_Not_Found :03/07/02 18:49 ID:tMhFkiTO
>>156 ごめん正規表現の¥に続く文字 \b とかのことです
159 :
Name_Not_Found :03/07/02 18:49 ID:XBSxS8ct
160 :
Name_Not_Found :03/07/02 18:50 ID:tMhFkiTO
>>157 それは改行ですよね
フォームに入力された文字の文頭を検索したいのです
161 :
62 :03/07/02 18:53 ID:2W6QbbFD
>>111 ありがとうございます。
2度もすみません。
>>みなさんへ
確かに注文してばかりですみませんでした。
ごめいわくをかけました。。。
>>158 =160
alert( 'ab1c\nd2ef\ng3hj' .match(/^\w\d/mg) )
m フラグ立てとけば ^ で行頭にマッチする。
164 :
127 :03/07/02 20:18 ID:1ea1RM45
>128さん 有難うございます。 ログ部分はiフレームで埋め込まれているんです。 ですから教えて頂いた「投稿フレーム名」に何が該当するのか、イマイチ分かりません。 色々試しているところですが上手くいきません。 あと、このログ部分なんですが、5秒おきにリフレッシュかけてるんですよ。 ですから教えて頂いた仕様だと、コメントを入力している途中に5秒経ったら、内容がクリアされてしまう気がするのですが・・・。
165 :
Name_Not_Found :03/07/02 20:36 ID:tMhFkiTO
166 :
Name_Not_Found :03/07/02 22:22 ID:Q2cikm9F
>>165 寄せ集めと言うかパズルと言うか…なんともコメントしがたいな
167 :
:03/07/02 22:46 ID:e9xVw5at
ポップアップでwindow.focusがうまくいかないブラウザがあるんだけど これの代わりになるものってあるの?
>>165 マッチしねーぞゴルァ・・・ということか?
"投稿日" があるからだろ?
そーじゃねーのか?
言ってる意味ワカラン。
>>167 窓を操作するメソッドてわりと限られてるからねえ…ないかもねえ。
window.resizeBy(1, 1)とかでちょっと大きくしたら前に出たりしな
いかねえ。やっぱり駄目かも。
>>164 なるほど、5秒おきにクリアされるんじゃまずいよね。そんなん
だったらsubmitしたときにフラグ立てて5秒間隔でチェックして
フラグ立ってたらクリアするというのがいいかも。(submitして
から5秒待てばデータ送信は終わるのね?送信される前にクリア
しちゃ何にもならないからね。)
170 :
167 :03/07/03 00:14 ID:4JCkz9IB
>>169 レスさんくす
ググって出てきた方法かたっぱしから試したんだけどだめだね。
必ず前に出す確実な方法ってないんだろうか、、、みんなどうしてんの?
たぶん、ポップアップさせてしかも前面に出すなどという 邪魔くさいことはしないのが吉とかいう結論なんじゃないかと。
172 :
167 :03/07/03 00:24 ID:???
>>171 いやバナーじゃなくて、リンクなんだよ
フラッシュだからサイズも固定させてポップアップしたいんだけど
>>172 書き忘れたがその前面にこないブラウザな。
通常はセキュリティの面からデフォルトで最前面にくるハズなんだがな。
175 :
Name_Not_Found :03/07/03 00:47 ID:quom7O07
質問失礼致します。 ブラウザを閉じるアクションによってCGIプログラムが 起動されるような仕組みを組むことは可能でしょうか。 具体的には、クライアントがログアウト操作をせずブラ ウザを閉じた場合、最後に必ずログアウト処理をクライ アントが気付かぬところで実行させたいということです。 もしもご存知でしたら、お教えいただきたい次第です。 宜しくお願いいたします。
入力可能なプルダウンメニューをフォームに置きたいんだけど、 作り方分かりますか? 以前どっかのページで見たんだけど、そのURLを忘れちゃって。
>>175 window.onunloadで新しいウィンドウを開くとか?
新しいウィンドウには、「処理中です。操作しないでください。」とか
>>178 たぶん、プルダウンメニューとテキストボックスを組み合わせて
それらしく見せてるだけ何だと思うけど。
なかなか見つからねぇ〜
>>180 こんな感じか?
<HTML><HEAD><STYLE>
#PD {
HEIGHT : 1EM ;WIDTH : 4EM;
OverFlow : HIDDEN;
}
</STYLE></HEAD><BODY><SCRIPT>
maxHeight = 150; // 縦最大
minHeight = 20; // 縦最小
stroke = 10; // わかんなけりゃ
timer = 50; // 適当に数値変えて試す
flag = 1; i =1; // いじらない
function func(){
if(flag){
if(i*stroke < maxHeight) ++i ;
else { flag =0; return; }
} else {
if(i*stroke > minHeight) --i;
else { flag=1; return }
}
document.getElementById("PD").style.height = (i*stroke);
setTimeout("func()", timer);
}
</SCRIPT>
<FORM><DIV ID="PD">
<A HREF="#" onClick="func();return false;">ココになんちゃって画像</A>
<INPUT TYPE=TEXT SIZE=5 NAME=NO1><INPUT TYPE=TEXT SIZE=5 NAME=NO2>
<INPUT TYPE=TEXT SIZE=5 NAME=NO3><INPUT TYPE=TEXT SIZE=5 NAME=NO4>
<INPUT TYPE=TEXT SIZE=5 NAME=NO5></DIV></FORM></BODY></HTML>
>>139 >>141 JavaScriptでは連想配列のみで、インデックスをもつ配列があるわけではない。
qqq[5],qqq['5']はともに内部的には文字列に変換され、連想配列として扱われる。
便宜上、整数数値に変換できる場合はlength-1と比較し、length値を変更しているが、
これはプログラマーが通常配列の使い方をした場合に、便利なだけで特に意味はない。
length値を変更すると、length値より大きな数字に変換できる連想配列は削除される。
183 :
Name_Not_Found :03/07/03 16:16 ID:T8EvBuG0
<script language="javascript"> <!-- var imgnum=1; document.write("<img src='imgnum.jpg'>"); //--> </script> これでエラーになります なにがいけないのでしょうか? 即レスくれたらありがたいっす
即レス。 ウソウソ、どういうエラー出るのか書いてみなよ。全角文字混ざって ないよね?あとどういう位置にこの<script>...</script>はさんでる?
>>183 エラーはでないでしょ?
1.jpgは表示されないかもしれないけど…
var imgnum=1;
document.write("<img src='"+imgnum+".jpg'>");
即レスその2。 もしかして画像ファイル名は「1.jpg」なの?もしそうなら 「document.write("<img src='" + imgnum + ".jpg'>");」ね。
かぶった…
<html> <head> </head> <body> <script language="javascript"> <!-- var imgnum='1'; document.write("<img src='imgnum.jpg'>"); //--> </script> </body> </html> これがソース全部です エラーというか画像が表示されません。もちろん1.jpgという画像はあります 表示されてない画像のプロパティを見るとそのままimgnum.jpgになってます
できますた ずっと悩んでたんでできたとき感動しますた タンキュー!!
190 :
189 :03/07/03 17:04 ID:T8EvBuG0
<html> <head> myImage=new Image(); myImage.src="1.jpg"; myImage.src="2.jpg"; myImage.src="3.jpg"; myImage.src="4.jpg"; myImage.src="5.jpg"; myImage.src="6.jpg"; </head> <body> <script language="javascript"> <!-- var imgnum=1; function myimg(){ document.write("<img src='"+imgnum+".jpg'>"); imgnum++; if(imgnum==6)imgnum=1; } //--> </script> <script language="javascript"> <!-- setInterval("myimg()",4000); //--> </script> </body> </html> 時間が経つ毎に画像をきりかえるっていうことはjavascriptでは可能なんですか? ↑やってみたけどきりかわりません
>>190 とりあえずとほほ辺りをざっと読んでくれ。
>>190 とほほ読むより前スレと今スレを通読するんでいいんじゃないかな。
あのね、document.write()ってページが表示され終った後で使うと
その表示されてるページがクリアされてそれから新しい内容を書き
はじめるのね。ということは、現在のページに入っているJavaScript
もパーになるわけさ。だからdocument.write()は使っちゃダメ。
画像を途中で取り換えるのならimgタグは普通にHTML中に
<img src="1.jpg">
とか書いておいて、JavaScript側ではdocument.write()の代わりに
document.images[0].src = imgnum + '.jpg';
なんて感じでsrcだけ取り換えていくようにすれ。
193 :
190 :03/07/03 19:21 ID:???
できましたありがとうございます でもそのままコピペしただけなんで、なんでそうなるのかいまいち理解できてません 解説してくれているサイトないでしょうか?とほほは見ましたがよくわかりませんでした・・・ document.images[0].src = imgnum + '.jpg'; とくにこの[0]がどこから来ているかわかりません それから <img src="1.jpg"> と書いているのになぜ切り替わるかもよくわかりません
>>193 文書中に <img> でいくつか画像を入れてみて [0] の数字を変えてみそ。
195 :
193 :03/07/03 19:56 ID:???
わかりましたー! うまく説明できませんけど切り替える画像を選択してるって解釈でいいですよね
196 :
Name_Not_Found :03/07/03 20:56 ID:quom7O07
質問失礼致します。 新しいウィンドウから、フォームのボタンでアクションを起こすと そのウィンドウを呼び出した元へ引数つき(POSTではhidden等) でアクセスできるような仕組みを組むことは可能でしょうか。
197 :
Name_Not_Found :03/07/03 20:57 ID:mJ23DWTQ
javascriptなのかよくわからないけど %u3068は「と」を表しているらしいんです。 これらはどうやったらわかるんでしょうか?
>>197 こういうこと?N4, Gecko, IE, Opera。のつもり。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function calc() {
var e = document.forms.f0.elements;
e.t1.value = eval('"\\u' + e.t0.value + '"');
}
</script>
</head><body>
<form name="f0" action="#"><p>
数字4桁→<input type="text" name="t0">
<input type="button" value="変換" onclick="calc()"><br>
対応する文字→<input type="text" name="t1">
</p></form>
</body></html>
>>196 元の窓に名前がついていれば、POSTするフォームのtargetにその
名前を指定するだけだと思うけど。ついてないなら、元の窓に
隠しフォーム作ってPOSTさせる。
200 :
Name_Not_Found :03/07/03 23:59 ID:quom7O07
>>199 すみません、いまいちイメージが湧きません。
まず、Aというウィンドウからjavascriptなりで新規ウィ
ンドウBを立ち上げますよね。
ここでBでsubmitした時、その結果をAで表示される
ようにしたいのですが、Aにtargetをつければ自動で
BからAに返ってくるということでしょうか。
重ね重ね申し訳ありません。
>>200 スクリプトを全部Bに置くとしてですね。まずAに名前を
つけます。
「window.opener.name = 'ResultWindow';」
(既に名前があるならわざわざつけなくてもその名前を
そのまま使ってもいい)
あとはBに書くフォームタグにtarget属性を指定。
<form ... target="ResultWindow">
...
</form>
これでどうかな。
JavaScript でゲーム作った事ある人、 今までどんなの作った? で、テトリス作った人いるかな? 作ろうかと思ったが既に存在してる悪寒。
検索してみ
>>201 ほぉ、window.opener.name 初めて知りました。
本当に貴重なご意見有難うございます。
これからやってみますね。
205 :
202 :03/07/04 01:10 ID:???
>203 激しくヒットした罠(藁
206 :
193 :03/07/04 14:54 ID:Pc1WTION
<script language="javascript"> <!-- myImage=new Image(); myImage.src="1.jpg"; myImage.src="2.jpg"; myImage.src="3.jpg"; function myZoom(){ document.images[3].src=""; } //--> </script> </head> <body> <img src="1.jpg" width="100" height="120" onMouseover="myZoom()" name="1"> <img src="2.jpg" width="100" height="120" onMouseover="myZoom()" name="2"> <img src="3.jpg" width="100" height="120" onMouseover="myZoom()" name="3"> <BR><BR> <img src="blank.jpg"> 小さく表示された3枚の画像にマウスを乗せると、下のblank.jpgに大きく表示されるというのを 作ってるんですが、 document.images[3].src=""; ↑いろいろやりましたがこれをどう書けばいいのかわかりません。ご教授ねがいます。
>>206 あんまりヘンな技を駆使するより呼び出すところは「myZoom(1)」とか
「myZoom(2)」とか書くことにして、関数側でそのパラメタを使えば。
function myZoom(n) {
document.images[3].src = n + '.jpg';
}
208 :
206 :03/07/04 16:03 ID:???
ありがとうございます。勉強になりますた。
209 :
Name_Not_Found :03/07/04 16:49 ID:EtAf0lup
fooと言う名前のウインドウがあったとして、このウインドウのオブジェクトを あとから取得する方法はないでしょうか? 通常だったら fooWinObj = window.open("", "foo"); といった感じで最初に取っておくべきなんですが、あとから欲しいのです。 fooWinObj = windows.names["foo"];とかいろいろやってみたんですが ゲトーできません。やっぱそんな配列ないみたいで… そりゃそうか。 尻を叩きながらベッドに駆け上がってもひらめかないので頼らせてください。
「○○○広告」というリンクしたのを 300個近くあるhtmの上段に 一括でする方法でJavaScriptの場合はどうやるのでしょうか? どうかお願いします。 検索用のヒントでも構いません・・・
>>210 これを「banner.js」名で保存。
banner='○○○広告'; //ここを編集して挿入したい文字を記入(htmlタグ可)
document.write(banner)
html内の挿入したい部分にこれ↓を貼る。
<script language="javascript" src="./banner.js"></script>
結局javascriptでもSSIでも挿入したいhtmlはすべて修正することになるね。
DWとかGLがあるなら、一度に複数のファイルの置換ができるんだが・・・
無ければ1つファイル修正せなあかんな。
>>210 表示上そういう風に見えればいいだけの場合、
もしその300個近くのhtmlが必ずフレーム内に表示されるものであるなら
親フレームにスクリプトを一つ書けばできるかもしれない。
あと、全てのhtmlが共通のjsファイルを既に利用しているような状況なら
そのjsファイルにコードを追加すれば可能だと思う。
ただ、大量のファイルを1クリックで変更した後に保存する方法を聞いてるなら
そういうのはブラウザ上で動かすJavaScriptでは無理。
ローカルでJScriptでやるならwin板(だっけ?)のWSHスレ等で聞いた方がいいと思う。
# 漏れだったらPerlでやるな。
213 :
210 :03/07/04 20:22 ID:???
>>211 >>212 さっそくのご返答ありがとございます。
感謝です。
<FONT color="#ffffff"><FONT color="#ff33cc"><FONT color="#ff33cc"><A href="
http:// ○○○○"><FONT size="-2" color="#ff33cc">ヒデキ<BR>
広告社
というモバイル広告をすべてのhtmに一括で置換です。
モバイル用広告なのですが、
214 :
211 :03/07/04 20:35 ID:???
>>209 別に後からでも「win = window.open("", "foo");」で取れるだろ。
>>215 回答ありがとうございます。
その方法でオブジェクトが取れるのは確認しているんですがlocationも
動いてしまうのでほかに方法があればと思ってます。
穴になりかねないので無闇やたらにほかのウインドウを取得できなく
なってるような気がしないこともないですが…
>>216 え、location動く? 「""」なら動かないと思ったけど。ただし、
表示してるページがJavaScript動かしてるページと同じサーバで
ないとダメだろうけど。
>>216 win = window.open('javascript:void(0)', 'foo');
IE6でしか試してない。
>>217 マクーIE 5.16なんですが動いてしまいます。
対象ウインドウの中身はご指摘どおり他ホスト物。
>>218 ぉぉ、そっか!
うまくいきました!感激ですグレイトです素敵です愛してますありがとう!
回答してくれた人と考えてくれた人、本当にありがとうございます!
ここで聞いて良かった〜
cookieはなんでURLエンコード必要なんでしょうか?
>220 escape unescape問題
JAVASCRIPTで、JAVASCRIPTのソースを見られないようにできますか? HTMLのソースじゃないです。 む・・・むりかなぁ・・・
>>220 別にURL中に使用するわけではないのでURLエンコードである必要は特にない。
ただHTTPメッセージに使用できることになっている文字列には制限があるので
URLエンコードを流用して使用可能文字列にお手軽に変換していることが多いのだと思う。
>>222 JavaScriptで見られないようにしたソースは
JavaScriptで簡単に見ることが出来ますが、それでいいですか?
>>222 右クリ禁止と暗号化とあるけど、どっちも嫌われるよね。
過去ログ全部見ればいろいろ載っているとだけは言ってあげよう。
>>220 格納しようとした文字列のなかに「; expires=過去の日時」とか
あったらそのクッキー削除されちゃうじゃん。とにかく特殊記号
が入ってたらまずいわけ。
>222 HtmlEncoderPro Xorhtml 高度なjavascriptサイトの奴とか
227 :
Name_Not_Found :03/07/05 12:18 ID:iAcV+TU1
Javascript初心者なのですが。 親窓から小窓を出すときに window.open を使って、 小窓のサイズやメニューバーなどを非表示に出来ますが、 他の方法で、 アンカーからターゲットで _blank で新しい窓を出して、 その窓が onLoad で自分のメニューバー等を非表示にする 方法はありませんか? ブラウザーはIE6.0です。 よろしくお願いします。
228 :
Name_Not_Found :03/07/05 12:42 ID:8IbOnRze
いろいろ調べたのですが、できるかどうかわからないのですが聞いてください。 今のウインドウからそのウインドウを開いた親ウインドウのサブルーチンを動かすということはできますか? たとえば今のウインドウのボタンを押すとおやウインドウのボタンを押したことになりサブルーチンが動くとかそういうかんじです。 JAVASCRIPTorVBSCRIPTorASPで行いたいとおもってます。
230 :
228 :03/07/05 13:56 ID:8IbOnRze
レスありがとです。 それじゃー親のところに function sub() としとくと子ウインドウから window.opener.sub() でできるのですか?
232 :
222 :03/07/05 14:35 ID:???
>>223-225 レスサンクスコ。
外部jsファイルだとちゃんと書けばよかったなぁと。
htmlに全部埋めこんちまえば、暗号化できるのは知ってた。
解読可能だってのも。
まー、ソース隠蔽は無理そうだね。
>232 Antidote html protecter
>>232 JavaScriptに頼らないソース隠蔽だけならMS謹製のスクリプトエンコーダーが。
ただwindowsのIEでないと復号できないけどね。
>234 MSのスクリプトエンコーダーは解析済みだから意味なし
>>235 そうなんだ。知らなかったよスマソ。
解析結果ってどこかにあれば教えてもらえませんか?
237 :
228 :03/07/05 15:48 ID:8IbOnRze
ページを更新できないようにする方法ってある?メニューバーをけさずに
241 :
Name_Not_Found :03/07/05 20:17 ID:7Htytfsr
IE4,5,5.5,6, Opera6,7, Netscape4,6,7で 「HTMLページの読み込みが完了しているかどうか」 を示すプロパティがあれば教えてください。
>>241 全ての環境をもってる訳じゃないが、概ね「window.onload」でうまくいくと思う。
243 :
241 :03/07/05 21:26 ID:7Htytfsr
>>241 >>242 window.onloadで何かフラグを立てればいいのは分かりますが、
その方法は使えないものとして下さい。
IE6で調べたところ、window.document.readyStateというプロパティがあり、
これで「読み込み中か、読み込みが完了したか」が分かります。
クロスブラウザでこのようなプロパティを探しているのですが、
存在するのならば教えて下さい。
>>243 というより、クロスブラウザというなら
<script>
flag=1;
</script></body></html>
なんじゃないか?
>>233 http://pc2.2ch.net/test/read.cgi/hp/1051005278/ 7 :Name_Not_Found :03/04/22 19:52 ID:???
以下をアドレスバーにコピペしてENTER
ドラッグ禁止解除
javascript:document.onselectstart=null;eval();
右クリック禁止解除
javascript:document.oncontextmenu=onmouseup=onmousedown=null;eval();
エンコード後のソースを表示
javascript:document.body.innerHTML="<plaintext>"+document.all.tags("HTML")[0].outerHTML;eval();
*************************
結局ソース隠蔽は無理のようですね。
alert( "自分の馬鹿さを晒し上げているスレはここですか?"+ "hegth:100px; → これを実数値(正確には実数値+単位)という"+ "hegth:100%; → これを割合値という" );
hegthて何?
>246 ご、誤爆なのか? どれに対するレスだ?
249 :
241 :03/07/05 23:56 ID:7Htytfsr
>>244 レスありがとう。
ですが、それも無しの方向でお願いします。
「外部スクリプトファイルを読み込むだけで良い」
と、そういったライブラリを作成しています。
そのライブラリ中の関数で
「もし、読み込み中ならdocument.writeで書き出し、
読み込み完了後ならdocument.body.appendで動的に挿入する」
といった処理をしたいのです。
>>249 あれもなし、それもなしでは答えようがない。
>もし、読み込み中ならdocument.writeで書き出し、
>読み込み完了後ならdocument.body.appendで動的に挿入する」
>といった処理をしたいのです。
処理そのものは何がやりたいのかわかったが、具体的に
それでどんな利点があるのか解らない。
>外部スクリプトファイルを読み込むだけで良い
と言うのはjavascriptを自分で書けない人に提供する方法として非常に
いいと思うが、だったら、onloadで一括しちゃえばいいじゃないの、
自分には思えてしまうのだが。
>249 方針を変えて、外部スクリプトに onload=hogehoge; function hogehoge(){ ... hoge.innerHTML = "ぬるぽ"; } とかしる
253 :
241 :03/07/06 00:17 ID:nITWXo6y
>>251 >処理そのものは何がやりたいのかわかったが、具体的に
>それでどんな利点があるのか解らない。
ユーザに「この関数はページ読み込み前に呼び出してください。」
と書くのは簡単ですが、出来るだけユーザには制約を与えたくないのです。
実は呼び出すのは関数ではなく、コンストラクタなのですが、
いつでもどこでもインスタンスを生成可能ということで、
ライブラリの自由度が上がるものと思っています。
>onloadで一括しちゃえばいいじゃないの、
>自分には思えてしまうのだが。
読み込むファイルが少数ならそれでもよいと思います。
ライブラリがwindow.onloadに関数を設定する場合、
ユーザがonloadを上書きしてしまう可能性があります。
JavaScriptが
addEventListener("onload", func0)
addEventListener("onload", func1)
というような仕組みになってれば良かったんですけどね。
っと、話がずれてきましたね。
>>241 をどなたかお願いします。
「存在しない」ならば、それはそれで教えて下さい。
よろしくお願いします。m(_ _)m
>>253 onloadの書き換えについてだけユーザに負担してもらうというのは。
あなたがそのイベントリスナを提供して、onloadに追加させる。
>>254 の一例
<script type="text/javascript">
onload = function() { alert(1); };
function addOnload(func) {
var _onload = onload;
onload = function() { _onload(); func(); };
}
addOnload(function(){ alert(2); });
addOnload(function(){ alert(3); });
</script>
256 :
241 :03/07/06 00:45 ID:nITWXo6y
>>254-255 ほんとにほんっとにわがままでごめんなさい。
純粋にプロパティがあるのかないのかを知りたいです。
(ちなみに、そういった仕組み(addOnload)は、
自分しか使わないライブラリには適用しています。
非常に便利ですよね!)
ユーザ(や他の開発者)にはサラッと
<body onload="snow();">
とか書いてしまうものです。
または既に書いてしまっている人もいるでしょう。
そういった場合、余計なサポートが増えてしまいそうな気がします。
>255 ひとつ賢くなりました
>>256 <script type="text/javascript">
window.my_loading_check = false;
function addOnload(func) {
var _onload = onload;
onload = function() { _onload(); func(); };
}
addOnload(function(){ window.my_loading_check = true; });
</script>
でいいんじゃない?
>または既に書いてしまっている人もいるでしょう。
>そういった場合、余計なサポートが増えてしまいそうな気がします。
そのためのaddOnloadだと思うんだけど
ちゃんと理解してる?
260 :
241 :03/07/06 01:18 ID:nITWXo6y
>>259 >>または既に書いてしまっている人もいるでしょう。
>>そういった場合、余計なサポートが増えてしまいそうな気がします。
>そのためのaddOnloadだと思うんだけど
>ちゃんと理解してる?
>>253 を参照。
>ユーザに「この関数はページ読み込み前に呼び出してください。」
>と書くのは簡単ですが、出来るだけユーザには制約を与えたくないのです。
>>260 意味がわからんが、とりあえずそんなプロパティはない。
人の好意を無碍にするならあとは自分でなんとかしろ。
>260 >259を外部ファイルの先頭に書くだけだと思われ ユーザーは<script ... src="hoge">するだけでいいかと
263 :
Name_Not_Found :03/07/06 01:26 ID:paKDFzqH
余りに低レベルな質問だが 「javascriptでデータを出力する」 関連のものをありったけ教えてほしい 例えば「document.write」とかそういうの(わかりにくいかな)
>241 はイイ人すぎです。
>>263 全く自分で調べる気などないのか!!!!!!!!! (゜△゜;)
>>241 もっと詳しいことが分かれば、別の方法で対策できるかもしれないけどなー…
>>263 document.body.innerSext
>263 もーネーYO.(藁
>>263 document.body.innerText
271 :
241 :03/07/06 01:37 ID:???
>>261 JScript以外にもあっても良さそうな気がしたのですが、
ないんですか。ガ━━ΣΣ(゚Д゚;)━━ン!!ですね。
どうもみなさんありがとうございました。M(_ _)M
>>263 alertだって立派に出力だし低レベルって自分で言うなら少しだけでも調べてごらん。
275 :
241 :03/07/06 01:53 ID:???
>>272 察しの通り、理解力ないです。
悪意もあります。だって、質問と答えとが離れていってるんですもの〜。
俺は「プロパティがあるのかないのかを知りたいっちゅうねん!」
っていう話ですよ!
外堀から攻めるのも大事ですけど、直球で答えて欲しかった・・・。
気分を害された方、ごめんなさい。
(ちなみに、そういった仕組み(addOnload)は、 自分しか使わないライブラリには適用しています。 非常に便利ですよね!) ユーザ(や他の開発者)にはサラッと <body onload="snow();"> とか書いてしまうものです。 ------------------------------------------- Σ(;´△`)エッ!?
>>275 あったら最初から答えていると思われ。
ないから懸命に代替案考えているのだと思われ。
>>276 あなたは自分のした引用の中に答があることに気づいていない。
>>275 馬鹿かお前。ないから代替の方法示してくれてるんだろーが。師ね。
理解力ないんじゃなくて頭が悪いんじゃん。 真面目に答えた人の立場がないな。 こんな質問者ばかりじゃないからめげずにいきましょ。
281 :
276 :03/07/06 01:57 ID:???
(ちなみに、そういった仕組み(addOnload)は、
自分しか使わないライブラリには適用しています。
非常に便利ですよね!)
ユーザ(や他の開発者)にはサラッと
<body onload="snow();">
とか書いてしまうものです。
または既に書いてしまっている人もいるでしょう。
そういった場合、余計なサポートが増えてしまいそうな気がします。
-------------------------------------------
Σ(;´△`)エッ!?
これならいいか?
>>278
282 :
263 :03/07/06 01:59 ID:???
こんなアフォに教えてくれてありがdo(⌒▽⌒)o
まぁまぁ、マターリいきましょ。
人の善意を踏みにじって悪意の返答か・・・最悪な人間だな。 そんなにちゃんと理解しててプロパティの存在だけ聞きにくるならリファレンスでも読めよ。 あげく言うだけ言ってごめんなさいとは本当に最低だぞ。 直球で恐縮だが、人間として基本的なところを優先して学んだ方がいい。
答え>262 以降放置で
次の質問どうじょ ↓↓↓↓↓↓
質問は特別ありません。
ビヘイビアってなんですか?
マクロメディア?
「はや」がJavaScriptでは「%u306F%u3084」となっています。 「%u306F%u3084」から「はや」を出すには相対表とか変換ツールとか.. そういうものないのかなぁ・・やっぱ
>>292 アドレスバーに
javascript:alert(unescape("%u306F%u3084"));
って入れて味噌。
IE5って関数リテラルの中の変数保持してくれないですよね? IE6では動いてもIE5ではエラーになる・・・ NN7は捨ててもIE5は捨てられないので、困ります。
>>296 withを使うとのろくなるのでよくないということになってるかな。
ふつーの環境でふつーの速さで動くんなら別にいいんじゃないの。
自分では絶対使わないけど(これは単に趣味の問題)。
>>294 JavaScript的にはIE 5.5からだいぶよくなった。5.0はねえ。
でも関数クロージャ機能がどうだったかは覚えてないや。
>>294-295 関数クロージャの簡単なテスト。「こんにちは」「さようなら」
が入れ替わりステータスバーに出るならOK。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var m = 'しらん';
function test(m, t) {
setInterval(function() { window.status = m; }, t)
}
test('こんにちは', 1300);
test('さようなら', 1700);
</script>
</head><body>
<h1>test...</h1>
</body></html>
>>299 ぜひかっこいいの貼ってよ。勉強させてもらうから(w
いつも同じ茶番だな。
まったくだ、DOCTYPE氏に対抗してまっとうなプログラム貼る 奴はいないのかね?
まっとうなプログラム書ける常連は数名いると思うが煽ってる奴は そんな能力はないんじゃないかな。
<!DOCTYPE 自分のコードなんてヘタクソだと思ってますから。 他人のコード読んで参考にしたい、これ本当。でもこれはすごい というのは正直そう頻繁にはお目に掛かれていない。>
お前らうるさいよ。
とりあえず299から306まで透明あぼーんがよろし。
漏れ、5スレくらい前から見てるんですが、 <!DOCTYPE> 書いてあると何故か荒れますよね? なんか1〜2匹程度の粘着がいると思うんですが、理由がわかんないんですよ。 もっと以前のスレで<!DOCTYPE>議論とかあったんですか? 先住民の解説きぼん。
1つに、ここはコテが嫌われる板だから。コテもどきも同様。理由は知らん。
標準準拠とかクロスブラウザとかを憎悪してる奴がいるんでしょ。 Web製作板だっつーのに憎悪したってしょうもないと思うんだが。
310 :
294 :03/07/07 07:57 ID:???
>>297 >>298 ありがとうございます。
下記のようにしたらたくさんエラーがでてきました。>IE5で
IE6だと正常です。
ただ、
>>298 さんのコードでクロージャは働いていると分かりました。
ありがとうございました。
<html><head><title>???</title>
<script type="text/javascript">
function test(m, t) {
for(var i=0; i< 50; i++)
setTimeout( function(){ window.status = m; }, t*i);
}
test('こんにちは', 1300);
test('さようなら', 1700);
</script>
</head><body>
<h1>test...</h1>
</body></html>
>>310 どういうエラーがどの行から出るの?>IE5
312 :
294 :03/07/07 08:15 ID:???
>>311 オリジナルのコードのときも含めて
変数が未定義という趣旨のメッセージが出てました。
>310のコードでは"windowが未定義です"みたいなメッセージもでてました。
が、なるときとならないときがあるようです。
もしかしたらうちの環境がおかしいのかも・・・とだんだん思ってきました。
もしそうでしたらごめんなさい。
>>312 うーん、なんかその環境が危うい感じかなあ。IE5持ってる他の人
の報告をキボーン。
314 :
294 :03/07/07 09:29 ID:???
<html><head><title>???</title> <script type="text/javascript"> function test(m, t) { for(var i=0; i< 150; i++) setTimeout( function(){ window.status = m + i; }, t*i); } test('こんにちは', 1300); test('さようなら', 1700); </script> </head><body> <h1>test...</h1> </body></html> たびたびすみません。これで100%再現するようになりました。
>>314 それって294の問題と違うんじゃ…
当初のこーども見せて欲しい。
s/こーど/コード/;
318 :
Name_Not_Found :03/07/07 21:39 ID:Oh7swpH2
質問失礼します。 cgiプログラムをJavaScriptで呼び、そのcgiの返り値を JavaScript側で受けるということは可能でしょうか。 ご存知の方いらっしゃいましたら、どうか教えてください。
それって普通にできない? 差し支えない範囲でいいからもう少し具体的に書ける? どういうふうにつまずいてるのかがわからないね。
320 :
Name_Not_Found :03/07/07 22:07 ID:Oh7swpH2
>>319 説明不足ですみません。
私自身知識が無いもので、jsからcgiをたたく方法がdocument.locationしか
思い当たらないのですが、これだとそのcgiに飛んでしまいますよね。
画面は保持したままで、cgi内部でDBを更新したりファイルを作成したり
したいのですが、どうもうまくいきません。
何か良い案があれば教えてください。
お願いいたします。
ユーザーには同じ画面を見せ続けたいってことね。 cgiを実行させる以上locationは必要だと思うんでコソーリやっちゃえば? たとえば隠しフレームを作っておいてjavascriptはそこに置くとか。 隠しフレームはいろいろやりかたがあると思うけど <frameset cols="100%, 0"> <frame src="content.html"> <frame src="js.html"> </frameset> とか自分で考えてみてください。 ほかにもっといい方法があれば誰か教えてくれると思うんでお待ち。
322 :
Name_Not_Found :03/07/07 22:37 ID:Oh7swpH2
>>321 いろいろやってみたいと思います。
貴重なご意見有難うございました。
>>320 こんな風にすればスマートかも。
cgiはスクリプトの書かれたテキストを返せばそのまま処理できる。
<script id=script1 src=about:blank></script>
<script>
function test1(){
script1.src='てスト.cgi';
}
</script>
<a href=javascript:test1()>test1</a>
324 :
Name_Not_Found :03/07/07 23:52 ID:Oh7swpH2
>>323 うーん、やってみたのですが、どうやってもスクリプトエラーに
なってしまいますね、、、
引き続き試してみます
325 :
_ :03/07/07 23:54 ID:???
うろ覚えで申し訳ないが、HTTPのステータスコードの204を返す、なんて方法もあった気がする。
>>326 検索してみた。面白い status があるもんだね。
これだと CGI の実行結果(標準出力)は利用できなくない?
>>326 スレ違いだけど。Perlだったら次のように。
print "Status: 204 No Content\n\n";
サーバやブラウザによっては駄目という説もある。
329 :
Name_Not_Found :03/07/08 00:15 ID:cbo/jc83
キタ━━━━━━━━━(゚∀゚)━━━━━━━━━!!! print "Status: 204 No Content\n\n"; で、きました! 皆様、本当にご親切にしていただき、有難うございました。 本当に本当に感謝です。
返り値はどうやって取るの?
ほんとスレ違いなんで感謝されてもあんまし喜べないな。結果は 後でまた別の「結果取り寄せCGI」を呼ぶんじゃないだろうか。
この場合、結果はどこに吐くんだ?
Status: 204、safariは空白の画面になっちまうな…
こりゃバグと言っていいだろ。
>>333 凝ってておもしろいけど邪魔(w
アンカー要素のhref内でアンカー要素自身を取得することは可能でしょうか? onclick内ではthisがアンカー要素を指している様なのですが、href内では違う様です。
>335 href属性に書くことはアドレスバーに直接打ち込むことと同じ。 だから <a href="javascript:myFunc("button1")">button1</a> <a href="javascript:myFunc("button2")">button2</a> ぐらいしか方法はない。 素直にonclick使っとけ。 あと、thisよりはevent.srcElementのほうがいいかな?
> あと、thisよりはevent.srcElementのほうがいいかな? それはIE専を目指すってこと?
338 :
335 :03/07/08 10:14 ID:???
なるほど、hrefについて理解しました。 onclickだとステータスバーに無意味な文字列を見せることになるのが 少し嫌なのですが、仕方ないようですね。 event.srcElementは残念ながらIE以外での動作が確認できなかったのですが、 IE独自のイベントモデルに依存しているのでしょうか?
>>338 ネスケがevent.srcElementに対応してないのが独自のイベントモデルなんだよ。
<SELECT>で選択状態が変更されたときに起こるイベントハンドラって ありますでしょうか? カーソルキーとかでの変更にも対応したいのでonclickだと・・・。 NNとIEともにです。
>>336-338 DOM2 Eventに準拠していないのはIEとN4。だがN6/N7/Mozillaも
N4以来のNetscape独自の機能も搭載している。
ともかく、IEの「eventというグローバルなオブジェクトに情報
が入っている」というのはプログラミング的には気持ち悪いよね。
>>338 だからさ、hrefにもちゃんと同じもの入れてやればいいじゃない。
使おうと使うまいと。面倒だったらページ表示時にonclickの
ついてるaタグだけ一括してJavaScriptで設定するとかさ。
>>340 onchangeだろ。ここまで「調べればスグ分かる」ことを聞くか
ねえ。腹たったよ。ここの過去ログにだってサンプル満載だし。
>>1 を嫁。
>>338 >>341 JS OFFの場合を考えたらhrefには代替になるリンク先を指定する
べきではと思われ。
>>341 うるせーぼけ。
調べたけど分かんなかったから聞いたんだよ!
ぐちぐち書くぐらいなら、スルーしとけボケが!
344 :
336 :03/07/08 11:59 ID:???
>337 >338 ゴメソ thisは標準仕様では使えないってこと。 Event.currentTargetの間違いでした。
345 :
335 :03/07/08 12:06 ID:???
趣味で作っているページなので、
JavaScriptをOFFにしている方までは考慮していませんでした。
しかしながら、
>>342 氏の案に沿って改良すればhref問題も同時に片付きそうなので、
その線でいってみようと思います。
貴重な意見どうもでした>諸氏
|・∀・) マタ ダイカイゾウノ ヨカン…
>>343 調べても分からなかったって…ある意味すごい。
どういう調べ方したのか聞いてみたい。
このスレを10秒間眺めたとかいうんじゃないの(w
>>344 イベントハンドラ中のコードの評価法については
thisが指すオブジェクトどころかスコープさえ標準化されてないので
標準仕様(DOM2Events)勧めるならonclickではなくaddEventListenerのような。
もちろん、勧めるんだったら、の話だが。
>>348 いや別に勧めないよ。「onclick="関数(this, ...)"」で十分便利だし
多くのブラウザで動くんだからまあいいじゃんと思っている。
標準仕様なんてどーでもいい。 DOMなんて糞食らえ
DOMでないとできないことに使うために勉強するんだけど、 勉強したついでにDOMですぐできることは同様だから使う。
まあ
>>350 は標準DOMが使えない状況なんでしょう。
IEで動けば充分
なんかすごく勘違いしてる奴がいるようだな。IEでだってDOM使わ ないとできないことがいっぱいあるの。IE→not DOMだなんてお前 素人かと小一時間…(う〜んこれ久々に書いたな)
ちょっとデモ。IEでもGeckoでも。少しさぼってるけど。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> function rot() { var u = document.getElementById('u0'); var l = u.firstChild; u.removeChild(l); u.appendChild(l); } </script> </head><body onload="setInterval(rot, 100)"> <ul id="u0"><li>あいうえお</li><li>かきくけこ</li><li>さしすせそ</li> <li>たちつてと</li><li>なにぬねの</li><li>はひふへほ</li></ul> </body></html>
W3C信者のような基地害は死ねってことだよ。
<!DOCTYPE 信者叩きしたければスレ違いだからよそ行けば。 自分は信者じゃないもん。IE専やらないというだけだし。>
確かに本物の信者ならXHTMLとかに逝ってしまっているだらう。
「IEで動けば充分」なんて質問者にしか書きようがないことを 平気で書いてしまう既知外にも新で欲しいものだ。 本物の信者ならtext/javascriptなんて未登録のMIMEは使わんだろうな。
>>337 のような発言があるからおかしくなるんだよ。
IEだけでしか動かないのかよバッカじゃねーの?
ってな発言はやめろ。
自由を尊重しろ。
質問者に対する回答としてIEでしか動かない方をわざわざ勧めてるようなら 注意した方が親切だろ。もともとどっちでも動くコードだったんだからさ。 あとは質問者が決めればいい。どこにも「バッカじゃねーの」なんて書いて ないだろ。
>IEでだってDOM使わないとできないことがいっぱいあるの。IE→not DOMだなんてお前
馬鹿でちゅかおまいは?
だれがIE→not DOMなんていってんだよボケ
DOM準拠してなくてもIEでうごきゃー世間の9割以上はOKだっつーことだよ。
>>356 胴衣。
>>364 そりゃ
>>352 に対して
>>353 の発言なら当然そう読むと思うがな。
しかし9割とはまた大胆に出たね。1割捨てたらプロのWeb製作屋は
成り立たんぞ。
>1割捨てたらプロのWeb製作屋は成り立たんぞ。 それは正しい。 が、ここには一般人もいるし、 糞W3C信者どもは、全ての人間にDOMを要求する。 ここはそんなにひどくないが、CSSスレなんてひどいもんだぞ。
言葉使い汚く罵倒してる方が劣勢かつ厨房。2ちゃんねるの法則。
必死で冷静さを装っているときは劣勢のときである。2ちゃんねるの法則。
だから別に要求してないんだってば。単に「それだとIEでしか動かない よ」と指摘しただけでなぜこうもムキになってクロスブラウザを否定する のか謎だわ。
クロスブラウザ・・・・ なんて懐かしい響きだろう。 いったいいつの時代だっただろう・・・ 時代は変わったのだよ。
>>371 だからどうするかは製作者が選ぶってんでしょ。
別に古くないだろ。OperaやSafariで動かしたいつー人もいるし。
>>365 全てのブラウザで動くスクリプトを使っているとしても、
スクリプトを使っている時点で、全てのブラウザでは動かないんだよ。
IE以外に対応しても、89%が90%になるだけ。
そこに労力を掛けるのはスクリプトが趣味の奴だけ。
W3C信者は効率なんて考えません。 あほだから。
>>374 まさに! だからここJavaScript趣味の人が集まってんじゃん。で、どこまで
やるかは製作者が決める。正しいじゃん。ちなみに「全部」なんてとっても
やってらんないから自分はGeckoとIEくらいでチェックしておしまい。それが
自分の趣味の範囲っていうことで。
実装にムラのある情報だから「標準だと」とか「IEだと」とか書いたり 補足したりするだけなのに、一々それを強要しているように受け取って よく解らん過剰反応する厨房がいるってだけの話。 誰も何にも強要してない。気に入らないヤシがそのコードを使わなきゃいいだけだ。
愚痴スレ立ててそっちでやっとくれ。
でもW3C信者はCSSにしろDOMにしろ、IEに対応させなくてはなりません。 それが現実です。 彼らはそれが悔しくてなりません。 「俺らは対応させてやってんのに、 なんでもまいらはDOM対応させないんだ、ふざけんな!!」 という彼らの言葉にも耳を傾けてあげましょう。 聞くだけだったら、たいしたことないし。
<!DOCTYPE 自分について言えばCSSもDOMも標準とIEの共通部分 (ないしGeckoとIEの共通部分)しかほとんど使わないね。あとは 簡単なふり分けぐらい。自分の貼ったコード全部分析してくれれば 分かると思うけどね(笑)。だからべつに悔しいと思ったことはない。 ま、信者っていうのは誰か別の人の事なんだろう。>
JavaScriptが趣味の人なら、自分でいろいろ調べたりするから質問には来ないよ。 質問に来る人は、とりあえず動きさえすれば良いと思ってるのがほとんど。
>>382 そうそう。だから質問に来る人と趣味の人で持ちつ持たれつなわけ。
で、質問に来る人は技術的なことは分からないけど「IEだけでいい」
「Netscapeも対応したい」とかの意味は分かっているし聞けば明確に
答えてくれるよ。
さあ、そろそろ夜の質問タイムじゃないかな。
なーんか、くだらねー
386 :
Name_Not_Found :03/07/08 21:05 ID:g3xOLj3D
URLをクリックさせた時にウィンドゥサイズを任意に指定してやるには どのようなソースを書けばいいのでしょうか? 教えて下さい。お願いします。
<a href="hogehoge" onClick="window.width=640;window.height=480"> hogehoge </a>
違うだろ。
>>386 「URLをクリックさせた時に」という意味がよく分からない
んだけれど。あと任意に指定っていうのは予め指定?大きさを
入力欄とかダイアログに入力して指定?それともその場で
ドラグして変更するとか…
>>386 1:あるURLを閲覧者が開く時、新ウィンドを開き、そのサイズを指定する。
2:あるURLを閲覧者が開く事により、今開いている画面のサイズを任意のものに変化させる。
3:どちらでもない
申し訳ないがもう一度やりたい事の説明をキボンヌ
>>390 1だと理解できないような理解力では回答者としてどうかと。
自分について言えばCSSもDOMも標準とIEの共通部分 (ないしGeckoとIEの共通部分)しかほとんど使わないね。あとは 簡単なふり分けぐらい。自分の貼ったコード全部分析してくれれば 分かると思うけどね(笑)。だからべつに悔しいと思ったことはない。 ま、信者っていうのは誰か別の人の事なんだろう。> ( ´,_ゝ`)プッ
/* 頼むから誰も反応しないでくれよ。無意味に荒らさないで。 */
>>自分の貼ったコード全部分析してくれれば分かると思うけどね(笑)。 お前の張ったコードがどれかなんか分かるか!!
397 :
◆yZ/W.aQgK2 :03/07/09 03:16 ID:bb2wV45q
画像を大量に使う為、予めキャッシュさせておきたいのですが、 imgs = new Array(); imgs[0] = "hoge0"; imgs[1] = "hoge1"; imgs[2] = "hoge2"; imgs[3] = "hoge3"; m = new Array(); for (var i = 0; i < imgs.length; i++){ m[n] = new Image(); m[n].src = "img/" + imgs[n] + ".jpg"; } としているのですが、IEだけうまくいきません。(Firebird及びOperaでは成功) クリックした後数秒で表示されるのですが、 その数秒は普通に読みこんでいるのと変わらずキャッシュされていないと思われ・・・。 なにか問題でしょうか。
>>397 あー俺もそれある。
キャッシュするコードを書いたページで、
新しいウィンドウを開くと
その現象(キャシュが消える)が起きる。IEだけ。
399 :
◆yZ/W.aQgK2 :03/07/09 04:05 ID:bb2wV45q
m[n]やimgs[n]はもちろん m[i]、imgs[i]の誤りです。
400 :
家計簿 :03/07/09 04:26 ID:???
<style type="text/css"> <!-- body { background-color:#000000 ; font-size:12px } td { background-color:#000000 ; font-size:12px ; text-align:center } .w30 { width:30 } .w100 { width:100 } --> </style> <body bgcolor="#000000" text="#ffffff"> <form action="#" name="Data"> <input type="text" name="Date" class="w30"> <input type="text" name="Name" class="w100"> <input type="text" name="Price" class="w100"> <input type="button" value="追記" onclick="Postscript()"> </form> <table cellpadding="0" cellspacing="0" border="1" bgcolor="#ffffff"> <tr> <td class="w30">日付</td> <td class="w100">品名</td> <td class="w100">金額</td></tr> </table>
>>397 imgs = new Array();
imgs[0] = "hoge0"; imgs[1] = "hoge1";
imgs[2] = "hoge2"; imgs[3] = "hoge3";
for(i in imgs){
IMGz = new Image();
IMGz.src = "img/" + imgs[i] + ".jpg";
}
漏れはこういう感じで書いてるが問題なく読む。
日付 品名 金額 07/08 たまご 100 07/09 たまご 110 Perl 等でやったほうが良いのかもしれませんが、 Javascriptで上記のように、Formに入れてTableで表を作る事は可能でしょうか? また表を作ったとしても保存させる事はできますでしょうか?(外部テキストに記録?)
>>402 >Tableで表を作る事は可能でしょうか?
全然可能。
>保存
当然ムリ。
>>400 398が書いているが、IEは新しいウインドウを開くと
そのときに
IMGz = new Image();
IMGz.src = "img/" + imgs[i] + ".jpg";
でとったキャッシュがクリアされるんだよ。
やってみそ。
405 :
◆yZ/W.aQgK2 :03/07/09 04:56 ID:bb2wV45q
>>401 ありがとうございます。
うまくいきました。
しかし、クリックで画像を表示させていくんだけど、
結局トランプを捲るみたいにゆっくり表示されていく・・・。
マシになったけどIEって大嫌い
innerHTML, outerHTML
innerText, outerText
insertAdjacentHTML, insertAdjacentText
とありますけど、
innerHTML
以外に
insertAdjacentHTML
が用意されている理由を教えてください。
insertAdjacentHTMLが付加用というのは、
a.innerHTML = "あたらしい文" + a.innerHTML;
で補えますよね?
あとDOMってinsertAdjacentHTMLはないんですよね?
http://www.mozilla.org/docs/dom/domref/dom_el_ref.html#1002691 はみたんですけど。
407 :
397 ◆yZ/W.aQgK2 :03/07/09 05:01 ID:bb2wV45q
>>404 いや、新しいウィンドウではなく、
クリックで画像を変えるというのをやっているんです。
それでうまくいかなくて・・・。
とりあえず、401のアドバイスでかなりマシになりました。
即レスありがとうございました。保存はやはり無理でしたか・・・ でも勉強になるので、止めないでとりあえず最後まで自分でやってみますです。 document.createElement(tag) で色々考えてたのですが、まだイマイチ理解できてないみたいです document.write を使うのかな? それと後で計算をするFormを作ってやるとしたら、 "品名" や "金額" の場所にあたる<TD>にidを付けておいて、 後で "たまご" などマッチした場所の金額だけ合計する。 こんな感じでしょうか?
>>408 idじゃなくてclassかと。
あとtableは詳しく書かないとダメ。
<table>
<tbody>
<tr><th>hoge1</th><th>hoge2</th></tr>
<tr><td>hoge </td><td>hoge </td></tr>
</tbody>
</table>
var d = document;
d.ce = d.createElement;
d.ct = d.createTextNode;
var tbody = document.getElementsByTagName("table")[0].childNodes[0];
//この場合hoge1を変更するには、
tbody.childNodes[0].childNodes[0].nodeValue="hogehoge1";
//新しくデータを追加するなら
tbody.appendChild(d.ce("tr"));
tbody.lastChild.appendChild(d.ce("td")).appentChilde(d.ct("hoge "));
tbody.lastChild.appendChild(d.ce("td")).appentChilde(d.ct("hoge "));
411 :
386 :03/07/09 08:06 ID:34KRN00+
>>390 ありがとうございます。
1:あるURLを閲覧者が開く時、新ウィンドを開き、そのサイズを指定する。
これです。
よろしくお願いします。
>>411 サイズの指定方法は?いくつ×いくつと固定でいい?もしそうなら
<a href="#" onclick="window.open('URI', '_blank', 'width=400,height=300');return false">
...</a>
ただしツールバーとか出すためにはもうちょっと沢山オプション指定必要。
413 :
386 :03/07/09 09:21 ID:34KRN00+
>>412 このように書いたら文字が正しくありません。てエラーが出ました。
どこがおかしいいんでしょうか?
function test(){
if(bbx==1){
document.write("<font size='2'>あああああ<a href="#" onclick="window.open('test2.html?bbz=1', '_blank', 'width=400,height=300');return false">こちら</a><br>");
}
}
ツールバーとかも標準のものを出したいです。
<body onload=open.windows("file://c:\aux");> </body>
417 :
386 :03/07/09 10:47 ID:34KRN00+
何とか自力でウィンドウサイズの指定が出来るようになりましたが、 スクロールバーの指定で scrollbars=1 としたんですが縦のスクロール バーは出ましたが横のスクロールバーが出ません。 横のスクロールバーを出す方法教えてください。 お願いします。
418 :
Name_Not_Found :03/07/09 11:18 ID:TnSGqNMh
>416 window.open("file://c\:aux")
420 :
Name_Not_Found :03/07/09 12:13 ID:GFtg8/FL
>>412 めったなことに無意味なhrefを指定するな
<a href="URI" onclick="window.open('URI', '_blank', 'width=400,height=300');return false">
...</a>
>>420 href 属性で指定してるのと同じ URL を指定するなら
window.open(this.href, ... ) でもいいかもね。
window.open(url, "newnew"); としたとき、 window.newnew でアクセスできません。 どうやったらアクセスできますか?
>>422 window.openの返値を変数に格納しておいてそれを参照すれ。
>422 newnew = window.open( url );
>>422 var unko=window.open(url, "newnew");
として、
unko
でアクセスしとけ。
426 :
Name_Not_Found :03/07/09 18:56 ID:6701CLIH
JavaScriptでチャットのアイコン選択でそのアイコンの名前にカーソルをおくとそのアイコン が表示されそして、前入室していてそのアイコンを利用していて、次もそのアイコンを選択し なくても”前回のアイコン”っという項目をつくって、前のアイコンも使えるように するスクリプトを是非使いたいです、お手数ですが、お願い致します。
ハア?
>>417 「scrollbars=yes」にしてみてたらどう?
429 :
_ :03/07/09 19:01 ID:???
> 名前にカーソルをおくとそのアイコンが表示 上の方にいっぱいサンプルがでてるので略 > 前のアイコンも使えるように クッキー等を使えるようにチャットを改造。自分でやれ。 できないなら諦めれ。
431 :
Name_Not_Found :03/07/09 20:27 ID:avMUDaks
perlでCGI書いてるのですが、FORMの必須項目のチェックで、 いちいちPOSTされたパラメータを処理するのがめんどくさいので JAVA SCRIPTのイベントハンドラ を置いて、 onSubmit="return checkForm(this);"でチェックしようとしています。 以前も使って type="text" は問題なかったのですが、 <SELECT name="hoge"> <OPTION> <OPTION>1 <OPTION>2 <OPTION>3 </SELECT> の場合どうやってチェックさせるのでしょうか。 FORMの性格上明示的に値を選択して欲しいので、一番上の<OPTION>のvalueは あえて空にして、明示的に選択していないとアラート出したいのですが、 選択していてもアラートが出てしまいます。 SMART!とか とほほ 見てみたのですがよくわかりませんでした。 JAVA SCRIPTははっきり言ってほとんど素人です。 フォームの構造を変えて同じような事が可能であれば変えてもいいのですが、 入力項目がとても多いので、onSubmit で最後に一括で確認したいです。 使っているのは <INPUT name="hage" type="text" >と <TEXTAREA name="hige" cols="10" rows="3"></TEXTAREA> 上記プルダウンメニューの三種類です。 宜しくお願いします。
>>431 回答は他の人に任せるとして、
CGI側でもチェックしておいたほうがいい。
>>432 ありがとうございます。
それ、つまりクライアント側がjavascriptオフの場合の事ですよね。
うーん、そうすると結局CGIでやんなきゃだめって事ですよね。
あるいはjavascriptでチェックできたらそれで済ませ、
だめなときだけCGI側のチェック、って二段構えでやるって事でしょうか。
そうすると、javascript有効に機能したかどうかのチェックもしなくちゃいけない、
って事で、それもどうやるか調べなきゃいけないですね。。。
>433 JavaScript書き換えて攻撃されますよ
>>434 そうですか。。。
いちおうそのフォームはID&Pass認証した後のページなので
関係者しか入れない場所にはあるんですが、
そうですよねえ、、、処理丸見えですもんねえ。
やっぱりCGI側の処理一本が妥当でしょうか。
でも、勉強の為にもヒントなりポインタなり教えていただけませんか?
>>431 プルダウンメニューのselectedIndex見たらあかんの?
>>431 if ( document.form.hoge.options[0].selected ) { alert("必須項目を選択してください"); }
では駄目でしょうか?
>>436 >>437 おお、なるほど、0 からのIndexが返るんですね。
ありがとうございました。
>>426 全然読めない。
たぶん、Cookieとか使うんだろうけど・・・
もっと整理して書かないと全然日本語になってない。
>>439 分かってないのあんただけだと思うけど。
>>440 いや俺もわからん。
ひとりよがりな文章で全然わからん。
誰も答える気がないと思う。
その証拠に誰も答えてない。
これまで一番親切なレスは
>>427 だと思う。
チャットでアイコンを選択できるんですが、 アイコンの名前一覧がありまして、その名前の上にカーソルを合わせると 名前に対応する画像が一覧の上部あたりに表示されるようにしたいです。 また、その項目の中に“前回のアイコン”というのを作って、これを選択すると 前回入室したときに利用したアイコンを選択するようにしたいです。 名前一覧はセレクトボックスと訳すべきですかね? んで、現在選択されている項目に対応する画像を表示したい、と意訳できます。 画像が表示される位置が不明なので、想像で付け加えました。
442で意味を汲み取った上で・・・。 チャットでアイコンを使用するのですが、 その際アイコンの名前を選ぶと、そのアイコン画像を表示して切り替えるようにしたいのです。 また、前回のアイコンというのを選ぶと前回使用したアイコンを使えるようにしたいです。 セレクトボックスと訳すというより、術を知らないのでしょう。 セレクトボックスより、ラジオボタンを使ったほうが良いかも。
まあ>426はネタってことで。 そもそも当人が居ないことには(ry
426って一回しか「。」使ってない。 理解できた440を尊敬
447 :
426 :03/07/10 06:56 ID:???
お手数ですが、次もお願い致します。 前入室していてチャットのアイコン選択でそのアイコンを利用していて、 そのアイコンが表示されそのアイコンの名前にカーソルをおくと そのアイコンを選択しなくてもそして、”前回のアイコン”っという項目をつくって、 前のアイコンも使えるようにするスクリプトを是非使いたいです、JavaScriptで
426は宇宙人。 地球の言語、あまりしらない
430必死だなw
結局
>>426 ってチャットのCGIを改造してそういうJavaScriptを
吐かせようっていうことなのかな。質問のレベルから見てとても
そんなスキルはありそうに見えないけど…それとも日本語が不自由
なだけでプログラミングはできるのかなあ。
特定のウインドウをリサイズしようと思っています。 が、resizeTo()でやると表示部分(body全体)でなく、 ツールバーも含む全体の領域のサイズ決定になってしまい困っています。 どうしたら、上手くいくのでしょうか。
>>452 過去スレで何回もガイシュツの質問なんで探してみれ。
454 :
Name_Not_Found :03/07/10 15:14 ID:79WOCPNT
openWin()を使って任意のウィンドウを開く動作をさせたいのですが JavaScript部分でのエラーになります。 どなたかご教授いただけませんでしょうか? <html> <head> <script Language=" JavaScript" > <!-- function openWin() { window.open("000.html","Sample"," width=320,height=240,toolbar=no, location=no,status=no,menubar=no,scrollbars=no,resizable=no " ); } // --> </script> </head> <body> <a href=" javaScript:openWin() ">ここをクリック</a> </body> </html>
455 :
454 :03/07/10 15:15 ID:79WOCPNT
同じ階層に000.htmlを作って置いてみたのですが、結果は同じでした。
ちなみに
>>454 の名前は001.htmlです。
>>454 JavaScriptのJの前に不自然に半角スペースがあったりするんだが。
あと式は途中で改行いれずに一行で書く。
window.open( ) の ( ) の中で改行いれたいなら \ はさみませう
<html>
<head>
<script Language="JavaScript">
<!--
function openWin()
{
window.open("000.html","Sample","\
width=320,height=240,toolbar=no,\
location=no,status=no,menubar=no,scrollbars=no,resizable=no\
" );
}
// -->
</script>
</head>
<body>
<a href="JavaScript:openWin() ">ここをクリック</a>
</body>
</html>
<html> <head> <script Language="JavaScript"> <!-- function openWin() { window.open("000.html","Sample", "width=320,height=240,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no"); } // --> </script> </head> <body> <a href="javascript:openWin()">ここをクリック</a> </body> </html>
458 :
454 :03/07/10 15:33 ID:???
改行しないで一気に書けばよかったんですね。 勉強になりました。これからは注意します。 これにCloseを取り入れれば、考えていたものが作れます。 ありがとうございました。
459 :
セレクタ :03/07/10 22:31 ID:ObrIavvO
またかよ
>>459 つーかマルチポストなのな。書き込み先のスレの住人の事を信用していないから
あちこちにマルチポストするんだよな。最 低 だ。
と罵倒も済んだところで,ヒント。
setMenuItem() が 2 つの <script> の中でコーディングされているけど,
onChange で呼び出されるのはどっちよ?
___ ___ | | 変換 | |  ̄ ̄ ̄  ̄ ̄ ̄ って感じで左に%u3068を入れ変換ボタンを押すと右側に"と"が出るように 真に恐縮ですが誰かこんな感じになるようにJavascript 組んでいただけませんか?お願いしますm-_-m
sage
<ul class="link" id="site_menu">
<li><a href="main.html">Top</a></li>
<li><a href="
http://hogehomeunix.org/bbs/blackboard.cgi ">BBS</a></li>
<li><a href="wp/wall.html">Wallpaper</a></li>
<li><a href="update.html">Update</a></li>
<li><a href="profile.html">Profile</a></li>
<li><a href="mailto:
[email protected] ">mail</a></li>
<li><a href="readme.html">readme</a></li>
</ul>
<script language="JavaScript"><!--
var menuNode = document.getElementById("site_menu").childNodes;
alert( menuNode.length );
--></script>
と打ったところ、alertダイアログには
IE6で"7"
MozillaFirebird0.6、Opera7.11で"15"が表示されます。
色々変えたところ "7"*2+1 = "15" の関係があるのは分かったのですが、何故この違いが出るのかが分かりません。
何方か、原因を教えていただけないでしょうか?
あとメニューの<a>タグにDOMで、onmouseover属性を付たいのですが、サンプルがあればなおありがたいです。
>>468 過去スレでガイシュツだが。要するに</li>と次の<li>等の間に改行が
あって、この改行文字をテキストノードとして保持するために数が
増えるんだよね。IEはこの改行を無視するので7になる。自分はよく
知らないけど改行を無視するIEは標準準拠の点では誤りらしい(単なる
情報なんでIE厨やアンチ標準厨は出てこないように)。ともかく、
childNodes以下を参照するときはこの違いに対処するように書くのが
いいよね。つまり順番にliノードを数えていくとか、それが面倒なら
li要素かa要素にid振って直接とるとか。
onmouseoverをつける? aのノードに直接onmouseoverプロパティを格納
すればいい。それだけでしょ。
そんな予防線を張るから…
どーせ張らなくたって出るものは出るでしょ。出たらスルーよろしく。
>469 無事解決いたしました…、ありがとうございます 一晩中、悩んでいた物で、大変助かりました
474 :
Name_Not_Found :03/07/11 15:36 ID:K0ix+Zob
JavaScriptでフォーム用のhtmlをdocument.writeで書き出して、 CGIプログラムを起動したいのですが、文字化けしてしまいます。 どうやっても入力された文字列がunicodeで渡されてしまうのでです。 Shift-JISのままCGIに送るにはどうしたら良いでしょうか? よろしくお願いします。
>>474 そんなことはできません。
CGI側でデコードしてください。
476 :
474 :03/07/11 15:54 ID:K0ix+Zob
>475さん そうなんですね。ありがとうございました。 CGI側でデコードしてみます。
477 :
Name_Not_Found :03/07/11 16:49 ID:0I5wcGQH
質問です、何方かお教え下さい。 フォーム入力画面を別ウインドウで開くようにして、そのウインドウの最大化・最小化ボタンを無効にしたいと思っています。 以下のようにしたのですが、うまくいきません。 どうしたらいいのでしょうか? function Request_Pamphlet(vPath){ window.open("0000.html", "mailto", "resizable=no,location=no,menubar=no,status=no,toolbar=no,scrollbars=yes,height=500,width=580"); }
質問です。 ページを開いたタイミングで ウインドウのサイズや表示位置、ツールバー、ステータスバー、エクスプローラーバー、スクロールバー などを制御することってできますか? どなたか教えてください。宜しくお願い致します。
どうでもいいことだけれどさ、なんで表示領域を越えた部分まで操作したいのだろう…
スレを盛り上げようと、必死で質問をコピペする奴には頭が下がるよ
481 :
質問 :03/07/11 18:38 ID:???
window.location って色々ありますが、 Javascriptが実行されている自分自身のファイル名を取得するには var FilePath = window.location.pathname; var FileName = FilePath.replace("パス名", ""); とかするのでしょうか? それとも何か方法あるのでしょうか? 用途は、ファイル名に応じた<Title>を付けたり、<A>を楽に設定しようかと思ってます
>>481 いろいろあると思うけど、こんなのどうよ?
location.pathname.match(/[^\/]*$/)[0]
483 :
質問 :03/07/11 19:33 ID:???
ありがとうございます。でも正規表現を勉強しなきゃワカラソですね・・・(;´Д`) 自分の考えた方法だと .slice(from [, to]) 等で文字列を取得とか色々あったのですが でもそれだと環境に依存してしまって変えないとダメポだと思ったので、 ファイル名だけ取得する環境変数?みたいな特殊な方法があるのかな と思いまして
484 :
質問 :03/07/11 20:01 ID:???
485 :
質問 :03/07/11 23:27 ID:???
これからは正規表現もがんがってみます。
location.pathname.match( /[^\/|^\\]*$/ )[0];
でローカルでも大丈夫でした。
location.pathname.match( /[^.]*$/ )[0]; //拡張子はコレでOKでした。
>>482 さん ありがとうございました。
486 :
質問です[sage] :03/07/12 01:20 ID:t795ETub
質問です。 var w=window.open("test.html"); w.document.form名.オブジェクト名.value="hoge"; という風にtest.htmlにあるtextareaオブジェクトに値を入れたいのですが、 うまくいかないのです。 エラーメッセージは 「win.document.form名.オブジェクト名はNullまたはオブジェクトではありません」 と出ます。 ちなみに var w=window.open("test.html"); alert(w); w.document.form名.オブジェクト名.value="hoge"; としてalertでwin変数の内容を表示させるとtextareaに"hoge"は表示されます。 これだといちいちウィンドウが出るのでうっとうしいです。 環境はwin IE6です。 よろしくお願いします。
>>486 test.html に
<script language="javascript">
<!--
function test(){
document.form名.オブジェクト名.value="hoge";
}
// -->
</script>
<body onload="test()">
488 :
486 :03/07/12 02:28 ID:???
>>487 さん
早速レスありがとうございます。
簡単なことだったですねー。すみません。
でもalert(w)をかますと表示されるのはなんででしょうか?
>>488 window.open()直後には、まだtest.htmlが読み込まれてない
>>487 は悪い例だけどね。
onloadを待つ必要なんて無い。
491 :
Name_Not_Found :03/07/12 03:58 ID:CG1pbec/
スクリプトからhttpでGETする方法ってないんですかねぇ。 startDownload("hoge.html",fncFinishDownload) が外部サーバに対してできればいいんですけどね。
>>491 ローカルでの話なら、WSHの
new ActiveXObject("Microsoft.XMLHTTP").Open();
で可能ではあるが。。
>>491 ファイルの内容が一定の規則に従っていれば外部サーバーのものでも可能。
つまり、他人の作ったファイルを読み込もうっていうなら無理。
ソケットは使えないの?
495 :
486 :03/07/12 18:08 ID:???
>>489-490 onloadを待たなくてもいいってことは、
test.htmlを読み込まれたことを判断すればいいのかな?
知恵をお貸しください。 VBアプリのWebアプリ化で,やっぱりSUBMITしてから画面が 表示されるまでのレスポンスでの時間的なパフォーマンスが問題に なっています。 画面間遷移の場合は,全体のHTMLをもらわないとしょうがないとは思いますが, 同じ画面に帰って来る場合は,戻りデータはFORM内の差分データだけ にしたい…というような場合には,隠しフレームをつかうとよいらしい,という ことまで分かったのですが,具体的にどういうフレームわけで,処理するのが 一般的なんでしょうか??
>>496 自分はVBは書けないんだけどJavaScriptでいいんだよね。JavaScriptスレ
だし。差分というか、一部分だけ差し替えるっていう感じで。とりあえず
actionにHTMLファイルを指定してるけど本番ではCGIを指定して返すHTMLを
データに応じて変化させるってことで。Gecko/IE。N4やOperaはダメね。
---main.html---<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<script type="text/javascript">
</script>
</head><body>
<form action="a.html" target="f1"><p><input type="submit"></p></form>
<iframe name="f1" style="display:none">iframe here...</iframe>
<div id="d1">ここが変化します。</div>
</body></html>
---a.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function chg() {
top.document.getElementById('d1').innerHTML = document.getElementById('d1').innerHTML;
}
</script>
</head><body onload="chg()">
<div id="d1"><h1>test...</h1><p>これはテストです。</p></div>
</body></html>
>>496-497 なんか勘違いしてたわ。任意の部分を差し替えるんじゃなくてフォームのデータを部分的に
取り換えればいいのね。それならN4も対応可能。ついでにOperaでも動くようになったみたい。
---main.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html><head><title>???</title></head><frameset title="main" cols="1*,0">
<frame name="left" title="left" src="a.html">
<frame name="right" title="right" src="about:blank">
<noframes><body><p>no frame...</p></body></noframes></frameset></html>
---a.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title></head><body>
<form name="f1" action="b.html" target="right"><p>
<input type="text" name="a" value="A"><input type="text" name="b" value="B">
<input type="text" name="c" value="C"><input type="submit"></p></form></body></html>
---b.html---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var a = [['a', 'これはAです'], ['c', 'これはCです']];
function chg() {
var e = top.frames.left.document.forms.f1.elements;
for(var i = 0; i < a.length; ++i) e[a[i][0]].value = a[i][1];
}
</script>
</head><body onload="chg()"><h1>dummy page...</h1></body></html>
499 :
Name_Not_Found :03/07/13 09:51 ID:g3Cc+Jva
<a href="■■■.jpg" onclick='msgWindow=window.open ("■■■.jpg","newcomer","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes"); return false'> <img src="■■■☆.jpg" width="160" height="120" alt="画像名"></a> これにONKEYPRESS 属性も併記したいんですけど、初心者のためちょっと分かりません… 教えていただければ助かります。
<a href="■■■.jpg" onclick='msgWindow=window.open ("■■■.jpg","newcomer","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes" onKeyPress = "alert("test");"); return false'>
501 :
499 :03/07/13 11:33 ID:???
>>500 ありがとうございます、助かりました、早速やってみます。
画像ノミはonkeypressが使えないようなので test.html onmouseover辺りでcookieを設定 filename="01.jpg" onclickでwindow.openでtest2.htmlを。。。 test2.html cookie読み込み filename="01.jpg" document.writeでfilenameの中身の01.jpgを表示 bodyにonkeypressを設定 のような感じで
503 :
Name_Not_Found :03/07/13 23:09 ID:iM3ecQHx
<Script......> ......................... </Script> の部分だけを別ファイル、例えばhoge.scrなどに保存してhtmlファイルから このファイルを呼び出して挿入したいのですがどうしたらいいでしょうか?
hoge.srcだとスクリーンセーバーファイルですよ。 JavaScriptファイルならば、hoge.js。 <script src="hoge.js"></script>
あ、スクリーンセーバは、*.scrか恥
506 :
503 :03/07/14 00:00 ID:???
507 :
499 :03/07/14 01:37 ID:???
>>507 上達したいなら、まずは脱lintを目標にしろ。
自分はhtmllintは掛けるけど。恥ずかしい間違いをチェック するため(サボると本当に恥ずかしい間違いのまま出したりするし)。 でも100点なんて不要でマイナスでなきゃいい、くらいな感じ。 だからアンチ標準厨やアンチW3C厨は出て来ないように。「マイナス でなきゃいい」なんていういい加減な信者はいないっしょ?
>>509 先に数学勉強しろバカ。
その点数の数学的背景を理解すれば、それがいかに無意味な値かが分かる。
まぁhtml-lintは点数よりもエラーチェックの意味でかけている。 DOMなんかでデータ取るときに下手なHTMLだとこまるから。
フツーのtextだとScriptとか、XSLとか、パーサとかが処理してくれないので HTMLとかXMLにしてて、そんとき意図通りの処理をしてほしいのでlintつかってるなぁ、俺は。 あとまぁDOMによる見出し一覧作成とかしたいから最低限HTMLの語彙には従ってる (全部DIVだとlintやパーサは通るがこれができない。)
513 :
yuyu :03/07/14 23:25 ID:HYYQCEOQ
すいません!! 「Text Fieldを使って、形、大きさ、色などのパラメータ を入力してButtonを押すとそれに従い図形描写する JAVAアプレット」 ってどうすればいいの!?!?
516 :
yuyu :03/07/14 23:30 ID:HYYQCEOQ
>>515 ありがと☆
IDすげー
var d = document; よくこれを使ってるの見かけるのですが、Scriptの処理の速さを求めるのなら どれくらい 'document' を使用する時にしたほうがイイでしょうか? メモリ内に一時的に変数dを作る?のだから、場合によってはしないほうがイイのでしょうか?
>>518 そんなことで速度がたいして変わるとは思えないなあ。読みやすさの
ためじゃないの?
>>518 実質同じ。
むしろ、var d = document; とした方が速い方が多いかも。
521 :
518 :03/07/15 01:32 ID:???
522 :
518 :03/07/15 01:34 ID:???
ぬぉっ width=100とwidth="100 ですた。 まぁ、たかがWebのブラウジング。 鯖や回線の問題などもあるし、ほとんど分からないような無駄な努力ですかね?
523 :
Name_Not_Found :03/07/15 01:51 ID:5lig1Hp7
http://www.aogaku.org/ 「青学WEB」。自称ベンチャー。これ以外にもリンク先見るとお遊びベンチャーで頑張ってる。
管理人(こいつのプロフにも注目)が自演の限りを尽くしてあちこちの青学系掲示板にリンク、
そして自画自賛。「あなたに青学WEB以上の非公認青学ポータルを制作して運営していく
実力があるとでも言うのでしょうか。もしくはそれ以上に多くの人を動かすカリスマ性でもあるのですか?」
など。
>>521 ちゃんと時間計測して検証すれ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
var a = new Array(10000), t0, t1;
t0 = new Date().getTime();
for(var i = 0; i < a.length; ++i) a[i] = document.title;
t1 = new Date().getTime();
document.writeln('time = ' + (t1-t0));
t0 = new Date().getTime();
var d = document;
for(var i = 0; i < a.length; ++i) a[i] = d.title;
t1 = new Date().getTime();
document.writeln('time = ' + (t1-t0));
</script></pre>
</body></html>
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
>>524 その方法では意味が無い。
もう少し考えろ。
>>526 うんうん、ぜひどうして意味がないか、どうすれば意味があるように
なるのか伺わせてください。興味あるところなんで。
当然じゃん。自分は下手なりに自分の書いたコード貼ったりしてるけど
自分では何もせず他人にケチだけつけに来る奴はスレに貢献していない。
そういう奴はどっかよそ行って煽っててほしいね。
ちなみに
>>524 のコードで計測するとIEでもMozillaでも変数dを使う
方が実行時間が2/3くらいで済むんだよな。ところがOperaやN4だと
そんなに差がない。
で、それに意味がないっつーのならどう意味がないのか本当に聞いて
みたい。いやもちろん、意味があるだろーと言っているのではなく
実は意味がないのかも知れない。そのあたりちゃんと言ってくれれば
このスレに貢献するいい話題になると思うよ。こういう話がしたくて
このスレの常連してるんだから。よろしく。
俺もそう思うね。 本当に自分でちゃんとしたコーディングができるなら 普通はとっくに書いてるだろう。 どうせこのスレかどっかで理解力の無さを罵倒されたやつだよ。 言われたことを形だけマネして言ってみたいんじゃないの?
あれじゃダメだな 以下みたいに同一で2回やってみればいい これで計測できるなら同じ結果が出るだろうが、ならないから <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> </head><body> <pre><script type="text/javascript"> var a = new Array(10000), t0, t1; t0 = new Date().getTime(); for(var i = 0; i < a.length; ++i) a[i] = document.title; t1 = new Date().getTime(); document.writeln('time = ' + (t1-t0)); t0 = new Date().getTime(); for(var i = 0; i < a.length; ++i) a[i] = document.title; t1 = new Date().getTime(); document.writeln('time = ' + (t1-t0)); </script></pre> </body></html>
先輩方、お知恵をお貸しください。 只今ログをHTMLに書き出して表示するタイプの掲示板をつくっています。 1:親ウィンドウにアクセスと同時に子ウィンドウ(フォーム)を開く 2:子ウィンドウでサブミットボタンを押すと、子ウィンドウは書き込み確認画面に変化(CGIで処理) そこには、親ウィンドウへのリンクがある 3:リンクをクリックすると、親ウィンドウがリロードする というものです。 この中の3を実現するために、子ウィンドウの方に setTimeout("location.reload(),1000");target="main" としたのですが、動きませんでした。 また、子ウィンドウからのリンクに<a href="●●●.html" target="main">としたのですが、新しいウィンドウが開いてしまいました。 もともとの親ウィンドウをリロードさせるには、どのようにしたらよろしいでしょうか? 勘違いなことをしているのは分っているのですが、Script辞典を調べたり、ぐぐってみても、いい方法がわかりませんでした。 当方の環境は、MacでIE5.1.6です。 よろしくお願いします。
>>533 setTimeout("window.opener.location.reload()",1000);
>>532 うんうん、そういう風に指摘してくれれば納得するんだよな。
さっそくループするようにして計測し直してみた。
for(var j = 0; j < 10; ++j) {
t0 = new Date().getTime();
for(var i = 0; i < a.length; ++i) a[i] = document.title;
t1 = new Date().getTime();
var d = document;
for(var i = 0; i < a.length; ++i) a[i] = d.title;
t2 = new Date().getTime();
document.writeln('time 1 = ' + (t1-t0) + ', time 2 = ' + (t2-t1));
}
Windows NT 4.0上のIE6。結果は行を詰めたからね。
time 1 = 2964, time 2 = 1993 time 1 = 3164, time 2 = 1993
time 1 = 3175, time 2 = 1993 time 1 = 3204, time 2 = 2013
time 1 = 3205, time 2 = 2003 time 1 = 3204, time 2 = 2003
time 1 = 3205, time 2 = 2003 time 1 = 3204, time 2 = 2003
time 1 = 3225, time 2 = 2013 time 1 = 3214, time 2 = 2013
FreeBSD 5.0上のMozilla 1.3。
time 1 = 397, time 2 = 426 time 1 = 431, time 2 = 649
time 1 = 949, time 2 = 732 time 1 = 787, time 2 = 890
time 1 = 863, time 2 = 790 time 1 = 818, time 2 = 864
time 1 = 770, time 2 = 957 time 1 = 811, time 2 = 734
time 1 = 961, time 2 = 665 time 1 = 791, time 2 = 1022
マシンの速さが全然違うんだけどまあそれはそれとして。WinNT 4.0上
のIE6では明らかに変数dが速いっしょ? あなたの計測環境教えてよ。
>>535 それと、対照実験として以下を比較すれば良いね。
<pre><script type="text/javascript">
var a = new Array(10000), t0, t1;
for(var j = 0; j < 10; ++j) {
t0 = new Date().getTime();
for(var i = 0; i < a.length; ++i) a[i] = document.title;
t1 = new Date().getTime();
for(var i = 0; i < a.length; ++i) a[i] = document.title;
t2 = new Date().getTime();
document.writeln('time 1 = ' + (t1-t0) + ', time 2 = ' + (t2-t1));
}
</script></pre>
539 :
533 :03/07/15 15:14 ID:???
ありがとうございました! 後は、余計なウィンドウを開かない方法を探してみたいと思います。
一言だけ言ってもいい? こういうJavascript最適化をするソフト作ってくれ それから変数名の長さで速度が変わりますか? あとArray関係の最適化についても知りたい
そういえばひたすら長い変数名とかで実験してた人がいたな…
>>540-541 こういう感じで32文字の変数と1文字の変数で比べたら
t0 = new Date().getTime();
for(var i = 0; i < 10000; ++i)
n = n + 1;
t1 = new Date().getTime();
for(var i = 0; i < 10000; ++i)
abcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnop =
abcdefghijklmnopabcdefghijklmnopabcdefghijklmnopabcdefghijklmnop + 1;
t2 = new Date().getTime();
IEでは1文字の方が2/3の時間だった。Mozillaでは変化なし。でもこんな違いが
問題になることはあんまりないんじゃなかなあ。
変数名を短くすると後から読み返した時に解読に苦しむ時間が問題だわ。 俺的にだけど。
>>543 まさに! いくら速くなってもバグバグじゃしょうもないよね。だから
まず確実に読みやすく作って、どうしても性能上問題があるところだけ
限定的に改良する、というのがいいんじゃないの。
つーか、処理の効率による速度の差と比べたら、 変数名の長さの影響なんて無視できるほど小さい。
古い機種向けとか?
処理時間への影響 変数名の長さ <<<< 変数の置き換え <<<< アルゴリズム < 入出力
まあ、変数名を短くすればダウンロードもコンパイルも速くなるから、 プログラムの開始は早くなるだろうけどね。
MSIE6 で、内容に @ を含むリンクの href属性を JavaScript で
変更すると要素内容まで URI に変更されてしまって困るのですが。
<p><a href="
http://example.com/ ">foo@bar</a></p>
<script type="text/javascript">
document.links[0].href = '
http://example.org/ ';
</script>
リンク内容の先頭か最後だけ @ がある場合は問題ない様です。
それと、リンク内容に子要素を持たせたりすると問題ない様です。
訳のわからない挙動です。一体どういう内部処理なんでしょうか。
550 :
518 :03/07/15 23:55 ID:???
うぉぉォ! 小1日でこれだけレスが しかも自分の所為でちょっとした争いが起こってしまって (;´Д`)モウシワケナイです みなさん検証お疲れ様です。 ( ´∀`)ドウモでした。
>>549 そりゃ〜ヒドいねえ。とりあえずhrefセットする前にinnerHTMLを
保存して、hrefセットしてから保存しておいたinnerHTMLを書き戻す
とかで回避されない?
解決方法よりも奇異な内部処理の全容を求めてるに1000オクターブ
なんなんだろうね。わざわざ無駄な処理を入れているようにしか見えないな。 メールアドレス扱いってわけでもないだろうし。
554 :
Name_Not_Found :03/07/16 00:41 ID:6HmISZtb
Java scriptで検索用ウインドウをポップアップにして ポップアップで送信されたデータをまたもとのウインドウに送りたいです。 このようにしてサブウインドウを開くことは出来たのですが、 subWin = window.open(\"$my_cgi?mode=search\",\"SearchWindow\",\"width=600 ,height=260\"); サブウインドウでのフォームデータをもとのウインドウで受け取るにはどうしたらよいのでしょうか?
555 :
Name_Not_Found :03/07/16 00:55 ID:xiv1ENxA
NN7,Opera7で IEのbodyタグの属性scroll="no"に相当するものは何ですか? HTML,CSS,JavaScriptのどれでもいいです。
556 :
Name_Not_Found :03/07/16 01:53 ID:KF+uVkZn
557 :
533 :03/07/16 02:44 ID:???
先ほどはありがとうございました! 先ほどの件で、setTimeoutを使っていたのですが、どうしても別ウィンドウが開いてしまうのをとめることができませんでした。 そこで教えていただいたことを元にして、親ウィンドウに subWin = window.open("sub.html","sub","width=320,height=240"); を入れ、子ウィンドウのフォームのsubmitボタンに onClick="window.opener.location.reload()" を入れましたが、リロードしても投稿した文章が反映されません。 で、ブラウザでリロードすると、投稿した文章が反映されます。 投稿と同時のリロードなので、反映されないのでしょうか? この場合、子ウィンドウのフォームにsetTimeoutを使ったほうがよいのでしょうか?
>>533 親ウィンドウで、
<body onload="window.open('sub.html','sub','width=320,height=240')">
子ウィンドウの確認画面で、
<a href=# onclick="window.opener.location.reload()">リーロド</a>
「確認画面」ってのは「投稿が終わりました」って画面のことですか。
そう解釈しちゃったけど…
559 :
533 :03/07/16 04:04 ID:???
>558 遅レスですみません。 そのとおりです。 試してみます!
560 :
533 :03/07/16 04:24 ID:???
ありがとうございました! 無事にリロードできました。 こんな時間に、本当にありがとうございます。
>>549 の問題を調べてみた。
SCRIPTであるA要素についてhref属性を文字列Xに変更する時
innerHTMLも文字列Xに変更される。(IE6 ?)
■必要条件
*当該A要素のchildNode.lengthが1でchildNode[0].nodeNameが"#text"。
*Xと元のinnerHTMLが共に次のいずれかを満たす文字列である。
/^(https?|ftp|gopher|nntp|file|mic|ldaps?):\/\/./i
/^(mailto|s?news|telnet|url|wais):./i
/^[^\\\/].*@[^\\\/]/
*文字列Xと元のinnerHTMLが(case-insensitiveにおいて)同じ値ではない。
(例:元のinnerHTMLが"
http://hoge.com/ "でXが"
HTTP://hoge.com/ "の場合は同じ値と見なされ適用外)
■回避法
*文字列Xの先頭に半角スペースを挿入する。(IE6・Opera7・N7で動作確認)
>>562 なんか利点があるからそういう仕様にしたのだと思うけど。
利点て・・・・なんだ?
これってhref専用? デバッグ用コードの抜き忘れとか…
567 :
ビルG :03/07/16 22:40 ID:???
>>566 確かにそれをIEチームに愚痴った事はあるよ。
犯人はお前か!
>>562 そんなことしなくても、こうすれば回避できるだろ。
<a id=a1 href=a@b><span>a@b</span></a>
<script>
a1.href='c@d';
</script>
寧ろ
>>569 の方がCSS等で見た目が変わるので分が悪い。
>>569 JavaScript の為にマーク付けを変えるなど本末転倒だ。
スクリプトだけで片がつくから
>>551 で十分だと思うんだけど…
あ、やっぱなんでもない。
>>54 トリビアスレに書き込むと2ヘェーくらいもらえるかもですよ。
>>574 >2ヘェーくらいもらえ
嘘蓄かよ!
って今時三村かよ!
<script for="***" event="***" type="text/javascript"> 〜 </script> 上のようなタイプのスクリプトでは〜の部分を外部スクリプトにできないのでしょうか。
>>577 HTML4.01にはそんな属性存在しないけど…
あ、ひょっとして例えばの話?
とほほにこういうのがあったからあるんだと思ってたんですが、ないんですか。
>>578 実際に使われているHTMLでは存在する。
582 :
Name_Not_Found :03/07/17 02:10 ID:IK2au+mA
forやeventはIE用HTMLの属性であるわけで 外部スクリプトにすることも普通に出来るが、 他のブラウザで不具合がおきまくりなため 目にすることはほぼ無いなぁ。 <script> document.getElementById("xxx").onclick = function(){ ... } </script> ↑↓が同値。 <script for=xxx event=onclick> ... </script>
584 :
Name_Not_Found :03/07/17 09:42 ID:dnx362j9
Popupウィンドウで1度表示して消して、元のページを リロードしても開かないようなスクリプトありますか?
>>584 ポップアップ広告を消すってことですか?
>>585 1回は表示させていいってんだから消すのとはちょっと違うかも。
>>584 なんだけど、リロードするってことはそのページのスクリプトも
まっさらから再度開始させられるんで難しいね。一度出したことを
クッキーで記憶しておいて、出すところでクッキーを参照して一度
出している場合は出さないようにするとかかな。
>>583 厳密には同じではない。
for=〜 event=〜
を使えばActiveXコントロールのイベントも検知できる。
language=JScriptとすれば対応してないブラウザでは実行されないので問題ない。
588 :
577 :03/07/17 18:13 ID:???
589 :
Name_Not_Found :03/07/17 21:31 ID:gcNR8fV8
592 :
589 :03/07/17 22:50 ID:gcNR8fV8
>592 404
>>592 だからそこは誰でも削除できますって書いてるじゃんかよぉ
imgやembedなどを使わず javascriptで画像貼ることは可能?
596 :
Name_Not_Found :03/07/17 23:47 ID:qQEP22nn
関東地方の地図をgifでhtmlファイル内に掲載しました。 で、1都6県別に、リンク先が分かれるように、 イメージマップをつくりました。 ここまではいいのですが、お客さんから、こんなこと言われました。 「各都道府県の上にポインタがいくと、その県(or都)の色が変わるようにしてほしい」 これって、Flash使わずにJavaScriptとhtmlだけで可能ですか? だって、県って、四角形じゃないから、県別に画像を切りわけられないですよね? だから、画像は、さらに7つ用意しなきゃいけないのはわかるんですが、 OnMouseOver を、どこに設定すればいいのか。。。(あるいはできないのか・・・)
>>595 DOMを操作してIMG要素を造るってのはあり?
>>597 別案として適当な要素の背景画像をセットとか。
>>596 えー、イメージマップをもう作ってあるんでしょ?だったら、map要素に
onmouseoverつけて8つの画像のどれにするか切り替えるだけじゃないの?
え、画像を切り分ける必要はないでしょ?7都県のどれか1つが塗られている
画像とどれも塗られてない画像の8枚用意して取り替えればいいじゃない。
それとも2つ以上が同時に塗られることがあるわけなの?
>>596 県ごとの画像をレイヤで上に重ねちゃうとか…。マンドクサソー
お客さんって言ってるからにはプロなんだよね・・・・・?
>>596 マウスポインタの座標を取得できるし、
イメージマップを作った時の境界線(頂点というべきか)の座標があるから、
領域内かどうかの計算はできちゃうね。
力技になっちゃうけど他のやりかたは思いつかないなぁ。
単独のjsファイルに他のtextファイルをドラッグ&ドロップしてjavascriptに データを処理させたいのですが、可能でしょうか? 環境はWindows2000+IE6です。
>>602 WSHとかでしょ。自分はそれ以上は知らん。
604 :
Name_Not_Found :03/07/18 01:29 ID:7W91/pFB
以下のソースを実行すると19行目(inputタグのところ)でオブジェクトを 指定しなさいと怒られてしまいます。どのオブジェクトを指定すれば 良いのでしょう? <script>タグ内で定義した関数なんですが…。 <html> <head> <script type="javascript"> function setPosition(o,x,y) { var obj=document.getElementById(o); obj.style.top=x; obj.style.left=y; } </script> </head> <body> <div id="Tbl01" style="position:absolute; left:0; top:0;"> <TABLE border> <TR><TH>A</TH><TH>B</TH></TR> <TR><TD>D</TD><TD>C</TD></TR> </TABLE> </div> <BR><BR><BR> <input type="button" name="button" value="go" onClick="setPosition('Tbl01',200,500);"> </body> </html>
>>604 × <script type="javascript">
○ <script type="text/javascript">
606 :
604 :03/07/18 02:29 ID:???
>>605 うわ、そういうことだったのですか…。
jsに触れた経験が少ないとはいえ、あまりに悔しいミスでした。
607 :
Name_Not_Found :03/07/18 04:20 ID:nHasyeSf
<SCRIPT type=text/javascript> <!-- function cg3(){ parent.fr1.document.bgColor = "#000000";} //--> </script> フレームページでの背景色を変更するスクリプトの、「parent.xx」の部分を 複数指定する方法を教えてください。 有名所をかなり廻りましたが、同時に変更するものは見付かりませんでした。 (複数同時にhtmlを変更するスクリプトはたくさんあったのですが・・・。) よろしくお願いします。
配列に入れてforで廻せ。
609 :
Name_Not_Found :03/07/18 04:42 ID:41R49FBA
>>608 自分にはちと難しいっす(;´Д`)
ヒントを下さい。。
608がヒントじゃん。 あなたが求めてるのは答え?
>>610 いや、自分で頑張ります!
ただfor文の書き方があまりよくわかっていないのです。
同じ文の繰り返しくらいしか書けなくて。
でもなんとか頑張ってみます。
どうもです。
同じ文の繰り返しでいいじゃん。 なんか問題あんの?
>607 <script language="javascript"> <!-- function cg3(){ for(x=0;x<64;x++){ parent.fr[x].document="#000000"; } } //--> </script>
>>613 もっともらしく嘘を教えるのはやめてくれよ。
>>611 JavaScriptでは「o.xxx」と「o["xxx"」」は同じこと。だからfr0, fr1,...なら
for(var x = 0; x < MAX; ++x) parent["fr"+x].document.body.bgColor = ...
という感じね。でもそれって読みにくいので自分なら
for(var x = 0; x < MAX; ++x) parent.frames["fr"+x].document.body.bgColor ...
とするけど。フレームの名前が不規則なら
var names = ["fr0", "fr1", "fra", "frb"];
for(var x = 0; x < names.length; ++x) parent.frames[names[x]].document....
615 :
596 :03/07/18 10:15 ID:???
>>598 あーそうか、map要素にonMouseOverつけれるのか・・・知らなかった(汗)
>>600 そです。ただ、普段はperlばっかりで、ほとんどJavaScripthは
やらないもんで。。。
>>601 力技は避けたいもんで・・・すみません
616 :
Name_Not_Found :03/07/18 10:23 ID:Zi0hAbCD
JavaScriptで静止画のランダム表示は行ったことがあるのですが、Flashをランダム表示させるにはどうすればよいのでしょう? また静止画とFlashを混ぜてランダム表示とかできるのでしょうか??
質問です。 <a href="javaScript:foo(###)"><img name="bar" src="aa.gif"></a> このようにaa.gifをクリックしたときにfooを呼び出したいのですが、そのときに画像のname属性であるbarをfooの引数にしたいのです。 その場合、###にはなんと記述すればいいのでしょうか?
はい
620 :
Name_Not_Found :03/07/18 11:44 ID:A/kuyNA1
>>617 過去ログを読んでないんだろうと思うけど、onclickからならthis
を経由してとれるけど、hrefからはできない。非常に力業をすれば
できなくもないかな。でも素直に"bar"とか書く方がいいと思うよ。
>>617 imgにイベントハンドラ与えればいいのになんでaで囲む?
623 :
617 :03/07/18 13:31 ID:???
>621 >622 おっしゃるとおりで。。。 うまくいきました。ありがとうございました。
625 :
Name_Not_Found :03/07/18 18:32 ID:Gxn8iPYn
死ね
以上 逆ギレの実例をご覧いただきました。
例えば下のようなスクリプトで、case a[0]〜case a[9] で起きる関数が一緒の場合 もう少し短くスクリプトを書き直すことはできないでしょうか。 var a = new Array(10); a[0] = "hoge"; a[1] = "fuga"; : : a[9] = "boke"; var let = "aho"; switch(let) { case a[0]: A(); break; case a[1]: A(); break; : : case a[9]: A(); break; default: B(); }
>>627 switch(let) {
case a[0]: case a[1]: ... case a[9]: A(); break;
default: B();
}
とか
for ( var i=0, b=new Object; i<a.length; i++ ) b[a[i]] = true;
b[let] ? A() : B();
とか。
なるほど。ありがとうございました。
>>627 これが分かりやすいかな
for(var i=0;i<a.length){
if(a[i]==let){break;}
}
if(i<a.length){
A();
}else{
B();
}
>>627 let="afo";
for(i=0;i++<9;if(a[i]==let)break);
if(i==10)
B();
else
A();
>>627 for ( var i=0; i<a.length && let!=a[i]; i++ );
if ( i==a.length ) B() else A();
>>630-631 編集ミスはおいておくとして。登録時はともかく検索時にループ回る
のはダサイと思うが。
({hoge:true,fuga:true, ... boke:true}[let])?A():B();
やりすぎ?
634 :
627 :03/07/18 19:29 ID:???
>>632 が一番早そうですね。使わせてもらいます。
速いつーなら
>>633 だろ、計測してみるかね?でもこんなの速さより
読みやすいかどうかを優先していいと思うから好きにしたらいいんじゃない。
636 :
627 :03/07/18 19:50 ID:???
いえ、実際は配列の長さはもっと長いので {} にいちいち書いていられないので。
function MM_jumpMenu(targ,selObj,restore){ //v3.0\n eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");\n if (restore) selObj.selectedIndex=0;\n よくあるセレクトメニューからリンク先に飛ばすやつですが、 CGIから吐き出したHTMLに仕込んで使ってます。 これで target="_self"とかって指定はできるんでしょうか。 できるんならどんな記述にするんでしょうか。
よくあるっていうか、メーカーのイニシャル入ってるのに まんまパクリってのはどうしたもんか。
>>640 Dreamweaver MX 使ってまして、僕の場合だいたい、
CGIの表示部はこういうオーサリングソフトで必要なページ作ってから
スクリプトを書いていくんですが、こういうの自分のスクリプトに
取り込んじゃうのってまずいんすか?
>>639 この関数呼び出してるとこ見ろよ。
明らかにターゲット指定してるとこあるじゃん。
CGI書けるのにJavaScriptの基本も分かんないってどういうことやねん
いや、targetはHTMLのレベル。
>>641 が正規ユーザーならまずくない。
個人使用でなくスクリプト配布だとちょっとだけまずー。
あとはちょっと恥ずかしい。ちこっとは変数名とか変えよう。
満員電車で大きなおならするくらい恥ずかしい。
>>641 了解した失礼スマソ問題ないと思います。
targetの指定についてはほかの人と同じ意見。
Locationにわたす引数にtargetくっつけれ、って事でしょうか。 どうも板違いのようです。
649 :
642 :03/07/19 00:46 ID:???
>>643 いや、一応Windowオブジェクトのプロパティとしての
ターゲット指定だから。
>>646 名言だな…
意味分かってて言ってる?
自分の貼ったソース見れば、いかにもtargetな引数があると思うが。
650 :
595 :03/07/19 00:56 ID:???
595 :Name_Not_Found :03/07/17 23:45 ID:???
imgやembedなどを使わず
javascriptで画像貼ることは可能?
597 :Name_Not_Found :03/07/17 23:54 ID:???
>>595 DOMを操作してIMG要素を造るってのはあり?
↑できれば詳しく説明してくだせい。緊急ではないのでsage
>>650 何がしたいんだ?
画像なら、iframeやbackgroundImageでもできるけど。
652 :
639 :03/07/19 01:05 ID:bxRCtwEZ
>>642 呼び出し元は、
<OPTION value="$script_name?mode=attest&request=form_outline&birth_year=$birth_year&fiscal_year=$fiscal_year">新規入力</OPTION>
とかです。
このvalueに target=body とかやっても駄目でした。
えーと、なんか大きな勘違いしてますよね?
>>652 JavaScriptをなんだと思ってる?
654 :
639 :03/07/19 01:14 ID:???
えーと、JavaScriptです。
>>652 クライアントサイドのJavaScriptでやりたいんですよね。
656 :
639 :03/07/19 01:20 ID:bxRCtwEZ
>>653 いや、よく知らないんです。。。java script
ちゅうか、どうも大きな勘違い、ってのはわかりました。ぼんやりと。。。
あ!、onChange="MM_jumpMenu('body',this,0)"だと!
なんだ。。。
657 :
639 :03/07/19 01:29 ID:bxRCtwEZ
>>656 いや、parentでした。self に変えたらフレーム解除しなくなりましたが、
フレームに与えた名前「body」を明示的に書いたらエラーになりました。
parent,selc,blinkとかじゃないと駄目なんですか?
>>657 parent.フレーム名.location.href
ちっと
>>4 あたりに逝ってくればすぐ解るのに。
parent[targ].location.href = ...
>>657 お前、いいからちょっとくらい調べろよー 答える気になれんよ
自分でCGI書けるわけではないってバレバレですわな… 見栄にならない見栄張るのみっともないよ。
663 :
Name_Not_Found :03/07/19 04:00 ID:h8xuK2Lp
前前からの素朴な疑問なんですが、 document.write を実行したときに実際に文字が挿入される位置ってどうやって決まるんですか? 呼び出し元のソースが書かれている位置ですか? HEAD内に<SCRIPT>があってdocument.writeしてる場合はどうなるんでしょう? カーソル位置みたいな考え方があるんでしょうか?
665 :
639 :03/07/19 05:09 ID:bxRCtwEZ
>>662 まあ、そういわれてもしょうがないですわ。
実際、perlで書いてるんですが、もともとまったく素人でして、
Cだの何だのプログラミングをちゃんとやった訳じゃないものですから
まったくの独学で、CGIプログラミング、初めての〜、プログラミングperl
で、今はEfective perlとか首っ引きで書いてますが、どうもそっちが
一所懸命なもんで、Java script にはあんまり気が行ってない、って言えば
この板の住人さんに失礼ですね。すいません。
でも、オライリーのJavascript黄緑本は持ってて、時々読んだりするんですが、
あんま頭がよくないんで入ってきませんわ。
もう一個Java scriptで宿題があって、未入力のアラートやってるんですが、
ええ、この前質問したものです。
入力欄、数が可変で多い時は30個ぐらいあるんですが、if構文ずらずら
perlのforeachで回してるんで、上から一個一個アラート出します。
これ何とかアラートを配列に放り込んで、最後にまとめて一発でアラート
出すようにしたいんですが、、、perlならすぐに書けちゃうんですが、
これも本体落ち着くまで後回しですわ。
なもんでJavascriptの書法がどうもすっと、入ってきません。
じゃ、お世話になりました。
var bom = "あ"; for(i=1;i<=10;i++){ bom=bom+"あ"; document.write(i+"回目の「ぐ"+bom+"ー!」<br>"); 初歩的な質問でスイマセンが、なんでbom+"あ";の「あ」が一回事に一つずつ プラスされて増えていくのか、教えてください。 一つずつ増えるのは頭ではわかっていても、理屈でわかりません。 仕様でしょうか。
bom=bom+"あ"; を bom=bom+" "+i; に変更してみて納得しちゃってください。
>>666 どうなるのが君の中の自然な結果なんだ?
初心を忘れちゃったんでどこが疑問なのかわからん・・・
>>666 forの動作について知りたいのか
変数を文字列にした場合の動作について知りたいのか分からんなぁ
>>667 無理でした。。
>>668 頭がこんがらがってきたので何が正しいのか混乱中です
>>669 前者です。
forが繰り返しなのはわかるんだけど、何故一つずつプラスして
繰り返すのか、なんだかよく分からなくなってきました。
*
(i+"回目の")の所のi+の部分が一つずつ増えていくのは納得してるんですが
「ぐ"+bom+"...」の+bom+の「あ」が一つずつ増えていく理由が
はっきりとわかりません。
変数bomを指定した文字列に置き換えりゃ分かると思うんだけど。 1回目 bom(あ) = あ + あ → ああ 2回目 bom(ああ) = ああ + あ → あああ 3回目 bom(あああ) = あああ + あ → ああああ ... 10回目 bom(ああああああああああ) = ああああああああああ + あ →あああああああああああ i の数字が増えていくのと原理は一緒なんだが。 ただ混乱してるだけじゃないの? 頭をゆっくり整理して、どーゆー動きか理解できればすぐ分かると思うよ。
bom = "あ" // "あ"が入る bom = bom + "あ" // "あ" + "あ" だから "ああ"が入る bom = bom + "あ" // "ああ" + "あ" だから "あああ"が入る 以下同様。
かぶった…
代入が分からないだけか? x = x + 1; x = x のはずだから、↑のような式はあり得ないって感じ? なんかの本で見て「うまいこと言うなぁ」と思った例えだが、 「今年(x)年は、年明け(+1)に、今年(x+1)になる」と。 余計分かりづらいか?w
676 :
589 :03/07/19 11:31 ID:Z1j/ieTz
すみません、スレ違いだと言われたので、こちらで質問します。
何度もすみません。。2chのアップローダーにアップしました。
ボタンのポップアップメニューなんですが、NN4.7以外では
正常に動作するのですが、NN4.7ではメニューの項目をクリックしても
指定のアドレスに飛びません。。
元ファイルは↓です。もし、よろしければご教授願います。。
http://up.isp.2ch.net/up/6d305a0915bc.zip
やなこった
なげーよ
>>674 こういっちゃなんだけど、余計に混乱するよ(藁
x = x + 1の矛盾は感じず、逆に、言われて気づいた経験をもつ間抜けな俺。
=と==の違いが分かれば乗り越えられる「壁」だよな
>>676 どんなエラーが出るのかくらい書けよ。
それとも、「動かない理由は、お前が書いたコードだからだ。」
なんて回答でいいのか?
>>681 俺の環境では10分の一くらいの確率でしか動かない。
NN4.78/WinXP
30KBもあるから見る気はせんが。
683 :
Name_Not_Found :03/07/19 19:12 ID:kLa/uNpW
JavaScriptで、INPUT type=text の入力フォームのMAXLENGTHを 動的に変更したいのですが、可能でしょうか? 具体的には、SELECTのプルダウンフォームで長さを変更したら MAXLENGTHを変えたいんです。 フォーム自体の見た目の長さは変えられるんですが、難しくて 分かりません。何とか助けてください。
>>683 <form name="f">
<input type="text" name="e" maxLength="3"><br>
<input type="button" value="set maxLength to 1" onClick="f.e.maxLength=1;"><br>
<input type="button" value="set maxLength to 2" onClick="f.e.maxLength=2;"><br>
<input type="button" value="show maxLength" onClick="alert(f.e.maxLength);"><br>
</form>
あ、ひょっとしてプルダウンメニューの処理がわからんってことじゃないよな?
>>683-685 <select name="s" onchange="f.e.maxLength=this.selectedIndex+1">
<option>1</option><option>2</option><option>3</option><option>4</option>
</select>
ハッキリ言ってアメリカなどの多民族国家では黒人の方がアジア人よりもずっと立場は上だよ。 貧弱で弱弱しく、アグレッシブさに欠け、醜いアジア人は黒人のストレス解消のいい的。 黒人は有名スポーツ選手、ミュージシャンを多数輩出してるし、アジア人はかなり彼らに見下されている。 (黒人は白人には頭があがらないため日系料理天などの日本人店員相手に威張り散らしてストレス解消する。 また、日本女はすぐヤラせてくれる肉便器としてとおっている。 「○ドルでどうだ?(俺を買え)」と逆売春を持ちかける黒人男性も多い。) 彼らの見ていないところでこそこそ陰口しか叩けない日本人は滑稽。
688 :
Name_Not_Found :03/07/19 20:47 ID:kLa/uNpW
>・JavaScriptとJavaの違いを理解する者
ゲームでちょっと思ったんだけど、webブラウザ+JavaScriptで どのレベルのゲームを実現出来るもんかなあ。 ファミコンぐらいか。 ちょっと頑張ればスーファミぐらいいけるかな?
まあ、検索してくださいな。 実行環境の性能に大きく依存すると思うけどね。
693 :
Name_Not_Found :03/07/20 00:21 ID:MB6agRwM
document.write を実行したときに実際に文字が挿入される位置ってどうやって決まるんですか? 呼び出し元のソースが書かれている位置ですか? HEAD内に<SCRIPT>があってdocument.writeしてる場合はどうなるんでしょう? カーソル位置みたいな考え方があるんでしょうか?
ヘッダ内だろうがどこだろうが<script>...</script>のある位置 に挿入される。というか、<script>でHTMLの解析止めてJavaScript の実行に入り、その中でdocument.write()したものはHTMLの一部 として続けて処理され、</script>でまたHTMLの続きに戻るだけ。 だからイベントハンドラとかsetTimeoutとかで「後から」 document.write()しちゃだめよ(もしやると、書いた瞬間にページが まっさらにクリアされる…ということはJavaScriptの実行も中止 させられる)。
696 :
Name_Not_Found :03/07/20 02:02 ID:YkTkDum4
ツバラ
702 :
Name_Not_Found :03/07/20 06:56 ID:mS3qk0BW
複数の画像(リンク付)を表示させて、 同じ画像は表示しない方法はありますか? 以前にやったのですが、たまに2個同じ画像が 表示されてしまったので、どこかにいいソース があれば教えていただきたく思います。
>>702 なに、URIは違うけど画像としては同じものがあるってこと?
そんなのJavaScriptで分かるわけないと思うが…URIが同じって
のなら別に難しくはないでしょ。
var a = new Object(), b = document.images;
for(var i = 0; i < b.length; ++i) {
if(a[b[i].src]) b[i].src = 'shouryaku.png'; else a[b[i].src] = true;
}
いっとくけど
>>703 のコード、HTML読み込みが完了してから
実行しないとダメよ。関数にしてbodyのonloadから起動とかで。
素人はonload使うな。
707 :
702 :03/07/20 10:33 ID:mS3qk0BW
>>703 ごめんなさい。ちょっと説明不足でした。
もし1〜10.jpgの10個の画像があって、その中から3つランダムに
表示したいとして、たとえば [1.jpg, 5.jpg, 8.jpg]が表示された
ってのは構わないんだけど、たまに[1.jpg, 5.jpg, 5,jpg]
ってな具合に、同じものが2個重複して表示されるから
困ってますです。
>>707 ランダムに表示させる方法は?
まさかJavaScriptを使ってランダムに表示させてる訳じゃないよね?
709 :
Name_Not_Found :03/07/20 12:12 ID:yYnaWROz
HTMLタグ使用可の某サービスで、<script>の<>だけを> <に 変換する嫌なスクリプト避けがあるんだけど、<script>使わずに ジャバスクリプトを読み込ませる方法はないものかな。 別に悪いことをするわけじゃないよ。 var str = document.location.protocol;を使って スタイルシートを振り分けたいんだけどね。 文書が手元にないんだから、こんな方法でも使わないと スタイルシートを振り分けられないよ。
>>707 画像から離れて「重複しないデータ抽出」について考えてみよう。
>>709 それができるなら悪いこともできるだろう。
あ、それcookie対策だろ
713 :
709 :03/07/20 15:05 ID:???
>>712 おれはそんなに聡明じゃない。もう手詰まりだよ。
714 :
藤田田 :03/07/20 16:34 ID:UsvYA5Wp
window.moveTo(,)で窓を動かしたいのですが縦だけにしたいんです。 (x,y)のxはどうすればいいでしょうか。 空白にしたら動きませんでした。。
>>714 0
名前からしてふざけてるから釣りのような気がするが・・・
716 :
藤田田 :03/07/20 17:00 ID:???
>>715 すみません・・
真面目に聞いています。
0にすると座標が0になってしまいます。
そうすると、タスクバーを左側縦に配置している場合、
窓がタスクバーの裏へもぐりこんでしまうので、悩んでます。
>>716 window.moveTo(screen.Width-screen.availWidth, y)
ああ、左に寄せるんじゃなく横は移動させないんだったか moveBy(0, y)
719 :
藤田田 :03/07/20 17:35 ID:???
>>717-718 なるほどなるほど。
相対座標でしたか。
717も参考にさせていただきました。
大変勉強になりました。
どうもありがとう御座いました。
720 :
Name_Not_Found :03/07/20 19:04 ID:lvYl/BN7
ちなみにページそのままDLしてきてそのままUPしたりもしたんですが、 駄目でした。サーバによって不具合とかあるんでしょうか…?
722 :
Name_Not_Found :03/07/20 19:44 ID:GuioLPUb
JavaScriptを使用してブラウザ(IEやモジラ等)から、 サーバにどこどこのリンク(Web上でなく、ローカル) に移動したという情報を 送ることは可能ですか?不可能ですか?
>>722 何をしたいのか分からない。
もうちょっと詳しく、あるいは例をあげて説明してみて。
724 :
Name_Not_Found :03/07/20 20:23 ID:GuioLPUb
簡単に言うと、ブラウザの移動を受信して、動くアプリケーションです。 ブラウザの移動情報をJavaScriptで中継サーバに送信 ↓ 中継サーバでJavaなどを利用し、アプリケーションにメッセージ送信 ってな感じです。 要するに、JavaScriptでブラウザ以外のプログラムに移動情報を 送信可能か?ということです。
refererをcgiに渡したらいかんのか? 元ページに仕込みができないなら他のウインドウとかフレームから タイマーでもかけて監視するか。 てかあんた何をしようとしてるの?
明らかに不正な目的だろう よってスルー
リファラも送ってくれないことがあるからねぇ
728 :
Name_Not_Found :03/07/20 21:41 ID:GuioLPUb
不正なことじゃないんですが。 ただ(メジャーな)既存のブラウザをインタフェースに使いたくて...。 ネットを通さずにローカルな環境での話しなんですが...
CGIでちょっとした掲示板を作っているのですが、 セレクトフォームで幾つかの画像を選択させたいのですが、 例えば1〜10までの画像があって、 セレクトフォームでその数字にカーソルを重ねると、 絵が出るようにしたいのですが、 どのようにしたら良いのでしょうか? 分り辛いかもしれませんが、何卒ご教授下さいませ
すみません。これ↓ <select></select> です。ヨロシクお願いします。
メニュー開いて選択しようかな〜ってときにカーソルが重なっただけでアクション? そんなイベント取れるんかいな? マックなんかはポップアップメニューだし無理なんじゃないの?
選択しないと無理でしょうね。 onChange。 IEならonMouseOverで作動しそうな気もする。
>>729 基本はこんな感じ。
でも onMouseOver とかは無理。Select以外で考えナ。
ただ、クエリを渡す前に画を確認させたいってだけならコレで問題無いだろ。
<SCRIPT>
IMGS = new Array();
IMGS[1] = "1.gif";
IMGS[2] = "2.gif";
IMGS[3] = "3.gif";
IMGS[4] = "4.gif";
IMGS[5] = "5.gif";
function SwapImg(){
document.images["ImgName"].src = IMGS[document.FormName.SelectName.selectedIndex];
}
</SCRIPT>
<IMG SRC="default.gif" NAME="ImgName">
<FORM NAME="FormName">
<SELECT NAME="SelectName" onChange="SwapImg()">
<OPTION>1
<OPTION>2
<OPTION>3
<OPTION>4
<OPTION>5
</SELECT></FORM>
>>733 > IEならonMouseOverで作動しそうな気もする。
ダメぽ
>>720 それはアレか?
こんな痛いサイトを発見しました!という報告か?(藁
そんな糞よか CSS の A:HOVER 使えヨ。
>>720 ホントにN7.1で動くの?コード見ると一生懸命IE以外をハネてる
ように見えるけど。アンタはコードに目を通してないの?ここは
コード読まない人が来るところじゃないと思うが。
>>736 が言う通りCSSが正解と思うがJSでもこの程度。N4は駄目ね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title><body>
<h1 onmouseover="this.style.color='blue'"
onmouseout="this.style.color='pink'">Test</h1>
</body></html>
乱数について質問なんですが a = Math.floor(Math.random()*10 + 1); みたいなやり方でやると リロードしないと同じ数字がでてきてしまうんですが リロードしなくてもいい方法ありませんか??
739 :
Name_Not_Found :03/07/21 12:10 ID:NP4aLavP
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
>>737 > ホントにN7.1で動くの?
動く。ナゼならアンカーに入れてA:Hover使っているから。藁
>>738 意味がよくワカランぞ。と。
setInterval("alert(Math.floor(Math.random()*10 + 1))", 1000);
で見てみ。毎回違うと思うが。
>>740 説明しにくいので
もうちょっと知識つけてから質問しにきます。。
↑の人と似たようなことで 質問 FORM内に乱数で数字を表示させようと思うんですが リロードしないと 同じ数字がでてしまうんですがどうしたらいいですか??
>>742 だから意味がわからん。って。
これで確認してみ。
<FORM><INPUT TYPE=TEXT></FORM>
<SCRIPT>
setInterval("document.forms[0].elements[0].value=Math.floor(Math.random()*10 + 1)",1000);
</SCRIPT>
744 :
Name_Not_Found :03/07/21 14:02 ID:hx5uvP17
745 :
Name_Not_Found :03/07/21 14:07 ID:6wvQMfHw
que = Math.floor(Math.random()*10 + 1); function func1() { document.frm1.masa1.value=que; } <form name="frm1"> <input type="text" name="masa1" value=""> <input type="button" value="押すべし" onClick="func1()"> </form> これでボタンを押しても同じやつにしかならんのですが。。
javascript:for(i=0;i<=100;i++)document.writeln(Math.random()+"<br>");
>>745 あたりまえだろ。
func1のqueをMath.floor〜に汁
>>745 ネタか?藁
関数の中に入れろよ。
function func1(){
document.frm1.masa1.value = Math.floor(Math.random()*10 + 1);
}
「乱数」ってやらしいよな
そうだな。 オレは「ピンクノイズ」でイキそうだ
750 :
720 :03/07/21 17:57 ID:???
>>737 それも思ったのですが、サンプルスクリプトをのせてる
もとのページのサンプル個所は同じ記述が使われているはず
なのにNN7.1で動作してる…なんでだろうと思ったもので。
いや、NNで駄目であるということはいいんです。
ただ謎に思ったもので。
もとのページにアンカーにA:Hoverありましたか…?
一応サンプルスクリプトの通りだと思ったのですが…
A:HOVER はCSSの外部ファイルにもう使ってしまっていて、
一部に使用したかったので、あまり紛らわしいことはしたくないな、
と思って、Javaスクリプトだとどうだろうと思ったもので。
Javaスクリプトはあきらめて
>>737 さんの後述の方法
でやってみます。
HTMLとCSSは最低限は理解できてると自分では思ったのですが、
勉強不足だったかもしれません。
Javaスクリプトのほうはいまいちよく理解できてないと思います。
すみませんでした。
>>750 いやだから
>>737 の後半のがJavaScriptなんだってば…そうか、
確かに「Javaスクリプト」ではないわな(藁)
>>750 JavaScriptの前にCSSをもっとがんばってみれ。
一部のaにだけ指定したいんなら a.クラス名:hoverで済むし。
まぁCSSスレにドゾってことで
「よくわかってない」「教えてください」って奴が、識者の解答に対して なにを根拠に「それは違う」と言い出すのか毎度毎度不思議。 ちなみに、マジに間違った解答をする奴も少なからず居るが、そういう場合は 別な識者が突っ込みを入れるので、教えてもらいたい奴はとりあえず 「何故この人は(解ってない自分から見ても)チガウと思う答えを書いたのだろう」 と考えてみるべき。大抵、自分の前提か、あるいは質問が間違ってる。
>>753 質問の意図を理解する能力の乏しい者までを「識者」と呼ぶのには抵抗があるな。
技術的な識者が、質問のやり取りについても識者とは限らない。
>>754 >質問の意図を理解する能力の乏しい者までを「識者」と呼ぶのには抵抗があるな。
じゃあそういう奴を識者と呼ばなけば宜しい。そのうえで、
>>753 を再解釈すれば宜しい。
>技術的な識者が、質問のやり取りについても識者とは限らない。
これは実際ご尤もであって、だから誤解の余地のないようにテクニカルタームが
色々定義されているのに良く解ってない人はそれを間違って使うのもご存知の通り。
乱数についてのやりとりを見ると、 確かに、質問に対する解答は正しいが、 よく考えればそれが質問者が求めている回答ではないのが分かる。 その辺をうまく見抜いてほしいな。表現するのが下手な人だって居る。
見抜く方が上手だといつまでも質問がうまくならない。 だから質問者の意図と違った答えも必要だと思うね。 意図と違うといって逆ギレする奴はさっさと去って くれたら吉。
というか756は回答者様様のある意味危険思想な気がする。
なんつうか、ここで回答してる香具師って 自分の勉強のためか、暇してるやつだろ。 質問してんのに、遠まわしで的外れな回答してただ 「自分はこんなコード書けます。」的なやつも見かけるぞ。 上二つの理由で回答してるやつで 回答者様様なんて思ってる香具師は反省汁!
>>759 まぁ間違った所で、信頼も信用も失わない匿名掲示板だからなぁ。
質問する方も、解答する方も質問掲示板である以前にここは2chって意識してればいんじゃね。
763 :
Name_Not_Found :03/07/22 04:32 ID:l+Xy4p23
トップ以外へリンクを張られた時に無効化(トップに戻るようにする) やり方分かりませんか?
764 :
Name_Not_Found :03/07/22 04:36 ID:/lrPHsgx
765 :
_ :03/07/22 04:39 ID:???
>>763 document.referrerがあったらチェック
>>767 ウザイから、location.replaceにしろ
>>768 すまそ、いつもそれ忘れちゃうんだよね。
770 :
742 :03/07/22 12:14 ID:???
下手な質問してすいませんでした;;
>>744 は私じゃないです・・
言っておくが私は逆切れしてないぞ。 むしろ逆切れされたほうだ。
772 :
_ :03/07/22 16:20 ID:???
773 :
_ :03/07/22 16:22 ID:???
ともかく2ちゃんで逆切れするヤシは恥ということで。
マルチポストみたいですみません。 初心者スレで一度、お伺いしたのですが、 お答えを頂けなかったので… とあるサイトがJavaScriptでソースを隠しているようなのですが、 下を使うとソースを見れないように出来るんですか? <script language="JavaScript"> <!-- function SymError() { return true; } window.onerror = SymError; //--> </script>
>>775 自分のページにそれ入れてみて隠せるか試せばいいのに。
onerrorに関数入れて常にtrueを返させるとJavaScriptの
エラーダイアログを出させなくできる。それだけぴょーん。
ソースの隠し方だったら教えないから過去ログ読んでね。
>>775 それはJavfaScriptのエラーダイアログを出さないようにする小細工で
ソース隠しとは無関係。
どっちにしろJavaScriptではソースを見づらくすることができるだけで
見られなくすることはできないわけだが。
775ですが、別に私が隠したい訳ではありません。 とあるHPが人様のページのパクリをやっているのですが、 ツールバーのソースの表示からも見られないように JavaSccriptを使っていたので、 どれがそうなのかなと単純に疑問に思っただけです。 ご回答頂き有難うございました。 過去ログ、見に行かせて頂きます。
見に行くのはいいことだけど完全に隠すことなど不可能という のが結論だから。まあそのパクリ野郎のやってることがどんな 事かくらいは分かるようになるだろう。
質問です。 window.scrollBy(x,y)で、同ページ内に移動する時、 現状では、一瞬で切り替わってしますのですが、 ゆっくりとその位置まで、スライドしていくというのは 可能なのでしょうか?
Yes. forなんかで 「少し移動」を繰り返せば?
782 :
780 :03/07/23 10:29 ID:???
>>781 回答ありがとうございます。
「少し移動」とはどのようにすればよいのでしょうか。。。
手間でなければ、教えていただけますでしょうか。
>>782 おーい、 scrollBy の引数は移動量、だろ?
そこいじれば簡単に「たくさん移動」にも「少し移動」にもなるだろ。
784 :
780 :03/07/23 10:50 ID:???
>>783 すいません、まだ勉強し始めなのでよくわからないんです。
どのように記述すれば良いのでしょうか。
申し訳ないですが、教えていただけないでしょうか。
>>780 書いてる挙動は、scrollToだ。
タイマーかまして、scrollByを目的の場所まで繰り返せば良かよ。
って、そのものずばりのソースが欲しいんだろ、単に。
786 :
780 :03/07/23 10:58 ID:???
>>785 出来ればソースが欲しいです、
どうして良いのかわからないので。
ならサンプルソース探せよ。 そんなんならその辺にごろごろ転がってるから。 #サンプルソース書こうとしたけどクロスブラウザ対応が面倒くさくなってやめた奴
788 :
780 :03/07/23 11:19 ID:???
>>787 すいません、探したのですが見つからなくて。
window.scrollTo(X,Y);
setTimeout(scrollTo,20);
↑こんな感じで作れば良いのでしょうか。
>>780 function scrl(y){
var timer;
(function(){
scrollBy(0,10);
y-=10;
if(y>0)
timer = setTimeout(arguments.callee,30);
else
clearTimeout(timer);
})();
}
IEで動いた
>>791 何が違うの?
scrollByを使いたいってわけじゃないんだろ?
英語の問題を作ろうと思います。JSで可能かどうか教えてください。 左にいくつか単語があります。右にそれらが表す絵が順不同で並んでいます。 単語にマウスカーソルを置いて、それが表す絵の上に持っていってマウスを 離す(左ボタンを押さない状態にする)と正解を示す音(「チーン」とか) が出て、点数(sumという変数)に10点なりを加算する。間違った絵の上で マウスを離すと不正解を表す音(「ブー」とか)が出る。 どっかで見たような気がするんですが、探せないでいます。 よろしくお願いします。
>>794 英単語の方も画像なんじゃない?
そうすると
画像のドラッグアンドドロップと重なり判定の問題だけだ。
↓任せた
自分で作れよ
>>794 >JSで可能かどうか教えてください。
出来るけど、どうせそのものずばりのソースが欲しいんだろ
なめんな
>>794 正直FLASHで作れば一瞬なのに…と思ったよ!
余談だけどさ、
>>794 のスクリプト
ver.4以降ブラウザ対応ってことにして
制作期間どのくらいかかる?
実際作るってわけじゃなくて。
俺、5〜6時間くらいかかりそうなんだけど…遅すぎる?
801 :
799 :03/07/23 17:43 ID:???
>>800 早すぎるよ!俺が遅すぎるんか?
それは仕様設計も含めて?
>>801 1問限定だガナー
データファイル読み込みで、
絵とかバグ取りとかするとそんなもんでない?
803 :
Name_Not_Found :03/07/23 20:07 ID:zuFlqqSo
for(i=0;i<form.elements.length;i++){ form.elements[].value=""; } でフォーム内の入力フィールドのみを空白にしたいんですが 送信ボタンやbutton 等の名前も変わってしまうんです。 何かいい方法はないでしょうか?
音含みIE4以降に限定すれば3時間
>>803 タグ名と属性(type)を拾う方法が一番スマートかな。
807 :
805 :03/07/23 21:49 ID:???
>>806-807 ちょっとちょっと。ラジオボタンとかselectとかチェックとかは
触らずにフィールドだけクリアするという問題じゃなかったの?
本当にreset()でいいんなら…欝だ。
夜中に失礼。急な用事 「1」っていうボタンを押すと新しいウインドウで↓こんな状態の1.htmlが開くようにするにはどう組めばいいんだ? toolber=no,location=no,directories=no,status=no,menuber=no,scrollbars=no,resizeble=no,width=300,height=450")
window.open()
あぁボタン用意してクリックしたらwindow.openで 上のステータス入れたファイルを開けばいいんだ何慌ててたんだろ。スマソ
web designing誌2003年5月号で、 リンクにカーソルを合わせたときに表示される(title属性)ポップアップを CSSでいじれるようにする、というようなJavaScriptサンプルがあったのですが、 何故かXHTMLでは動作が確認できませんでした。 HTMLとXHTMLでは何か違いがあるんでしょうか?
>>812 それ以前に、a要素のtitle属性はIEの独自拡張だ。
814 :
Name_Not_Found :03/07/24 03:16 ID:TkNGhg88
W3Cの話題はスレ違い。
>>813 はあぁ???
えらそうな口きく前にもうちょっと勉強してこいよおバカさん(プ
>>812 ソース無いと何も言えんわい。
>>813 「動けばいい」って前提ならば、スレ違い。
>>816 「(PCの前で振り向かずに)お母さん、夕ご飯まだいらないよ」 と、
「(掲示板で)はぁ? 〜〜〜(プ or w or 藁」
以外の言葉をひとつ。
ブックマークからそのページ(フレームページ)に入ると 別なサイトに飛ぶようなものはありませんでしょうか?
>>818 リファラみれ。
吐かない香具師等は全員飛ぶがな。(プ
つーか、厨房思考 ハズカシイ
>>813 HTML4.0からの汎用属性だよ、確か。
他のブラウザでサポートしてなかっただけ。
無論XHTMLにも継承されてる。
821 :
812 :03/07/24 08:06 ID:???
>>795-
>>802 ,
>>804 英単語->絵組み合わせ問題の質問に対しご回答ありがとうございました。
いえいえ、ソースきぼんぬではなくて、できるかどうか
だけお聞きしたかったので、できることが分かったので
自分でやってみます。また、その過程で、分からないことが
出てきたら寄せていただきます。
# そう、FLASHでも同じようなの見たことあるような気がして、
# しかし、JSの方が一般的ですよね。多くの人にやらせたいので。
>>822 ざっと見たけど「document.body.insertBefore」が駄目ってことはないかな。
XHTMLだとIEの標準準拠モードになるっしょ?「document.documentElement.
insertBefore」に取り替えてXHTMLでテストしてみたらどうかな。
まてよ、その問題ならエラー出てるはず。エラーは出てないのね?
824 :
812 :03/07/24 08:53 ID:???
>>823 以前テストしたときはエラーなどはなく、
リンクにカーソルを合わせてもtitle属性が表示されない、
という状況でした。
差し替えて試してみます。
825 :
812 :03/07/24 08:56 ID:???
title属性が表示されるようにはなったものの、 本来目的としているポップアップのCSSによる装飾は一切無効でした。
>XHTMLだとIEの標準準拠モードになるっしょ?
XML宣言があるとコケて互換モードになったような。
bodyObj を UA で判別しているけれど
これ document.compatMode とかで判別した方がいいのかも、と思った。
>>825 そのXHTMLってさ、MIMEがtext/xmlだったり拡張子が.htm(l)以外だったりするの?
827 :
812 :03/07/24 09:21 ID:???
MIMEはtext/xmlで拡張子は.htmlです。
828 :
812 :03/07/24 09:22 ID:???
あああ、text/htmlでした。
>>812 できもしないくせに、かっこつけてXHTMLなんて使おうとするな。
素直にHTML使え。W3Cに服従するように洗脳でもされてるのか?
830 :
Name_Not_Found :03/07/24 14:37 ID:HmF1aykz
navigator.userAgent は 「Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) のような値を返しますが、 「 Mona 」 のような任意の文字列を返すようにしたいです。 ※ javascriptのソースをいじらずに、PCの設定などを変えることで返り値を 変えたいです。 レジストリの HKEY_USERS\.DEFAULT\software\Microsoft\Windows\CurrentVersion\Internet Settings\ にある User Agent を書き換えてみてもダメでした。 こういうことは可能なんでしょうか?
>830 Mozillaなら可能
>>830 homepage2.nifty.com/winfaq/c/ietips.html#237
これダメなの?
833 :
830 :03/07/24 15:14 ID:???
>>831 ありがとうございます。
それでMozillaの設定をどうすればいいんでしょうか?
Mozillaの設定もレジストリもMozillaフォルダの中も見てみたんですが、
それに該当する設定が見当たりませんでした。
宜しければ教えて下さいませ。(^^;A
834 :
830 :03/07/24 15:16 ID:???
>>832 どうもありがとうございます、今から実験してみます。(^^;
Moz は about:config で general.useragent.override を作る。 微妙にスレ違い気味なのであとは検索でなんとか汁。
>>832 氏の紹介して下さったページの通りにいじってみたら
ちゃんとUAが変更されました、感謝っすm(^^)m
837 :
830 :03/07/24 15:48 ID:???
>>835 ありがとうございました!
Mozillaでもちゃんと変更出来ました。(^^
皆さん親切にありがとうございました! 改めて感謝〜
838 :
Name_Not_Found :03/07/24 16:28 ID:LrVXHOhZ
javascriptを使用したアニメーションを作成したいと思い 以下のプログラムを参考にしながら行っております。 <!-- if(document.images){ i=0; img=new Array(); img[0]=new Image();img[0].src='f1.gif'; img[1]=new Image();img[1].src='f2.gif'; img[2]=new Image();img[2].src='f3.gif'; } function Ani(){ if(document.images){ TI=setTimeout('Ani()',1500); if(i==3); document.img.src=img[i].src; i++; } } //--> </SCRIPT> </head> <BODY onLoad="Ani()" onUnload="clearTimeout(TI)"> <IMG SRC="f1.gif" NAME="img"> 実行させた時、3枚目の画像が表示された時のみにイメージマップ (usemap="#Map)が利用出来る様にしたいのですが、どうすればよ いでしょうか? 大変初歩的な質問で申し訳有りません。宜しくお願い申し上げます
>>838 なんで「初歩的な質問」だと判断したわけ?慣用句だったらうるさい
からそういうこと書くのやめて欲しい。あと「if(i == 3);」って
まったく意味ないんだけどな〜。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var tid, count = 0, imgs = ['t1.png', 't2.png', 't3.png'];
function init() { tid = setInterval(step, 1000); }
function step() {
if(count < imgs.length) {
document.images[0].src = imgs[count++];
} else {
clearInterval(tid);
document.getElementById('p0').innerHTML =
'<img border="0" src="t4.png" alt="test" usemap="#m0">';
}
}
</script>
</head><body onload="init()">
<p id="p0"><img src="t0.png" alt="test"></p>
<div><map name="m0">
<area alt="y" shape="circle" coords="10,10,5" href="
http://www.yahoo.com ">
<area alt="i" shape="rect" coords="5,10,10,5" href="
http://www.infoseek.com ">
</map></div>
</body></html>
1を選ぶと1.htmlをwidth=210、height=160で開きたいんだけど どうもaboutが開いてしまう。どこがいけないんだろう <SCRIPT LANGUAGE="JavaScript"> <!-- function openWindow() { window.open(document.link.list.options [document.link.list.selectedIndex].value); } //--> </SCRIPT> </head> <FORM NAME="link"> <SELECT NAME="list"> <OPTION style={background-color:#ccffcc;} selected>選んでくれ</option> <option style={background-color:#ccffcc;} value="1.html">1</option> <option style={background-color:#ccffcc;} value="2.html">2</option> </SELECT> <INPUT TYPE="button" VALUE="行く" onClick="window.open('' , 'link' , 'width=210,height=160')" style="color:#333333;background-color:#ccffcc;border-style:solid;border -color:#88ff88;border-width:1px;"> </FORM>
841 :
838です :03/07/24 17:50 ID:LrVXHOhZ
839さん、ありがとうございます。 申し訳ありません。 言葉使いが間違っておりました。 if(i == 3)をつけたのは、3枚目で、アニメーションの実行を止めようと 考えてつけました。
>>840 面白いからどうやってその「openWindow()」が呼ばれる予定なのか
説明してみない?
>>841 「if(i == 3) なんとか」→iが3のときなんとかをする。「;」→何も
しない文(空文)。「if(i == 3);」→iが3のとき何もしない。つまり
常に何もしない。
843 :
838です :03/07/24 21:35 ID:N8hD1FkX
教えていただいたソースを実行してみたところ 画像の切り替えは動作しますが、クリッカブルマップが 動作しません。 環境は Win2000+IE6.0です。 度々申し訳有りません、宜しくお願いいたします。
>>843 動作してるよ
coordsを調整してみれば?
845 :
838です :03/07/24 22:02 ID:aLt6Ksed
汗・・・。 動作しております。 慌てておりまして、大変失礼いたしました。 お詫びいたします。
846 :
838です :03/07/25 10:44 ID:7E7c8FHC
お世話になっております。 840のソースに、リンク先から戻った時に 最後のフレームのみを表示させたい場合 どのようにすれば良いでしょうか? 重ねがさね申し訳ありません。
>>846 意味ワカラン。
その前に>840はアレじゃダメだろーに。
>>847 もちろん手抜きしてるけど足りないことは言ってみてくれれば…
>>846 あんまりかっこよくないけどとりあえずinitとstepをこう直せば。
何か「一度来た」という目印が必要なんで「#e」というのをつける方針。
function init() {
if(location.hash == '') {
tid = setInterval(step, 1000);
} else {
document.getElementById('p0').innerHTML =
'<img border="0" src="t4.png" alt="test" usemap="#m0">';
}
}
function step() {
if(count < imgs.length) {
document.images[0].src = imgs[count++];
} else {
clearInterval(tid);
document.getElementById('p0').innerHTML =
'<img border="0" src="t4.png" alt="test" usemap="#m0">';
location.replace(location.href + '#e');
}
}
849 :
848 :03/07/25 11:41 ID:???
850 :
838です :03/07/25 12:17 ID:7E7c8FHC
ありがとうございます。 上記回答、839でした。私が書き間違えました。すみません。
851 :
Name_Not_Found :03/07/25 15:36 ID:O/tiKch7
852 :
Name_Not_Found :03/07/25 15:52 ID:N2MwWm+a
(<span id="0">10</span> <span id="1" style="display:'none'">24</span> <span id="2" style="display:'none'">20</span> <span id="3" style="display:'none'">25</span> <span id="4" style="display:'none'">30</span> <span id="5" style="display:'none'">34</span> <span id="6" style="display:'none'">14</span> <span id="7" style="display:'none'">16</span>) こんな感じのをnoneとlist-itemをjavascriptで入れ替えることで どれかひとつだけ表示させて残りは見えなくなるようにしたのですが IE6だと数字の前後に改行が入ってしまうんですけど何とかなりませんか?
>>853 改行すんな。
(<span id="0">10</span
><span id="1" style="display:'none'">24</span
><span id="2" style="display:'none'">20</span
><span id="3" style="display:'none'">25</span
><span id="4" style="display:'none'">30</span
><span id="5" style="display:'none'">34</span
><span id="6" style="display:'none'">14</span
><span id="7" style="display:'none'">16</span>)
>>854 実際は改行は入れてません
見難くなると思って改行入れました
あと、IE5.5では正常に表示されていたのですけどIE6ではだめでした
インライン要素使ってるはずなのに改行が入ってしまってお手上げ状態なのです
>>855 list-itemはブロック要素だから改行されて当然じゃないの。
inlineでやれば。
>>853 えぇと?
list-item使えば、ブロックレベルになるのは当たり前じゃないの?
858 :
857 :03/07/25 21:14 ID:???
かぶった
無知を晒してしまってお恥ずかしい限りです うまくいくようになりました。皆さんどうもでした
気が向いたのでアラシにきたぞ じゃ、まずは板違いでいこかw これはWinプラットフォームでのテクだ みんなCGIスクリプト言えばUNIXサーバーのおかげでPerlと思うだろが WinでもわざわざWin版PerlインストールしなくともJScript,VBScritでできる ASPじゃないのかって?いいや基本通りのCGIだw それにはWSH(ウインドウズスクリプティングホスト)5.6以上を推奨する(win95以上で可) AN HTTPDなどのWebサーバーに.wsfや.jsファイルがCGI実行ファイルであると登録する(スクリプト実行にはWScript.exeを指定) CGIを実際実現するには、標準入出力とファイル操作ができなくてはならない ブラウザクライアント動作でなくローカルマシン動作なのでファイル操作は問題ない var ObjFSO=new ActiveXObject("Scripting.FileSystemObject"); // 標準出力には WScript.StdOut でアクセスできる // 環境変数取得には以下の要領 var WshShell = CreateObject("WScript.Shell"); var ColWshEnv=WshShell.Environment("Process"); //プロセス環境変数の取得 // ColWshEnv("環境変数名")で取得する
こんな時間に謎のNGワード。 もしかして広告?
誰もみないのでage 反響(煽り含むw)があればWebProg板でも行ってみる
863 :
_ :03/07/26 03:29 ID:???
864 :
Name_Not_Found :03/07/26 05:37 ID:P7Kw8Jfz
865 :
Name_Not_Found :03/07/26 05:44 ID:TSgeBwNy
Javascriptで外部HTMLファイルを読み込むのと、 フレームを使っているのとでは、どちらが「ショボッ」と思われるでしょうか? 用途は、次々に増えるページへのメニューの組み込みです。 前者だとJavascriptオフの場合に表示されなくなるのが気になっています。 CGIしか使えない環境なので、読み込むのはJSしかないかと思うのですが… ご意見おきかせいただければ幸いです。
866 :
865 :03/07/26 05:45 ID:???
補足です。 今使っているサーバがCGIが非常に不安定なので、 できればHTMLで実現したいのです。よろしくお願いします。
質問自体がショボい。
>>865 でもJavaScriptでどーやって組み込むわけ?ファイル名の
一覧とかないとメニューに出せないでしょ、そのファイル名
の一覧は毎回変わるわけじゃない。それってCGIで出力する
以外の方法があるの?
>>868 まぁネタだとは思うが、
document.writeを外部JSで。
個人的には環境依存なことするより
HTML生成アプリのテンプレート機能とか
ローカルでperl組んで、HTML書き出しするとかした方がいいと思います。
独自のオブジェクトにメソッドを持たせることはできますか?
873 :
868 :03/07/26 17:56 ID:???
別に自分がショボいのは自覚してるからそれは何でもないんだけど。
>>871 やっぱり納得がいかない。その外部JSファイルをどうやって修正する
のか。手で編集するならHTMLを手で編集したって同じことだと思うが。
ファイルが勝手に増えてそれに対してメニューも自動で増えるものと
理解していたんだけど…結局、元質問者の状況がよく分からんというか。
>>872 こんな感じでつか。
function MyCounter() { this.count = 0; }
MyCounter.prototype.get = function() { return this.count; }
MyCounter.prototype.add = function(n) { this.count += n; }
// sample
var c = new MyCounter(); c.add(5); document.writeln(c.get());
874 :
872 :03/07/26 17:58 ID:???
875 :
Name_Not_Found :03/07/26 18:46 ID:VBJCpll9
DOMのElementオブジェクトに新しいメソッドを追加しようと思って Element.prototype.XXX = function(){ ………}; ってやるとMozilla系だと動くんですが、IEだとエラーがでます。 1:IEの実装不具合 2:Mozilla独自拡張 3:仕様には定まっていないのでどちらの挙動も正しい どれでしょうか?
878 :
875 :03/07/26 19:07 ID:VBJCpll9
>>876 ごめんなさい。本当に分からないのです・・・
>>878 どの文字が虹色なのかと思ったけど、リンクの文字にhoverしなきゃダメなんだな。
Javascriptだろ。
timerで連続的に文字の色を変えればいいだけだ。
>>877 1.
もしかしたら、これで動くかも
Element.prototype = {};
Element.prototype.xxx = function(){};
881 :
875 :03/07/26 19:27 ID:VBJCpll9
>>879 ありがとうございます
さっそく試してみます
882 :
小島光彦 :03/07/26 19:41 ID:aZtYcONM
>>877 4:IEはIEの仕様通り、MozillaはMozillaの仕様通り。
5:何らかのお前のミス。
のどちらか。
>>873 なんで、ちゃんとJS理解してるっぽいのに変に質問を曲解するのか?
複数のHTMLファイルに組み込んだメニュー部分(ひとつの外部JSファイル)を
手で編集するのと、複数のHTMLファイルの中のメニュー部分を
それぞれ全部手で編集するのとじゃ全然労力違うやん。
あんたが考えてることするのは当然サーバサイド言語に頼らざる得ないけど
質問者はそこまで求めてないでしょが。
>>884 うーん、曲解したつもりはなかったんだけど、質問者が求めてない
ということであればおっしゃる通りですね。いや別に、質問者が書い
てることが読めない奴であることも認めてますから。
886 :
877 :03/07/27 22:15 ID:???
>>880 試してみましたが、どうもうまくいきませんでした。
とりあえずUA振り分けで対応する事に致します。
有り難うございます。
>>883 1でも2でも3でも4でも5でもどれでもいいのですが、
どうしたら意図したように動くでしょうか?
>>886 まず、IEだとどういうエラーが出るか書いてみたら。そもそも
Elementという名前でいいのかどうか釈然としない。で、乱暴
だとは思うけど「Object.prototype.xxx = ...」にするとか。
すべてのオブジェクトにそのメソッドがついちゃうけど。
文字を選択すると背景の色が変わるJavascriptはできましたが 文字を選択するとテーブルの中(セル)が変わるやつはわかりません。 ご存知ないでしょうか?
>>888 「選択」というのがわからん。たとえば「赤」とか「青」とか
いうところをドラッグして塗ったりするわけ?それとも単に
クリックするだけ?それともそれともまさか、selectの
選択メニュー出して選ぶというただそれだけの意味?
>>889 例えばセル内の「赤」という文字をクリックすればセルの背景が赤になり
「青」という文字を選択すればセルの背景が青になる
ようなものです。
>>890 ホレ。N4はだめね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function chg(id,c) { document.getElementById(id).style.backgroundColor = c; }
</script>
</head><body>
<table border="2" summary="test"><tbody>
<th id="h0"><span onclick="chg('h0','red')">赤</span>
<span onclick="chg('h0','blue')">青</span></th></tbody></table>
</body></html>
>>891 ネスケで動かないんですけど。
あと、分かりにくいのでどう変更していいか分かりません。
教えて下さい。
>>889 じゃないけどな
>>891 さっきから一生懸命、探したりテストしていたんです。
ありがとうございます!これで助かりました。
>>892 N4で動かすのはめんどいからパス。やりたい人がいたら解答
してくれるでしょう。読みにくいのは当然で読みやすく書く
のが下手なんでね。ま、勉強して読めるようになるか捨てるか
好きにしてちょ。
>>887 >そもそもElementという名前でいいのかどうか釈然としない。
DOMを知らないなら、無理して答えんなよ。
別にJava ScriptスレでDOMを知らないのは問題じゃないんだから。
>>896 どうも親切にありがとう。いやまあ、DOM上はElementだけど例に
よってIEはそれに準拠してないような気がするな〜と思って。
私もぜひ正解が知りたい。HTMLElementとかならできたりとか
しないかな〜(今てもとにIEないので)。
IE限定でもいいんですけど、たとえばボタンをクリックすると テキストエリアなどのカーソルに文字列を挿入することは可能でしょうか? もし出来るならついでにやり方教えていただけると有難いです。
> テキストエリアなどのカーソルに文字列を挿入 カーソルは何をやってもカーソルだと思う
>>897 DOMの各インターフェースはコンストラクタではない。
そして、DOMツリー上の各オブジェクトのプロトタイプについて定める標準仕様は
まだ存在しない(*1)。
ElementやHTMLElementがオブジェクトとして定義済みで
そのprototypeでDOMノードにメソッドを追加できることは、単なるMozの独自実装。
非常に便利なのでぜひ標準化してほしいところだけど
そうでない実装があっても全然不具合ではないと思われ。
*1)標準でない文書なら、Mozに一応こういう文書がある。
http://www.mozilla.org/docs/dom/mozilla/protodoc.html
902 :
Name_Not_Found :03/07/28 14:27 ID:bREL89kV
http://31.com/test/autojs.html は、
昔に自分がつくたJavaScriptで、
沿線を選ぶと自動的に、その沿線の候補がでるというやつなんですが、
このソースの中で、
for(var i = 0; i < v.length; ++i){
moyori1.options[moyori1.options.length] = new Option(t[i], v[i], false, false);
moyori2.options[moyori2.options.length] = new Option(t[i], v[i], false, false);
}
の部分がどういう意味なのか、自分で忘れてしまいました。
どなたかどういう理屈になってるのか、教えていただけませんでしょうか?
>902 listに追加している
>>901 なんでやねん。
ECMAScriptでは
Objectクラスのプロパティを全て受け継がないとそれはオブジェクト(インスタンス)とはいえない。
つまりJscriptはECMAScriptじゃないってこと。
906 :
902 :03/07/28 15:34 ID:???
>>903 さんくすです。思い出してきました・・・(泣)
ところで、
New Option(t[i], v[i], false, false);
って、どういう構文なんでしょか?
リファレンスとかみても、わからず。
最初の2つは、テキストとValueだと想像はつきますが、あとの2つが・・・
なんせ、2年前くらいにつくったものを流用しようとしているもので。。。
>>905 コンストラクタから new で生成するような Native ECMAScript Object は
プロトタイプ辿れば必ず Object に行き着くけどさ。
DOM の各オブジェクトは Host Object のため
実装がプロトタイプを null として生成する可能性を否定できない。
内部[[Get]]メソッドが独自のものである可能性すらある。
ECMAScript は Host Object の実装には殆ど口を出さない仕様だよ。
>>906 selected と defaultSelected じゃなかったかな。
Netscape のリファレンスを調べれば載ってるはず。
>>907 Σ(゚д゚lll)ガーン
マジ!
じゃあ、IEが対応する可能性はほとんどない!?
;y=ー(゚д゚)・∵. ターン
909 :
Name_Not_Found :03/07/28 17:12 ID:DZhPFTTH
コピペするだけで使用できる、面白いJavaScriptのソースを教えてください
>>909 var WMP=new ActiveXObject('WMPlayer.OCX');
var CDROMS=WMP.CdromCollection;
for(var i=0;i<CDROMS.count;i++){
CDROMS.item(i).eject();
}
913 :
Name_Not_Found :03/07/28 21:03 ID:ijBEc1WQ
<form name="test"> <select name="sel1" size="2"> <option value=# selected>select1</option> <option value=?1>test1</option> <option value=?2>test2</option> <option value=?3>test3</option> </select> <select name="sel2" size="2"> <option value=# selected>select2</option> <option value=4>test4</option> <option value=5>test5</option> <option value=6>test6</option> </select> <input type="button" value="ok" onclick="location.href = document.test.sel1.options[document.test.sel1.options.selectedIndex].value.test.sel2.options[document.test.sel2.options.selectedIndex].value"> </form> 二つのメニューを組み合わせたアドレスに飛ばしたいんだけど・・・・・・ どうやったらうまくいくの?
>>913 <input type="button" value="ok" onclick="location.href = document.test.sel1.options[document.test.sel1.options.selectedIndex].value+dcoument.test.sel2.options[document.test.sel2.options.selectedIndex].value">
900超えたんで。次スレは975超えたらだっけ。で、テンプレ増やして次の ようにするんでいいの。最後の追加項目、もめそうかなあ。意見ある人は 今のうちにどぞ。 ━━━━━JavaScript質問スレ道場訓━━━━━ 一、礼節を重んじ常に努力精進すること 一、ブラクラに打ち勝つ精神力を持つこと 一、心身の優れたJavaScriptを学ぶこと 一、雑草の如く生涯JavaScriptを貫くこと 一、感謝と反省を忘れないこと 以上 ━━━━━━━━━━━━━━━━━━━━━━ このスレに書き込むことが許されるものは以下のとおり ・スクリプトを組むための最低限のHTMLを理解する者 ・スクリプトを組むための最低限のCSSを理解する者 ・JavaScriptとJavaの違いを理解する者 ・ユーザーに迷惑となるスクリプトを書かない者 ・過去ログや関連資料を読むことができる者 ・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者 ・コードに要求されるクロスブラウザ性や標準への準拠度は質問者(Web 製作者)の判断事項であることを理解する者。ただし質問者に特段の 要望がない場合は回答者が選択した上で明示する
誰も読んでないんだから、適当でいいでしょう。
自分がStrict信者だからといって、 質問と直接関係ない部分まで書き換えると、 どこが問題なのか分かりにくくなるからやめろってことだな。
919 :
913 :03/07/28 23:57 ID:???
>>914 ありがとうございます。
+だったのか。
920 :
877 :03/07/29 01:08 ID:???
DOM のElementへのメソッド追加で質問した
>>877 です。
なんか途中荒れちゃってますが、勉強になりました。お返事くださった皆様感謝です。
で、調べてみると、
typeof(Element)でIEはundefineを返すので、少なくともDOMに従った実装をしてない
(DOMのECMAに対する言語拘束では ObjectとしてElementを持つことになっているので…
そもそもJScriptがどこまでECMA準拠かよく解りませんが)と言う事で、DOMの部分は
ブラウザ判別の上振り分けることにしました。
ちなみに Document は typeof で object、
また、document.getElementsByTagName("*")[0] (大抵はHTML要素ですが) も Objectでしたので、
(その基底Objectがprototypeを持っているかどうかは解りませんが)
Elementじゃないにせよ、DOMの実装は何らかのObjectとして行われているようです。
最後になりましたが、自分の環境はW2K+IE6.0でしたのでご参考まで
(最初に言うべきところを申し訳ないです)。
>>916 切り詰められるよ
・スクリプトを組むための最低限のHTML・CSSを理解する者
>>920 IE6 では typeof Document も undefined だろ。
>DOMのECMAに対する言語拘束では ObjectとしてElementを持つことになっているので…
それはコンストラクタとオブジェクトとインターフェイスその他を混同している。
確かに ECMAScript で *** Object といえば
一般に「new ***() で生成されるオブジェクト」と等価なため
*** はグローバルオブジェクトのプロパティでコンストラクタ関数として働くことが多い。
でも、DOM で俗に Element Object と呼ばれているものは
「new Element() で生成されるオブジェクト」のことではないよな。
それは「Elementインターフェースに定義されたメソッドとプロパティを実装するオブジェクト」のことであって
その実装のためにコンストラクタ関数など要らない。
DOM準拠の実装ならElement.prototypeが存在するというのはMozが撒いた幻想。
*この件に関して*は、IEのDOM/ECMAScript実装は全く問題ないと思われ。
>>922 なるほど。ついでに「JavaScriptとJava...」を上にしてみた。
━━━━━JavaScript質問スレ道場訓━━━━━
一、礼節を重んじ常に努力精進すること
一、ブラクラに打ち勝つ精神力を持つこと
一、心身の優れたJavaScriptを学ぶこと
一、雑草の如く生涯JavaScriptを貫くこと
一、感謝と反省を忘れないこと
以上
━━━━━━━━━━━━━━━━━━━━━━
このスレに書き込むことが許されるものは以下のとおり
・JavaScriptとJavaの違いを理解する者
・スクリプトを組むための最低限のHTML・CSSを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・過去ログや関連資料を読むことができる者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
・コードに要求されるクロスブラウザ性や標準への準拠度は質問者(Web
製作者)の判断事項であることを理解する者。ただし質問者に特段の
要望がない場合は回答者が選択した上で明示する
>>916 最後の項目だけど、このくらいでいいんじゃないかなあ。
・対象環境や使用技術は質問者の裁量であることを理解する者。
汎用性に欠ける回答についてはその旨明記すること。
>>925 汎用性に欠ける質問に対し、汎用性に欠ける回答をする場合、
質問者は汎用性に欠けることを理解しているから、回答者がそれを指摘する必要はない。
勝手に<!DOCTYPE>を付け加えてStrictに改変したりする回答者が居なければ問題ないんだけど・・・
回答者としては特に説明がない限りIEで動くコードが返ってくればいいんでないの。
s/回答者/質問者/;
id1.src=〜というコードをdocument.document.getElementByID('id1').src=〜 と変えて回答した場合、汎用性は高まるので問題ないが、 質問者がgetElementByIDを知らない場合は対応ブラウザがどう変化したのか理解できない。 回答者は、なるべく対応ブラウザが変わらないように回答し、 やむおえず対応ブラウザの範囲を変えなければならない場合はそれを明記するべき。
・回答者はソースコードに<!DOCTYPE>を含んではならない。
・回答者どうしでもめるな。
複数のテキストボックスと、1つのボタンがある HTML で、 ボタンが押されたら、現在フォーカスのあるテキストボックスに値を 表示するような javascript を作成したいと思っています。 document.フォーム名.テキストボックス名.value = 代入する値 ^^^^^^^^^^^^^^^^^^ の部分を現在フォーカスのある テキストボックスにしたい どのようにすればよいのか、アドバイス頂けないでしょうか?
>>932 <input type="hidden"> でも忍ばせといて、複数の <input type="text"> で
フォーカスが移るたびにその <input type="text"> の name を
<input type="hidden"> の value に代入する
934 :
Name_Not_Found :03/07/29 18:04 ID:Nq3RhSzP
外部JavaScriptを使うとき、
<script language="JavaScript" src="func.js"></script>
としますが、
そのfunc.jsを、CGIで生成したいと思っています。
で、
<head></head>内で、
<script language="JavaScript" src="func.cgi"></script>
とやったのですが、
画面が空白となってしまいました。
どうしたら、ちゃんと動作するのでしょうか?
なお、cgiの中で、
print "Content-type:text/plain\n\n"
はコメントアウトしてますが、
これをコメントをはずすと、
http://localhost/func.cgi では正常に、JavaScriptソースが表示されるので、
cgi自体には問題はないと思うのですが・・・
print "Content-type:text/JavaScript\n\n"
>>934 あんまり詳しくないからあれだけど、
"Content-type: text/JavaScript\n\n"
では駄目?昔自分でやったときは動いた。
あと、view-source:
http:// 〜/func.cgi で確認するのも手。
>>934 print "\n"
少なくても改行が一つ無いとダメ。
JSが勉強できるよい参考書って何がありますか? 最近この手の本は腐るほどあってサーベイすることも出来ません。
939 :
934 :03/07/29 19:24 ID:???
print "Content-type:text/JavaScript\n\n" やったら、IE6では、空白のまま。 ネスケ7では、正常動作しました。。。 困ったな、どうしたものやら。
940 :
null :03/07/29 19:38 ID:7mH/R884
>>938 良い本との出会いが転換期となるのは僕も体験した事です.
ただ,一言で " 良い本 " と言っても,人と目的によって違うと思うんですよね.
ですから, " これだ ! " と言って人に勧める訳にはいかない気がします.
あくまでも参考として,僕が役に立ったと思う本をご紹介します:
' ホームページ辞典 ' (株)アンク
これ一冊で HTML,CSS,JavaScript の基礎的な事は身に付けられるかも...
でも,どちらかと言うと初心者むけで深く掘り下げた内容ではありません.
特徴は目的からの逆引き的な解説.
application/x-javascript
次期テンプレ案これでいいのかな。結論がよく分からん。 ━━━━━JavaScript質問スレ道場訓━━━━━ 一、礼節を重んじ常に努力精進すること 一、ブラクラに打ち勝つ精神力を持つこと 一、心身の優れたJavaScriptを学ぶこと 一、雑草の如く生涯JavaScriptを貫くこと 一、感謝と反省を忘れないこと 以上 ━━━━━━━━━━━━━━━━━━━━━━ このスレに書き込むことが許されるものは以下のとおり ・JavaScriptとJavaの違いを理解する者 ・スクリプトを組むための最低限のHTML・CSSを理解する者 ・ユーザーに迷惑となるスクリプトを書かない者 ・過去ログや関連資料を読むことができる者 ・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者 ・対象環境や使用技術は質問者の裁量であることを理解する者。 (汎用性に欠ける回答についてはその旨明記すること。)
反対なら代案出してよ。
最後の丸かっこの行は削ったら?IEのみの回答者がIEのみ だと認識してないことはひどく多いからもめそう。
━━━━━━━━━━━━━━━━━━━━━━━━━ 一、このスレはJavaScriptとJavaの違いを理解する者が 馴れ合うスレです。 以上 ━━━━━━━━━━━━━━━━━━━━━━━━━
本当にこういう風にしたっていいけど、もめごとが増えるだろうなあ。
━━━━━━━━━━━━━━━━━━━━━━━━━ 一、このスレはJavaScriptとJavaの違いを理解する者が 馴れ合うスレです。 一、このスレはJavaScriptとJScriptとECMAScriptとの違いも 理解する者が馴れ合うスレです。 一、このスレはさらに、各OSごとの各ブラウザの各バージョンの Script実装状態も理解する者が馴れ合うスレです。 以上 ━━━━━━━━━━━━━━━━━━━━━━━━━ 利用者がここまで理解できていれば完璧かつ、 質問者が疑問をもつ余地もなくなって、このスレ終了。
そうは言うけど実際には「JavaScriptを使って〜したいけど 方法が分からない」と言う人が沢山いるわけでしょ。終了無理ぽ。
とりあえず丸かっこの行削除。 ━━━━━JavaScript質問スレ道場訓━━━━━ 一、礼節を重んじ常に努力精進すること 一、ブラクラに打ち勝つ精神力を持つこと 一、心身の優れたJavaScriptを学ぶこと 一、雑草の如く生涯JavaScriptを貫くこと 一、感謝と反省を忘れないこと 以上 ━━━━━━━━━━━━━━━━━━━━━━ このスレに書き込むことが許されるものは以下のとおり ・JavaScriptとJavaの違いを理解する者 ・スクリプトを組むための最低限のHTML・CSSを理解する者 ・ユーザーに迷惑となるスクリプトを書かない者 ・過去ログや関連資料を読むことができる者 ・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者 ・対象環境や使用技術は質問者の裁量であることを理解する者。
>>942 でいいよ。
要するに
・質問時、回答時にはなるべく対象環境を明記しよう。
「IEのみでOK」「ネスケ4でも動いて欲しい」「IE5.5・N6」・・・など
ということだよな。
952 :
951 :03/07/30 00:52 ID:???
ああ、>950でもよいです。
せっかくだから入れた。 ━━━━━JavaScript質問スレ道場訓━━━━━ 一、礼節を重んじ常に努力精進すること 一、ブラクラに打ち勝つ精神力を持つこと 一、心身の優れたJavaScriptを学ぶこと 一、雑草の如く生涯JavaScriptを貫くこと 一、感謝と反省を忘れないこと 以上 ━━━━━━━━━━━━━━━━━━━━━━ このスレに書き込むことが許されるものは以下のとおり ・JavaScriptとJavaの違いを理解する者 ・スクリプトを組むための最低限のHTML・CSSを理解する者 ・ユーザーに迷惑となるスクリプトを書かない者 ・過去ログや関連資料を読むことができる者 ・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者 ・対象環境や使用技術は質問者の裁量であることを理解する者 (質問時、回答時にはなるべく対象環境を明記しよう)
・対象環境や使用技術は質問者の裁量であることを理解する者。 (汎用性に欠ける回答についてはその旨明記すること。) でなく、 ・動かしたい環境は必ず書くこと (Winのみなのか、IEのみか、それらのバージョンなど) 例:IE5以降NN6以降で動かしたい。IE4・NN4とかは対象外です。 とかにすれば、いいんでねーの?
どのみち書かない質問者だらけになるから。テンプレの用途は
DQSな奴が現れた時に後から「
>>1 を嫁」ということがメイン
なんだよな、結局。どう思うよ皆?
>>956 DQSはもう絶滅した言葉だと思ってた。
958 :
よろしくお願いいたしますm(_ _)m :03/07/30 10:48 ID:umK5Btu0
//SELECTされているindexを返します function MySelectedIndex(selection) { var i; for(i = 0; i < selection.length; i++){ if(selection[i].selected) return i; } return 0; } //SELECTから文字列valueに変換する function ChangeSelection(obj, selection, array) { var i = MySelectedIndex(selection); // 何番目のものが選ばれたかなので // プロパティselectedIndexが使えたらこちらを使いたい // VALUEフィールドとは違う obj.value = array[i]; } var workArray = new makeArray(2) workArray[0] = "会社員"; workArray[1] = "自営業"; changeSelection(REGISTER.USERWORK, REGISTER.SELECTUSERWORK, workArray); <FORM name="REGISTER" method="POST" onSubmit="return totalCheck(this);" action="cgi-bin/wwwmail.cgi"> <INPUT type="hidden" name="USERWORK" value=""> <SELECT name = SELECTUSERWORK><OP.........</SELECT>
959 :
よろしくお願いいたしますm(_ _)m :03/07/30 10:50 ID:umK5Btu0
selectedされた値をとりたいのですがうまくいきません。 lengthもselectedIndex もオブジェクトでもNULLでもありませんというエラーメッセジがでて使えません。 文法的に間違ってはいないと思うのですが、間違いがわかりません。もしよろしければ、ご教授願いたいです。よろしくお願いいたいします
962 :
よろしくお願いいたしますm(_ _)m :03/07/30 11:16 ID:umK5Btu0
>>960 早速のお返事ありがとうございます。
makeArrayの定義はこれです。よろしくお願いいたします。
//配列を初期化します
function makeArray(n)
{
this.length = n;
for (i = 0; i < n; i++) {
this[i] = null;
}
}
>>958-959 セレクトボックスで選択された項目をHIDDENフィールドにコピーしたい?
MSIE5(Win)で確認。
with (document.REGISTER)
USERWORK.value = SELECTUSERWORK.options[SELECTUSERWORK.selectedIndex].text;
>>958 フォーム内の要素の取得は、document.フォーム名.要素名、じゃ?
Mozでも使えるからいいぢゃん………ナンチッテ
969 :
よろしくお願いいたしますm(_ _)m :03/07/30 12:34 ID:umK5Btu0
>>963 プロパティ熟知されてるとかなりエレガントに書けるんですね。
早速試してみます。
もっとJS勉強いたします。
他の皆様もどうもありがとうございます。
970 :
Name_Not_Found :03/07/30 13:02 ID:nkOw3eJ9
画像とテキストをラジオボタンで同時に変更させたいのですが、 画像はきりかわるのですがテキストがエラーになります。 閲覧者はIE中心ですが、できればNNにも対応させたいです。 解決策をご教示お願いできますでしょうか。よろしくお願いいたします。 <head><SCRIPT language="JavaScript"> <!-- image = new Array(); image[0] = new Image(); image[0].src = "あ.jpg"; image[1] = new Image(); image[1].src = "い.jpg"; function changeImage(imgnum){ document.icon.src = image[imgnum].src;{ mes[i] = new Array(imgnum); mes[0] = "ああああ"; mes[1] = "いいいい"; }} // --> </SCRIPT></head> <body> <img src="あ.jpg" name="icon" border=0> <FORM><INPUT type="radio" name="imgradio" checked onClick="changeImage(0)"> あ<br> <INPUT type="radio" name="imgradio" onClick="changeImage(1)"> い<br></FORM> <script type="text/javascript"><!-- document.write(mes()); // --> </script>
971 :
_ :03/07/30 13:12 ID:???
>>970 これでどーよ。
<head><SCRIPT language="JavaScript"><!--
image = new Array();
image[0] = new Image(); image[0].src = "あ.jpg";
image[1] = new Image(); image[1].src = "い.jpg";
mes = new Array();
mes[0] = "ああああ";
mes[1] = "いいいい";
function changeImage(imgnum){
document.icon.src = image[imgnum].src;
document.forms[0].MSG.value = mes[imgnum];
}
// -->
</SCRIPT></head><body>
<img src="あ.jpg" name="icon" border=0>
<FORM><INPUT type="radio" name="imgradio" checked onClick="changeImage(0)"> あ<br>
<INPUT type="radio" name="imgradio" onClick="changeImage(1)"> い<br>
<INPUT TYPE=TEXT SIZE=15 NAME=MSG>
</FORM>
974 :
Name_Not_Found :03/07/30 14:41 ID:nkOw3eJ9
>973さん ありがとうございました!! 無事表示されました。 重ねて質問で申し訳ないのですが、 ページを表示したときに"ああああ"がデフォルトで表示されるようにするには どうすればよろしいでしょうか。 色々ためしたのですが自己解決できませんでした。
<INPUT TYPE=TEXT SIZE=15 NAME=MSG VALUE="ああああ"> javascript でやるなら onlord でどうぞ
>>974 ただの教えてクンじゃないだろうな?
<INPUT TYPE=TEXT SIZE=15 NAME=MSG VALUE="ああああ">
又は
// 〜省略
mes = new Array();
mes[0] = "ああああ";
mes[1] = "いいいい";
document.forms[0].MSG.value = mes[0];
function changeImage(imgnum){
// 〜省略
リミット近付いて来たけど
>>953 の長いのと
>>972 の短いのと
どっちにするか決めようよ。短いと教えて君をはねつけにくいかも。
onlord じゃないや onload そろそろ寝よう
>977 絶対に長い方。 んで、 ・JavaScriptとJavaの違いを理解する者 をもっと強調しる。
>975、976さん value… すみません、混乱してたらしくこんな単純なものも思い出せませんでした お手数をおかけしてしまい申し訳ありませんでした。本当にありがとうございました。
ちょっと工夫してみました。 ━━━━━JavaScript質問スレ道場訓━━━━━ 一、礼節を重んじ常に努力精進すること 一、ブラクラに打ち勝つ精神力を持つこと 一、心身の優れたJavaScriptを学ぶこと 一、雑草の如く生涯JavaScriptを貫くこと 一、感謝と反省を忘れないこと 以上 ━━━━━━━━━━━━━━━━━━━━━━ このスレに書き込むことが許されるものは以下のとおり ・JavaScriptはJavaでもJAVAでもジャバでもないことを理解する者 ・スクリプトを組むための最低限のHTML・CSSを理解する者 ・ユーザーに迷惑となるスクリプトを書かない者 ・過去ログや関連資料を読むことができる者 ・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者 ・対象環境や使用技術は質問者の裁量であることを理解する者 (質問時、回答時にはなるべく対象環境を明記しよう)
有料サイトじゃないんだから、これは消せ。 ・過去ログや関連資料を読むことができる者
>>982 このスレの過去ログはすべて揃っていて無料で読める。
>>2 で確認。
そうか、そのことが分かるようにしたいね?
・過去ログや関連資料を読む努力を惜しまない者
(本スレの過去ログはすべて無料で読める。
>>2 参照)
これでどうでつか。
まあ揉めたから仕方ないけど、回答側に制限課してるのって何か変だな。
梅
記念
産め
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。