+ JavaScript の質問用スレッド vol.22 +
━━━━━JavaScript質問スレ道場訓━━━━━
一、礼節を重んじ常に努力精進すること
一、ブラクラに打ち勝つ精神力を持つこと
一、心身の優れたJavaScriptを学ぶこと
一、雑草の如く生涯JavaScriptを貫くこと
一、感謝と反省を忘れないこと
以上
━━━━━━━━━━━━━━━━━━━━━━
このスレに書き込むことが許されるものは以下のとおり
・JavaScriptとJavaの違いを理解する者
・スクリプトを組むための最低限のHTML・CSSを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・過去ログや関連資料を読むことができる者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
・対象環境や使用技術は質問者の裁量であることを理解する者
(質問時、回答時にはなるべく対象環境を明記しよう)
前スレ
http://pc2.2ch.net/test/read.cgi/hp/1056808693/l50 過去ログ・関連資料・その他質問スレは
>>1-10
【質問を書く上で】 弱気な表現は避ける 弁解じみた表現は良くない。また、まわりくどい。 ex) 超初心者で何もわかりませんが…… <そんなことより自分で試してみた記述を書いてくれた方が答えやすい> 情報を小出しにしない 読み手は馬鹿にされた気分になる。 無駄な倒置も不要だ。 使用したブラウザ、バージョン、OSくらい書こう。 感情的にならない 何の説明なく決め付ける文はよい印象を与えない。 また態度の大きい人は嫌われる。 ex) 答えられねぇんなら黙ってろ!!! <お前だけだよ> 表記ミスに注意 内容がどんなにすばらしくても文字使いにミスがあると誤解を招く。 曖昧文は書かない いくつにも解釈できる文章は絶対に書かない。 ex) ここではきものをぬいでください。 「」など無駄な強調は避ける 読みにくい。♪や顔文字も同様である。 ソースは要点を整理して出す。 そのまま貼って動かせると試してもらいやすい。 長い場合はアップロードしてURIを貼る。
ホルモン
無駄毛を処理しない ギャランドゥ。 アイスのフタは舐めない 舐めるな危険。
nullにはレスしない 無能厨房固定は完全放置すること。 レスを返すと(=構ってあげると)喜ぶので注意!!
「ぬるぽ」には反応しない。
11 :
Name_Not_Found :03/09/07 23:38 ID:hCCoFZAT
超初心者で何もわかりませんが……
教えてください。
答えられれねぇんなら「黙ってろ」!!!
ここではきものをぬいでくださいね♪(^o^)
>>1 乙
>>前スレ990前後 うちの場合(W2K, IE6SP1)、 下のコードで、直接呼び出すと何度やっても471カウントでスタックオーバーフロー、 タイマーだと20000超えても動いてました。 (function test() { window.status++; //test(); //setTimeout(function(){ test(); }, 1); })();
>>13 直接呼ぶ奴があるかよ。当り前すぎ。問題はクロージャで変数を
持って行く場合なんだけどな…
JScriptで、ユーザープロンプトで得た文字をパスに入れて実行できますか?
マウスを乗せると背景を切り替えて、はずすと元にもどるというスクリプトを、素材屋でよく見かけるような、画像が背景になるようにしたいので <td width="20" bgcolor="red" onMouseOver="body.style.backgroundColor='red';" onMouseOut="body.style.backgroundColor='';"> </td> ↓ <td width="20" background="xx.gif" onMouseOver="body.style.src='xx.gif';" onMouseOut="body.style.src='';"> </td> という風に書き換えたのですが、画像が出ただけで背景が切り替わりません。
「body.style.src」じゃなくて「body.style.backgroundImage」
>>17 それだけじゃないだろ。backgroundImageにセットするべきものの形は。
画像つける時は「'url(ファイル名)'」、消す時は「'none'」だよね。
よくありがちな、価格の上限と下限で絞り込むCGIなのですが、 CGIに行く前に、不正値に対してJavaScriptで以下のような警告を出したいのですが、 どんな値を入れても、3つとも動作しません。(JavaScruptエラーもでません) いったいどこが悪いのでしょうか? <script language="JavaScript" type="text/JavaScript"> <!-- function Check_and_Submit(){ price_under = f.price_under.value; price_top = f.price_top.value; if ( (price_under != "") && isNaN(parseFloat(price_under)) ){ alert("価格の下限値が数値ではありません。"); return false; } if ( (price_top != "") && isNaN(parseFloat(price_top)) ){ alert("価格の上限値が数値ではありません。"); return false; } if ((price_under != "") && (price_top != "") && ( parseFloat(price_under) >= parseFloat(price_top) )){ alert("価格の下限値が上限値を超えています。"); return false; } return true; } // --> </script> <form name="f" method="post" action="index.cgi"> 価格: <input name="price_under" type="text" size="6">円 〜 <input name="price_top" type="text" id="price_top" size="6">円 </form>
>>19 <form name="f" method="post" action="index.cgi" onsubmit="return Check_and_Submit()">
価格:
<input name="price_under" type="text" size="6">円 〜
<input name="price_top" type="text" id="price_top" size="6">円
<input type="submit" value="送信">
</form>
21 :
Name_Not_Found :03/09/08 13:10 ID:ObKYgw4U
質問させてください。 フォームのoption内でメールの宛先を複数設定しておいて、 送信時に選択した宛先に送信できるようにしたいんですがさっぱり分かりません。 過去ログも一通り漁ってみましたがそれらしいものがありませんでした。 分かる人教えてください。よろしくお願いします。
>>21 途中はこんな感じだろうな。
for(var i=0,options=document.forms[formObj].elements[selectObj].options,o,addrs=new Array;o=options[i++];)
o.selected&&addrs.push(o.value);
>>17 、
>>18 ありがとうございます。変えてみたところ、背景は切り替わるようになったのですが、今度は画像が表示されなくなりました。
<td width="50" height="100" background="'url(sozai/tuta-1.GIF)'" onMouseOver="body.style.backgroundImage='url(sozai/tuta-1.GIF)';" onMouseOut="body.style.backgroundImage='none';">
つまり、何も表示されてないのに、マウスを乗せると背景はちゃんと切り替わるのです。
24 :
19 :03/09/08 14:06 ID:???
>>20 あう、なさけない。
Submitボタンにonsubmit="return Check_and_Submit()"いれてた・・・
すみませんです。
25 :
Name_Not_Found :03/09/08 17:05 ID:K1IMazAV
下記のようなスクリプトがあるせいか、落としたサイトがPCの日にち・時刻とリンクされ、日によって見る事が出来ない箇所が出てきたりします。 スクリプトをoffにしたいのですが、消すとコンテンツが機能しません。 書き換えて閲覧可能にするのは難しいでしょうか? 宜しくお願いします。 <!-- myDate = new Date(); myYear = myDate.getYear().toString(); myYear2 = myYear.substring(2,4); myMon = myDate.getMonth() + 1; myMon = myMon.toString(); if(myMon.length < 2){ myMon = '0' + myMon; } myDay = myDate.getDate().toString(); var newIcon = '<img src=img/vt2_ph_new.gif width=45 height=10 border=0>'; dayList = new Array(); dayListwh = new Array(); dayList2 = new Array(); dayList3 = new Array(); dayList["1"] = "0202001";・・・
28 :
25 :03/09/08 19:01 ID:???
以下はこうです。(
>>25 の終盤カブってます)
キャプはどうか御勘弁を。 仕事中に画面撮り出来るようなサイトじゃないので。
(´-ω-`)
dayList = new Array();
dayListwh = new Array();
dayList2 = new Array();
dayList3 = new Array();
dayList["1"] = "0202001";
dayListwh["1"] = "width=35 height=45";
dayList["2"] = "0202005";
dayListwh["2"] = "width=35 height=45";
dayList["3"] = "0202009";
dayListwh["3"] = "width=35 height=45";
dayList["4"] = "0202013";
dayListwh["4"] = "width=35 height=45";
以下["31"]まで。
29 :
25 :03/09/08 19:02 ID:???
var startFlg = 6; var maxDay = 31; //----------------------------------------- var ii = 0; for(i = 1; i <= 42; i++){ if(i < startFlg){ dayList2[i] = '<br>'; dayList3[i] = '<br>'; }else if(ii < maxDay){ ii++; if(myDay > ii){ dayList2[i] = "<a href=javascript:openWinF(\'./cgi/gallery_vt2.cgi?day=" + ii + "&no=" + dayList[ii] + "\',\'slide\');><img src=files/vt2/s" + dayList[ii] + ".jpg " + dayListwh[ii] + " border=0></a>"; dayList3[i] = '<br>'; }else if(myDay == ii){ dayList2[i] = "<a href=javascript:openWinF(\'./cgi/gallery_vt2.cgi?day=" + ii + "&no=" + dayList[ii] + "\',\'slide\');><img src=files/vt2/s" + dayList[ii] + ".jpg " + dayListwh[ii] + " border=0></a>"; dayList3[i] = newIcon; }else{ dayList2[i] = "<img src=files/vt2/m" + dayList[ii] + ".jpg " + dayListwh[ii]
30 :
25 :03/09/08 19:03 ID:???
+ " border=0>"; dayList3[i] = '<br>'; } }else{ dayList2[i] = '<br>'; dayList3[i] = '<br>'; } } iconTable = new Array(); var cnt = 0; function getCalendar(){ document.open(); var ii = 0; for(i = 1; i <= 42; i++){ ii++; if(ii == 1){ document.write("<tr align=center>"); //iconTable.push("<tr align=center>"); }else if(ii == 8){ document.write("</tr>"); //iconTable.push("</tr>"); for(iiii = 0; iiii < iconTable.length; iiii++){ document.write(iconTable[iiii]); } var ii = 0; iconTable = new Array(); i--;
31 :
25 :03/09/08 19:05 ID:???
continue; } cnt++; document.write("<td><table border=0 cellpadding=0 cellspacing=0> <tr align=center><td width=45>" + dayList2[cnt] + "</td></tr><tr valign=bottom><td height=15>" + dayList3[cnt] + "</td></tr></table></td>"); // iconTable.push("<td height=15>" + dayList3[cnt] + "</td>"); } for(iiii = 0; iiii < iconTable.length; iiii++){ document.write(iconTable[iiii]); } document.close(); } //--> 連カキコ申し訳ありません。
33 :
25 :03/09/08 19:37 ID:???
ありがとうございます、やってみます。 板汚し失礼しました。
>>15 できるんじゃねーの?
初心者でわからんが。
36 :
Name_Not_Found :03/09/08 23:18 ID:a946Ssec
【ファイル構成】 +--menu.js +--index.html |-link(フォルダ)-link.html |-link2(フォルダ)-link2.html とあって、外部ファイルをlink.htmlとlink2.htmlの両方から 読み込んだ場合、外部ファイルに documen.write('<a href="./index.html">トップページ</a>') と書いていたら、当然読み込んだhtmlファイルからの 相対パスになるので、link.html、link2.htmlのどちらとも index.htmlへリンクできないですよね? そこで、menu.jsからの相対パスとして指定できる方法ってありますか? そうすれば、上で書いたようにすれば、link.html、link2.html の両方でちゃんとindex.htmlをリンクできるので大変助かるのですが。
documen.write('<a href="../index.html">トップページ</a>')
38 :
36 :03/09/09 00:11 ID:???
>>37 わかりにくくてすいません。
linkフォルダの中にlink2フォルダがあるって意味だったんです
document.write('<a href="/index.html">トップページ</a>');
40 :
36 :03/09/09 00:44 ID:???
>>39 link.html、link2.htmlのどちらからもいけなくなりました・・・
document.write('<a href="..//index.html">トップページ</a>');
だったら、link.htmlからのみトップにいけましたけど
41 :
Name_Not_Found :03/09/09 00:56 ID:aIv4xgeK
var my_bg_img = new Array(); my_bg_img[0] = '宇宙.jpg'; ─────┐ my_bg_img[1] = '雲.jpg'; ──────┼┐ my_bg_img[2] = '青空.jpg'; ───────┼┼┐ my_bg_img[3] = '夕日.jpg'; ────────┼┼┼┐ ││││ var my_banner = new Array(); ││││ my_banner[0] = '黒.gif'; ─────┘│││ my_banner[1] = '白.gif'; ───────┘││ my_banner[2] = '青.gif'; ─────────┘│ my_banner[3] = '赤.gif'; ───────────┘
>>36 異なる所から異なる所へリンクされるから「相対」なんですよ。
グローバルな変数を初期化する関数を ウィンドウを読み込んだ時点で呼び出したいのです。 調べた結果OnLoadをBodyタグの中で <body bgcolor="#ffffff" text="#a9a9a9" link="#650000" vlink="#797979" alink="red" leftmargin="0" marginheight="0" marginwidth="0" topmargin="0" onLoad="shokika();"> という感じで呼びだすようにしているはずなのですが 動いてくれないようなので、はまってしまってます。 function Shokika(){//自動計算用 初期化する関数 alert("初期化しました"); } でためしてみましたがダメなようです。 OnLoadの使い方について見当違いなのかなあと思い質問しました。 お願いします。
onLoad="shokika();"> ~ function Shokika(){ ~ これじゃね?
こんな朝早くにレスどもです。 最初は意味がわかりませんでしたが、じーっと見てみると、、 わかりましたああ。 失礼しました。<(_ _)> モニターにポストイットしておきます。 JavaScriptは大文字小文字気をつけないといけないんでした(汗)
お礼をちゃんと言ってなかったですね。(汗) ありがとうございました。精進しまっす。(^^)
モニターにポストイットするとコーティング剥げるぞぉ〜 ※経験者
50 :
36 :03/09/09 11:21 ID:???
>>44 確かに・・・。
URLで指定するのが簡単なんでしょうけど、ローカルで試せないので
javascriptでできるかなと思って聞いてみました。
板汚し失礼しました。
51 :
こんなやつもこのスレにきてた :03/09/09 12:51 ID:nfhQ9Btf
52 :
ABC :03/09/09 15:04 ID:6PQowfY1
教えてください。 <textarea id="ta"></textarea>の中にJavaScriptで document.getElementById("ta").value += "aiueo \n"; というような感じで文字を順次何行も追加していくというものを作成しようと 思っているのですが、<textarea>のrows の縦幅を超えてしまうと、スクロール バーでスクロールしないと最新のものが見れません。 最後に入力した文字が画面上にきちんと出るようにする方法は無いでしょうか? doScrollというもので一応出来ましたが、Netscapeで動いてくれません。どなたか、 いいアイデアがあれば教えていただけないでしょうか。
>>52 自信はないが、Netscapeでは出来ない悪寒。
出来るとしてもトリッキーになりそう。
他のエロイ人を待つべし。
>>52 var d=new Array(
"string1 \n",
"string2 \n",
"string3 \n"
);
d.reverse();
for(var i=0;i<d.length;i++)
document.getElementById("ta").value+=d[i];
次善の策として
55 :
ABC :03/09/09 16:07 ID:6PQowfY1
ありがとうございます。 <textarea>内を上下逆にして新しいものを上に追加するというのは、実際に やってみたのですが、文字列が長くなって2行になった場合などに見づらく なってしまいます。下から順位に読んでいっているのにその2行だけ上から 読まないといけなくなってしまうからです。(wrap=offは横スクロールが 発生してしまうのでなるべくやりたくありません) そのためその2行の上下を逆にして<textarea>に入れてみましたが、やはり 日本語としては非常に読みづらくなってしまいました。 <textarea>を下にスクロールする方法か、もしくは<textarea>に入っている 文字列の一番最後にフォーカスを当てることでスクロールを実現するという ような方法などはできないでしょうか?
56 :
53 :03/09/09 16:16 ID:???
>>54 2chで書くようなことじゃないけど、
こういう(まさにっ)逆転の発想的な考え方できる人って尊敬する。
<textarea>を諦めると光明が見えるかもしれない。
追加する文字列検索してみるとか
>>58 それが一番かも〜。
見つかればフォーカス移動するしね。
そのあとフォーカスはずせばOKっ
60 :
ABC :03/09/09 18:21 ID:6PQowfY1
検索とは、indexOf("検索文字") でいいのでしょうか? <textarea>内の文字を以下のようにしてみましたが、フォーカスは "検索文字"まで移動しません。 document.getElementById("ta").value.indexOf("検索文字"); 私の記憶が間違っていなければindexOfでは場所を返すだけでフォーカス しなかったと思います。もしかしてindexOf()以外の検索があるのでしょ うか?
61 :
45 :03/09/09 18:47 ID:???
またまたOnLoadについてなのですが、
OnLoadを、値を初期化するのに使っています。
アクセスしたときのみ初期化して、
ブラウザの戻るや、historyなどで前のページに戻るときには
初期化しない=以前入力した値を保持する=OnLoadを無効
ということは、できないでしょうか?
>>49 モニターのフレームに貼るっていう意味だったんですがw
コーティングって、そんなことで剥げるんだ、、φ(..)メモメモ
62 :
ABC :03/09/09 18:52 ID:6PQowfY1
私の場合は、 <input type="text" name="check" style="display:none;"> というのを適当に準備してそこにonLoadの最後で値を入れてましたね。 そしてonLoadの頭でそこに文言が入っているかどうかで新規で開かれた のか、別のwindowsから戻ってきたのか分岐してましたけど...。 もっとスマートな方法があるだろうけど、これぐらいしか思い浮かばなくて..
63 :
ABC :03/09/09 18:58 ID:6PQowfY1
windows → window の間違いでした。 さらに言うと、僕の場合変数もすべて<input type="text">に入れてました。 別ページに移ると、JavaScript内の変数って無くなりませんでしたっけ? 全ての変数を \a や \t などで繋げて type="text" に入れて、あとはそこから 変数取得してセットしてましたね。 あんまり参考にならないかもしれませんが...
cookie使っていいなら 期限指定なしcookieに常に値いれておけばページ戻っても大丈夫っぽくね? たしか、ブラウザ閉じるとcookie消えるんでなかったかね shokika() { if (クッキーある?) { 変数 = デフォルト値; } else { 変数 = クッキーの値; } }
65 :
45 :03/09/09 20:52 ID:???
早速のレスありがとうございます。 教えていただいた二つの方法、参考にして、 今晩、ちょっと自分なりに、試してみます。 (また質問しにくる可能性大ですが(汗))
すいません、
>>23 の問題点をどなたか指摘してくれませんか?
いろいろ試したのですがどうしても画像が表示されません・・・。
68 :
Name_Not_Found :03/09/09 21:38 ID:aIv4xgeK
u---- manndamu!
>>68 で、あなたはどこまでスクリプト書けたの?
>>42 に2つの配列をどういう関係で用意すればいいのか書いてくれてるじゃない。
参考にしたと書いている一つ目のサイトは、ランダムで「画像とリンク先をセットで変える」
スクリプトだけど、それをランダムで「背景画像とタイトルバナーをセットで変える」に
置き換えて考えられない?
71 :
Name_Not_Found :03/09/09 22:23 ID:aIv4xgeK
>>66 tdタグにbackground属性ってないだろ。IEにはあるの?
まああるとしても属性に指定するときは「url(...)」じゃ
なくファイル名だけ指定するんでしょ。
75 :
Name_Not_Found :03/09/09 23:19 ID:aIv4xgeK
てか
>>71 のサイトはアフォ丸出しだな。
実は
・∀・) < 痛いサイトを見つけますた!
と言いたいだけちゃうんか?
てか
>>71 のサイトはアフォ丸出しだな。
実は
・∀・) < 痛いサイトを見つけますた!
と言いたいだけちゃうんか?
ダブルポストの漏れもアフォ丸出しだ。鬱
>>75 レスどうもです。
<img src="xxxxx">のxxxxxの部分はcssだけでは指定不可能だと思うのですが。
80 :
Name_Not_Found :03/09/09 23:31 ID:aIv4xgeK
>>79 表示させる位置が固定なのであれば画像をボックスの背景にして
ボックスの位置を絶対値か相対値で決めればOK!
(ボックスは画像の大きさに合わせるかリピートさせないようにする事!)
>>79 <img name=imgName>
document.images["imgName"].src = "Path";
こんな感じだ。
>>80 そんなコトよりどうなんだ?(藁
82 :
Name_Not_Found :03/09/09 23:41 ID:aIv4xgeK
>>81 全体的な構造が掴めないので自分には無理かもしれません。
全体的な例文を作っていただけると助かるのですが…
やはりここでは無理なようですね…
83 :
Name_Not_Found :03/09/09 23:42 ID:4wEYJAf+
>>ID:aIv4xgeK 真性かよ…とりあえずsageれ
85 :
Name_Not_Found :03/09/09 23:45 ID:aIv4xgeK
せめてサンプルかヒントになりそうなサイトってないですか? 知っていたら教えてください。
>>80 さん
>>81 さん
どうもありがとうございます。
検索エンジン使用しながら、ちょっとやってみます。
87 :
74、79、86 :03/09/09 23:48 ID:f/BJw1sf
ID=aIv4xgeK とは別人です。 番号入れ忘れすんません。
>>85 めんどいのでdocument.writeで手抜き
<script type="text/javascript"><!--
var my_bg_img = new Array();
my_bg_img[0] = '宇宙.jpg';
my_bg_img[1] = '雲.jpg';
my_bg_img[2] = '青空.jpg';
my_bg_img[3] = '夕日.jpg';
var my_banner = new Array();
my_banner[0] = '黒.gif';
my_banner[1] = '白.gif';
my_banner[2] = '青.gif';
my_banner[3] = '赤.gif';
var num = Math.floor(Math.random()*my_bg_img.length);
document.write("<body background='"+my_bg_img[num]+"'>");
document.write("<img src='"+my_banner[num]+"' alt=''>");
// --></script>
<noscript>
<body background="宇宙.jpg">
<img src="黒.gif" alt="">
</noscript>
91 :
Name_Not_Found :03/09/10 00:16 ID:b+ZGvavR
すんません、こんなことできないかな?って質問なんですが。 自宅にライブカメラを設置してます。画像は30秒ごとにうp。 それを<meta http-equiv="refresh" content="60">って1分毎に 自動更新してますがなんとかこのrefreshを画像のimg srcに対してだけ かけるのはjavascriptとかスタイルシートとかで出来ないでしょうか? 気分的に画面がばたばたしていやなんで。
62さん(ABCさん)のやり方で、やってみて いえーい。成功! と、思いましたのですが、、 Macではオッケイなのですが >別ページに移ると、JavaScript内の変数って無くなりませんでしたっけ? おっしゃるとおり、Winでは、ページ移動しちゃうと変数が保持されないみたいですね。 変数を一旦、どこかに書き出すようにするつもりです。
>>91 JavaScriptで出来る。
しかもそれほど難しくないぞえ。
>>91 iframe がイイんじゃね。
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
入れといてやってさ。
>>92 *.html?val=hoge
と渡せば楽。
>>93 キャッシュばっかし拝むことになる悪寒がするが?
95 :
93 :03/09/10 00:32 ID:???
>>94 > キャッシュばっかし拝むことになる悪寒がするが?
やったときないけど、その可能性ありますね。
ブラウザが更新日時をきちんと見てくれれば良いのですが。
96 :
91 :03/09/10 00:42 ID:b+ZGvavR
>>93 そうですか。あんまり詳しくないんですが
imgにidつけてonloadのタイミングでそのIDにrefreshのファンクションを実行するとか?
でなおかつキャッシュしないように<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
っていれておくか?
i frameでもいいな、別に公開する目的じゃないから自分だけ見れたらそれでいいし。
とかいいつつ書けといわれても書けないへたれです。
どうしてもブラウザの画面全体が頻繁に書き変わるのが好きになれない。
ライブカメラで限り無く動画に見えるようなのをjavaアプレットでやってるのを
見かけますがあれはどんな仕組みになってるんでしょうね?
>>96 <body onload="switchImage();">
<img name="IMAGE" src="videoFrame.jpg" width="〜" height="〜">
<script>
var imgVideoFrame = document.images["IMAGE"];
var imagePath = imgVideoFrame.src;
function switchImage() {
var image = new Image();
image.src = imagePath;
imgVideoFrame.src = image.src;
setTimeout("switchImage()", 60 * 1000);
}
</script>
こんな感じだとは思うんだけど、キャッシュがねぇ・・・。
とりあえず、meta入れた状態で試してみて。
98 :
91 :03/09/10 01:01 ID:b+ZGvavR
>>97 そーすどうもです。
早速、といいたいとこですが一昨日から起きててもうだめぽなうえの
ライブカメラの調子迄悪くなってしまったんで寝ます。試したらほうこくしまつ。
キャッシュを読み込ませないくするには、 image.src='image.jpg?'+String((new Date()).getTime()); といった感じにすれば、 image.jpg?01232155324652346 こんな感じで毎回違うファイル名になるので、 キャッシュが読み込まれない。
100 :
66 :03/09/10 15:36 ID:???
>>67 、
>>72 <td width="50" height="100" background="'url(sozai/tuta-1.GIF)'" を
<td width="50" height="100" background="sozai/tuta-1.GIF" にしたら解決しました。ありがとうございました。
そしてスレ汚し失礼しました。
101 :
Name_Not_Found :03/09/10 16:25 ID:3lmyJc1P
ある変数について、(その変数は、数値である(「isNaN」ではない)という前提です。) ●小数であるなら、エラーを出して関数を抜ける ●0以下なら、エラーを出して関数を抜ける というのは、どのようにすればいいのでしょうか? なお、 ●<小数点であるか否か>の判別方法は、全く分かりません。 ●0以下というのは、分かるはずなのですが、 以下のスクリプトでやろうとすると、後ろから3行目で、「オブジェクトを指定してください」と怒られてしまいます。 どなたか、お教えくださると幸いです。 amount = document.forms[0].amount.value; flag = isNaN(amount); //数量が数値ではないとき // ⇒警告出して、数量欄を1にしてしまって、終了 if (flag == true){ window.alert("入力された数量が数値ではありません。"); document.forms[0].amount.value = 1; return false; } //以下、数量が、数値であるとき //数量が、0個以下のとき // ⇒警告出して、数量を1にして、終了 if (amount <= 0){ window.alert("入力された数量が正しくありません。"); document.forms[0].amount.value = 1; return false; }
>>101 文字列に変換して、ピリオドやらマイナスが入っているかをチェックするとか。
俺ってホントにアホだなぁ。
if(amount+1-amount<1) とか
●<小数点であるか否か>の判別方法は、全く分かりません。 d !== Math.floor(d) 不備あり。 ●0以下というのは、分かるはずなのですが、 以下のスクリプトでやろうとすると、後ろから3行目で、「オブジェクトを指定してください」と怒られてしまいます。 amountは文字列で数値じゃないから。 v = parseFloat(amount);
>>101 amount+1-amountって、1と同じでは・・・
でもなんとなくそこから連想して、
if( amount - parceInt(amount) != 0){
window.alert("入力された数量は、小数です。");
document.forms[0].amount.value = 1;
}
で、やってみました。
ちゃんとif分岐は出来たものの、
<document.forms[0].amount.value = 1;>
の行で、
「オブジェクトを指定してください」と怒られてしまいます。。。
なぜなんででしょう。。。
106 :
103 :03/09/10 17:07 ID:???
MacIE5,iCab,Mozillaではできますよ。 何でだか自分でもわからない(・∀・)
107 :
101 :03/09/10 17:08 ID:???
すいません、番号名乗り忘れ&ずれてました。なんせ、徹夜続きで。。。もうだめぽ
>>105 =質問者の僕です。(=
>>101 )
でもって、
●誤:
>>101 と書いてしまいましたが
●正:
>>102 です。
var amount; に一票。
>>108 それくさいなぁ。
IEはタグにid振るとそのままグローバル変数になっちゃうから。
>>109 >IEはタグにid振るとそのままグローバル変数になっちゃうから。
あ、それしらなかったです。。。
(idほとんど使ってなかったのですが、つい最近使い始めたドリMXがidを自動で張るようなので。。。)
で、varで全部の変数を宣言したのですが、
今度はエラーのでる箇所がそれよりも前の箇所になってしまいました・・・
やりたいことは、「正の整数以外」の場合(具体的には後述の場合)
警告出して終了・・・としたいのですが・・・
現状は、
●数値じゃない場合⇒正常に動作してる
●小数の場合⇒※1
●0以下の場合⇒※1
※1
window.alert("入力された数量は、小数です。");
の行で、「ドキュメントを指定してください」
と言われてしまいます。
です。
大した量のスクリプトではないので、
以下のとこにtxt拡張子に代えてアップしました。
(外部JavaScriptです)
http://31.com/test/arrange_order_b.js.txt よかったらどなたか、どこが狂ってるのか、ご指摘願えませんでしょうか・・・
amount - parceInt(amount) != 0 ↓ amount - parseInt(amount) != 0
112 :
Name_Not_Found :03/09/10 18:24 ID:hpapRkDq
画像を <img id=myid src=myimg.jpg> として定義して document.getElementById("myid").style.left で位置を取得したいのですが、 うまくゆきません。どうしたらよいでしょうか。
あう、IE6のJavaScriptエラーメッセージで、
エラー行がなぜか、本来のエラー行の次の行の数字を表示してるみたいです。。。
おかげでエラー箇所を勘違いしてました。それはそれとして・・・。
parceInt→parseInt
だけでなく、
parceFloat→parseFloat
も間違えてました・・・すみません。。。
しかし、一番最後の
document.forms[0].unit.value = parseInt( parseFloat(document.forms[0].unit.value) * (1 - parseFloat(cutrate)));
とやって、そのunitのvalueをcgiで渡すと、NaNとして表示されてしまっているので、
↑の式で、valueにNaNが入ってしまっているもようです。。。
なぜなのでしょうか・・・・
(
http://31.com/test/arrange_order_b.js.txt は、 parceをparseに修正しました。)
#しかし、てっきり、存在しない関数を呼び出すと、
#undefind functionとかいうかんじでエラーがでるのかと思ってました。
#普段Perlしかほとんどやらないもので・・・
>>114 >まだ parceFloat のスペルミス残ってない?
すいません、あがってるファイルが最新のものじゃなかったです。。。(ごめんなさい)
>最後のif文の条件式、 < > 間違ってるように見受けられるんだけど。
うわ、むちゃくちゃおっしゃる通りです。。。まじ、危なかったです・・・
すみません。ありがとうございます。
しかし、valueがNaNとしてセットされてしまうのはなんでだろう。。。
document.forms[0].unit.value が空などのために parseFloat(document.forms[0].unit.value) が NaN になってるんじゃないの?
117 :
Name_Not_Found :03/09/10 22:32 ID:WYGX7sYW
複数のチェックボックスやラジオボタン用意し、 チェックしたパターンに応じて、あらかじめ用意した文章を 生成するようなプログラムを探しています。 イメージとしては、 「私は( A )で( B )を( C )個買いました。」 という文章をABCそれぞれ数パターンから選択して、その結果として 上記のような一文を表示する感じなのですが…。 解るかたいましたら助言ください。 或いはこの手のJAVAスクリプトやCGIを検索する際、 どのようなキーワードで検索すれば良いでしょうか。 お願いします。
>>117 キーワード:心理テスト JavaScript
>>117 あなたの文章からして、教えなければいけないことが多すぎる。
基本も分からないようなら、ここに来るべきではない。
嫌なら質問を細かく分けて小出ししていくことをお勧めする。
ん?解決したの?
122 :
Name_Not_Found :03/09/11 01:34 ID:v44R538J
javascriptのタグを入れるだけでニュースサイトのヘッドラインとか出るRSSってのがありますが2chの板ごとに上がってるスレを表示する様なやつってないですか? 前どこかで見つけたやつはすぐ動かなくなっちゃったんですが。
123 :
Name_Not_Found :03/09/11 01:35 ID:3mHm/Tuj
>>118 どうもです。
それっぽいのが色々見つかりました。
あとは片っ端から調べてみます。
検索にてこずってたので、助かりました。
>>119 似たようなサンプルが見つかれば、
それを手本にしようと思ったのですが。
板違いだったようですね。
今後の参考にします。
125 :
ABC :03/09/11 02:33 ID:xYAE+BxZ
すいません。教えてください。 <input type="radio" name="c" value="true" >はい <input type="radio" name="c" value="false">いいえ 上記のradioの、"いいえ"を選択するようにJavaScriptで 動的に変更しようと思って以下のようにしたのですが、 案の定だめでした(;_;) <script> document.getElementById("c").checked=false; </script> これだと、"はい"が選択されないだけで、"いいえ"が選択 されません。"いいえ"が選択されるようにするには、どのよ うにすればいいのでしょうか?
>>125 document.forms[0].elelment[1].checked;
document.getElementById("ID")...
IDだ。name じゃねーし大体使い方が(ry
127 :
126 :03/09/11 02:46 ID:???
う! まあ愛嬌つーことで。。
128 :
ABC :03/09/11 10:46 ID:xYAE+BxZ
たしかにnameでやってましたね。IEだとどちらでもいけるのでうっかりしてました。 nameをidと読み替えてください。 document.forms[0].elelment[1].checked = true; とする場合、何番目にchecked=trueにしたいものがあるかどうかが分かって いないと出来ないですよね。結構たくさんradioがあり、動的に増えたり減っ たりする使い方を考えている為、別の方法はないでしょうか?
129 :
ABC :03/09/11 10:54 ID:xYAE+BxZ
>> 126 分かりました! nameとidを使えばいいという意味ですね。128の話は忘れてください。 下記のようにして対応します。 <input type="radio" id="c1" name="c" value="true">はい <input type="radio" id="c2" name="c" value="false">いいえ
>>128-129 for(i=0; i< document.forms[0].c.length; i++){
if(document.forms[0].c[i].value == "false")
document.forms[0].c[i].defaultChecked=true;
}
131 :
ABC :03/09/11 17:08 ID:xYAE+BxZ
ありがとうございます。 document.forms[0].c document.forms[0].c[i] のようなアクセス方法もあるのですね。初めて知りました。 今回は、nameに同じ値をセットして、idに別個の値を入れることで 対応したいと思います。 ありがとうございました。
132 :
Name_Not_Found :03/09/11 17:16 ID:qV9gs+I8
javascript初心者(触って2日目)です. セレクトボタンで別フレームのページをジャンプさせたいのですが, 大抵のサンプルプログラムでは,option valueのところにURLを 直接指定しています.しかし,今回DBと連動させたいためvalueの ところにはDBのキーをいれたいのですが,どうしたらいいのでしょうか? 一応自分の書いているソース <FORM> <SELECT onChange="parent.index2. location.href=this.options[this.selectedIndex].value"> <OPTION value="./test1.html">test1 <OPTION value="./test2.html">test2 </SELECT> </FORM> 先輩方,御指導よろしくおねがいします.
JavaScript的にはそれで間違ってないですよ。 そのまま get で、 test.cgi?var=hogehoe っていうことかな?
>>131 名前が同じ奴を配列みたいに扱うのはIE専用なんで無理にそれを使う
ことはないんでは。getElementByIDの方が動く範囲が広い(標準だし)。
>>132 <script type="text/javascript">
var pages = {key1:'URLその1', key2:'URLその2', ...};
</script>
とか(始めの方に)入れておいて、
location.href=pages[this.options[this.selectedIndex].value]
でどうでしょう。キーに特殊記号とか含まれる場合はそっちも''で囲む。
>>134 >名前が同じ奴を配列みたいに扱うのはIE専用なんで
同じnameのcheckboxやradioのグループを配列状のオブジェクトで表現することは
Netscapeがずいぶん前から文書化している。少なくともIE専用というのは間違い。
うーん、Netscapeのドキュメントにあるの。勉強になった。
親フレームから子フレームの、テーブル制御表示・非表示のをしたいのですが 色々ぐぐって見ても、URLの制御や画像の制御などはありましたが 上記のものはありませんでした。 どこか知っている方がいたらよろしくおねがいします。 *同じフレーム内でのテーブル制御は出来ました。 −−−−−− <SCRIPT Language="JavaScript"> <!-- function table_seigyo(Name,pType) { if (document.all) window[Name].style.display = pType; } // --> </SCRIPT>
・あるフレームから別のフレームへのアクセス ・同じフレーム内でのテーブル制御 この二つが出来るなら、あとは簡単な応用だよ。 ソース検索してコピペするだけでなく、ちょっと自分で考えてみ。 とは言いつつも答え var childFrame = window.frames[〜]; childFrame.document.all[Name].style.display = 〜;
139 :
137 :03/09/12 00:02 ID:???
>>138 おお、どうもです!
フレームから別フレームの制御系のものが苦手で、
いつもこの手のものは躓いてしまうです。独学なもので。。
なるべくなら自分でやりたいのですが、
どうしても出来ずここで質問させてもらいました。
ありがとうございました。
アフォな質問かもしれませんが、、 <input type="submit" value=" 送信 "><br> みたいなボタンで、CGIを動作させているんですが、 その動作まえにJavaスクリプトでエラーチェックしたいのですが、 可能でしょうか?
>>140 submit は JavaScript でもできる。
ボタンを押す→エラーチェック→サブミット
という手順で逝けばできるよ。
>>140 フォーム項目のチェックなら可能。
でもきちんとサーバーでもチェックしてね。
143 :
137 :03/09/12 01:52 ID:???
>>138 137のまま、onclick="parent.〜"
で出来ました。こんな単純なことを忘れていたなんてアホでした。。。
144 :
140 :03/09/12 03:49 ID:???
>>141 さん
>submit は JavaScript でもできる。
なるほどー、JavaScript自体で、sumbitを呼べるんですねえ
>フォーム項目のチェックなら可能。
>でもきちんとサーバーでもチェックしてね。
はっきり書かなくてすいません。
ご察しの通りです。フォームの中味をチェックして問題なければ、送信。
という感じにしようかと
メアドなどの必須項目はCGIでもチェックしますので問題ないのですが
JavaScriptなら、細かくいろいろエラーチェックが作りやすいと思いまして。
ありがとうございました。
>>144 javascriptはいくらでもユーザーに書き換えられるぞ
146 :
Name_Not_Found :03/09/12 06:08 ID:vcoqJj2c
>>146 file:///C:/hoge/〜 というURLは
file://localhost/C:/hoge/〜 の略なので
cdomain="localhost"; // サイトのドメイン名
cpath="/C:/hoge/"; // サイトのパス
…とかじゃない?(未確認)
>>146 そんなもんブラウザが勝手に焼くから
function fSetCookie 内の
c = cName + '=' + eTitle + '; domain=' + cdomain + '; path=' + cpath
+ ((cdays!=0)?('; expires=' + cexpires.toGMTString()):';') ;
を
c = cName + '=' + eTitle + ((cdays!=0)?('; expires=' + cexpires.toGMTString()):';') ;
とすれば悩む事はない。
149 :
ABC :03/09/12 12:15 ID:9/hhH05c
すいません。教えてください。 <input>と、<textarea>のオブジェクトを取得したいのですが、 a1 = document.getElementsByTagName("input"); a2 = document.getElementsByTagName("textarea"); このa1とa2を一つの変数にまとめたいのですが、どのようにすれば良いのでしょうか? 単純に配列だと思って、 a3 = a1.concat(a2); のようにしてみたら以下のようなエラーがIE6から出てしまいました。 「エラー:オブジェクトでサポートされていないプロパティまたはメソッドです。」 どのようにすればいいのでしょうか?
>>149 for文でもなんでもいいから使って、手動でやるべし。
ドメインが違うframe内を操作することってできないんですか。 # 操作以前にURLすら取得できないんだけど 普通に parent.frames["hoge"].location.href を見ることができないんですが、 これはもう諦めろってことなんでしょうか。
>>149 getElementsByTagName()が返すオブジェクトはlengthや添字は
使えても配列じゃあないのね。だからconcat()があることは保証
されないわけ。手動でやるんでしょうね。
var a3 = new Array();
for(var i = 0; i < a1.length; ++i) a3.push(a1[i]);
for(var i = 0; i < a2.length; ++i) a3.push(a2[i]);
>>151 もちろんできないとも。激しくガイシュツ。無駄な努力。
それが見られたらいろいろ悪いことができちゃうでしょ?
>>151 不可能。
実現したいことをもっと大域的に見れば、回避策はあるかも。
そでつね。 XSS ががが。 いやなんつか、 URL が欲しかっただけなのです。 URL をコピペ、なんて知らない人相手のスクリプトだったもんで。 ああん。
156 :
ABC :03/09/12 16:45 ID:9/hhH05c
>>152 ありがとうございます。getElementsByTagName() が返すオブジェクトは
配列じゃないんですね。
配列じゃないのならconcatは使えないですね。勉強になります。
getElementsByTagName() を返すオブジェクトが配列じゃないという
情報はどのようにして知られたものなんでしょうか?
(出来れば僕ももっと勉強したいのですが...)
>>146 で紹介されてるスタイルシート切り替えスクリプトってのは、JavaScriptの知識0でも使用可能ですか?
使ってみたいな〜と思うんですが。
>>158 やはり勉強すべきですか。
学校の方が忙しいのでキツイですが、地道にやっていくとします。
ありがとうございました。
>>160 おお、専用スレまでありましたか。
そちらに行くとします。ありがとうございます。
163 :
ABC :03/09/12 18:23 ID:9/hhH05c
>>160 >>161 ありがとうございます。勉強します。
仕様はやっぱ大事ですね。(難しいけど...)
164 :
Name_Not_Found :03/09/12 23:45 ID:LYA9eiAJ
javascriptでmatchを使うときの正規表現について教えてください。 たとえば、myURL=location.pathnameでURLを取得したとして、 アドレスに特定の文字が含まれている場合には〜というのを if文をつかってやろうとしてるんですが正規表現でつまづいてます。 構成 (F)はフォルダの意 index.php @ [myURL = index.php] | |-index(F) --top.html A [myURL = /index/top.html] | |-top2.html B [myURL = /index/top2.html]] | |_link(F)---index.html C [myURL = /link/index.html] @にマッチするように if ( myURL.match(/index/) )とすると、 ABCにも マッチしてしまいます。 そこで、ABにのみマッチするように if ( myURL.match(/\/index/) )としても なぜか@にもマッチします。 バックスラッシュをバックスラッシュとして認識させるには どうしたらいいんでしょうか? あと、Cのみをまっちさせるために、linkという言葉とindexという 言葉の両方が含まれているときのみ という場合には、どういう風に記述すればいいか教えてください。
>>164 > @にマッチするように
if ( myURL.match(/index.php/) )
>そこで、ABにのみマッチするように
if ( myURL.match(/\/index\//) )
> バックスラッシュをバックスラッシュとして認識させるには
\\
> あと、Cのみをまっちさせるために
\/link\/index.+
166 :
164 :03/09/13 01:32 ID:???
× myURL.match(/index.php/) ○ myURL.match(/index\.php/) .(ドット)もきちんとエスケープしませう。
Windows NT4/XP のログインネームを取得したいのですが JavaScript ではどのようにすればできますか? 無理な場合はJavaScript以外で方法があるでしょうか?
フレーム&複数ウィンドウの制御について悩んでおります。 現在の状況 ●A.htmlがある( name="nav" と name="home" の2つのフレームからなっている) ●A.htmlから target="_blank" で B.html を開く ●さらにB.htmlから window.open で C.html という小窓を開く ここからが分かりません。やりたい事は以下2点です。 ●C.html からのリンクで、A.html の name="home" フレームのファイルを切り替える。 →現在は普通に <a href="A.html" target="home"> にしてます。 ●このとき A.html が focus されるようにしたい。 →現在は C.html が前面に出たまま、裏で A.html が切り替わっています。 色々調べてみたのですが opener ? とも違うようですし、 頭がパニくってきてしまいました。 ご指導いただけないでしょうか。お願いします。
171 :
140 :03/09/13 18:15 ID:???
>
>>144 >javascriptはいくらでもユーザーに書き換えられるぞ
イタズラされる。という意味ですか?
うーん。意図がわかりません。
>>170 opener.opener.focus()
って言うか
> ●C.html からのリンクで、A.html の name="home" フレームのファイルを切り替える。
切り替えるファイルのほうにスクリプト書けばいいだろ
>>171 >でもきちんとサーバーでもチェックしてね。
そのまんまです。
173 :
168 :03/09/13 18:50 ID:???
>>169 そうですか。。。ありがとうございました。
>>171 ええと、例えば掲示板への書き込みの送信ボタンなどに関しては、
javascritpのチェックを無効化(或いは改変)されてしまうかも、と言う事。
その結果渡されるデータが他人に影響を与えない(ブラウザ内で完結している)
ならいいのですが、サーバーに送られると、サーバー側cgiがエラーを起こしたり、
不正なスクリプトやらコマンドやらがサーバにたどり着く可能性があるので、
>>172 さんのいう「サーバーでもチェックしてね」という話なるんではないかと。
利便性の問題ならjavascriptはお手軽でとてもよいですが、セキュリティ関連を
任せるには力不足(と言うか、そういう風に設計されてない)なのが現状です。
>>168 var Sh = new ActiveXObject("WScript.Shell");
alert(Sh.RegRead("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Logon User Name"));
>>174 だから、JavaScriptのチェックは「ユーザにすぐ教えられて親切にできる
から使う」、サーバ側のチェックは「まずいことが起きないように確実に
チェックする」、用途がまったく違うと考えればいいよね。
177 :
164 :03/09/13 22:51 ID:???
>>164-167 正規表現のことでアドバイスいただきありがとうございました。
おかげさまで大部分解決したのですが、もうひとつご助言いただきたく
書き込みしました。
matchで、AかつBという正規表現の条件はどうしたらいいのでしょうか?
AとBはともに単語です。
たとえば、「index」という単語を含み かつ 「inmain」という単語を
含む・あるいは含まない といった場合です。
1文字の場合はいいのですが、単語になるとわからなくなります。
178 :
Name_Not_Found :03/09/14 00:33 ID:7GmD2Mms
SVGを使ったページで、CGIの処理結果を動的にSVGに反映させるよう 以下のようにJavaScriptを使っています。ただ、これだとタイミングに よってはSVGのロードが完了する前に関数が実行されてエラーになって しまうことがあります。 同期を取るのにうまい方法はないでしょうか。 <html> <head> <script> function hoge( arg ) { //ここでsvgを操作 } </script> </head> <body> <embed src="...." id="..." ....> </body> </html> <!-- CGIの処理結果を出力 --> <script type="text/javascript">hoge(...);</script>
>>177 inmainとindexの出現順序が分かっているなら
str.match(/inmain.*index/)
みたいな感じかな。
正規表現に詳しくないなら
str.match(/index/) != null && str.match(/inmain/) != null
とやるのが一番手っ取り早いと思われ。
>>178 斜め読みして
<body onload="〜">
180 :
140 :03/09/14 03:00 ID:???
>>174 >>176 説明ありがとうございます。
勉強になりました。
CGIは、フォームメールなんですが、
かなり実績があるもののようなので、大丈夫だと思います。
最終的には、通販の注文フォームとして使うのですが
ただ、いちいち内容確認画面で「ああしてください」「こうしてください」と
怒られる仕様だとユーザーに親切じゃないと思ったので、
コントロール類を選択、入力した際に、
ユーザーを誘導したいと思いJavaScriptを使おうと思いました。
また、料金見積もりなどもCGIを改造するより、JavaScriptでやったほうが
CGI(perl)に触らない(余計なバグをいれたくない)ことになると思ったのです。
わざわざご指摘、ありがとうございました。
181 :
:03/09/14 03:34 ID:???
JavaScriptでtextareaに複数業の文字列を 表示させたいのですが、改行carriage returnは どう書けば容易のでしょうか? 例えば aaa bbb という二行を"aaa \n bbb"としても、 aaa \n bbb となり、改行してくれない ようです。
182 :
178 :03/09/14 03:49 ID:7GmD2Mms
>>179 SVGのonloadを使う必要はあるだろうとは思っていますが、hoge()自体を
ここで呼ぶわけにはいかないので、そこんところどうやって同期をとったら
いいか考えています。
183 :
181 :03/09/14 03:52 ID:???
すいません。スクリプトのエンコーディングが(utf) 悪かったようです。eucにしたらうまく機能しました。
JavaScriptのバグとかブラウザによる実装の違いをまとめたスレってどこですか?
newで得られるものは参照ですか?
>>186 参照っぽいものが手に入ります。
var obj;
(obj = new Object()).value = "hoge";
var w = window;
w.al = w.alert;
a.al(obj);
他スレに誤爆していました。改めて書き込みます。 文字を入力するとき、 <script type="text/javascript"> with( NewWindow.document ) </script> でフォームを作ります。中に文章を書き込みます。 その内容をファイルに書き込む方法を教えてください。 最終的にはhtmlにタグ入りで組み込めれたら良いなと思っています。 フォームで<pre>更新</pre>で、htmlに「更新」の一言を追加する形で。 OSはWindowsXPです。IEは6.0を使用しています。
普通のWebページだったら絶対にファイルに書けない。書けたら重要そうな ファイルを片端から書き換えることができてしまうから。 WSHとかHTAならできるんだろうけど知らない。
>>190 FileSystemObjectで検索しとけ
193 :
Name_Not_Found :03/09/15 00:23 ID:Ow/9HK9l
<script type="javascript"> onload=function(){alert(document.getElementById("ta"));} </script> <textarea style="display:none;">hogehoge</textarea> opera7だと動作が変です。なんででしょうか。
194 :
139 :03/09/15 00:36 ID:Ow/9HK9l
<script type="javascript"> onload=function(){alert(document.getElementById("ta").value);} </script> <textarea id="ta" style="display:none;">hogehoge</textarea> ちょっと修正します
変って何がどう変なんでしょうか
<script type="text/javascript">
onload=function(){alert(document.getElementById("ta").value);}
</script>
<textarea id="ta" style="display:none;">hogehoge</textarea>
>>196 IE、Mozillaだと"hogehoge"が表示されますがOperaだと"Warning"という謎の文字列が表示されます。
エラー、例外などは発生しません。
要するにOpera6/7と、IE/Mozillaでは display:none の扱いが違うってことだろう。 どっちが正しいのか知らんが。
199 :
Name_Not_Found :03/09/15 01:23 ID:Ow/9HK9l
<script type="text/javascript">
onload=function(){
var tmp = document.getElementById("ta");
tmp.style.display = "block";
alert(tmp.value);
};
</script>
<textarea id="ta" style="display:none;">hogehoge</textarea>
>>198 display:blockにしてみましたが"Warning"のままなんですけど。
>>199 名前に記事番号入れな。
onload = function(){alert(document.forms[0].elements[0].value);}
フォームへのアクセスは無難にヤレってことだわな。
で、display:none では確かに Warning だった。
かといって visibility:hidden ではならない。
それが Opera だと。そういうコトだな。
201 :
193 :03/09/15 02:22 ID:Ow/9HK9l
>>200 Event thread: onload
Error:
name: TypeError
message: Statement on line 5: Expression evaluated to null or undefined and is not convertible to Object: document.forms[0]
Backtrace:
Line 5 of inline#1 script in file://localhost/D:/My Documents/www/jikken/tmp.html
tmp.parentNode.appendChild(document.forms[0].elements[0].value);
At unknown location
{event handler trampoline}
てゆかフォームなんてないんですけど...
なんだ釣りだったのか('ω')
>>202 201にあるとおりdocument.forms[0]が見つからないってエラーが出るんです
205 :
193 :03/09/15 06:32 ID:Ow/9HK9l
204は193です
>>204 >>1 にはこんな事がかいてあります。
> このスレに書き込むことが許されるものは以下のとおり
> ・スクリプトを組むための最低限のHTML・CSSを理解する者
>>206 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<script type="text/javascript">
onload = function(){
document.getElementById("ta").style.display = "block";
alert(document.getElementById("ta").value);
alert(document.forms)
alert(document.forms[0].elements[0].value);
}
</script>
<title>hoge</title>
<textarea id="ta" rows="2" cols="10" style="display:none;">hoge</textarea>
正しいHTMLに直しました。でも"Warning"やTypeErrorが出ます。
ちゃんとdisplay:noneでもないです。
>>207 だからさ、HTML的にはformなんてなくてもいいんだけど、Opera的には
<form>...</form>で囲んでないとうまく扱えないとかじゃないの。
N4がそうだったからね。ま、バグでしょ?
209 :
193 :03/09/15 10:26 ID:Ah7HhsUZ
>>208 "Warning"という文字列が戻ってくるのがバグなんですか。
2ちゃんで粋がってもねぇ…
>>193 試してないけど、おそらく、
opera7ではdisplay:noneの場合は、
その部分のHTMLを解析しない仕様になってるんだよ。
ついでに、スクリプトで変更されたHTMLがレンダリングされるタイミングは、
スクリプトの実行が終わった後だから、
>>199 のalert(…)の時点では
まだHTMLが解析されていないんだろ。
214 :
210 :03/09/15 15:03 ID:???
>>213 > 試してないけど、おそらく
( ´゚,_」゚)ヒッシダナ
alert()の時点ですでにtextareaは表示されていますが、なにか?
>>212 >>1 にはこんな事がかいてあります。
> このスレに書き込むことが許されるものは以下のとおり
>・過去ログや関連資料を読むことができる者
┌─────────┐ │ 基地外警報!!! | │ 基地外警報!! | └―――──――――┘ ヽ(´ー`)ノ ( へ) く |\ ┌──────────┘- \ │ 気の触れた方が \ │ / └──────────┐- / ヽ(´ー`).ノ |/ ( へ) く - = ≡三 |\ - = ≡三 ┌──────────┘- \ _ = ≡三 │ \  ̄ = ≡三 │ いらっしゃいます / - = ≡三 └──────────┐- / (´ー`) - = ≡三 |/ ( ヽ ヽ) / >
display:block; にしてから value が使用可能になるまでの時間が スクリプトの処理時間に間に合ってないんだと思う。 onload=function(){ var tmp = document.getElementById("ta"); tmp.style.display = "block"; for (var i=0, a=''; a!='hoge'; i++ ) a=document.getElementById('ta').value; alert(i) }; こんなん試したら「417」とか出た。
217 :
Name_Not_Found :03/09/15 16:12 ID:2muGNwKl
配列の中身を初期化したいんですけどわかりません。vbで言うところのEraseと同じ機能です。 お願いします。
>>217 中身を全部消したいということなら arrayObject.length=0;
219 :
178 :03/09/15 16:25 ID:GA1Q/XhK
>>216 >display:block; にしてから value が使用可能になるまでの時間が
>スクリプトの処理時間に間に合ってないんだと思う。
こういう、スクリプトの処理とレンダリングが同時実行されるか逐次
実行されるか、同時実行される場合はどのように同期を取れば良いか
などというところを理解するのに良い資料ってどこかにないですかね?
>>219 ブラウザによるから、ブラウザの資料を見ろ。
222 :
193 :03/09/15 16:55 ID:+ry7tj+3
>>210 defaultValueは知りませんでした。
ありがとうございます。
>>216 なんか変な実装ですね...
でも、display:noneでも書き込みはできるようなのでvalueにdefaultValueを入れるようにします。
ところで
>>6 って回答するほうは守らなくていいんですか?
224 :
恵子 :03/09/15 17:04 ID:g4ZseYhj
>>6 はもうなくてもいいよ。
>>6 なんてこのスレ、板、2ch、ネットにかかわらず当然のことだもの。
それも出来ない香具師は「徹底放置」にしたらいいだけ
228 :
193 :03/09/15 17:40 ID:???
>>228 >>208 は、
「〜とかじゃないの。」「〜でしょ?」と可能性を示唆しているだけで、
それが正しいとは言ってない。
読解力を身につけろ。
230 :
217 :03/09/15 17:52 ID:2muGNwKl
>>229 >>228 は
>>208 「みたい」なのは勘弁であって
208は勘弁とは言ってない
読解力を身につけろ
というか208は200の間違いだと思ふ
232 :
Name_Not_Found :03/09/15 18:10 ID:BYctzxKt
ページへ入った時に 勝手に画面を最大化するにはどうしたらいいのですか?
まともな人間なら、こんなところで質問しなくても 検索するなどして理解できる。でFA。 期待するだけ無駄。
>>231 必死だな。
日本語勉強する前に、まず落ち着け。
235 :
Name_Not_Found :03/09/15 18:18 ID:BYctzxKt
>>233 反省します。。。
すみませんでした。( ´Д⊂)
mozilla1.4で <script type="text/javascript"> alert(window.constructor==constructor); </script> としたらfalseが表示されました。 JavaScriptではwindowオブジェクトがグローバルオブジェクトも兼ねているはずですが、 これはどういうことなんでしょうか。 気になって
>>236 うちのMoz1.4はtrueが出ますが...?
綴り間違い
239 :
236 :03/09/15 19:09 ID:???
<input onclick="alert(constructor+value);" value="hoge"> イベントハンドラ内でスコープが変更されてるみたいです。 お騒がせしました。
スピンボタンもどきを作っています。 具体的には、テキスト入力フィールド中で↑キーを押すと フィールド内の数字がインクリメントされ、↓キーを押すと デクリメントされるようなjavascriptを作成したいのですが、 if (event.keyCode == 38){ hogehoge } //↑キーの場合 のように記述しましたが、テキスト入力フィールド上で矢印キーを 押しても認識してくれません。どのようにすればできるでしょうか?
>>240 document.onkeydown = keyDown; じゃないか?
>>240 そもそのそのコードをどこにどういう風に入れているのか。
矢印キー以外のキーは取れているのか。それを書かないと。
243 :
Name_Not_Found :03/09/16 08:33 ID:TbTTdgnO
あるサイトからダウンロードした動画(.wmvファイル)を、同時DLした同サイト htmlページの再生ボタンを押して再生しようとすると、 ”アクセス中のURL: data・・(HD内の階層).wmvの詠み込みに失敗しました。” ト出たのち再生を開始します。 この警告ダイアログを出さないようにする為には、DLしたhtmlのソースを書き換 える必要があるのでしょうか? 動画ファイルの場所は移動していません。 該当すると思われる箇所のソースには以下の記述があります。 <td width=126 nowrap><img src=../../img/n_nv_bet.gif width=1 height=25><a href="download.html" onMouseOut=swapImgRestore(); onMouseOver=swapImage ('download','','../../img/n_nv_download_f2.gif',1);><img name=download src=../../img/n_nv_download.gif width=125 height=25border=0></a></td>
244 :
240 :03/09/16 08:34 ID:???
>241,242 すみません、肝心なこと書いてませんですた。。 HTMLの方に <input size=6 name=sage onKeyPress=searchkey(this)> こんな感じでonKeyPressで記述しています。 で、.jsに function searchkey(parts){ if (event.keyCode == 38){ document.foo.sage.value++; } return(document.foo.sage.value); } こんな感じで記述しています。 alert("TEST"); をifの外と中に入れてデバッグしてみたのですが、 どうやらtextbox内では矢印キー自体を認識していないようです。仕様っぽいですが… 他のキーは、ifの外に置いたAlertに反応しましたので認識するようです。
>>244 onKeyDownを使う
あとそれだとIE専用
246 :
ぴー :03/09/16 14:45 ID:sUJ5ASPi
JavaScriptで excelのオートフィルタ機能は実現できるのでしょうか? どなたかヒントお願いします。
>excelのオートフィルタ機能 どんなものかヒントお願いします。
がんばれば連結リストとか作れますか?
>>249 簡単だけど何がしたいの?例題のお勉強でつか?
気にしないで下さい。
252 :
240 :03/09/17 00:25 ID:???
>245 出来ました。 onKeyDownじゃないといけないときもあるのですね。 IE専用ですか…了解です。 一応個人的に使うものなので大丈夫です。 ありがとうございました。
単純なテキストの和を表示するスクリプトなんですが。 <script language="JavaScript" type="text/JavaScript"> <!-- function rem1(){ var rem1 = document.form1.rem1.value var rem2 = document.form1.rem2.value document.form1.rem.value = (rem1 + rem2) } function rem2(){ var rem1 = document.form2.rem1.value var rem2 = document.form2.rem2.value document.form2.rem.value = (rem1 + rem2) } --> </SCRIPT> <FORM NAME="form1"> <INPUT TYPE="text" NAME="rem1" VALUE="" onchange="rem1()">テキストA<BR> <INPUT TYPE="text" NAME="rem2" VALUE="" onchange="rem1()">テキストB<BR> <INPUT TYPE="text" NAME="rem" VALUE="">テキストA+B </FORM> <FORM NAME="form2"> <INPUT TYPE="text" NAME="rem1" VALUE="" onchange="rem2()">テキストA<BR> <INPUT TYPE="text" NAME="rem2" VALUE="" onchange="rem2()">テキストB<BR> <INPUT TYPE="text" NAME="rem" VALUE="">テキストA+B </FORM> form1とform2ではまったく同じ処理をやらせています、スクリプト部分を もっと簡略化できないでしょうか?
<script language="JavaScript" type="text/JavaScript"> function remx(f) { f.rem.value = (f.rem1.value + f.rem2.value); } </SCRIPT> <FORM NAME="form1"> <INPUT TYPE="text" NAME="rem1" VALUE="" onchange="remx(this.form)">テキストA<BR> <INPUT TYPE="text" NAME="rem2" VALUE="" onchange="remx(this.form)">テキストB<BR> <INPUT TYPE="text" NAME="rem" VALUE="">テキストA+B </FORM> <FORM NAME="form2"> <INPUT TYPE="text" NAME="rem1" VALUE="" onchange="remx(this.form)">テキストA<BR> <INPUT TYPE="text" NAME="rem2" VALUE="" onchange="remx(this.form)">テキストB<BR> <INPUT TYPE="text" NAME="rem" VALUE="">テキストA+B </FORM>
255 :
253 :03/09/17 12:06 ID:???
256 :
ABC :03/09/17 14:32 ID:Wp8K6wL5
すいません、教えてください。 別のurlのドキュメントを読み取って、その中身を変数に入れたいのですが、 どのようにすればよいのでしょうか? 具体的に言うと、 str = xmldoc.transformNode(xsldoc.documentElement); document.getElementById("xx").innerHTML = str; のような感じにしたいのですが、読み込むファイルは通常のHTMLを読み込み たいと思っています。 xmlでは上のように変数strに読み取って、innerHTMLで入れるということ をしていましたが、通常のHTMLファイルを読み取って変数に入れるやりか たが思い浮かびません。 あるurlのhtmlを変数で取得するにはどのようにすればよいのでしょうか? ※取得したいurlは同じドメイン内にあります。
>>256 (1)別窓、別フレーム、隠しフレームなどにそのURIを開かせる。
(2)その窓なりの中からinnerHTMLでソースを取り出す。
(3)自分とこのどっかのノードのinnerHTMLに突っ込む。
>>256-257 ガイシュツだね。「DOCTYPE宣言つきでGecko/IE/O7対応でよければ」
サンプル貼るけど。
既出なんだからサンプルのURL貼るだけで充分なような。
>>259 原理はすべてガイシュツだけど、それらを組み合わせて使う設定は
当然ながら違うんでちょっと作ってみたまでで。ま、質問者が要らない
なら当然貼らないから。
261 :
Name_Not_Found :03/09/17 15:45 ID:fNaGmOrY
質問があります。 左のリストボックスでクリックした後、「選択」ボタンを押すと、 右のリストボックスに選択した行が反映される。 以降いくつも繰り返し選べ追加できる。 というようなフォームを作っているのですが、 このまま次画面へ遷移しても、右のリストボックスの 内容は再び選択してあげないと反映されません。 自動的に全てを選択された状態にして渡してあげるには どうしたらよいのでしょうか?
>>257-258 知ったか逝け。
xmldoc.load(url);
で直接XMLに読み込むか、あるいは、
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("GET",url,false);
xmlhttp.Send();
alert(http.responseText);//ソース
263 :
ABC :03/09/17 15:49 ID:Wp8K6wL5
>>258-260 過去ログあさりました。確かにありましたが、
>>257 で教えていただいた
方法と原理が同じでした。
http://pc.2ch.net/hp/kako/1014/10142/1014289221.html の 23-28
その方法は現在やっている方法と同じです。僕の場合は<iframe>で
display:none にしています(すいません,先に言うべきでした)。
もしかしたら、僕の無知でそういう関数とかがJavaScriptであるの
かもしれないなと思って質問させて頂きました。
> あるurlのhtmlを変数で取得するにはどのようにすればよいのでしょうか?
~~~~
やっぱり別のフレームなどに表示する以外に取得方法はないのでしょうか?
ps.僕の探した過去ログが間違ってたらすいません(;_;)
>>261 当り前すぎ。次画面は現画面とは全く独立のもの。そういう情報を渡したければ
クッキーやQUERY_STRINGなどで受け渡し、行き先ページの冒頭のonloadでそれを
読んで同じ設定に直す。現在のソースの要点はどうなっているの?(特にどうやって
次画面に遷移させているの?)
>>263 少なくともブラウザ独立な方法ではないと思う。IE専でも
自分は聞いたことない。実はあるのかも知れないね…
スマソ、前のカキコ目に入ってなかった…
267 :
とうしろー :03/09/17 15:55 ID:r1ibQEJU
<html><head><title>チェックボックス 例1</title> <script> function getCheck(){ var testValue; for (var i = 0; i < document.form1.elements.length; i++ ) { if (document.form1.elements[i].checked == true) { testValue = document.form1.elements[i].value; if (document.form1.output1.value =="") { document.form1.output1.value = testValue; }else if(document.form1.output2.value ==""){ document.form1.output2.value = testValue; }else { alert("2個までしか選択できません"); document.form1.elements[i].checked = false; } }else if(document.form1.output1.value == document.form1.elements[i].value){ document.form1.output1.value = ""; }else if(document.form1.output2.value == document.form1.elements[i].value){ document.form1.output2.value = "";}}} --> </script> <body> <form name="form1"> <input type="text" NAME="output1" SIZE=10 > <input type="text" NAME="output2" SIZE=10 > <tr> <td><input type="checkBox" NAME="komoku1" value="1110" onClick="getCheck()" >1</td> <td><input type="checkBox" NAME="komoku2" value="1120" onClick="getCheck()" >2</td> <td><input type="checkBox" NAME="komoku3" value="1130" onClick="getCheck()" >3</td> </tr> </form></body></html> どなたか教えてください。 上記のソースで実行するとチェックボックス”2”をチェックした後、 チェックボックス”1”をチェックすると、テキストボックスの値が入れ替わってしまいます。 チェックした順番にテキストボックスに値をセットしたいのです。
アルゴリズム的に問題があるんでしょ。onchangeで動作を トリガーして、ONになった時は自分の番号を末尾に追加する。 OFFになった時は自分の番号を削除して空いた分だけ前に詰める。 ということじゃないの。
269 :
ABC :03/09/17 16:12 ID:Wp8K6wL5
>>262 ありがとうございます。すごいですね。出来ました。
var obj = new ActiveXObject("microsoft.xmlhttp");
obj.open("get","
http://www.yahoo.co.jp ",false);
obj.send();
alert(obj.responseText);
これでやってみます。send()の意味が分かりませんが、自分で調べてみます。
var obj = new ActiveXObject("microsoft.xmldom");
の方法しか知りませんでした。"microsoft.xmlhttp"なんてのもあるんですね。
僕は「標準 XML完全解説上下」で勉強しましたが上記は載っていませんでした。
もしよければ、お勧めの本なんて教えていただけないですか?
NNではやはり<iframe>でがんばります。
ありがとうございました。
270 :
Name_Not_Found :03/09/17 16:21 ID:fNaGmOrY
<script language="JavaScript"> function go_next(go_flg){ switch(go_flg){ case "2": if(!checkUpdate(document.F)) return; document.F.logicName.value = "Function"; document.F.action="<%= request.getContextPath() %>/ControlServlet"; document.F.METHOD_ID.value="CONFIRM"; document.F.submit(); break; } } function checkUpdate(objForm) { // ここになにか右のリストボックス(aaa)がすべて選択されたようにする // ロジックを書きたい return true; } function Sel( val,txt ) { var idx = document.F.aaa.length; document.F.aaa.options[idx] = new Option(txt,val); } </SCRIPT></HEAD>
271 :
270=261 :03/09/17 16:23 ID:fNaGmOrY
つづき <BODY> <form method="post" action="" name="F" onSubmit="return false"> <SELECT name="copysaki" size="5" > <OPTION value="1">1</OPTION> <OPTION value="2">2</OPTION> <OPTION value="3">3</OPTION> <OPTION value="4">4</OPTION> <OPTION value="5">5</OPTION> </SELECT></TD> <TD><INPUT type="button" value="→" onclick="Sel(document.F.copysaki.value,document.F.copysaki.value)" > </TD> <TD> <select name="aaa" size="5" multiple > </select> </TD> </TR> </BODY> <INPUT type="button" value="確認" onClick="go_next('2')"> </FONT> <input type="hidden" name="logicName" value=""> <input type="hidden" name="METHOD_ID" value=""> </FORM> </BODY> </HTML>
272 :
261 :03/09/17 16:24 ID:fNaGmOrY
だいたい今はこんな感じです。 今は仕方なく、左で選んだものを自動的に右で選択 した状態にしているのですが、このままだと 全て選び終わった後、右のリストボックス内をいじると 選択解除されてしまうので、うまくいきません。 いくらいじろうがsubmitの際に、すべて選択されたように してあげたいのですが・・・。
>>272 なんだかまだ何が問題なんだかよく分からない。いじって選択解除
されるのが嫌だったら右のselectに属性readonlyをつけておけば利用者
に変更されることはなくなると思うけど、それじゃだめなの?
274 :
261 :03/09/17 18:22 ID:fNaGmOrY
>>273 今、readonlyをつけてやってみましたが、
右のリストボックスの選択を解除・非解除は
いじれちゃいます。。。
まー、いじれちゃっても結局submitしたときに
全てselectedの状態で送れるような方法が
あればうれしいのですが。
うーん、選択解除は面倒なのね。いっそ、そのselectはdisabledに してしまって(送られない)、変わりに見えないselectも一緒に用意 してそっちを送るとか(見えなければいじられないはず)。
>>275 function bbb() {
for(i = 0 ; i < document.F.aaa.length ; i++)
document.F.aaa.options[i].selected = true;
}
function Sel( val,txt ) {
var idx = document.F.aaa.length;
document.F.aaa.options[idx] = new Option(txt,val);
bbb();
}
と
<select name="aaa" onChange="bbb();" size="5" multiple >
</select>
で画面上の強制選択はできる。
あとはリストボックスを退避してクッキーに覚え込ませて
onLoadで呼び出して適用すりゃいんじゃねーの?
ページが読み込まれる毎に、テーブルの1つのセルの背景画像をランダムに表示 ということはできますか? テーブルにいれずに、"画像をランダムに…"というのは色々見つけたのですが…
alert('今日の運勢は'+['大吉','中吉','小吉','凶','大凶'][Math.floor(Math.random()*5)]+'です。');
BLOCKQUOTEのtitle要素の文字列をそのまま、 画面に表示させるようなことは可能でしょうか? 可能なら色々調べて自作してみようかなと思うのですが。(今はまったくの初心者です)
>>277 そんなのどうにでもできるけど。onloadハンドラで
document.getElementById('セルのID').style.bakcgroundImage
= 'uri(' + ランダムファイル名 + ')';
とかが自分の好み。N4はだめね。
>>279 そんなのどうにでもできるけど。onloadハンドラで
document.getElementById('表示させる箇所のID').innerHTML
= document.getElementById('BLOCKQUOTEのID').title;
とかが自分の好み。これもN4はだめね。
>>280 むー、問答無用でBLOCKQUOTEのtitle属性を表示するようなのも可能ですか?
>>281 「上に」表示するんだったら後から差し込むしかないから
>>280 みたいに
なるでしょ。「下に」表示するんだったらそのBLOCKQUOTEよりも後に
<script type="text/javascript">
document.writeln('<p>' + document.getElementById('BQのID').title + '<\/p>');
</script>
とか入れておくのでもいいかも知れない。
>>282 求めるものはまさにそれです。ありがとうございます。
サブウィンドウからフレーム無しの親ウィンドウを フレーム付のページに切替え(menu、contentsフレームから成り立っている)、 なおかつ両フレームのページを指定するだけの 簡単なスクリプトなのですが、ネスケ7でうまく動きません。 アラートで確認するとtheURLはうまく渡っているのですが、 実際はindex.htmlを読むだけで終わりになってしまっているようです。 良い対処法は無いか、ご指導いただけないでしょうか。。。 function winNav(theURL) { window.opener.focus(); window.opener.parent.location.href = "index.html"; window.opener.parent.contents.location.href = theURL; window.opener.parent.menu.location.href = "menu.html"; }
285 :
284 :03/09/18 10:40 ID:???
↑追記です。連カキすみません。 もともとindex.htmlはcontents.htmlとmenu.htmlから成り立っているのですが、 contentsフレームのページを任意で変更させたいのです。 現在は指定したtheURLが表示されず、常にcontents.htmlが出てしまう状態です
>>284 function winNav(theURL) {
opener.onload=function(){
this.contents.location.href = theURL;
this.parent.menu.location.href = "menu.html";
};
window.opener.parent.location.href = "index.html";
opener.focus();
}
287 :
284 :03/09/18 11:57 ID:???
>>286 ありがとうございます。
が、、、出来ませんでした><
index.htmlには行くのですが、やはり各フレーム内のページが
切り替わってくれません。
何か他の方法を考えた方が良いのでしょうか。。。
(出来るかどうか分かりませんが、refleshで飛ばすとか?)
288 :
277 :03/09/18 12:40 ID:???
レスありがとうございます。 ただ… どのように記述すればよいのか全くワカリマセン…(すんません) よろしければ全体をおせーて下さい
289 :
1/2 :03/09/18 12:41 ID:???
// _dom : 0=other, 1=Mozilla, 2=NN4, 3=IE4/5 _dom=(document.all?3:(document.getElementById?1:(document.layers?2:0))); function getDiv(nm){ if(_dom==1) return document.getElementById(nm); if(_dom==2){ var s=''; for(var i=1; i<arguments.length; i++) s+='document.layers.'+arguments[i]+'.'; return eval(s+'document.layers.'+nm); } if(_dom==3) return document.all(nm); return null; } function showLAYER(div){ if(_dom==2)div.visibility='show' if(_dom==1 || _dom==3){div.style.visibility='visible'} } function hideLAYER(div){ if(_dom==2)div.visibility='hide' if(_dom==1 || _dom==3){div.style.visibility='hidden'} } function setBGCOLOR(div,color){ if(_dom==2){div.bgColor=color ; return;} if(_dom==1 || _dom==3){div.style.bgColor=color; return;} ←* } window.onload=BGC function BGC(){ setBGCOLOR(getDiv('test0'),'#FFFFbb') }
290 :
2/2 :03/09/18 12:42 ID:JFvecTEo
>>289-290 環境はIE6 NN7です。
CGIに上記のポップアップのJavaScriptを入れようとしてるのですが
「←*」の行に「オブジェクトがありません」というエラーメッセージが出るんです。
HTMLファイルではしっかり動作しますし、Perl文法チェックもしました。
Webプログラミング板で「divがnullだから」と言われ調べてみましたが
自分には何が原因なのか解りませんでした。
どう修正すれば良いのでしょうか?
291 :
277 :03/09/18 13:10 ID:???
>>280 すいません…調べ足りませんでした。
backgroundImage などで検索したところ
ほぼコピペですができました!
ありがとうございました。
>>289 <div id="test0"> ... </div> が存在しているという前提で
div.style.bgColor → div.style.backgroundColor
>>290 bgColorとか古い奴は忘れた方が吉。backgroundColorだよねえ。
divがnullだからと言った奴は糞だな。ところでPerl文法チェックって何さ。
>>287 こういうのは開く側で制御しようとするともめやすいよね。URIに
余計なものがついてもよければ「?」の後に飛び先をくっつけておき、
index.htmlのframesetのonloadで「?」の後ろを取得してcontents
フレームを切替える、とかに分担した方が安全確実かも。
>>290 cgiで吐き出すHTMLにはきちんと id="test0" のものはあるの?
297 :
290 :03/09/18 14:29 ID:???
>>292-296 レスありがとうございます。
言われた通り、bgColorをbackgroundColorに直した所、そこのエラーは解消されました。
が、今度はライン1、文字1に「オブジェクトを指定してください」と。
あとは自分でやってみます。
ありがとうございました。
>>295 のサイトのものですが、サンプルとして動作してる部分を丸ごとコピーしたんです。
なのになぜかエラーが。
>Perl文法チェック
Perlの文法にミスが無いかチェックするものです。
ソフトでもありますが、私はサイトでチェックしました。
298 :
1/2 :03/09/18 14:33 ID:???
チェックボックスにチェックされたものをクッキーで保存しようとしています。 <script language="JavaScript"><-- function saveData(theValue) { theName = "DOD-WEAPONDATA"; theDay = 7; setDay = new Date(); setDay.setTime(setDay.getTime()+(theDay*1000*60*60*24)); expDay = setDay.toGMTString(); document.cookie = theName = "="+escape(theValue)+";expires="+expDay;} } function loadData() { theData = ""; theName = "DOD-WEAPONDATA="; theCoolie = document.cookie+";"; start = theCookie.indexOf(theName); if(start != -1) { and = theCookie.indexOf(";",start); theData = unescape(theCookie.substring(start+theName.length, end)); } return theData; } function delData() { theName - "DOD-WEAPONDATA"p document.Cookie = theName + "=;expires=Thum01-Jan-70 00:00:01 GMT"; } if(!navigator.cookieEnabled) alert("Cookieへの書き込みが出来ません"); // --></script>
299 :
2/2 :03/09/18 14:34 ID:???
続き <body>内にて <form>チェックされた物をクッキーに送ってます。 <input type="checkbox" name="DOD-WEAPONDATA"> <input type="button" value="Cookieに書き込む" onClick="saveData(this.form.DOD-WEAPONDATA.value)"> <input type="button" value="Cookieを読み込む" onClick="this.form.DOD-WEAPONDATA.value=loadData()"> <input type="button" value="Cookieを削除" onClick="delData()"> </form> 動作しません。どこがおかしいのかわからないので品評お願いします。 それとも、チェックボックスのクッキーは保存出来ないのでしょうか?
>298 下4行目 p => ;
>299 この2行はどう見てもぼろぼろだと思うがちゃんと見直しているの? theName - "DOD-WEAPONDATA"p document.Cookie = theName + "=;expires=Thum01-Jan-70 00:00:01 GMT"; MozillaやN7などには格納されてるクッキー見る機能があるんで、 クッキー格納ボタンを押してからチェックしてみれば。
>>301 theName - "DOD-WEAPONDATA"p
document.Cookie = theName + "=;expires=Thum01-Jan-70 00:00:01 GMT";
これですが、一行目 - を=、pは;として。
2行目のdocument〜は、今より過去の適当な日時にしています。
ちなみに、Thu,01-Jan-70 00:00:01 GMT";です。
それと、N7でクッキーが保存されているか、見ましたがされていませんでした。
303 :
290 :03/09/18 16:54 ID:???
駄目だ・・・。 ライン1 文字1のオブジェクト指定しろゴルァが解決出来ない。 ググッてみたらタグにミスがある確率が高いらしいけど、ミス見当たらないし。 Tableごとポップアップ表示させたいのに。
>>303 日記ならどっか他で書いてください。
スクリプトを動かすためのアドバイス求めているならソース貼ってください。
TABLEごとポップアップとか言われても、実際あなたがどんなHTMLを
書いてるのか、エスパーじゃないのでわかりません。
質問させてください。 通常、ボタンやテキストフィールドのフォーカス移動をキー入力で行う場合、 Tab や Shift + Tab を使うと思います。 これをカーソルキーのRight と Left で代行させたいのですが、 JavaScriptで可能でしょうか。 あるいは、何か別の手段があるのでしょうか。 よろしくお願い致します。
307 :
ABC :03/09/18 18:27 ID:6Cb90EJ3
>>305 document.onKeyDown
event.keyCode
focus()
を組み合わせて利用すれば出来るんじゃない?
移動させたいボタンやテキストフィールドにIDとかで連番割り振ってさ。
TeraTarm でいうところの sendkcode みたいなコマンドJavaScriptにあるのかな?
>>303 >ライン1 文字1
・イベントハンドラ属性(onclick="〜"とか)中のコード
・setTimeout(), setInterval() 等で実行するコード
の中のエラーと思われ。
呼び出してる関数の名前が間違ってないかとか見てみな。
あれ、、、
>>289 の元のWebProgでの質問も見たけど
そこでは backgroundColor だったよ
何でこっちに持ってきたときにbgColorに変わったの?
釣りだから
311 :
290 :03/09/18 20:10 ID:???
>>304 すみません、少々イラついてたので・・・。
>>308 ありがとうございます。
いろんなサイトを見ては実験してますがなかなか・・・。
下記のxxxを「test0」にすると正常に動作し、「wwwlng.cgi?print+$file(ログ呼び出し)」にすると
ライン1・文字1のエラーが起きます。($fileが原因のようです)
別板で「\$fileにしたら上手く行った」というレスを見て試してみましたが失敗。
<img src="wwwlng.cgi?print+$file">なんていう風にログを呼び出せたら何とかなりそうなんですが。
window.onload=BGC
function BGC(){
setBGCOLOR(getDiv('xxx'),'#ffffff')
}
.posabs {
position:absolute;
}
#xxx {
visibility:hidden ;
<a href="javascript:showLAYER(getDiv('xxx'))">
<DIV class="posabs" id="xxx">
>>309 こっちへ移る前に「backgroundColorかbgColor、どちらかに統一すれば上手く行くかも」
と思っていじったからです。
半角(半角カナ含む)と全角を判別するには半角文字をリストアップするしかないですか?
半角英数(ASCII)と半角カナ(JIS8の上段?)はUNICODE上で それぞれ連続してるから大小比較だけで済むと思うけど。
if(c >= '\u0020' && c <= '\u007e' || c >= '\uff61' && c <= '\uff9f') 半角ダ!
315 :
313 :03/09/18 22:46 ID:???
316 :
312 :03/09/18 22:47 ID:???
↑名前間違えました。
壁紙に来年の正月まで(いつでもいい)の残り日数なんかを表示させるような事って可能ですか? また、それはどうすりゃいいんでしょう?
document.write("正月まであと"); document.write(Math.ceil(((new Date(2004,0,1)).getTime()-(new Date()).getTime())/86400000)); document.write("日な訳だが…");
壁紙に表示させるってどういうこったい。
そりゃぁ、
>>318 のスクリプトを使って壁紙に指定した画像ファイルと文字列を
合成するってことだっぺ。JavaScriptで :)
(´-`).。oO(文字列を壁紙としてタイリングしたいとか言われたらどうしようかと思った…)
不可能ではなさそう
365コ壁紙を用意して毎日取り替えればいいだけ。
325 :
Name_Not_Found :03/09/20 01:07 ID:v3ETaKr2
Webページアクセスした時に、 Flashムービーを自動的に全画面で表示させるにはどのようにしたらよいのでしょうか? よく映画の公式サイトなどでみかけるような感じです。 よろしくお願いします。
327 :
ABC :03/09/20 10:19 ID:k+ssa5w8
すいません、教えてください。 自分自身のウィンドウのステータスバーを表示しないようにする方法は ないでしょうか? 見当違いかもしれませんが、自分自身を status=no で開けばいいかなと 思って、以下のようにしましたが、出来ませんでした。 window.open('','_self','status=no'); どのようにすればよいのでしょうか?
JavaScriptはNN2で初めて実装された。確か1996年のことだったと思う。 その当時から window オブジェクトも存在していた。 あれから7年・・・ 君は、自分自身のウィンドウのステータスバーが表示されなくなるようなページに 出会ったことがあるか?
>>328 殆どのScriptによる画像のポップアップウィンドウにはステータスバーがない。
新しいウィンドウを開いてから自分を閉じる。 あるいは、タスクバーの下にステータスバーが隠れてしまうように windowを移動すればいいだろ。
331 :
ABC :03/09/20 15:58 ID:k+ssa5w8
>>330 ありがとうございます。
新しいウィンドウを開いてから自分を閉じるという方法は以前に
試したことがあります。
その時は、新しいウィンドウを、自分と同じ位置に同じ高さで、
同じ幅にして表示することで、ユーザーにはあまり気づかれずに
遷移できるかなと思ってやってみたのですが、『同じ高さで』と
いうのがネックであきらめました。
ブラウザの高さを測るのにouterHeightというのがIEで使えなくて、
『 clientHeight+メニューなどの高さ 』としなくてはいけないの
で、どうやっても正確にブラウザの高さが測れませんでした。
それで、単純にステータスバーを消せないかなと思いまして質問
させていただいた次第なのですが...
ブラウザの高さを正確に測る方法と位置がわかる方法があればそれでも
いいのですが。無いかな?
332 :
193 :03/09/20 16:11 ID:???
333 :
ABC :03/09/20 16:41 ID:k+ssa5w8
>>332 ありがとうございます。NNではこのやり方で行きたいと思います。
でも9割方のユーザーがIEなので、IEでも同じことをやりたのですが...
そこまでして消して何するの?詐欺?
>>333 新しく出る窓のサイズを既にある窓と一致させるだけなら、わりと
簡単な方法があるけど。悪いことに使うんでなければ説明するが。
わくわく
337 :
ABC :03/09/20 19:47 ID:k+ssa5w8
ステータスバーを消すことで、悪いこと(詐欺)をどうやってするんだろう。
ステータスバーってリンクにマウスを乗せたときなどにurlを見るぐらいの
使い道しか知らないんので、詐欺をする方法を逆に知りたいな。
僕の知らない使い道がたくさんあるのかな?
>>335 教えてください。
338 :
ABC :03/09/20 19:50 ID:k+ssa5w8
>>334 やっぱり気になるな。ステータスバーを消すとどういうことが出来るの?
>>338 つか何でそんな閲覧者に迷惑な事したいのか教えてよ。
とりあえず
>>1 の
> ・ユーザーに迷惑となるスクリプトを書かない者
そういえば、fuga = sprintf("%2d",hoge);みたいなのはJavaScriptでは どう書くのが一番スマートですか。 fuga = ( hoge < 10 ? '0'+hoge : hoge ); 2ケタならこれでいいかもしれんが、%3d,%4dとけたが増えた時 困ると思うし、いまいち綺麗ではない。
342 :
ABC :03/09/20 20:10 ID:k+ssa5w8
よかれと思ってやるのです。情報提供画面(社内へ株価表示,ニュースなど) の画面作成を行っているため、めちゃくちゃ情報が多いんです。framesetや iframeを使って、6個も1ブラウザに表示させるので、なるべく表示画面を 多く取りたいのです。 そこそこ詳しい方なら自分なりにアドレスバーを消したり、色々と画面を 広く取る工夫をなされているとは思いますが、圧倒的にデフォルトのまま 使用しているユーザーが多い人たちが対象となるので、ステータスバーを こちらで消したいのです。 ステータスバーを消したいというのは各論でして、表示画面を広く取りた いというのが総論です。
1つのページに収めようとするのが、間違いと思える
>>342 別に簡単なことで、IEである状態で窓を開いた時の実際の大きさ
を直接取ることはできないが、実際の大きさを変更することは
window.resizeTo(w, h)でできる。だから大きさをそうやって変更
してからclientWidthやclientHeightを参照すれば枠の厚みが分かる。
>>341 「%02d」だよね。1000000くらいを足してから最後の2文字とか3文字
を取ればいいんでは。
345 :
ABC :03/09/20 20:42 ID:k+ssa5w8
>>343 これは周りの人によく言われましたね。複数のページにすればって。
1つのページで見れたほうが便利な情報に関しては1つのページで表示
をするほうが見やすいというのが持論でして、そのための努力の一環と
してステータスバーを消せないかなという取り組みを行っています。
逆に1つのページで見ることにメリットが無い場合はは複数ページにし
てあります。
複数ページにすることは簡単ですが、なるべくユーザーには使いやすい
ものを準備したいと思いまして努力している次第であります。
なら、勝手にステータスバーを消されたら困る人のことも考えてね。
>>ABC よ。 >そこそこ詳しい方なら自分なりにアドレスバーを消したり、色々と画面を >広く取る工夫をなされているとは思いますが、圧倒的にデフォルトのまま >使用しているユーザーが多い人たちが対象となるので、ステータスバーを >こちらで消したいのです。 いいか、お前がやる事は「消してる人は工夫している人」で「消しえてない人は 工夫しなかったり、知らない人」という 思い込みを消す事だ。 あと、もし、ページ閲覧者が実際知らないが故に工夫できないと考えるなら、 閲覧者向けにブラウザーのカスタムTIPSを公開しろ。それで済む。
ちなみに、ウィンドウ消して、新しいの出すのは絶対止めろ? ・戻るキーが無効化される ・タブブラウザでブラウジング中だと全部台無しにされる。 はっきりいいって嫌がらせ以外の何物でもない。 あと、ステータスバーには、現在読み込み中のファイルなども表示される。 (お前のブラウザがなんだか知らないが、画面読み込み○%とかでるだろ) つまり、「画面には出ないが、裏で変なファイルをダウンしてるかどうか」 なんてこともステータスバーから知ることが出来る。 逆にいえば、わざわざステータスバーを消してくるようなサイト(しかも、 少なくともスクリプトが実行されているのは確実なわけだ)、 「見えない画像に変なファイルもぐりこませてダウンロードさせようとしてる」 サイトとみわけつかねーので、信頼おとしたくなければ、せめて確認ダイアロクくらい 先に出せよ?
>>341 function sprintfmodoki(digit,value){
for(var i=1;i<digit;i++){
if(value<Math.pow(10,i)){
var dval="0";
for(var j=1;j<digit-i;j++)dval+="0";
value=dval+value;
break;
}
}
return value;
}
ちょうど作ってたんで参考にどぞ
351 :
ABC :03/09/20 23:22 ID:k+ssa5w8
>>349 ステータスバーが見えないと、そういう悪さが出来るんですね。
忘れてました。というより、気にしてませんでした。これからは
気にします。
>>334 の人が"詐欺"って言ってたけどこの事を言ってた
のかな?
ありがとうございました。あとは自分で頑張ります。
352 :
名無すぃ :03/09/21 02:56 ID:oHngix2H
え〜っと、 SUBMITボタンをテキストリンクにしたんですが、 うまく動きません。原因は複数フォームがあるからなんですが… <form action="./write.cgi" method="post" name="1"> <input type=text size=20 maxlength=20> <a href="javascript:Send()">Submit</a> : : <form action="./write.cgi" method="post" name="7"> <input type=text size=20 maxlength=20> <a href="javascript:Send()">Submit</a> : : <form action="./write.cgi" method="post" name="2"> <input type=text size=20 maxlength=20> <a href="javascript:Send()">Submit</a> : : 以下略> このFormに臨機応変に対応できる function Send()ってどう書けばいいのでしょうか?
>>352 formにIDでも振って、引数で渡したれ
354 :
Name_Not_Found :03/09/21 09:18 ID:rhShAsZZ
ホームページに入った時に別フレームのページを変えるにはどうしたらいいのでしょうか?
356 :
Name_Not_Found :03/09/21 10:14 ID:rhShAsZZ
質問なんですが、 swfファイルからブラウザの別ウインドウを立ち上げて (その際変数を渡す)その画面一回だけリロードさせたいのですが 分からなくて悩んでいます。 調べてると下のようなサンプルを見つけましたが、 これだと開いたページのURLがリロード後、 「index.htm?reload」のようになってしまいます。 「index.htm#変数」のようにしたいのですが、 どうすればよいのでしょうか? 宜しくお願い致します。 <html> <head> <script language="JavaScript"><!-- function reloadPage(){ alert(); if (location.search=="?reload") return; location.href="index.htm?reload"; } //--></script> </head> <body onload="reloadPage()"> 1回だけリロード </body> </html>
>>357 なんで#変数じゃいかんの?
多分動くよこの関数でも。
そもそもJavaScriptではgetで変数を受け取る、ということはできないから、
この例の場合、?reloadという文字の有無をフラグにしてるんだね。
だから、#変数に書き換えればよいかと。
360 :
Name_Not_Found :03/09/21 13:03 ID:4i5SJ4WZ
>>360 まず、htmlから治したほうがいいのではないかと。
これで新しいウィンドウを開けることができますが、 newwindow = window.open("new.html","",""); 最大化させたいのです 最後の引数にselfを利用すると現ウィンドウのサイズがわたってしまうのですが、 new.htmlにリサイズするスクリプトを埋める以外で、新しく開けるウィンドウを 最大化させる方法はないのでしょうか? IE限定になりますが
window.open("new.html","","height="+screen.availHeight+",width="+screen.availWidth+",top=0,left=0); IE限定ってどんなの?
フルスクリーン化したあとのケアが何も無いから、 激しくユーザビリティにかけるよ。 alt+F4 知らなかったら閉じることさえできん。
ィィィイイイイーエス!!イイーエス!!
368 :
Name_Not_Found :03/09/22 03:17 ID:6/qu4NM4
質問させてください。 どなたか、escape() 関数の引数に渡す Shift-JIS コードと、 その結果のユニコード表記文字列との対応テーブルの作成方法を ご存じないでしょうか。 次のような変換テーブルが欲しいのですが、 res = escape("あ"); "あ" (82A0 ... Shift-JIS) → "%u3042" (escape の結果) 次のようなコードを書いたところ、fromCharCode(i) の引数 i が Shift-JIS 文字コードとしてではなく、Unicode の文字コードとして 扱われて、巧くテーブルが作成できませんでした。 <SCRIPT LANGUAGE="JavaScript"> for (i = 0x0100; i < 0x0200; i++) { // テスト document.write(escape(String.fromCharCode(i))); document.write("<br>"); } </SCRIPT> Shift-JIS コードでは「82A0」は "あ" なのですが、 String.fromCharCode() の引数に「82A0」を渡すと Shift-JIS ではなく Unicode 文字として扱われてしまいます。 (→ escape() の結果は "%u82A0" になってしまいます) C言語のように文字列を配列として扱って、 直接バイナリデータを埋め込んで変換させたいのですが、 何か良い手はないでしょうか。
>>368-369 ともかくこのスレでの議論では、Shift-JISとUNICODEの相互変換
方法はJavaScript内のみでは「ない」、IE専でよければVBScriptの
機能を呼び出す、だったと思います。過去ログあさればどっかにある。
371 :
Name_Not_Found :03/09/22 09:45 ID:c1+Yp0zc
ブラウザページ上に於いての.jpg,gif等の画像配置位置をソースから確認したい のですが、どのような記述のある箇所を参照すればよいでしょうか? 上下(X,Y?)共確認したいので宜しくお願いします。
>>371 CSS じゃないんよな?
document.all.何か.style.top = 数字;
とか
document.getElementById("何か").style.left = 変数;
とかソースにこんな感じのある?
だったら style の後をCSS感覚で読めばイイ。
てかソース貼るよろし。
373 :
368 :03/09/22 11:36 ID:6/qu4NM4
>>369-370 レスありがとうございます。m(__)m
IEで表示されるWebページ内容(Shift-JIS) に対して、
JavaScript を使用せずに escape() と全く同じ処理を
行いたかったのですが、escape() の Shift-JIS → UNICODE 変換規則が
分からず途方に暮れていました。
>charCodeAt() と String.fromCharCode() はJavaScript1.2で追加されたメソッドで、
>常にUnicode。(NN4.0〜4.05はUnicode非対応なので除く)
引数は常に Unicode だったんですね;
"charset=Shift_JIS" のWebページ内容を escape() したかったですので、
てっきり escape() が Shift_JIS → UNICODE に
変換してくれると思い込んでいました。(><)
ということは、escape() の引数に文字列が渡される前に、IE内部で
事前に Shift_JIS → UNICODE 変換されるということでしょうか。
>>372 <link rel=stylesheet href="img/def.css" type="text/css">
という記述が確認したいページのソースにあり、別途CSSファイルもDLしてみま
したが、その場合はCSSファイルを参照するのでしょうか?
ページソース、DLしたCSSファイルのいづれにも御指摘戴いたような箇所が見当
たりません。
375 :
368 :03/09/22 11:36 ID:6/qu4NM4
(続き) >ともかくこのスレでの議論では、Shift-JISとUNICODEの相互変換 >方法はJavaScript内のみでは「ない」、IE専でよければVBScriptの >機能を呼び出す、だったと思います。過去ログあさればどっかにある。 処理系によっては シフトJISからUnicodeへの変換テーブルに 一部相違があるようですので、どうしても escape() に変換テーブルを 吐かせたかったです。 ...が、いろいろ調べてはみたものの、 なかなか良い方法が思いつきませんでした。 Shift_JIS → UNICODE 変換処理は JavaScript内で 行われているのではなく、IE内部の処理でしたら escape() 処理と VBScript の変換処理は同じ結果になりますよね??? でしたら VBScript での実装を試してみます。 いろいろと情報ありがとうございました。m(__)m
>>374 どこにも無いなんてことはないだろに。
ソース晒せないんなら諦めな。
>>376 どこにも無いことはあるだろ。ただ単にHTML中にimgが
埋めてあるだけなんでは。その場合でもIE専ならば位置を
取得する方法はあった気がする。過去ログのどっかで見た。
>>377 よく見たら「ソースから確認」と書いてあるね、ということは
ソースのどっかに必ず指定があるはずという意味だったのか。すまそ。
>>374 もしかして、ふつうに記述してあるimg要素の位置を取得したい、
ということなの?
<body>
<p>hoge</p>
<p>fuga</p>
<p><img src="hage.gif"></p> ←これの位置
</body>
みたいな。
一発クリックでもしてもらえればなんとか。。。
>>379 別にクリックしなくてもその要素のoffsetLeftとoffsetTopを
参照すればいいのでは。
あ、そか。そだそだ。
>>363-366 サンクス!
といいたいところだが、新しいウィンドウが開くとHDDがうなるぐらい何かアクセスするようになった。
383 :
Name_Not_Found :03/09/23 12:59 ID:lVXvUQTN
Javaスクリプトの関数で引数に数値以外の文字列を指定する方法を教えてください function Jump(n){ parent.main.location.href ="menu/"+n+".htm") で、10.htmや20.htmにしたらジャンプできるのですが index.htmやmenu.htmにしたらエラーが出て動きません
>>383 Jump 以外の関数名にすると動いたりして。
予約語、だったっけ?
385 :
Name_Not_Found :03/09/23 13:09 ID:/r7d9oI6
・テキストA(あいうえお)の時はテーブルの背景色が#FFFFFF ・テキストB(かきくけこ)の時はテーブルの背景色が#000000 ↑のようなテーブルの中にアクセス度にランダムでテキストと テーブル背景色が切り替わるようにさせるには どうすればよいでしょうか? 教えて下さいお願いします〜。
>>383 その関数をどう呼び出してるかしらないけど、文字列はちゃんと
'(シングルクォーテーション)か"(ダブルクォーテーション)でくくってる?
たとえば onClick="Jump('menu')"
387 :
Name_Not_Found :03/09/23 13:34 ID:lVXvUQTN
>>386 onClick="Jump('menu')" にしたら動きました
でも
<A href="javaScript:Replace('menu')"> にすると動きません
onClickじゃなくてリンク形式で動かす方法はありませんか?
で、いつからJumpは予約語になったんだ?
リンクからページに飛んできたときに、 強制的にページを表示しているブラウザのサイズを 800*640に固定するようなスクリプトを探しています。 それらしきものをgoogle検索で探して試したのですが、 どうもブラウザのメニューを表示している範囲以外も含めて、サイズを指定しているようで、 例えば、IEでお気に入りが表示されている場合などに、きちんと800pixelで表示されず、 弱っております。 よろしくお願い致します。
390 :
Name_Not_Found :03/09/23 13:42 ID:lVXvUQTN
あれ? <A href="javaScript:Replace("menu")"> じゃなくて <A href="javaScript:Replace('menu')"> にしたら動きました ありがとうございました
>>385 <script type="text/css">
onload=function(){
hoge(document.getElementById("tableCell1"),[
["あいうえお"],["#000000"],["#ffffff"]
["かきくけこ"],["#ffffff"],["#000000"]
]);
};
function hoge(el,m){
var tmp=m[Math.floor(Math.random()*m.length)];
el.firstChild?(el.appendChild(document.createTextNode().nodeValue):el.firstChild=tmp[0];
el.style.color=tmp[1];
el.style.backgroundColor=tmp[2];
}
</script>
<table><tr><td id="tableCell1"></tablle>
392 :
391 :03/09/23 13:56 ID:???
<script type="text/javascript"> onload=function(){ hoge(document.getElementById("tableCell1"),[ ["あいうえお","#000000","#ffffff"], ["かきくけこ","#ffffff","#000000"] ]); }; function hoge(el,m){ var tmp=m[Math.floor(Math.random()*m.length)]; if(el.firstChild)el.firstChild.nodeValue=tmp[0]; else el.appendChild(document.createTextNode()).nodeValue=tmp[0]; el.style.color=tmp[1]; el.style.backgroundColor=tmp[2]; } </script> <table><tr><td id="tableCell1"></tablle> 間違えた
>>390 クォートするときは、
ダブルクォート『"』の中ではシングルクォート『'』で、
シングルクォートの中ではダブルクォートで、
が基本になります。エスケープするときは\で。例えば
document.write("<img src=\"hoge.gif\">");
みたいな。
誤解を招く表現だな
>>390 <A href="javaScript:Replace("menu")">
396 :
395 :03/09/23 14:30 ID:???
>>393 <A href="javaScript:Replace("menu")">
これでいいのかな
>>391 うお〜〜!ありがとうございます。
これで明日からも元気に生きていけます。
ありがとう391さん。
398 :
Name_Not_Found :03/09/23 15:45 ID:9a/ZATG9
以下のvbscriptをjscriptに置き換えたいのですが、 うまくいきません。何がまずいでしょうか。 ---------------------------------------------- Set f = Document.frm1 For n = 0 To f.Elements.length-1 If f.Elements(n).checked = true Then ch1 = ch1 & f.Elements(n).value & "," End If Next ---------------------------------------------- f = document.frm1; for (n = 0; n < f.itemElements.length-1; n++){ if (f.Elements(n).checked = true) { ch1 = ch1 + f.Elements(n).value + ","; } }
間違えました。 ---------------------------------------------- f = document.frm1; for (n = 0; n < f.item.length; n++){ if (f.item(n).checked = true) { ch1 = ch1 + f.item(n).value + ","; } }
400 :
385 :03/09/23 15:59 ID:???
>>392 のスクリプトなんですがテーブルの
左のセルに(ア行)右のセルに(あいうえお)でテーブルの背景色#FFFFFF
左のセルに(カ行)右のセルに(かきくけこ)でテーブルの背景色#000000
をランダムで切り替えるには、さらにどうすればよいでしょうか?
何度もすみませんがよろしくお願いしますー
401 :
ABC :03/09/23 16:22 ID:o8nm34Jv
>>396 それはいかんのじゃないかと。
試したことすらないけど。
画像Aを表示 ↓ カーソルが触れると 画像Bに変わる──────┐ ↓ ↓ カーソルを離すと クリックすると 再びAに 画像Cに ↓ カーソルを離しても 画像Cのまま こんなのを実現したいのですが <img>タグにonmouseover,onmouseout,onclickを書き連ねただけだと 画像Cのまま が出来ずにAに戻ってしまいます 何かいい方法がありましたらお願いします。
>>403 オンクリックの時にフラグを立てて、
マウスオーバとアウトの時には、フラグを見てから動作するようにする、
というのはどうでしょう。
405 :
Name_Not_Found :03/09/23 16:54 ID:o8nm34Jv
以下のような感じで<style>で指定しているのですが、JavaScriptで動的に.tを 変えるようなことは出来ますでしょうか? (class="t"をしているエレメントはfont,span,div以外にもたくさんあります) <style> .t { color:blue; } </style> <font class="t">aiueo</font> <span class="t">aiueo</span> <div class="t">aiueo</div>
>>405 ものすごくガイシュツだけどid振って
document.getElementById('ID名').className = 't1';
とかで変更できるが。またはすべての「t」を別のものに変更する
という意味でつか?それもエレメント名を列挙できるなら
var a = document.getElementsByTagName('span');
for(var i = 0; i < a.length; ++i) if(a[i].className == 't') a[i].className = 't1';
みたいなのを沢山やればできるが。
407 :
403 :03/09/23 18:19 ID:???
>>404 つまりなにか変数を用意してクリックの有無で違う値を代入して
マウスのオーバー、アウトのときif文とかで分岐する
っていう感じですかね?
やってみます。ありがとうございました
408 :
ABC :03/09/23 18:30 ID:o8nm34Jv
>>406 回答ありがとうございます。
idは別の用途で使用しているため、class変更のために使用できません。
class="t"をしているエレメンはfont,span,div以外にもたくさんあります。
もちろん、document.getElementByTagName(*)のようにしてループして
調べれば出来ることですが、tの持つ"{ color:blue; }"という意味を
"{ color:red; }"のように変えることが出来ればcpuも使わないしいい
かなと思っています。
実際には色だけではなく、widthやdisplay、font,backgroundなどを使用
しています。
409 :
ABC :03/09/23 18:32 ID:o8nm34Jv
getElementsByClass()なんてのがあれば簡単なんですけどね。 どうにか現状のJavaScript簡単に出来る方法はないでしょうか?
>>408 「tが持つ」っていうけどさ。tはあくまでもセレクタによって
スタイルシートに対応づけられるんだから、あるスタイルシートの
対応クラスをtからt1に変えて、別のスタイルシートを逆にtに変えて
やればいいんじゃない。
>>409 これで我慢して。
var elem = document.getElementsByTagName("*");
for(var i = 0; i < elem.length; i++){
if(elem[i].className == "t"){
elem[i].style.color = "red";
}
}
>>411 classは空白区切りもありなので、それではダメです。
>>409 と言う訳で新たに作った。
一発書きなので、バグがあったり、非効率だったりしたら、修正ヨロ。
// 2つ目の引数を指定した場合、探査する親ノードとする。
function getElementsByClass(){// classValue [, parentNode]
var classValue = arguments[0];
if(arguments.length == 1){
var allElements = document.getElementsByTagName("*");
} else {
// 二つ目の引数が本当にElementNodeかどうかは調べてません。
// 必要があったら追加してください。
var allElements = arguments[1].getElementsByTagName("*");
}
var matchingElementsArray = new Array();
for(var i = 0; i < allElements.length; i++){
if(!allElements[i].getAttribute("class")){continue;}
var classValueArray = allElements[i].getAttribute("class").split(" ");
for(var j = 0; j < classValueArray.length; j++){
if(classValueArray[j] == classValue){
matchingElementsArray.push(allElements[i]);
continue;
}
}
}
return matchingElementsArray;
}
413 :
ABC :03/09/23 20:32 ID:o8nm34Jv
>>410 >>410 ありがとうございます。classの値を変更することで対応したいと思います。
<style>内のinnerHTMLを直接変えたら出来るかなと思ってやって
みましたが、なぜか出来ませんでした。仕様なんでしょうけど。
document.getElementsByTagName("style")[0].innerHTML = '.t { color:red; }';
とするとエラーになるので、tryで囲んで見ると、numberが「-2146827688」、
descriptionが「未知の実行時エラーです。」になりました。
-2146827688をGoogleやMicrosoftのページで検索しても何も出てきませんでした。
私にはもうお手上げです(泣)。
414 :
412 :03/09/23 20:33 ID:???
訂正: 最後のif分の中身の2行目 >if(classValueArray[j] == classValue){ >matchingElementsArray.push(allElements[i]); >continue; ←コレ >} はコンティニュじゃなくてブレークですた。
415 :
ABC :03/09/23 20:40 ID:o8nm34Jv
>>412 入れ違いになってしまいました。ありがとうございます。利用させて頂きます。
Array() のpushは確かIE5では使えなかった気がするのでここだけちょっと変えて
使いたいと思います(continueもbreakに変えて)。
有り難うございました。
416 :
ABC :03/09/23 21:02 ID:???
すいません、解決しました。 解決したとき 射精くらい気持ちよかったです。
Classの値取得は" "でsplitするよりも RegExp("(^| )" + classValue + "( |$)") でマッチングした方がよさげ。 どっちの方が実行速度が速いかは試してみないと解らんが、 コートはツンプルになると思う。
>>416 誰かのレス以外の手段で解決したなら、その解決案の報告もヨロ。
おなじ問題抱えてる人の参考になると期待され。
419 :
ABC :03/09/23 21:15 ID:???
まだ射精の余韻に浸ってるので・・・
まあ質問者はトリップ必須だな。バカが去るまでの間。
↑ バカ
>>400 <script type="text/javascript">
onload=function(){
hoge(document.getElementById("tableRow1"),[
["ア行","あいうえお","#000000","#ffffff"],
["カ行","かきくけこ","#ffffff","#000000"]
]);
};
function hoge(el,m){
var tmp=m[Math.floor(Math.random()*m.length)];
el.firstChild.firstChild.nodeValue=tmp[0];
el.childNodes[1].firstChild.nodeValue=tmp[1];
el.childNodes[1].style.color=tmp[2];
el.childNodes[1].style.backgroundColor=tmp[3];
}
</script>
<table><tr id="tableRow1"><td>ア行<td>あいうえお</table>
>>405 function changStyles(index,atr,value)
var ss=document.styleSheets[0];
var rules;
if(ss.cssRules)rules=ss.cssRules;
else if(ss.rules)rules=ss.rules;
else return false;
rulse[index].style[atr]=value;
return true;
}
423 :
ABC :03/09/23 21:24 ID:o8nm34Jv
>>417 RegExp("(^| )" + classValue + "( |$)")
私には残念ながら理解できません...。
425 :
417 :03/09/23 21:45 ID:???
すまん。半角スペース(この場合classの区切り文字)をエスケープし忘れた
>>412 はスペース区切りのclassにたいして、スペースでsplitしてfor文で回してるが
RegExp("(^|\\s)"+ classValue +"(\\s|$)").test(allElements[i].getAttribute("class"))
こうすりゃ1発で文字列(classValue)の有無が判定できる、と、言いたかった。
426 :
ABC :03/09/23 21:45 ID:o8nm34Jv
>>417 RegExp("(^| )" + classValue + "( |$)")
理解できました。^|こういう正規表現あったかな?なんてちょっと
あせってしまいました。通常の|ですね。確かにこれでmatchとすれ
ばシンプルになりますね。参考にします。
有り難うございました。
馬鹿相手に手取り足取りですか
428 :
422 :03/09/23 22:00 ID:???
>>405 やっぱこっちがいいかな
function changeStyles(selector,atr,value)
var ss=document.styleSheets[0];
var rules;
if(ss.cssRules)rules=ss.cssRules;
else if(ss.rules)rules=ss.rules;
else return false;
for(var i=0,rule;i<rules.length;i++)
if(rulse[i].selectorText==selector){
rule=rules[i];break;
}
if(i>=rules.length)return false;
rule.style[atr]=value;
return true;
}
//使い方の例
changeStyles(".t","color","red");
429 :
ABC :03/09/23 22:10 ID:o8nm34Jv
>>425 testはIE5で使えないので、
r = new RegExp(" *" + classValue + " *");
allElements[i].getAttribute("class").match(r)
でやってみます。
>>428 有り難うございます。document.styleSheetsを良く知らないので
ちょっと勉強してきます。
見た限りだとセレクタ自体を変えられるような感じですね。
これが出来ればものすごく楽になります。助かります。
>>429 その正規表現スペースのエスケープ以外にも問題がある、
とだけ言っておこう。
431 :
ABC :03/09/23 22:41 ID:o8nm34Jv
>>428 実際に動かすことが出来ました。有り難うございます。これはいいですね。
さすがにNN7やOpera7では動かなかったですけど。
xmlの本あさってたらStyleSheetsモジュールについて書いてました。勉強不足でした。
便利ですね。
432 :
ABC :03/09/24 07:09 ID:???
すいません、解決しました。 解決したとき 射精くらい気持ちよかったです。
433 :
Name_Not_Found :03/09/24 08:57 ID:c0y0Dlyp
<HTML> <HEAD><TITLE></TITLE></HEAD> <BODY><SCRIPT language="JavaScript"><!-- function ShowTime() { toki=new Date(); document.write(toki.getSeconds()+"<br>"); } setInterval("ShowTime()",1000); //--></SCRIPT></BODY></HTML> 時間の表示が上手くいきません。 イメージとしては1秒毎に1秒進んだ秒が改行された位置に表示されるです。 setTimeoutでもダメで、C見たいにfor(;;)setInterval("ShowTime()",1000); でもダメで、for(;;)ShowTime();は重くなるようでダメでした。 どこを直せばよいか教えてください。
>>433 <script type="text/javascript">
function ShowTime(){
var toki = new Date();
var MyTime = toki.getSecconds();
var Display = document.getElementById("Disp");
Display.innerHTML = MyTime
setTimeout("ShowTime();",100);
}
</script>
<body onLoad="ShowTime();">
<p id="Disp">秒はここに</p>
</body>
いきおいで書いてみた。
435 :
433 :03/09/24 09:41 ID:???
>>434 うまくいかないです。後、下のバーに!の注意が表示されています。
複数のテーブルにマウスポインタが来たら、色を付けたいんだけど、 これだと、どのテーブルにマウスポインタがいっても、 一番最後のテーブルに色がついてしまう。 Javascriptって、こういうことできないの? <script language="JavaScript"> <!-- function change_bgc(idd, bg_color, cur){ document.all[idd].style.background = bg_color; document.body.style.cursor = cur; } objDoc.load(path); var objRoot=objDoc.documentElement; var clnCld=objRoot.childNodes; var obj_id; var obj_cnt; var obj_key="ahya"; for(i=0;i<clnCld.length;i++){ var ss= "id=" + "'" + obj_key + i + "'" ; obj_id = obj_key + i; document.write("<table width='120;'"); document.write("style='border-color:#A5A5FF;border-width:4px;border-style:double;'"); document.write(ss); document.write("onMouseOver='change_bgc(obj_id,in_col,in_cur);'"); document.write("onMouseOut='change_bgc(obj_id, out_col, out_cur);'>"); document.write("<tr><td><font size=2>" + program +"</font> </td></tr>"); document.write("<tr><td><font size=2>" + size + "," + stimulus + "</font></td></tr>"); document.write("</table>"); document.write("</br>");} </script>
>>435 すまんこってすたい。
<script language="javascript">
<!--
var Timer
function ShowTime(){
var Display = document.getElementById("Disp");
var ThisTime = new Date();
var Time = document.createTextNode(sprintf_modoki(ThisTime.getSeconds()));
Display.removeChild(Display.firstChild);
Display.appendChild(Time);
Timer = setTimeout("ShowTime();",100);
}
function sprintf_modoki(num){
if(num < 10){
return "0" + "" + num;
}
return num;
}
//-->
</script>
</head>
<body onLoad="ShowTime();">
<p id="Disp">ここ</p>
<p><a href="#" onClick="clearTimeout(Timer);">ストップ</a></p>
</body>
438 :
1/2 :03/09/24 10:35 ID:???
2つに分けます。 var IE = 0,NN = 0,N6 = 0; if(document.all) IE = true; else if(document.layers) NN = true; else if(document.getElementById) N6 = true; function OnLink(Msg,mX,mY,nX,nY){ var pX = 0,pY = 0; var sX = 0,sY = 0; if(IE){ MyMsg = document.all(Msg).style; MyMsg.visibility = "visible"; } if(NN){ MyMsg = document.layers[Msg]; MyMsg.visibility = "show"; } if(N6){ MyMsg = document.getElementById(Msg).style; MyMsg.visibility = "visible"; } if(IE){ pX = document.body.scrollLeft; pY = document.body.scrollTop; MyMsg.left = mX + pX + sX; MyMsg.top = mY + pY + sY; }
439 :
2/2 :03/09/24 10:49 ID:???
if(NN || N6){ MyMsg.left = nX+ sX; MyMsg.top = nY + sY; } } function OffLink(Msg){ if(IE) document.all(Msg).style.visibility = "hidden"; if(NN) document.layers[Msg].visibility = "hide"; if(N6) document.getElementById(Msg).style.visibility = "hidden"; } body内 <A HREF="#" onMouseOver="OnLink('Test',event.x,event.y,event.pageX,event.pageY)" onMouseOut="OffLink('Test')"> IE6とNN7で動作確認してます。 <A></A>で囲んだリンクにカーソルを乗せるとTestというウィンドウをポップアップで表示させるモノなんですが ウィンドウの端にあるリンクにカーソルを乗せるとTestウィンドウがはみ出してしまい、上手く表示されません。 var sX = 0,sY = 0;を指定する事で相対座標は指定できますが、 これを絶対座標を指定出来るようにしたいんです。 left=0,Height=0や、ググッて出てきた絶対座標の指定の仕方を当てはめて見たんですが失敗。 どこをどう変更すれば良いのでしょうか?
440 :
438 :03/09/24 10:50 ID:GLFDJ45w
441 :
433 :03/09/24 11:03 ID:???
>>437 おおっ。ストップ機能まで。ありがとうございました。
>>436 めんどくせーから簡単に。
> Javascriptって、こういうことできないの?
残念ながらキミが出来ないだけのようだ。
<script>
function change_bgc(idd, bg_color, cur){
document.all[idd].style.background = bg_color;
document.body.style.cursor = cur;
}
for(i=0; i<5; i++){
obj_id = "ahya" + i;
document.write("<table border=1 width=100 id='" + obj_id
+ "' onMouseOver='change_bgc(\"" + obj_id + "\", \"red\", \"hand\")'"
+ "' onMouseOut='change_bgc(\"" + obj_id + "\", \"blue\", \"default\")'>"
+ "<tr><td>-</td></tr></table>" );
}
</script>
443 :
1/2 :03/09/24 12:36 ID:???
>>440 結局のところ端をどうにかしたいっていうことだな?
onMouseOver="OnLink('Test',event.x,event.y,event.pageX,event.pageY,50)"
端にくるヤツには最後に引数を足してやる。これは
<div id=Test>test</div>
だとしたら width の値。
444 :
2/2 :03/09/24 12:38 ID:???
<script language="JavaScript"> var IE = 0,NN = 0,N6 = 0; if(document.all) IE = true; else if(document.layers) NN = true; else if(document.getElementById) N6 = true; function OnLink(Msg,mX,mY,nX,nY,oW){ // oW を足した if(IE){ MyMsg = document.all(Msg).style; MyMsg.visibility = "visible"; // はみ出してるかチェック MyMsg.left = ((cW = document.body.clientWidth) < mX+oW )? cW-oW : mX ; MyMsg.top = mY ; } if(NN || N6){ MyMsg = (NN)? document.layers[Msg]: document.getElementById(Msg).style; MyMsg.visibility = (NN)? "show": "visible"; // はみ出してるかチェック MyMsg.left = (innerWidth< nX+oW)? innerWidth-oW: nX ; MyMsg.top = nY ; } } function OffLink(Msg){ if(IE) document.all(Msg).style.visibility = "hidden"; if(NN) document.layers[Msg].visibility = "hide"; if(N6) document.getElementById(Msg).style.visibility = "hidden"; } </script>
445 :
443 :03/09/24 12:52 ID:???
いけね。 ちょっちシクってた。自分で修正ヨロ。
446 :
438 :03/09/24 12:55 ID:???
>>443 修正しなくても理想どおりに表示されるんですが・・・
とにかく、修正場所は自分で探す事にします。
ありがとうございました。
447 :
438 :03/09/24 12:59 ID:???
あ、駄目だ。変な表示になる。要修正でした。 ・・・どこだろ。
>>442 自分だけができなかったようです。
ありがとうございますた。
449 :
Name_Not_Found :03/09/24 14:31 ID:3luj2H+l
教えてください。 セレクトメニュー(こういうやつです <select name=""><option value="">-------</option></select>) の項目数が多すぎるので50音順でアからトまで、ナからンまでの2つに分けたいのですが 以前どこかのサイトでこのセレクトメニューを2つ並べて 最初の方で「ア〜ト」「ナ〜ン」のどちらかを選択すると後の方のメニューの 項目がそれぞれに対応した項目に切り替わるのを見かけたのですが どのようにすればできますでしょうか? おそらくJavaScriptだと思うのですが・・・ よろしくお願いします!
>>449 連動するセレクトボックスならそのへんにサンプルが転がってるよ
451 :
:03/09/24 16:33 ID:UTunmeAk
onmouseで画像をロールオーバーさせる事はできたんですが、それをフォームの画像ボタンとしてクリックし、CGIに値を渡すにはどうしたら良いか分からず困っています。 参考サイトは一通り見てみたんですがこれぞという様なものはなく、良い例を探しています。 初歩的な事例で申し訳ないですが。。。
>>451 POSTだから悩むと?
そんなキミには submit(); というものがある。
サブミット。 それは魔法の玉手箱。
454 :
451 :03/09/24 18:45 ID:???
そうです。POSTに渡すのに悩んでたんです。 ちょいとsubmitについて勉強してきます。 ありがとうございました。
455 :
Name_Not_Found :03/09/24 22:35 ID:G4gCya93
IEでクッキーが読めなくなってしまいます。 ネスケ型URLエンコードをするJavaScriptの紹介がされているページを知りませんか。
JavaScriptにて以下のPerlのコードと同じ事をしたいのですが、 JavaScriptでの正規表現の扱い方が今ひとつ分からないのです。 $value =~ tr/+/ /; $value =~ s/%([0-9a-fA-F][0-9a-fA-F])/pack("C", hex($1))/eg; やっている事はとてもメジャーな事だと思いますので、 どこかにサンプルが無いかと思いググってみましたが、 探し方が悪いのか見つかりませんでした。 どなたかご存知の方いらっしゃいましたがご伝授願います。
>>456 value = decodeURI(value);
古い実装では
value = unescape(value);
>>455 IEでSJISのURIエンコードしたいならVBScriptしかない。
>>455 >>456 esacape() したものを unescape() するなら、まぁ使えるんだけどね。
あとは encodeURI() と decodeURI() とか
460 :
459 :03/09/25 01:18 ID:???
ごめん。なんか俺ずれてる。無視して
>>457 >>459 それらの関数は使いたくないのです。
というのも、対象とするブラウザがバージョン等含め多いので、
ブラウザによって仕様が異なる関数では後々面倒くさそうですし。
やりたい事はASPでクッキーを発行して、JavaScriptにてそれを読ませるのですが、
unescape();ではASPのURLエンコードと互換性がなく、デコードしてくれないのです。
互換性の高いコードでのURLデコード、サンプルとかご存知ありませんか?
>>461 Unicode→Shift_JISの変換テーブル自力で書く気力ある?
>>461 ASPに直にCookie吐かせるのではなくて
Cookieを吐くJavaScriptを出力するようには出来ないの?
書くのも読むのもJavaScriptにすれば整合性取れるでしょ。
>>461 decodeURIはECMAの標準だしこれを持ってないブラウザは今や
すごく少ないと思うけどな。とにかくShiftJISのコードを直接
扱うにはVBScriptの機能を呼ぶか(当然IE専)自前で全部変換表を
抱えるかしかなさそうだし苦労に見合わないでしょ。まだサーバ
側でUNICODEの対応表を持ってUNICODEエスケープ(%uXXXX)で送る
方がなんぼもまし。
465 :
451 :03/09/25 11:16 ID:???
色々探してsubmit()じゃなかったものの良いサンプルを見つけたので試してみたんですが、上手くいきません。
用途は二つありまして、一つはセレクトボックスでリンクを張ること。二つ目はCGIにCart()を渡すこと。いずれもロールオーバーボタンで実行したいと思っています。
ここ(
http://mugi.cc/js/#image )の「1.ロールオーバーの基本 - ビギナー向け:本家」と「5.送信ボタンの画像を変更 」、それとここ(
http://mugi.cc/js/#form )の「11.セレクトボックスでリンク(target指定付き) 」を組み合わせてやってみました。
初歩的な質問で恐縮ですが、どのようにタグを差し替えれば良いかご教授お願いします。
>>465 だーかーらー、
onClick="hogehoge.submit();return false;"
だってば。
あれ?ちがうの?
467 :
Name_Not_Found :03/09/25 14:10 ID:q2gRxDMS
月の数字が1桁だったら01、02のように表示して2桁だったら10、11と表示するにはどうすればよいのでしょうか? よろしくお願いします。
>>467 var month = (new Date()).getMonth() + 1;
month = String(month+100).substring(1);
469 :
467 :03/09/25 14:43 ID:q2gRxDMS
>>468 ありがとうございます。
無事出来ました。
470 :
467 :03/09/25 14:45 ID:q2gRxDMS
あともう一つお願いします。 年の2003表示を03と表示したいんですがどうすればよいでしょうか?
>>470 教えてもらったコードの内容を理解しようと努力しろよ。
473 :
467 :03/09/25 15:32 ID:q2gRxDMS
>>471-472 何とかできました。
ありがとうございました。
新たな質問です。
リンク先のページが存在しなかったら指定したページに飛ばすにはどのように書けばよいでしょうか?
よろしくお願いします。
>>473 思いつきをなんでも聞く前にJavaScriptとは何か勉強しなされ
>>474 勉強してて分からない事があって聞いてるんじゃなく、
勉強するつもりは全く無く、検索等をせずに手っ取り早く[ 答え ]を知りたいのかと
476 :
467 :03/09/25 16:19 ID:q2gRxDMS
検索しましたが見つかりませんでしたので質問しました。 お願いします。
無理です
478 :
461 :03/09/25 21:47 ID:???
アドバイスありがとうございます。
亀レスですみません。
>>462 気が遠くなりそうだというのは何となく分かりますです。
>>463 この方法が一番簡単で確実な方法ですよね。
同じブラウザでエンコードとデコードをすれば確実ですもんね。
>>464 改めて調べてみましたが、やはりdecodeURI, decodeURIComponentは
最近のブラウザしか対応していないので、ちょっと無理みたいです。
IEもNNも最低でも4.0には対応していたいので。
変換表も含めたコードを誰かが気前良く公開してくれてないかなぁ〜
などと思ってましたが、やはり甘かったようですねぇー。
とりあえず
>>463 さんの方法を検討してみて、自分でももう少し頑張ってみます。
>>478 >変換表も含めたコードを誰かが気前良く公開してくれてないかなぁ〜
PerlのJcode.pmに変換表のヘッダファイルがあるけど、266Kbもある。
現実的じゃないから誰も公開しないんだよ。別にケチなわけじゃなくてさw
480 :
nobodyさん :03/09/26 07:20 ID:8gwCiXoZ
教えてください。 フォームのボタン(button)を押すと特定の場所(フォーム上ではない場所)に テキストを表示することは可能でしょうか? ボタンを押すことによって一部のhtmlを出したり消したりしたいのです。
>>480 出来ます。 innerHTML とか DOM とかそのあたりを調べてみてください。
やりたい内容によっては style.display とか style.visibility あたりも使えるかな。
JavaScriptでフレームのコントロールについての質問です。 <FRAMESET ROWS="*,50"> <FRAME SRC="form.html" NAME="fr1"> <FRAME SRC="chuumon.html" NAME="fr2"> </FRAMESET> <!-- form.html --> <form name="bbs"> <input type=text name="form1" value=""></form> <!-- chuumon.html --> <script language="JavaScript"><!-- function myFunk1(){ parent.fr1.document.bbs.form1.value="注文1" ; } // --></script> <input type="button" value="注文1" onClick=myFunk1(); > 注文1をクリックすると"fr1"フレームのフォームに指定した文字を入れたいのですが、 form.htmlとchuumon.htmlが同じサーバにある時はうまく動くのですが、違うサーバにあるとスクリプトエラーになってしまいます。 メインのHPと掲示板が違うサーバなので困っています、、 よろしくお願いいたします
>>482 セキュリティ制約だから絶対的に無理。あきらめれ。もしこういうことが
できたらどんなに怖いことか。隠しフレームにショッピングサイト開いて
買いまくりとかさ。
485 :
Hasy :03/09/26 08:18 ID:FELqaljE
>>484 なるほど、セキュリティ規制ですか,
そういう事ができてしまうんですね。
諦めます、ありがとうございました。
JavaScriptに限らず基本的な事かもしれませんが、 if( X == 1 ) は if( X ) // 別に1じゃなくても0以外の値ならOK? if( X == 0 ) は if( !X ) と用途によるでしょうが省略する事ができるのですか? (その場合、比較演算子より論理演算子のほうが速い?) 速いのならば、1 or 0 だけのフラグのような物は論理演算子を使ったほうが良いのかなと。
はじめまして HTMLでエクスプローラー風のメニューを作りたくて function Displayを使っているのですが display:noneのときの画像を読み込ませない方法ってありますか? あまりに画像を大量に使っているのでページを開いた時に毎回1000kb近くの画像を読んでしまいます。 説明不足でしたらすいません
>>481 innerHTMLでできました。ありがとうございます。
>>488 > 説明不足でしたらすいません
安心しろ。説明不足だが十二分にアフォだってことだけは伝わる。
> エクスプローラー風のメニュー
だけで1Mかよ。絶句だな。
最初にイメージをどうにかしようと思わないのか?
<img src="" name=img1>
<* onClick="loadImg(imageName,imagePath)">
function loadImg(imgName,imgPath){
document.images[imgName].src = imgPath;
// 略
}
こんな感じアルネ。
<body onLoad=***
も使うヨロシ。
491 :
Name_Not_Found :03/09/26 23:18 ID:7s6RK+6d
492 :
491 :03/09/26 23:25 ID:7s6RK+6d
ぐはっ、スクリプト生きてるかも。 お手数ですがview-sorce:付けて見た方がが安全です。
用心していたのに伝染病に掛かってしまった。何故だろう。 と、つばを飛ばしながら話し掛けてくる馬鹿がいる。
>>491 Nortonが思いっきりDownload.Trojanだと警告してきますた
496 :
Name_Not_Found :03/09/27 05:55 ID:GdWGG722
リンク先のウィンドウサイズを指定した大きさで開くには、どのよう書けばよいのでしょうか?
497 :
496 :03/09/27 06:49 ID:???
自力で出来ました 失礼しました。
498 :
Name_Not_Found :03/09/27 06:56 ID:GdWGG722
リンク先のページが存在するかを調べるjavascript教えて下さい。
500 :
498 :03/09/27 07:17 ID:GdWGG722
要はリンクをクリックした時にページが存在しなかったら別のURLに飛ばしたいんです。
>>498 ログ見ればわかりそうなもんだが、
自分なりに試行錯誤したソースとか、そういった努力や向上心を
見せるとヒントや答えに出会える確立が格段にあがるよ。
その質問だと、やりたいことはわかるけど、何がわからないのか、が
わからないし。
ググってがんがれ、としか言いようが無い。
502 :
498 :03/09/27 08:18 ID:GdWGG722
>>502 http: というのはただのhtmlのURIを記述するときのスキームのひとつで、
JavaScript的には何の意味も無いただの文字列。
だから、このif節は常に偽になる。
あと、そんな関数はない。
あと、
>>501 はちょっと冷たい。
505 :
498 :03/09/27 09:09 ID:GdWGG722
>>504 何かいい方法ありませんでしょうか。
あったら教えて下さい。お願いします。
.htaccess使え
>>505 自分の管理下のサーバで404を自作可能なのか、
それとも全く他人が管理するサーバなのかで全く処理が違う。
前者の場合、404のページで処理させるのが普通。
セレクトメニューの選択肢を追加したり削除するにはどうすれば良いですか?
>>508 ものすごくガイシュツな質問。
> ・過去ログや関連資料を読むことができる者
510 :
498 :03/09/27 22:35 ID:mCL2yEQF
>>507 会社HPの鯖ですが、自社鯖ではないので
他人が管理する鯖です。
どのようにすればよいでしょうか?
よろしくお願いします。
>>510 自社鯖ではない
他人が管理する鯖
ってセリフが出た時点でさあJavaScriptスレから
外れる質問だって自覚はない?
512 :
◆q7u/null4U :03/09/28 00:15 ID:sRGM1mbM
Regular Expression で苦労しています. 思い違いかもしれないけれど, 'abc' で始まり, 'xyz' で終わるマッチングってできないのかなぁ〜? どうも,そんな気が...
/^abc.*xyz$/
514 :
◆q7u/null4U :03/09/28 00:29 ID:sRGM1mbM
>>513 なるほど...目からウロコです.
ありがと〜ごぜ〜ますだ〜.
516 :
Name_Not_Found :03/09/28 09:27 ID:K6zIlR+u
>>516 こんなの読みづらいだけだが……
しかもソースは汚いし、処理もひどい。
それでもやりたいなら、function starttype()を書き換えればよい。
タグの開始チェックの前にバックスペースのチェックを入れて、
削除したい文字数をグローバル変数に保存する。
さらにその前に上記のグローバル変数が1以上ならばstr2を削る。
もちろんディレイ(stopping)の処理や削除したい文字がタグの一部
だった場合の処理なども考える必要がある。
518 :
Name_Not_Found :03/09/29 16:06 ID:wgnzEVHv
質問です。 ウィンドウを閉じさせる方法を教えてください。 「ウィンドウを閉じますか?」という表示もでないで、自動的に閉じる方法です。
むりぽ
>>518 (opener=close)();
たぶん環境依存する。
521 :
518 :03/09/29 16:22 ID:???
ネスケ7で下記のjavascriptが反応しませんでした。どこがおかしいのかご助言お願いします。 ネスケでのJavaScriptの動作について書いてあるサイトを検索したのですが、 上手くヒットしなかったので、どこか上記のついて書いてあるサイトがありましたら そちらも併せて教えていただければと思います <a href="#" onMouseOver="cp('pho_01','block'); ct('tb_01','block')" onMouseOut="cp('pho_01','none'); ct('tb_01','none'); return false"> あああ</a>
>>522 そのctとかcpとかの関数の定義なしに答えられるような奴は神だと思わないかね?
524 :
Name_Not_Found :03/09/30 10:55 ID:gY2s5kQS
連動するセレクトボックスについて質問があります。 セレクトボックスがプルダウン形式の時、 IEでは期待した動きをしてくれたんですが ネスケ(確認したのは7.01)だと違った動作をします。 一つ目の項目を選択すると、二つ目の項目の プルダウンで出る項目は変更されているのですが ネスケではデフォルトで表示されている項目が変更されません。 IEでは変更されます。 確認したサンプルサイトでも同じ動作をしているので、仕様といえばそれまでなのでしょうが できればIEの動作に合わせたいと考えています。 どなたか良い方法をご存じの方、御教授下さいませ。宜しくお願いします。
>>524 onloadで関数呼び出す
と適当にレス
>>524 selectedのことか?
と適当にレス
>>524 わざわざそんなサンプル使わんでも
最初からNetscapeで動くサンプルコード探して使えばいい。
528 :
516 :03/09/30 12:30 ID:???
>>517 バックスペースの処理が全然わかりませんでした
おいらじゃムリでしたがありがとう
529 :
Name_Not_Found :03/09/30 12:53 ID:T8zGoHFg
fontタグのsize(<font size=1>)を解除する方法は無いでしょうか?
>>524 一つ目のselectでonchangeをフックし、二つ目のselectに対して
removeChild, createElement("option") -> insertChildする。
>>528 あきらめちゃったか。
>>529 まともな人間ならfontタグを使わない。CSSを使う。
どうしても必要なら、
font_element.removeAttribute("size");
>>529 for(var a=document.getElementsByTagName("font"),i=a.length;i--;)
if(a[i].size=='1')a[i].size='';
533 :
522 :03/09/30 13:31 ID:???
>>523 申し訳ないです。。関数部分はこちらです。
function cp(name,dis){
var ma = window.frames[name];
ma.document.all[name].style.display = dis;
}
function ct(name,dis){
var ma = window.frames[name];
ma.document.all[name].style.display = dis;
}
−−−−−−−−−−−−
<a href="#" onMouseOver="cp('pho_01','block'); ct('tb_01','block')"
onMouseOut="cp('pho_01','none'); ct('tb_01','none'); return false">
あああ</a>
そりゃ、document.all じゃ動かんだろ。 document.getElementById("name").style.display
535 :
529 :03/09/30 14:31 ID:???
>>531-532 有り難う御座いました。
お気に入りから見ているページの文字の大きさを変更しようと思ったんです。。
536 :
Name_Not_Found :03/09/30 15:04 ID:9XVvWHZE
どなたか教えてください。 現在日本語で作ったwebサイトを中国語で動作するように変更作業をしております。 webはaspで作られており、言語はVBScriptです。ただしメールアドレスの入力では javascriptでブラウザに入力チェックをさせております。 日本語を中国語にかえ、charsetをshift-jisからbg2312にかえ、ASPの言語コードを CODEPAGE="932"から CODEPAGE="936"に変えました。これでweb上での中国語表示、aspでの中国語処理で問題はなくなりました。 しかしなぜかJavaScriptによるメールのチェックがまったく機能しなくなりました。 JSでしていた他のチェック""による空白入力をアラートで警告出す部分もまったく動作しません。 原因のわかる方いらっしゃいましたらアドバイスお願いいたします
537 :
522 :03/09/30 15:13 ID:???
>>534 ありがとうございます。文法が間違っていたのですね。
IE上では問題なく動作するのですが、何故NN7では駄目なんでしょうか?
>>573 document.all は MSIE の独自仕様、ではなかったかと。
539 :
536 :03/09/30 15:23 ID:???
原因がわかりますた・・・ javascriptのエラーが表示されてなかっただけでした・・。 実際はエラーで実行がストップしていたようです。 おさがわせしますた・・・。
>>537 文法は間違ってないよ。
ただ、IEとN7では用意されているオブジェクトが「全く同じ」ではないので
一方にあってももう一方に存在しないオブジェクトを使うと、後者では動かなくなる。
IEとN7の両方で動かしたいなら、IEとN7の両方に存在するオブジェクトを使って
スクリプトを組むのが基本。
実際は「微妙に違うオブジェクト」とか「違うけど大体似てるオブジェクト」とかを
やりくりする場面も多いけどもね。
541 :
Name_Not_Found :03/09/30 22:22 ID:qANzL9rf
javascriptでテキストファイルを読み込みたいのですが可能でしょうか? 可能でしたら、どのようなソースを書けばよいのでしょうか?
>>541 隠しフレームやiframeに読み込む。詳細は既出。
543 :
541 :03/09/30 22:41 ID:qANzL9rf
>>542 そうじゃなくてVBでテキストファイルを開く時に使う
Line Input #aaaaa に相当する物を知りたいんです。
>>543 標準ではそんな機能ない。
フレームに読み込んでフレーム内のDOMにアクセスすることで擬似的にやるしかない。
IEだったら
>>262 でいけるのかな。俺は試してないから知らないが。
ローカル環境の IE なら普通に可能
547 :
Name_Not_Found :03/10/01 00:10 ID:uIqjYtq5
User Agent の判別に関する質問です。 IBMが出しているhomepage readerという音声ブラウザがあります。 中身は、MSIEのコンポーネントにスクリーンリーダをかぶせたものの ようです。 このブラウザを javascript で識別しようと考えているのですが、 navigator.userAgent が 利用している MSIE と同じ物を返して くるので、困っています。 何か良い知恵はありませんでしょうか。 よろしくお願いします。
548 :
Name_Not_Found :03/10/01 00:10 ID:Gje/ISgc
549 :
Name_Not_Found :03/10/01 04:04 ID:hosVPxZG
7 line programming
ttp://www.isl.cs.gunma-u.ac.jp/~shingo/make/7line/7line.html のカラーテトリスすごいです。どなたか解説して頂けないでしょうか。
せめてインデントだけでも見やすくしようと思ったのですが、
{}がないことに混乱してしまいました。。
<body onKeyDown=K=event.keyCode-38><script>Z=X=[B=A=12];function Y(){for(C=[q=c
=i=4];i--*K;c-=!Z[h+(K+25?p+K:C[i]=p*A-Math.round(p/A)*145)])p=B[i];c?0:K+25?h
+=K:t?B=C:0;for(i=k=f=K=0;q--;f+=Z[A+p])X[p=h+B[q]]=t+1;if(e=!e)if(h+=A,f|B)for
(Z=X,X=[l=228],B=[[-7,-20,6,h=17,-9,3,3][t=++t%7]-4,0,1,t-6?-A:2];l--;)for(l%A?
l-=l%A*!Z[l]:(P+=++k,c=l+=A);--c>A;)Z[c]=Z[c-A];for(S="<b>";i<240;S+=(c=X[i]|(X
[i]=Z[i]|=++i%A<2|i>228))?"<b style=color:#"+(142*c)+">■":"_")i%A?0:S+="<br>"
document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y(h=e=K=t=P=0)</script>
IEにスクリプトデバッガをインストールしたら、アンインストールできなくなってしまいました。 どなたかアンインストールする方法を教えてください。
551 :
541 :03/10/01 07:40 ID:RARwpkUA
>>545 カンマ区切りテキストファイルの個々のデータを拾いたいんですが
どのようなソースになりますでしょうか。
>>551 responseText を split。
553 :
541 :03/10/01 08:38 ID:RARwpkUA
>>552 具体的にはどのようなソースでしょうか
参考になるサイトがありましたら教えて下さい。
554 :
Name_Not_Found :03/10/01 14:00 ID:ZQ0kKZ+F
<SCRIPT LANGUAGE="JAVASCRIPT"> var name="541"; var say="アンポンタン" alert(name+"は"+say+"!"); </SCRIPT>
555 :
Name_Not_Found :03/10/01 16:02 ID:ahZ3gkAV
しつもんでつ、、JavaScriptで <input type="file">の参照ボタンを テキストリンクにしたいですのですが、、、 教えてください!お願いします!
>>555 参照ボタンを画像にするってのが過去ログにあったような。
でもIE5.5以下で上手くいかなくて、解決案出なかったような。
557 :
Name_Not_Found :03/10/01 16:12 ID:ahZ3gkAV
>>556 あらそうなのですか…、、失礼しますた…
>>551 CSVファイルなら、データバインド、データバインディング当たりで検索してみろ。
559 :
◆q7u/null4U :03/10/02 17:25 ID:329Ky/4F
function auto_link(x){
if(x.match(/
http:\/\/[#%&+=?_~|\--:|a-z]+/g )){
L=x.match(/
http:\/\/[#%&+=?_~|\--:|a-z]+/g );
var i=0; var j=L.length;
while(i < j){
x=x.replace(L[i],L[i].link(L[i]));
i++;
}
}
document.write(x);
document.close();
}
-------------------------------------------------------------
これは掲示板カスタマイズの自動リンクルーチンです.
(while を使っているのは IE5.0 での挙動不審の回避策です.)
さて,これに加えて特定のタグが通る様にしたいのね.
ところが img タグなどで
http:// が含まれた場合,重複変換されてしまいます.
正直なところ, regular expression には自信がなく,
トライアンドエラーを繰り返しているありさまです.
ちかればび〜.
てなわけで,お知恵拝借.
561 :
◆q7u/null4U :03/10/02 18:12 ID:329Ky/4F
>>560 回答ありがとうございます.
その通りです.
regulaar expression をうまく書ければ何とかなりそうなのですが...
ちなみに,タグ変換ルーチンは次のとおり:
(取り合えず, ima, div, span, maqee を通る様にしています.)
--------------------------------------------
function tag_replace(x){
if(x.match(/<img[#&+=?_~|\--;|a-z]+>|<div[#&+=?_~|\--;|a-z]+>|<\/div>|<span[#&+=?_~|\--;|a-z]+>|<\/span>|<marquee[#&+=?_~|\--;|a-z]+>|<\/marquee>/g)){
var X=x.match(/<img[#&+=?_~|\--;|a-z]+>|<div[#&+=?_~|\--;|a-z]+>|<\/div>|<span[#&+=?_~|\--;|a-z]+>|<\/span>|<marquee[#&+=?_~|\--;|a-z]+>|<\/marquee>/g);
var i=0; var j=X.length;
while(i < j){
var t=X[i];
t=t.replace(/</g,'<');
t=t.replace(/ /g,' ');
t=t.replace(/"/g,'"');
t=t.replace(/>/g,'>');
x=x.replace(X[i],t);
i++;
}
}
document.write(x);
document.close();
}
>>561 function auto_link (x) {
var url_re = /(
http:\/\/[#%&+=?_~|\--:|a-z]+ )/g;
var tag_re = /(<.+?>)?([^<]*)/g;
return x.replace( tag_re, function(){
return String(arguments[1]) + String(arguments[2]).replace(url_re,'<a href="$1">$1</a>');
} );
}
563 :
◆q7u/null4U :03/10/02 18:18 ID:329Ky/4F
補足: ようするに,上記の2つを合体して使いたい. しかし,先に述べた様な問題が... さすがに疲れました.
564 :
562 :03/10/02 18:18 ID:???
ゴメンこれ撤回。 IE5.0じゃreplaceの引数に関数渡せないや。
突っ込まれない内に訂正: ・ ima -> img ・ maqee -> marquee (これが非推奨なのは承知の上です.)
>>566 参考リンク,ありがとうございます.
取り合えず,読んで,また頑張ります.
>実用レベルに達するかどうかは、貴君の判断は委ねる。
タグ 4つのフィルターだけで,あの複雑さですからねぇ.
(僕がヘタレなだけで,もっと簡素化できるかも知れませんが...)
レスポンスの点で心配です.
取り合えず,頑張ってみますが...
完成したらご報告します.
568 :
Name_Not_Found :03/10/02 20:29 ID:O7ajrv/O
教えてください 例えば、4桁の入力フォームが3つ。ボタンが1つあったとしたら、 最初の入力フォームに4桁入れ終わった段階で、自動的に 次の入力フォームへフォーカスを移動。次も同様。 そして最後の入力フォーム入れ終わった段階で、自動的に ボタンへフォーカスを当てる。 という処理を行いたいのですが、どのようにやれば良いのでしょうか? よろしくお願いします。
>>568 どうしてもやるなら、タイマーで500msecごとに割り込みかけてNodeValueを
チェックし、その内容に応じて次のフォーム要素をfocus()するという方法が
考えられるが……
本当にそれが便利なのか、もう一度考えた方がいい。間違えて数字を入力した
ときなど。
570 :
568 :03/10/02 21:35 ID:O7ajrv/O
>本当にそれが便利なのか、もう一度考えた方がいい。間違えて数字を入力した ときなど。 僕もそう思うのですが、このように作ってと頼まれてしまったもので・・・ なにかいい方法ないっすかねー このタイマーを使うという方法が無難なのでしょうか
>>568 <script type="text/javascript">
onload=function(){
var ip=document.getElementsByTagName("input");
ip[0].onkeypress=ip[1].onkeypress=function(){
if(this.value.length==4)this.nextSibling.focus();
};
ip[0].onkeydown=ip[1].onkeydown=function(e){e=e?e:event;
if(e.keyCode==8&&this.value.length==0)this.previousSibling.focus();//BSで前に戻る
};
};
</script>
<input><input><input>
かなり適当だから後は自分でやれ
いいかげんでいいならこんなのでいけそうなもんだが。 <form> <input type="text" name="e1" onkeyup="value.length>=4&&e2.focus()" /> <input type="text" name="e2" onkeyup="value.length>=4&&e3.focus()" /> <input type="text" name="e3" onkeyup="value.length>=4&&e4.focus()" /> <input type="button" name="e4" /> </form>
573 :
569 :03/10/02 22:07 ID:???
formのtargetを書き換えることは出来ますか? submitボタンが数個あるので、ダミーのformを作って、 onClickでsubmitを行いたいと思ってます。 targetのみが違って、あとは流用できそうなんですけど。 どっかのサイトで、targetはいじれない?みたいな書き込みがあったので、 心配になりました。 NN4.78以上、IE5.0以上で動作確認できればOKなのですが、 どなたか教えてください。
自分の環境だけでは試せない バージョンやブラウザもあるでしょ。
試す環境を自分で用意する気がない、でしょ。
578 :
Name_Not_Found :03/10/03 10:16 ID:m39Tm9P3
ボタンのクリックでページの一部分のフィールドだけを書き換えるには どのように書けばよいでしょうか。 ページのアクセスカウントをとってるのでSubmitでの再表示はしたくないんです。
このスレの前の方にあるよ。それくらい読んでから質問したら。
580 :
Name_Not_Found :03/10/03 12:00 ID:s9GZ/2XU
このスレの前の方にあるよ。それくらい読んでから質問したら。 このスレの前の方にあるよ。それくらい読んでから質問したら。 このスレの前の方にあるよ。それくらい読んでから質問したら。 このスレの前の方にあるよ。それくらい読んでから質問したら。 このスレの前の方にあるよ。それくらい読んでから質問したら。 自分で試せハゲ 自分で試せハゲ 自分で試せハゲ 自分で試せハゲ 自分で試せハゲ 自分で試せハゲ 自分で試せハゲ 自分で試せハゲ 自分で試せハゲ
581 :
578 :03/10/03 12:32 ID:m39Tm9P3
>>579 レス番号は何番になりますでしょうか?
よろしかったら教えて下さい。
二つ前のウィドウが開いているかどうか判定したいのですが if (window.parent.opener.opener.parent == null) { } としても 「エラー:呼び出し先(サーバーアプリケーションではなく、サーバー)は消失し、利用 できません。すべての接続は無効です。呼び出しは実行されていません。」 となります。 二つ前のウィンドウはどのように指定すればよいでしょうか?
>581 フィールドって何か分からんが <script type="text/javascript"> function func(){ document.forms[0].elements[1].value='b'; } </script> <form><input type="button" value="○" onClick="func()"> <textarea rows="3" cols="10">a</textarea></form> >582 windowにname付けていじくれば?
>>578 <input type="button" onclick="document.getElementById('変更したい要素のID').innerHTML = '新しいテキスト'">
>>574 NN3 でも動くがFORM に
<input type=submit>
が無ければ旧ブラウザでは動かない。
<a href="#" onClick="with(document.dummyForm){target='_blank';submit();}">click</a>
>>582 winName1 = window.open();
winName2 = window.open();
if(winName2.closed) alert();
>>582 webProg 板のクソスレ 削除依頼出しとけ。ヴォケ
var uagent=navigator.userAgent; if(uagent.indexOf('Safari') >= 0 ){ document.write(""); } else{ document.write("<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\">"); } こういう外部scriptでブラウザを判別しているのですが、 ネスケ4の場合もスタイルシートを適用しないようにしたいのです。 どう変更してもネスケ7でもスタイルシートが適用されなくなってしまうのですが・・・。
>>587 if(document.layers) alert("NC4!");
589 :
587 :03/10/03 16:37 ID:???
>>588 それは以前試したんです・・・。
と思ったらif(uagent.indexOf('Safari') >= 0 or document.layers){
とか書いてました。すみません、逝ってきます。
if(uagent.indexOf('Safari') >= 0 || document.layers){
ですよね。ありがとうございました。
590 :
574 :03/10/04 00:44 ID:???
>585 ありがとうございました!感謝です。 また、質問なのですが、 <td>あ</td>を<td>い</td> というように、ボタンをクリックしたタイミングで 書き換えをしたいのです。 IEとかならtdにIDをふって可能だと思うのですが、 NN4.78ではどうやったらよろしいでしょうか?
>>590 NN4では限りなく無理。やるとしたら
レイヤーにテーブルを書き出してクリックごとに
レイヤーの中身をまるまる書き換えるとかそういう処理になる。
592 :
Name_Not_Found :03/10/04 01:14 ID:Sltd0Qar
セレクトメニューが2つあって、1つめで、 Aを選択した場合は A1 A2 A3 Bを選択した場合は B1 B2 Cを選択した場合は C1 C2 C3 C4 を2つめのセレクトメニューに表示させるには、どうすればいいんでしょう・・・。 よろしくお願いします。
>>592 「JavaScript プルダウン 連動」
>・スクリプトを組むための最低限のHTML・CSSを理解する者 デタラメでもいいから「おれはこんな風にやってみようとして、こんな スクリプトを書いてみたがまったく動きません、どこが悪いですか」位かこうや。
595 :
590 :03/10/04 07:35 ID:???
>591 ありがとうございます。 layerを使ってなんとか解決しました。
596 :
592 :03/10/04 14:35 ID:SpIBclu3
>>593 ありがとうございます。
>>594 申し訳ありませんでした。
フォーム(myform)のセレクトで、
<OPTION VALUE=1>AAA</OPTION>
が選択されている状態で、
xxx = document.myform.XXX.value;
yyy = document.myform.XXX.text;
alert(xxx)
alert(yyy)
だと、xxx は 1 と表示されるんですが、
yyy が undefind と表示され、AAA を取得できませんでした。
AAA を取得することはできないものなのでしょうか。
>>596 微妙に取得したいものまでたどり着いてない。
select = document.myform.XXX;
option = select.options[select.selectedIndex];
alert(option.value);
alert(option.text);
598 :
596 :03/10/04 14:51 ID:SpIBclu3
>>597 昨夜から何度か触っていましたが、
全然なにかが間違っていたようです。
勉強不足でした。
ありがとうございました。
599 :
Name_Not_Found :03/10/04 15:57 ID:HNTuEPYa
すみません、特定のURLのリンクから来たときだけ JavaScriptが実行されるような方法はないですか?
>>599 document.referrer。あとは自分で勉強しれ。
601 :
Name_Not_Found :03/10/04 16:22 ID:HNTuEPYa
602 :
Name_Not_Found :03/10/04 17:45 ID:jqHgbrKh
submitしないでドロップダウンリストの値を取得するには、 どうすればよろしいでしょうか。
604 :
Name_Not_Found :03/10/05 02:47 ID:X1CcCnK0
functionを使って、 ボタンをクリックするとウィンドウが変わる方法を教えてください。
>>604 <script type="text/javascript">
function hoge(url){top.location.href=url;}
</script>
<form>
<input type="button" onclick="hoge('
http://www.hoge.com/ ')" />
</form>
「ボタン」が単なる画像リンクなら
<a href="#" onclick="hoge('
http://www.hoge.com/ ');return false;"
><img/></a>
何かよく解らんがこのくらいてめェでぐぐれんのかゴルァ
つかちょっとは自分で勉強してみようとか思ったんだよねぇ?
「ウィンドウが変わる」って何?
「functionを使って」って使わなきゃダメなの?変なの。
#ダメだ漏れ酔っ払いフラグが立ってるもう寝ようおやすみ
オーラハシンヂマッタダー♪
<frame src="main.html" scrolling="NO" name="main_window" marginwidth="0" style="border-right:20px solid #000000;"> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ この部分を変えられるスクリプトを組むことは可能ですか? (フレームセット部分です。)ページによって色を変えたいのですが フレーム内の色変更やその他の色変更は何とか自分で出来たのですが この部分について記述している所が見付からなかったので、 分かる方がいたらどうぞ宜しくお願いします。
input type="file"の値を取得したり、 値を変更する方法はありますか?
>>609 for(var ip=document.getElementsByTgName("input"),file=[],i=0,j=0;i<ip.length;i++)
if(ip[i].type=="file")file[j++]=ip[i];
>>607 フレームをやめて外部スクリプトで擬似フレームを作るのは?
613 :
607 :03/10/05 22:59 ID:???
>>608 レスありがとうございます。
どうやら出来るようなので、頑張ってやってみます。
function(){xxx 〜で出来そうですね。
また参考URLもどうもです。行ってきました。
CSSとJavaScriptとの関係が詳しく記載されていなかったので
ちょっと難しかったのですが、参考になりました。
>>612 サイトの構成上、フレームがないと見にくいのです。
また、「外部スクリプトの擬似フレーム」を駆使できるほど
JavaScriptには詳しくないので・・
アドバイスしていただいたのにすみませんです。
>>613 >サイトの構成上、フレームがないと見にくいのです。
たぶん、javascriptとか以前にフレームがないと見にくいサイトの構成を
見直したほうがよいです。
スレ違い失礼。
615 :
Name_Not_Found :03/10/06 11:40 ID:B1W+VsDG
re = new RegExp(str) で、例えば、str = "(" とメタ文字が来ると、 「正規表現の中に')'を指定して下さい」とエラーが出ます。 メタ文字をエスケープしてくれる関数なり、対処方法はないもんでしょうか。
>>615 エスケープ文字は \。
ただ、 str='\('; とすると、文字列評価の結果は結局 '(' になる。
文字列評価の結果を '\(' にする必要があるので、ここは str='\\(';
re = /〜/; のように正規表現リテラルで書く場合は
文字列リテラルの評価とは別なので \ は重ねず /\(/ でいい。
>616 どうもです。 strには、いろいろな文字が入ってくるので、 プログラム側で処理をしたいのです。 Ruby には、Regexp.escape というメソッドがあり、 javascript にも似たような物がないかと質問しました。 str="(" puts Regexp.escape(str) #=> \(
>>617 そういうメソッドはないので、自作かな。
function (str) {
return str.replace(/([\^\$\\\.\*\+\?\(\)\[\]\{\}\|])/g, '\\$1');
}
620 :
ミカン畑地獄 :03/10/06 14:00 ID:Z9LaNjTi
間違えた
>>618 だったわ
しかも \* はあったね。失礼しますた
>>620 - が正規表現中で特殊な意味を持つのは [ ] 内部だけなので
[ ] がエスケープされていれば - をエスケープする必要はない。
/ が問題になるのは正規表現リテラルを使う場合であり
コンストラクタに文字列渡してRegExpオブジェクトを生成する場合にはエスケープ不要。
でもIE4がこれでコケたような気がするので対象UA次第では / もやることになるね。
へぇx8
624 :
Name_Not_Found :03/10/06 18:02 ID:NSuwpoTM
ブラウザの画面上での位置を調べるのはどのようにしたらいいのでしょうか?
625 :
Name_Not_Found :03/10/06 20:07 ID:WZ0wyulX
変数名がfoo[1]という名称の場合、foo[1].valueのような形式で変数名に直接 アクセスすることはできるのでしょうか? オブジェクト全部を検索して、オブジェクト名が一致するかどうかで判定する方法 ならできるのですが、直接指定する方法がわかりません。
>>625 a = b = c = d = e = new Object(); という式があったら、
そのオブジェクトの変数名は何?
結論を言うと無理。
識別子にオブジェクトが割当てられるのであって
オブジェクトが独自に自分の名前を持っているわけではないから。
>>625 foo=[];
foo[1]={value: "あべし"};
alert(foo[1].value);
こういうことではないんだろうというのはわかる。
わかっているが・・・つい。
629 :
628 :03/10/07 04:52 ID:???
foo=[]は foo=new Array()とおなじね。
>>626 なんだか、
>>625 は「オブジェクト名が一致するかどうかで判定
することはできる」と書いているんだから、どうやってるのか
聞いてみようよ。にしても、本当に「変数名」が foo[1] なのかな。
ふつう、foo が変数名で [1] は添字指定だと思うけど。本当に
foo[1]という変数名なら window['foo[1]'] でアクセスできることに
なるわけだが。
631 :
Name_Not_Found :03/10/07 17:39 ID:/YAJg5pZ
setInterval と clearInterval を組で使っているのですが、 clearInterval が、効く時と、効かない時があります。 テスト用に抜粋したソースでは、 そのエラーが再現されず、途方に暮れております。 似たような経験をした方はいますでしょうか。
>>631 クリアされなかった事は無いのだが、前にドコかで
その症状のソースを読んだ事があったような気がするな。
uri 失念・・・というか本当に読んだのかすら失念。
で、ブラウザは?
633 :
Name_Not_Found :03/10/07 18:24 ID:ToFlbjXz
<!-- flag = new Array(); function tree(num){ com_list = document.all.item("com"); if(flag[num] == 1){ com_list[num].style.display='none'; flag[num] = 0; } else{ com_list[num].style.display='block'; flag[num] = 1; } } //--> これはどういうJSかわかりますか?
>>633 例えばクリックしたら文字が現れたり、消えたりと。
636 :
633 :03/10/07 18:32 ID:ToFlbjXz
おおお!こういうものだったんですね! 即答有難うございます!
>634 HTML も悲惨だがJavaScript もイタイな。 むしろ、それでよく動くな。と。
FONTタグに強い疑念を感じました
640 :
Name_Not_Found :03/10/08 00:19 ID:mQHkQymB
for (i=1;i < document.form.elements.length; i++){ message += document.form.elements[i].options[document.form.elements[i].selectedIndex].text; } がうまくいきません。 iを定数 1とかにするとうまくいくのですが・・ なぜなんでしょうか? 誰か助けてください
<form name="form"> じゃないのなら document.form → document.forms[0] とか document.forms[1] かなぁ?
>>639 でも、メニューとかに使われることを考えると、
こういう方式より、ドキュメントにきちんと書いて、
display を block と none で切り替える方が、
親切だとは思わん?
>>640 エラーが出んのか?なにがうまくいかないのか?
644 :
Name_Not_Found :03/10/08 00:42 ID:cariIrEb
javaScriptからDLL提供のC言語の関数を呼び出して、値を取得することは可能ですか?
645 :
640 :03/10/08 00:44 ID:mQHkQymB
>>641 <form name="form"> なんですよ。
aaa =document.form.elements[1].selectedIndex;
message += document.form.elements[1].options[aaa].text;
だとうまくいきますが、2つの1をiに変えると エラーがでます。
Nullまたは、オブジェクトではありませんとでます。。。
あっ。もしや、elementがselectのみの条件がいるのかも。。。
ちょっとやってみます。
646 :
640 :03/10/08 00:51 ID:mQHkQymB
すいません。おさわがしました。 if(document.form.elements[i].type == "select-one"){ message += document.form.elements[i].options[document.form.elements[i].selectedIndex].text; } で動きました。 ふヴ。こんなことに20分も気づかなかった。。。
>JavaScriptからDLL ここの接続が無理。 仮にできるとしたらWidows固有機能でJScriptをWHSで…とかになるので プログラム板の範疇になりそう。
>>644 rundll.exeを使えばとりあえず関数を呼び出せる。
649 :
631 :03/10/08 03:33 ID:???
>>649 setIntervalを二回以上やってないよな?
ソースみないとなんとも言えんが
>>650 アドバイスをもとに考えたところ、解決しました。
終了しないうちに、ボタンで初期化すると、
setIntervalを二回以上実行してしまうのが原因でした。
コンボボックスのリストをクリアするために下のような コードを書いています。 cnt = document.form1.elements["hoge"].length; for (i=0; i<cnt; i++) { document.form1.elements["hoge"].remove(0); } 一発でクリアできるメソッドはないでしょうか? document.form1.elements["hoge"].clear; こんな感じで。
Netscape 7.1で他のフレームをsubmitができません。 IE6.0ではうまくいきます。 コードは function testSubmit(){ top.main.form1.submit(); } です。 関数にalertを入れてみましたが、関数は ちゃんと呼ばれていました。 IEではうまくいっているのであたりまえかもしれませんが。 エラーとかは特に出ないで何も起きないといった感じです。 よろしくお願いします。
654 :
653 :03/10/08 10:47 ID:???
すみません。 window.parent.main.document.form1.submit(); とやったらできました。
>>652 document.form1.elements["hoge"].options.length=0;
656 :
652 :03/10/08 11:54 ID:???
657 :
Name_Not_Found :03/10/08 14:01 ID:OHK4Can6
<head>タグ内と、<form>タグに、以下を書いてるのですが、 Submitしても、「hello」とalertしてくれません。 なにか勘違いしてるのでしょうか・・・。 なお、ブラウザのJavaScriptはOnにしてます。(他サイトのJavaScriptで確認済) どなたか教えていただければ幸いです。 <script type="text/javascript"> <!-- function Check_and_Submit(){ alert("hello"); return true; } // --> </script> <form onSubmit="return Check_and_Submit()" method="POST" action="gather.cgi" enctype="multipart/form-data" name="f">
>>657 (1)エラー出てないのね?
(2)XHTMLだったりしないのね?
上記2点がないのなら、どっか別の場所との関連かなあ。HTML全体
を(最小限に削って)貼ってみてよ。
659 :
657 :03/10/08 14:34 ID:???
>>658 ありがとうございます。
(1)エラーでてないです。そのままSubmitしてしまいます。
(2)XHTMLではないです。
で、もとのHTMLソースを削りまくったら(後述)、ちゃんとalertされました。
別の場所との関連のようですね。。。でも、form関連で使ってるのって、
<input type="text"><input type="hidden"><input type="file">
くらいなんですよね・・・。うーん、なんでだろう。
-------------------------------------------------------------
<html>
<head>
<title>TMP</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<script type="text/javascript">
<!--
function Check_and_Submit(){
alert("hello");
return true;
}
// -->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form onSubmit="return Check_and_Submit()" method="POST" action="gather.cgi" enctype="multipart/form-data" name="f">
<input type="submit" value="登録" >
</form>
</table>
</body>
</html>
<input type="submit"> 付けて押したらきちんとhello表示されたぞ
661 :
657 :03/10/08 15:04 ID:???
すいません、他のタグ(JavaScriptでなく)をいじってたら、いつのまにか、なおってました。。。 すみませんです。。 でも、なんでだったんだろう。。。
662 :
625 :03/10/08 16:19 ID:d8b8Gj0r
>>626-630 実際は name='<%="ARRAY["+n+"]"%>'
のように記述をしています。
受け取り側で配列として受け取りたい(ARRAYnとかではなく)ので、
このような感じにしています。
javascriptは
var form = windows.document.forms[0];
for(n=0;form.elements.length;n++)
if ( form.elements[n].name == 'ARRAY[1]' ){
foo = form.elements[n].value;
}
}
として、全オブジェクトを検索して、処理しています。
検索せんでも、ということなんですが。
>>662 form.elements['ARRAY[1]'] でいけないの?
>>662 だいたいあんたねえ、それは「変数名」じゃなくて「フォーム要素の
nameの値」だよ。ここはJavaScript質問スレだから変数ったら
JavaScriptの変数のことになるだろ。で、回答は
>>663 だよなあ。
665 :
Name_Not_Found :03/10/09 02:22 ID:5Yh6ekbx
すいません、<form name="f">の中で、 <input type="radio" name="trigger" value="200310"> <input type="radio" name="trigger" value="200311"> <input type="radio" name="trigger" value="200312"> <input type="radio" name="trigger" value="200401"> のラジオボタンをonClickしたら、そのclickされたradioボタンのvalueから、年(上4桁)と月(下2桁)を判断して、 <select name="year"> <option value="2003">2003</option> <option value="2004">2004</option> <option value="2005">2005</option> <option value="2006">2006</option> </select> <select name="mon"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> (中略) <option value="12">12</option> </select> の該当するものをselectedにしたいのですが、どうやっていいのかさっぱりです。 とくに、selected にする、というのが、どういうメソッドなのかが・・・ どなたか、教えていただけないでしょうか?
>>665 SelectElement.options[i].selected = true;
667 :
Name_Not_Found :03/10/09 11:32 ID:5vN3+vqe
Netscape7に selectNodes や selectSingleNode のような動作をする メソッドってありますか?
>>667 いつから実用レベルで実装されてるのかは解らないが
Moz1.4くらいだとDOM3 XPath(現在CR)ベースで実装されている。
selectSingleNode はこんな感じで実現可能。
Node.prototype.selectSingleNode = function ( expr ) {
var doc = this.nodeType==Node.DOCUMENT_NODE?this:this.ownerDocument;
var resolver = doc.createNSResolver( doc );
var type = XPathResult.FIRST_ORDERED_NODE_TYPE;
return doc.evaluate(expr, this, resolver, type, null).singleNodeValue;
}
selectNodes は、こんな感じで一応似たようなことはできる。
Node.prototype.selectSnapshot = function ( expr ) {
var doc = this.nodeType==Node.DOCUMENT_NODE?this:this.ownerDocument;
var resolver = doc.createNSResolver( doc );
var type = XPathResult.ORDERED_NODE_SNAPSHOT_TYPE;
return doc.evaluate(expr, this, resolver, type, null);
}
この場合戻り値はスナップショットのXPathResultでありNodeListではないので
長さを取得するには length ではなく snapshotLength プロパティ、
指定のインデックスのノードを参照するには item ではなく snapshotItem メソッドを使うことになる。
669 :
Name_Not_Found :03/10/09 15:21 ID:5vN3+vqe
>>668 有り難うございます。
教えていただいたソースを参考にして試してみます。
670 :
Name_Not_Found :03/10/09 21:21 ID:fwDngOtZ
下記のようにjavaでHTMLを書いていますが これをさらにボタンonclickのjavaで書かせるには どうすればよいでしょうか。 この時同時にドロップダウンリストの値を取得したいです。 <script language=javascript> CAL += "<table>"; (略) CAL += "</table>"; document.write(CAL); </script>
671 :
Name_Not_Found :03/10/09 21:26 ID:edDcwOe3
お前ら、いい加減、javascriptをjavaと言うのやめろ。
>>670 まあjavaという略称は大凶ですな。
onclick から CAL を書き出したいということだけども
新しいドキュメントとして書き出したいの?
現在のドキュメントの任意の場所に挿入したいの?
>>670 質問の意味が解らん。
つーか貴方本当に日本人?
674 :
670 :03/10/09 21:38 ID:fwDngOtZ
言葉足らずでした。 既に表示してあるページをドロップダウンリストの値を元に ボタンonclickイベントでで書き換えたいんです。
ちょっと長いですが。。。 Flashのあるボタンを押すと、Flash側に書かれている 引数「var2」がアラートで表示されるというスクリプトです。 これはちゃんと動きます。 ■■■■■■■■ここから■■■■■■■■ <script language="JavaScript"> <!-- function swf01_DoFSCommand(var1, var2){ alert(var2); } //--> </script> <Script language="VBScript"> Sub swf01_FSCommand(var1, var2) call swf01_DoFSCommand(var1, var2) end sub </Script> ■■■■■■■■ここまで■■■■■■■■
>675の続き で、これを改良して、好きなFlashを読み込むようにしたくてこういうものを作りました (削ろうかと思ったんですが面倒なんでそのまま載せます。変な変数とかありますが気にしないでください)。 ■■■■■■■■ここから■■■■■■■■ function FlashFile_DoFSCommand(var1, var2){alert(var2);} function loadFlash(){ var file = document.form1.File.value; Swf = document.form1.File.value; SwfArray1 = Swf.split('.'); SwfArray2 = Swf.split('\\'); Exp = SwfArray1[SwfArray1.length - 1]; SwfFile = SwfArray2[SwfArray2.length - 1]; swfFile = '<embed NAME="FlashFile" src="' + SwfFile + '" quality=high pluginspage="省略" type="application/x-shockwave-flash" width="100%" height="100%"></embed>'; document.getElementById('inFlash').innerHTML = swfFile; } ■■■■■■■■ここまで■■■■■■■■ 好きなFlashを読み込むところまではできるんですが、 アラートが動作しなくなってしまいました。 なんでかわかる方いますか? よろしくお願いします。
>676の補足です HTMLで<input type=file>にして、好きなファイルを参照できるようにしてます
679 :
Name_Not_Found :03/10/10 00:00 ID:f9+kuZE1
<meta http-equiv="content-type" content="text/html;charset=Shift_JIS"> JavaScriptでこの文字コードをShift_JISからEUC-JPにかえるような方法はないですか? ボタンをクリックしたら文字化けする、というのを作ろうと思ったんですが いろいろためしてもうまくいきません。よろしくお願いします。
>>679 HTMLMetaElement.content="〜"
で変更はできるけど文字化けはしないな。
>678 そのとおりです。 ボタンは二つありまして、ひとつは type=file で swfファイルを読み込むだけのボタンで、、 もうひとつは 678さんが言ったようにonclickで 上に書いたスクリプト「loadFlash()」を実行するものです。
>>679 原理的に、HTMLのパースが終了している時点で
Shift_JIS符号化(ていうかJIS X 0208文字集合)の各文字は
Unicode文字集合に変換されているはずなので
そういうのは非常に難しいのではないだろうか。
>>682 不可能ではないけどね。
HTML取ってきてそれをShift JISからEUC-JPに変換して(JIS X 0201のカタカナ無視すれば5行くらい)、
document.write()すればいい。しかし、
>>679 *そんな馬鹿なことはやるな*
684 :
670 :03/10/10 07:50 ID:/STIdq1p
>>678 はい、そうです。
1つ目のjavascriptの中にさらに2つ目のjavascriptを書くようなことは可能でしょうか?
2つ目のjavascriptはドロップダウンリストの値を元にして1つ目のjavascriptを実行したいんです。
どのように書けばよいのでしょうか。
書き換えたい場所は同一レイヤーです。
>>686 検証してくれる人はいると思うけれど
どこかにまとめてUpとかやってくれる人は今のところいない。
とりあえずどんなバグ?
>>686 書き込む意味はあるのでは。少なくとも俺は参考になる。
690 :
686 :03/10/10 13:50 ID:???
バグ報告というかブラウザがどんな実装をしているか知りたいです。 <script type="text/javascript"> a=0; var b=0,c="global_c"; onload=function d(){ b=c; delete a; delete b; var c="local_c"; alert(""+window.a+b+c+d); }; d=0; alert(""+a+b+c+d); </script>
691 :
Name_Not_Found :03/10/10 15:17 ID:QvP7IYYf
現在の画面にスクロールバーが表示されているか否かを判断する方法 はないでしょうか? 自分で調べた限りだと、scrollbars.visible というのを見つけましたが、 IEで動いてくれません。IEは5,6を使用してます。 何かいい方法は無いでしょうか?
>>690 2回のalertをそれぞれa1,a2とすると:
【WinIE6】a1:00global_c0, a2:undefinedundefinedlocal_c0
【NN4.08】a1:00global_c0, a2:undefinedundefinedlocal_c0
【Opera7】a1:00global_c0, a2:(bのReferenceErrorで失敗)
【Moz1.4】a1:00global_c0, a2:undefinedundefinedlocal_cfunction d(){...}
ECMA-262-3仕様どおりに動作するのはMozだけか。
>>691 互換モードなら document.body.clientHeight < document.body.scrollHeight
標準モードだと若干変わるから工夫されたし。
694 :
Name_Not_Found :03/10/10 16:10 ID:QvP7IYYf
>>693 おおっ! そうやれば出来ますね。そういう視点があるとは思い浮かびません
でした。
有り難うございました。
>>695 とりあえず、グローバルコードの VariableDeclaration で生成した b は
{DontDelete} だから delete b では消えない。Operaはここが仕様違反。
onload = function d(){ ... } については
この d という識別子はグローバルスコープでは定義されない。
関数外部のスコープに影響を与えず、かつ関数内部からの再帰呼び出しが
可能なスコープで定義される(ECMA262-3 13 Function Definition 参照)。
だから、関数内部からの d の参照結果がグローバルスコープの d を参照するわけはない。
IE6の実装はこの点が仕様違反。(Opera7はこれは仕様どおり)
オナニースル
699 :
Name_Not_Found :03/10/10 20:03 ID:RNoVG3m/
スクロールすると一緒についてくるjavaスクリプトご存知でしょうか? よくメニューなどをスクロールと一緒についてこさせてるのを見かけるのですが。
>>696 前者は12.2 Variable statementのDescription、後者は13 Function DefinitionのNOTEに書いてあるね。
勉強になったよ。ありがとう
>>699 イベントが発生したら、
body の基点からの座標と、
ウィンドウの(0,0)からの座標を取得しておいて、
ごにょごにょするのです。
がんがれ。
703 :
Name_Not_Found :03/10/10 21:15 ID:BzrJmrYw
よくあるカウントダウンのJavaScriptを設置したいのですが、 (「●●開始まであと□日□時間□分□秒」がリアルタイムに1秒ずつ減っていくやつ) いろいろサンプルを見て回ったのですが、 function(2003,12,5) みたいに、≪●年●月●日(0時00分0秒)まで≫のカウントダウンのサンプルは見つかりました。 ただ、 function(2003,12,5,19) といように、≪●年●月●日●時(00分0秒)まで≫のカウントダウンは見つけられませんでした。。。 後者のように、年と月と日と時を引数として、 「●●開始まであと□日□時間□分□秒」と表示(リアルタイムに1秒ずつ減る)にはどうすればいいのでしょうか?
704 :
Name_Not_Found :03/10/10 21:23 ID:x43y7rb9
705 :
704 :03/10/10 21:27 ID:x43y7rb9
それと、設定はONになってます。突然見られなくなったのですが、思い当たる節が・・・ ノートンのアンチウイルスを3日前にインストールしましたがXPの動作が不安定になりまくるので昨日アンインストールしました。 それからです。
>>703 setTimeout を再起関数的に使って、
function hoge(){
var d = new Date();
var sec = d.getSeconds;
setTimeout("hgoe();",500);
}
のような感じで。
707 :
704 :03/10/10 21:36 ID:???
初めまして.
ここには初めてカキコします。どうか宜しくお願いします。
最近自作のHPを作ったのですが、そのタグの中でJavascriptのOpenwin()を使っているのですが、
開こうとすると別ウィンドウは出るのですが中身が出てこないです・・・
HEADの中に
<Script language="JavaScript">
<!--
function OpenWin1() {
var win = window;
win = window.open("
http://****.******.***/@@@@@@@/window1.html ", "newwin", "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,width=450,height=400");
win.document.write("");
win.document.close();
}
//-->
</SCRIPT>
を書いて、bodyの中に
<a href="javascript:OpenWin1()">〜〜〜〜〜</A>
と打ち込んでいます.
その状態でクリックして開こうとすると
http://****.******.***/@@@@@@@/main.html と出てきてしまいます.
きちんとwindow1.htmlも作ってスペースにUPしているのですが、表示されません・・・
いろいろみて来たのですが、自分の力量が足りず解決できませんでした・・・
どうか解決法を教えてください。よろしくおねがいします。
win.document.write(""); win.document.close(); この2行はイランだろ
>>710 >>710 さんどうもありがとうございます.
やってみたらきちんと動きました.
本当にどうもありがとうございました。
ウィンドウオ-プンに関しての質問なのですが 空のウインドウを開く時に window.open('about:blank', 'win1'); または window.open('', 'win1'); MacOSXでIE5.2ではどちらでも開くのですが 一般的にはどちらで書いた方が良いのでしょうか? よろしくお願いいたします。
画像を押したら、フォームがリセットされるようにしたいのですが、 <form action="hoge.cgi" mehtod="post"> <img src="../images/bottun_reset.gif" alt="リセット" height="24" width="160" border="0" OnClick="this.form.reset;"> </form> とやってもなぜか、JavaScriptエラーが出てしまいます。 なぜなのでしょうか・・・ this.form.submit と同じように this.form.reset というのもあったかと思うのですが、 どうも、どこのサイトを見ても見あたりません。。。 どなたかお助けいただければ幸いです
> なぜなのでしょうか・・・ デタラメだから <form action="hoge.cgi" mehtod="post" name="f"> <img 省略 OnClick="document.f.reset()"> </form>
717 :
713 :03/10/11 19:28 ID:???
719 :
686 :03/10/11 20:04 ID:???
>>692 検証ありがとうございます。
どなたかMacでも検証していただけませんでしょうか?
720 :
713 :03/10/11 21:19 ID:???
>>718 レスありがとうございます。
> 勝手に window を開くような事を嫌う人は多い.
そういった仕様にするつもりはないのですが、、
誤解を招いた文だったようですみませんでした。
>>718 お前の被害妄想だな。
コードをよく見ろ。onloadでopenしてるわけじゃないだろ。
しかも参考リンクがとほほかよ。と
>>720-721 iCab がタブブラウザになってからは
window.open();
問題ないと感じるようになった.
window.open();
の方が迷惑だと思う.
しかし,この程度の事で迷うような人物って何?
どうでも良い事だけど,補足.
724 :
Name_Not_Found :03/10/12 10:07 ID:fCj+kO9U
document.open() で以下のように書いています。 <html> <head> <script> function func(){ document.open(); document.write("aiueo"); document.close(); } </script> </head> <body onLoad="func()"> </body> </html> これを開くと(IE6)ブラウザ上で画面がひとつ先に進むようで、このファイル を直接開いているのに、ブラウザの「戻る」ボタンに一つ履歴が残ってしま います。 onloadで動かさずに直接<script>内で書けば回避できますが、上記のように onloadでやる場合にそれを回避する方法はありますでしょうか?
>>724 この script が正しく働くかどうかが疑問ですよ〜.
そもそも,onLoad はすべてが読み込まれた後で発生する event.
すべて読み込まれた後で,
document.open();
とやった時点で script そのものが,ふっ飛んでしまう.
運良く,そうならなかったとしても,
対応ブラウザを選ぶ欠陥 script になってしまうのよね.
document.write(); を使いたいのなら,
<body>
<script >~</script>
</body>
といった使い方をするしかないと思うけど...
(function call も可能.)
726 :
Name_Not_Found :03/10/12 11:02 ID:fCj+kO9U
>>725 そうか!
onLoadでやった場合はdocument.open()で別ウィンドウが作られてそこに
document.write() の内容が書き込まれるんですね。
だから履歴が残るのですね。
ってことは履歴が残ってしまうのは至極当然のことで、これを消すのは
無理ですね。
ありがとうございました。
>>726 >document.open()で別ウィンドウが作られて
あの〜...
ちょっと混同してませんか ?
別ウィンドウを開くのは window.open(); なのよ〜.
document.open(); は document.write(); の下準備.
んで, すべてのソースをクリアする働きも...
>>725 ガベージコレクションが起こるまでonloadは残ってるよ。
Opera7、Mozilla、IEで
alert(function(){/ /}.toString());
の実行結果が違うんですけどどれが正しいんですか?
Mozillaだと思うんですけど...
>>728 >onloadは残ってるよ
話が通じてない.
onLoad が残っているかどうかは無関係.
document.write('〜'); とやった時点で
'〜' 以外はすべてふっ飛んでしまうのが問題なのよ.
外部 js ファイルにすれば回避できることもあるけど,
ブラウザによっては,それさえもうまくいかないことがある.
ただし,ロードしている途中で割り込ませる形なら問題がないって事.
そういう意味で, document.write() を使う時には注意が必要.
>alert(function(){/ /}.toString());
>の実行結果が違うんですけどどれが正しいんですか?
.toString() 処理をなぜ function の中でやっておかないの?
alert( f() );
とやった方がすっきりしていると思うけど...
ウィンドウを読み終わったあとでdocument.writeして はまっているヤツなんて過去ログにたくさんいた。 それを何でこんなに長ったらしく書くんだろう。ヤシは。
>>730 " log 読め ! " と言う回答は多いよね.
しかし,それは " 1000 X 22 の記事に目を通せ ! " という意味になってしまう.
いくらなんでも,これでは不親切過ぎない ?
答えられるのなら,答えても良いでしょ?
" 馬鹿馬鹿しい " と思うのなら無視すれば良いだけ.
今日はあぼーんが多いなぁ
734 :
728 :03/10/12 14:53 ID:???
>>729 alert(f());
function(){
return function(){/ /}.toString();
}
しました。
結果は変わりありませんでした。
>>731 お前が駄に文章量を増やしているといっただけ。
もっと整理して書けよ。
>>724 document.open("text/html", "replace")
>>734 >function()
function name が抜けているので function としての用をなさない.
>function(){/ /}.toString();
省略表記をしているのかと思ったけれど,違うようですね.
ちなみに /***/ は regular expression の意味になるのを知ってますか ?
どうも function の使い方を誤解している予感.
具体的にやりたいことを書いてくれた方が話が早い.
738 :
728 :03/10/12 16:17 ID:???
>>737 Opera7、Mozilla、IEで
alert(function(){/ /}.toString());
の実行結果が違うんですけどどれが正しいんですか?
どれが正しいのか知りたいです。
>>738 そんなもの人それぞれだよ。
お前にはもっと別の勉強が必要だ。
>>738 試しに iCab2.95, IE5.0, Netscape7.01 で実験.
・ iCab2.95, IE5.0:
function(){/ /}.toString()
(共に同じ)
・ Netscape7.01:
function(){
}
普通, alert() の中の文字列は quote で囲わないとエラーになる.
しかし, function() は文字列ではなく,
名前が null の function object として扱われているのでエラーにならない模様.
しかし,function(){/ /}.toString() っていったい何 ?
う〜ん...
741 :
Name_Not_Found :03/10/12 18:18 ID:fCj+kO9U
>>736 有り難うございます。まさにこれです。
onloadでやらずに直接write() で書いてしまうとソースが丸見え
になってしまうんですよね。これならJavaScriptの結果だけを表
示出来るので助かります。
>>738 alert(function(){/ /}.toString());
/ / これはmatchとかの中に書かなくてもエラーにならないんですね。
これは面白いですね。何の役に立つか分からないですけど。
alert(typeof(/ /));
とすると、
NN7は function、IEはobject、Operaも object で、NN4は syntax error
でした。
でも、alert(/ /); とすると「/ /」っていうメッセージにみんななるん
ですよね。いったい / / って正規表現のオブジェクトになるんですかね?
alert(new RegEXP()); はどのブラウザも//になったので、やっぱりそうかな。
ちなみに、alert(typeof(new RegEXP())); の結果はalert(typeof(/ /));と
一緒でした。
NN7は正規表現はfunction扱いなんですね(へぇ〜、へぇ〜)
743 :
Name_Not_Found :03/10/12 18:26 ID:fCj+kO9U
>>741 に追記。
以下でやると動きました。
re = /aiu/i;
if("AIUEO".match(re)) alert("hit");
if("aiueo".match(re)) alert("hit");
わざわざnew RegExp()しなくてもいいんですね。しかもNN4でも
動いた!
もしかして僕が知らなかっただけで、めっちゃ初歩な事?追記。
以下でやると動きました。
re = /aiu/i;
if("AIUEO".match(re)) alert("hit");
if("aiueo".match(re)) alert("hit");
わざわざnew RegExp()しなくてもいいんですね。しかもNN4でも
動いた!
もしかして僕が知らなかっただけで、めっちゃ初歩な事?追記。
以下でやると動きました。
re = /aiu/i;
if("AIUEO".match(re)) alert("hit");
if("aiueo".match(re)) alert("hit");
わざわざnew RegExp()しなくてもいいんですね。しかもNN4でも
動いた!
もしかして僕が知らなかっただけで、めっちゃ初歩な事?
744 :
Name_Not_Found :03/10/12 18:28 ID:fCj+kO9U
すいません。noteに書いてCtrl+Cで書き込んだらミスってしまいました。
JavaScriptの正規表現オブジェクトの引用符は非常に複雑 突然出現した / が正規表現オブジェクトの引用符になるかどうかは、 文法解析して、コメントにも除算にならなかったとき、初めて決定される。 たとえば a /= b; // a = a/b が除算でとコメントであって、正規表現ではないことは構文解析しないと 判明しない。 で。 本来の動きがどうとか以前に、正規表現でエスケープ対象の文字列を エスケープしないで使うと不要なバグを引き起こす可能性が高いので やめときなされ。
746 :
Name_Not_Found :03/10/12 19:34 ID:fCj+kO9U
>>745 2chなら絶対
>>743 のミスをぼろくそ言われると思ったのに
ちゃんとした回答有り難うございます。
JavaScriptでは単純に/ が一つだけ出てきて、オペランド
が左側に無い場合は正規表現として取るようですね。
NN4でもちゃんと動いているように見えるから仕様なんで
しょうか?
もちろんこんな書き方は怖くて使う気はありませんが。
で、
>>738 はなんでこんなことが知りたいんだろう?
最近ネタがないから。
748 :
728 :03/10/12 19:51 ID:???
>>745 alert(function(){/ /}.toString());
↓
alert(function(){\/ \/}.toString());
これでいいんですか?なんかSyntax error出るんですけど。。。
おい誰かこのRegexpリテラル知らない奴を黙らせてくれ。
750 :
Name_Not_Found :03/10/12 19:54 ID:hrHGXJAD
別のファイルに記述されている値を取得する方法がわかりません 自分の持っている本にも載ってなくって(´Д`;) 教えてもらえないでしょうか?解説しているサイトがあればそれでもいいです
>>750 同じサーバでないと取れないのはまず理解してる?で、その別ファイル
にはどういう風に値が格納されているのよ。それも自由に決めていいの?
752 :
750 :03/10/12 20:04 ID:hrHGXJAD
>>751 同じサーバーに置くつもりなのでそれは大丈夫です
値は
数値,数値;数値,数値;数値,数値;・・・・
というように格納しようと思ってますが、不都合があるなら変更するつもりです
var a = [数値,数値,..., 数値,数値,..., ... ...,数値]; というふうにして<script src="data.js"></script> で読み込ませれば全部配列aに入った状態になるけどそれでどお。
754 :
Name_Not_Found :03/10/12 20:14 ID:fCj+kO9U
隠しフレーム作ってそれをその取得したいファイルのURL で開いてinnerHTMLで取って加工すれば出来ない? htdocsかpublic_htmlに置いておかないといけないけど。
755 :
728 :03/10/12 20:16 ID:???
756 :
750 :03/10/12 20:16 ID:hrHGXJAD
>>753 レスありがとうございます
その方法なら試してみて、動いたのですが
数値だけを格納したファイルを作りたかったので
他に方法がないかなと思い質問しました
その方法しかないのでしょうか?
757 :
750 :03/10/12 20:18 ID:hrHGXJAD
>>754 すいません、意味が良くわかりません・・・
判りやすく教えてもらえませんか?
>>757 隠しフレーム作ってそれをその取得したいファイルのURL
で開いてinnerHTMLで取って加工すれ
760 :
750 :03/10/12 20:28 ID:hrHGXJAD
>>758 innerHTMLって言うの使ったことないのですが
調べてやってみます(´Д`;)
761 :
Name_Not_Found :03/10/12 20:39 ID:fCj+kO9U
>>760 ファイルをhtmlにしてtextareaとかtype=textとかに入れておけばvalue
で取れます。innerHTMLだと面倒があるかもしれないのでこっちのほうが
いいかも。
>>750 ファイルの内容をJavaScriptの変数として返してくれるCGIをつかう。
<script type="text/javascript" src="***.cgi"></script>
のように。
>>753 のようなJSファイルを自動的に吐き出すような感じ。
761 の方法が一番普通だけど、onloadイベントを拾ったりフレームを作ったりが面倒ならこっちで。
同期的にやるなら<script>、非同期的にやるなら<iframe>
764 :
初心者 :03/10/13 10:18 ID:boSZ547p
ユーザーが最大化ボタンや手動でウィンドウ幅が変えた場合、TABLE
の横幅、縦幅を変化させたいです。
ただし、テーブル内部のROW、COLの幅は変化させたくありません。
このTABLEですが、表のROWタイトル、COLタイトル部は
スクロールせず、データ部分のみスクロールするようになっていま
す。
このTABLEは
http://ptvi.hp.infoseek.co.jp/mi/dhtml_00002.html の[最上部は横スクロールだけ、最左部は縦スクロールだけ]を参考
にしています。
スクロールバーを表のデータ部分に表示しているので、
ウィンドウ全体のスクロールバーを出さないよう、ウィンドウにあ
わせて表のスクロールバーが見える程度の大きさに表のサイズを変え
たいのです。
ただ、表の最上部、最左部のROW,COLサイズは変えない為、ある程度
ウィンドウを小さくすると、ウィンドウ全体のスクロールバーが出て
しまいますが、それはかまいません。
ウィンドウサイズの取得をし、onresizeイベントで表の幅を
ウィンドウ幅×0.7にするようにつくってみましたが、
ウィンドウサイズによっては空白部が大きくなりすぎたりします。
ウィンドウサイズにあわせて段階的にウィンドウ全体に対する表の
サイズの割合を変えていきたいのです
が、何か良い方法はないでしょうか?
すみませんがよろしくお願いします。
セレクトフォームで曲を選んで、決まったら横のokボタンを 押せば曲が流れるようにしたいんですが、どうすればよいでしょう? デフォルトでは再生しないようにして、stopボタンもつけたいです。 HTMLではこんな感じです。 <select name=selectbgm> <option>曲1</option> <option>曲2</option> </select> <input type=button value=ok name=ok> <input type=button value=stop name=stop> お願いします。
766 :
初心者 :03/10/13 13:27 ID:boSZ547p
>764 解決できました。 スミマセン。
こんな感じのソースなのですが、下のFormに"."で区切って文字を入れると順番に表示させて無くなったらメッセージを表示させたいのですがif文が機能しないのです、、、なにか間違っていたらおしえてください <html><head> <script language="JavaScript"><!-- myTime = 0; function CountStart(){ myA = document.F1.INP.value; myB = myA.split("."); myNo = -1; myTim = setInterval("Count()",1000); } function Count(){ myNo = myNo + 1; myCnt = myB[myNo]; document.F1.T1.value = myCnt; if ( myCnt == "undefined" ){clearInterval(myTime);document.F1.T1.value = "もうないよ";} //ここがきのうしないんです。 } // --></script> <META http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>TEST</title></head> <body OnLoad="document.F1.INP.value = 'AAAAA.BBBBB.CCCCC';"> <form name="F1"><input type="text" size="60" name="T1" value=""><br> <textarea name="INP" cols="60" rows="10" wrap=soft></textarea><br></form> <input type="button" value="Test" onClick="CountStart();"></body></html>
>>767 >if ( myCnt == "undefined" )
null, undefined を条件式の値として条件判断すると, bug 発生源になります.
if ( ! myCnt ) と書き換えて試してください.
>>765 そんなの作っても、管理人の自己満足で
使うのは10秒ぐらいだと思うけど。(勘)
どんな曲を鳴らすの?
MIDI?WAV?MP3?
動作させるブラウザは?
IEのみMIDIなら超簡単なんだけど。
<bgsound id="sound" loop="-1">
<script type="text/javascript"><!--
function play(f){ if (!document.all) return; sound.src=f; }
function stop() { sound.src=""; }
//--></script>
<select name=selectbgm">
<option value="hoge.mid">曲1
<option value="abesi.mid">曲2
</select>
<input type="button" value="play" onclick="play(selectbgm.value)">
<input type="button" value="stop" onclick="stop()">
こんな感じ。
>>768 なんか凄く誤解を招く表現なような…。
素直に if ( myNo >= myB.length ) が一番安全な気がする。どうでもいいけど。
771 :
767 :03/10/13 15:47 ID:???
>>768 できました!!!ありがとうございます
しかも即レスで本当に感謝です!
>null, undefined を条件式の値として条件判断すると, bug 発生源になります.
初めて知りました、これから気をつけます。
>>770 う〜ん.
x == null
x == undefineded
x == 'null'
x == 'undefineded'
などとやると,意図した動作をしてくれないと言いたかったんだけど...
773 :
767 :03/10/13 15:56 ID:???
>>770 >素直に if ( myNo >= myB.length ) が一番安全な気がする。
なるほど!そういう考え方もあるんですね
とても参考になります、ありがとうございます。
774 :
728 :03/10/13 15:58 ID:???
>>728 だれかわかりませんか〜?
>>767 myTim = setInterval("Count()",1000);
↓
myTime = setInterval(Count,1000);
もしくは
<script language="JavaScript"><!--
var myTime = 0,myNo = 0;
function CountStart(){
myTime = setInterval("Count(document.F1.INP.value.split('.'))",1000);
}
function Count(myStrs){
if ( myStrs.length > myNo ){document.F1.T1.value = myStrs[myNo++];}
else{clearInterval(myTime);document.F1.T1.value = "もうないよ";} //ここがきのうしないんです。
}
// --></script>
>>768 値の存在チェックに if(!myCnt) は使い物にならない。
値として 0 や空文字列や false が存在している場合と
値が未定義である場合を判別できない。
解っててやるんでないならそれこそバグの元。
>>771 何をチェックしたいのかによって条件式は変わってくる。
「bug発生源になる」というのは知らないまま使うからで、
それはどんな条件式つかう場合でも同じ。気をつけられたし。
>>775 >値として 0 や空文字列
そういう判定をしたければ regular expression を使うべき.
>false が存在している場合
先の例で MyCnt が fulse になることはあり得ない.
null と undefinded を判定しなければならないケースって何?
訂正: fulse -> false
それは質問者にも呼びかけた方がよいね。
fulseってなんですか〜?
****************************** nullにはレスしない 無能厨房固定は完全放置すること。 レスを返すと(=構ってあげると)喜ぶので注意!! ******************************
>>728 Operaのはたしかにヘンな感じがするなあ。
Mozはコメントやリテラルのみのステートメントを破棄している感じか。
仕様的には Function.prototype.toString ( ) は:
> An implementation-dependent representation of the function is returned.
...ということなのでどれが誤りとも断定できないような。
788 :
Name_Not_Found :03/10/13 21:07 ID:2/jX0beA
すいません。教えてください。 name属性の取得がNN7で出来ません。 ソースは以下でテストしました。 -------------------------------------------------- <html><body> <div name="d">a</div> <div name="d">a</div> <div name="d">a</div> <div name="d">a</div> <script> obj = document.getElementsByTagName("div"); for(var i=0; i<obj.length; i++) alert(obj[i].getAttribute("name")); </script> </body></html> -------------------------------------------------- IEではちゃんと d が4回出力されますが、NN7やOpera7では undefined と出てしまうます。NN4ではalertすら出ませんで した。 obj[i].getAttribute("name")とするとNN7では d と表示され ましたが、Opera7では Warning と出てしまいます。 NN4ではやっぱり何も出ません。 恥ずかしながらさっぱり原因が分かりません。 ブラウザごとに処理を分けるのは最終手段ですが、主要ブラウ ザ(!NN4)全てできちんとdと出るような方法はありますでしょう か?
>>788 そりゃ、ありもしない定義もされてない属性使っても動作は不定でしょうに。
id属性ならNN4以外正常に動作すると思うけど・・・
790 :
Name_Not_Found :03/10/13 21:39 ID:2/jX0beA
>>788 サンプルとして載せたソースが間違ってました。
誤:for(var i=0; i<obj.length; i++) alert(obj[i].getAttribute("name"));
正:for(var i=0; i<obj.length; i++) alert(obj[i].name);
でも、そもそもの間違いとしてnameは重複してはいけないんでしたね。いつもid
しか使わないので忘れてました。あれ? いいんだっけな?
>>790 div要素にname属性はありません。
ドキュメントも調べずうろ覚えのままゴミソースを撒いて質問 するのはやめて頂きたい。divにnameがあっていいという根拠が どっかにあるのか。嘘つきサイトにならあるのかな…
793 :
Name_Not_Found :03/10/13 23:05 ID:2/jX0beA
>>792 確かに。気をつけます。
xmlばっかりしてたのでどのタグにどんな属性があるかないか
とかいうことに注意を払うということに疎くなってしまってま
した。初心に戻ります(泣)
ココ見ててたまに思うんだけどさ、 MIDI再生は嫌われるとか、新規ウインドウを勝手に開くなとか そういうのはどうでも良いんじゃない? 実際に質問者がサイトでやろうとしてるんじゃなく、単に勉強で聞いてるのかもしれんし もしやるとしても、そいつのサイト行く事はまず無いだろうしね。
>>794 そうだよね〜。
かってにウィンドウ閉じちゃうとか、かってにプログラムダウンロードさせちゃうとか、
ウィルスながしちゃうとか、そういうのも、単に勉強かもしれないしね〜。
>>794 わからなくもないよ。
でも多分、良し悪しは別として「こうしたい」と思って、
それを実現しようと自分でごにょごにょやって、つまずいて。
で、その過程を晒した上で質問してくるタコなら、
「やめておけ」というかもしれんが、純粋に技術的なアドバイスも
しようってもんだと思うんだよね。
798 :
Name_Not_Found :03/10/14 11:11 ID:wsE/AyTf
>>794 『包丁で人を殺す人がいるから包丁は売っちゃいけない』って
言うのは間違ってないよね。でも合ってない。質問した人が
人を殺す人なのか、料理したい人なのかは分からないから
しょうがないんじゃない。
フォームの中の指定した文字だけ選択させたいのですが、 <form name="F1"> <input type=text readonly name="kudamono" size=30 value="りんご みかん ばなな"></form> <input type="button" value="みかん" onClick="document.F1.kudamono.select();"> 色々調べてselect()で全て選択できる事は分かったのですが、指定した文字だけ選択する方法が分かりません、教えて下さい。 よろしくお願いします
>>798 そうそう、だから「一応こうだからね」と言ってそれでキレたり
言い訳する奴は放置すればいい。技術的に調べたい人はそれなりに
何がやりたいか説明してくるからそれから普通に対話できる。
>>799 IEならTextRangeオブジェクト使えばできると思うよ、さらに調べて
みては。
>>799 Gecko系の場合は、
document.F1.kudamono.setSelectionRange(start,end) あたりでいける。
802 :
799 :03/10/14 15:14 ID:???
803 :
703 :03/10/14 15:43 ID:???
>>706 すいません、それだと、
今の現在時刻を秒の単位でリアルタイム表示するだけですよね・・・
そうでなく、
「●●開始まであと□日□時間□分□秒」という表示をさせたいのですが・・・
function(2003,12,5)のように、年・月・日を引数とするものは多数あるのですが、
自分が実現させたいのは、年・月・日・時(0〜23)を引数として実現させたく思ってます。
でも、どうやって応用させたらいいのかわからないので、教えていただけないでしょうか?
>>803 何でそれができないのか理解に苦しむな。
問題を解くのに必要な知識さえ与えれば、小学生でも余裕。
やる気ないだろ?
>>803 まず、
>>706 のがどんな流れで何をしているコードなのかを解読してみ。
それができたら次は、その年・月・日を引数とするコードを同様に解読汁。
そうすりゃどうやって応用したらいいのか見当ついてくるから。
807 :
706 :03/10/14 17:54 ID:???
>>803 えーと、わかりづらくてスマソ。
setTimeout でループを作って、リアルタイムで書き換える、
といいたかったのです。
--
で、目標時刻 - 現在時刻 = 表示時刻 として、表示させる
文字列は作れるよね?で、表示させる場所を、例えば
<p>表示時刻</p>
とすると、p の チャイルドノードを書き換えてあげればよいです。
p.innnerHTML でもかまわないかもしれません。
--
で、上記が単位ループで行う動作なので、それを関数内に書いて
あげればいいです。
がんがれ。
808 :
Name_Not_Found :03/10/14 18:37 ID:lmdMuU8i
フレームのメニューをアクセスごとに違うページを表示させたいのですが どうすればいいのでしょうか?
810 :
Name_Not_Found :03/10/14 19:00 ID:jkY1WLSZ
>>809 それは以前に見つけました。
なんか警告が出るので嫌なのですが、他に方法はないのでしょうか?
>>808 文章ヘンで何したいかわからん。
メニューのフレームを変えたいのか、メニューからリンクするページなのか。
>>810 jpURL = ["code_right1.html",
"code_right2.html",
"code_right3.html",
"code_right4.html" ];
n = Math.floor(Math.random() * jpURL.length);
document.write('<frameset cols="20%,*">');
document.write('<frame src="code_left.html">');
document.write('<frame src="'+jpURL[n]+'" name="rightFrame">');
document.write('</frameset>');
815 :
Name_Not_Found :03/10/16 01:06 ID:qU/VDJcl
他のウィンドウにあるプルダウンメニューの選択状態を変更したいんですが winName.document.formName.selectName.options[n].selected=true; でIEではウマく行ったんですがネすけだとだめです。 どうしたらよいのでしょう。
816 :
Name_Not_Found :03/10/16 05:09 ID:Mg2aBAnv
シチフ荀ヌ、ケ。」
NN4キマ。ハdocument.layers == ture。ヒ、ヌ・レ。シ・ク、ャ・スシ・ノ、オ、?、ソ、ネ、ュ。「
JavaScript 、ャヘュク、ハセ?ケ遉マ。「
・ウ・ユ・。。シ・爨ミ、キ、ニ。「ture 、ハセ?ケ遉マ
http://home.netscape.co.jp/ 、ヒヘカニウ、キ、隍ヲ、ネサラ、、、゙、ケ。」
、ャ。「・オ・、・ネ、ャ EUC-JP 、ハール、ォ。「Netscape 、ホ・オ・、・ネ、ャハクサイス、ア
、キ、ニ、キ、゙、、、゙、ケ。」
イソ、ォホノ、、ハ�ヒ。、マ、「、熙゙、ケ、ヌ、キ、遉ヲ、ォ。」
>>816 マテ、マハム、・・ア、ノ、筍「
コ」、゙、ヌケケソキ、キ、ハ、ォ、テ、ソ(、ヌ、ュ、ハ、ォ、テ、ソ)ソヘ、ホエトカュ、「
Netscape、ホ・オ・、・ネ、ヒネミ、ケ、タ、ア、ヌケケソキ、オ、サ、・ホ、マフオヘ�、タ、ス」
、荀皃ソハ�、ャ、、、、、ネサラ、ヲ、ャ、ハ。」
818 :
817 :03/10/16 06:17 ID:???
しまった。
>>817 は無視で。以下書き直し。
>>816 話は変わるけど、今まで更新しなかった(できなかった)人の環境を、
Netscapeのサイトに飛ばすだけで更新させるのは無理だろ。
document.layers == ture ←これも暗号なのか?
820 :
マハム :03/10/16 07:09 ID:???
Javascriptのエラーを非表示にしたくて、中に window.onerror = null ; と記述したのですが、効果がありません。 これはなぜなのでしょうか? IE5.0 IE6.0 共に同じです。
>>821 window.onerror = null ; を記述したスクリプトに構文エラーなんかがあると
コード解析に失敗して全体が評価されないから全く効果ないよ。
>>821 window.onerror = function(){return true;};
824 :
Name_Not_Found :03/10/16 10:12 ID:N5tAJjT9
>>821 知ってるかもしれないけどtry〜catchを使えばエラーを出さなくする
ことはできますよ。
>>825 ワロタ。将棋でしょ? ↓これじゃいかんの?
var yoko = "987654321";
var tate = "一二三四五六七八九";
kifu = yoko.charAt(Field_Number % 9) + tate.charAt(Math.floor(Field_Number / 9));
827 :
825 :03/10/16 21:55 ID:???
>>826 さん ありがとうございます。賢いナァ・・・
何故これでOKなのかイマイチ分からないまま使わして頂きますです。
今日は徹夜で勉強しなおしです。(´・ω・`)ショボーン
/* 前回と文字列が同じ場合 "同" にする処理も入れてみました。 */
function Kifu_Syori(){
var yoko = "987654321";
var tate = "一二三四五六七八九";
kifu = yoko.charAt( Field_Number % 9 ) + tate.charAt( Math.floor( Field_Number / 9) );
if (maekifu == kifu) {
maekifu = kifu;
kifu = "同";
} else {
maekifu = kifu;
}
}
828 :
825 :03/10/16 22:20 ID:???
あ、826さんの部分全部を else 内に入れたほうがいいか・・・
831 :
Name_Not_Found :03/10/18 18:32 ID:yt0zmHHM
リンクをクリックしたときリンク先のページに飛んでさらにポップアップでhtmlファイルを表示したいのですが どうすればいいでしょうか? 教えて下さい。お願いします。
>>831 open メソッドを使え。
ただし、そのウザさをきちんと検討してから実装すること。
833 :
Name_Not_Found :03/10/18 20:02 ID:qdEN+gg/
textboxを入力禁止にしたいので、 onFocus = "this.blur();" としました。 でもIEなら大丈夫なんですけどNN4.78だと コピー&ペーストで、値の変更が可能です。 これもできないような(右クリックは禁止にしたくないです。) 方法はありますか?
>>833 〜.visibility = 'hidden'; とか
>>833 そもそもinput type="text" を使わない、
というのはどうでしょう。
837 :
bookmarklet ◆TJ9qoWuqvA :03/10/18 21:09 ID:cwQEA+TX
おまえら、Googleの"次へ"リンクを押さなくていいbookmarkletを 作って下さい。宜しく御願いします。
>>833 textboxを使うのに入力禁止って、意味がわからん。何のために?
839 :
Name_Not_Found :03/10/18 21:29 ID:+o5CxUoR
急遽webの方を手伝うことになってヒィヒィ言いながらやってます。 今やってるのは、テキストボックスに入力された文字をテーブルに 追加するって処理なんですが、追加することはできてもページをリロードすると 元にもどってしまいますよね? リロードしても元に戻らないようテーブルに追加すると同時にhtmlファイルに 上書き保存する方法はないでしょうか? 流れとしては 1.テキストボックスに入力・「追加」ボタン押下 2.テーブルに入力されたデータを追加 3.そのテーブルが書いてあるhtmlファイルに追加されたデータを上書き保存 4.リロード 5.保存されてたhtmlファイルを読み込む?
>>839 表示されているテキストボックスから投げられる値は無視して、
変わりに input type="hidden" に本物を入れておく、
というのでどう?
843 :
839 :03/10/18 22:00 ID:???
>>842 今、製品そのものじゃなくて、お客さんに見せるための
デモを作ってるみたいなんだよね
俺もさっぱり理由がわからないんだけど、サーバにデータを送るわけではなくて
あくまでも全部ローカルで処理する仕様なんですよ
なので、html上書きするか、csvファイルにでも吐き出してリロードの度に
読み込むぐらいしか方法が思いつかないです。
フォーム系要素の属性には確かdisableがあったような気がしたが。
憶測でしゃべんな
disabled ← 過去分詞
847 :
839 :03/10/18 23:21 ID:???
終電までに帰りたかったので、気合入れて調べた結果何とかなりそうです。 FileSystemObjectってのを使うとイケそうな感じ。 ↑こいつでファイルを読み書き用で開いて後はscriptで吐き出し、保存したらいいのかも もし同じようなことで悩む人がいれば参考にしてください。 いろいろアドバイスくれた人 どうもありがとう じゃ、帰ります。
848 :
Name_Not_Found :03/10/18 23:59 ID:cwQEA+TX
840 まじめにやれ
849 :
840 :03/10/19 00:34 ID:???
>>850 フレームを超えることはできないよ。
よーく考えると、わかるでしょう?
だから、この手のヤツはフレームを使わずにやるべし。
cgi や php を使うなり、ssi なんかにすると、
ひとつのファイルを使いまわせるし。
852 :
850 :03/10/19 01:48 ID:???
ありがとうございました。
>>850 フレームが好きな人もいるからねぇ(俺も全画面切り替わらないから結構好き)
自分で作る気があるのなら、上のフレームにメニュー項目をまず置いて
それにonMouseOverの時に下のフレーム内にリンクを表示させるようにすればOKかな?
framespacing="0" や frameborder="0" 等を付けたりすれば境界線も綺麗に無くせるし
854 :
833 :03/10/19 07:45 ID:hbueIJAS
833です。 いろいろ返事ありがとうございます。 Textboxなのに入力不可なのは、あるボタンを押して、 値を自動設定する場合は入力可で、 各自が勝手に値を入れるのは不可という項目なんです。 なので、Textboxであることは必須条件です。 disabledはNN4.78ではだめですよね? どうかコピー&ペーストで別の値を入れないように する方法等教えてください。
readonly
>855 ネスケでって書いてある。
>>833 こんなんどうよ?
onload=function(){
var o={p:''};
o.watch('p',function(p,oldVal,newVal){ return document.f0.e0.value=oldVal; })
var tid=setInterval(function(){o.p=document.f0.e0.value},10)
}
<form name="f0"><input name="e0" type="text"></form>
罵倒は問題が解決してからな。
つか代替手段を提示しない非難や罵倒するのは只の愚か者だ。 アホなコードでも手段提示した奴の方がまだマシ。
861 :
Name_Not_Found :03/10/19 13:21 ID:Lg4n3edD
postで送られてきたデータをJavaScriptで取得する方法は ありますでしょうか? postで受け取る方法がわからないため、現在getでデータの 受け渡しを行っているのですが、非常にurlが長くなってし まい心配です。 apacheが受け取るURLの最大文字数というのがあるかどうか は分かりませんが、いずれ100文字が400、500となった場合 に出来なくなると思い危惧しています。 postで値の受け渡しをする方法はありますでしょうか?
862 :
Name_Not_Found :03/10/19 13:22 ID:Lg4n3edD
書き忘れてました。 ターゲットとなるブラウザはIE6、NN7です。
>>861 データはサーバにpostされるのであって
サーバはpostされたデータをクライアントに送り返さない。
postされたデータをクライアントサイドで受け取るのは無理じゃないかな。
cookieだと結局容量の限界があるから無理か。
フレームにして親フレームに値を保存、とかではダメ?
864 :
Name_Not_Found :03/10/19 14:32 ID:Lg4n3edD
>>863 ありがとうございます。
僕も
>>862 を書いた後よく考えたら理論的に無理だなという
ことに自分で気づいてしまいました(^^)
書き込む前にも結構考えてたんですけど。
そうですよね。postはサーバに標準出力(入力)で送られる
わけで、サーバ側で取得しない限り返さないですよね。
失礼しました。
普通にparent.変数 とかでやりたいと思います。
有り難うございました。
865 :
bookmarklet ◇123 :03/10/19 18:03 ID:NfAeJKTZ
bookmarklet ま〜だ ついでにイメージの方もヨロシコ
ページで音を鳴らそうと 01: <html><head><SCRIPT LANGUAGE="JavaScript"><!-- 02: 03: function sound1(){ 04: document.sound_f1.play(); 05: } 06: 07: function soundplay() { 08: sound1(); 09: } 10: 11: --></head><body> 12: <embed src="sound.wav" autostart=false hidden=true name="sound_f1"></embed> 以下略 のように書いたのですが、 IE5ではエラーも無く正常に音が鳴るのですが IE6では4行目のところで 「オブジェクトでサポートされていないプロパティまたはメソッドです。」 というエラーが出てそこでスクリプトが固まってしまいます。 これはどのように解決すればよいのでしょうか。
867 :
M :03/10/20 00:19 ID:vKpcF41u
A.html内でdocument.openで画面A→Bを表示しています。(画面BもA.html内のスクリプトで生成しています。) 画面BからもA.html内の関数を利用したいのですが、参照できません。 誰か、画面BからAを参照する方法を教えてください。
868 :
M :03/10/20 00:19 ID:vKpcF41u
A.html内でdocument.openで画面A→Bを表示しています。(画面BもA.html内のスクリプトで生成しています。) 画面BからもA.html内の関数を利用したいのですが、参照できません。 誰か、画面BからAを参照する方法を教えてください。
869 :
M :03/10/20 00:20 ID:vKpcF41u
二重書き込みでした・・・すみません・・・。
AとBが並列のフレームを構成しているなら parent.frames['Frame_Name_A'].Function_Name (親フレームの記述は <frame src="A.html" name="Frame_Name_A">) BがAによってwindow.open()で開かれたウィンドウなら window.opener.Function_Name
>>868 document.open() で B を書き出した時点で A のスクリプトは失われる。
A の関数を使いたかったら:
B に A のスクリプトをまんま書き出す。
document.open() をやめて document.body.innerHTML=... 等にする。
あたりじゃないかな。
872 :
初期型 :03/10/20 17:35 ID:rBOOJmN6
途中からすいません。 色々と調べたのですが、もし以前に同じような質問があったらすいません。 IEとネスケで使用出来るページを作製しているのですが、ネスケでの外部ファイルの読み込みがうまく行きません。 ご存知の方教えて下さい。--以下、HTML部分-- <style type="text/css"> .phoneclass { position: relative; } .spacer { color: white; width: 200; } </style> <script language=JavaScript src="address.js"></script> <script language=JavaScript><!-- function updateLayer(object, text) { if(navigator.appName == "Microsoft Internet Explorer"){ document.getElementById ; document.getElementById(object).innerHTML = text; }else if(navigator.appName =="Netscape" && navigator.appVersion.charAt() == 4){ document.layers['object'].document.open(); document.layers['object'].document.write('<div>'); document.layers['object'].document.write(text); document.layers['object'].document.write('</div>'); document.layers['object'].document.close(); }else if(navigator.appName =="Netscape" && navigator.appVersion.charAt() >= 5){ document.getElementById ; document.getElementById(object).innerHTML = text; }} function phoneNumbers() { updateLayer('HTMLadd', CSSadd); updateLayer('HTMLadd2', CSSadd2); } //--> </script></head><body onLoad="phoneNumbers()"><table><tr><td width="50" height="16"> </td><td height="16" colspan="3"><font size="2"> <span id="HTMLadd" class="phoneclass">xxxxxxxxxx</span></font></td></tr></table> ・
873 :
初期型 :03/10/20 17:38 ID:rBOOJmN6
度々すいません。 問題となっているのはネスケの4.7です。
>>873 どこがどう問題なのか分からんが、
ソース自体におかしい個所があると思うが...
document.layers['object'].document.open();
の'object'って何処で定義してるんだ?
document.layers[object].document.open();
なら分かるが。
875 :
初期型 :03/10/21 00:13 ID:q4TBZabI
情報が少なくてすいません。 オブジェクトの定義は外部ファイルで下記のように定義されています。 CSSadd ="XXXXXXXXXXXXXXXXXXXXXX"; CSSadd2 ="XXXXXXXXXXXXXXXXXXXXXX"; Javascriptの定義で <script language=JavaScript src="address.js"></script> っと定義されている部分で読み込みを行っています。 シングルクオーテーションをとっても変化はありませんでした。 何かわかりますでしょうか?
>>875 document.layers['object'] だと 'object' という名前のレイヤを参照することになるぞ。
だから、document.layers[object] じゃないかと
あとNN4でアドレス欄に「javascript:」と打つと、エラーが表示されたりするが。
877 :
ZAN :03/10/21 01:29 ID:yD6Vr7MO
すいません質問です。 クッキーを使い、ちょっとしたメモ帳みたいなものを作ってみようかなと思っているんですけど、 どうしたらいいのでしょうか。 よいアドバイスや、参考になるページを教えてもらえたら光栄です。
>>877 まずはその駄文を読んでくれた人が理解できるような内容に
書き改めましょう
>>877 >クッキーを使い、ちょっとしたメモ帳みたいなものを作ってみようかなと思っているんですけど、
クリエイティブな心を持ってますね、作ろうと思うことはいいことですよ。
>どうしたらいいのでしょうか。
>よいアドバイスや、参考になるページを教えてもらえたら光栄です。
ちょっとは自分で調べたりしましょうね。
880 :
Name_Not_Found :03/10/21 04:38 ID:JuBsJUkO
>>866 </script>が無いからとかではなくて?
>>880 なんでsoundplay()からsound1();を呼んでるんだ?
それにplay(); って何?
>>866 IE6だがぼちぼち動いたよ。略したとこに問題あるんじゃ?
884 :
Name_Not_Found :03/10/21 07:39 ID:e8pp1Kfe
javascriptでsubmitする場合、送り先のページをどのように指定するんでしょうか?
885 :
866 :03/10/21 07:43 ID:JuBsJUkO
全体を最低限の要素で書くと、下のようになるのですが、
やはりIE6では
>>866 と同じエラーになります・・・なぜに・・・
ちなみにIE6のほうは ver 6.0.2800.1106 SP1
です。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<html><head
><SCRIPT LANGUAGE="JavaScript"><!--
function sound1(){
document.sound_f1.play();
}
--></SCRIPT>
</HEAD><BODY>
<embed src="menuon.wav" autostart=false hidden=true name="sound_f1"></embed>
<form name=form1>
<input type="button" name="switch" value="play" onclick="sound1();">
</form>
</body></html>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>885 誤 --></SCRIPT>
正 //--></SCRIPT>
それはともかく、IE5では再生できてIE6はダメというのがわからん。
当方IE5.5だが、ローカルファイルは再生できた。
document.sound_f1.play(); を
document.embeds('sound_f1').play(); にしても結果は同じだろう。
ActiveXのセキュリティホールを埋めるパッチが多数リリースされているので
ActiveX関連の何らかの設定がOFFになっている可能性もあるが如何なものか?
>>875 .phoneclass { position: relative; }
アホなネスケ4でこんなの定義しても無駄よん。
.phoneclass { position: absolute; }
じゃないと認識しまっせんばい。
>>885 <embed>やめて<object>にしる
889 :
初期型 :03/10/21 15:12 ID:q4TBZabI
皆さん色々とありがとうございます。 シングルクオーテーションを取ってみたら読み込みは成功しました。 初歩的なミスですが昨日はキャッシュの情報を見ていたようです。すいません。 ただ、読み込んだ後表示をしません。その代わり手動でウィンドウサイズ変更したら本来の位置に読み込みました。 あと、確かにアホネスケではabsoluteで無ければならないのは解るのですが、変更すると、 今度はそのまま読み込むのですが、読み込んだ情報全てが左上に重なって表示されてしまいます。 本来は位置の指定をすると解決する問題なのですが、複数ページでの使用を目的としている為、指定が出来ません。 ジレンマです。。。。 何か他の方法でも外部ファイルを読み込む設定などはあるのでしょうか。
>>889 書き込んだ後、
window.resizeBy(1, 1);
window.resizeBy(-1, -1);
とかやってた記憶がある
891 :
初期型 :03/10/21 20:25 ID:q4TBZabI
皆さん度々ありがとうございます。
>>890 やはりその方法しかないですか。。。
その他に方法も無いような気がしますので、その方法で対応してみようと思います。
ありがとうございました。
892 :
Name_Not_Found :03/10/21 22:47 ID:QEVNigTF
リンク先をクリックすると新しい画面でリンク先が表示されて 元の画面は閉じるって事はできませんでしょうか?
できる
ウィンドウズのエクスプローラのように+の記号が付いたフォルダ(HP中では題名で、)をクリックすると−になって その中身(文章)が表示されるようなのを作りたいんですが、JavaScriptで可能でしょうか...? 参考にしようと思って探し回ってるんですがこういう形式をとっているHPを見つけられなくって...
ありがとうございます。javascript エクスプローラとか + − とか馬鹿な検索ワードでやってました... 助かりました!!
897 :
Name_Not_Found :03/10/22 02:21 ID:FP+GWtN9
・当方の環境 Win Me + IE6 ・画面を下にスクロールした時にサイトのメニューが画面内から消えないよう一緒にスクロールさせたい ・Win Me + IE6では今のところキレイに見えてますがMac + IEだとメニューが左上部に固定される この状況を打開したいのですがMacでの位置指定が上手くいきません *外部から下記のスクリプトを読み込んで function movemenu(){ document.all.menu.style.left = document.body.scrollLeft + document.body.clientWidth/700; document.all.menu.style.top = document.body.scrollTop + document.body.clientHeight/100; setTimeout("movemenu()",10); } *html内の関連部分では * <body onLoad="movemenu()"> *2 <td rowspan="5" class="menu0" valign="top" id="menu" style="position:relative"> という風に書いてます。 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄| | トップロゴ | | |_________| |テーブルで | | *2 |ココの*2の<td>の中のメニューを | | |スクロールさせたいんです | | | | 日記など | | | |← →| |← 520px → |160px | | | | | | | |________|___|
898 :
897 :03/10/22 02:23 ID:???
うわ・・・ずれまくってる・・・ すみません。 テーブルの左部分は上下に2枠 右部分は縦長の1枠という形です。 わかりにくい説明ですみません
900 :
Name_Not_Found :03/10/22 09:28 ID:rgd1zGp8
表示されている文字列を変えるには、どんなソースをかけばよいでしょうか。
>>897 スクロールというか追従ってことかな?
フレームで切れば簡単なんだけど、そうしたくないんだろうな・・・
>>897 確かマクの場合は
styleでabsolute,left,top,width,heightなど指定しないと
おかしくなったような気が...
904 :
900 :03/10/22 11:06 ID:rgd1zGp8
>>901 innerHTMLで文字列を書き込むことは出来ましたが
文字列を変えるのではなくどんどん追加されてしまいます。
以前の文字列を空欄にして書き込むにはどうすればよいでしょうか?
>>904 もうちょっと検索すれば追加されないサンプルも腐るほど転がってる。
尤もスクリプトの基礎を学べばすぐに解ることだが。
906 :
じょじょ :03/10/22 11:41 ID:RpIAiooj
javascript:(opener=close)()ってどうゆう原理ですか? よろしくお願いします。
ご指摘ありがとうございます。
>>886 ActiveXに関する設定は、問題なく動作する側のIE5となんら相違点が見つかりませんでした。
>>888 objectですか、うーん。
問題のスクリプトですが
なぜかwavファイルではエラーになるのにmp3だと全く問題が無くなりました。
根本原因が未だ不明なので釈然としませんが、一応解決したことにします。
ありがとうございました。
サーバーにアップロードして表示したらmp3ファイルの読み込みに失敗する・・・_| ̄|○モウダメポ ローカルだと平気なのにぃ!
アップロードに失敗しているのか、もしくは、パスが違う。
一定間隔の画像スライドショーってのはよくありますよね。 例えば5枚画像を切り替えるとして、 一つずつの画像の切り替える間隔を指定させることはできますか? ようするに3枚目と5枚目は少し長く表示させておきたいとか なんですが・・・・ よろしくお願いしますー。
>>907 IEの問題ではなくMediaPlayerの問題なのでは。
>>910 できる。
で、君は一定間隔のスライドショーなら作れるのか?
それが出来るなら後は簡単だろう?
>>909 どうやら鯖がmp3ファイルへのアクセスを拒否する設定にしてる模様・・・ショボンヌ
914 :
897 :03/10/22 15:26 ID:???
>902 追従って呼ぶんですね^^; そうなんですよ、個人的に嫌いなもんだからフレームはしたくなくて わがままでスマソ >903 absolute,left,top,width,heightはJavaScriptの中に書き込むんですか? その場合の記述方法ってどうなるんでつか? そのスクリプトはただ単にコピペしてきて使ってるもんで、 勉強しながら「この記述はこういう事を表す」とかはだいたい理解できてきたんですけど 自分でイジるとなるとどこにどう記述を追加してよいやらで・・・
915 :
Name_Not_Found :03/10/22 17:55 ID:4yaMvd++
ひとつのselectタグで2つの変数をCGIに渡したいのですが、 どうすればいいのでしょうか? もし適当なサンプルがあったらそれも教えてください。 (googleでの検索方法が分からない・・・。)
>>915 JavaScript はどの程度まで理解しているのかな ?
コピペで使う程度にしかみえないけれど...
これによって回答の仕方が変わるのよ.
917 :
915 :03/10/22 18:11 ID:4yaMvd++
どうもです。 JAVAに関しては初心者レベルですが、よくサンプルを改造して利用していました。 selectedIndex?かなんかで上から何番目が選ばれているかを判定してもうひとつの変数に 値を渡すのはだいたい理解しています。
>>915 <form onsubmit="this.elements.2個めの変数名.value=2個めの変数値">
<input type=hidden name="2個めの変数名">
大雑把に書くとこんな流れかと。
920 :
Name_Not_Found :03/10/22 19:00 ID:DV3mHilr
ボタンを押すと指定した文字がコピーできる方法を探してるのですがJavaScriptで出来るのでしょうか?
921 :
915 :03/10/22 19:06 ID:4yaMvd++
どうもです。 formタグの中もそんな仕掛けが出来るのですか・・・。 実は、よくあるケースだと思ってどこかにサンプルでもと甘い期待をしていましたが、 時間をかけて自分で研究しなくてはならないみたいですね。
>>920 >ボタンを押すと
<input type="button" onClick="f()">
>指定した文字がコピーできる方法
どこへコピー ???
JavaScript で大切なのは object !
これが明確でないと何もできないのよ.
923 :
Name_Not_Found :03/10/22 19:34 ID:ICj5+Fc2
>>922 tp://www.bh.wakwak.com/~studio-n/project_mx/mx_aa/wpnp.html
これのことかと。
>>923 UA を選ぶ script ...
M$ も罪な事をしてくれたものです.
925 :
Name_Not_Found :03/10/22 20:57 ID:f/xOQgDW
ちょっとスレが違うかもしれないけど… サンプルとか参考書を参考に勉強してるんだけど、 これって上達して一からかけるようになった場合でも、 自分で使うのにはどの程度コードが同じならいけないんだろう。著作権とか。 これをやるにはこういう方法、ってやり方を、 そのコードを見ながら覚えていくから、多分似てくるんだろうから、 或程度自分なりに改変するところがないとだめってことだよね? それとも勉強法間違ってますか?
>>925 著作権を行使してくるサンプルというのは聞いたことがないのだが
使っていいかはそのサンプルを書いた人が決めることメールでもすれ
927 :
Name_Not_Found :03/10/22 21:48 ID:h0M1Ea++
メインのページでメニューバーとか出さないようにするには どうやったらいいのかさっぱりわかりません 子ウィンドウはいろいろ書いてあるんですけど トップページのウィンドウのメニューバーとかの設定はどうやってやるんですか
929 :
Name_Not_Found :03/10/22 22:19 ID:h0M1Ea++
window.openで開いた画面の
メニューバーは簡単に消せるんですけど
例えばトップページなんかだと、
openじゃなくてself使えばいいんですかね?
なかなかうまくいかなくて
ところで
>>928 様のご意見なんですが
知り合いの依頼で作っているので、
当人の想うがままに作ってあげたいとw
漏れなら「くだらん機能付けない方がいい」って言うな。 知り合いなら尚更。
>>929 >self使えばいいんですかね?
frame などを使わない時は self その他の window 指定は省略が可能.
しかし, 次の記述に注意:
<!--quote-->
menubar.visible (N4) :
menubar が表示されているかどうかを示す真偽値です。
参照のみで、書き込みによる変更はできません。
<!--end_quote-->
どうやら, 無理な相談のようですね.
>>925 わかりました。考えすぎかな…?
そのままコピって使うんでなければ構造が多少似てても問題ないか。
どうもです。
935 :
Name_Not_Found :03/10/22 22:59 ID:h0M1Ea++
ありがとうございました 何らかのトップページを設けて メニューバー無しのページにとぶようにしたいと思います ありがとうございました
トップでメニューバー消すサイトなんか嫌がらせにしか見えんよ
TOPで消さなくても、TOPから開かれるwindowに全コンテンツ置いてある ミュージシャンのサイトとか多いよね。(その新規windowがmenubarなし) んで俺は別に悪いとは思わないな。(ウザイ場合もあるが、駄目とは思わない) だって、そんなの勝手じゃん? 嫌ならJavaScriptをOFFにすればイイだけだし
938 :
Name_Not_Found :03/10/23 14:21 ID:9gjxMnk5
質問です。 よくページ上にレイヤーガ動いて出てきて そのレイヤーにFlashアニメが透明背景で表示(対外はCloseボタンもいっしょについてますが) 終わると消えるってのがありますよね?あれはどうやって やってるんでしょうか?どこかにソースがあればお願いします。
940 :
Name_Not_Found :03/10/23 19:26 ID:8quC6yy2
ウィンドウサイズを横810、縦を画面一杯にしようとして window.moveTo(0,0); window.moveTo(0,0); if(screen.availWidth<810){ window.resizeTo(screen.availWidth,screen.availHeight); }else{ window.resizeTo(810,screen.availHeight); } としたのですが、タスクバーを画面の上部に表示している場合 ブラウザのウィンドウがタスクバーの裏に隠れてしまいます。 タスクバーが画面の上下どちらにあってもうまく表示できる方法を おながいします。 環境はWindows、IE5以上で動けばOKです。
>>940 ありません。あおりでなく。残念。
あと、ウィンドウのサイズについてのイニシアティブはユーザに
あるべきだから、その手のユーザビリティを奪うような動作仕様については
なんでそうしたいのか、を説明しないとここではなかなか教えてもらえないかも。
942 :
Name_Not_Found :03/10/23 20:01 ID:8quC6yy2
>>941 レスありがとうございます。やはり無理でしか……。
あと、
>あと、ウィンドウのサイズについてのイニシアティブはユーザに
>あるべきだから、
ですが、クローズドな環境で使うかなり作り込んだ入力フォームで、
ユーザ側から
>>940 のような要望がありますた。
>>942 IE限定なら、ある領域が実際に画面に表示されているか調べる方法があるから、
タスクバーの下になっているか調べることができるよ。
function checkviewed(x,y,w,h){ if(!window.eye){ window.eye=document.createElement('span'); eye.style.position='absolute'; eye.onfilterchange=eye_onfilterchange; document.body.appendChild(eye); } eye.hTimer=setTimeout('callback_checkviewed(false)',10); with(eye.style){ posLeft=x; posTop=y; posWidth=(w>0)?w:1; posHeight=(h>0)?h:1; filter='alpha'; } } function eye_onfilterchange(){ clearTimeout(eye.hTimer); callback_checkviewed(true); } checkviewed(0,0);//座標(0,0)が表示されているか問い合わせる function callback_checkviewed(viewed){//ここに返事が返ってくる if(viewed){ alert('表示されている'); }else{ alert('表示されていない'); } }
945 :
初心者 :03/10/23 21:56 ID:EY3pgGwZ
targetを新しいwindowにしてsubmitしつつ、window.openで できるようなサイズ指定とかをしたいんですけど、そういうのって できますか?
>>945 無理しないでやりたいことをわかる日本語で書け
947 :
942 :03/10/23 22:21 ID:8quC6yy2
>>943 ,944
ありがとうございます。
早速試してみましたが、
(おそらくタスクバーに隠れているのがウィンドウのタイトルバー部分のため?)
タスクバーを上下どちらにしても「表示されている」が返ってきてしまいました。
しからばとscreen.Heightとscreen.availHeightの差の分ウィンドウを下にずらして
checkviewed(0,screen.Height);
とか
checkviewed(0,screen.availHeight);
とか
checkviewed(0,document.body.clientHeight);
とかしてみましたが、今度はいずれも「表示されていない」になってしまいました……。
>>947 出来ようが出来まいが実装はしないよね?
次スレのテンプレ、今と同じでよいよね?作成は975超えたらね?
950 :
942,947 :03/10/23 22:42 ID:8quC6yy2
>>948 (個人的な好みは別として)
出来るのであれば実装しようと思っているのですが、
やはりまずいですか?
>>948 イントラ限定のwebアプリの画面とかだったら、
場合によってはありかもしれないと思うよ、漏れは。
状況はどうであれウィンドウサイズの変更はウザがられる。 大きいなら特に。
Mac には AppleScript がある. 僕は, これで自分の環境をコントロールしている. Windows にも似たようなものはないの ?
958 :
945 :03/10/24 09:34 ID:1/9H5GVQ
>>946 まず、submitのtargetを新しいwindowにするのは、こんな感じで
いいですか?
----------------------------------
document.myform.target="_blank";
document.myform.submit();
----------------------------------
その際開くwindowのサイズを指定したり、ステータスバーを消したりして
開きたいんです。
>>958 そうじゃなく、まずwindow.open(...)で新しい窓を開き(このとき
サイズやステータスバーなどの指定ができる)、そのあとで
フォームのtargetにその窓の名前を指定してsubmit()するの。
>>958 ステータスバーを消すことについて、
納得の逝く理由を(ry
961 :
958 :03/10/24 16:21 ID:1/9H5GVQ
>>959 ありがとうございます。早速やってみます。
>>960 ステータスバーっていうか、ツールバーですかね?
ようは、見た目の問題だけなんですが・・・。
962 :
958 :03/10/24 16:46 ID:8k947TmT
重ねて質問すいません。 その間(というか、子を閉じるまで)、 親のwindowをいじれないような制御ってできますか?
>>962 IEだけなら、 showModalDialog
modalDialog にフォームの送信は無理か。
>>964 それセキュリティホールあったべ。クッキーの。
今はどうなってるんじゃろ?
遊び方:カーソル左右で移動、リターンキーで回転 プレイ環境:おそらく IE 5.01 以上? <body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t %7]-4,0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;) Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;X[i]=Z[i]|=++i%A<2|i>228)i%A?0:S+="<br>",S+=X [i]?"■":"_";document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y()</script>
で、7行スレのやつコピペして何?
>969 オマエモナー
>>967 これって7行スレのそのままじゃないのか?
だとしたら、このスレにもかな〜り昔に張られていたし、
それに出所も書かずにコピペするのはオススメしない。
>>971 Has I ney oh!
Honing a I it teit tend akara, sir.
976 :
Name_Not_Found :03/10/25 17:03 ID:LfP0+2le
下のはFlashだよ>十字
斜め線はかなり難しくならないか
かなりどころじゃないな。やめたほうが利口。
画像なり何なりの幅を横に引き伸ばすのとはわけが違うもんな
自分が斜めになりゃいいだろうが
斜めを簡単に実現できているのはFlashだからっていう意味じゃないのか?
CSSは簡単に言えば 四角形をいくつも作る形でデザインを作っているんだからな。
おつ。 早速埋め立てよう。
1000ゲト!!
梅
梅
梅
楳
楳
楳
楳
楳
楳
楳
楳
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。