1 :
(・∀・)チンポー!! :
03/01/05 02:37 ID:u3FEfKN7 ━━━━━JavaScript質問スレ道場訓━━━━━ 一、礼節を重んじ常に努力精進すること 一、ブラクラに打ち勝つ精神力を持つこと 一、心身の優れたJavaScriptを学ぶこと 一、雑草の如く生涯JavaScriptを貫くこと 一、感謝と反省を忘れないこと 以上 ━━━━━━━━━━━━━━━━━━━━━━ このスレに書き込むことが許されるものは以下のとおり ・スクリプトを組むための最低限のHTMLを理解する者 ・スクリプトを組むための最低限のCSSを理解する者 ・JavaScriptとJavaの違いを理解する者 ・ユーザーに迷惑となるスクリプトを書かない者 ・過去ログや関連資料を読むことができる者 ・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
立て直しだろ フォローして欲しいならそう言ってから立てろよ
【質問を書く上で】 弱気な表現は避ける 弁解じみた表現は良くない。また、まわりくどい。 ex) 超初心者で何もわかりませんが…… <そんなことより自分で試してみた記述を書いてくれた方が答えやすい> 情報を小出しにしない 読み手は馬鹿にされた気分になる。 無駄な倒置も不要だ。 使用したブラウザ、バージョン、OSくらい書こう。 感情的にならない 何の説明なく決め付ける文はよい印象を与えない。 また態度の大きい人は嫌われる。 ex) 答えられねぇんなら黙ってろ!!! <お前だけだよ> 表記ミスに注意 内容がどんなにすばらしくても 文字使いにミスがあると誤解を招く。 曖昧文は書かない いくつにも解釈できる文章は絶対に書かない。 ex) ここではきものをぬいでください。 「」など無駄な強調は避ける 読みにくい。♪や顔文字も同様である。
連想配列って遅いですか? 例えば、適当な構造体(ていうかクラス)を作って それをArrayに入れて、自分でキーをサーチするより キーを添え字にした連想配列を作った方がやっぱり速い? このあたり、自分で計測してみたんだけどどういう条件だと どっちが速いのか良く分からなくなってきたですよ・・・
連想配列の方がいいよ。 速いかは実装次第だけど(本当にハッシュなら明らかに速い)、 線形検索より遅くなることはないでしょ。
3,4種類のキーでソートやサーチをすることがあるなら IE限定ならActiveXObjectのScripting.Dictionaryを使うのも手かな?
連想配列ってlengthが使えないみたいだけど 全ての要素について一意の処理するときはどうしてる? for in ?
lengthが取れたところで使いようがないけどなw hash.keys()でも取れない限りは 使いにくい連想配列だ
うぉぉ 連想配列って二次元に出来ないの?
keyが取れないもんなw
17 :
15 :03/01/05 05:31 ID:???
すまん出来た。 hoge["piyo"]["huga"] = なんとか; って一気にやりたいのにその直前に if( hoge["piyo"]==null )hoge["piyo"]=new Object(); って入れなきゃならないのはちょいと不便だなぁ。 あとでキーを入れて取り出すときも 一次配列がnullかどうか検査が必要ってのは なんだかカッコ悪いなぁ。
18 :
16 :03/01/05 05:35 ID:???
そういう意味か。勘違い失礼。
a = new Nantoka(); a = new Kantoka(); と書いたとき、最初のオブジェクトNantokaへの参照は Kantokaをaに入れた時点でなくなるわけだけど このときNantokaは消えてなくなりますか? ガーベージコレクションされる?
変数が参照を失うたびにガーベージコレクトしてたら効率悪いだろ 後でまとめてじゃね 正確なタイミングは知らん
>>20 (゚∀゚)サンクスコ
まーいつかはガベコレされるってことですね。
22 :
Name_Not_Found :03/01/05 09:53 ID:mcIudsQU
>>17 一番簡単なのは文字列に表れない文字を1つ選んで
hoge["piyo" + "@" + "hage"] = なんとか;
だと思うけど、それじゃ不満かねえ?
>>22 結局その方式にした。
ゆくゆくはhoge["piyo"]で一覧を得たりとかも考えてたんだけど
それは別の方法で実現することにしました
FORMタグで、SUBMITを押されたときにジャンプせずに 各INPUTタグの情報を取得して処理したいんだけど 本来 ?hoge=○○&piyo=△△ という形で手に入るはずの情報を 先取りしたいときはどうしたらいいですかね?
>>24 普通に各フォームコントロールにアクセスすればいいと思うが。
>>25 やっぱりそれしかない?
radioとかだと面倒くさいんだよね
まあいいや
Filesコレクションから特定の拡張子のファイルだけを スパッと取り出したいんだけど どうしたらいいですかね? やっぱひとつひとつNameから判定するしかない?
JavaScriptでお勧めの書籍ってなんでしょうか?
とほほ本に決まってろ
33 :
Name_Not_Found :03/01/05 22:42 ID:oPRTjO+r
マウスカーソル位置にあるオブジェクトのIDの取得ってできるのでしょうか?
mouseoverイベントを使わないで、か・・・
いえ、使って。
とほほ…
function Over(){ sElem = event.srcElement; }
やっと本来の糞スレらしさが出てきたな。 今まではマジでscript書いてやっちゃってる香具師が居たもんな。
バカ?
<!DOCTYPE "面白い質問あれば書く気あるよ。">
最終更新日を書くのが面倒なので document.write(document.lastModified); を入れてたんだけど、geocitiesに置くと どうもうまく動かない。 ていうかなぜ現在時刻? ホワーイ
>>42 既出。1970年1月1日になる実装もある。
HTTPヘッダのLast-Modifiedを参照しているだけだから
このヘッダを吐かないサーバ上ではうまく動くわけがない。
44 :
42 :03/01/06 17:32 ID:???
45 :
Name_Not_Found :03/01/06 23:43 ID:SFYhXJYP
初歩的な質問ですいませんが HTMLを開くと同じにHTML内にあるオブジェクトにフォーカスを 写す方法はどうすれば良いのでしょうか 宜しく御願いします
> 初歩的な質問ですいませんが そろそろだな…
いや別に、
>>1 を読んでくれと言えばいいんじゃないの。
移す対象はフォームの入力欄とか?だったら
<body onload="document.forms.フォーム名.elements.部品名.focus()">
だったかな。
48 :
Name_Not_Found :03/01/07 14:49 ID:dA9ur/cq
他のページからnantoka.html?denpaという風に飛んで ?以下のidを持つものを表示させたいのですが、 a = document.URL; x = a.indexOf("?"); y = a.length; a = a.slice(x+1,y); function xxx() { if (document.getElementById) { document.getElementById(a).style.visibility = "visible"; } } で nantoka.htmlには<body onload="xxx()">という風に記述したんですけど、 netscape7.01ではちゃんと思ったとおりに動作するのですが internet explorer6.0ではエラー(オブジェクトがありません)といわれてしまいます。 どこがいけないのでしょうか、ご教授頂きたく存じます。
>>48 getElementByIdなんてないもん
50 :
48 :03/01/07 15:13 ID:???
>>49 え、そうなんですか。
ひょっとしてとてつもなくハズかしい質問をしてしまったのかも…
ありがとうございました、逝ってきます。。。
>>48-50 IE6にdocument.getElementById()はあるよ。だいたいそれがない
場合はifでよけるから「オブジェクトがありません」エラーには
ならないだろ。どこでエラー出てるかもっと探求してみたら。
52 :
Name_Not_Found :03/01/07 16:19 ID:ptxYwyvV
一度のクリックで複数の新しいウィンドウを出す方法を 教えて頂けませんでしょうか?
>>52 アダルトサイトに行けば?
実際のところ、さまざまな視覚効果を勉強するには
アダルトサイトが一番の教科書なのだ
54 :
Name_Not_Found :03/01/07 16:24 ID:ptxYwyvV
>>53 成る程!!!!!
わかりました
サンクスコ
でも 怖いわ
55 :
bloom :03/01/07 16:28 ID:g9Yop1iD
>>52-54 それくらい教えてやんなよ…
(1)適当なところ(</head>の前あたり)に次のを入れる。
<script type="text/javascript">
function openmany() {
w1 = window.open('URL1');
w2 = window.open('URL2');
...
return undefined; // 一応念のため
}
</script>
(2) リンクは次のような形に
<a href="javascript:openmany()">たくさん開く</a>
フォローするわけじゃないが、
>>53 はイジワルで言ってるのではないと思われ。
エロサイトの粘着スクリプトは見ておいて損はないよ。
58 :
57追加 :03/01/07 17:58 ID:???
決して有用とも言えんがな。
文字を&キーワード;形式(&#番号;形式じゃなくて)に変換する方法はありますか?
それを2chのスレタイか名前欄に使いたいと?
>>56 > return undefined; // 一応念のため
undefinedが未定義値で定義済みなのはNN4/IE5.5以降。
それ以前の実装では「undefinedは宣言されていません」とか言われると思うぞ。
63 :
Name_Not_Found :03/01/07 22:12 ID:e0ERmMFb
エキサイト翻訳もJSつかってるよね? あれはどーやってんだろ? なんとなくこーやってる、こんなの使ってる、程度でいいから教えて。
>>63 ソースを見たほうが早いと思うよ・・・
こんなの使ってる ってのがまさに一目瞭然なんだが。
ソースの見方って知ってる?
>>64 そりゃそーだ。気づかんかった。
まぁありがとー
>>63 p://www.excite.co.jp/world/text/
であると仮定してみる。
で、どの部分を質問しているんだ?
「翻訳」の部分?藁
/* クリックすると文字が消える
外出 */
flag=0;
function doclear(target)
{
if (target=='before') {
if (flag==0) {
flag=1;
document.world.before.value = "";
}
} else {
document.world.before.value = "";
return false;
}
}
67 :
66 :03/01/07 22:29 ID:???
暇だったんで這ってみたら・・・打つ。 やぱり面倒なことはしちゃだめだ
flag=true; function doclear(){ if(flag){flag=false;document.world.before.value=""} }
<textarea onclick="value='',onclick=null">
71 :
Name_Not_Found :03/01/08 00:05 ID:MLMsT5e4
JavaScriptがすごく長く、かつ、長い時間そのページのまま 何らかの処理をすることがわかっているとき、 ページを表示したときに、処理開始前に あらかじめJavaScript部分をコンパイルしておき 実行速度を上げる方法があると昔聞いたのですが どうやってやるんでしたっけ?
ユーザが明示的にコンパイルしなくてすむだけで 実際には実行時にコンパイルして実行していたんですね。 動的にscriptを追加すると、その都度コンパイルされると。 となると、あらかじめ外部に出しておいてjscかけるとか? でもそれって普通の.jsのような呼び出しが可能なのかなぁ
よく使う画像のソースを書くのが面倒なので、自分用に画像を押すと htmlソースがフォームに表示されるのをつくりたいのですが (つまり、ハートの画像を押すと、<img src="./heart.png">とフォームに表示されるような) 上手くいきません。 addTextを使いつくったのですが、ダブルクォートの部分で変になってしまいます。 なにか対応策はないでしょうか?
age忘れました。どうかお願いします。
"<img src=\"./heart.png\">"
>>76 迅速なレスありがとうございます。
早速ためさせていただきましたが、こちらの環境では上手くいきませんでした。
画像の横に
')" />
上のような文字が出てきてしまします。
addTextってなに? 関数なら、そのコードを載せなきゃダメでしょ。
メモ帳によく使うダグ集!みたいなの作ればいいじゃん。
>>78 すいません。じぶんで買った本にaddText関数と書いてあるもので
関数だと思うのですが
>>79 そういわず、お願いします。
>そのコードを載せなきゃダメでしょ
本当にすいません。 <script language="javascript"> <!-- function addText(position, addtext) { if(position == "before"){ res = addtext + document.myForm.myText.value;} else{ res = document.myForm.myText.value + addtext;} document.myForm.myText.value = res; } //--> </script> </head> <body> <form name="myForm"> <input type="text" name="myText" size="100" /><br /> <img src="./haiga/man1.gif" onclick="addText('after','<img src=./haert.png>')" /> </form> </body> 実はjavascriptのことよくわからず本に書いてあることをうつしてます。
えーと、<img src=./heart.png>の部分を <img src="./heart.png">にすると上手くいかなくなるということです。
addTextを変更するのはイヤ? 変更(1) function addText(position, addtext) { addtext = "<ims src=\"" + addtext + "\">"; // 追加 変更(2) onclick="addText('after','./haert.png')"
>>84 ありがとうございます。まったく全然問題ないです。
前述通り、まだよくわかっておらず、本に書いてある、自分がやりたいことに近いコードを
書いているだけですので……
いつかは思い通りにやりたいです。
今から試してきます。ありがとうございます。
>>84 上手くいきました。
84さん、皆さん、ありがとうございました。
変数に長〜いテキストを持たせたいんですが、 変数が保持できる限界って何バイトまでいけますか?
>>87 自分のマシンで実験してみれば?
for (var a='あ',i=0;i<20;i++) a += a;
alert(a.length);
うちは i<27 まで行けた(RAM 448MB)。マシンスペック次第だと思う。
90 :
Name_Not_Found :03/01/09 13:55 ID:E/TCiyez
>>87-89 文字列を加工するのなら適当に分けて配列に入れた方が無難だけどね。
ま、言語仕様上は無制限ってこった。
92 :
Name_Not_Found :03/01/10 00:41 ID:JTLPCdxi
93 :
Name_Not_Found :03/01/10 10:19 ID:4M+9OV7A
別に気に入ったのは構わないけどJavaScript言語仕様とか標準オブジェクト とかは一応別途勉強しておく方がいいと思うけどな。MSのはJScriptだから いろいろ違うんだけどどこが違うかあそこだけ見ても分からないからね。
94 :
Name_Not_Found :03/01/10 12:05 ID:4aTBRT4G
すいません。 配布されているJavaScriptを使おうと思っています。 その際、ソースには、 <HEAD>内に、 1)<META HTTP-EQUIV="CONTENT-SCRIPT-TYPE" CONTENT="text/javascript"> スクリプト直前に 2)<Script Language="JavaScript"> の両方を挿入するべきですか? あと、 3)<script type="text/javascript"> というのもあるようなんですが、使い分けが今ひとつよくわかりません。 ちなみに自分のページは、4.01 Transitionalで記述しています。
95 :
94 :03/01/10 12:23 ID:???
ああ、すみません。訂正です。 <HEAD>内に、 1)<META HTTP-EQUIV="CONTENT-SCRIPT-TYPE" CONTENT="text/javascript"> を記入して、 2)<Script Language="JavaScript"> 以下スクリプト と記述していけばいいんですか? 2)の代わりに 3)<script type="text/javascript"> 以下スクリプト としているところもあるようなんですが?
http://www.zdnet.co.jp/help/tips/html/h0045.html このページに書いてあるプルダウンメニューを2分割してるフレームの片方に
付けたのですが、メニューから飛びたいページを選ぶとプルダウンメニューが
設置してあるフレームの中に表示されてしまいます。これをフレーム関係なしで
ブラウザ全体に表示させるにはどうすれば良いのでしょうか?
とりあず、<form>や<select>や<option>のところに、target="_top"を入れてみて
やったのですが、やはり片方のフレームの中に表示されてしまいました。
上のページに書いてあるのは以下の通りです。
>>94 HTML4.01 なら type="text/javascript" を使う
onload, onclick などタグにコードを埋め込む場合は
<meta http-equiv="Content-Script-Type" content="..."> も指定する
>>96 当たり前
>location=(document.link.list.options
window.top.フレーム名.location=(document.link.list.options
99 :
98 :03/01/10 13:47 ID:???
訂正 window.top.location=(document.link.list.options
>>94 HTML4 Transitionalならlanguage属性でも可。HTML的には非推奨だが。
"JavaScript1.1" のようにバージョン指定が必要な場合は
type属性ではこれに該当する有効な表記法がない。
# JavaScriptに該当するMIME型自体が未登録だし。
履歴の、現在から2つ前のページのURLが欲しいんですが、できますでしょうか?
セキュリティ上できません。 どうしても必要なら、その2つ前のページでCookieでも食わせましょ。
できたらセキュリティホールですが、何か?
105 :
94 :03/01/10 19:59 ID:???
>97,>100 ありがとうございました。ものすごくすっきりしました。
>DOM2 邦訳と実装はいつだ(゚Д゚)
>>106 いーかげんな邦訳でよければ連休明けくらいにうpするかも。
実装のほうを…
>>107 それは期待したい。
しかしだ。IE7は載せるのか?
Mozはボチボチ実装していくだろうけど、IEがついてこないと、
事実上、製作者がローカルで遊ぶ以外には使えない。
XMLのDOMと互換なしか。いい加減レガシーなHTMLなんぞ滅べばいいのに。
質問です。 クッキーから読みこんで、それをフォームのvalueにいれたいのですが… 1週間以上検索し続けて悩み続けて、ようやくクッキーを取得することは出来ました。 しかし、どうやってもフォームに渡すことができません。 少し調べてこんな感じかと思うのですが、、、 何も起こりません。 document.form.name.value = cook; ちなみに、cook変数にクッキーの値が入ってます。。 nameは、<input type="text" name="name">ってことです。 よろしくおねがいします。
>>111 そういう省略ぽいことで悩むより標準通りに
「document.forms.フォーム名.elements.部品名.value = 値;」
と書いたらどうかね。
113 :
Name_Not_Found :03/01/11 19:01 ID:jZHiTAoS
Java(Flame)でかいたプログラムからJavaScriptにアクセスしたいんですけど、 どのようにすればできますか?
114 :
Name_Not_Found :03/01/11 19:15 ID:I/SfFGJ3
ビルダーの パラメータ 入れ替えられる画像のNAME属性の値 って何を入れればよいのでしょうか? おしえて下さい。
116 :
Name_Not_Found :03/01/11 21:14 ID:ZE8/hQb+
フォームの select が2つあって、一方を変更すると、それに応じてもう一方の 内容が変わるようなスクリプトを作ろうと思います。 1つ目のselectがカテゴリー、2つめのselectがサブカテゴリーといった感じです。 たまにみかけるので参考にして作ろうと思うのですが、いざ探すと見つかりません。 どっかでそのような処理をしているサイトとかありますか?
>>116 このスレのvol. 7の444にあるよ! そういう質問はこのスレでは既に
出尽くしていると思った方がいい。だから全部見ればいいだけ。
>>113 そのJavaで書いたプログラムはブラウザと関係ないの?それとも
アプレットなの?もしブラウザと関係ないんならJavaScript処理系
を持って来て一緒に組まないとそもそもJavaScriptなんて入ってないよ。
119 :
116 :03/01/11 22:06 ID:???
120 :
Name_Not_Found :03/01/11 23:41 ID:DOM0wsGu
IDがDOMなので記念書きこ
おお! でも残念ながらDOM0なのね〜
他のサイトのフレーム内に自分のサイトが表示されてしまう(フレーム内リンク)を防ぐ為に、 if (self != top){ top.location.href = self.location.href; } というスクリプトを自分のサイトに書きますが、相手のフレームを破棄してリンク先表示するのではなく別ウインドウを開いて表示するにはどうしたらよいでしょうか。
>>122 <a target="_blank" href="eeeeeeeeee">ewr</a>
>>122 if (self != top){
ここに別の窓をひらくスクリプトを記述
}
それとももっと難しい意味?
125 :
122 :03/01/12 02:04 ID:???
いえ他サイトのフレームを破棄させるよりは別ウインドウの中に自分のサイトを表示した方が良いかと思ったので。 さすがにtarget指定しろウ゛ォケとは相互リンク先に言えませんから‥
んー、、それはあるね!! 確信的に(自分が便利だからという理由で)フレーム残す香具師もいるし、、。
window.parentが存在するならフレーム内ってことで窓開き直せばいんじゃねーの?
if(window.parent.location != window.location){window.open(window.location);}
129 :
Name_Not_Found :03/01/12 06:10 ID:uBNgrOUu
130 :
122 :03/01/12 07:40 ID:???
window.parentを128さんの仰る通り組んだら別ウインドウで出ますた! でも元フレーム内にも自分のサイト表示されてしまいます。 これは防ぎようが無いのでしょうか。
メソッドの仮引数の変数名を知るにはどうすれば良いですか?
ブラウザ表示させるためVRMLをHTMLにて取り込んでJavaScriptで制御しました。 また、Java(Flame)にて外部との物体をTCP/IP通信にて制御するプログラムと作りました。 この二つを連動させたく,JavaからJavaScriptへボタンを押したという情報を渡したいのですが どうすればいいでしょうか?
>>132 JScript、VBScriptからSocket使えそうだけどね。
>>132 惜しいな。JavaScriptからJavaは可能だけれど。
136 JavaScriptからJavaってのはJavaはAPPLETじゃなくても大丈夫なんですか?
つぅか素直にJavaでVRML解釈出来るクラス探してきた方が速い気が。
>>131 組み込みメソッドでないなら、メソッドの文字列表現(ソース)が
取れるんだからそこから切り出せば仮引数も分かるんじゃないの。
>>136 JavaScriptからJava呼べるならボタン押し程度なら200ms間隔
くらいでポーリングすれば十分実用になると思うが。しかしアプレット
なんですかね?
>>136 いや、JavaからJavaScriptは普通に呼べるけど
誰一人として具体例がない 脳内でできるんですか?
142 :
Name_Not_Found :03/01/12 22:31 ID:yV7ewdZS
JavaScriptのオブジェクトやメソッド、プロパティの名称が 最初からたくさん登録されているフリーのエディタ知ってたら教えてたもれ
144 :
Name_Not_Found :03/01/12 22:37 ID:yV7ewdZS
>>142 知らないけど、デバッカ付きの使ってるよ。
大きな声で言うと笑う香具師いるかもしれないけれど
Front page 2000
各種ブラウザで動作確認が簡単にできる。
エラーの行数や大体のエラーの意味も教えてくれる。
Perlのならメソッドや定型文が入ってるの見たことあるが
JavaScriptのは見たことないな・・・
つか、誘導されてきたなら挨拶しろよ
マルチポスト扱いで罵倒されるぞ
>>145 ワラタ。商品名間違ってる。
>エラーの行数や大体のエラーの意味も教えてくれる。
IEも教えてくれる。
>>146 こまけーよ(w
Front page 2000 でなくて正しくは
Front Page 2000 ねPが大文字だろ!
>>147 FrontPageなんですが。アホはどこまで行ってもアホだと言うことだ。
150 :
Name_Not_Found :03/01/12 23:09 ID:pqr/WdVW
>>141 だってどういう状況かまだよく分からないんだもの。とりあえずアプレットで
ボタンが押されたのをJavaScriptで取る例題を作ってみたが。N4/Gecko/IE。
--- HTML ---<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var tid;
function init() { tid = setInterval(test, 200); }
function test() {
if(document.applets[0].getPress()) {
document.forms.f0.elements.i0.value = "Pressed"; clearInterval(tid);
}
}
</script>
</head><body onload="init()">
<form name="f0" action="#" onsubmit="return false"><p>
<input type="text" name="i0"></p></form>
<applet code="o145.class" width="300" height="200"></applet>
</body></html>
151 :
Name_Not_Found :03/01/12 23:10 ID:pqr/WdVW
--- o145.java --- import java.awt.*; import java.awt.event.*; import java.applet.*; public class o145 extends Applet { boolean press = false; Button b0 = new Button("Push"); public void init() { setLayout(null); add(b0); b0.setBounds(20, 20, 60, 40); b0.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { press = true; } }); } public boolean getPress() { return press; } }
>>150 質問者は「Flame」って書いてるから
Frame使ったスタンドアロンだと思うよ
154 :
132 :03/01/12 23:37 ID:???
えっとさっき質問したものですが Java(FLAME)でTCP/IPで通信プログラムを書いて 操作のためのボタン、IPやポートを打ち込む操作画面を表示されています。 これからボタンを押したということをJavaScriptに伝えたいのです。 できますか? 初心者ですみません
>FLAME
ネタに3000FLAME
157 :
Name_Not_Found :03/01/12 23:49 ID:pqr/WdVW
>>154 まずFlameは「炎」でFrameは「枠、窓」であることを注意した方がいいですよ。
Flameと連呼すると多くの人の答える気が失せるものと想像されますから…
で、本題ですけどそのVRMLファイルを置いてるサーバに「目印」のデータを
送り込んで、JavaScript側ではその「目印」を定期的にチェックするとかが
考えられますね。ただし数秒のタイムラグという感じになると思いますがね。
なんだ、そうなのか。 てっきり、Flameって名前の技術があるのかと思ってた。 Java Flameみたいな。
159 :
132 :03/01/13 00:03 ID:???
すいません。。 スペルミスに今気づきましたTT 注意します
こいつあたまよわすぎ
トリッキーだけど、Applet内の公開メソッドにJavaScriptへの参照をあらかじめ 渡しておき、それをApplet内からトリガーできなかったっけ? つーか、netscapeパッケージだけだっけ?? それともActiveXだけか? ...って、未確認情報レス。
ActiveXなら、イベント起こしてスクリプトを呼べるけど、 Appletでも同じ事できないのか?
JavaAppletの中からJavaScriptのメソッドは呼べる
164 :
Name_Not_Found :03/01/13 08:54 ID:40bPlQPU
>>161-163 アプレットからJavaScriptは呼べるけどnetscapeNのJSObjectとかだから
プラットフォーム独立にならない。なのでJavaScriptからアプレットを
呼ぶだけで済ませる方が作りやすい。
そもそも全部アプレットにするのが幸せなのでは・・・
散々ネタが出ても一つもレスを返せない
>>132 の無能さが分からないのかね
無駄だ
別にいいんだよ、LiveConnectの話題なんて珍しいし楽しいじゃん。 こっちで楽しく話題にさせて貰ったら満足。
169 :
連帯責任者 :03/01/13 20:31 ID:N8IOWefj
携帯のキャリアによって推奨してる画像形式が違うのを どうにかしたいのですがどうすればよいのでしょうか? j-phone・・・jpeg docomo ・・・gif キャリアによって画像形式を変更するJavaScriptを教えてください!! 昔どこかでみかけたんですが見つかりませんでした・・・泣
170 :
?A?N?O´?C?O` :03/01/13 20:39 ID:N8IOWefj
どなたかいらっしゃらないのでしょうか?
携帯じゃ JavaScript 動かんのでは?
JavaScriptじゃ不可能
173 :
連帯責任者 :03/01/13 20:51 ID:N8IOWefj
あら? どこかで画像を自動変更してくれるって見かけたんですが・・・ (サーバー内にgifとjpeg画像の2種を用意しておく) JavaScriptじゃないんですね・・・ どうしたらいいんでしょうか? ご教授お願いいたします。m(_ _)m
useragent取れるなら if(useragent == "どこものぶらうざ") filename = "x.gif"; else filename = "x.png"; document.write("<img src='" + filename + "'>"); こんな事もできそうだけどよく考えたらJavaScript動く携帯なんてねぇよと。 まぁ、できるのはCGIからだろうね。
CGIなんか使わなくてもSSIでできるんじゃない? <!--#if expr="$REMOTE_HOST = /docomo/" --> <img src="unko.gif"> <!--#else --> <img src="unko.png"> <!--#endif -->
岡田克彦ファンクラブからのご案内です。ご高承のとおり、岡田克彦氏の卒業した早稲田大学政治経済学部
と、ひろゆきの卒業した中央大学文学部は比較にならないほど差があります。中央大学文学部のような
ヘボい大学に共通しているのは、文化水準が低いという事です。18歳から22歳をヘボい大学で過ごすという
ことは、感受性において致命傷と言えます。2ちゃんねらーの大半は岡田克彦氏に比べて、著しい低学歴で
頭が悪いだけでなく、感受性も愚鈍で腐っているという、取り返しのつかない状態なのです。
せめて、
http://www.geocities.co.jp/MusicHall-Horn/1091/で 、岡田氏の作品に触れましょう。
Safariに対するブラウザ判定について伺いたいのですが、既出ですか?
この板の当該スレで見かけたよ。
179 :
177 :03/01/15 11:33 ID:???
>>178 ありがと。もちょっとちゃんと探してみるよ。
実行環境がないのがキツいけど
以前スレッドにあったのですがA→Bの連動に さらにTEXTオブジェクトを追加させて連動させたいのですが どなたか教えていただけませんか? <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> var vals = [['a11','a12','a13'],['i11','i12','i13'],['u11','u12','u13']]; var txts = [['あ1','あ2','あ3'],['い1','い2','い3'],['う1','う2','う3']]; function change() { var s1 = document.forms[0].elements[0], s2 = document.forms[0].elements[1]; var v = vals[s1.selectedIndex], t = txts[s1.selectedIndex]; s2.options.length = 0; for(var i = 0; i < v.length; ++i) s2.options[s2.options.length] = new Option(t[i], v[i], false, false); s2.selectedIndex = 0; } </script> </head><body><form action="#"><p> <select onchange="change()" name="s1"> <option value="a1">あ</option><option value="i1">い</option> <option value="u1">う</option> </select> <select name="s2"><option value="undef">未選択</option></select> </p></form></body></html>
リンクにtitleつけて、文章をポップアップさせたりできますが、 同じような感じで文章の代わりに画像をポップアップさせることは 可能ですかね?
>>181 位置指定した div に img を要れて
mouseover/out で top, left, visibility を書き換えれば
大体同じような感じになる。
ガイシュツな気がするので探してみては。
183 :
Name_Not_Found :03/01/15 15:43 ID:rFmYsNLJ
>>180 「TEXTオブジェクトに連動」とは具体的にどうしたいのかもうちょっと説明してみて。
>>181 こうかね。N4/Gecko/IE。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function init() {
var l = document.links[0];
if(document.all) {
l.onmouseover = function() { handle(window.event, 'visible'); };
l.onmouseout =function() { handle(window.event, 'hidden'); }
} else {
l.onmouseover = function(e) { handle(e, 'visible'); };
l.onmouseout =function(e) { handle(e, 'hidden'); }
}
}
function handle(e, v) {
if(document.getElementById) {
var s = document.getElementById('d0').style; s.visibility = v;
if(e.x && e.y) { s.left = e.x + 'px'; s.top = e.y + 'px'; }
else { s.left = e.pageX + 'px'; s.top = e.pageY + 'px'; }
} else {
var d = document.d0; d.visibility = v; d.left = e.x; d.top = e.y;
}
}
</script>
</head><body onload="init()">
<p><br><br><br>test...<a href="
http://www.yahoo.com ">Test</a></p>
<div id="d0" style="visibility: hidden; z-index:5; position: absolute">
<img src="t0.png"></div></body></html>
184 :
Name_Not_Found :03/01/15 15:47 ID:GMZuoXoD
185 :
Name_Not_Found :03/01/15 15:48 ID:GMZuoXoD
186 :
180 :03/01/15 16:07 ID:???
>>183 2つ以上プルダウンのメニューがあった場合の時、その結果
(例えば合計金額とか)を表示させたいのです・・・
もしくは、A→Bで連動、Bの各項目に対する結果を
TEXTオブジェクトに表示する場合です。
本当に説明が不十分ですみません。
TEXTオブジェクトに表示するって意味が分からん。
岡田克彦ファンクラブからのご案内です。ご高承のとおり、岡田克彦氏の卒業した早稲田大学政治経済学部
と、ひろゆきの卒業した中央大学文学部は比較にならないほど差があります。中央大学文学部のような
ヘボい大学に共通しているのは、文化水準が低いという事です。18歳から22歳をヘボい大学で過ごすという
ことは、感受性において致命傷と言えます。2ちゃんねらーの大半は岡田克彦氏に比べて、著しい低学歴で
頭が悪いだけでなく、感受性も愚鈍で腐っているという、取り返しのつかない状態なのです。
せめて、
http://www.geocities.co.jp/MusicHall-Horn/1091/で 、岡田氏の作品に触れましょう。
>>186 >TEXTオブジェクト
<input type="text"> のことかしらん?
Bの各項目に対する結果、ってのも分からん。
191 :
180 :03/01/15 20:00 ID:???
>>189 そうです。
本当訳わからない事書いてしまって恥ずかしいです。すみません
192 :
Name_Not_Found :03/01/15 23:54 ID:RMldRYt2
>>191 用語は正確にしようね。ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var vals = [['a11','a12','a13'],['i11','i12','i13'],['u11','u12','u13']];
var txts = [['あ1','あ2','あ3'],['い1','い2','い3'],['う1','う2','う3']];
var dsps = [['A1','A2','A3'],['I1','I2','I3'],['U1','U2','U3']];
var disp = ['未選択'];
function change() {
var s1 = document.forms[0].elements[0], s2 = document.forms[0].elements[1];
var v = vals[s1.selectedIndex], t = txts[s1.selectedIndex];
s2.options.length = 0;
for(var i = 0; i < v.length; ++i)
s2.options[s2.options.length] = new Option(t[i], v[i], false, false);
s2.selectedIndex = 0; disp = dsps[s1.selectedIndex]; change2();
}
function change2() {
var s2 = document.forms[0].elements[1], i1 = document.forms[0].elements[2];
i1.value = disp[s2.selectedIndex];
}
</script>
</head><body><form action="#"><p>
<select onchange="change()" name="s1">
<option value="a1">あ</option><option value="i1">い</option>
<option value="u1">う</option></select>
<select onchange="change2()" name="s2">
<option value="undef">未選択</option></select>
<input name="i1" type="text">
</p></form></body></html>
193 :
180 :03/01/16 00:46 ID:???
>>192 有難うございます。
(本人がよく理解していない為)いい加減な説明だったのに・・・
一つの関数(change())の中だけでやろうとしていました。
目茶苦茶ですね。
もっと勉強します・・・
質問させて下さい。 ページの背景色を16進数や色名で任意に変更させたいのですが、 例えばフレームを使ったページでフレーム1、2、3となっている場合、 フレーム1で色の16進数を入れるとフレーム2や3の背景色を変えたいのです。 同じページ内で変更させる場合は、 <FORM> <INPUT name="BGC" size="14"> <INPUT type="button" value="背景色を変えて見る" onClick="document.bgColor=document.forms[0].BGC.value"> </FORM> これだけで良いかと思うのですが、これをフレームで使おうと思うと どうしてもエラーが出るか同じページでしか色変更が出来ず… 色々なサイトを探して自分でやってみたのは、 <SCRIPT LANGUAGE="JavaScript"> function changebg(01) { parent.frames[1].document.bgColor=color[01]; } // --> </SCRIPT> どなたかご教授頂ければ嬉しいです。 宜しくお願いします。
> function changebg(01) { ... } 仮引数が数字なのがまずエラー出ると思うんだが。 変数名はアルファベットか $, _ で始まらなければダメ。 # ECMA262-3 以降は他のUnicode文字も使用できるが # どっちにしろ変数名を数字で開始することは出来ない。
196 :
Name_Not_Found :03/01/17 07:28 ID:4vwne8Hn
>>194 その「color[01]」ってのは一体なに?なんで余分な0つけて定数を書く
わけ?その「changebg(01)」ってのは何?なんでパラメタのとこに定数
書いてるの?ヤマカンでプログラム手直しして動くわけがない。
「どんな」エラーが出てるかくらい書いてみたら。
197 :
Name_Not_Found :03/01/17 07:39 ID:4vwne8Hn
>>195 げげっ! その「01」は識別子のつもりだったのか! それは晴天のヘキレキ。
>>196 「01」はありえないリテラルじゃないよ。8進数リテラルは0で開始する。
まあECMA262-3では廃止されてるし
>>194 がそういう意図でやってるとも思えないが。
>>194 >onClick="document.bgColor=document.forms[0].BGC.value"
の個所でフレーム指定をしていない為自身の背景色が変わってしまうのでは?
onClick="parent.背景色を変えたいフレーム名.bgColor=document.forms[0].BGC.value"
としても駄目かな?
| |ハヽo∈ |´D`) < 200げっとれす ⊂ノ |__
201 :
Name_Not_Found :03/01/17 13:45 ID:9TszIRSN
もうちょっとおもしろい質問はないもんかね?
202 :
Name_Not_Found :03/01/17 14:13 ID:GYzYy3I/
別段面白い質問でもないんですが ボタンを押す>テキストエリアに設定した文字が出る。 というのを書いたんですけど、どうやったら一緒に改行もさせることが 出来るのかわからず困ってます。どーすればよいでしょうか?
204 :
Name_Not_Found :03/01/17 14:32 ID:Vo+jfcYq
205 :
Name_Not_Found :03/01/17 14:36 ID:fe+0Cm/l
意味不明
>>204 onSubmitじゃなくても画像つかえるよ
208 :
204 :03/01/17 14:39 ID:???
>>204 CSSで
input{background-image: url(sample.gif)}
211 :
202 :03/01/17 14:49 ID:GYzYy3I/
>>203 どーもです。
でも上手く行きませんでした。
例えば、コップの画像ボタンを押す > テキストエリアに コップ と表示される。
次に テーブルの画像ボタンを押す > テキストエリアに テーブル と表示される。
まではいいんですが、どうも改行されずに
コップテーブル と表示されてちゃいます。これを
コップ
テーブル
と表示させたいわけですます。
213 :
204 :03/01/17 14:51 ID:???
日本語勉強不足ですいません。 function pulldownmenu() {list=document.pull.menu.selectedIndex; url=document.pull.menu.options[list].value; location.href=url;} <form name="pull"> <select name="menu"> <option value='アドレス'>1 <option value='アドレス'>2 </select> <input type="button" value="go" onClick="pulldownmenu()"> </form> というプルダウンメニューのGOボタンに画像を使いたかったのです >209さんのやり方の場合 type=""には何をいれたらいいのでしょう?
>211 コップ\n テーブル\n を表示させれ
>>214 <option value='アドレス\n'>
217 :
202 :03/01/17 15:00 ID:GYzYy3I/
>>212 ごめん。それを保存してるパソコン別のやつ…今もってないです。
218 :
204 :03/01/17 15:05 ID:???
>208 すいません、これ私じゃないです (あおりを受けるような質問を書いてしまって申し訳ない) >204=214です。 どうも失礼しました。
219 :
204 :03/01/17 15:06 ID:???
>>217 ソース持ってきてから質問おいでよ〜(笑)
たぶん・・・・・
hoge=hoge+'\n'+hoge2;
みたいな・・・
222 :
204 :03/01/17 15:13 ID:Vo+jfcYq
一応IDだしときます(最初からこうすりゃよかった)
>>221 さん。どもです。
ただ、それだとgoボタンの上に画像が重なってしまうのですが・・・。
223 :
Name_Not_Found :03/01/17 15:14 ID:rLJ0+JVk
225 :
202 :03/01/17 15:24 ID:GYzYy3I/
>>215 ありがとうございます。できました。
>>220 会社が暇なので(笑。すいません。
ありがとーございました。
>>225 はあ?できました???
ソース手元にあるんかいっ!!(笑)
・・・・・・嘘つき、ボソッ
227 :
204 :03/01/17 15:38 ID:Vo+jfcYq
一般的には「セレクトのGOボタン」なんてやりません。
ワラタ
>>227 漏れ、へたれだからわかんないけど
それ、 1999の記事だから古いよ
その後からHTMLやCSSの新しいバージョンが出たりしたから
今は、CSS使うのが主流なんでは?
>>228 だね。JavaScriptの使えない、又はOFFの環境の人もいるから
ユーザビリティー考えたら「セレクトのGO」で新しいページを表示したりはしない
232 :
204 :03/01/17 15:54 ID:Vo+jfcYq
>>230 >CSS使うのが主流なんでは?
というのは、CSSでGOボタンを不可視化させて、その上に画像をのせる
っていう
>>224 さんに教えて頂いた方法が普通ってことでしょうか?
単純にGOボタンを消す方法っていうのがあるのかなぁと思って聞いて
みたのですが。
>>228 さん
そうとはしりませんでした(TT
234 :
204 :03/01/17 16:09 ID:Vo+jfcYq
>>233 そうですか(TT。わかりました
>>231 そこら辺のこともこれから勉強していきます
皆さま、ながながとありがとうございましたm(_ _)m
<noscript>
<ul>
<li><a href="
http://... ">...</a></li>
...
</ul>
</noscript>
236 :
204 :03/01/17 17:35 ID:Vo+jfcYq
>>235 ひょっとして私へのアドバイスでしょうか?
(javaを使えない人のために箇条書きにしとけ!というw)
ちょっと項目が多いので
<noframe>
JavaScript未対応の方は<a href="./koumoku.html">こちら</a>から
</noframe>
みたいにして、項目一覧のページみたいなところに飛んでもらおうか
と思ってます。(ダメかな?)
237 :
204 :03/01/17 17:36 ID:Vo+jfcYq
<noframe>じゃなくて<noscript>だった・・・(間違いばっかりだ)
239 :
テレマカシ :03/01/17 23:19 ID:uhSyXQH1
簡単なんだとおもうんですが、ぜんぜんうまくいかないので教えてください。 タイマーにて規定した時間にアラートをだしたいのですが。 たとえば、一時間ごと**時00分アラートとかをだしたいのですが。
>>239 >ぜんぜんうまくいかないので教えてください。
何をどうやってどううまくいかないのか。
if関数で時間から条件文にてアラートを出すようにしているのですが 全く動作してくれません。
ソースを出せないと?
職場においてきたんで今覚えてないので・・・あと適当すぎてだすのが恥ずかしい。
244 :
Name_Not_Found :03/01/18 01:51 ID:AVmBg9q7
>>244 何のためのscriptか小一時間問い詰めたい。
247 :
Name_Not_Found :03/01/18 01:59 ID:AVmBg9q7
>>246 PCのまえに付きっきりでボタンを押しつづけるのは苦痛ですよね
そこでボタンを押さなくても自動で押しつづけた結果と同じことになるような
データーを自動的に送るようにしたいだけです。
多だたんに楽をしたいのです
249 :
Name_Not_Found :03/01/18 02:08 ID:rOSp5S2H
>>247 そんなお前は連射機のボタンをテープでとめておけばイッツオラーイ
250 :
Name_Not_Found :03/01/18 02:18 ID:AVmBg9q7
すみません非常に高度なことを聞いてしまったみたいで・・・・ 手動でがんばります。
252 :
Name_Not_Found :03/01/18 02:25 ID:AVmBg9q7
253 :
Name_Not_Found :03/01/18 02:39 ID:XzfSIh8X
質問です。 CGI(Perl)を使い,Webブラウザ上で,HTMLソースを編集する簡易エディタを作成しています。 簡易エディタには大きなサイズのテキストエリアがあって,そこにopenしたソースを表示するという感じです。 ソース内のタグに色を付けてハイライト表示したいのですが,JavaScriptで実現する方法はあるでしょうか? 宜しくお願いします。
>>253 テキストエリアの中には、文字列しか入らないのでテキストエリアのままだと
できないと思うo
>>253 DTDレベルの話になるんですケド、
textareaの中に入れられるのは文字データだけなんですo
だから、textareaの中に入れたタグも文字データとして扱われますo
改行コードは\nになるんですケドそれはまた別のお話なのo
んで、CSSではtextareaの中に表示される全体の文字の色やフォントの形は変えるコトできますo
でも一部分だけは変えられませんo
#ってゆうか、質問者さん、なんか・・・・知ってる人かも?ですo
>>256 それよりもあんたが誰なのかが気になる。
>>253 perlのでもいいから、できればソース晒して下さいo
>>258 はソースをパクる気です。
晒すのは止めた方がいい。
260 :
Name_Not_Found :03/01/18 03:31 ID:XzfSIh8X
253です。
>>256 え,私はあなたが知ってる人かもしれないんですか?
えと,さっきの質問は実は卒論に関係したことでして…。
既存のWebページを基にして,XMLタグを埋め込んでいって云々という内容なんですが,
どうでしょう。私が誰だか分かりますか?
TextAreaを使わずHTMLを直接編集する形ならできるが使い勝手は良くない あくまでWebクライアント上でやりたいならJavaアプレットでも作れば?
>>260 人違いみたい、ごめんなさいo
簡易エディターを作ってた人を知ってたから・・・・
perlとJavaScript使えてstrictなHTMLに詳しくない人←ぴったり(おぃ
244=259? (w
264 :
Name_Not_Found :03/01/18 05:00 ID:8Zp1+xwm
>>250 結局、最後まで勘違いをつきとおすのかよ。。。
265 :
Name_Not_Found :03/01/18 06:06 ID:AVmBg9q7
どうしたらPOSTしてくれるの〜?
267 :
Name_Not_Found :03/01/18 06:26 ID:KubS6kCo
268 :
Name_Not_Found :03/01/18 09:51 ID:DT+016St
>>265 なぜ0.5秒間隔でPOSTしたいのか書いてみなよ。それが本当に
人に迷惑掛けないんなら教えてくれる人がいるかもよ。
>>268 自鯖に対する過負荷試験以外その条件に該当するものはないと思うが。
ボタンを押した時に文字を消したり表示したりするJavaScriptを 書いてるんですが、Netscape4.78でうまく動きますが、Netscape7.01 だと動きません。 何故でしょうか? <ilayer name="nn"> test<br> </ilayer> <form> <input type="button" onClick="document.layers['nn'].visibility='show'; return true;" value="表示"> <input type="button" onClick="document.layers['nn'].visibility='hide'; return true;" value="消去"> </form>
ilayer ってNN4だけじゃないの?
272 :
Name_Not_Found :03/01/18 12:19 ID:Q8cVXstU
2chみたいに
>>1 ってやると
その記事へ飛ぶようにするにはどうすればいいですか?
どうか方法を教えてください
275 :
Name_Not_Found :03/01/18 13:27 ID:oRK1/s+Z
>>270 N7(N6、Mozilla)とIE5.5以降はすべて共通。
((document.layers)?(document.layers.nn):(document.getElementById('nn').style).visibility = ...
276 :
Name_Not_Found :03/01/18 14:49 ID:7sy9G8vP
document.onclickでスタートメニューを開けますか? キーボードのwindowsキーがkeycode=91だということまでしか解りません。 タスクバーに偽スタートボタンを作りたいので。
277 :
Name_Not_Found :03/01/18 15:07 ID:oRK1/s+Z
JavaScriptでWindowsの任意のメニューが開けたり起動できたり したら世の中はえらいことになるとは思わなかった?
278 :
276 :03/01/18 15:22 ID:???
そりゃそうですね・・・ ローカルでのことにしか頭が行ってなかった。 スレ汚しすいませんでした。
それはJScript(等)。
281 :
276 :03/01/18 15:43 ID:???
知ってんなら答えろや
283 :
276 :03/01/18 15:55 ID:7sy9G8vP
ID出しときます。 WSHですか。リファレンス読みながらあれこれやってみます。 ヒントありがとうございました。
284 :
270 :03/01/18 16:06 ID:???
>>271 そうでした、、、。HTMLの対応状況をチェックして無かったです。
>>275 おお。出来ました!サンクス
<div id="nn">
test<br>
</div>
<form>
<input type="button" onClick="(document.layers)?(document.layers.nn):(document.getElementById('nn').style).visibility=''; return true;" value="表示">
<input type="button" onClick="(document.layers)?(document.layers.nn):(document.getElementById('nn').style).visibility='hidden'; return true;" value="消去">
</form>
285 :
Name_Not_Found :03/01/18 17:57 ID:M2THTZeW
253です。 255, 256, 261さん ありがとうございました。
textarea内にtxtファイルを開いて編集できるようにしたいのですが、
どうすれば良いですか?
こんな感じです。
>>287
287 :
286 :03/01/18 20:08 ID:???
<SCRIPT LANGUAGE="JavaScript"> <!-- Begin function displayHTML(form) { var inf = form.2ch.value; win = window.open(); win.document.write("" + inf + ""); } function whatFile() { window.location= 'file:///' + document.form1.cmuds.value; } // End --> </script> <form name=form1> <textarea name="2ch" rows=10 cols=50> この中に表示させて編集できるようにしたい。 </textarea> <input type=file name="cmuds"> <input type=button onClick="whatFile()" value="開く"> </form>
>>287 textareaには文字しか入れられないから
.txtも他のどんなファイルも開けない
290 :
286 :03/01/18 20:17 ID:???
やっぱり無理か。。ありがとうございます。 VBscriptやWSH、DHTML、RubyScriptでなら出来ますか?
>>289 が何か意味のわからんことを言っています。
>>287 つか、ローカルで編集するのにJavaScript使う必要無くない?
テキストエディターでやれば?
オンラインでやるなら、CGI使うならわかるが
>>295 プログラム板のJavaスレで暴れてた子かい?
基礎的な勉強くらい自分でしてくださいな。
297 :
Name_Not_Found :03/01/18 22:50 ID:h5AJnTAF
あるHTMLからJavaScriptで別のHTMLを開くときに 変数の値を渡したいのですがどうすればよいでしょうか? よろしくアドバイスお願い致します。
GET
302 :
Name_Not_Found :03/01/18 23:10 ID:ojZdTGTQ
>>298 なんでイベントハンドラなの?「関数名(変数の値)」というのも
よく分からないぞ。解説キボーン。
>>297 その「開く」というのは別窓、それとも現在のページと置き換わって
新しいページが表示されるということ、どっちよ?
>>295 助言ですか。まず次のような機能の実現方法からマスターしたら?
(a)画像(でなくても何でも)を任意位置に置いたり表示/非表示切替える。
(b)任意要素に対して、背景画像を変更する。
これらができればとりあえず「着せ換え」はできるでしょ?それが
できるようになったら次にまた足りない機能を考えてマスターする。
以下ずっと繰り返して行くとできるようになるはず。相当努力必要。
瞬時にパクらせてくれるソース書く奴はいないと思うよ。あれって
画像の方が相当力入っていると思うな。
引数という言葉すら知らない奴がプログラマ気取ってるのか・・・恐ろしい。
なあなあ、おまえら頭に蟲涌いてるだろ?
305 :
297 :03/01/18 23:54 ID:???
>>302 すみませんでした。別ページに置き換わる場合です。
>>300 >URL?変数の値
これがやりたかった事でした。
ありがとうございました。
306 :
Name_Not_Found :03/01/19 00:50 ID:yRF2KDf5
>294 すでにWSHが入っている罠。 つーか、Win95か98(Second Editionじゃない無印)かNTでかつIE5.xxSP2以上が入っていないマシンってどの位あるのよ。
うっせーな 別のが良いってんだから失せろ
308 :
306 :03/01/19 01:20 ID:???
あくまでもブラウザでやりたいってんじゃこんな感じ。 ブラウザのセキュリティコンテクストじゃ保存が出来ないから、編集が出来ても意味無いけどね。 <html lang="ja"> <head> <style TYPE="text/css"> <!-- .textFile { behavior:url(#default#download);} --> </style> <script type="text/javascript"> <!-- function DownloadComplete(ea){ txtFile.value = ea; } function init(){ txtFile.startDownload("list.txt", DownloadComplete); } window.onload = init; //--> </script> </head> <body> <textarea id="txtFile" class="textFile"></textarea> </body> </html>
>>287 フレームに読み込んでアクセスするとファイルの中身が読めるよ。
<script type="text/javascript">
function read(){
var path = document.forms['f'].i.value;
if(!path) return;
document.getElementById('r').src
= (path.match(/^http/i))? path: 'file:///' + path.replace(/\\/g , '/');
}
function edit(){
var isHTML = document.getElementById('r').src.match(/\.html?$/i);
var elm = document.frames['r'].document.getElementsByTagName('HTML')(0);
document.getElementById('t').innerText
= (isHTML)? elm.outerHTML: elm.outerText;
}
function view(){
with(document.getElementById('r').style)
display = (display == 'none')? 'inline': 'none';
document.frames['r'].document.body.contentEditable = true;
}
</script>
<body>
<form name=f>
<input type=file name=i onfocus="read()">
<input type=button value="Edit" onclick="edit()">
<input type=button value="HTML_View" onclick="view()">
<br><textarea id=t style="width:100%; height:200px" wrap=off></textarea>
<br><iframe src="" id=r style="width:100%; height:200px; display:none"></iframe>
</form>
</body>
310 :
309 :03/01/19 08:50 ID:???
textareaの内容を表示するwindowを付け忘れた。 これがないと保存ができない。 function dispHTML(){ var s = document.getElementById('t').innerText; var win = open(); with(win.document){ open(); write(s); close(); designMode = 'on'; } } <input type=button value="open_window" onclick="dispHTML()">
312 :
Name_Not_Found :03/01/19 11:45 ID:klD2w9Zh
>>309-311 Webサーバから取ってきたページではfile: URLが使えない場合が
ある(セキュリティ対策)よね。その編集用ページもファイルから
ロードしてくれば大丈夫だけど。
すみません、どなたか相談に乗って下さい。 アンケートページを作ろうと思って、 CGIに投稿する前にJavascriptで内容をチェックするようにしたくて、 とりあえず試しのソースを書いてみたんです。 でも、うまくいかないんです。 誰かアドバイスを下さいませんか? これソースです。 <HTML> <SCRIPT TYPE="text/javascript"> function RadioCheck(){ function test(Name){ var radio = document.forms[0].elements["学年"]; var radio_l = radio.length; var radio_n = radio[0].name; var radio_c = radio[0].checked; for (var i=0; i<=radio_l; ++i){ radio_c = document.forms[0].elements["学年"][i].checked; document.write(i+"<BR>"+radio_l+"<BR>"+radio_c+"<BR>"+radio_n+"<BR>"); } } test("学年"); } </SCRIPT> <FORM ACTION="#"> 1.学年<br> <input type="radio" name="学年" value="0">1年 <input type="radio" name="学年" value="2">2年 <input type="button" value="java" onclick="RadioCheck()"> </FORM> </HTML>
どうしたいのかイマイチわからないけど <SCRIPT TYPE="text/javascript"> <!-- function RadioCheck(){ var radio_c = new Array(); for (i=0; i<document.forms[0].elements["grade"].length; i++){ radio_c[i] = document.forms[0].elements["grade"][i].checked; alert(document.forms[0].elements["grade"][i].value+"-"+radio_c[i]); } } //--> </SCRIPT> <form><p> 1.学年<br> <input type="radio" name="grade" value="1">1年 <input type="radio" name="grade" value="2">2年 <input type="button" value="Check" onclick="RadioCheck()"> </p></form>
315 :
Name_Not_Found :03/01/19 16:47 ID:TS8LfdQ6
最近「うまくいかない」と書きさえすればテレパシーで意図を
読み取ってもらえると思ってる人が多いなあ。
>>1 をちゃんと
読んでほしい。
316 :
309 :03/01/19 18:15 ID:???
「(path.match(/^http/i))?」なんて書いたけど webアドレスを読み込もうとするとセキュリティブロックされる模様。 ローカルファイルとしてしか使えない上にローカルファイルしか読みこめ無いんだ。
317 :
313 :03/01/19 18:16 ID:???
>>314 さん
何がどううまくいっていないのかとかも書いていない
本当に言葉足らずな書き込みに反応して下さいって
ありがとうございます。
314さんの書いて下さったのをもとに、色々手を加えて、
ちゃんと動くようにできました。
アンケート処理用プログラムをperlで書いていたので、
反応が遅くなってしまいました。
本当にありがとうございました。
>>315 さん
ごめんなさい。
そんなつもりはなかったんですが、
実際言葉足らずでした。気を付けます。
318 :
308 :03/01/19 21:41 ID:???
>316 同一ドメインで、Everyone読み込み属性Onなら大丈夫。 ウチの書いたのも同じ様だ。 ローカルに置いてはローカル。Web上に置いてはそのドメイン内のものが読める。 >310 View-sourceすれば編集後ソースの保存が出来るね。考えつかなかった。 そこまで徹底するとストイックな美しさがあるね。
319 :
549 :03/01/20 01:06 ID:QvxyLujY
サーブレットで開発をしているのですが、 ある画面に遷移した際に、IEのステータスバーに出ている読み込み具合を 示す青いバーが遷移後に表示をはじめて、途中でとまったままに なっています。画面は表示されるのですが、「ページが表示されました」 というメッセージがでません。なぜなのでしょうか。 画面はフレーム構成で、上フレームのonloadで下フレームを呼んでいます。 色々質問をさせていただき、どうやらjavascriptの問題ではないかと 思いここで質問させていただきます。
320 :
Name_Not_Found :03/01/20 01:13 ID:VkpfufDv
>>319 だから回答者はテレパシーなんか使えないって。
「このように書いたところ」「こうなってしまう」
という説明がほしい。
321 :
おじー :03/01/20 01:22 ID:gh6CiMmN
>>321 スレ違い。
良い子はとっとと寝てください。
>>321 よーし、いってやる
しかしjetは重いな
324 :
Name_Not_Found :03/01/20 09:43 ID:2ph+JP0P
>>320 まったくだ。が、
>>319 サーブレットの出力ストリームを最後にclose()してる?その問題
だったら完全に板違いなんでWebProg板に行ってね。
325 :
Name_Not_Found :03/01/20 23:23 ID:ujY9qPwH
とてつもなく初心者っぽいな質問ですまんが、 何故かsubmitを押した時にactionしないようにならない。 <script language="Javascript"> function aaa(){ return false; } </script> ・・・ <form action="./hello.cgi" method="POST" onsubmit="aaa()"> <input type="submit"> </form> これでいいんだよな・・・? <form action="./hello.cgi" method="POST" onsubmit="return false">にするとちゃんと動くのだが。
>>325 だから回答者はテレパシーなんか使えないって。
「このように書いたところ」「こうなってしまう」
という説明がほしい。
>325 onsubmit="return aaa()" こうなる。
>>327 おぉ、できた…。サンクス!
>>326 申し訳ない。全然分からなくて焦って書いたもんで…。
次からはしっかり書く。というか、質問しないようにしなきゃな…。
>>326 説明してないか?
と思ったらただのコピペか。
330 :
Name_Not_Found :03/01/21 02:35 ID:7NRq0jWj
javascriptでフレームページをまたぎ、画像や色を変えたりしますよね。 (AのフレームでREDをクリックすると、Bのフレームの色が赤になる、というような感じで) そのときにフレームのNAMEが数字だとエラーが出るのですが 何故なのでしょうか?
331 :
Name_Not_Found :03/01/21 07:26 ID:hWLd5W8o
(1)HTML的にはNAMEは数字ではいけない。名前は英字ではじまり英数字が 並んだもの(何が英字であるという細かい規定もあるけど)。 (2)JavaScriptで操作するときに「document.frames.xyz」というのは 構文的にOKだけど「document.frames.123」というのは構文エラーになる。 そもそも言語の文法なんだから文句を言ってもしょうがないこと。 どうしてもやりたければ「document.frames['123']」で動くかも知れない。 でも(1)の理由もあるのでお奨めしない。
332 :
Name_Not_Found :03/01/21 07:32 ID:o1a3y4eB
>>331 おお、サンクスコ。そういう決まりがあるのか。
さっきどうしても動かないから、とりあえずNAMEを変えて解決したんだけど
おかげでターゲット="(数字)"を100個近く英字に変えて、すっげーめんどくさかったよ。
さすがに懲りた(藁
どうしてダメなのか疑問だったから答えが分かってうれしい。
>>334 オーケイ!
これから少しずつプログラム憶えて頑張るよ。
いつか自分もこの質問スレで教えてあげられるようになるといいなぁ。
#自分じゃちと不安か・・
>>335 取りあえずその目標は捨てなされ。
頭だけでかくなって何も作れないくせに揚げ足だけ取るのがうまくなるぞ。
>>336 あはは・・そうだな。でもこの板でかなりお世話になってるんで
やっぱり恩返ししたいしな。。。
まずはこの板の世話にならないように、自分で出来るようになるのが先決だなー。
>>337 >やっぱり恩返ししたいしな。。。
立派にJavaScriptが使えるようになってくれるのが一番の恩返しです。
今は自分のことだけ考えて進みなされ。
気が付いたら人に教えて有り余るほどの知識と経験が付いているよ。
恩返しっていえばカネだよな。
>>339 真摯なレスありがとう。
自分もこの初心を忘れないように頑張る。
>>342 さっき病院から戻ってきました
中耳炎だって
ネタスレ化した?
結構長いJavascript書いてると、document.forms[0]・・・・での指定がうまくいかなくなる…。 意味不明だ。
単なるグチ?それともスクリプトのまずい点を指摘してほしいの? 意味不明だ。
愚痴でしょ
単なる愚痴だ。気にしないでくれ。 意味不明だ。
ホントかよ
愚痴でしょ
ありえないっ
352 :
Name_Not_Found :03/01/22 17:40 ID:6OYwmUr9
<a href="" onclick=>で、 onclickで呼び出されたルーチンから、 hrefの内容を呼び出したいです。 たしかthisを使ったと思うのですが、 呼び出し方を忘れてしまい、意外と探せませんでした。 this.urlのような感じだったような。 呼び出し方、知っている方お教えくださればうれしいです。
this ってのは「このオブジェクト」って意味。 onclick とかで使うと、その要素自身を指す。 で、その要素自身の href 属性 だから、 this.href 。
<input type="button" value="その1" onClick="Move('1')">というボタンを押したときに action.cgi?1 というようにジャンプさせたく function Move(target){ var = win; win = window.open("./action.cgi?"+target,"_self","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes"); } としているのですが、うまく動作してくれません。 どこ方を直せばよいでしょうか・・・
>>353 すみません。ありがとうございます。ずっと探していました。試してみます。
var = win; の時点で2つぐらいエラーの予感
>>354 window.open後にreturn falseがない。
1つでもオプションを設定したら
指定していないオプション全てがnoになるから
この場合yesのある指定だけでいい。
>>358 return false するとなんかいいことあるの?
<a href="hoge.html" onclick="window.open('hoge.html');return false;">とやっていては href属性が変わるたびにonclickの内容も変えなければなりません。 自動的に対象が変わるようにはどうしたら良いですか?よろしくお願いします。
>>361 10レスくらい前のことも読めないヤシはほっとけ。
「荒らし」かもしれないしな(藁
363 :
初心子 :03/01/22 23:07 ID:IG+60zDk
ASPを使ったサイトでjavascriptでクッキーを取得しているのですが、 ASPのresponse.cookiesで食べさせたクッキーはURLエンコードされており javascriptのescape()は使えない状況です。 どなたか、javascriptでURLデコードする方法を教えて下さい。 %82%A0%82%A2%82%A4%82%A6%82%A8 ←が あいうえお となれば成功です。
>>363 IEのJScriptでは出来ません。VBScriptでやってください。
366 :
Name_Not_Found :03/01/22 23:59 ID:0H5NCAq+
自分のMIDIサイトにMIDIをダウンロードしたらカウントを表示させる方法を 教えてくださいm(_ _)m
367 :
初心子 :03/01/23 00:09 ID:???
>>364 やはりjavascriptでは無理ですか・・・。
ありがとうございます。vbscriptでやってみます。
>>365 今の私にはそれは難易度が高いです。
でもありがとうございます。
>>366 CGI。ダウンロードカウンタ設置しる。kentにあるし。
369 :
Name_Not_Found :03/01/23 09:47 ID:QKu+wQwH
>>360 は
>>352 なんだけど
>>353 の説明が理解できなかったものだと思われ。
正解は「onclick="window.open(this.href);return false"」ね、分かる?
>>359 「return false」がないとonclickの動作直後に<a>タグによる切り替わり
が起きる。ページが切り替わると実行中のJavaScriptの動作はすべて止められて
しまう。よっと窓を開く動作も(タイミングによるが)止められてしまう。
370 :
bloom :03/01/23 09:54 ID:Y8+8Evkb
371 :
359 :03/01/23 10:44 ID:???
>>369 >>354 みたいに <a> じゃなく <input type=button> で
click時のデフォルトのアクションがもとからない場合なら
return false いらないと思うんだけど。
372 :
Name_Not_Found :03/01/23 12:09 ID:Egtn98RV
>>371 しまった、デフォルトのアクションがない場合はもちろん不要です。スマソ。
ね、分かる?
JSの勉強を兼ねて、ニュース系のページにあるような見出しの一覧を外部ファイルで作成し、 テーブルの中で呼び出してみようと思って試してみたところ、表示は出来たのですがスタイルシートの設定が完全に反映されません。 1)Aタグで下線を表示しないようにして、2)カーソルを乗せたら下線を表示&3)色変更 の3点をスタイルシートで指定しているのですが、3)しか反映されません。 #下線が常に出ているので2)が反映されているかは不明です。 <SCRIPT LANGUAGE="JavaScript" SRC="list.js"></SCRIPT> 呼び出す側はこの一文だけ。 <!-- list="" list+='<a href="〜">……</a><br>' list+='<a href="〜">……</a><br>' document.write(list) //--> 外部ファイルはこんな感じです。スタイルシートも外部ファイルで呼び出しているので、 一々タグに埋め込むのも非効率だと思うのです。フレームページにすれば簡単なのは 分かりきっているのですが、別の方法を身に付けたかったので。 どなたかご教授ください。
>>374 スタイルシートのつづりが間違ってるとか。
376 :
Name_Not_Found :03/01/24 09:07 ID:oG58JkdN
別ファイルに分ける場合は「<!--」はあっちゃいけないんじゃないの?
377 :
Name_Not_Found :03/01/24 10:37 ID:QH9caeQY
すいませんいろいろ試したのですが、どうしても分からないので教えてください。 function WOPEN(output){ var newWin=window.open("","newwindow","width=300,height=150"); newWin.document.open(); newWin.document.write(output); newWin.document.close(); } という感じで、別の関数で加工された変数(output)を受け取って、小窓で表示させるという関数を作っているのですが・・・ なぜか窓が開けません。ためしに var newWin=window.open("","newwindow","width=300,height=150"); の行を削って自窓に表示させたら問題なく変数も渡されて表示は出来たので、この行の書き方が間違っているのかと思うのですが・・・。 ちなみに窓自体が開けないのかとも思い、シンプルに window.open("index.htm","newWindow","width=300,height=150"); とリンク先を指定した普通の開き方をしてみると何ら問題なく開けました。どこに問題があるのかご教示願いますでしょうか。
開けますが。
379 :
377 :03/01/24 11:48 ID:QH9caeQY
>>378 そうですよねぇ。開けるはずのコーディングなのに開けないので
困っているんですよ。
今やってみたところ、問題の行を
var newWin=window.open("index.htm","newwindow","width=300,height=150");
とした場合は望みどおりの結果になるのですが、index.htmという実際には表示しないURLを
参照しないといけないことがどうも釈然としません。
テストしているブラウザがIE6.02なんですが、ブラウザ側の問題でしょうか?
380 :
Name_Not_Found :03/01/24 12:26 ID:OF9ZweL2
その「"newwindow"」または「"newWindow"」っていう窓がすでに どっかにあるとかはどう?もし名前つけなくていいのなら「"_blank"」 にしてみたらどう?
当方っていうのはどっちの方ですか?
383 :
374 :03/01/24 14:06 ID:???
>>374 スタイルシートは呼び出す側のページ中では指定した通り
反映されていたので、綴りの問題ではないと思います。
>>375 外してみましたが、結果は同じでした。
自分の力量に見合わないことはするなってことですかねェ(;´ロ`)
384 :
377 :03/01/24 14:25 ID:QH9caeQY
すいません。皆様の動作したという報告を頂き、もしやと思いましたので
サーバー上に置いてみたところ、
>>377 のコードでなぜか動作しました。
全く同じコードなのにローカルではやっぱり動きません。
エラーは
ライン 80
文字 2
エラー アクセスが拒否されました。
コード 0
URL file://C:\test\wopen.htm
となっています。ライン80というのは問題の
var newWin=window.open("","newwindow","width=300,height=150");
がある行なんですが・・・なぜなんでしょう?
385 :
Name_Not_Found :03/01/24 15:42 ID:OF9ZweL2
>>383 なんか症状からしてIEのバグっぽくない?つまりdocument.write()
で書き出した文字列によりつくられるタグのCSS適用が完全でない
というか。直るかどうかわからないけど、全部書出し終わったあとで
スタイル指定をJavaScript側からつけてみるとかさ。
>>384 「文字2」っていうのが謎だね。「""」を「null」にしてみるとか。
>>374 var list=""
list+="……".link("〜")+"<br>"
list+="……".link("〜")
document.write(list)
はどうだ?
すみません。お尋ねしたいのですが、サブウィンドウが開いたら親ウィンドウを 自動で閉じたいのです。scriptを教えていただけませんでしょうか。 逆のパターンならあるのですが、これはみつかりません。 よろしくお願いいたします。
>>384 var newWin=window.open("about:blank","newwindow","width=300,height=150");
とりあえず、こうしとけ。
389 :
Name_Not_Found :03/01/24 18:36 ID:d1C3aEjp
>>387 セキュリティ制約のため「閉じてもいいか」というダイアログが必ず出る。
避けることはできない。それでもいいなら「window.opener.close();」だけど。
わざわざ嫌われるサイトを作ろうとしている奴が集まるスレはここですか?
JavaScript自体嫌われてますが何か?
>>387 親窓の opener 書き換えとけばダイアログなしに閉じられる。
with(window.opener)opener=true,close();
ブラクラを作ろうとしてる奴がいるスレはここですか?
いえ、ブラクラじゃありませんよ。>392さん 389さん ありがとうございました。
395 :
394 :03/01/24 19:32 ID:???
・・・ごめんなさい。 この場合、どこを書き換えればよろしいでしょうか。 <html> <head> <title></title> <script language="JavaScript"> <!-- function openWin(wUrl,wWidth,wHeight){ scWidthCenter=screen.availWidth/2; scHeightCenter=screen.availHeight/2; wOption = "scrollbars=no,resizable=no,width="+wWidth+",height="+wHeight+",left="+(scWidthCenter-(wWidth/2))+",top="+(scHeightCenter-(wHeight/2)); window.open(wUrl,'window1',wOption); } //--> </script> </head> <BODY bgcolor="#3399ff" text="#ffffff" link="#ffff00"> <a href="JavaScript:openWin('index2.html',680,400)">クリック</a></body> </html> サブウィンドウを真ん中表示にした後、親ウィンドウをダイアログなしで消したいのです。 よろしくお願いします。
>>395 ダイアログ無しで親ウィンドウを閉じるのは仕様上できないのだと思います
openで開いたウィンドウはダイアログ無しで閉じれますが
>>395 どっかに入れろ。場所は自分で考えろ。
window.opener=1,window.close();
出来ないようにしてあるものが出来てしまうバグなので
将来的に動かなくなる(やっぱりダイアログが出るようになる)可能性は
ものすごく高いと思われ。
398 :
Name_Not_Found :03/01/24 20:41 ID:tG53B94i
Mozilla使いなのでそのバグは知らなかった。
399 :
394 :03/01/24 20:47 ID:???
できた〜〜〜〜〜!!わかりました!!ありがとうございます。 将来、仕様で出来なくなると思いますがとりあえずそれまで使っておきます。 396さん397さん助かりました。
400 :
374 :03/01/24 22:22 ID:???
>>386 さん
その方法で上手くいきました!
ありがとうございました。
submitボタンを使わずにアンカーでCGIに引数送ることってできる? GET形式ならアドレスいじればできるが、POST形式での送り方がわからん…。 教えてエロイ人。
>>401 フォームを使わない POST リクエストってのは不可能。
単にフォームの送信をボタン以外の手段でやりたいってだけなら
document.フォーム名.submit();
>>402 ありがとう。やっぱりムリか…。
うーむ。
>>403 ありきたりなこと聞くけど、なんで<A>でCGIにPOSTしたいの?
送り先がPOSTしか受け付けないから(Cコンパイルされてる)。 フォーム作って送るのめんどくさいな…と思ったもので。 素直にフォーム使って送ることにするよ。
>>405 >送り先がPOSTしか受け付けないから(Cコンパイルされてる)。
Cは環境変数読めないクソ言語。と叫ぶのと一緒だぞ。それ。
>>406 そんなこと俺は知らん。さっぱりC知らないし…。
そこ管理してるやつが、読めんからPOSTで送ってくれ、と言ってた。
408 :
Name_Not_Found :03/01/25 00:21 ID:znD9t+Ic
内容がWebProg板だな。GETだとデータが漏洩しやすいから使わない という管理者は多いと思うけど。Cコンパイルされてなくたって 自分なら「よくわからんからGETも受け付けるようにしてくれ」 なんて却下するぞ。隠しフォーム作ってリンク選択時にデータ放り 込んでsubmit()すりゃいいんしょ?やるだけじゃん。
>>408 >GETだとデータが漏洩しやすいから使わないという管理者は多いと思うけど。
POSTでセキュリティが上がるなんて話もとんと聞かんが。
履歴で戻っただけで動くからなぁ… 動作内容によるわな。
そうかなあ、二重に動くのは対処できるっしょ? まあ板違いなんでやめとくわ、
>>401 見えないフォームを使うか、XMLHTTP使え。
>>409 単純にURLに引数がくっついてるっていう意味でしょ。>GETは漏洩しやすい
HTMLアプリケーションで文字列をテキストファイルに書き出すにはどうすれば良いですか?
>>414 >HTMLアプリケーション
なにそれ?
こんにちは。 普通にファイルを開く関数はjavascriptにありますか? Perlで言うところのopen() PHPのfopen()のようなものです。 自分なりに必死に検索したんですけど、見つかりませんでした・・・
ちなみに、window.openではなく、、です。 開いて内容を変数に格納するようなタイプで…。
はっ、すみません。 リロードする前に書き込んでしまいました。 無いのですかノд´)分かりました。 有難うございます。
422 :
308 :03/01/25 19:42 ID:???
0〜6の数字をランダムに重複させずに並べたいのですが、上手く出来ません もちろん、Math.floor(Mathrandomr()*5)でランダムの数字はでますが、 「重複させず」に残った数字を順に並べることが出来ません。 算数関係のページをだいぶ見たんですがわかりませんでした 自分としては var pos1 = Math.floor(Math.random() * 6); var pos2 = Math.floor(Math.random() * 6) != pos1; var pos3 = Math.floor(Math.random() * 6) != pos1 && pos2; . . . とやっていけば出来るような気がしたんですがダメでした。 どなたかよろしくお願いします。 #用途は6枚の画像を六ヶ所にランダムで表示させたいんです
結局 if なんかで被っていないかチェックしないと。 前にいいやり方を思いついたんだが、 ソースも紛失したし、記憶に無いし… スマソ。
配列に突っ込んで、ランダムに入れ替えじゃ駄目かね…?
>>423 これでは?
var pos2 = (Math.floor(Math.random() * 6) != pos1; );
>>427 boolean渡して何をする気だ?
と言うか通らんだろ。それ。
/
∋8ノハヽ8∈ |
>>423 >>426 ( ´D`) < こーれすか?
|
var items = new Array(0, 1, 2, 3, 4, 5, 6);
function swap(i, j) {
var temp = items[i]; items[i] = items[j]; items[j] = temp;
}
swap(items.length - 1, Math.floor(Math.random() * items.length));
swap(items.length - 2, Math.floor(Math.random() * (items.length - 1)));
swap(items.length - 3, Math.floor(Math.random() * (items.length - 2)));
document.write(items[items.length - 1] + "," + items[items.length - 2] + "," + items[items.length - 3]);
>423 なんか検索すれば問題解決しそうな質問だが…
>>429 なんかリソースを激しく消費しそうなスクリプトだな・・・
/ ∋8ノハヽ8∈ | ぜんぶなんれすか ( ´D`) < よくよんでなかったのれす | スマンカッタ var items = new Array(0, 1, 2, 3, 4, 5, 6); function swap(i, j) { var temp = items[i]; items[i] = items[j]; items[j] = temp; } for (var i = items.length - 1; i > 1; i--) swap(i, Math.floor(Math.random() * (i + 1))); document.write(items.join(","));
× i > 1 ○ i > 0
>>423 >0〜6の数字をランダムに重複させずに並べたいのですが、上手く出来ません
せっかくスクリプト使うんだから、ヒネらなきゃ。これでどうかね。
var arr = new Array("0","1","2","3","4","5","6");
arr.sort(function(a0,a1) {
return (Math.random()*2)>1?-1:1;
});
alert(arr);
>>436 自己レス。
最後の
>alert(arr);
は余計。失礼。
438 :
Name_Not_Found :03/01/26 09:25 ID:UpEWcSkc
整列に乱数を使った場合どう並ぶかは保証されないから 本当にランダムになるか分かったもんじゃないよ。整列が バブルソートだったりしたら(まずないけど)永遠に止まら ないだろ?ふるまいが分析できないコードはやめた方がよい。
でも、おもしろいね。
441 :
世直し一揆 :03/01/26 09:59 ID:Zw8/FLdb
<血液型A型の一般的な特徴>(見せかけの優しさ・もっともらしさ(偽善)に騙され るな!) ●とにかく気が小さい(神経質、臆病、二言目には「世間」、了見が狭い) ●他人に異常に干渉する(しかも好戦的・ファイト満々でキモイ、自己中心) ●自尊心が異常に強く、自分が馬鹿にされると怒るくせに平気で他人を馬鹿にしようとす る(ただし、相手を表面的・形式的にしか判断できず(早合点・誤解の名人)、実際には たいてい、内面的・実質的に負けている) ●本音は、ものすごく幼稚で倫理意識が異常に低い(人にばれさえしなければOK) ●「常識、常識」と口うるさいが、実はA型の常識はピントがズレまくっている(日本 の常識は世界の非常識) ●権力、強者(警察、暴走族…etc)に弱く、弱者には威張り散らす(強い者に弱く 、弱い者には強い) ●あら探しだけは名人級(例え10の長所があってもほめることをせず、たった1つの短所を見つけてはけなす) ●基本的に悲観主義でマイナス思考に支配されているため性格がうっとうしい(根暗) ●一人では何もできない(群れでしか行動できないヘタレ) ●少数派の異質、異文化を排斥する(差別主義者、狭量) ●集団によるいじめのパイオニア&天才(陰湿&陰険) ●悪口、陰口が大好き(A型が3人寄れば他人の悪口、裏表が激しい) ●他人からどう見られているか、人の目を異常に気にする(「世間体命」、「〜みたい 」とよく言う) ●自分の感情をうまく表現できず、コミュニケーション能力に乏しい(同じことを何度 も言ってキモイ) ●表面上意気投合しているようでも、腹は各自バラバラで融通が利かず、頑固(本当は 個性・アク強い) ●人を信じられず、疑い深い(自分自身裏表が激しいため、他人に対してもそう思う) ●自ら好んでストイックな生活をし、ストレスを溜めておきながら、他人に猛烈に嫉妬 する(不合理な馬鹿) ●執念深く、粘着でしつこい(「一生恨みます」タイプ) ●自分に甘く他人に厳しい(自分のことは棚に上げてまず他人を責める。しかも冷酷) ●男は、女々しいあるいは女の腐ったみたいな考えのやつが多い(例:「俺のほうが男 前やのに、なんでや!(あいつの足を引っ張ってやる!!)」)
>>438 >整列に乱数を使った場合どう並ぶかは保証されないから
>本当にランダムになるか分かったもんじゃないよ。
....??
>>436 のソース良く読んでくれた?
言いたい事はわかるんだが、「整列に乱数」は使ってないが。
JavaScriptの配列オブジェクトの"sort"って、どういう処理を行ってるか、知ってる?
念のため
”Array#sort(func)”
この場合のfuncは、「ソート方向を」返す必要がある。インデクスじゃない。
-1(以下) , 0 , 1(以上) の値を返す。
俺が書いたのは、その「方向」をランダムにしただけ。
つまり、
>>423 の要件を整理して...
>0〜6の数字をランダムに重複させずに並べたいのですが、上手く出来ません
これは、「順に規則性の無いソート」と読めるだろ? つまり、そういう事。
444 :
434 :03/01/26 15:04 ID:???
>>435 時間がないんです
省略してくれてもいいんで書いてください
御願いします!
>>444 JavaScript とは、Netscape Communications 社が開発したプログラミング言語です。
同社の Netscape Navigator 2.0 で初めてサポートされ、Microsoft 社の Internet Exp
lorer 3.0 でも同様の機能がサポートされました。
JavaScript を用いることにより、ブラウザで表示するウェブページの上で、フォームに
入力した値をチェックしたり、時刻を表示したり、さらにはゲームまでできたりします。本
ページを参照することで、この JavaScript の魅力を、少しでも皆さんに知ってもらえた
らと思います。
おー!スゲー!! つまり分析できなかったのは、
>>438 という事か。
カンドウシタヨ
何もしなかった
>>446 に発言権など無いと思うが。
>>442 って「比較関数に」乱数を使ってるんでしょ?それが問題だと思うけど。
>>448 最悪の場合一生終わらない可能性もあるわけか。
ム板に住んでるくせに この手のコールバック関数書いたことないんじゃないの?
まずECMA-262ではArray.prototype.sortの比較関数はconsistentでなければならないと 規定している。そうでない場合どうなるかは保証されないだろ。で、naiveにバブルソート した場合のデモ。test2に掛かる時間を計測してみれ。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> function myarrsort(a, f) { var done = false; while(!done) { done = true; for(var i = 1; i < a.length; ++i) { if(f(a[i-1], a[i]) < 0) {var t = a[i]; a[i] = a[i-1]; a[i-1] = t; done = false;} } } } function test1() { var a = [1,9,8,2,4,7,6,3,5,11,19,17,13,14,12,18,15,21,24,22,28,27,23]; myarrsort(a, function(x,y) { return x-y; }); alert(a.toString()); } function test2() { var a = [1,9,8,2,4,7,6,3,5,11,19,17,13,14,12,18,15,21,24,22,28,27,23]; myarrsort(a, function(x,y) { return (Math.random()*2)>1?-1:1; });alert(a.toString()); } </script> </head><body><form action="#"><p> <input type="button" value="test1" onclick="test1()"> <input type="button" value="test2" onclick="test2()"> </p></form></body></html>
!DOCTYPEさんキタ━━━━(゚∀゚)━━━━ッ!!
ついでに。consistentにする方法としては、比較関数を2つの 引数に基づくハッシュ関数にすることが考えられる。でも整列 ってよくてO(n log n)の時間が掛かるじゃない。既に出ている 先頭から順にランダムな位置と交換するのを1回ずつやるなら O(n)なんだから、その方が素直だしいいコードだと思うけどね。
なぞったような内容だな
違いは比較関数が乱数じゃまずいだろという指摘に納得しなかった 奴がいるところだね。
なので、
>>449 >最悪の場合一生終わらない可能性もあるわけか。
それは、ありえないって。
つーか、誰も実行して確認してないのかYO!
試しに sort(func)のfunc部分の戻り値を「常に-1」「常に1」「常に0」で試してみるといい。
#なんども言うようだが、「インデクスを操作しているんじゃない」
常にいくつ、ならconsistentだが乱数はconsistentじゃないだろ。
>>ム板住人 俺もム板住人だけど、基本的にここは素人が集まる所だから、ここは一つこう言ってはどうか。 「オブジェクト指向の基礎からやり直せ」
>>460 >常にいくつ、ならconsistentだが乱数はconsistentじゃないだろ。
>>436 のソースを要再確認。
>return (Math.random()*2)>1?-1:1;
三項演算子って、知らないか?
463 :
451 :03/01/26 16:50 ID:???
>つーか、誰も実行して確認してないのかYO! 特定の実装の実行結果を必ずしも信用できない (信用した結果ハマることがある)のもこのスレの特徴かと。
乱数問題は別として、そもそも三項演算子を使う必要なし。ECMA-262では 比較関数の正/負/零に応じて比較順位を判断するとしている。 だから「return Math.random()-0.5;」で同じこと。
>>463 んー... JavaScriptの Array#sort() って、バブルなの?
..確かに
>>451 のアルゴリズムだと無限ループ確定なのはわかるんだけど...。
ただ
>>451 のアルゴリズムの「キー」となっているのは、「値」だよね。
俺は以前仕事で、あれ(
>>436 )よりさらにトリッキーな処理(@IE)を書いたんだが..。
例えば、引数に渡るのが以下の独自オブジェクトのインスタンスで...
function CFoo() {
this.arg = null;
this.setArg = function(arg) { this.arg = arg;};
this.getArg = function() { return this.arg;};
}
var oFoo = new CFoo();
これを収めた配列(Array)に対して、sort(func)を行う、と。で、
この時のsort対象は、Arrayのインデクスでなく、CFooインスタンスのメンバ arg。
..で、全然問題なかったんだけどそれって要するに
>>464 が言うように「特定の実装」が故の事なのかな??
バブルソートかどうかの問題ではない。整列アルゴリズム が何であろうと、consistentでない比較関数を渡したら あるときはxよりyが大きくあるときは逆という判断が帰る のだから、整列アルゴリズムがまだ整列し終わっていない と判断し続けていつまでも終了しない可能性が0ではなくなる。 現実にはまあ大丈夫だろうけど、まっとうなコードとしては そういうことはするべきでない。計算量O(n)のまっとうな方法 が知られている以上なおさら。
ていうか、書いてて思ったんだけど、 俺のコードって、要するに「IEという特定の実装の揚げ足を取った」ようなコードだって事か...。 俺の場合、基本的にイントラ環境のWebシステム作る事が多いから、 外向けの「クライアントが確定できない」状態というのを意識してなかったかも。
>整列アルゴリズムがまだ整列し終わっていない
>と判断し続けていつまでも終了しない可能性が0ではなくなる。
いやだから、その判断て
>>451 の例だと自分で実装してるでしょって。
すくなくとも、
>>466 のような「1ユーザの書いたどうなってるかわからない構造を持つ比較対照」
に対して、エンジンは「整列が終わって無い」と、どうやって判断できるの?
#ただ言いたい事はわかるよ。これは不毛な煽りじゃないから。念のため。
ちなみに
>>436 の例だと、
>var arr = new Array("0","1","2","3","4","5","6");
の部分を、全て
>>466 の "CFooのインスタンス"に置き換え、sortに渡す関数参照の引数の扱いを、
return x.getArg() - y.getArg();
のように変更しても動くんだが。
つまり、「ソートが完了したか」の判断のフラグは、別に管理されてるんだろうから、
「特定の実装では」問題は無いと思う。...けど、これって広く一般的なJavaScriptスレでは、
「正しくない」と。
こういう事だよね。
consistentの意味が分かってないらしい
>>473 なるほど、そうとしか思えない。じゃ俺、風呂行くわ。
「ム板から来た」は「消防署の方から来た」の類似語
>>473 それは「そうあるべき」な話。"ソートの首尾一貫"の意味が必ずしもコードを限定するものじゃないだろって。
俺の場合、結局
>>458 のサイトの中の記述。
>要素の順序を並べ替えた Array オブジェクトを返します。
↑これがヒントになったんだが....、ま、特定の実装に依存してるんだろうな。
引っ込みつかないのは判るが落ちつけ
つーかたぶん論点がお互いにズレてる。
function set(a,b){ return Math.random()*Math.random() - Math.random()*Math.random() } var pos = ['AAA','FFF','CCC','DDD','EEE','BBB'].sort(set);
これ以上アホは要らないって
482 :
423 :03/01/26 18:12 ID:???
まずもっと激しく検索しなかったことを謝罪。 にもかからわず親切にコードを書いてくれたり、アドバイスをくれた方々に感謝。 ただ勉強始めたばかりの駆け出し者の俺には、話しの内容が途中から 難しすぎてついていけませんでした。 でも語句を拾って検索したりして内容だけでも理解できるように これから頑張ります。 ホンマニエエスレヤ…・゚・(ノД`)・゚・ ところで、結局どのコードを使うのが一番無難なんでしょう(^^;; ム板住人さんのコードでいいんですかね? 他の人がそうじゃない、ってわけじゃないですが丁寧に解説していただいたので せめてコードを使わせていただくだけであっても努力に報いたい…… ちなみにローカル環境でのテストでは問題ありませんでした。 ちゃんと七つの数字をランダムで並べることが出来ました。サンスコ!
ああいいお湯だった。それでさあ。461 はもしかしたら、 配列内の全ての要素の対(x,y)に対して比較関数が1回ずつ まず呼ばれてしまい、その結果をどっかに格納して整列が 実行されると思っているんじゃあないだろうか。そんなこと したら整列アルゴリズムがO(n log n)であっても計算量が O(n^2)になっちゃうよねえ。
>>483 sort()は「Arrayオブジェクトのメソッド」。この意味がわからないらしい。
OOマンセー
なんか急にスレが伸びてるけど、結局どうなったの?
要するに ム板住人の話はここでは異端だと。 そしてム板住人←このハンドルはやめれ、と。
>>423 あんたのことはどうでもいいんじゃない?
好きにしる
JavaScriptは、プロタイプベースなOO(ObjectOriented)言語です。
まー結局の所、環境の限定された所で開発するプログラマ的な感覚と、 正しいアルゴリズムにこだわる研究者とがお互いにポイントズレたまま討論していたって感じか? 元々の423の >0〜6の数字をランダムに重複させずに並べたいのですが、上手く出来ません >#用途は6枚の画像を六ヶ所にランダムで表示させたいんです について、それがブラウザとかをある程度限定できているのなら、 ム板住人(このハンドルやめれ)の方法で問題無いと思う。
漏れは環境を限定できるか否かの違いだけだとオモテターヨ…
>>491 そんなのを「プログラマ的な感覚」とは言わない
インタフェースの規約がある場合はそれを守って使うのが当たり前
じゃないと実装が変わったときに困るんだよ
>>489 >>458 で、ム板住人が言っていた
>sortっていうのは、デザパタで言う所のストラテジ・パターンだと思うのだが、
このへんのくだりに誰も反応しないあたりで、ここでOOな話するのは間違いな気がする。
>>483 が言っているのは構造化ベースの考え方。
>>484 が言っているにはオブジェクト指向的なモデルの捕らえ方。
で、ム板住人の書いたコードは、どっちかというとこのOO的な考え方に基づいていると思われ。
495 :
491 :03/01/26 18:54 ID:???
>>493 インタフェースの規約を守らないコードなんて出てきたか?
それを言うなら、むしろMSに....。
>>494 JavaScriptには普通の継承ないからねえ。いくらOO的でも別に
構わないんだけど規約を守っていない使い方はOOだってアウト
でしょ。Design by contractなんていうのもあるよ。
まだわかってないのか。 function(x,y) { return (Math.random()*2)>1?-1:1; } という関数をArray.prototype.sort()に渡すのは規約を守って いないとゆーに。ECMAの原文貼りましょうか?
>>496 「普通の継承」ってどんな?
"JavaScriptは、プロタイプベースなOO(ObjectOriented)言語です。"
Selfとかのクラスベースでないオブジェクト指向言語って、知らないのか。
プロトタイプベースなOOについて論じたければム板で やってくれ。このスレではさんざんガイシュツなんで。
502 :
476 :03/01/26 19:06 ID:???
旧ハンドル「ム板住人」です。失礼しました。
なんか気づいたらエラい事に...。
つーかね、
>>498 。だから、言いたい事はわかるって。
ただ、俺の書いたコードは「IEという限定された環境なら、その実装の揚げ足を取って実行できる」
という例な訳で....。別に俺は「ECMAに正しくあれ」と思った訳では無い訳で。
#そんなの思ってたら、ヒネらないって。
ただ、Array#sort(func)のfuncの引数に、別のオブジェクト参照を用いても動くってのは、
(ECMAに準拠していないやり方なんだろうけど)そのソート・キー(インスタンスを特定するキー)は
別に存在しているのでは、と思っただけで。IEでは。
それが、要するにストラテジ・パターンとして、入れ替えられるfuncを受け取る、Arrayオブジェクト側が
持っているんじゃないの?と。IEの実装では、と。
要するに、俺が「正しく無い」事を知らなかったと。
>>500 ガイシュツな割には理解が希薄なんだな。
揚げ足を取って実行できるかどうかは分からないよ。乱数なんだから 何万回かやったら駄目なことがあるかも知らない。それとも1ヵ月の regression testをやったとでも言うかね。別にArray#sort(func)で あろうが独立関数のfunc()であろうが同じアルゴリズムの問題だって。 あんたが好きな配列オブジェクトのメソッドに見える書き方にしたければ Array.prototype.mysort(f) { ... }; とかすればいいだけだが。
(a) 配列の要素を一つずつランダムで決定するコード (b) ランダムな値を返す関数をarray.sortに与えるコード(=ム板住人のコード) (a) は、ECMAScript準拠の環境なら必ず意図した通りに動く (b) は、意図した通りに動くかは環境依存 それだけ
別にあんたに希薄だと思われようが自分的にはどうでもいいね。
507 :
504 :03/01/26 19:14 ID:???
スマソ、構文間違っているね。 Array.prototype.mysort = function(f) { ... }
508 :
502 :03/01/26 19:23 ID:???
509 :
504 :03/01/26 19:23 ID:???
面倒だから例題直したよ。データ少し減らしたらたまに実行完了するよ。 つまり環境依存じゃなくて本質的にたまたま動いたり動かなかったりするのさ。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> Array.prototype.mysort = function(f) { var done = false; while(!done) { done = true; for(var i = 1; i < this.length; ++i) if(f(this[i-1], this[i]) < 0) { var t = this[i]; this[i] = this[i-1]; this[i-1] = t; done = false; } } } function test1() { var a = [1,9,8,2,4,7,6,3,5,11,19,17,13,14,12,18,15]; a.mysort(function(x,y) { return x-y; }); alert(a.toString()); } function test1() { var a = [1,9,8,2,4,7,6,3,5,11,19,17,13,14,12,18,15]; a.mysort(function(x,y) { return x-y; }); alert(a.toString()); } function test2() { var a = [1,9,8,2,4,7,6,3,5,11,19,17,13,14,12,18,15]; a.mysort(function(x,y) { return (Math.random()*2)>1?-1:1; });alert(a.toString()); } </script> </head><body><form action="#"><p> <input type="button" value="test1" onclick="test1()"> <input type="button" value="test2" onclick="test2()"> </p></form></body></html>
一意に識別するキーなんかどうでもいいだろ。配列を整列するときにその 要素の大小関係を複数回問い合わせたらそのたびに違う結果が返るんだか ら整列アルゴリズムが終了するという保証がないだろ?
>>509 いや、だから...(w
その while(!done){ 〜 } の中の判定がIEと同じなのか、と...。
>一意に識別するキーなんかどうでもいいだろ。 話が伝わって無い予感。
513 :
50 :03/01/26 19:30 ID:???
スマソ、コピペ間違いでtest1()が2つあったね。1つ消してね。
514 :
508 :03/01/26 19:33 ID:???
>>509 やめると言いつつ書くのは粘着と知りつつも...。
>if(f(this[i-1], this[i]) < 0) {
>var t = this[i]; this[i] = this[i-1]; this[i-1] = t; done = false;
>}
の、スワップの処理は、「値」じゃなくて「キー」を元に行うから、って言いたい訳で。
var arr = new Array(2);
arr[0] = "A";
arr[1] = "B";
arr.sort(function(x,y){ ... });
の、x は、(例えば)arr[0]という「オブジェクト参照」であると。
>>511 少なくとも2つの要素を比較するのに「f(要素, 要素)」を呼ぶよね。
同じ2つの値に対してなら何回呼んでも同じ結果が返るというのが
consistent。consistentでない場合、整列アルゴリズムはどこまで
やったら整列が終わったかを判断するのに「f(要素, 要素)」を呼ぶ
わけだから、運がわるいといつまでも終わっていないと判断し続ける
ことがあるだろ?もちろん、運が悪くても必ず終わるアルゴリズムも
あるよ。ただ、IEで実行して終わったからといって、それなら必ず終
わるアルゴリズムだったとは断言できないわけ。だってたまたま乱数
の運がよくて終わったのかも知れないから。それを「外側から」判別
するのは無理だろ。
>>514 もともとの例題が数値の配列であり、JavaScriptでは数値はオブジェクト
ではなく「値」だけど。なおJavaScriptでは文字列も「値」だけど。少なく
とも言語仕様上はね。
>>514 値だろうがキーだろうが大小関係を乱数に基づいて決めるんでしょ?
2回同じものを比較しても乱数だから大小関係はそのつど違ったりする
わけでしょ?
518 :
514 :03/01/26 19:45 ID:???
>>516 あ、失礼。ここで「オブジェクト参照」と言ったのは、
>>466 >>472 のようなケースも可能という
前提があっての事。
その通り、文字列も数値も「値」として使えます。
#余談だが、javaScriptでは、#"ABC".substring(0,1); っていうメソッドも
#使える時点で、実はスタティックオブジェクトなのではないか?
519 :
514 :03/01/26 19:46 ID:???
#"ABC".substring(0,1); っていうメソッドも ↑この#は余計。
電波に支配されちゃった♪
> "ABC".substring(0,1); a.b を評価する際には a をオブジェクトに型変換した結果のプロパティ b を返すのが ECMAScriptの仕様だ。
>>514 おまえが余計
毎回名前に入れる数字変えてたらキーワードであぼーん出来ねえだろハゲ
言語仕様を読まずに想像で語るのはやめたら?議論したいなら いつでもゆっくりやればいいじゃない。
>>521 だからJavaScriptはプロトタイプOO言語だってば。(藁
オブジェクトに型変換できるプリミティブな文字列って何よ。
それこそ、オブジェクトだろうが。(禿藁
エンジンの内部実装で、プロパティのゲッターセッターがメソッドでラップされてるの
知らないのか。
525 :
514 :03/01/26 20:04 ID:???
>>521 うーん...。なんかスレ荒らしてるような気がしてきた。
>>523 >言語仕様を読まずに想像で語るのはやめたら?
そうだな。確認する。
すまなかった >>ALL
アホに釣られなきゃ早く終わるぞ
ム板住人はム板に居た方がいい。でも、ちょとJavaScriptの新しい面を見たような気がする。 なんか勉強にはなたーよ。乙カレ。
ここのスレ住人は頭固いからな。乙。 OOマンセー
しかし本当にここの香具師らはScriptの範囲でしかモノ考えられないのな。(禿藁 まぁ素人集団だからな。”値で扱える”と”オブジェクトでない”が同義になるっていつ決まったのか。 それこそECMAの規定じゃないだろうが(禿藁 OOマンセー
530 :
434 :03/01/26 20:26 ID:???
つまらない会話ばっかりしてないで
僕の質問に答えてもらえませんか
>>434 です
よろしく御願いします
/* 解答が得られるまであげ続けます */
<!DOCTYPE 住人として一言(自分が代表ってことは全然ない)。 このスレはJavaScriptとブラウザ機能を組み合わせてどういう ことができるかとかの工夫がメインだし、もともと大きいコード 書くのに向いた言語でもないんでOOはもちろん活用するんだけど 他のOO言語の流儀で押してこられてもあんまり同感できないことが 多い。一方、言語仕様はECMAに準拠(ただし色々実装によりヘンな ことあり)、というのは合意されているんでそれも他の言語ではどう とか言われてもあまり関心は持てない。ECMAの定義では「文字列値」 と「文字列オブジェクト」の両方があるんで文字列値はオブジェクト じゃないかと強弁されても迷惑なだけ。JavaScriptの仕様に準拠した カコイイ工夫だったら大歓迎なので今後ともよろしく。>
>>530 回答が得られるまであげ続けるというのは我儘では? でも簡単だよ。
<script ...>
なんとかかんとか
</script>
の「なんとかかんとが」の部分を「なんとか.js」に入れて
<script src="なんとかかんとか.js" ...></script>
に直すだけ。
そうそう、ファイルに入れる時「<!--」で始まる行は削除してね。
以上。
すまそ、「"なんとか.js"」だね。しかしあっという間に 100レスくらい消費してしまったねえ、皆様おつかれ。
>>530 (´ー`)。oO( 自分の知らない話は、全部つまんない話か...。 )
>>531 なんか同意したい。
ム板住人のやり方はム板では(恐らく)通用するのよ。
でもここじゃ畑違いって感じがね。
536 :
Name_Not_Found :03/01/26 21:44 ID:bV0ZoqkY
なるべくメモリーなどのリソース消費を抑えたい場合、 一つの関数にまとめて処理をさせた方がいいですか。 それとも関数を小分けにしたほうがいいですか。
537 :
Name_Not_Found :03/01/26 22:11 ID:Gc30wkDJ
<HTML> <IMG src="JavaScript": resizeTo(100,100); x=(screen.width-100)/2; y=(screen.height-100)/2; r=y; d=0.0; function circulate() { moveTo(x+Math.cos(d)*r,y-Math.sin(d)*r); d+=Math.Pl/5.0; if(d>=Math.Pl*2){d=0.0;} } setInterval('circulate()',500); "> </HTML>
>>536 お答えします。そんなことはどっちでもいいです。だから、
読みやすくデバッグしやすい構成にすることを重視したら。
ひじょーにシビアな場合で言えば、関数の数が少ない方が
有利といえば有利だとは言えます。
>>537 これは何?<img>のsrcにjavascript: URI書いてもあんまし
しょうがないと思うが。何がしたいのか言ってみれ。
>>539 IE とか昔の NN とかだと IMG の javascript: URI を実行するから
それで何かを企んでいるとか、
そういうページやサンプルに遭遇したとかじゃないかな。
>>529 さんざん荒らしておいて、最後はスレ住人に喧嘩売って逃げ帰るのか?
「香具師ら」とか「禿藁」とか「マンセー」とか、お前の一日は2ちゃんが全てなんだな。w
語る前に空気を読む力養っとけ。
>>537 はブラクラのコードっぽいな。検索したら出てきた
543 :
536 :03/01/26 22:55 ID:???
>>535 あれをム板の代表と思うな
理由はログ読んでな
>>544 誰も代表とは思って無いと思うが。
ただ、ああいう考え方をするやつもいるってだけ。
ていうか、このスレの人間であいつの言ってる事理解できたやつっているのか?
>>531 氏 以外で。
俺も仕事ではJavaをメインに使うので、なんとなく言いたい事はわかるんだけど、
ちょっと論点がスレ違いに進んでいったかな、とも思った。
546 :
545 :03/01/27 00:15 ID:???
まあ、親切でこのスレの住民を「教育」してくれようとしたみたい だけど、その教育内容がちょっとアレだったからねえ…しかし 三項演算子知らないだろうとかArray.prototype.sort()の使い方 知らないだろうとか相当見くびられてましたな俺達。
>相当見くびられてましたな俺達。 途中に出てくる煽り厨房のせいだな。ま、どこのスレにもいるが。 ま、餅は餅屋って事で。勉強が大事。
煽り厨房のせいと言うより、お互いに意思疎通ができてないのが、真相。
何があったって、後半はム板住人が
>>504 のコードにケチを付けてただけ
当初の話題とは全く関係ない
``捨てゼリフ吐いた方の''ム板住人に至っては、最初から最後まで
噛み合わない電波を飛ばしまくったアホ
551 :
535 :03/01/27 00:42 ID:???
また引き金を引いたかな。 申し訳無い、忘れてくれ。 ところで、545ってDOCTYPEの人?
ここのヤシらはム板に特別意識でもあるのか? 実際逝ってみればいいよ ピンきりだから
>何があったって、後半はム板住人が
>>504 のコードにケチを付けてただけ
そうか?なんか、俺にはえんえんと自分のコードの説明を繰り返してるようにしか見えなかったが。
本人も「繰り返しになるが」ときて、前レスの説明してたし。
やっぱ、特別意識でもあるのか。(w
>``捨てゼリフ吐いた方の''ム板住人 あれはたぶん、ム板の住人じゃない予感がする。むしろリア厨。
555 :
HP製作に凝ってます :03/01/27 01:18 ID:oi8DWxFM
557 :
HP製作に凝ってます :03/01/27 01:38 ID:oi8DWxFM
いじわる
558 :
Name_Not_Found :03/01/27 01:47 ID:gQSM2iGv
>>557 ソース読んで、どこがどうわからないか、くらい調べて聞かないとある意味こういわれるのも当然のような。
それとも、ここで一から説明しろ、とでも言うのかい?
559 :
558 :03/01/27 01:48 ID:???
すまん。あげちまった。
「〇〇住人」っていう帰属意識がきもいな。
>>560 まだひっぱるか(笑
やっぱ特別意識が(以下略
<!DOCTYPE ム板も読むよ。でも宗教論争だらけでつまらんという 印象。やっぱカコヨク動くコード書いてなんぼだと思う。その点 JavaScriptは一式書いて貼れる題材が多いから好きなのだよね。>
>>557 ああいうメニュー出すのはすごくガイシュツなの。
>>7 のサンプル
サイトで探すとか、このスレの過去ログ
>>2 を読むとかすれば沢山
話題あるよ。簡単に説明するなら、メニュー部分をレイヤー(visibility:
hidden)の要素にしといて、メニューバー部分のonmouseoverで見えるよう
に変更する、ということね。
教えて下さい ステータスバー表示有無の判断は可能でしょうか? if(ステータスバー有無の判断) { ステータス表示有りの処理 } else { ステータス表示無しの処理 } と処理がしたいのですが
あの、クライアントのブラウザで JavaScriptが使用可能かどうか、調べる方法と言うのはあるのでしょうか? 我に返ったらJavaScriptでチェックしようとしてコマンドを調べていた 自分がいて、なんだかドット疲れてしまいました ドウゾヨロシク
566 :
365 :03/01/27 12:59 ID:???
事故レスです。うおっ!!<NOSCRIPT>忘れてた! これでいいんだろか・・・ いいんだよね。 刷れ汚しスマソ。
>>564 ステータスバーを読む機能ってのは聞いたことがないなあ。ないんじゃない?
>>567 さん、有難う御座います
やはりそうですか・・・
検索しても見付からなかったのですが、ここならもしかしてと思って聞いて
みたのですが
諦めるしかなさそうですね、有難う御座いました
569 :
434 :03/01/27 15:37 ID:???
>>532 ありがとうございます!
感謝感謝です!
571 :
h :03/01/27 21:34 ID:???
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
24時間受付 090−8505−3086
URL
http://www.h5.dion.ne.jp/~grobal/ メール
[email protected] グローバル探偵事務局
>>570 >Current Window
どんなOS使ってるんすか?WindowsならForegroundWindowもしくはActiveWindowだけど。
>>570 Moz なら innerHeight/innerWidth で取得できるよ。
リンク先のサンプルが動作しないのはソース見りゃ一目瞭然。
if (document.layers) なんてやってるコードが Moz で動くわけがない。
574 :
570 :03/01/27 21:59 ID:???
>>573 ありがと。試してみた。Safari, Moz だとうまくいった。
が Mac IE だとダメ。
最悪 Mac IE は捨てられるが、Win だとどうなの?
>>574 WinIE だと文書型宣言によって変わる。
互換モード(及び5.5以下)の場合は
document.body.clientWidth (or clientHeight)
標準モードでは
document.documentElement.clientWidth (or clientHeight)
577 :
574 :03/01/27 22:24 ID:???
>>575 なるへそ。さんくすこ。
今家の PentiumMMX 233MHz でも確認した(遅っ)。
document.body.clientWidth (or clientHeight) は
WinIE, Moz系(含む Mac)でいけるね。
これでいけないのは MacIE と Safari か・・・
切り分けるのは何とかなりそうだけど、
Window サイズってあんまし使わないの?
という自分も初めて使ってみたが。。
578 :
577 :03/01/27 22:25 ID:???
>>576 うぉっ、メチャ外出。スマソ&さんくすこ
窓サイズは中で何かを動かすときに動く範囲の計算とかには使う。 窓サイズをかってに変更するための計算に使うのは最低だからやめよう。 窓サイズに応じてコンテンツの詳しさを変更してあげるなんていうのは カコイイかも知れない。切り分けたって大した量じゃないからとりあえず 統一されていなくても用は足りる。なぜ統一されてないかというと、 HTMLやXMLを表示している部分はDOMが標準化してるが、窓だとその外側 の枠なんで標準がないから、Netscape系とIE系で勝手にやったというか。
要するに <!DOCTYPE は、ム板も読むが、宗教論争くらいしか理解できない、と。 JavaScriptまんせー
<!DOCTYPE 宗教論争も理解できません。そゆことで。>
村意識強いよな。もっと勉強してさ、知らない技術にも手出してさ、
なんでもありになろうじゃないか。みんなも、俺も。
一番よくないのは、自分のプライド守る為に、他の技術を排斥する事だと思うんだよな。
ム板のやつをどう思おうと勝手だが、「あなたのやり方はこちらの水に合いません。お引取りを」
じゃ、それこそ宗教戦争じゃないの?
だから
>>581 (DOCTYPEさん)も、もっと技術自体に貪欲になれって。
その方が楽しいって。まじで。
わからない事をわからないと認める事が、理解の第一歩だって。 スレ汚しごめんね。
煽っといて逃げるのは(・A・)イクナイ!
どうせならんまい餌つけた釣りをヨロシク。
あ、ごめんね。まじで煽りじゃない。 つーか。なんか最近ここのスレ伸びてると思ったから、前レス読んでたんだけどさ。 なんかあのム板住人って人が、なんか孤独な感じがして。異邦人ていうか。 で、なんか気づいたんだけど、あの人がレスの端々に書いてた疑問とか質問に、 誰も答えないで煽ってばっかりいるみたいだったから..。 ま、板違いには違いないので、帰って良しだったんだけど...。
あ、ごめんね。まじで煽りじゃない。 つーか。なんか最近ここのスレ伸びてると思ったから、前レス読んでたんだけどさ。 なんかあのム板住人って人が、なんか孤独な感じがして。異邦人ていうか。 で、なんか気づいたんだけど、あの人がレスの端々に書いてた疑問とか質問に、 誰も答えないで煽ってばっかりいるみたいだったから..。 ま、板違いには違いないので、帰って良しだったんだけど...。
で、あのDOCTYPEって人が、なんかエラそうな事言ってるわりには、村意識強いのかなって、 ちょっと思っただけ。どうなのかな。そこんところ。
590 :
589 :03/01/28 00:05 ID:???
また来たよ…
とにかく板違いな書き込みとスレ違いな書き込みは勘弁して欲しい。
JavaScriptの話題であればやったらいいじゃん。でもECMA-262は読んで
ないと厳密な話ができないからそのつもりで読んで来て欲しいね。
規格は読みたくない、俺の話は聴けなんて無茶苦茶なことは言わんよね?
>>592 ちらっと見ただけだけどIDに「'id'+j+i」を入れているじゃない。
たとえばjが11でiが1だと「id111」、jが1でiが11でも「id111」
で重複IDが振られている(そうするとdocument.all()で返される
ものが単一オブジェクトじゃなく集合になるんだったよな)、ので
styleプロパティを直に適用できない、なんてことはないの?
じゃ、'id' + j + '_' + i とかで解決だね
<!DOCTYPE 偉そうでスマソね。性格悪いのは自覚してるんで 自重するよ。>
596 :
592 :03/01/28 01:37 ID:???
>>593 ,594
ホント有難うございます。解決しました〜!
597 :
593 :03/01/28 08:02 ID:???
おおビンゴか。バグ取れてよかったね。「途中まで動くから プログラムが間違ってない」なんてことは全然言えないでしょ? いかん、相変わらず一言多いな俺。
598 :
Name_Not_Found :03/01/28 10:52 ID:nAiECowP
>>593 自分の都合だけで考えるなよ。
JavaScriptの理解にECMA-262を読むことは必須ではない。
このスレには、そういった普通の人が中心に質問に来てるんだから、
それが嫌なら別スレを立てろ。
JavaScriptで入力された文字のシフトJISコードってわかる? escape関数もユニコードだし・・。 JavaScriptじゃ無理なんかな?
>>598 593は「厳密な話」をするには必要と言ってるだけではないの?
一般的な理解にECMA-262必須と言ってるようには俺には読めない。
>>599 ガイシュツ。要VBScript。一応こんなサンプルもあるが。
tohoho.wakusei.ne.jp/wwwxx017.htm
>>597 >いかん、相変わらず一言多いな俺。
文字だけのコミュニケーションはここら辺に問題(?)があると思う
悪意無い余計(?)な一言なのに読み手側で悪意があると感じれば論争に
なってしまうしね
文字だけで自分の言いたい事を全て(感情も含めて)語るのは限界がある
のだから書き手、読み手の双方で少し控え目にする方がいいのかも
>>598 私は
>>593 の書込みは「ECMA-262を全て読め」って事じゃなく知りたい事
をECMA-262の中から見つけ出す努力位はして欲しいと読み取れました
その上で「無かった」「見付けられなかった」ならここで聞くのもありだ
と私は思います
>JavaScriptの理解にECMA-262を読むことは必須ではない。
これは私も賛成ですが、上に書いた努力はして欲しいですね
602 :
599 :03/01/28 11:38 ID:???
>>600 おわっぷ、すまね。
やっぱJavaScriptだけで自由に変換はむずかしいか・・
そのサンプル参考にしていろいろやってみるよ。
さんくすこー
603 :
Name_Not_Found :03/01/28 11:39 ID:DKMscpuR
変数に入っているものが、数値か否かを調べるには どうすればいいでしょうか? phpのis_*みたいな関数があればいいのですが…
自分も「全員がECMA規格を読む」ことは別に必要ないと
思うよ。ただ、突っ込んだ厳密な議論をするのに他の言語
の知識を援用して「俺が正しい」と言われるのはこのスレが
JavaScriptスレである以上困ると。
>>603 if(isFinite(Number(変数))) ...
でどうかな。
isNaN(変数)
>>603 if ( typeof 変数 == 'number' )
>>606 それはまずいよ。'123'とかいう文字列だとtypeofは
'string'になっちゃう。isNaN()は数値に変換してから
判定してくれるからだいじょうぶだけど'Infinity'とか
いう文字列だとfalseになっちゃうよね。もともと
>>603 がそれも数値だという前提だったのならOKだけど。
>>607 単純に数値かどうかを判定するなら、余計な型変換が不要な
('123' が文字列と判定された方がいい)ケースもあるかと。
isNaN や isFinite では
true も false も null も数を表す文字列や空文字列も
valueOf() で数値返してくるオブジェクトも
みんな数値ってことになる。
>>603 まあ用途に応じて使い分けるということで。
昔あった他力本願っつーアンテナサイト(今は閉鎖されてます)で、 ○_self ○_blank みたいなラジオボタンがついてて、選んだtargetでリンク先を起動できる、ってスクリプトが 搭載されてたんですが、どんな感じで実装してたんでしょうか?
>>610 function chgTarget(mode){
var as = document.getElementsByTagName("a");
for(i = 0; i < as.length; i++){
as[i].target = mode;
}
}
>>610 <base target="_self"> を HEAD にいれといて
document.getElementsByTagName('base')[0].target = '_blank';
とかってのもアリかな。
画像の width と height を読み込まないで取得する方法はありますか? というのは例えば、画像があって、それを拡大表示させるのに、 サブウィンドウを開くようにして、そのウィンドウのサイズを 調整したいのです。 でも、サブウィンドウは 別の HTML ファイルを開くのではなく、 window.document.open(); window.document.write('<html>'); ..... window.document.close(); みたいにやろうと思ってます。
>画像の width と height を読み込まないで取得する方法はありますか? 無理
615 :
613 :03/01/29 00:30 ID:???
だから、読み込んでからやればできるかも
617 :
615 :03/01/29 00:45 ID:???
>>616 あ、そうか読み込んでから resize すればいい、ってことでしね。
う〜ん、迷う。
今、手動で全部縦横調べて、引数で解決しようとしてたしなぁ・・
開く前に、元のウィンドウの方で読み込んどくとか
619 :
617 :03/01/29 05:04 ID:???
>>618 それってどうやるのでしか?
正確には拡大でなく、
アイコンやテキストからリンクしたいので、
元ウィンドウには表示したくないのでしが。
ScrollBy や ScrollTo でスクロールさせると、必ずスムーズスクロールになります。 瞬間的にスクロールさせる方法はありませんか。
621 :
Name_Not_Found :03/01/29 07:17 ID:6SXe4OuO
>>620 自分のとこでは全然ならないが(N4,Gecko,Win IE6)、そちらの環境何よ?
>>619 だから表示しないレイヤーとか用意しといてそこに「表示」させる。
622 :
620 :03/01/29 07:29 ID:???
>>621 うちはWin IE6です。
滑らかスクロールにならないんですか、うらやましい。
623 :
621 :03/01/29 07:34 ID:???
うらやましいだろ?じゃあな
624 :
621 :03/01/29 07:53 ID:6SXe4OuO
おいおい… <a href="javascript:window.scrollBy(10000,0);void(0)">test</a> これで一気に一番下まで移動しないわけね?
>>622 設定の「スムーズスクロールを使用する」は勿論OFFってるよな?
アフォか
628 :
グレ-トムタ :03/01/29 10:02 ID:hpMCfrJR
あの〜一つのhtml内でリンクしたjavascriptとheadタグ内のものと 2つ使いたいんですがこれは下の書き方で良いのでしょうか? <script type = "text/javascript"> function local(){ pat1 = "ここが内部"; } </script> <script type = "text/javascript" src="kokogagaibu.js"> </script>
629 :
621 :03/01/29 10:02 ID:???
鬱だ…
631 :
グレ-トムタ :03/01/29 10:06 ID:hpMCfrJR
>>630 試して動いたんですが、二回javascriptの宣言(っていうんですか?)
しちゃっていいのかな〜と思って、、
2回どころか好きなだけ使え
633 :
グレ-トムタ :03/01/29 10:20 ID:hpMCfrJR
どもです、 好きなだけ使わせてもらいます。
634 :
Name_Not_Found :03/01/29 10:47 ID:k11fbj34
>>634 フォームに入力したデータを、セッション変数、隠しフィールド、または cookie として値を保存してください。
636 :
634 :03/01/29 12:08 ID:???
>>635 回答有難う御座います、私の言葉足らずでした
実は既にかなりのページを作成してしまい今から全てのページで技術情報に
載っている対処方法を入れるのはかなり手間がかかってしまいます
そこで何か抜け道が無いのかと思い質問しました
余談ですが作成環境はIE5.0になっておりこの様な現象は出ていませんでした
今更ながら「できるだけ多くのバージョン」で動作確認が必要と痛感させら
れました・・・
637 :
Name_Not_Found :03/01/29 12:41 ID:su92g9Sa
出るジャン
640 :
Name_Not_Found :03/01/29 13:26 ID:su92g9Sa
641 :
Name_Not_Found :03/01/29 14:40 ID:b9ckYSUD
GIFアニメをクリックして別ウインドウを開く仕組みにしたいのですが、 ウインドウが開くとGIFアニメの動きが止まってしまいます。 動きつづけるようにはできないのでしょうか。 因みにこんな感じです。よろしくお願いします。 <A HREF="javascript:NewWindow('../***/***.htm','100','100')"> <IMG src="***.gif" width="50" height="50">
642 :
Name_Not_Found :03/01/29 14:44 ID:d8sw3eY6
jsでalert(0.3*51); とすると、 15.29999999… になります。 これをマトモに計算させるにはどうすればいいですか?
3*51/10
644 :
Name_Not_Found :03/01/29 14:57 ID:d8sw3eY6
>>643 0.3が固定ならいいですが、
数が2.33だったり0.007だったりしたらどうなるのでしょう。
そもそもなんでこんな値が返ってくるのでしょう??
>>644 丸め誤差、打切り誤差などなど。情報科学の基礎なのでお勉強が吉。
>>644 16桁くらいの精度はあるんだからそれで十分じゃないの。
15.29999999999くらいでしょ。なんでそうなるかって、
0.3っていうのは2進数で表すと無限小数になるから。それが
嫌なら整数だけで計算するように工夫するんだね。別にJavaScript
でなくたってCだってJavaだってC++だって同じことだよ。そうそう、
COBOLで計算するという手があるかも。
>>645 ありがとうございます。ぐぐりました。
なるほど、内部的に二進数で計算してるんですね。
>>646 手元にあったMSXエミュレータのBASICで計算してみたところ
ちゃんと計算出来たので、「なんで?」と思ったのです。
あれはBASICだから内部が10進なんですよね。
>>648 その「ちゃんと」という発想をやめるのが吉。10進数で計算した
場合は「1/3」なんかは「ちゃんと」計算できない。どのみち計算機
で計算した場合は近似値なんだ、精度を保証したければ誤差解析する、
と割り切る。
>>641 <A HREF="javascript:NewWindow(...);undefined">...
に直してみれ。
>>650 undefined つけようとつけなかろうと
NewWindow が何も返さないなら同じ気が。
>>641 >>650 の方法で上手くいかなかったら
<A HREF="#" onClick="NewWindow(...);return false">...
でがんがれ。
652 :
650 :03/01/29 17:25 ID:???
いや、もしかして何か返しているかも知れないと思って…
>>652 何か返してたらGIFアニメが止まるだけじゃ済まないと思う...
654 :
650 :03/01/29 18:21 ID:???
なるほど…
655 :
641 :03/01/29 18:55 ID:phTnv9pc
いろいろありがとうございます。 試してみることにします。
656 :
641 :03/01/29 19:07 ID:phTnv9pc
教えられた通りにやってみたところ、 651さんの方法でGIFアニメが動かせました。 650さん、651さん、本当にありがとうございました。
>>641 そのやり方だと、形式的にjavascript:〜という新しいページに移動しようとするから、
新しいページを表示する前にまず、「中止」ボタンを押した場合と同じ現象が起こるってわけ。
↓なら大丈夫。
<A HREF="#" onClick="NewWindow(...);return false">...
var c=15; window.setTimeout("count()",1000); function count(){ c--; document.cntdwn.waits.value = c; if(c>0){setTimeout("count()",1000);} else{document.move.submit();} } (表示されるFormの部分) <form name="cntdwn"> 移動完了まで、あと<input type="text" name="waits" value="15" size="5">秒です。 </form> このような感じで、CGIの中で 一定秒数たったらページを飛ぶ(Form moveを実行する)ようにしているのですが waitsの部分にフォーカスを移しEnterキーを押すと、Form cntdwnが実行され、変なことになってしまいました。 Form cntdwnとmoveの内容を同じにしcntdwnでも移動できるようにしたところ カウントダウンしている秒数部分を「1」と打ち変え、Enterキーなどでショートカットできてしまいました… こういう場合はどのように対処すればよいのでしょうか(;´Д`) JavaScriptだけの問題ではないかもしれませんが…宜しく御願いします。
onsubmitでcの値が0以下なのを確認しる
arrayで var msg = new Array(); msg[0] = "Hello."; msg[1] = "Thank you."; msg[2] = "Good Morning.; このようにしてランダムで上の三つのどれかを表示するとして、 その時に一文字ずつ、例えばHelloなら Hとeの間に0.1秒ずつ間を空けて表示するやり方ってありますか? まず乱数を使って上の三つを表示して、 それからsetTimeoutを使うというのは何となくわかるんですが そこからができません…。 申し訳ないんですが教えていただけないでしょうか?
>>658 cntdwn の送信をキャンセルしる。
<form name="cntdwn" onsubmit="return false;">
>>660 あと charAt() とか substring() とかから使えそうなの探してみ。
664 :
660 :03/01/29 21:13 ID:???
var current = 0; var currentchat= 0; var output = ""; var SID; function movieplay() { if(!playcheck) { return; } if(movietype == 0) { //1行ずつ出します if(!msg[current]) { location.href = goal; return; } var str = msg[current]; output = makeHTML(str,true); parent.f1.location.href = "javascript:parent.output"; current++; SID = setTimeout("movieplay()",c_time); } else { if(SID != null) { clearTimeout(SID); } //1文字ずつ出します if(!msg[current]) { location.href = goal; return; } var str = msg[current]; var exit= (currentchat+1 > str.length) ? true : false; output = makeHTML(str.substring(0, currentchat),exit); parent.f1.location.href = "javascript:parent.output"; currentchat++; if(currentchat > str.length) { current++; currentchat = 0;
665 :
660 :03/01/29 21:14 ID:???
上のつづきです if(!playcheck) { return; } SID = setTimeout("movieplay()",c_time); } else { if(!playcheck) { return; } SID = setTimeout("movieplay()",a_time); } } }
666 :
660 :03/01/29 21:16 ID:???
↑これとランダムにarrayの中身を出すのを組み合わせるやり方がわかりません…。
>>666 これ、 msg の中の文字列を順に表示するスクリプトで
movietype=0; でmsg[0]から順番に一行ずつ表示、
movietype=1; でmsg[0]から順番に1文字ずつ表示するものだよね?
で「msg[0]から順番に」ってのをデタラメな順序にしたいと。
ただデタラメに出すだけなら、 current=0; と current++; のところで
current に乱数を設定すりゃいい(この場合エンドレスになる予感)。
「デタラメに1回ずつ」だったらこの関数の中はいじらずに配列をシャッフルする。
配列のシャッフルはついこの間出た話題なので探してみ。
668 :
660 :03/01/29 21:49 ID:???
そうなんです! currentに乱数を設定したらエンドレスになりました(爆) 配列だけをシャッフルするんですね。 わかりました。探してみます! 探してだめだったらまた聞きにきます。すいません。 素早いレスありがとうございます!
669 :
660 :03/01/29 22:33 ID:???
配列のシャッフルができました! ありがとうございますm(_ _)m ただちょっと自分のしたいことと違っていました…。 これだと例えば012といっていたのが 201とシャッフルされたりして三つ連続で表示されるんですが、 表示自体はarray[1]であったり、array[2]であったり、 一つだけにしたいんです。 どうしたらいいのでしょうか? 繰り返しの質問で申し訳ありません。
うーんそうか。ランダムな一つを1回だけってことかな? だったら、 msg をランダムな一つだけの配列にするとか。 msg[0] = msg[Math.floor(Math.random()*msg.length)]; msg.length = 1;
671 :
660 :03/01/29 23:16 ID:???
>>663 ,667,670
やりました!自分の考えていたようにできました!
昨日徹夜して今日の昼も考えてできなかったものですから本当に感動です…。
本当にありがとうございました。
もっと勉強重ねていきたいと思います。
672 :
658 :03/01/30 00:04 ID:???
>659 >661 onsubmit、知りませんでした・・・ ありがとうございましたm(_ _)m
673 :
Name_Not_Found :03/01/30 18:31 ID:JWTCd2f7
print関数を使ってページを自動的に印刷させるようにしたいのですが、 どうしてもURLとページの表示がヘッダとフッタにひっつきてきます。 消去する良い方法はないでしょうか。
>>673 IEのみでいいなら、「scriptX」を検索。
675 :
Name_Not_Found :03/01/30 22:28 ID:BTH53ZRf
ビヘイビアを使って、あるclassに関数を割り当てたいのですが <script class="hoge"> attachEvent("onmouseover",popup); function popup() { var e = window.event.srcElement; alert("e.innerHTML"); } </script> として、 <span class="hoge">ポップアップ</span> の上にマウスをかざしても 無反応でした。 上のをhtcファイルにしてスタイルシートで{behavior:url(htcファイルのパス)} と書いておけばいいのですが、なるべく別ファイルにしたくありません。 良い方法はないでしょうか?
676 :
Name_Not_Found :03/01/30 23:02 ID:Gm/+xDie
>>675 HTMLはscriptタグにclass指定したらそのclassにだけ作用する
スクリプトが書けるなんていう仕様にはなってないので当然無理。
ところでビヘイビアを使わなくちゃいけないの。単に特定クラスの
ノードにイベントハンドラを統一的にセットするだけならビヘイビア
でなくてもできるけど。Gecko/IE。
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function init() {
var s = document.getElementsByTagName('span');
for(var i = 0; i < s.length; ++i) {
var o = s[i]; if(o.className != 'a') continue;
if(o.addEventListener) o.addEventListener('mouseover', handle, false);
else o.onmouseover = function() { handle(window.event); }
}
}
function handle(e) {
if(e.srcElement) { alert(e.srcElement.innerHTML); }
else if(e.currentTarget) { alert(e.currentTarget.innerHTML); }
else { alert('???'); }
}
</script>
</head><body onload="init()">
<p>test...<span class="a">test...<b>test...</b>test...</span>
test...<span>Test Test Test</span><span class="a">TEST TEST TEST</span></p>
</body></html>
ぐぐぐ、DOCTYPE宣言の先頭の「<」が欠けるとは不覚。
2ちゃんの糞スレの皆様に、作曲家・岡田克彦ファンクラブからのご案内です。
ご高承のとおり、岡田克彦氏の卒業した早稲田大学政治経済学部と、ひろゆきの卒業した中央大学文学部夜間は
比較にならないほど差があります。中央大学文学部夜間のようなヘボい大学に共通しているのは、文化水準が
低いということ。18歳から22歳をヘボい大学で過ごすということは、感受性において致命傷と言えます。
2ちゃんねらーの大半は岡田克彦氏に比べて、著しい低学歴で頭が悪いだけでなく、感受性も愚鈍で腐っている
という、取り返しのつかない状態なのです。
せめて、
http://www.geocities.co.jp/MusicHall/5933/で 、岡田氏の作品に触れましょう。
また、学歴至上主義は、学歴がないか、東大のような高学歴であっても学歴に相応しいだけの自分の特技
等を持っていない人が不愉快に思っているだけのことです。2ちゃんのひろゆきの卒業した中央大学
文学部夜間のようなものは、学歴と言えるようなものではなく、これは、拭うことの出来ない、生涯つきまとう
汚点で、絶対に取り返すことは出来ません。2ちゃんの皆さんの大半は、波風を立てずにその場限りの平穏無事を保守する
という、下らない事なかれ主義にうつつを抜かしていますが、私共は心優しい仲間なので、はっきり申し上げられます。
ひろゆきは、感受性において、まさに取り返しのつかない状態にある、ということです。
従って、阿呆のひろゆきのやっている2ちゃんは阿呆の危険集団だということです。
679 :
675 :03/01/31 00:19 ID:???
>>676 サンプリあるがとうございます
ところで、それをやるためにはbodyのonloadイベントが発生する
環境でないとダメですよね
とあるソフトのスキン作成に使用しようと思ってたのですが
そのソフト内ではbodyのonloadイベントが発生しないので
使うにはちょっと工夫がいりそうです
{behavior: ここにurl指定でなくスクリプトのidでも書ければ
いいんですけど・・・
> とあるソフトのスキン作成に使用しようと てことは IE で動きさえすれば OK ? <script for="hoge" event="mouseover"> var e = window.event.srcElement; alert(e.innerHTML); </script> <span id="hoge">ポップアップ1</span> <span id="hoge">ポップアップ2</span> 気持ち悪いかもしれないけどIEならIDかぶっても仕様のうちだしw
681 :
Name_Not_Found :03/01/31 13:52 ID:imkmcZww
>>676 おまえ、DHTMLビヘイビアのこと理解できてないじゃん。
やっぱりDOCTYPE厨は、W3Cの教典に載ってることしかわからないのか・・・
>>681 で、ネスケ信者ブチギレさせても仕方ないけどな。
>>681 ...おまえそんなに期待してたの?
あいつは以前からベンダの拡張には明るくも積極的でもない。
複数のプラットフォームで動く手法の提示は特に変なことでもないだろ。
>>682 あいつネスケ信者なの?Geckoの拡張使ってんのとか見たことないけど。
ついに「あいつ」で誰の事言ってんのか分かる所まで来たか…
ていうか知ってる香具師が
>>679 に応えてやれば終わる話。
# 俺は疎いので有効な回答は無理。
<!DOCTYPE 期待裏切ってスマソね(笑) IE固有のもGecko固有 のもよく知らないよ、もちろん。何の信者でもないし。 DHTML behaviorがいいならいいと思う奴が答えればいいじゃん。>
(´-`).。oO(要求を満たしさえすれば手段なんか何でもいいような...)
>>687 宗教家にとっては、そうはいかない。
空腹を満たせられれば、どんな肉でも食べていいわけではない。
宗教家じゃなく単に知らないんだからしょうがない。動きさえすれば 何でもいいなんて言いながらプログラム書く奴は絶対に上達しないぞ と言ってみるテスト。(w
(´-`).。oO(結局
>>679 の腹を満たせる肉を誰も持ってないんじゃん...)
>>690 そういうことは別に珍しくはない。残念ながら。
つーか、onload使わなくても、 ファイルの最後尾でやればいいだけ。
おお! 目ウロコ。
漏れが書くとしたらこんな感じだろうな... document.onmouseover=function(){ var e = event.srcElement; if (e.className=='hoge') alert(e.innerHTML); }
おお! やっぱりこのスレは偉大だ。
696 :
679 :03/01/31 18:44 ID:???
>>694 (゚∀゚)やはりそれしかないんですね。
それでやってるんですが、機能の部品の切り分けが面倒なので
新たな技術を模索してたんですが、ひとまずあきらめます。
でもみんな親切なのでうれしかったです。
>>692 ファイルの最後尾がないんです。すみません。(だからonloadもない)
697 :
いきなり”管理”人 :03/01/31 20:16 ID:zoZBG+Gy
質問させてください JavaScriptだと思うのですが、よくホームページで 印刷用画面などをポップアップさせていると思うのですが あれはどうやってやっているのですか?なにか手がかりでもあれば・・ よろしくお願いします。
>>697 巷に氾濫するJavaScript入門サイト。
699 :
Name_Not_Found :03/01/31 20:31 ID:45r4f4Az
700 :
いきなり”管理”人 :03/01/31 20:41 ID:zoZBG+Gy
>>698-699 ありがとうございます!助かったです。
さっそく検索してもう少し調べてみます。
>>696 onloadで動かせないならdeferは?
<script defer>
init();
</script>
>>701 deferの使い方が間違ってるぞ。
どこでデタラメを教わったんだ?
defer 【誤答例】 スクリプトに文書の表示を生成する要素を含まないことを宣言します。 この要素内のスクリプトが、文書の内容となるものを一切生成しない (例えば、"document.write" などを使用していない)ことを表わします。 【正答例】 ブロック内にインラインスクリプトがなく、関数だけを含んでいることを示す。 スクリプトが必要になるまでその解析を延期することにより、 ドキュメントのロード時間が短くなり、結果的にパフォーマンスが良くなる
まさにIE
706 :
701 :03/01/31 22:44 ID:???
「IEのバグを突いているが」の接頭辞が必須?
あった方が色々な方面にやさしい、かも。
709 :
Name_Not_Found :03/01/31 23:24 ID:WeY7EynU
>>694 あともうひとつ、それじゃダメな理由があったですたい
たとえば <span class="hoge"><b>ほげ</b></span>
とあるとき、ほげ にマウスをかざしても発生するイベントは
<b>のタグであって、<span>のタグではないですたい
ごめんですたい
>>709 そこまでやっといて何で<b>なんてレガシーなもん使ってるのか小一時間。
712 :
701 :03/02/01 00:06 ID:???
>>708 【IEのバグをついているが】、>676のやつをIE用に多少直したらかちゅで動いたぞ?
<script defer>
var targetTagName = "span";
var targetClassName = "a";
function init() {
var s = document.getElementsByTagName(targetTagName);
for(var i = 0; i < s.length; ++i) {
if(s[i].className != targetClassName) continue;
s[i].onmouseover = function() { alert(this.innerHTML); }
}
}
init();
</script>
ああ、document.allでよかったな。
すごいなあ、どんどん動くようになってくじゃん。<span class="a"><b>... </b></span>の問題は、イベント発生したとこからドキュメントツリーを 上に向かってたどってclassNameが一致するものがあるかどうか見るという 方法があるよね。
バグと仕様の区別の出来ない奴は来るなよ
バグ=仕様
718 :
ちょっと教えてクソ :03/02/01 01:19 ID:ODHHS2VC
最近ホムペのソース見ると <!--//--><script>var PrxLC=new Date(0);var PrxModAtr=0;var PrxInst; if(!PrxInst++) PrxRealOpen=window.open;function PrxOMUp(){PrxLC=new Date();}function PrxNW(){return(this.window);} function PrxOpen(url,nam,atr){ if(PrxLC){ var cdt=new Date(); cdt.setTime(cdt.getTime()-PrxLC.getTime()); if(cdt.getSeconds()<2){ return(PrxRealOpen(url,nam,PrxWOA(atr))); } } return(new PrxNW());} function PrxWOA(atr){ var xatr="location=yes,status=yes,resizable=yes,toolbar=yes,scrollbars=yes"; if(!PrxModAtr) return(atr); if(atr){ var hm; hm=atr.match(/height=[0-9]+/i); if(hm) xatr+="," + hm; hm=atr.match(/width=[0-9]+/i); if(hm) xatr+="," + hm; } return(xatr);}window.open=PrxOpen;</script> <!--//--><script> function NoError(){return(true);} onerror=NoError; </script> <!--//--><script> function moveTo(){return true;}function resizeTo(){return true;}</script> <html> ・ ・ ・ </html> <!--//--><script>if(document.layers){document.captureEvents(Event.MOUSEUP);}document.onmouseup=PrxOMUp;</script> って書いてあるとこ多いんだけど、これ何をやろうとしてるのか知りたいんだ。
>>718 proxomitronのフィルタが追加してるんだろ
<body> <script defer> document.getElementById("g").onclick=function(){alert("IE6")}; </script> <p id=g>aaa</p> <script> document.getElementById("g").onclick=function(){alert("NN7/Opera7")}; </script> </body> IE6/NN7/Opera7の結果が違うんだがどっちがあるべき動作なんだ(゚ロ゚)モルァ
>>720 「その場合の振る舞いは定義しない」じゃないか?w
>イベント発生したとこからドキュメントツリーを上に向かって
このへんを自分で解決できないような人はおとなしくhtc書くのが賢いと思う。
ツリー遡るだけじゃ解決できないケースも出てくるし(*1
それを回避する手間に見合うだけの物ができるかというと個人的には疑問。
*1 <span class="hoge"><b>textA</b> textB</span> とかだと
.hoge の中で mouseover が何度も発生することになる。
他にも、複雑なセレクタに対応させたいとか欲が出てくるとかなり泥沼。
# 挑む側としてはすごく楽しいけどさ。
723 :
720 :03/02/01 23:52 ID:???
>>720 はNN7だとdeferの方で
エラー: document.getElementById("g") has no properties
が出てた。
IE6でのdeferの実装が妙なんだな。(IEは前からそうだった?)
上手く使いこなせば
>>712 のような事が可能なんだが。
<script defer>
function a(){alert(document.getElementById("g").outerHTML);}
a(); //実行可能。documentツリーへのアクセスがあったら待機状態に入るのか?
</script>
<script defer>
alert("(alert_1)\n"+window.a); //参照可能
</script>
<p id=g>書</p>
<script>
//alert("(alert_2)\n"+window.a);
//実行すると"undefined"が返る。(既に実行した関数a()が無いことになってる)
//これを実行すると以下のスクリプトは正常に動く。
</script>
<script>
alert("(alert_3)\n"+window.a); //当然ながら一行下の定義に書き変わっている。
function a(){alert("deleted");}
alert("(alert_4)\n"+window.a) //なんと先祖帰り
a(); //先祖帰りした関数が実行される。
</script>
724 :
Name_Not_Found :03/02/02 01:09 ID:kLvNM0Uq
function respop() { var e = window.event.srcElement; if( e.tagName=="B" ) e.innerHTML='<a href="hage">'+e.innerHTML+'</a>'; } document.onmouseover=respop; <a href="hoge"><b>ほげ</b></a> <b>はげ</b> Win2k IE6で、 はげ にマウスをかざすと hage へのリンクになりますが ほげ にマウスをかざすとエラーになります。 アンカーの中にアンカーを作ろうとするとエラーになるのですが なぜ、エラーになるのでしょうか? <a href="hoge"><b><a href="hage">ほげ</a></b></a> というHTMLは 確かに文法めちゃくちゃですが、これをHTMLで書いたときは 一番内側(hage)が有効になるので、それと同じ動作を期待したのですが・・・
>>724 親要素がAの時だけ別処理とか。
function respop() {
var e = event.srcElement;
if(e.tagName != "B" ) return;
if(e.parentElement.tagName == "A")
e.parentElement.href = "hage";
else
e.innerHTML = '<a href="hage">' + e.innerHTML + '</a>';
}
document.onmouseover=respop;
726 :
Name_Not_Found :03/02/02 12:13 ID:k/C47e3W
マイクロソフトのトップページ他にあるようなコンテキストメニューの出し方がわかりません・・
http://www.microsoft.com/japan/ 上のリンク「製品一覧」の上にカーソル載せたときの「windows」「Office」等の
サブメニューがテーブル無視して下に伸びてるのが、再現できませぬ。
どなたか知恵かして下さい
728 :
Name_Not_Found :03/02/02 12:33 ID:k/C47e3W
>727 スマソ。そこみて作ってました。 <table> <tr>リンクメニュー</tr> <tr>適当な内容</tr> </table> こんなかんじで作るとリンクメニューからサブメニューが下に伸びた時 テーブル内にしか表示されないんで、サブメニューの内容が見えなかったりテーブル広げたりするのです 「適当な内容」部分が隠れるような表示にしたいのですが、どこを変えるのかさっぱり見当がつかないのです。
729 :
Name_Not_Found :03/02/02 13:08 ID:it35VQU6
>>728 メニューを構成する<div>...</div>を<table>...</table>の中に
入れてしまってるんじゃないの。もしそうなら外に出したら?
>729 そのとおりでした。カットペーストのみで解決しました! ありがとうございました〜 m(_ _)m
731 :
Name_Not_Found :03/02/02 20:01 ID:4yDr1NMo
<div name="data"></div> として、Javascriptで、この中にデータを書き込むにはどうすればよろしいのでしょうか? (テキストボックス.valueのように、)
<div id="data"></div> <script> document.getElementById("data").innerText="ビンビンです。"; </script>
<div id="data"></div> document.getElementById('data') .appendChild( document.createTextNode('') ).nodeValue = 'text';
734 :
Name_Not_Found :03/02/02 20:37 ID:4yDr1NMo
すいませんでした。説明不足です。 <DIV>の中に、タグも入れたいのですがどうすればよいでしょうか?
innerHTML
736 :
Name_Not_Found :03/02/02 20:54 ID:4yDr1NMo
ありがとうございます。
737 :
Name_Not_Found :03/02/02 22:07 ID:Ilvq4xVu
過去ログも読んでよ〜
まあ、過去ログよりも検索とリファレンスサイトの巡回でいいけどな。
739 :
Name_Not_Found :03/02/03 07:19 ID:sB0Jlcrr
用途がちょっと違うわけ。過去ログは「こんなことしたいのですけど」 「それにはこのような機能を」「もっとこういう風にした方が」とか やりとりがあるからQ&A的に理解できる。リファレンスは機能がもう 分かっている時に正確に調べるのに使う。という感じかな。
「googleでヒットした過去ログのやり取りを読め」が正解。
741 :
a :03/02/03 13:54 ID:JZQN1Jgv
質問です。 文字か画像の上にカーソルを重ねると、 選択肢というか、項目がでてきて選べるという方法は どうやるのでしょうか? なにとぞお願いいたしますm(__)m どこかのサイトでやっていたのですが・・・
742 :
Name_Not_Found :03/02/03 13:56 ID:G0MNUQTB
>>741 意味不明
M$noサイトみないな奴か?
エクスプローラー風に作りたいの?
743 :
a :03/02/03 13:56 ID:JZQN1Jgv
741補足 カーソルをあわせただけで簡単なツリー状の ものが現れて、カーソルを外すと消えるというタイプの物です。 かすかに覚えているのは、カーソルを合わせると、もう一つ別の簡単なHTMLを 呼び出すと言う物だったの思うのですが・・・
744 :
a :03/02/03 13:58 ID:JZQN1Jgv
>>742 M$noサイトとは どのようなものでしょうか?
MSのサイトを見ているのですが、どの部分でしょう・・
<script type="text/javascript"> var x = new Array(50); var y = new Array(50); var v = new Array(50); for(var i=0;i<50;i++) { x[i] = Math.random()*600+100; y[i] = Math.random()*400+50; v[i] = Math.random()*Math.PI*2; document.write('<div id="s'+i+'" style="position:absolute;top:'+y[i]+'px;left:'+x[i]+'px">■</div>'); } function m() { for(var i=0;i<50;i++) { if((x[i]<=0)||(x[i]>=800)||(y[i]<=0)||(y[i]>=600)) { v[i] += Math.PI; } x[i] += Math.cos(v[i])*2; y[i] += Math.sin(v[i])*2; v[i] += Math.random()*0.4-0.2; document.all("s"+i).style.top = y[i]; document.all("s"+i).style.left = x[i]; } setTimeout("m()",10); } setTimeout("m()",10); </script> 四角と四角が重なった時に移動する方向を180度変えるようにしたいのですが、 「重なった時」を判定するにはどうすれば良いでしょうか。
746 :
a :03/02/03 14:30 ID:JZQN1Jgv
質問です。 文字か画像の上にカーソルを重ねると、 選択肢というか、項目がでてきて選べるという方法は どうやるのでしょうか? カーソルをあわせただけで簡単なツリー状の ものが現れて、リンク先を選べると言うものです。 そしてカーソルを外すと消えるというタイプの物です。 ご存知でしょうか??なにとぞお願いいたしますm(__)m
>>746 ホレ。Gecko/IE。直し方は説明しないんで勉強してね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<style type="text/css">
div { position: absolute; background-color: #eeeeee; text-align: center;
top: 10px; left: 40px; width: 80px; height: auto; visibility: hidden }
table { width: 100% }
</style>
<script type="text/javascript">
function show(id) { document.getElementById(id).style.visibility = 'visible'; }
function hide(id) { document.getElementById(id).style.visibility = 'hidden'; }
function jump(u) { location.href = u; }
</script>
</head><body>
<div style="visibility:visible" onmouseover="show('m1')" onmouseout="hide('m1')">0
<div id="m1"><table border="1">
<tr><th onmouseover="show('m11')" onmouseout="hide('m11')">1
<div id="m11"><table border="1">
<tr><th onclick="jump('111.html')">111</th></tr>
<tr><th onclick="jump('112.html')">112</th></tr>
</table></div></th></tr>
<tr><th onmouseover="show('m21')" onmouseout="hide('m21')">2
<div id="m21"><table border="1">
<tr><th onclick="jump('211.html')">211</th></tr>
<tr><th onclick="jump('212.html')">212</th></tr>
</table></div></th></tr>
</table></div>
</div></body></html>
>>745 for(var i = 0; i < 50; ++i)
for(var j = 0; j < 50; ++j)
if(i番の■の右端がj番の■の右端より右かつ左端より左 &&
i番の■の上端がj番の■の上端より下かつ下端より上) {
i番の■とj番の■が重なっている場合の処理
}
配列の中身をひとつ飛ばしに抜き出すには、どのように書いたらいいのでしょうか? "リンゴ","バナナ","ミカン","メロン","ブドウ","キウイ"・・・・・・ 上記で「リンゴ、ミカン、ブドウ・・・・」と抜き出す場合など。
>>748 できました。
ありがとうございました。
>>749 var a = new Array("リンゴ","バナナ","ミカン","メロン","ブドウ","キウイ");
for(var i=0;i<a.length;i++)
{
if(i%2==1)continue;
document.write(a[i]+"<br>");
}
>>751 はやい!
どうもありがとうございました。
>>751 for(var i=0;i<a.length;i+=2) document.write(a[i]+"<br>");
でいいような気がした…
754 :
751 :03/02/03 17:27 ID:???
タシカニ…
>>753 あ、そう言うやり方もあるんですか。
勉強になります。
お二方ともありがとうございました。
756 :
a :03/02/03 17:40 ID:JZQN1Jgv
下記のようなスクリプトを使ってポップアップを作りたいと思っております。 同じページに別のポップアップを作るには どうしたらいいでしょうか? <SCRIPT LANGUAGE="JavaScript1.2"> <!-- function loadMenus() { window.myMenu = new Menu("root",112,17,"MS UI Gothic, Osaka",10,"#000000","#ff6666","#ffffff","#ffffff"); myMenu.addMenuItem("あいうえお", "location='../html/'"); myMenu.addMenuItem("かきくけこ", "location='../css/'"); myMenu.addMenuItem("さしすせそ", "location='../dhtml/'"); myMenu.addMenuItem("たちつてと", "location='../javascript/'"); myMenu.addMenuItem("はひふへほ", "location='../filter/'"); myMenu.addMenuItem("はひふへほ", "location='../filter/'"); myMenu.writeMenus(); } //--> </SCRIPT> <SCRIPT LANGUAGE="JavaScript1.2" TYPE="text/javascript" SRC="menu.js"></SCRIPT> </HEAD> <BODY ><DIV ALIGN="LEFT"> <A HREF="../../index.html" onMouseOut="FW_startTimeout();" onMouseOver="NN_FW_showMenu(window.myMenu,this,120,0);"> ポップアップメニュー </A> <SCRIPT LANGUAGE="JavaScript1.2"> <!-- loadMenus(); //--> </SCRIPT>
759 :
Name_Not_Found :03/02/03 22:11 ID:ckE1XGSF
>>756-758 ヤマカンで言うなら関数loadMenus()の定義の最後のところに
window.myMenu1 = new Menu(...);
myMenu1.addMenuItem(...);
...
myMenu1.writeMenus();
というのを挿入すりゃいいんじゃないの?
761 :
Name_Not_Found :03/02/04 09:58 ID:VEqxKJtB
ポップアップ広告にみたいな、ツールバーとかがないページの作り方教えて下さい。
わざわざ嫌われるサイトを作ろうとする輩が集まるスレはここですか?
>761 あれはwindow.open()した時の附属的なものだから、おもむろにああ言う状態には出来ないよ。
>>762 ここにはそういう輩は来るけどちょっと質問したらいなく
なる。常連はどっちかつーとJavaScriptのいろいろな技の
修錬(?)に興味がある。あんたプロトタイプベースのオブ
ジェクト指向ってわかる?
クラスベース?
>>764 まだ居たのか
ム板にまともなスレ立ててそっちでやってごらん
ここじゃ場違いなことぐらい分からないのか?
IEで、右クリックしたときのメニューに そっくりのポップアップメニューを作ってます。 だいたい似たものができたんだけど でも一目でばれるというか、 セパレータや選択不可の項目の表現が うまくできません。
不毛なことを
ちょいと待ち、767はただの愚痴だ。 質問を書いていないから。
MACのIEで 1つのページで フレーム3つに切った(上部・左部・右部)後で <A HREF="****" TARGET="RIGHT" onclick="parent.frames['LEFT'].location.href='*******'">***</A> とした時にハングアップしたり、onclick部分が反応しなかったりする現象や それに類似するような事を説明しているページをどなたか知りませんか? MAC-NNは平気なのに…鬱だ。
return false
MAC-IEは a要素にonclickイベントハンドラを設定する時には href="javascript:void(0)" か onclick="** ; return false" のどっちか必須なはず。
上フレームのリンクにonmouseoverで触れると、 下フレームにメッセージが表示されて、 onmouseoutでメッセージが消えるということをしたいんですが うまくいきません。 同じフレーム内ならdocument.all.item()という風にできるんですが… parentを使うのはわかるんですが、どんな風に使ったらよいのかがわかりません。 教えていただけませんでしょうか?
774 :
Name_Not_Found :03/02/04 23:55 ID:6RblYxFt
//とある関数(onloadで実行) { ... var oSelect = '<select id=\"S\"><option>...</select>'; document.getElementsByTagName('親要素').innerHTML = oSelect; ... } HTML には直接記述していなく、関数を実行した結果生成された要素にアクセス したいのですが、エラーになってしまいます(オジェクトではないとのこと)。 こういった形で作られた要素にはアクセス出来ないのでしょうか? (document.write で要素を現すのは少し都合が悪いもので・・) 可能なのでしたら、アドバイスして頂ければ幸いです。。。 宜しくお願いいたします。
776 :
Name_Not_Found :03/02/05 00:30 ID:ThqZTv48
>>774 そのタグの要素は1つしかないのね?その場合でもcollectionが返されるので
その先頭のを取らないと。
document.getElementsByTagName('親要素')[0].innerHTML = oSelect;
777 :
Name_Not_Found :03/02/05 00:31 ID:ThqZTv48
>>773 parent.frames.フレーム名.document.all.item()
778 :
774 :03/02/05 01:05 ID:l8p1kOQv
>>775 >>776 ありがとうございます。
・・と、お答えいただいたのに恐縮なのですが、上手くゆきません。。
親要素、というのは実は中身がない要素でして
<div id="ID"></div> といったものを、HTML に記述してあります。
getElementsByTagName() と書いたのは僕が不精だったわけでして(申し訳ないです)、実際は
getElementById('ID').innerHTML と記述してあります。
しかし、getElementsByTagName('要素')[0].innerHTML としても、やはりアクセス出来ませんでした。(同じエラー報告でした。UAはIE6です)
セレクト要素には onchange="関数()" も実は記述してありまして、
ページが表示された後、ユーザーがセレクト要素を切り替える度に
オプション要素の Value にアクセスし、とある関数を実行したいのですが、例のエラー(オブジェクトではない)が表示されます。
せっかくお答え頂いて本当に申し訳ないのですが、上手く処理できる方法がありますでしょうか。
出来れば、宜しくお願い致します。
779 :
774 :03/02/05 01:08 ID:l8p1kOQv
追記なのですが、セレクト要素の親要素となるものは やはり一つしかありません。
ソース
782 :
774 :03/02/05 02:43 ID:l8p1kOQv
>>780 気づきませんで、すみません。。
以下、本文そのままです。
function getCoT() { //onloadで実行。
var objT = document.getElementById('t'); //テーブルを取得
var objB = objT.getElementsByTagName('tbody')[0];
var tRow = objB.getElementsByTagName('tr');
List = new Array();
sName = new Array();
sValue = new Array();
var NoR;
for(NoR=0; NoR<tRow.length; NoR++) {
sName[NoR] = tRow[NoR].getElementsByTagName('td')[0].firstChild.nodeValue;
sValue[NoR] = tRow[NoR].getElementsByTagName('td')[2].firstChild.nodeValue;
List[NoR] = '<option value=\"'+sValue[NoR]+'\">'+sName[NoR];
}
var ListHTML = '<select id=\"List1\" onchange=\"cal()\">'+List.join('')+'</select>';
document.getElementById('f').innerHTML=ListHTML;//ID'f'をもつ要素に代入(?)。
}
function cal() { //onchange
var n = document.f.List1.selectedIndex;
var oList = document.f.List1.options[n].value;//エラー行(オブジェクトではない)
alert(oList);
// テスト用の関数。最終的にはアラートではないです。
}
この様な感じです。遅くなってすみません。
783 :
724 :03/02/05 04:03 ID:???
>>725 場合によっては親ではなくおじいちゃんがアンカーのときもあるので
ずっと上までさかのぼらないといけないですね
>>782 getCoT()ではエラーが無かったよ。
cal()内ではエラー。
document.f.〜って書き方は
fがframe,ifame,img,area要素のname属性の場合ぐらいしか有効じゃない(適当に実験したけど)。
だから、
<div id=f></div>って書いてる部分を
<form id=f name=f></form>とするか、
var n = document.getElementById("List1").selectedIndex;
var oList = document.getElementById("List1").options[n].value;
ってcal()内を書き換えるかどっちかでOK。
785 :
725 :03/02/05 08:03 ID:???
>>783 これでどうでしょ。
function respop() {
var e = e2 = event.srcElement;
if(e.tagName != "B")
return;
do
e2 = e2.parentElement;
while(!e2.tagName.match(/^(A|BODY)$/));
if(!e2.href)
e.innerHTML = '<a href="hage">' + e.innerHTML + '</a>';
else {
e2.href = "hage";
e.innerHTML = '<span>' + e.innerHTML + '</span>'; //再実行させない
}
}
document.onmouseover=respop;
>ずっと上までさかのぼらないと
2chブラウザのスキンだとすると
while(!e2.tagName.match(/^(A|DT)$/));
でいいかも知れない。
786 :
774 :03/02/05 12:00 ID:???
>>784 上手くゆきました。本当にありがとうございます!
787 :
773 :03/02/05 14:07 ID:???
hage
下がりすぎだなあ。何か面白い質問ないの?
面白い質問とはまた難しいこというなあ。
IE限定だけど <style> b { color: expression((this.innerText=="hoge")? "blue": "red"); } </style> こういうexpression()のリファレンスサイトってないかな? いろいろ実験してるんだけど、エラーダイアログの無限ループに入ったり スクロールバーが興奮(?)したりして いまいち実用レベルに持っていけないんだよね。 body { color: expression((confirm("black?"))? "black": "white"); } これでconfirmの無限ループになるのは納得がいかん・・・ ユーザースタイルシートで a { color: expression((location.host.match(/google\.com$//))? "green": ""); } とかやれれば面白いと思ったんだけどな・・・
>>791 コンテンツに応じて色変えたりするだけなんだから、普通にonloadの
タイミングでdocument.getElementsByTagName()呼んで各要素をスキャン
して設定する方が安心じゃない。そうか、ユーザスタイルシートねえ。
bookmarkletにするという代替案もあるが…
>>791 無限ループっていうか、与えられた式を繰返し評価して
常に最新の結果を反映するのが expression だろ。
>>793 ふーんそうなんだ、しかしどういうタイミングで評価するの?
100%それにCPUを使うわけには行かないわけだから、評価するタイ
ミングが決まっているはずだろうと思うんだけど。
前どっかのスレで出てたねそれ。 その時やってみたやつが残ってた。 <style> body{ background:expression(!window.a && alert("test"), a = "blue"); } </style>
796 :
791 :03/02/07 01:08 ID:???
>>792 web製作という意味ではそうなんだよね。
どうしてもローカルで使うJavascript限定になる。
body {color: expression((document.cookie)? "red": "") }
こんな指定ができるから「お?」と思ってね。
>>793 >与えられた式を繰返し評価
このタイミングっていつだろ。
<style>
body {
background-color: expression(document.getElementById("bg").value);
color: expression(document.getElementById("txt").value);
}
</style>
<body>
<input id=bg type=text value=silver>bgcolor<br>
<input id=txt type=text value=aa00ff>textcolor<br>
</body>
リアルタイムで入力した値に変わっていくんだよね。
もし100msごとにチェックとかだったらおよそ使えない代物だな・・
背景が黒か白かを選択(Win98, IE5.0) <style> body { background:expression(!window.a && (b = confirm("black")), (a = b ? "black" : "white")); } </style>
ホストにgoogle.comを含むならアンカーの色を緑に <style> a { color: expression(!window.a && (a = location.host.match(/google\.com/) ? "green": "")); } </style> 色々と出来そうだ。
↑の状態で5分ほど放置してたらいきなり不正終了した…
800 :
791 :03/02/07 02:46 ID:???
おお、そうやるのか。
801 :
791 :03/02/07 02:52 ID:???
基本的にはリアルタイムで処理するもんで、 処理を一回だけにして欲しい時は a { color: expression(!window.a && (a = location.host.match(/google\.com/) ? "green": "")); } これが定跡なのかな。
expressionは、画面を描画し直すたびに評価されるわけだから、 物凄く頻繁に呼び出されることになるぞ。 激しくパフォーマンスが低下するのでお勧めできない。
描画し直すたびに評価されるものってめちゃめちゃありそうだから (!window.a)の評価が一つ加わる程度は大した事ないんじゃない?と楽観視してみる。
いまいちリファレンスが無いのは
誰もが一日で「こりゃ使えねぇ」と思うからか?
>>798 はユーザースタイルシートの拡張(URLごとにスタイル指定)の
一つの方法だろうけど、めんどくさい・・・・。
body {
color: expression(
!window.a && (a =
location.host.match(/google\.com$/) ? "green":
location.host.match(/yahoo\.co\.jp$/) ? "red":
location.host.match(/2ch\.net$/) ? "blue":
"white" /* other sites */
)
);
}
>>796 みたいな、文字入力するとリアルタイムで値が変わるのは面白いね。
>このタイミングっていつだろ。 こんなの試してみた。 color:expression(status=Number(new Date),'red'); 何らかのイベントが発生するタイミングで再評価っぽい気がする。 # んで confirm とかやると onfocus/onblur の無限ループ、と。
expression background-imageでやってみたら永久にダウンロードし続けますね。
確かに、カウントすると勢いが分かる。 body { color: expression(!window.i && (i = 0), status = i++, "black"); }
>>807 ちょっとうろうろするだけで数百。勢いが違うね。
ワンクリックで10カウントもされるんじゃタイミングもくそも無い気が・・・
まあ、expressionを使わずとも
ブラウザってもんはこのぐらいの勢いで何らかの評価をしているってことだろうけど。
使おうって気は十分萎えたよ。
809 :
Name_Not_Found :03/02/08 00:25 ID:UAcWjArP
JavaScriptのメールフォームで、送信を選ぶと警告文がでてくるのですが・・・。 暗号化がどーのとか。 どうしたら正常に送信できるのでしょうか?
それが回答しようのない質問だと思わないかなあ。どこのどういう フォームなのよ?本当にJavaScriptの問題なの?なんでそう分かる? ちゃんと説明してみれ。
>>810 ほっとけ。警告文が出ると書いてそのメッセージを晒さない。ただのアホだ。
ほっとけの顔も三度。
813 :
Name_Not_Found :03/02/08 15:09 ID:SEX3zG5G
>>813 うーん、
>>747 みたいにposition: absoluteを使うんじゃなくて?
メニュー表示のたびに下のコンテンツをreflowするのは遅そうだし
あんまり普通じゃないような気がするけど。
816 :
Name_Not_Found :03/02/09 08:11 ID:WcbIpcNB
>>815 はみ出さないようにするにはメニューを構成するdivを<table>...</table>の
中に入れてスタイルを適宜調整すればいいんじゃないの?座標を%で指定した
ければJavaScriptなんだから画面幅とか取得して自前で計算すればいいんじゃ
ないの?全部そゆふに直してくれというのは遠慮したいけど。
>>819 レスありがとうございます。
色々調べていますが、ツリーを展開したときに、動的にテーブルの縦枠が伸びるなどの仕様にしたいのです。
スタイルを適宜調整・・・とは、alignタグなどでということですか?
画面幅を取得して自動計算ですか・・・めんどうそうなので最終手段として考えておきます(苦笑
ただ、スクリプトの方で表示関係を処理してるみたいなので、動的なテーブル処理は難しそうですね。
なにかよさそうな方法はないものでしょうか・・・
818 :
Name_Not_Found :03/02/09 10:14 ID:93tY1euP
innerTextで文字列を書き込むと、<DIV>の上に改行が出来てしまいます。 何か回避策はないでしょうか? ちなみに、<DIV>のかわりに<P>を使うとマージンが多めの改行、<span>だと改行されません。 どうにかブロック要素で囲みたいんですが…。 if(event.type == "click") { comForm.item("icon").value = event.srcElement.id; nowIcon.innerText = event.srcElement.alt; pullDown.innerHTML = ""; } 以下HTML部分 <input type="hidden" name="icon" value="hoge"> <div> アイコン<br> <span class="pditem" id="nowIcon">ほげ</span> <span class="pulldown" onclick="popup('icon');">▼</span> </div>
var n=0,s=0; var r=document.forms[0].area1.createTextRange(); r.moveStart("character",document.forms[0].txt1.value.replace(/\r/g,"").length-n); r.moveEnd("character",s); r.text = a+r.text+b; r.select(); r.parentElement().focus(); ※aとbはタグを示す(別で設定) フォーム内で選択範囲の前後にタグを挿入したいのですが どうしてもタグが一番最後に挿入されてしまい上手く行きません。 タグ自体は記述されているのでr.moveStartとr.moveEndの処理が出来てないみたいです。 選択範囲の前後に挿入さえできれば他の方法でも全然構わないので なにか良い方法をご存知の方はお願いします。
820 :
Name_Not_Found :03/02/09 22:27 ID:Q3VFp49p
function test(){ window.open("","target"); document.frm.action = "test.cgi"; document.frm.submit(); } <form method="post" target="target"> <input type="button" onClick:javascript test()> という感じで作ったページで たまに、ターゲットウインドウにtest.cgiが実行されずに 空のページが出来て、元々の自分のwindowにtest.cgiが実行されることがあるのですが うまい回避方法とかありますか?
>>820 とりあえず。
<input type="button" onClick:javascript test()>
↓
<input type="button" onClick="test()" onKeyPress="test()" >
>>820 JavaScriptをOFFにしても見れるようにすべし。
824 :
820 :03/02/09 23:18 ID:Q3VFp49p
いろいろ手を入れないといけないみたいですね、、 formの内容をpostで送りたい。 新しいwindowを開いて表示したい(ツールバーなどを消したwindowにしたいから) というのがあるのです。 で、 順番として window.open(); document.frm.submit(); と書くのがいい手段なのかが疑問になってきてまして(上記のように空のwindowが出たりする) もっとスマートな方法を皆さん使ってるのかなと よろしくお願いします。
>>819 これでなんで選択範囲が取得できるのかよく分からないんだけど。
MSのFAQを見ると選択範囲は DHTMEdit.DOM.selection.createRange()
とかで取れるようなことが書いてあるが(試していないけど)。
>>818 質問の意味がよく分からないのだけど。このコードだと
<span id="nowIcon">...</span>の中をinnerTextで書いて
いるよね。「どこに」改行ができて欲しいけどできないって?
>>817 なんだか言っていることの意味がよく分からないんだけど。
JavaScriptでやってるんだからテーブルを伸ばしたりするのは
中にノードを突っ込んだり消したりすればできるでしょ。Gecko/IE。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var elt;
function unpop() {
if(elt == null) elt = document.getElementById('d1');
elt.parentNode.removeChild(elt);
}
function pop() {
document.getElementById('d0').appendChild(elt);
}
</script>
</head><body onload="unpop()">
<table border="1" style="width: 80%">
<tr><th><div id="d0" onmouseover="pop()" onmouseout="unpop()">here...
<div id="d1" style="border: blue solid 2px; width: 100px; height: 200px">
test...
</div></div></th></tr>
</table>
</body></html>
>>821 >onKeyPress="test()"
配慮のつもりならキー判定は最低限の常識。
えてしてWCAGバナーが貼ってあったりするのが涙を誘うのだが
ご丁寧に return false; までしてくれるおかげで
ハマったら最後全てのキー操作が不能になる酷いリンクをよくみかける。
# そうか、あれは嫌がらせかw
>>824 窓ができ終わらないうちにsubmitが起きてしまうとダメ
なんじゃないの。窓開くときにonloadハンドラを指定した
表示は空白なHTMLを指定して、onloadハンドラでフォームを
submitするようにしたらどうかな。
830 :
818 :03/02/10 00:36 ID:???
>>826 回答ありがとうございます。
改めて自分の質問を読み返してみると言葉足らずでした。すみません。
その後、問題は解決致しました。
質問の意図としては、改行する予定が無いのに勝手に改行してしまうので、
どうにか回避したい…という事でした。
<span>だとinnerText後の改行は回避できたのですが、レイアウト的にブロック要素で
囲みたいんだけどな…という事です。
改行されてしまう具体的な個所は、<input>と<div>の間です。
今回僕が採った回避策は、<input>と<div>の間のHTML側の改行を無くすという方法です。
つまり、
<input type="hidden" name="icon" value="hoge"><div>
アイコン<br>
・
・
・
という風に記述すると改行されなくなりました。
未だになぜこれで問題が回避されたのかわかりません。
……なぜでしょう??
831 :
Name_Not_Found :03/02/10 04:53 ID:w3ffbqPJ
WebProg板のこんなCGIを…ってスレで以下の質問をしました。
元に貯めこんでおいたテキストをランダムに表示するCGIってありますか?
出来ればランダムではなく
日付や時間などによって変わるのが欲しいです。
表示できるテキストの量は改行が可能で100文字以上。
もしCGIでなくても出来る場合などは
適切なスレへの誘導をお願いします。
と、書き込んだところ。ご返答は
>>303 JavaScript
との事でした。
Javaについてはあまりよく知らないのですが…
トクトクプロフェッショナルというレン鯖を使っていて
サービス内容にJavaがついてないのですが…使えるのでしょうか?
>>831 まずJavaとJavaScriptは別のものであることを納得するまで勉強
してきてください。でないと回答に入っても粉糾するだけだから。
だけじゃ何なのでやりたいことについて確認しますが、100文字以上
の溜め込んでおいたテキストが何個あるんですか?1000個とかだと
100文字ランダム表示するために1000000文字毎回送ることになるので
JavaScriptでやるのは勧められません(その場合CGIでしょう)。100個
なら許されると思う。
>>830 その<input type="hidden">の前はどうなってるか見せてくんないと。
にしてもJavaScriptの話題じゃああんまりないような気もする。
>>834 うーん、JavaScriptでやるってことはテキスト全部持って
行ってランダムに選ぶんでしょ?そうじゃない方法って
結局サーバ側で選別するしかないじゃん。もしかしてJavaScript
っていってもASPとか?それはWebProg板だよねえ。
無理やりクライアント側 JavaScript でやるとしたら str = 'ほげ'; ってだけの内容の js ファイルを好きなだけ用意して そのうち一個を乱数で選んで取得するとかそのくらいじゃないだろうか。
なるほど、バラバラのファイルにしといてランダムに取るという 手もあったか。
838 :
Name_Not_Found :03/02/10 13:26 ID:1xGWDdaL
windowsのIEではデフォルトのフォントを インターネットオプション→全般→フォント で設定することができますよね。 ここで設定されたfont-familyをJavaScriptで知ることはできませんか? <BODY ID="foo"> <BUTTON onclick="alert(document.all.foo.style.fontFamily)" とかやってみても、なにも入ってないみたいです。 又、URLを指定せずにwindow.openでウインドウをひらいてdocument.writeで中身を書くと、 このデフォルトのフォントが適用されないのですが、これはなぜでしょうか? デフォルトのフォントが使われるようにするにはどうすればいいでしょうか?
そのstyleのとこにはCSSで指定した値が入るのが基本だから、CSSで 何も指定してない(当然そのためのデフォルトですよね)以上空っぽ。 うーん、そのdocument.writeで書いているのはHTML? HTMLでデフォルト のフォントで表示される短いページを用意してwindow.open()ではそれを 一旦表示させ、その後で中を書き換えるっていうのはどうかな。その 時はdocument.write()使っちゃだめよ、クリアされちゃうから。
840 :
頭悪くてすいません :03/02/10 22:45 ID:oW8qdjOQ
フォームに日付をデフォルトで入れておきたいのですがsetIntervalを使わずにやる方法ありませんか? 下のは私の回りくどいやりかたです。初心者質問すいません、どうかご教授お願いいたします。 <html> <head> <title></title> <script language="JavaScript"><!-- function myFunc(){ xx = new Date(); yy = xx.getYear(); mm = xx.getMonth() + 1; dd = xx.getDate(); if (yy < 2000) { yy += 1900; } if (yy > 2000) {yy= yy-2000; } if (mm < 10) { mm = "0" + mm; } if (dd < 10) { dd = "0" + dd; } Mydate = ("0"+yy + mm + dd); document.F1.T1.value = Mydate; } // --></script> <FORM NAME="F1"><INPUT TYPE="text" NAME="T1"><BR></FORM> <script language="JavaScript"><!-- setInterval("myFunc()",1000); // --></script> </head> <body> </body> </html>
841 :
840 :03/02/10 23:23 ID:???
<body onload = すいません。寝ぼけてました>
>>838 上の質問
alert(document.documentElement.currentStyle.fontFamily);
下の質問
var q=open();
alert(q.document.charset); //文字コードがunicodeになってる。
q.document.charset='shift_jis';
alert(q.document.documentElement.currentStyle.fontFamily);
>>842 currentStyleすごすぎ。
スタイル指定が無い場合、ブラウザのデフォルトスタイルを返すんだね。
<script>
var obj = document.documentElement.currentStyle;
var a = new Array(); var j = 0;
for( var i in obj ){
s = new String(i);
while( s.length < 25 ) s += " "; // インデント
a[j++] = s + ": " + obj[i];
}
a.sort( new Function( "n1", "n2", "if( n1 < n2 ) return -1; else return 1;" ) ) // Ascii順
document.write( "<pre>" + a.join("\n") + "</pre>" );
</script>
CSS属性一覧?
844 :
838 :03/02/11 14:43 ID:mA+kVWIj
>>842 ありがとうございます。うまくいきました。
このcurrentStyleっていうのはIE5以降のIE独自のobjectと理解していいですか?
845 :
817 :03/02/11 20:56 ID:???
>>845 だから展開する/しないをvisibilityの操作だけでやるとテーブルの大きさを
伸ばしたり縮めたりすることはできないんで、visibilityを変更する代わりに
その要素をドキュメントツリーに挿入したりそこから削除するんだろうね。
test
<A href="
http://www.2ch.net/ " target="_blank">2ch</A>
っていうリンクがあるとします。
そのリンクにマウスを当てるとポップアップさせたいのですがどうすればいいのかわかりません。
sky.sannet.ne.jp/masapine/java_link8.html
見つけたのですが、これだとポップアップさせる窓がHTMLファイルが指定できません。
どうすればできるのでしょうか?
849 :
Name_Not_Found :03/02/11 23:11 ID:dx72fp9c
>>848 そういうウザいのはやめた方が身のためだと思うけどね…
<a href="..." onmouseover="window.open('HTMLファイルのURI', '_blank')">2ch</a>
はじまして!質問なのですが、テーブルの背景に画像を使う際に、その画像にJavascriptで加工をすることは可能でしょうか? 背景画像に、水面効果のあるJavascriptを使おうと思ったのですが、 実際に書こうと思ったら、わからなくなってしまって・・・(;>_<;) ちなみに、水面効果のタグは、某所から借りた↓です。 <center> <IMG src="*.gif" style="POSITION:relative;TOP:0px;LEFT:0px; filter:flipV(enabled=1) alpha(opacity=80,style=2,finishOpacity=50,) wave(add=0,freq=0,lightstrength=50,phase=60,strength=10)" name="myText2"> </center> <SCRIPT LANGUAGE="JavaScript"> <!-- isou=0; function mywave(){ isou=(isou+10)%100; myText2.filters["wave"].phase=isou; setTimeout("mywave()",50); } mywave(); //--> </SCRIPT>
ちなみに、タダ単にbodyタグのbackgroundに加工することは可能みたいなのですが、 それを応用しようと思っても、スキルが足りなくてダメでした・・・ よろしければ、ご指導よろしくお願いします。 いちおう、bodyタグのbackgroundを加工するscriptは↓です。 <script language="JavaScript"> <!-- var bgOS = 0; var bgOB = eval('document.body'); function SlBg(Saidai) { bgOS = bgOS + 1; if (bgOS > Saidai) bgOS = 0; bgOB.style.backgroundPosition = "0 " + bgOS;} var ST = window.setInterval("SlBg(100)", 1); --> </script>
853 :
Name_Not_Found :03/02/12 03:07 ID:t4Vu1yPh
質問です。 <textarea id="result">があったとして、 中の文字列をコピーした時点で自動消去することは可能ですか? oncopy="this.value=''; return true"では、先に消されてしまってコピーできません。(当然ですが) どうか助けてくれなさい。
854 :
853 :03/02/12 03:09 ID:???
ちなみにローカルで自分だけが使う物なので、Win+IE6限定でよろしい。
>>848 ポップアップの中身を
<div><iframe id="pop" src=""></iframe></div>
としておいて
document.getElementById("pop").src="HTMLファイルのパス"
とやる方法もあり。
857 :
856 :03/02/12 05:07 ID:???
勘違いしてた。 選択文字列をコピーしたのち、textareaにある文字列を全部消去なんだ。 <script> function sourceCopy(obj){ s = document.selection.createRange().text; if(s.length > 0){ clipboardData.setData("Text", s); obj.innerHTML = ""; } } </script> <textarea oncopy="sourceCopy(this)"> コピーしたら全文字列消去</textarea>
何に使うんだろ…
859 :
853 :03/02/12 12:54 ID:???
できました。 他にも使い回しが効きそうなので助かります。 さんきぅでした。
860 :
853 :03/02/12 12:58 ID:???
某DOSベースのアプリに送るコマンドを作るスクリプトを組んでました。 次々処理したい時、前回の結果が勝手に消えてくれると便利かな、と。 # コマンドプロンプトに直接送る方法がわからないのでコピペしてます。
861 :
Name_Not_Found :03/02/12 14:56 ID:/ROpRUnL
>>861 そのプログラムのソ−スを読めば分かるじゃん。
プロクソミトロンなら。
>>861 こうかね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<style type="text/css">
#i0 { visibility:hidden; z-index:5; position:absolute;
top:10%; left:10%; width:80%; height: 80% }
</style>
<script type="text/javascript">
function pop(uri) {
var elt = document.getElementById('i0');
elt.src = uri; elt.style.visibility = 'visible';
}
function unpop() {
document.getElementById('i0').style.visibility = 'hidden'
}
</script>
</head><body>
<p><a href="#" onmouseover="pop('
http://www.yahoo.com/ ')"
onmouseout="unpop()">pop<iframe src="about:blank" id="i0">?</iframe></a></p>
</body></html>
866 :
Name_Not_Found :03/02/12 18:34 ID:GBJhjvX5
画像をクリックすると別窓で表示(メニューバー等一切無し)させたいのですが どうしても画像の上、左に余白が空いてしまいます。 こういう場合ってOnClickで指定するのは直接画像ではなく HTMLの方が良いのでしょうか? 解決方法があればお願いいたします。
>>866 あんま関係ないけど、そういうのはスクリプトがOffでも表示されるようにしてくれ。
<a href=a.jpg target=_blank onclick="with(window.open('','','toolbar=0').document){
write('<body style=margin:0><img src='+this.href+'></body>');close()}return false">a</a>
869 :
Name_Not_Found :03/02/13 00:16 ID:6sNytMTh
フォームの入力内容を CGIに渡して別ウィンドウで開きたいんですがどうすればいいのでしょうか? <script type="text/javascript"> <!-- function OpenWin{ win=window.open("", "newwin", "width=400,height=300";) } // --> </script> として、 <FORM METHOD="POST" ACTION="form.cgi" onsubmit="OpenWin"> じゃだめなんですよね。 <INPUT TYPE="submit" VALUE="送信" onclick="OpenWin"> だともっとおかしいような・・・・。
さっぱりわかってない初心者なんですがどこ調べてもいまいちわかりにくかたんでここで質問させてい ただきます。 HPのオープニングに2枚のFLASHアニメ(SWF形式)を順番に表示させてから少し待ってトップペ ージにジャンプするJAVAスクリプトが欲しいです。 setTimeout();がどうこうという所で行き詰まってて、HTMLでFLASHを表示してJAVAスク リプトでアニメ終了まで時間待ちという形をとってみたんですが全く待ちもせず一度に全部表示してし まいます。レイアウトは最初に1枚目の画像を画面中央に表示。終了までまって消去。次の画像も中央 に表示。終了したら1秒待ってトップページにジャンプとい感じです。 よろしくお願いします。
>>869 <form ... target="_blank">とかでどお。
>>865-868 別に自分のコードが優れているとも何とも思ってないんで、
ぜひもっといいコード貼ってよ。勉強させてもらうから。
>>870 だから現象だけ説明されても回答しようがないだろ。ソースの
要点を貼ってみなってば。
いま分割でカキコします。すんません
<html><head>
<meta http-equiv="Content-Type"
content="text/html; charset=x-sjis">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>無題 標準ページ</title>
</head>
<body bgcolor="#000000" text="#FFFFFF">
<p align="center">
<OBJECT classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000"
codebase="
http://active.macromedia.com/flash5/cabs/swflash.cab#version=5,0,0,0 "
きたない文ですんません。根本的に勘違いしてそうで怖いんですが・・
そのclear()ってのは何よ?これでどうして表示が切り替わるつもり なのか説明してみない?
clear()で画面消去ができると書いてあったなんですが別の言語ですか
881 :
Name_Not_Found :03/02/13 02:07 ID:rrU3O0FT
「あるリンクをクリックすると登録してある複数のURLからランダムで 選ばれてジャンプする」というのはありますか? ポイントは最初のリンクテキスト(画像)は同じものを常に表示させたいことです。 要するににクリックして当たりペ0ジが出る確率は1/10で、 それ以外は広告ページというのを作りたいんです。 お願いします。
882 :
Name_Not_Found :03/02/13 03:46 ID:IE7FQjQp
883 :
Name_Not_Found :03/02/13 05:47 ID:pomUrXGw
少し説明が長くて申し訳ありませんが、どうしても解決できません。 どなたかお助けください。 クライアント側の共有フォルダの中にあるファイルを開いたり、ファイル名を表示させるexeがサーバ側にあります。 HTML内に<input type="file...>というタグがあり、ファイルをアップロードできるようになっています。 ここでアップロードしたファイルの名前を変数に格納して、前述のexeにJavaScriptを使って渡すと特定の文字だけ化けてしまいます。 化ける文字はShift-JIS16進数で表した時に、2バイト目に0x5Cがある文字です。5Cをエスケープ文字と認識してしまうみたいです。 JavaScriptを使わずに渡した場合は化けません。 escpae()はブロウザやバージョンによって動作が違うので、IE6だとUnicodeに変換してしまうので、うまく利用できません。 ちなみに、escpae()を使用すると、今度はカタカナが全て、文字化けしてしまいます。 どうしたら、この問題を解決できるでしょうか? JavaScriptで、文字をShift-JISの16進数に変更するのはどうしたらいいのでしょうか? 数値を指定の進数に変換する関数はありますが、文字の場合はどうすればいいのでしょうか? 長々とすみませんでした。
>>883 //与えられた文字列の1文字目の16進Shift_JISコードを返す
execScript('Function VBASC(s)\nVBASC=HEX(ASC(s))\nEnd Function','vbs');
alert(VBASC("ソ"))
>>883 その0x5cを含む文字だけ文字コード調べて「%xx%5c」と書く
のはどう?読みにくいけど一番簡単かも。
>>885 そのための質問なんじゃないの?
>JavaScriptで、文字をShift-JISの16進数に変更
887 :
Name_Not_Found :03/02/13 09:45 ID:pomUrXGw
883です。皆さんありがとうございます。 私も885さんのアイディアと似たようなことを思ったんですが、文字を16進数のShift-JISにすることができません。 escape()を使うと、 IE6とOpera6では16進数Unicode、 NN7では16進数Shift-JISコード、 を吐き出すというふうに、動作結果が違うんです。 escape()を使った方がいいのでしょうか? それとも、他に16進数にするやり方があるのでしょうか?
>>887 手で(コード表で)調べろという意味だったんだけどな。
1文字だけ調べてあげるからその文字を書いてみ。
>>881 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var a = ['
http://www.goo.ne.jp ','
http://www.2ch.net ','
http://www.ntt.com '];
function randomjmp() {
location.href = a[Math.floor(Math.random()*a.length)]; return false;
}
</script>
</head><body>
<p><a href="
http://www.yahoo.com " onclick="return randomjmp()">test</a></p>
</body></html>
>>879 別の言語のようですな ^_^; そもそもすべての<script>...</script>は
連結されて実行されるんでchange_Time()を2重に定義しても無意味でしょ。
<script>...</script>を分けて意味があるのはdocument.write()するときとか
だけ。おまけにchange_Time()を呼び出すところがないし。
たぶん素直な技としては<body onload="setInterval(change_Time, 100)">
とかして定期的に呼び出すようにして、その中で呼び出された回数を数える
かFlash Pluginのメソッド呼んでムービー再生中か調べるとかして、ムービー
切り替えて、2つ目が終わったらlocation.hrefに行き先を入れてジャンプする。
Flash PluginをJavaScriptから使う場合の情報はこちら
ttp://www.macromedia.com/support/flash/publishexport/scriptingwithflash/ 自分はFlashやらないんでそれ以上は試したことなし。
ひとまずそのFLASH PLUGINを試してみます。 ありがとうございました。過程と結果も報告させてもらいます
>>879 JavaScript1.0にclear()はあったけど、
open()でも似たような効果を出すから1.1で削除されたそうな
894 :
frame :03/02/13 15:37 ID:bKKKVITd
menuフレームのボタンでmainフレームを印刷したく、下記のように書いたんですが、実行すると エラー: 'parent.main' は Null またはオブジェクトではありません と出ます。どなたか解決策をお教えください。 *スクリプト部* <script language="JavaScript"> <!-- function PrintMainFrame(){ parent.main.focus(); parent.main.print(); } //--></script> *HTML部* <input type="button" name="insatsu" value="印刷" onClick="PrintMainFrame()">
印刷出来るが。 <frameset cols="60,*"> <frame src="hoge.html" name="sub"> <frame src="hoge2.html" name="main"> </frameset> でhoge2.html印刷
>>893 おお、そうなの。勉強になるなあ。でもopen()で自ページクリア
しちゃうとJavaScriptも消えて止まっちゃうよねー。
>>894 フレームの切り方が問題になるということを認識してないでしょ。
フレーム切ってるHTMLを貼ってみれ。
898 :
frame :03/02/13 17:19 ID:pqNYfPri
>>895 環境が悪いのでしょうか?
Windows2k+IE6とwindows2k+Sleipnir
なんですけど・・・。
>>897 こちらです。
<%@Language="VBScript" %>
<HTML>
<HEAD>
<TITLE>システム</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=x-sjis">
</HEAD>
<FRAMESET COLS="150,*" ROWS="*">
<FRAME SRC="left.asp" NAME="menu" SCROLLING="NO" NORESIZE>
<FRAME SRC="./kinmu/timecard/timecard.asp" NAME="MAIN">
</FRAMESET>
<NOFRAMES>
<BODY>
</BODY>
</NOFRAMES>
</HTML>
NAME="MAIN" -> NAME="main"
>>899-900 JavaScriptでは、と補足しておく。
# HTML側では name 属性は case-insensitive なので。
902 :
Name_Not_Found :03/02/13 23:50 ID:jiC/6FKo
あほですいません。 新しく開いた子ウィンドウのフォームから CGIにデータを渡し、 ついでに子ウィンドウを閉じるには どんな風に書けばよいのでしょうか?
903 :
Name_Not_Found :03/02/13 23:51 ID:jiC/6FKo
たびたびすいません。 新しく開いた子ウィンドウのフォームから CGIにデータを渡し、 親ウィンドウに結果を表示して、 ついでに子ウィンドウを閉じるには どんな風に書けばよいのでしょうか? です。
>>1 それが分かってれば質問する必要ないじゃんバーカ
905 :
Name_Not_Found :03/02/14 00:14 ID:FU0dZdX+
889さん、ありがとうございます。 文字化けする文字は16進数のShift-JISで表した時に5Cで終るもので、「能」(945C)、「表」(955C)などです(一応2つ書いちゃいました)。 <INPUT TYPE=file NAME="upload_file_name"> でアップロードしたファイル名にそれらの文字が含まれていると、 txt = document.aa.upload_file_name.value に格納して渡す時に化けてしまいます。 できれば、テーブルを作成して…というやり方は避けたいのですが、無理でしょうか?
やっぱりわかりません。というか英文読めません。
誰か
>>870 のHTMLとスクリプト書いていただけませんか?
907さん すみません、884試してません。 JavaScriptじゃないと思ったので。 これはVBなのでしょうか? JavaScriptと一緒に使えるということですか? VBはやったことないんですが、もしそうなら、勉強してみたいと思います。
909 :
Name_Not_Found :03/02/14 01:19 ID:IsePXyt1
このスクリプトを見つけたのですがURLはどこに挿入したらいいのですか? あるリンクをクリックすると当たりページが1/10であとはハズレページが 表示されるというものです。 配列にURLを格納し、リンクがクリックされたら乱数を発生させて配列の中 からランダムにURLを選択してジャンプします。 <Script> var url = new Array; url[0] = "0.html"; url[1] = "1.html"; url[2] = "2.html"; url[3] = "3.html"; url[4] = "4.html"; url[5] = "5.html"; url[6] = "6.html"; url[7] = "7.html"; url[8] = "8.html"; url[9] = "9.html"; function click() { var ran = Math.floor(Math.random()*url.length); location.href = url[ran]; } </Script> <A HREF="JavaScript:click()">リンク</A>
>>909 >配列にURLを格納し、リンクがクリックされたら乱数を発生させて配列の中
>からランダムにURLを選択してジャンプします。
ここまで書いておいて解らない香具師にはどうやって教えていいか解らない。
自分なりに考えて色々いじってみなよ。最初のうちはあてずっぽでいいから。
907さん すみません、884試してません。 JavaScriptじゃないと思ったので。 これはVBなのでしょうか? JavaScriptと一緒に使えるということですか? VBはやったことないんですが、もしそうなら、勉強してみたいと思います。
912 :
Name_Not_Found :03/02/14 02:44 ID:SiVCyT/v
フォームに入力されたデータを、 子ウィンドウに送信(submit)するには、 どうするの?
<form target="子ウィンドウの名前">
>>911 VBscriptをJavascript内で使うためのメソッド>execScript()
IE限定。
execScript('Function VBASC(s)\nVBASC=HEX(ASC(s))\nEnd Function','vbs');
を書いておけば
VBASC("ソ")で呼び出せる。戻り値は16進Shift_JISコード
「IEでSJISエスケープするには?」ってFAQかもね。
916 :
frame :03/02/14 08:49 ID:XL+7Smmd
>>899-901 ありがとうございます。さっそく大文字小文字をそろえてみました。
でも、同じエラー<'parent.main' は Null またはオブジェクトではありません>が出てしまいました。
framesetの方にあまり手を加えると怒られるので、scriptの方をを大文字にそろえてしまったんですが。
<script language="JavaScript">
<!--
function PrintMainFrame(){
parent.MAIN.focus();
parent.MAIN.print();
}
//--></script>
917 :
914 :03/02/14 08:51 ID:???
execScript() の説明で「第二引数にvbsを指定したら」が抜けてた。
918 :
frame :03/02/14 09:11 ID:XL+7Smmd
小文字にもそろえてみました。 私の持ってるデータが古かったみたいで、今はNAMEは小文字だったそうです。 ですので、scriptも小文字にそろえなおしたんですが、やはり同じエラーが出ました。
914さん、884さんありがとうございました。 すごい!とても勉強になりました。 execScript()がJavaScriptのメソッドだって、何で気が付かなかったんだろう? すみませんでした。 IEはこれで対応して、NNはescape()を使えば解決できそうね。 試してみます。
920 :
Name_Not_Found :03/02/14 09:42 ID:c1k21sM+
商品を注文をするフォームでテキストボックスに "0"が入力されると警告を出すようにするか、 "0"を入力不可能にするようになんとか出来ないでしょうか?
警告を出すことはできるに決まっているが。調べたの?
922 :
Name_Not_Found :03/02/14 10:00 ID:c1k21sM+
警告を出す事は知っているのですが 0を入力すると警告を出す方法がわからないのです。
>>920 テキストボックスに数値の 0 が入力されたら即警告を出したいのか、
たとえば数量を記入するテキストボックスに 0 としか記入されずに、
送信ボタンが押されたら警告をだしたいのか。
どう考えてるの?
>>920 さらに聞くなら「0」1文字の場合?「00」みたいに数値の0になるもの
すべて?「」みたいに空っぽの場合も数値に変換すると0になるが。
<input type="text" onchange="if(this.value == '0')alert('??')">
こんな感じ?
>>918 まあ順番にしらべようよ。
alert(window.parent);
alert(window.parent.frames);
alert(window.parent.frames.main);
alert(window.parent.frames.main.focus);
これ順番に試してみたら?
execScript('Function VBASC(s)\nVBASC=HEX(ASC(s))\nEnd Function','vbs'); を使っても16進Shift-JISになりませんでした。 どんな文字でも、"3F"を返します。
927 :
frame :03/02/14 13:21 ID:XL+7Smmd
>>925 試してみました。
<script language="JavaScript">
<!--
function PrintMainFrame(){
alert(window.parent.frames.main);
//parent.main.focus();
//parent.main.print();
}
//--></script>
上の3つはalertで、4つ目はエラーでした。メッセージは以下のとおりです。
[object]
[object]
undefined
'window.parent.frames.main.focus' は Null またはオブジェクトではありません
>>926 VBASCに渡してる文字列が既に化けている雰囲気。
930 :
ディーゴ :03/02/14 17:18 ID:LONYiCz0
JAVAScript内でウィンドウを出し、 そのウィンドウが閉じるのを待ってから、 次の処理に移るにはどうしたら良いですか? <SCRIPT> . . window.open("AAA"); このウィンドウが閉じたら . . alert("pepe")これを出す . . </SCRIPT> みたいな。
931 :
Name_Not_Found :03/02/14 17:19 ID:tojYdR6x
setTimeout で関数名の部分に関数内メソッドを指定するとエラーになります。 例えば setTimeout("this.myView()",100); などと記述するとエラーになるのです。 ちなみに this.myView(); ではエラーにはなりません。 メソッドであり関数でないためにエラーになるのでしょうか? 関数やらオブジェクトやらメソッドやらプロパティやら その辺の用語の概念がよくわかっていないずぶの素人ですが よろしければどなたか教えてはくれませんか?
>関数内メソッド なんじゃそら?
933 :
Name_Not_Found :03/02/14 17:28 ID:tojYdR6x
>関数内メソッド オブジェクト内メソッドかも。 メソッド→関数、プロパティ→変数 オブジェクトを定義して、その中でsetTimeoutを使ってメソッドを指定すると 原因不明のエラーになる、ということです。多分。
935 :
Name_Not_Found :03/02/14 17:43 ID:tojYdR6x
>>930 呼び出し元のファイル
<script language="JavaScript">
<!--
function openNewWindow(){
window.open(URL);
}
function closedWindow(){
alert("pepe");
}
//--></script>
openNewWindow() は適当に呼び出しといて
で、呼び出されるファイルには
<body onunload="window.opener.closedWindow();">
ってこういう書き方でいいのかな
>>931 結果だけ言うと setTimeout の引数に文字列で与えたコード中の this は
window オブジェクトを参照する。
だからオブジェクトのメソッドで setTimeout なんか使っても
呼出元のオブジェクトを参照することができない。
setTimeout の引数に文字列で与えたコードは
setTimeout の呼出コンテキストから独立しているんだよ。
だから this みたいにコンテキスト依存するものを
引数の文字列に使っても呼出したスコープの this を参照しない。
呼出元オブジェクトを参照する必要があるなら
ローカルスコープの変数を参照できる関数を作成して setTimeout の引数に指定しる。
var o=this;setTimeout( function(){o.myView()}, 100 );
そうすれば関数はその呼出コンテキストで宣言された変数を参照できる。
938 :
Name_Not_Found :03/02/14 17:51 ID:tojYdR6x
>>937 ありがとうございます。少しわかったような気になりました。
やってみます。
939 :
Name_Not_Found :03/02/14 18:18 ID:tojYdR6x
できました! ありがとうございました。 this の代わりに呼び出し元オブジェクトの名前を使って メソッドを指定してみてもダメだったのですが オブジェクトの名前を外部でローカル変数として 定義していたのが悪かったようです。 グローバル変数としてオブジェクト名を定義したら問題なく動作しました。 お騒がせしました。 …言葉の使い方が適切かどうかちょっと不安。
940 :
930ことディーゴ :03/02/14 18:49 ID:LONYiCz0
おいらもかまってクレヨン
>>940 お、IDが「ロンリーで行くぞ」ですな。
>>940 「JavaScript ページを出る」でぐぐる。
>>940 | |
| |∧∧
|_|・ω・`) 漏れの書いた
>>936 じゃダメでつか?
|鬱|o o.
| ̄|―u'
""""""""""
944 :
ディーゴ :03/02/14 19:41 ID:LONYiCz0
>>943 様様
見逃してたヨ・・・
それで行ってみます。
ベリーサンクス
945 :
ディーゴ :03/02/14 19:41 ID:LONYiCz0
946 :
Name_Not_Found :03/02/15 02:21 ID:U9++RDQT
フレームが上下2つに分かれていて 上フレーム名がup 下フレーム名がdownとします。 上フレームにはボタンがあり、 <INPUT onclick=start() type=button value=" はじめ "> ボタンを押すと 下フレームのフォーム内 <FORM method=post name=watch> <INPUT name=box size=10 style="FONT-SIZE: 60pt;"> </FORM> に文字が表示されるようにするのには どうしたらよいですか? start()関数が、これだとうまくいかないです。 だれかお助けを。 function start() { parent.down.document.watch.box.value = " こんにちは " ; }
don't name it start
948 :
946 :03/02/15 02:42 ID:U9++RDQT
<INPUT onclick="start();" type=button value=" はじめ "> でもダメなんですけど
>>928 >>929 さん、ありがとうございます。
シンプルに下記のようにテストしました。
どんな文字を入れても「3F」が返ってきます。
execScript('Function VBASC(s)\nVBASC=HEX(ASC(s))\nEnd Function','vbs');
var pp = VBASC("表");
alert(pp);
勉強不足でVBのことはよくわからないんですが、ASC(s)という部分できっとASCIIに変換してるんだと思います。 シングルバイトの文字を引数として渡すと、例えば「i」を渡すと「69」を返します。 ASCII表で確認すると、「i」は69で合っています。 ちなみに、3Fは「?」です。 ASC(s)を削除して、直接HEX()にダブルバイトの文字を渡すとエラーが出ます。
>>950 そのscriptを試したファイルのエンコードが
UTF-8の時に「3F」になる模様。
Shift_JISで保存したほうがよさげ。
>>951 さん、ありがとうございます。
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
というタグはは元々あったんですが、私のマシンでは「3F」と出ていました。
<script>にcharset="Shift_JIS"という属性を追加しましたが、結果は同じでした。
環境の違いでしょうか?
>>952 そのファイルを開いた状態で新たに「名前をつけて保存」を実行して
文字コードを「日本語(シフトJIS)」にして保存。
その保存したファイルを開くとどう?
>>953 ありがとう!
>>953 >>954 様
してありました。でも、3Fです。
もう1回してみましたが、ダメですー。
では、皆さんのところではちゃんとShift-JISのコードが表示されるんですね?
うーん。
>>953 >>954 様
今、何人かの友達に試してもらいましたが、皆「955C」と出たそうです。
私のだけ何かおかしいんですね。
>>955 新たに
<script>
execScript('Function VBASC(s)\nVBASC=HEX(ASC(s))\nEnd Function','vbs');
var pp = VBASC("表");
alert(pp);
</script>
だけをファイルに記述して保存してみては?
それでダメならとりあえず環境をかいてみよう。
win2000sp3+IE6sp1では成功する。
ただし
>>951 の通りUTF-8で保存されていると失敗する。
環境は 英語版 Windows 5.00.2195 Service Pack 3 IE6.0.28 です。
>>958 文字コードを「日本語(シフトJIS)」にして保存
↑
この操作はやってみたの?
>>958 他に試せるのはこのぐらいか。
execScript('Function VBASC(s)\nVBASC=HEX(ASC(s))\nEnd Function','vbs');
var pp = "表";
alert(VBASC(unescape(escape(pp))));
961 :
Name_Not_Found :03/02/15 12:50 ID:vPETetED
JavaScriptで、ID名やクラス名を関数に渡したいんですが、上手くいきません。 例えば <img src="〜" ID="ID_01" onmouseclick="Click("ID_01")"> で、スクリプト側で function Click(temp) { aleat(document.all.temp.src); } とかやると、もろに「temp」という名前のIDを探しに行ってしまいます。 コレをなんとか関数側でtempの中身をIDとして処理させることはできないでしょうか…? ド素人な質問でごめんなさい・・・
>>961 元のスクリプトに表記ミスはないよね?
onclick="Click(this.id)"
alert(document.getElementById(temp).src)
document.allはIEだけではあるがもし使いたいなら
alert(document.all.item(temp).src)
963 :
961 :03/02/15 13:41 ID:???
ありがとうございます! item(temp)で解決しました! 多謝!!!!
厨房な質問ですみませんが、IEで表示された画像を任意の大きさまで10%づつ縮小させたいと思い インターネットショートカットのURLに javascript:document.body.style.zoom*=0.9;eval(); と書いて お気に入りに登録してみたのですが、クリックしても全く反応しません。どこが間違ってるのでしょうか?
>965 書くべきスレッドを間違っています
商品を注文をするフォームでテキストボックスに "0"が入力されると警告を出すようにするか、 "0"を入力不可能にするようになんとか出来ないでしょうか?
>>967 取り合えず前者は出来ます。
まぁ、JavaScriptが無効なら無力なのでサーバサイドで対処した方が良いかと。
うむ、こいつに違いなさそうだな
971 :
山崎渉 :03/04/17 15:55 ID:???
(^^)
972 :
山崎渉 :03/04/20 04:01 ID:???
∧_∧ ( ^^ )< ぬるぽ(^^)
ここまだ生きてるのな
定期的に埋めに
html化させて
過去スレ一覧を整然と
19がもう出てますよん
この板の住人、埋め立てに興味なさすぎ…19かよ。
あと20だし、他板の連中呼び込めばなんとか… でも荒れるからやだな
999まで埋めても、誰も1000ゲットしてくれない…
あり得るな
ほかにもあるのかよ
しかも999止まり… たしか999でdat落ちしていたスレを前見かけたな
あと少し
10分経っても999のまま…ある意味すごい。
千里の道もあと10歩強
1000直前でageればきっと埋まるな
とか言っているうちに一桁台に…
>>990 その手があったか!今度からそうします…
プロトタイプベースのOOで遊ぶ… こんなのが動くと知った日は相当に驚いた。 (function(msg){alert(msg);})("test");
でも使い道ないな
二次元配列じゃない… alert([5,4,3,2,1][0]);
正規表現… alert(/ok/ig.exec("ookk"))
セミコロンの自動挿入は…
目標シナリオ: 998=このレス 999=age 1000=埋め
999 :
Name_Not_Found :03/05/28 00:13 ID:GawvXHQW
それではどうぞ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。