+ JavaScript の質問用スレッド vol.36 +
>>681 _, ,_
(д` ) おれのケツも拭いて
(⊃⌒*⌒⊂)
/__ノωヽ__)
>>682 サイ本できまり!
685 :
629:2005/05/19(木) 22:26:16 ID:???
あんたらのわからないものは馬鹿にしてスルーですか?
>>685 いや、馬鹿にはしてないよ。本当にどうしょうもないもん。
MSさんが決めることでつ。恨むならMSを恨め。
688 :
629:2005/05/19(木) 22:51:33 ID:???
>>686,687
すみません。てっきり馬鹿にされていると思いました。
>>681 や、だからさ、
<a href="javascript:op('t0.png')">test</a>
と書くよりだったら、
<a href="t0.png" onclick="op('t0.png'); return false" onkeypress="this.onclick()">test</a>
って書いたほうが、JS使えない環境でもリンク開けてお得だろ? という意味。
>>689 もちろんそういうのはいいんだけど、あくまでJavaScript動作確認
部分キックするだけだからさ。窓開くとかページ遷移とか、ナビゲーション
に類するJavaScriptコードならあんたのいうように書くよ。
>>689-690 うげげ、窓開くんだからナビゲーションに類してるな。
まあ自動窓閉じの確認だから勘弁して。
ってか、ここで質問する奴回答する奴のサイトを1度見てみたいと思わないか?
いったいどんな感じでJavascriptを使ってるんだろうか?
カンタービレ(歌うように)
♪Volare, oh oh, cantare, oh oh oh oh
nel blu dipinto di blu, felice di stare lassu
イタリア語は板違いですよ。
696 :
682:2005/05/20(金) 02:19:28 ID:???
>>684 どうもです。オライリー本はやはりよさそうですね。
他に薦められたのも本屋で見てみます。サンクス。
697 :
682:2005/05/20(金) 02:20:02 ID:???
698 :
Name_Not_Found:2005/05/20(金) 05:59:07 ID:0G8lT6Oq
正規表現で桁埋めをしたいのですがうまくいきません。
どのようにすればいいのでしょうか?宜しくお願いします。
str = document.forms[0].elements[0].options[document.forms[0].elements[0].selectedIndex].text;
str = str.replace(new RegExp(' ',"g"), "0");
<option> 0
<option> 50
<option>100
699 :
698:2005/05/20(金) 06:01:36 ID:???
<option> 0
<option> 50
<option>100
消えてしまったのでoptionの部分です。
は¥A0
document.forms[0].elements[0].selectedIndex って何だよww
for文でループしる。
var op = document.forms[0].elements[0].options;
var leng = op.length;
for (var i = 0; i < leng; i++) { op[i].text = 〜処理〜 }
702 :
698:2005/05/20(金) 07:01:13 ID:???
選択中のtextを参照できればいいので、ループは必要ないと思います。
分からない所はスペーススペース0の時に000としたいのですが
str.replace(new RegExp('スペース',"g"), "0");や
str.replace(new RegExp('; ',"g"), "0");としても
スペーススペース0になってしまいます。
そこの所を教えて下さい。何がいけないのでしょうか?
宜しくお願いします。
>document.forms[0].elements[0].selectedIndex って何だよww
長いということですか?ソースではnameになってます。
703 :
698:2005/05/20(金) 07:07:38 ID:???
[InternetShortcut]
URL=javascript:f=window.document.forms[0].elements;void(f[2].value=unescape("sage"));
これ便利!
つーか、タグ内の連続スペースはブラウザによって保持されるかわかんないし、
replace より substr 使ったほうがいいんじゃねーの?
str = ('0000' + str).substr(-3, 3); なニュアンス
>>698 ちゃんと str 変換した後、
document.forms[0].elements[0].options[document.forms[0].elements[0].selectedIndex].text = str;
ってリセットしてる?
706 :
698:2005/05/20(金) 07:56:23 ID:???
外出時刻ですので、帰宅後宜しくお願いします。
いやだ。
var select_tag = document.getElementByTagName("select")[0];
もしくは document.forms.0.elements.0
var str = select_tag.options[selece_tag.selected];
の方が見やすくない?
付けるとoptiontextの見え方がセンターによってカッコ悪いね。
いくらスペース空けても解釈されないからだろうけど、
桁数決まってるなら
>>704みたいに最大必要分だけ"0"付けて
後ろから桁数分刳り貫けば!
つ〜か、何様?おまえら宿題だやっとけってことか?
次スレ立ててこのスレ落としちまえば
>>698の慌てふためく顔が見られるぞ。
var select_tag = document.getElementByTagName("select")[0];
var str = select_tag.options[selece_tag.selected].text;
select_tag.options[selece_tag.selected].text = str.replace(/[\W+]/g,"0");
宿題お〜わりっと
付けると→ 付けるとね。
なんで「選択されてる部分だけ0フォーマットされればいい」のか理解できないんだけど。
そういう要望だからいいけど、不自然。
>>709 よ
[\W+] って何だよ。 + はどっから持ってきた?
っていうか [\W]+ の typoかもしれんが、それだと どれだけあっても 0 が 1桁 しか置換されないぞ。
再提出しなさい。
しかし
<option> 0
<option> 10
<option>100
こ
の場合、 options.略.text の部分ってどこまでなんだろうな?
"\s\s0\r\n\t" とかにならないかと不安。 (※ \sは半角スペースとして)
ちゃんと </option> で閉じようなw
713 :
712:2005/05/20(金) 10:23:52 ID:???
なぜか改行とかが変になったw スマンww
>>712 どこを縦読みでつか
「(゚Д゚)ハァ?optionは閉じタグいらねーんだよバーカ」と帰ってくる悪寒
つか、確かに閉じタグ無いのにtext取れるって微妙に怖いな
select_tag.options[selece_tag.selected].text = str.replace(/[\W]/g,"0");
+要らんかったね。[\W]+だと が一まとめで検索に掛かって
gが働かないんだね。ちなみに[\W+]だとなぜかgが機能したのだ。
ところで
str.replace(/(href=')([^h])/ig,"href='http://tv.yahoo.co.jp/vhf/aichi/$2");
の([^h])がうまく機能してくれないんだけど、
     。 。 。 。  
[^ ]って「〜以外のローマ字」に限定されるの?
それとも数字やその他の文字にも引っかかるのかな?
「h以外の如何なる文字」を表現したいのだが・・・・
716 :
Name_Not_Found:2005/05/20(金) 13:49:41 ID:9uvpe4Ij
JAVA初心者です。
自作H.PでMP3を完全ループで再生したいのですが、
embdタグなどだと、ループ時に無音がはいってしまいます。
FLASH、あるいはJAVAだとH.P.のBGMをMP3で完全ループで再生できると
聞いたのですが、どなたかソースがわかる方いらっしゃいませんでしょうか?
よろしくお願いいたしまする。
>>716 まず
>>1を読め。このスレではJavaもFlashも扱わないんだ。
>>716 タグ名間違えてる時点で救いよう無いな.
H.Pって何だろうボクワカンナイ
>>1-10 全部読み直せ。この辺のテンプレは常識。
719 :
654:2005/05/20(金) 16:09:27 ID:ZQNz0vKs
>>655さま
>>681さま
はぁはぁなるほど‥
「開いた側の窓」というのを,
「新しく開いたウィンドウ」の意味と勘違いしてました‥(ノ<;)
馬鹿かどうかと言われば,余裕で馬鹿の部類です(泣)
今のレベルは, HTMLは教本読破して,ほぼ理解して(るつもりで),
その本にチョコっと書かれていた簡単なJavaScript文は覚えたところで‥.
そんなやつに丁寧に教えて下さってありがとうございました.
720 :
698:2005/05/20(金) 19:22:57 ID:???
>704
前に足して後ろから3つ取るアイデアはいいと思いましたが、
出来ません。それにスペーススペース0になってしまいます。
for (i = 0;i <= 100;i++) {
document.write(('00' + i).substr(-2,3) + "<br>");
}
>711
>なんで「選択されてる部分だけ0フォーマットされればいい」のか理解できないんだけど。
組み合わせのArray生成スクリプトなので
var Combi105 = new Array(としたいのです。
お陰様で
str = str.replace(/[\W]/g,"0");
で出来ました。アドバイスありがとうございました。
703についてなんですが
移動して入力としたいのですが
URL=javascript:window.open('
http://pc8.2ch.net/test/read.cgi/hp/1114774413/l50','_top');f=document.forms[0].elements;void(f[2].value='sage');
URL=javascript:location='
http://pc8.2ch.net/test/read.cgi/hp/1114774413/l50';f=document.forms[0].elements;void(f[2].value='sage');
両方ともだめです。
どうすればいいのですか?
>>715 てゆうか、JSでの \w って単なる [0-9a-zA-Z_] じゃなくて、
日本語の数字とか平仮名とかも入るんだけど、それわかってるのかな?
あとなんでURLで [^h] とかしたいのかわからんw
[^h] これで h 以外のいかなる文字になるが、
例えば
<a href="a.html"> とかしてても、
HTMLの内部的には <a href="
http://〜略〜/a.html"> と置き換わってるわけで、
つまりネット上にあると全部 h から始まるわけで、
推測だけど、それ知らないで innerHTML とかやってるからとれねーんじゃねーの? とかどうよ。
722 :
704:2005/05/20(金) 19:37:32 ID:???
>>698 > それにスペーススペース0になってしまいます。
まずソースからスペースなくせよおばかwwww
それか まず先に str = str.replace(/[^0-9]+/, '');
それくらい言われなくても気づkwww
まあできたみたいだからどうでもいいけどね ヽ(;´д`;)ノ
>>721 >JSでの \w って単なる [0-9a-zA-Z_] じゃなくて、
>日本語の数字とか平仮名とかも入る
実装依存。正しくは、入らない。
こんにちは。
別フレーム(sita)のフォーム内テキストボックスに2種類数字がかかれていて、その二つを引き算した数をdocument.writeで別フレーム(ue)に出力しようと思っています。
sitaフレームに書かれているものは、
<html><body><form name="menu"><input type="text" value="0" name="goukei1"><input type="text" value="0" name="goukei2">
</form></body></html>
ueフレームに書かれているのは
<html><head><script language="JavaScript">
var zankin;
var tanomi;
var tounyuu;
parent.sita.menu.goukei1.value = tanomi;
parent.sita.menu.goukei2.value = tounyuu;
zankin = tounyuu - tanomi;
</script></head><body>
<script language="JavaScript">
document.write("あと",zankin,"円残っています");
</script></body></html>
ueフレームには、あとundefined円残っています、と出ます。
ueフレームは、このhtmlページに移る前にsitaフレームのテキストボックスを操作しているので、0-0という訳ではないです。
変数の扱い方が苦手なので…。
ちなみに、デザインを考える課題なので、ウェブショップに応用するつもりはないので、厳密に考えなくていいです(藁
アドバイスお願いします。
各フレーム内のドキュメントの読み込みは非同期なので、
フレームをまたがるスクリプティングには注意。
HTML要素がスクリプト上で定義、操作できる完全な保証はそのドキュメントを含むwindowオブジェクトのonloadイベント以後。
従って、1つのフレーム内スクリプトが他方のフレーム内ドキュメントのHTML要素にアクセスするにはそのonloadイベント以後でないといけない。
またどの時点で計算をするのか?
1文字入力しただけで計算するわけではないだろう?
1つの<SCRIPT>ブロックは1度ブロック内を全て読み込み、関数外でダイレクトにステートメントを書いたものは即、実行される
そこも理解しよう。
なんにしてもDHTMLオブジェクトのイベントを調べてみよう。
>>724 流れに無理がある。
>>725が言うように、読み込んだ後に処理をしないと無理かと
自分も良く分からなかったんで、試しに読み込んだ後、上のフレームに適当にボタンを作って
そのボタンを押すと下のフレームの menu.goukei1 の値を変える処理をしたら出来た
あと、tanomi と tounyuu の値が決まっていないんで、いきなり値の計算をされても困るかと
727 :
715:2005/05/21(土) 15:42:49 ID:???
舌足らずで、ゴメンなさいね。
>HTMLの内部的には <a href="
http://〜略〜/a.html"> と置き換わってるわけで、
>つまりネット上にあると全部 h から始まるわけで、
>>648で言っているような形でXMLHTTPのresponseTextの編集の話。
実行環境が、ローカルなんで相対参照はローカルを読みこむことになる。
サイトに挙げたところで、参照先は自分のURLで、決してimg/tv.yahooではない。
なんで、innerHTMLやる前に絶対参照に書き換えてるのさ。
で、YahooTVのサーバー上の処理コードが統一されてないので、
絶対参照の「”」「’」囲み/囲みなしや、相対参照の「”」「’」が混在してるの。
なんで色々正規表現を入れてるわけ。
で、これは最後の正規表現で、ほぼ絶対参照に変わってるんだけど、
href="20050521.html・・・・"のみ残ってるんで、それを換えていわけさ。
>>723そうみたいね。([~h]|\d)でやってます。
ちなみに
function optimizeLinks(str){
str = str.replace(/=(\'?)\//ig,"=$1
http://tv.yahoo.co.jp/");
str = str.replace(/(href=)[\.](\/)/ig,"$1
http://tv.yahoo.co.jp/vhf/aichi$2");
* str = str.replace(/(href=['|"])([^h]|\d)/ig,"$1
http://tv.yahoo.co.jp/vhf/aichi/$2");
* str = str.replace(/(href=)([^h|="|~']|\d)/ig,"$1
http://tv.yahoo.co.jp/vhf/aichi/$2");
return str;
}
今のところのこれでやっとります。
ついでに、
"/vhf/aichi/"をoptimizeLinksの引数で持ちたいんだけど、
持たせた時に*はどうかけば良いのですか?$1みたいな、
正規表現メンバにあらかじめ入れとけますか?
728 :
715:2005/05/21(土) 15:45:09 ID:???
Javascriptなんで×メンバ○プロパティでした。
729 :
715:2005/05/21(土) 15:53:46 ID:???
var tanomi = parent.sita.menu.goukei1.value;
var toukyuu=parent.sita.menu.goukei2.value = tounyuu;
var zankin = toukyuu-tanomi;
右から左に代入、これ基本。
ハイ!おじさん、今良い事言った。家訓にするように!
君がやってるのは、初期化してないゴミ値を、inputのvalueに代入。
ゴミ値を加算。合計を恐れ多くも「document.write」で表示。
>>2嫁。以上。
730 :
Name_Not_Found:2005/05/21(土) 15:54:55 ID:n/RXIpEi
ページを三つのフレームに分割して、一つのフレーム内にあるリンクをクリックすると、残り二つのフレームの内容が同時に書き換えられるようにしたいと思っています。
また、リンク1をクリックすると、残り二つのフレームがそれぞれのリンク1の内容を表示し、リンク2をクリックするとリンク2の内容を表示するようにしたいと考えています。
そのために使ったスクリプトです
<script type="text/javascript">
<!--
function func() {
top.FRAME1.location.href = "aaa.htm";
top.FRAME2.location.href = "bbb.htm";
return false;
}
// -->
</script>
<a href="#" onclick="return func()">XXX</a>
これだと、二つのフレームの内容を同時に書き換えることはできますが、二つ以上のリンクに適応することができません。
同じページの中に、複数のフレームの内容を書き換えるリンクを、二つ以上設置するにはどうすれば良いでしょうか?
>>730 1. リンクの数だけ複数個の関数を用意する
2. 引数に何らかの値を渡して識別する
3. Event オブジェクトから対象のリンクを識別する
>>727 >723そうみたいね。([~h]|\d)でやってます。
721の指摘は \w だけでなく、\d にも言える。
Firefoxの実装とは言え、ECMA262-3に対してはバグである。
このバグが問題にならなくて、XMLHTTPということは、JScriptオンリーだろうと分かる。
715がJScriptであることを先に書いておけば、721は勘違いをしなかったはず。