+ JavaScript の質問用スレッド vol.68 +
【質問を書く上で】 1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。 2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!) 長い(1レスに入らない)場合はアップロードしてURIを貼る。 3)初心者という言葉は危険なので使わない方がよい。 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。 4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。 ただ「動きません」「エラーです」は何も情報がないため嫌われる。 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!! OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。 5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8) 6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け! 7)質問はまっとうな(他人に理解できる)日本語で。 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
【FAQその1】 Q1. 開いた別窓/フレームの内容にアクセスできないのですが… A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。 Q2. JavaScriptでローカルファイルを読み/書きたいのですが… A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに… Q3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが… A3. セミコロンで複数の文を区切れます。onclick="foo();bar();"としましょう。 Q4. document.write(...)でページ内容を追加したいのですが… A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。 innerHTMLは非標準ですがIE、Opera、Safari、Gecko(N6/N7/Firefox等)で対応済。 Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが… A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。 Q6. DOMでtable要素にtr要素を追加しても表示されないのですが… A6. DOMでは(XHTML 1.x除く)tbody要素にtr要素を追加する必要があります。 tbody要素はtbodyタグを書いていなくても自動的に作成されます。 またはtable.insertRow()/tbody.insertRow()を使いましょう。 Q7. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが… A7. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。 Q8. フォーム部品名を変数にした「...myform.変数名.value」が動きません… A8. 「document.forms.myform.elements[変数名].value」でどぞ。 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。 Q9. Aタグのonclickで動作指定してるのですが時々動きません… A9. 「onclick="...;return false"」としないとページ移動しちゃうから。
【FAQその2】 Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが… A10. 取得には document.defaultView.getComputedStyle() を使う必要あり。 IEでは要素オブジェクトのプロパティcurrentStyleを使う。 Q11. 100*1.15の結果が114.999…998となってしまうのですが… A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。 Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが… A12. IE7/Gecko/Opera/Safariのnew XMLHttpRequest()、IEの new ActiveXObject("Msxml2.XMLHTTP.6.0") (または"Msxml2.XMLHTTP.3.0") を使えばできます。古いブラウザだと隠しフレームに読むなどのワザが必要。 Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません… A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。 複数の関数を呼びたいときは obj.onclick=function(){foo();bar();}; という風に無名関数を作りましょう。中に書かれたコードが実行されます。 Q14. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが 「"...this..."」とか「function(){...this...}」ではうまく行きません。 A14. それらが実行されるときはthisは別のもの(window等)を指してしまってる。 「function(x){return function(){...x...};}(this)」のようにthisを別の変数に 束縛しその変数を使って。循環参照によるメモリリーク問題あり(この項記述検討中) Q15. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが… A15. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。 正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。 各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、 offsetがマッチした位置、sが置き換え前の文字列全体になります。 Q16. input type="file"の値を設定(参照)できないのですが… A16. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。 Q17. getElementById('ID名')や$('ID名')で要素が取れないのですが… A17. コード実行時点でHTMLがそこまで読まれてない。onload中でやるとか。
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】 ・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。 ・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。 ・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと は無視」は不毛。質問者が分かって選択していれば尊重する。無知か らIE専なのは指摘してあげると親切。 ・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される 可能性大。非標準機能も損得を分かった上で使うならよい。 ・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、 そこだけ見ているとIE専になる。あとは上2件と同様。 ・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当 な理由があることも。尋ねて分かってないようなら煽っても可(w ・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選 択するべき。一概にどちらは駄目、とは言えない。 ・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
テンプレ乙!
1おつ
複数のラジオボタンを順番に選んでいって 最後に「診断」ボタンを押すと、何かしらの結果が出る診断テスト系のページを作ってみたいです。 単純に診断ボタンを押したら、フォームにテキストが表示されたり innerHTMLでページを書き換えることならできそうなのですが、 多くのページでは、診断ボタンを押すと、カチッと別ページに移動する音がして そこに結果が表示されています。 これはどのようにやっているのでしょうか?
例えば、a.htmlにインランフレームがあって、そこにb.htmlが表示されていて、 b.htmlのjavascriptには、test_b()っていう関数が定義されてる場合。 a.htmlのjavascriptからtest_b()を実行するのはどうすればいいのでしょうか? 試しに、a.htmlのscriptに function test_a(){ test_b(); } ってaとbのページが同時に表示されているしできるかなと思ってやってみたんだけどダメでした。 test_b();の前に何か指定してやるものがあるのか、 それともまったく別のやり方があるのか よろしくお願いします。
いろいろやってたら parent.フレーム名.test_b(); でいけました
まぁフレームごとにwindowオブジェクトがあるからな
18 :
15,16 :2008/12/31(水) 17:12:51 ID:???
ちょっと追記です。 parentで呼び出せるのはいいのですが、 iframe src="b.html" ↑ ここが親子関係?のない階層に変わってしまうと上手くいきませんでした 具体的には、b.htmlをa.htmlがあるフォルダの、一つ上のフォルダにbフォルダを作った場合、iframe src="../b/b.html"のときです。 これとは別で、a.htmlのあるフォルダにbフォルダを作って、iframe src="b/b.html"のときは成功しました。 解決方法があれば教えてください。
19 :
まとめ :2008/12/31(水) 19:44:46 ID:???
sample ┣a ┃┗a.htm ┣b ┃┣b.htm ┃┣c ┃┃┗c.htm 【b.htmからparent】 操作成功 c/c.htm 操作失敗 ../a/a.htm
ディレクトリ(フォルダ)階層を上にあがるのはセキュリティ上の 制約があるから。その制約を緩めるのはdocument.domainでぐぐれ。
21 :
>>19 :2008/12/31(水) 20:45:54 ID:???
>>18 と中の人が違う
>>19 です
<HEAD></HEAD><BODY>
<A onClick="parent.A.cd(1);">a</A>
<A onClick="parent.B.cd(1);">b</A><BR>
<IFRAME src="../a/a.htm" name="A"></IFRAME>
<IFRAME src="b.htm" name="B"></IFRAME>
</BODY>
ブラによるかもしれませんが
(注意:ローカルならば)上で各IFRAME内のcd()が実行できます
22 :
18 :2009/01/01(木) 02:07:39 ID:???
>>20-21 なるほど、素直に下の階層をつかておいた方がいいみたいですね
ありがとうございました
createElementでtrやtdタグを作る時は、使用回数だけtr、tdを作成しなければなりませんよね? (tr、tdを一つ作り、その使いまわしは出来ませんよね?という質問です)
winXp,IE6ですが、今書き込んでるこの機材では javascript:window.resizeTo(800,600); とアドレスバーに打ち込むとそのとおりウィンドウサイズが変わるのですが、 別の借り物のPC(やはりwinXp,IE6)では「無効な構文エラー」となって何もできません。 考えられる原因をお教えいただければありがたいです。よろしくお願いします。
>>25 そんな便利なものがあったんですね・・・
ありがとうございます。
>>24 JavaScriptが無効になってるんじゃないの?
>>28 めんどくさいからちゃんと呼んでないけどとりあえず
<script type="text/javascript">
(function() {
(略)
})();
</script>
この書き方だと(ライブラリ次第だけど)<script>の外に与える影響は低いから
<script>を二つ並べてidだけ変えてみれば動きそう。
ごめん
>>30 は取り消し。
Event.onDOMReadyが一個しか登録できない仕様で
上書きが起きてるとかそんな感じがしてきたけど
packedなコードなんて読みたくないw
javascriptだけでradioボタンを作りたいのですが動作が上手くいきません。 var tag = document.createElement('input'); tag.setAttribute('type','radio'); tag.setAttribute('id','index'); tag.setAttribute('name','index'); tag.setAttribute('value','tes'); var text = document.createTextNode('tes'); var tag2 = document.createElement('input'); tag2.setAttribute('type','radio'); tag2.setAttribute('id','index'); tag2.setAttribute('name','index'); tag2.setAttribute('value','tes2'); var text2 = document.createTextNode('tes2'); 以上が構文なのですが、tag、tag2どちらにチェックを付けても indexの値は必ずtagの方になってしまいます。 どこか間違っていますでしょうか?
idは重複しないようにしないといけないんですね・・ nameと混同していました。 どうもありがとうございます。
外部jsファイルでHTML側で読み込まないものと読み込むものがあるのは何故ですか? jsファイル自体は公開ファイルでパスなど書き換えの必要がないものの為、何もいじっていません。 同じディレクトリに入れたAは読み込まずBは読み込んでいます。 内容はロールオーバーで、 読み込まない方はimg属性にclass定義し、hsrc + オーバー時の画像名をHTML側に渡すもの。 読み込んだのはプリロードでHTML側にimgchangeをそれぞれ書いたもの。 読み込まなかった方が読み込みたい方なのでものすごい凹んでいます。 どうぞよろしくお願いします。
>>36 >読み込まなかった方が読み込みたい方なのでものすごい凹んでいます。
単に鯖が重いだけかもね 個人的に人様の鯖のファイルを読み込むのは ちょっとどうなんだろうって思う たとえ作者がそうしろと言ってても そんだけの情報じゃまともな回答は期待できないと思うよ
文字コードとか。
>>36 そのJSファイルのURIをブラウザのアドレスバーで直打ちして
両方とも読み込まれる(普通に表示される)かどうかチェックしてみて。
質問していい? 他人が作ったソフトなんだけど、 SQLitemanagerって名前のソフトなんだけど、 自分が作ったデーターベースのファイル名とパスを指定して サーバーにアップロードするって機能があって、 そこでたぶんjavascriptのコードだと思うんだけど、 どこにでもあるような、ごく普通のファイルアップローダーとかと 見た目は同じで、ボタンを押すと、自分のローカルのハードディスク内の ディレクトリが表示されて、そこからお目当てのファイルを選択して、 って流れなんだけど、どうもIEとfirefoxで挙動が違う。 これってバグなんだよね?IEだとファイルをクリックするとパスが ちゃんと表示されるが C:\xampp\htdocs\src\php\aaa.db みたいの。 ところが、同じことをfirefox上でやると、 aaa.db しか表示されないの。これってjavascriptのコードに 問題があると思うんだけど?
JS からパスにアクセスできるわけねーだろ
>>41 お前はJSの仕様をよく読んだ方がいい
JScriptと混同すんなよ。ActiveXとか使えないからな。
>32 >indexの値
>32 <FORM name="info"> <SCRIPT><!-- function RC(){alert("選択肢は"+document.info.index.length+"個") for(i=0;i<document.info.index.length;i++){dii=document.info.index[i]; if(dii.checked){ alert([i]+"はon/"+dii.checked+"でvalue="+dii.value) }else{ alert([i]+"はoff/"+dii.checked+"でvalue="+dii.value) } } } //--></SCRIPT> <INPUT type="radio" name="index" value="tes1">a <INPUT type="radio" name="index" value="tes2">b <INPUT type="radio" name="index" value="tes3">c <BR><A onClick="RC()">test</A> </FORM> こんな感じで
46 :
36 :2009/01/04(日) 20:49:10 ID:???
36です。
レス下さった
>>37-40 の皆さん、どうもありがとうございます。
>>37 失礼な言葉使いで申し訳ありませんでした。
>>38 書き方が悪かったですね。
公開者のサイトからDLできるようになっており、スクリプトはDLして自分が契約したレンタル鯖におきました。
試しに公開者の動作サンプルに読み込まれてるスクリプトのソースも確認しましたが、DLしたものと全く同じでした。
>>39 HTMLはUTF8にしてあります。
スクリプトに文字コード設定が必要とは知りませんでした。
少し調べてみます。
HTML側にRSS用にXML記述があるのですがそれは関係ないでしょうか?
>>40 URIというのがよく分からず検索してみたらURIエンコードというのがいくつかありました。
調べて試してみます。
ブラウザーで普通に表示されれば問題ないということでしょうか?
>>46 外部JSがJSライブラリを使用しないと動かない付属部品で
それ単体だとエラー起こして意味がないとか
/* | ここはそれぞれにあわせて | 書き直してください */ みたいなのを見逃してたり
動作サンプルは動くの?
質問です var argument = location.search; var param = argument.slice(1).split("/"); a = param[0]; b = param[1]; c = param[2]; こんな形で3つのサーチデータを読み込もうとしているのですが test.html?1/2 のように足りなかった場合 if(c == [足りなかった場合にcに入るもの]){エラー処理}; のようにやりたいのですが上手くいきません 足りなかった場合にはcに何が入っているのでしょうか? もしくは他の方法で判別できるのでしたらその方法を教えてください
if(typeof(c) == "undefined")
>>51 動きました!
すばやい回答ありがとうございます
atob()、btoa()の分かりやすい動作サンプルってないでしょうか?
>53 たとえば a=new Array("","a",1+2); a[0]=String(typeof(a))+"<BR>"; a[1]=String(typeof(a[1]))+"<BR>"; a[2]=String(typeof(a[2]))+"<BR>"; a[3]=String(typeof(a[3])); document.write(a.join("")); みたいな
xamppをインストールした環境で html ⇒ *.js ⇒ php ↓ php ⇒ *.js ⇒ html と、Ajaxを利用してphp内で出力した値をinnerHTMLとして書き換えるロジックを書いて いるのですが、全角文字を入力すると文字化けしてしまいます。 mb_convert_stringとか色々試しているんですけどどうすれば直りますか? ※htmlページ内は、sjisに文字コードを明示しphpを含むソースファイルはサクラエディタ からsjisとして保存済です。
>>57 ありがとうございます。
UTF-8にして試してみます。
でも個人的にsjisが好きなんですよね。
なぜにutf-8が使われているのか不思議です。
何故にトラブる Shift_JIS を敢えて使うのか
↑日本人だから。
日本語しか使わないならunicodeの恩恵がないと思っているあたり救いようがない
そのうち Shift_JIS がクソに思えてくるよ MySQL 使ってるなら特に
質問です。 lightwindowのキャプション内にURLリンクを設置したいんですけど lightboxのようにうまくいきません。一体どうすればよろしいでしょうか。
>>62 しかしながら携帯向けは未だにShift_JISが基本だからな。
まあSBみたいに部分的にutf-8を強制するクソキャリも有るが、3Gのみに
なれば解決するとは思うけど。
AjaxってUTF-8じゃないといけないんじゃなかったっけ?
XML でも指定すれば UTF-8 以外も使える。
68 :
Name_Not_Found :2009/01/08(木) 12:10:36 ID:JipimcGL
AとBのinputに数字を入力するとボタンを押さなくても勝手に計算してくれるようにしたいのですが ヒントをいただけないでしょうか?
onkeydown
onkeyup とか onblur あたりで でも IME オンの場合にビミョーな動作になると思うよ
<INPUT type="text" onChange="Calc();">
73 :
Name_Not_Found :2009/01/08(木) 12:49:03 ID:JipimcGL
ありがとうございました チャレンジしてみます
<FORM onChange="alert(code1.value+'/'+code2.value);"> <INPUT type="text" name="code1" value="tes1"><BR> <INPUT type="text" name="code2" value="tes2"><BR> </FORM>
75 :
Name_Not_Found :2009/01/08(木) 13:21:50 ID:ZFYVDkQ0
変数h,a,cに整数を代入しました alert(eval(h)+eval(a)+eval(c)); このような数式を書いたのですがなるべくevalを複数書かなくて済む方法はございませんか?
77 :
75 :2009/01/08(木) 14:25:32 ID:???
getで得た整数をh,a,cに代入すると文字列となってしまい evalを書かないと計算ができませんでした
alert((h-0)+(a-0)+(c-0));
alert((h+0)+(a*1)+(c/1));
+は無理じゃないか?
81 :
75 :2009/01/08(木) 15:03:01 ID:???
計算式の形は壊したくないので素直にevalを使うしかなさそうですね すみませんでした
>>77 関数なりメソッドで値を返すときに整数にすれば?
h="1",a="2",c="3"; for(i=1,Num=new Array(0,h,a,c);i<Num.length;i++){ Num[0]+=eval(Num[i]); } alert(Num[0]+"/"+h+a+c);
ary = eval(new Array(h,a,c)); alert(h+a+c)
>85 ブラウザ次第なんだろうか
ぜんぶ文字列に置き換えた方が早い h="1",a="2",c="3"; alert(eval(h+"+"+a+"+"+c));
h="1",a="2",c="3"; alert(eval(Array(h,a,c).join("+")));
みんながevalばかり書いてるからそれなりの理由があるのかと思ったけど、
>>75 の形ならparseIntでもいいじゃん
evalなんて滅多なことじゃ使わないってここで習って、確かに今までほとんど使ったことない
h="1",a="2",c="3"; alert(eval([h,a,c].join("+")));
ちょっと気になったんだが
>>75 の計算式が複雑な場合
alert(a+(b*100)/5-10*c);みたいなときはeval使うしかないのかな?
>>89-91 evalを使うべきでないと思うね。別に複雑だって数値を変数に入れて
あとはそのまま書けばいいんじゃないの。
変数の中が文字列型整数だった場合はevalをしないと無理だね 他に方法が思いつかん phpみたいにintvalとかで整数に変換できればjsも便利なんだけどね
>>94 parseIntでおk
式が文字列だった場合はeval
だからphpのintvalはJavaScriptではparseIntになるわけでしょ。
parseIntで
>>75 の式を書くとしたら
どういう形になりますか?
parseInt(変数)は便利だけど配列に一気にできればのう
99 :
75 :2009/01/08(木) 19:38:21 ID:???
>>97 alert(eval(h)+eval(a)+eval(c));のevalをparseInt変えるだけです(´・ω・`)
>>99 わかってるのかよw
何でparseIntを話に出さないんだ
足し算だけなら0から引いていって最後に-1かけたら
0を引くって良く使うけど判り難い?
そもそも何でevalってつかったらダメなの? なんでこんなにevalって嫌われてるの?
またこの流れか
別にどっちでもいいんじゃない? 変わった事しないと発見なんてないし 失敗も成功も経験した方がよっぽど身に付く 相手が間違えてる場合だってあるし コードを短くしたい為とか あえてやりたい人もいる
alert((+h) + (+a) + (+c));
107 :
Name_Not_Found :2009/01/09(金) 07:45:17 ID:qrcNeHTF
質問なのですが、リンクでサブウインドウを開きたいのですが そのサブウインドウ内のロケーション表示欄が非表示になりません(IE7です)。 ネット上で調べてみると「新しいブラウザではセキュリティの観点で非表示にならない」 のような事が書かれていたのですがURLを見せなく無い場合、 何か対処方法ありませんか? それと、リンクからサブウインドウを開いた場合じゃなく、 URLを直接入力してページを開いた場合にも メニューバーなど表示しないように設定する事ってできないでしょうか?
>>107 最新IEではできないし、仮にそんな方法があったとしても、
それは発見者がM$にバグ報告して修正されるのを待つべきものだから、
今ここで誰かがあなたにその方法を教えたとしても、
1か月もすりゃ使えなくなるから意味がない。
どーしてもやりたいなら、ユーザーに、
それができる古いブラウザ使ってもらうようにお願いすればいいんじゃね?w
「何で出来なくなったのか」を考えないバカなユーザーなら従ってくれるかもよ。
もちろん、そんなお願いをするなら「こいつバカだw」と晒されるのを覚悟した上でな。
>>103 evalは任意のプログラムを実行できる。だから入力欄にユーザが
本来のプログラムの動作内容を勝手に変更するコードを打ち込むと
それがevalで実行されてしまうようなことが起こる。これは
一般のプログラムでは絶対に許されないこと。
JavaScriptの場合、bookmarkletを使えば同じことができるので
他の言語のプログラムほど「いけない」とは言えないという議論も
あり得るけど、上のようなことがあるので普通は使わないようにしてる。
>>107 フィッシング対策のための制約。
URLを見ないのは愚かだし、URLを見せないのも愚か。
>>107 がフィッシングをやるつもりじゃなくても、ブラウザ制作者は
だれもそれを保証してやることなんてできないから一律禁止。
evalで実行したらあぶないコードなんてないでしょ
112 :
Name_Not_Found :2009/01/09(金) 12:11:40 ID:PAV6//oT
c:\text.htmlなどのオフラインでhtmlをjavascriptで書き換えたいのですが ajaxはオンラインでしか書き換えられないと知りました そこでinnerHTMLかDOMを使用して書き換えたいのですが 両者ともオフラインで動作しますか?
>>111 サーバにデータを保持するようなシステムで
誰かの入力値を eval() するような作りになっていたら?
>>112 ブラウザ仕様によるかもしれない
ウチのは問題なくできる
>>113 サーバでevalするならアホ。
evalだろうがなんだろうが、クラからのデータをノーチェックで
受け取るサーバもアホ。
そういうアホを除くと、クラでevalして困るのはクラ自身。
たしかにevalして危ないコード自体は存在してる。
人間の操作が必要とはいえ、XSSそのものだから。
でも
>>109 も言ってるように同じことがbookmarkletで出来てしまうから
evalを制限したところでどうにもならない。
evalがなんでダメだと言われてるのかをわかった上で
ブラウザ上のjavascriptで使うなら、好きにすればいい。
いまevalが熱い2009年
たとえばさ、「このページのこの入力欄にこういうものを コピペしてボタン押すとこんな便利になります」なんていうのを 流されて、その通りやったクラがひどい目にあうとするよね。 そりゃクラもあほなんだけど、そのページ作った奴もよくない と思うのね。bookmarkletより敷居が低くなるからね。
・可読性が低くなる ・処理速度が遅い ・セキュリティ この辺かな 少なくとも積極的に使う理由は見当たらない
119 :
107 :2009/01/09(金) 14:49:42 ID:qrcNeHTF
>>110 確かにそうなんですが
実際何をしたいかというと別に外部公開のサイトを作りたいのではなく
LAN内で使うデータベースの操作をするページを作りたいのです。
派遣の人とか出入りが激しい職場なので
万が一ウェブに詳しい人が操作をした場合
URLを直接打ち込まれて IEのメニューバーの“表示”→ ソース でjavascriptを見られたら
パクられる可能性も無くもないですし。
かといってIE7は使いたいんですよね。
urlが見えなくてもブラウザで開けた時点でPCにはurlの記録はあることを知れやbk
>>119 別にURLが表示されていなくてもソースは見られるし
HTML上に書かれているコードは誰だって見ることが前提でつくるもの。
それを否定したいなら、一人でコード書いてニヤニヤしてればいい。
ま、どうせお前のコードなんか誰もパクったりはしないよ
お前が書けるものは、他の人でも朝飯前で書ける。
>>119 理由言われてもIE作ってる人間じゃないしさ・・・。
つーかIEコンポーネント使えばいいじゃん。
定期的にむっつりさんが沸くね
124 :
Name_Not_Found :2009/01/09(金) 16:05:46 ID:UYmPWvcn
配列arrayにaからzまでのスペルを格納したいのですが a,b,c・・・と全部打つより楽をしたいので以下のように書きましたが array = new Array("a".."z") しかしこれをdocument.write(array[2]);としても表示されません arrayにはa~zまでのスペルが格納されてないからでしょうか?
>>119 フレームとCGI使ってJavaScript使わず別サーバで運営
マスターは別室で鍵してサブしか触らせない
それが嫌ならJavaScript程度じゃ到底無理だから
潔くあきらめる
>>124 javascriptには範囲演算子のようなものはないので
自分でa,b,c...と打つか
自分で範囲演算子に似た機能を持つ関数をつくるかくらいしかない
>>124 arrayを全部出力してみれば分かるじゃん
JSにそんな書き方はないよ
128 :
Name_Not_Found :2009/01/09(金) 16:39:19 ID:UYmPWvcn
phpに慣れてたせいでできると思ってました すいませんでした
array=[]; for(i=0;i<26;i++){ array[i]="abcdefghijklmnopqrstuvwxyz".substr(i,1); } alert(array);
130 :
Name_Not_Found :2009/01/09(金) 16:46:04 ID:gRbq56mK
/ ̄(S)~\ < > / / ∧ ∧\ \< ソース見るな! ソース見るな! > \ \( ゚Д゚, ) / /< > \⌒ ⌒ / ノ Y´`Y´`Y´`Y´`Y´`Y´`Y´`Y´`Y´`Yヽ )_人_ ノ / / ∧_∧ ■□ ( )) ( ; )■□  ̄ ̄ヽ γ⌒ ⌒ヽ  ̄ ̄ノ ノ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
* * * + うそです n ∧_∧ n + (ヨ(*´∀`)E) Y Y *
…
>>129 これでよくね?
array="abcdefghijklmnopqrstuvwxyz".split("");
なる
>>135 これって配列なの?
new Arrayかまさなくてもおkなの?
139 :
Name_Not_Found :2009/01/09(金) 23:22:58 ID:zFUV5/PJ
a=[1,2,3,4,5] for(var i in a){ if(i==3)i=""; } document.write(a[2]); forをforeachのようにしたときです 配列aの値が3の時、3を消して空にしたいのですがdocument.writeで出力すると3のままです どのようにして3を消せるのでしょうか?
>>139 if(a[i]==3)a[i]="";
これでいいんかな?
JavaScriptの勉強始めようと思うんだけど良い本とかある? スレ住人のお勧めあれば教えて。
オライリーの「JavaScript 第5版」ただしぶ厚い。 My UNIXシリーズの「入門JavaScript」Ajaxとかはのってない。
>>141 必殺javascriptのweb版でおk
オライリーは、本の後で解説される内容が普通に出てきたり初学者の学習には向かんと思うな 書いてるほうもそんなつもりで書いてないでしょ
買う必要はない WEBで公開されてるいろんなサンプル書き写して いろいろイジりながら感覚的に覚えた方が わかり易いし面白い
オライリーはある程度できるようになったら買うといいよ
オライリー作者必死だな
オラ、イリません。
必死と言うほどあまり奨められてない件 俺もオライリーを最初にかうより 簡単な実例がのってるリファレンス一冊買った方がいいと思う
150 :
141 :2009/01/10(土) 13:24:07 ID:???
サイ本はちょっとな・・・食わず嫌いかもしれんが 逆引きで機能に一通り目を通しておいて、 必要な時に必要な機能使うってのはどう? やっぱりなんでそうなるのか基本から覚えんといかんかね
ただ解答側は必読だと思う>サイ本 言うまでもないだろうが
>>150 一撃必殺javascriptはおまえのお望みとおりの逆引きだろksg
JavaScriptはCなど既習前提で体系的解説本は稀なので分厚いものが 素人に有り難がられているってことでしょ。素地のある人間にはサイ 本は不要。ベンダのリファレンスがあれば十分。
だからCやJavaやPHPやPerlやRubyと同じだと思ってやっていて 違うところが分かってない奴が沢山いるんだよね。おなじオライリーでも JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス を読むといいんじゃないだろうか。
"a".."z"が使えると思ってるprog上級者もいるしな
MDC(英語版)
>>153 お前がサイ本読んでないことだけは分かった
まあMDC日本語版で事足りるさ
個別のリファレンスじゃ足りないだろ。クロージャとか プロトタイプチェーンとかちゃんと載ってる?
>>159 MDC になはいな > クロージャとか
サイ本には載ってるが、分量的にはそんなに多くない
結局もっと詳しいこと知りたかったら、個人サイトなり何なりを探すしかない?
162 :
Name_Not_Found :2009/01/10(土) 22:17:38 ID:WKnxGjs3
document.write("\n"); で改行されないんですが、 何が悪いんでしょうか? 全文はこんな感じです。 <body> <script type="text/javascript" language="javascript"> var ret = ""; try{ ret = document.cookie; } catch(e) { document.write(e); } document.write(">>document.cookie"); document.write("\n"); document.write("\"" + ret + "\""); </script> </body>
163 :
162 :2009/01/10(土) 22:20:28 ID:WKnxGjs3
こうすると改行されずに、 >>document.cookie "0925786NQ=cdzaemzpdzaepnmaaac&00aaac" と表示されてしまいます。 ブラウザは、IE7です。
html として表示されてるなら それで正常では?
>>162 まさか\nと<br>を一緒だと思ってないだろうな
166 :
162 :2009/01/10(土) 22:29:52 ID:???
すいません。勘違いしてました。 htmlの改行は\nじゃなくて<br>でした。
165みたいな人尊敬するわw
クソワロタ
169 :
162 :2009/01/10(土) 22:42:37 ID:???
上のソース全体が、別フレームのdocument.write で書いたものなので、 混乱してしまいました。
いかにもIBMの新入社員がいそうなスレだ
textareaの高さと幅を100%みたいにするにはどうすればよかね?
クロージャやプロトタイプチェーンは小難しい話になるから 初心者は読まない方がいい。やりたくなくなる。 どうせ複雑なものを作ろうとすると、そこで躓くからその時調べればいい。 まずは基礎から 「JavaScript+Ajax プログラミング・テクニック」はお勧めだけど 自分の好きなものを見ればいいと思う
>>171 CSS か style オブジェクトで width を 100% に指定。
>>172 内容はともかく、少し誤字やら記述ミスが多くて読みづらかった気がする。
VBScript の本は世話になったが。
素朴な疑問なんですが幾らWebでAjax(JavaScript + 各種WEB言語)を実装した としてもクラサバには操作性・パフォーマンスでは劣ると思うのですが、 この点について皆さんはどう思われますか? それに、WEBサイトでAjaxなんて頻繁に使えばWEBサーバに無駄に負荷が掛かる気がします。
176 :
Name_Not_Found :2009/01/11(日) 04:09:53 ID:d5SkpBmV
AJAXやJavaScriptのことなのでここで聞かせてていただきます。
下記サイトのライブラリのようなJavaScriptでtableを拡張して
Excelのようなグリッドを実現するライブラリを探しています。
dhtmlxGrid - Ajax-enabled DHTML grid with rich Javascript API
http://dhtmlx.com/docs/products/dhtmlxGrid/ 特にソート、フィルター機能(<=100とかすると100以下のもののみ表示)、
と言った機能を重視しています。
オススメはありませんでしょうか?
178 :
Name_Not_Found :2009/01/11(日) 10:43:30 ID:/ZkZCwWm
変数iの値が100とします このiの-20%〜+20%の増減があるときの最大値と最小値を求めるコードを書きました i=100; b=i*1.2; s=i*0.8; answer= "最小値"+s+"最大値"+b; もっとスマートに記述する方法はございませんでしょうか? どなたかご教授お願いいたします
つられてみるか
>>175 クラサバって何のことなのか分からないけど専用クライアントを作って
それとサーバーで通信するシステムの事だと仮定して答える
・操作性
実装者のセンス次第だとは思うが、ユーザーがシステムを扱い始めた初期ではwebと共通のインターフェースを持つ方が学習速度が速いと思われる
・パフォーマンス
そうかもね 確かにGoogleMapsとか触っててもイライラするし
ただ世の中ってそんなにパフォーマンスが重要な事ばかりが必要とされてるわけじゃないよね
・WEBサイトでAjaxなんて頻繁に使えば…
必要な度に通信するんならAJAXもクライアントサーバー形式も負荷は一緒でしょ
180 :
Name_Not_Found :2009/01/11(日) 12:12:38 ID:Cu6T96J1
<a>タグのクリックでフォームを送信するときに、 nameつきのsubmitを押したのと同じ状態にできますか? <a href="javascript:document.form1.submit();">送信</a> だとnameがつけられなくて困ってます。
>>180 できるかできないで答えるならgetElementなんとかをうまく利用すれば出来ます
182 :
179 :2009/01/11(日) 12:22:57 ID:???
>>179 所詮ブラウザ上で出来る操作性なんてたかがしれてるとは思います。
> ・WEBサイトでAjaxなんて頻繁に使えば…
> 必要な度に通信するんならAJAXもクライアントサーバー形式も負荷は一緒でしょ
例えば、どこぞのサイトで使われている様に郵便番号を入力したタイミングで
住所を取得する、という処理をAjaxで行うだけでもかなりのサーバ負荷になると思います。
私、個人としてサーバ側で時間の掛かる一括処理を行う場合には、Ajaxを使用して
処理状況をブラウザに表示する位しかメリットがない気がしてなりません。
例えば、Ajaxを使用する場合にこんな場合に便利だよ、というのがあればお教え下さい。
183 :
Name_Not_Found :2009/01/11(日) 12:23:39 ID:Cu6T96J1
できるかどうか分かりませんが、 <input type="hidden" id="dummysubmit" name="submittype" value=""> これをgetElementByIdでとってきて、typeをsubmitに変更して、 click(); で押す?
184 :
180 :2009/01/11(日) 12:27:10 ID:Cu6T96J1
>>181 display="none" のsubmitボタンを作っておいて、javascriptからclick()しても、
できそうな感じがしなくもないです。
スマートなやり方を知ってたら教えてもらえませんか?
186 :
180 :2009/01/11(日) 12:44:40 ID:???
>>185 すいません。意味が分かりません。
nameをつけてsubmit()できるんですか?
バロス
俺様がヒントをだしてやるから省略しないで該当部分のhtmlを書け
>>182 > 住所を取得する、という処理をAjaxで行うだけでもかなりのサーバ負荷になると思います。
鯖側でデータを保持してるならどちらもさして変わらんと思うが
データを正規化すれば付加は減らせます
191 :
180 :2009/01/11(日) 13:14:45 ID:???
>>188 簡単に書くとこんな感じ。
<javascript>
function expand(fileid) {
document.getElementById("fileid").value = fileid;
//name="expand" のsubmitボタンを押した状態にしたい
}
function view(fileid){
document.getElementById("fileid").value = fileid;
//name="view" のsubmitボタンを押した状態にしたい
}
</javascript>
</head>
<body>
<form action="/TreeAction" method="post">
<input type="hidden" name="token" value="XXXXXXXX" />
<input type="hidden" name="fileid" id="fileid" value="" />
-------この部分が任意回数ループする-------------
<div>
<img class="icon" onclick="expand(ループカウント);" /><!--
--><img class="icon" /><!--
--><a class="filename" href="javascript:view(ループカウント);">ファイル名XXX</a>
</div>
-------------------------------------------------
</form>
192 :
180 :2009/01/11(日) 13:16:00 ID:???
Windowsのエクスプローラのツリー部分みたいなのを作ってます。
193 :
172 :2009/01/11(日) 13:35:47 ID:???
>>174 それには同意せざるを得ない
VBScriptのやつをそのまま書き換えた感が否めないしね
いい本ではあるんだが
195 :
180 :2009/01/11(日) 13:53:59 ID:???
出てくるよー。下から4行目。
jqueryで $('<div><span id="hoge">HOGE</span></div>').getElementById('hoge'); のような作動を再現するにはどうすればよいですか?
>>180 type="hidden" name="piyo" を作ってやればよくね?
>>119 確かにcookie名を見られると何をサーバーに送っているかが分かるからログ記録されるデータとか推測できると思うが
派遣とかなら頭悪いし大丈夫じゃね?あいつらバカだし。
っつーかアプリ作るならJAVAでやれや。
頭悪くて作れないならjavascriptで我慢しろやボケ!
↑ お前が一番頭悪そうに見えるのは俺だけ?
俺は、頭悪そうには見えないな。 見た目はただのバカに見える。 中身を察するに、頭悪い奴だってことは分かった。
203 :
Name_Not_Found :2009/01/12(月) 14:27:10 ID:lPlCKNK8
リンクをクリックしたら指定のURLに移動させたいと思います。 scriptのソース function urlJump(){ location.href="test.html"; } HTMLのソース <a href="javascript:void(0);" onclick="urlJump();">移動</a> としたのですが、IE6だと全く反応がありません。Firefoxは移動しました。 IE6の場合、どういう書き方をすればいいのでしょうか?
205 :
203 :2009/01/12(月) 15:13:07 ID:???
>>204 203に書いたソースを
<a href="javascript:void(0);" onclick="urlJump();return false">移動</a>
としてみたのですが、動作しません・・・
>>205 urlJumpの中にalert突っ込んでみるとどうなってる?
207 :
203 :2009/01/12(月) 15:30:18 ID:???
>>206 後出しですみません。実際は
urlJump('test.html';return false)
として、移動先のURLをurlJump内に追記しています。
リンクをクリックしたらそのファイルに移動するイメージです。
この書き方がいけないのでしょうか?
208 :
203 :2009/01/12(月) 15:32:32 ID:???
あと、function urlJump()の中にalert();を追加して リンクをクリックしたところ、何もメッセージがないアラートが表示されました。
おいおい!
>>207 は構文エラーだぞ。エラーが出たまんま
相談してるわけじゃないだろうな? 面倒だからサンプル貼るぞ。
これでIE6が動作しないとなると洩れにもわからんな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test(uri) { location.href = uri; }
</script>
</head><body>
<div><a href="javascript:void(0)"
onclick="test('
http://www.yahoo.com ');return false">X</a></div></body></html>
210 :
203 :2009/01/12(月) 17:11:20 ID:???
>>209 できました!
onclick="urlJump('test.html') ;return false"
こうするべきだったんですね。勘違いしていました。
ソースも書いていただき、大変助かりました。ありがとうございました。
<A href="" onClick="urlJump();return false">移動</A>
<a href="javascript:urlJump(); void 0;">移動</a>
Jugemkey 占いAPI
http://jugemkey.jp/api/waf/api_free.php (「利用規約に同意」を押すと仕様が見れます)
{
"horoscope":
{
"2006/07/01": //(A)
[
{
"content" : "義理や人情に囚われていると自分の居場所を無くし、苦労に終わりがありません。適度な要領のよさを持つことが必要です。",
"item" : "五百円玉",
"money" : 2,
"total" : 1,
"job" : 1,
"color" : "茶色",
"love" : 1,
"rank" : 12,
"sign" : "牡羊座"
},
このJSONを変数hogeもらったとして
この(A)のノードにアクセスするにはどう書けばいいんでしょうか
trace(hoge.horoscope.2006/07/01); としてもノード名の先頭が数字なため
エラーになりますし、 trace(eval("hoge.horoscope."+2006+"/"+07+"/"+01));
としてもうまくいきません
@囲み記号 何番目の始点で始まり何番目の終点で終わる範囲を拾うか A分割記号 何番目の破片を拾うか @/{}/0/0&A/{/2&A/改行/1&A/:/0 + @/{}/0/0&A/{/2&A/改行/1&A/:/1 node[0]="content" node[1]= "義理や人情に囚われていると自分の居場所を無くし、苦労に終わりがありません。適度な要領のよさを持つことが必要です。",
B抽出 innerかouterか node[0]→@/""/0/0=in node[1]→@/""/0/0=out node[0]=content node[1]="義理や人情に囚われていると自分の居場所を無くし、苦労に終わりがありません。適度な要領のよさを持つことが必要です。"
現在、WEBページを左右に分割しており、左側のリンクがクリックされた場合に
右の部分にリンク先のページを表示させようと思い、次のコードを記述しているのですが
なぜか右側("migi")に表示されません。一体何が原因でしょうか??
<a href="" onclick="location.href = '
http:// ' + location.host + ':8080/test/sample.html'" target="migi">Java用に作成したページ</a>
1※次のコードの場合は正常に右側に表示されます。
<a href="hoge.html" target="migi">php用に作成したページ</a>
2※ポート番号を指定しているのは、Java用のページはApacheTomcatの関係で8080でアクセスさせる為です。
>>219 分かりません。。。
っかもう眠たいのでそろそろ寝ます。
location てのは、省略せずに書けば window.location なんだぜ?
>>218 HTMLのtargetとかはこの場合JavaScript側には何の効力も
及ぼさない。JavaScript側でフレームや窓を参照する方法
あるから。それくら自分で勉強してこい。テンプレに参考サイト
とかあるでしょ。
ありがとうございます。
>>214 フォームとJSONのノード名のアクセス法は同じということなんでしょうか。
trace(hoge.horoscope.elements['2006/07/01']);など色々やってみたのですが
うまくいきませんでした。
>>215 質問する前に見てみたのですがよくわからなかったのです。
すいません。
>>216-217 申し訳ないのですが
どれが組み記号でどれが囲み記号なのか分からなかったです。
とりあえず教えていただいた内容で
もうちょっと頑張ってみます。ありがとうございました。
225 :
176 :2009/01/13(火) 14:10:27 ID:???
226 :
218 :2009/01/13(火) 14:55:15 ID:???
>>221 >>22 レスありがとうございます。
ちょっとヒント(参考になるURL等)を頂けないでしょうか?
なんか今時Javascriptって古いよね。 みんなはCGIが使えないから仕方なくJavascriptしてるんでしょ?
さっさとお引取り願うのがいいと思った
>>226 onclick="parent.migi.location.href = '
http:// ' + location.host + ':8080/test/sample.html'"
めんどくさいから「左のフレーム」と「右のフレーム」が同一のフレームを分割しているものと仮定
あとこれJavaScriptで書く意味あんの?
普通にhtmlでベタ書きすればいいじゃん
<SCRIPT><!-- function RC(){alert("On!") arisu=eval( {"horoscope":{ "2000/01/01":[ {"content":00,"item":01,"sign":"牡羊座"} ,{"content":10,"item":11,"sign":"牡牛座"} ] ,"2000/01/02":[ {"content":00,"item":01,"sign":"牡羊座"} ,{"content":10,"item":11,"sign":"牡牛座"} ] } } ); alert(arisu["horoscope"]["2000/01/01"][0]["sign"]+"と"+arisu["horoscope"]["2000/01/02"][0]["sign"]); } //--></SCRIPT> <A href="" onClick="RC();void 0;">test</A>
<body onKeyDown=K=event.keyCode><script>X=[Z=[B=A=12]];h=e=K=t=P=0;function Y() {C=[d=K-38];c=0;for(i=4;i--*K;K-13?c+=!Z[h+p+d]:c-=!Z[h+(C[i]=p*A-Math.round(p/ A)*145)])p=B[i];!t|c+4?c-4?0:h+=d:B=C;for(f=K=i=0;i<4;f+=Z[A+p])X[p=h+B[i++]]=1 if(e=!e){if(f|B){for(l=228;i--;)Z[h+B[i]]=k=1;for(B=[[-7,-20,6,17,-9,3,6][t=++t %7]-4,0,1,t-6?-A:-1];l--;h=5)if(l%A)l-=l%A*!Z[l];else for(P+=k++,j=l+=A;--j>A;) Z[j]=Z[j-A]}h+=A}for(i=S="";i<240;X[i]=Z[i]|=++i%A<2|i>228)i%A?0:S+="<br>",S+=X [i]?"■":"_";document.body.innerHTML=S+P;Z[5]||setTimeout(Y,99-P)}Y()</script>
正規表現とJavaScriptはどっちが難しいですか
>>231 正規表現の方が JavaScript よりも難しかったら、それは比較できるものではないですね。
>>227 悪いことは言わん。素直に帰っとけ。
あまりに痛々しい。
>>231 数学と微積はどっちが難しいと思う?
お前ら手厳しいな。 やっぱ2ちゃんよりもWeb制作管理板の方が怖いと思った{{(+_+)}}
236 :
Name_Not_Found :2009/01/13(火) 19:56:13 ID:Fr6AiwPK
>>234 数学の中に微分積分や関数が入ってると言うことですね。
つまりjavascriptに限らず正規表現なんか出来て当然って言うことですか?
プログラムの人は何でいっぱい色んな種類の作ったり、使ったり出来るのですか。
すごすぎてすごいんですけど。
今思いついただけでも、正規表現とjavascriptとperl/PHP/Delphi/C/C++/Eclipse
他にもいっぱいあるじゃないですか。
全部理解できますか?出来てる人いますか?
それはもうCSSすら、それ以前にタグとかあなたたちは一体どういうすごいです。
ageているということは、力作(のつもり)だったんだな。
>>238 言ってる意味がわからないんだけど、それ言ったら例えばperlなら + が . に変わるだけじゃないの?
>>236 自然言語(日本語、英語、仏語、独語etc...)と違って
プログラミング言語は明確な目的があって作られたものだから、
その目的やらといった概念を理解してしまえば修得は簡単。
今の高級言語なんて大抵は兄弟言語だから、1つできれば
他の修得も早いし、1つの言語が新しい機能を実装すると、
他もそれを取り込むなんてのも少なくない。
それぞれの言語は、それぞれの目的に特化してはいるけど、
同時に「プログラマが使いやすくなるような」改善も続けているわけ。
自然言語のマルチリンガルはすごいけど、
プログラミング言語のマルチリンガルはむしろできて当たり前。
んで、誤解を訂正しておくと、正規表現はプログラミング言語じゃない。
プログラミング言語のいくつかで、正規表現を機能として実装しているだけで、
「修得は必須でもないけど、使えれば相当便利」というくらいのシロモノ。
「使えるのはスゴイ」という発想はおかしいな。言語設計者が
「こういう機能あったら便利じゃね?」と思ったことをそのまま実装してるだけだから、
前述の通り、目的やら概念やらを理解してしまえば、何もむずかしいことはない。
CSSはさらに全く別のシロモノ。こんなのただの表現記述法でしかないw
釣果1人
unicode→sjisの変換テーブルを下のように作ったんですが、 100KBほどになり動作も遅いです。。。 function encodeSjis(n) { return { 0x005C:0x815F, 0x00A2:0x8191, 0x00A3:0x8192, ・ ・ 0x00A3:0x8192}[n]; } この変換方法以外に良い方法ないでしょうか。
244 :
218 :2009/01/14(水) 00:00:45 ID:???
>>244 そんなこったろうと思ったよ
それはJavaScriptで解決するべき問題じゃなくて
ヘアピンNATを実装してるルータを用いるか、
自分のPCのhostsファイルにmy_server→127.0.0.1(IPv6なら::1)への解決を書いておくか、
あるいはLAN内のDNSでmy_server→127.0.0.1の解決を行うか
が本質的な解決策だと思うぜ
>>245 残念ながらネットワークについてあまり詳しくありません。。。
って事でJavaScriptで解決しようと思っています。
>>228 先程ご教授頂いたコードを試したところ正常に右側のフレームにJSPのページを表示する事が出来ました。
ありがとうございました^^;
248 :
Name_Not_Found :2009/01/14(水) 16:39:09 ID:o83clCoC
>>182 > 例えば、どこぞのサイトで使われている様に郵便番号を入力したタイミングで
> 住所を取得する、という処理をAjaxで行うだけでもかなりのサーバ負荷になると思います。
住所入力の場合、ユーザが、郵便番号が分かっていて住所が分からない場合、前者でも問題ないんだけど、
一般に、郵便番号も住所も微妙に不正確、というパターンが多い。漢字やスペル間違いとかも。
そこで入力した端からユーザの補助となる候補を提供することで、その不正確さを補完したりできて便利だよ、と。
あと、コンピュータは人間が便利に使う為の道具なので、
サーバ負荷を気にして人間が不便な思いをするのは本末転倒な気がする。
サーバ性能まで全部ひっくるめて、サービスの質だから。
ForとIfの質問です。
ウェブページを見る人に特定の数値を入力させて
奇数、偶数、5の倍数のどの計算結果を求めるのかを指定させて計算結果を
表示するプログラムと作りたいです。例えば偶数であるならば特定の数値12と入力したならば
12までを偶数で足し(2+4+6+12)で計算結果は24となるようしします。
http://www1.axfc.net/uploader/He/so/182361.txt PASSは11です。
ソースを見ていただければわかると思いますが、ここまで作りました。
ご教授よろしくお願いします。
>>249 まぁ…、その…、あれだ。
「HomuPage」じゃなくて「HomePage」だ。
>>249 学校の宿題か?
ちゃんと自分で考えような。
254 :
Name_Not_Found :2009/01/14(水) 17:28:58 ID:KoP/Y2Mp
バロタ
>>249 新宿の○○専門学校乙
課題がいっしょなんだよ同じクラスかおまえw
相手にしてもらえないので去ります。
全く宿題くらい自力で何とかしろよ。 その専門の仕事に就く気がないなら未だしも、してから同じ様に助けて貰うつもりなのやら。
>>249 エラー処理が全然出来てない
括弧の対応が変、インデントをちゃんと入れろ
limitに代入後、何故keiで場合分けしてるのか意味不明
43行目のsiteiiはスペルミス
最初から作り直せ
>>259 少し自分で考えた方がいい
アドバイスを求める以前のレベル
了解しました。自分で考えてきます。
考えてきました
分かりませんので解答書いてください
>>263
ほかの人になりすまされてしまうのでコテを出しておきます。
解決しました><
265 :
Name_Not_Found :2009/01/14(水) 21:55:38 ID:KoP/Y2Mp
_,.. -‐―‐-- .. __ /´ . `ヽ 、 / 、、: ヘ :::::::..... \ ./ ‐-_ヽ!:...__>;::;;;;;;;::::::::...._ \ / / \!´ \::::::::! ̄ ヽ、 ヽ, `‐rt-'....,,,___」 \::! .ソ_,ノ !:.\::::.. ヽ >、:.、../_,、!、 , --v‐- 、 _ ヽ::.ヽ::::.. `、 / ニ,:',.':::::::(´ , - ';;/::ノ.:::// l ̄`―`-:;;\::.. ヽ / /jヽ:::::::::::)-‐'チ、 //.:::;ィ'":;∠;_/.:::!::::::............. トr-;;_ `、 / ,.-=';`-- -‐ii' ミ!ユ、 ..:ヽ-'⌒/::;;-‐'´ └‐┴‐-----=;;:.ヽ;:::::..:;ノ::.::.ヽ;:::::::....... .. .oo!!_,,..-"-┘..... `┘
266 :
FOR ◆Gv599Z9CwU :2009/01/14(水) 21:56:35 ID:1YEgTNOh
あれれ・・・・コテってまねできちゃうのですか・・・
>>264 邪魔をしないでください。
芬銓蓚?? 鞐髑袱茆 芬銓蓚?? ?鴈 窶諷鞳? lunka?4 闔齏? 齬蓚褂 ?髓逶? 闔齏? ?鴈 蒟轢驤謗矗辷? 轢 dvd 闔?鉗闔齏? 謫迥? 瘉諤鞐 痳髀諤鴉? 關鉐跪鴃 闔齏? 博銓蓚?? 謫迥? 闔齏 粤鴆褌? 竇? 闔齏? 竇? 闔齏? 礦粤? 痳髀諤鴉? 闔齏? 苣繼? 籥踵 闔齏? 琿蓐? 痳髀諤鴉? ?鴈 竏辣褌謗窶 ??齏? ?鴈 粤碆?? 痳髀諤鴉鈬 粮赭?繞 闔齏? 礦粤? 袱韜蒻? 闔齏? 闔齏? 芬銓蓚鉅 粤鴆褂? 闔齏? 窶諷鞳? 藁侏? ? 肆碆鴉??? 痳韋鈞? 驫瑾瑩? 痳髀諤鴉? 闔齏? 韲謌褂 闔齏? ? 肆碆鴉??? 芬鉐繩? 闔齏? 芬銓蓚?? 芬? 闔齏?
#11
270 :
for ◆5OlG8FTnGo :2009/01/14(水) 23:50:37 ID:1YEgTNOh
簡単な数列だとパスワードがばれちゃんですね。勉強になりましたー
入れ子の問題はJavaScriptに限ったことじゃないだろ CだろうがJavaだろうが一緒 基本中の基本 GUと"GU"は変数と文字列で全く別ものだから使っても問題ない 29〜30行目や38〜39行目みたいに変なところに改行入れるとエラーになって動かないぞ それと43行目のスペルミスも直ってない もう眠いから寝る
>>258 ,
>>271 学生が学校で出された宿題なんだから、自分で解決するのが当然。
お前らが一生こいつのプログラム見ていくならかまわんが、
それならここじゃなくて別の場所でやってくれ。
そうでないなら、これ以上かまうなよ。
>FOR ◆Gv599Z9CwU
プログラムの入門サイトでも適当に探して自分でやれと。
スレのテンプレに書いてないようなこと主張されてもな 質問する奴がいて、答える奴がいたんなら周りが口挟むことじゃねーよ
>>1 の
> 自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
に抵触しているように見えるね。だから洩れは放置と決めた。
まあ各自判断すればいいんでは。
答えたい奴は答えて答えたくない奴は答えないで野次飛ばしたい奴は飛ばせば良いじゃん プログラムをやってると白黒と1か0しか見えない人間味のない人が多いんだよな もっとコミュニケーションをとろうぜ
VIPでやれ
初心者スレへ池!
質問です。DOMのnodeValueって壊れてますか?代入できません。inner...は使 いたく無いんですが、その辺の情報いただければ有り難いです。
貴様の知識が壊れてるに100ペソ
すいません。278です。すごく荒れてるときに来たみたいです。少し勃ってか ら来たいたいと思います。でも、何でここの人ってこんなに精神が汚いんですか。
281 :
278 :2009/01/15(木) 16:06:20 ID:???
>>280 おいこら!なめてんじゃねえぞ!
人を騙ってんじゃねえぞクズがっ!
282 :
Name_Not_Found :2009/01/15(木) 17:25:03 ID:6+6edHyY
とりあえずここのスレ民度の低さはわかった。 糞しかいない。というわけでさよなら
ザコに興味はねえ とっとと失せろ
真・スルー 何もレスせず本当にスルーする。簡単なようで一番難しい。 偽・スルー みんなにスルーを呼びかける。実はスルーできてない。 予告スルー レスしないと予告してからスルーする。 完全スルー スレに参加すること自体を放棄する。 無理スルー 元の話題がないのに必死でスルーを推奨する。滑稽。 失敗スルー 我慢できずにレスしてしまう。後から「暇だから遊んでやった」などと負け惜しみ。 願いスルー 失敗したレスに対してスルーをお願いする。ある意味3匹目。 激突スルー 話題自体がスルーの話に移行してまう。泥沼状態。 疎開スルー 本スレではスルーできたが、他スレでその話題を出してしまう。見つかると滑稽。 乞食スルー 情報だけもらって雑談はスルーする。 質問スルー 質問をスルーして雑談を続ける。 思い出スルー 攻撃中はスルーして、後日その思い出を語る。 真・自演スルー 議論に負けそうな時、ファビョった後に自演でスルーを呼びかける。 偽・自演スルー 誰も釣られないので、願いスルーのふりをする。狙うは4匹目。 3匹目のスルー 直接的にはスルーしてるが、反応した人に反応してしまう。 4匹目のスルー 3匹目に反応する。以降5匹6匹と続き、激突スルーへ。
プライド高ぇー
まあいいや戻ってきてやったよ。だから次のプログラム作ってくれ 1 4 6 16 25 36 49 64 81 100 n*nの法則に基づく数字をforを使って順番に表示させるプログラムを作成してちょ 2通りの考え方があるにょ 教えてくれたら私のおっぱい(F)をうpするね
間違えちゃった// 6→9ね//
289 :
Name_Not_Found :2009/01/15(木) 19:40:06 ID:0nlUOT1e
>>275 if(Your.feeling == "答えたい"){
// 答える
}
else if(Your.feeling == "答えたくない"){
// 答える
}
else if(Your.feeling == "野次飛ばしたい"){
// 野次る
}
else{
// おっぱい
}
こうですか?
>>278 何のnodeValueを変更しているの?モノによるから。
複雑なことするのなら、ノードを削除したり挿入したり
して変化させることが必要だと思うよ。
次のページへ、又は前のページへと戻るリンク部分の文字を 「戻」「進」 とか 「前」「後」 とか。もしくは「<<」「>>」にするか今だ決めかねています。 決めてから普通に書けばいいのですが、200ページ以上はあるので 後でやっぱり・・・となった場合や単純に模様替えした際に更新作業が楽になる方が良いのです。 そこで prev = "戻"; next = "進"; と外部jsに変数として書き込んでおいて、後で変えたくなった時、簡単に変えられるようにしたいのですが、 この程度の事にjavascriptを使うのはWebアクセシビリティ?的にどうなのでしょうか? それか他に何か良い方法ありますか?
過疎ってるページに、 タンブラーが転がるような ブックマークレットを作ろうぜ、って話。
そうか がんばれ
>>292 変えたくなったらテキストエディタなり専用ソフトなりスクリプトなりを使って一括で置換したらいいのではないでしょうか。
「複数ファイル 置換」とかでぐぐるといろいろ情報が出てきますよ。
あとそのJavaScriptに修正なり変更なりが生じたらどうすんの〜とか思います(冗談みたいなもんですけど)。
>>292 アクセシビリティが心配なら
JavaScriptオフにして戻ったり進んだり
検索サイトから飛んだときのように適当なページを突然開いても
支障なく閲覧できるか自分で試しゃいいだろ。
支障がないってことは、本質的にそんなナビいらねってことだけどな。ただの飾り
>>297 レス遅れましたがありがとうございます。
こんな便利なソフトがあったんですね・・・全然知りませんでした。
早速いくつか目に付いたの試してみます。
ちなみに、javascriptの記述自体を編集する可能性はまったく考えていませんでした・・・。
>>298 よく考えたら、質問の仕方がおかしかったですね。
javascriptオフの人も居ると考えれば、
移動手段になる部分を表示出来ない可能性のある方法で書くのは、どう考えても支障ありまくりでした。すみません。
>>292 1.適当な言語でHTMLの整形雛形を用意する
2.ページの内容文章を書く
3.2を1の雛形に通してHTMLにする
4.3をうpする
X.リンクの文字を変えたい
→整形雛形の該当部分を書き換えて3を再実行すれば全部書き換わる。
別解
条件:PHPが使える。全ページPHPにしても処理量は問題ない。
→全ページPHPで吐くようにすれば、固定部分の変更は一瞬
JSはクライアント側で処理せにゃならん。
JSには不向きなことだと分かってるなら、
JS以外で処理することを考えりゃいい。
アクセシビリティを無視したGoogleの新Favicon何とかしろや
302 :
Name_Not_Found :2009/01/17(土) 01:23:55 ID:4PNieZOC
以下のときに function itemClickに引数idを渡したいんですが、 どうにかする方法を知ってる人がいたら教えてもらえませんか。 <html> <head> <script type="text/javascript" language="javascript"> onload = function() { document.onclick = clickGround; for ( var i = 0; i < 3; i++) { document.getElementById(i).onclick = itemClick; } }; function clickGround() {} function itemClick(e) { //引数でdivのidが欲しい e.preventDefault(); e.stopPropagation(); } </script> </head> <body> <div id="0">AAA</div> <div id="1">BBB</div> <div id="2">CCC</div> </body> </html>
303 :
302 :2009/01/17(土) 03:15:20 ID:4PNieZOC
色々試したらできた。なんて分かりづらい仕様だ。 <html> <head> <script type="text/javascript" language="javascript"> document.onclick = clickGround; function clickGround() {} function itemClick(evt, id) { if (typeof evt.stopPropagation == "function") { evt.stopPropagation(); } else { evt.cancelBubble = true; } } </script> </head> <body> <div onclick="itemClick(event,'arg');">AAA</div> </body> </html>
304 :
Name_Not_Found :2009/01/17(土) 04:18:32 ID:gtRZ2H/V
>>302 idが数字で始まるのはダウトじゃ。それはさておき、
document.getElementById(i).onclick = function(){
alert(this.id);
}
では手抜き過ぎかね。
305 :
Name_Not_Found :2009/01/17(土) 12:25:04 ID:4PNieZOC
thisでとるのはスマートですね。どうもありがとう。 試してみたけど、thisがタグ要素になるのは、 script中で タグ要素.onclick = したときだけみたい。 タグの中に <div onclick=""> って書くとダメだった。 >idが数字で始まるのはダウトじゃ なんでですか?
>>305 idの一文字目は英字のみっていうがのHTMLのお約束だから。
307 :
302 :2009/01/17(土) 13:25:18 ID:???
そうなんだ。今度から気をつけます。
>>302-303 IDを自分で決めてるってことは、HTMLはいじっていいんだよな?
onclick直書きするよりは、こんな感じの方が変更が楽になるかも
<html><head>
<script type="text/javascript" language="javascript">
onload = function() {
var list = document.getElementById('idlist').getElementsByTagName('div');
for (var i = 0; i < list.length; i++) {
if (!list[i].id){ continue; }
list[i].onclick = func(list[i].id);
}
}
function func(id) {
return function(e){ itemClick(e, id) };
}
function itemClick(evt, id) {
if (typeof(evt.stopPropagation) == 'function') {
evt.stopPropagation();
}
else {
evt.cancelBubble = true;
}
}
</script></head><body>
<div id="idlist">
<div id="id0">AAA</div>
<div id="id1">BBB</div>
<div id="id2">CCC</div>
</div>
</body></html>
質問させて下さい。 var 変数名 = 何らかの式 みたいにvarは変数宣言のようですが、 for ( var i=0 i<5 i++){ 何らかの式
JavaScript言語の入門書を買って読んだ方がいいよ。 あんたのfor文の書き方めちゃくちゃだし。
すみません・・・間違えてシフト+エンターを押してしまいました。続き↓ 前レスの式みたくforなどのカッコの中にvarを入れてるのはi=0; i<5; i++) //←さっきは;も書くの忘れてました・・・ という5回だけ繰り返すのはこの関数内だけでしか使わないよって意味なのでしょうか? とある初心者講座のサイトで、今までvar変数=○○の形でしか使われてなかったのに 突然こんな位置に来ててどう解釈していいのかよくわかりません。
>>311 そのfor文の中だけでしか使わないという意味。
即レスありがとうございます。やっとスッキリしました!
a = 10; function a() {return var a= ;} document.write(a); document.write(a());
>>312 C++ だと、そのとおりだけどJavaScriptは外でも使えるぞ。
evt.target.id
Cでvarしたらエラッた。
318 :
Name_Not_Found :2009/01/17(土) 22:46:41 ID:rPBDyrq0
<script type="text/javascript"> <!-- function tokei(){ dd = new Date(); document.form/.text1.value = dd.ToLoCa|String() ; window.setTimeout("tokei()",1000); } //--></script> dd.Toloca って関数が違いますか?
>>318 その「|」(たて棒)は何さ。その他にも怪しいところがあるし。
文法デタラメでは動かないよ。入門書で文法の勉強してから
出直した方がよい。
320 :
Name_Not_Found :2009/01/17(土) 23:08:09 ID:rPBDyrq0
即レスありがとうございます。 |でなく!でした。 仰る通りだと思います。出直してきます。
321 :
302 :2009/01/18(日) 00:19:39 ID:???
色々参考になります。
>>308 >function func(id) {
> return function(e){ itemClick(e, id) };
>}
こんなんできるんだ。
function(e){ itemClick(e, id) }; を定義するときに、
idの値が保存されて、後で実行されるとき暗黙に使えるってことだよね。
じゃあ、function(e){ itemClick(e, id) };は、
関数だけど、idの数だけ実体があるオブジェクトみたいなものなのか。
>>316 それもいいですね。
ちょうど、eventの中に何入ってるか、調べてみようと思ってました。
>>311 for (var i=0; i<5; i++)
と
var i;
for (i=0; i<5; i++)
はJavaScriptでは全く同じ
>>321 event.target(IEはevent.srcElement)がclickされた要素
それが欲しいidを持つ要素か、あるいはその内部にある要素かを調べればいい
イベントリスナーはdocumentに付ければいい。onloadとかいらない。
>>308 だとidを変更したりだとか、divを後で増やしたときとかに対応しづらい
>>323 >
>>308 だとidを変更したりだとか、divを後で増やしたときとかに対応しづらい
どういうこと?
HTML側でID変えたりdivが増えても>308は問題なく動くように見えるけど。
「ID名'idlist'が変わることがある」って意味なら、さすがにそこまで面倒みる必要はないっしょ。
他に使うはずのないID名なんだから、変える理由がない。
それを変えるなら自分で面倒を見るのが当たり前だし。
まさか実行中にID変更するだとか、divをappendChildするなんて想定してるわけじゃないよね?
そうなら設計が根本的に違う。そこまで複雑なもの考えてたら、ここで完璧な回答なんて不可能っしょ。
>>323 documentにイベントリスナって、document.onclick = function にして
関数内でどこから呼ばれたか全部条件分岐するのか? 俺的には未知の発想なんだがw。
やったことないから出来るのかどうかすら知らんが、それができるとしても、
むしろそんなワケ分からん設計の方が、あとで追加変更あったときに対応キツいだろ。
XMLをDOMにして操作したいのですが、なぜかIEでうまくいきません。 どなたかアドバイスお願いします。 // xmlTextにXMLを入れる function parserXML(xmlText) { var XMLDom = null; alert("input " + xmlText); if(window.ActiveXObject){ // IE側の処理 XMLDom = new ActiveXObject('Msxml2.DOMDocument'); XMLDom.async = false; XMLDom.loadXML(xmlText); } else if(window.DOMParser) { // IEじゃないほう XMLDom = (new DOMParser).parseFromString(xmlText, "text/xml"); } alert("domDocument " + XMLDom); return XMLDom; } alert("2 " + domDoc); こんな処理で内容を確認しているのですが、 1つ目のアラートでは問題ないのですが2つ目の所では出てきません。 ちなみにFirefoxではちゃんと2つ目で[object Element]と出てきます。 どなたかアドバイスお願いします。
>>326 IE側の処理だと、変数 XMLDom に ActiveXObject が入っている様だけど。
328 :
326 :2009/01/18(日) 13:33:27 ID:+CrFSz/L
>>327 ActiveXObjectではダメなのでしょうか?
どこかのサイトではこのような書き方をしていたので参考にしたのですけど
>>328 alert するところで XMLDom(ActiveXObject)のままではまずいんじゃない?
使ったことないから知らないけど。
>>326 まさかとは思うけど全角空白は入れてないよね?
XMLDom.loadXML(xmlText); を XMLDom.load(xmlText); にしてみたら
あと alert("domDocument " + XMLDom); を
alert("domDocument " + (typeof XMLDom)); にすれば
一応Objectとは表示されるよ
331 :
330 :2009/01/18(日) 14:05:41 ID:???
load()の引数はXMLファイルへのパスだったゴメン XML文字列の解析はやっぱloadXML()か
332 :
326 :2009/01/18(日) 14:09:33 ID:+CrFSz/L
Objectとは出ましたが、その後がうまく行きません。
説明不足でしたがAjaxを利用しサーバからXMLを取得し、
サーバ処理がうまくいかなかった場合はエラーメッセージを出すという処理の一部でうまくいきません。
eXML = parserXML(text);
// エラー処理
if(eXML.getElementsByTagName("error_comment").length > 0){
alert( eXML.getElementsByTagName("error_comment")[0].textContent );
exit;
}
>>330-331 の方法を参照させていただきましたが、if文で処理が止まってしまいます。
>>332 IE の場合、変数 eXML に ActiveXObject への参照が返っているとしか思えない。
検索してみたけど、IE の場合、XMLDom.xml プロパティを返すべきなんじゃ?
>>324 文書を使うのが自分だけだと思うなよ。
それにイベントリスナーはcloneNodeで複製すれば消える。
innerHTMLで書き換えただけでも消える。
「そんなことはしない」と考えているなら単なる経験不足。
>>325 お前の発想にはなかったかもしれんが、
DOMイベントやIEイベントモデルはそこまで考えて設計されてんだよ。
アホ外人見なくなったな
alert(document.cookie)とするとFirefox、Opera、IE7などでは正常にCookieが表示されますが、 IE6では空のアラートが出てしまいます。CookieはONになっていますし、存在していますし、4KBを超えてもいません。 何か考えられる原因はありますか?
>>335 alert出したあと、一回ブラウザを更新してまたalert出してみろ
>>323 それだと確かにonloadはいらないけど、その考え方で設計していくなら、
onchangeとかonmouseoverとかも同じように考えるのが自然だよね。
ということは、何でもないform送信のボタンとか、selectボックスの選択とか、
ただのマウス移動とか、発生するイベント全部自分で面倒見るの?
その設計、以前、遥か昔にGUI研究してた人から教えてもらったことあるけどさ。
(言語はC。インターネットがまだ日本で一般的ですらない頃ね。)
とてもじゃないけど気が狂うって言ってたよ(笑)
何で個々のオブジェクトにイベントリスナがつけられるように設計されてるのか
考えてみたことある? 個々のオブジェクトでイベントの面倒見ないなら、
それぞれにイベントリスナつけられるようにする必要ないじゃん。
自分で全部処理しなきゃならんのは変。
基本機能に任せてしまえることなら任せてしまって、自分は手出ししない方がいい。
338 :
Name_Not_Found :2009/01/18(日) 18:31:17 ID:t9ckLPDB
Javascriptの書き方で var str = 'aaa'; ならエラーになりませんが var str =' aaa '; とするとエラーになります。改行した方がソースが見やすくて こうしようと思ったのですが、無理なのでしょうか?
341 :
339 :2009/01/18(日) 19:23:54 ID:???
DOM/IEイベントモデルが遅いのは否定しない。
一般的なGUIにそぐわないことも否定はしない。
俺が問題にしているのはブラウザ上での頑健性の一点な。
遅いと言っても今のスペックではほとんど問題にならない。
ライブラリ化が流行ってんだからこれぐらい考慮すべきだろ。
>>338 改行位置に\を入れれば改行込みで可能。ただしECMA違反。
>>336 レスありがとうございます。何回更新してもダメなんですよね……。謎です。
339じゃないけど document.onclick = function(evt){ var tgt = evt ? evt.target : window.event.srcElement; if (tgt.id != '' && tgt.parentNode.id == 'idlist') { itemClick(evt, tgt.id); } }; addEventListener使え言われるかもしれないが
>>334 ,339,341
D「Object」Mを分かってない初心者乙。
そんな方法でonmouseoverやonmousemoveを実装してたら使い物にならなくなる。
これらのイベントだけをオブジェクトに直接設定するなら、
お前の言うcloneNodeやinnerHTML云々の話が起きるのは変わらない。
イベントの一元管理を勧めるとか意味不明。
オブジェクト指向についても少し勉強してみな。言語の実装じゃなくて、概念の方。
>>334 設定したイベントを他のプログラムが消したなら、テスト中にすぐ分かるし。
ID名勝手に書き換えるような行儀の悪いライブラリなんて使いたくないしw
「他人がイベント設定してる可能性は考慮する」。「ID名は一意」。
こんなのは、どんなプログラムだって当然前提にしてること。
これを無視してるクズプログラムとの整合性まで考慮した
素晴らしいプログラムを目指すぐらいなら、自分で全部書いた方が万倍効率いい。
>>345 IE4の時点でそこそこ使い物になってた。でなきゃMSDNに載らない
DWですら昔からそういうコードを吐いてるよ
オブジェクト指向で言うならObserver?chain of responsibility?
>>344 がそんなに難しいとは思えないけど
>>346 「クズプログラム」ばかりだからライブラリの衝突なんて起こってるんじゃん
DOMなんだから、それこそドキュメントの変更なんて普通にあるよ
変更に左右されたくなければ自然と発生源から遠のいた所で監視することになる
そうなれば自然とイベントオブジェクトに問い合わせることになる
至って自然な発想だと思うけど
個々の要素にハンドラ取り付ける方がVB脳というかDHTML脳だと思うがなあ
>>338 var str = 'aaa' +
'bbb' +
'ccc';
349 :
Name_Not_Found :2009/01/18(日) 23:08:14 ID:AWWNbZM0
IEのアドレスバーにjavascript:alert("OK")と打つとアラートが表示されますが これと似たようなことで、アドレスバーに貼り付けてページ上の〜という文字を別の文字に置き換えて表示できる スクリプトを書きたいのですがヒントだけいただけないでしょうか?
350 :
302 :2009/01/18(日) 23:19:17 ID:???
>>345 >>347 お二人のソースは両方とも参考になりましたが、
結局、
>>344 とだいたい同じ感じにしました。
イベント2種類しかないし、増える予定もないし、innerHTML書き換えるし、
document.onclickで一括管理が簡単でいいかなと。
とはいえ入口一個にするのと、個々にリスナつけるの、
一般的にどっちが好きかと言われれば、個々にリスナ付ける方が好き。
>>349 「innerHTMLのガイドライン」で検索だ。
352 :
Name_Not_Found :2009/01/18(日) 23:26:37 ID:AWWNbZM0
自己解決しました body内をのぞいて検索置換して解決しました
イベントデリゲーション自体をここまで鼻息荒く否定するのワロタ
自分が正しいと思ってる分質問厨よりも始末悪いわw
>>345 オッサン あんたのコードはもう時代遅れだよ…
両極端だとは思うんだよな。
>>346 例えば、
>>346 がイベントベースの何かを作ったとする。
俺が別の何かでノードを生成して文書木に追加したとする。
さて、俺が生成したノードは
>>346 のイベントシステムに関与すべきだろうか?
それを知る術が、俺にはない。
仮に、運良く俺が
>>346 のソースコードを事前に入手できたとする。
さて、俺は生成したノードにイベントリスナを取り付けることができるだろうか?
>>346 が行儀良くカプセル化すればするほど、それは不可能になる。
>>346 がノード選別&ハンドラ取付け用APIを用意してくれれば別だが、期待する方が無理だろう。
もっと言えば、俺が
>>346 のイベントリスナを壊してしまうかもしれない。
繰り返すが、俺にはそれを事前に知る術がない。
結局、
>>346 が言う『クズプログラム』にならないようにするには、俺からできることはない。
>>346 自身に、自分のイベントシステムに関与するノードをその都度選別してもらうしかないんだ。
だからこそ「バブルするイベントは上位ノードで監視するようにしてくれ」なんだ。
バブルしないイベントなら(別にバブルするものでも構わないんだが)
HTMLのイベント属性として書けば、複製されようがinnerHTMLで書き換えられようが生き残る可能性が高い。
addEventListenerによるイベントリスナは複製されないことになっているし、
node.onclickのようなイベントプロパティがどうなるかは予測できないしすぐ上書きされる。
イベント属性が格好悪いものだという風潮は、この意味では少し困る。
>>354 | ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| わかり辛いから |
| 3行にまとめて!|
|________|
`∧∧ ‖
(゚д゚)‖ 残り15秒でCMいきまーす
/ づΦ
356 :
Name_Not_Found :2009/01/19(月) 11:07:27 ID:W9WABiGt
body内の特定の文字を------------に変換したいのですがうまく変換できません firebugでdocument.body.innerHTML=document.body.innerHTML.replace('1','--------------');がdocument.body is nullとエラーがでました IEのアドレスバーにこのjsを貼り付けるとうまくいくのですが、htmlにアクセスすると変換できません どなたかご教授お願いいたします <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=sjis" /> <title>js</title> <script type="text/javascript"><!-- document.body.innerHTML=document.body.innerHTML.replace('1','--------------'); // --></script> </head> <body> <p>1</p> <p>2</p> <p>3</p> </body> </html>
ありがとうございます window.onloadで解決できました
359 :
Name_Not_Found :2009/01/19(月) 11:32:37 ID:W9WABiGt
↑id出し忘れました ありがとうございました
360 :
Name_Not_Found :2009/01/19(月) 11:51:06 ID:bewNFv+n
テーブル内の2番目の列の値を取得したいのですが取得できません 取得したい値は「金額、10500、1000、3980」です どなたかご指摘よろしくお願い致します <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>テーブル内の金額にカンマを付ける</title> <script type="text/javascript"><!-- window.onload = function(){ str = document.getElementById("money").innerHTML; alert(str); } // --></script> </head> <body> <table> <colgroup> <col id="name"> <col id="money"> </colgroup> <tr><td>名前</td><td>金額</td></tr> <tr><td>テレビ</td><td>10500</td></tr> <tr><td>USBケーブル</td><td>1000</td></tr> <tr><td>ラジコン</td><td>3980</td></tr> </table> </body> </html>
>>360 innerHTMLは「HTMLソースの一定範囲を」取り出すだけでしょ。
あんたはcolタグのidを指定してるからそのcolタグの中身(空)
だけが取り出されている。脳内仕様でHTMLやDOMに自分の都合
いい動作を期待しても無駄。
362 :
Name_Not_Found :2009/01/19(月) 12:43:24 ID:bewNFv+n
colにidを付けて一気に取るのは不可能なのですね、諦めます すみませんでした
このソースから360が何をしたいのかよく分かったなw
普通に HTMLTableElement 使えばいいのに。 ただし同じ形のテーブルで常に2行目から値を抜くなら、正規表現一発で抜いたほうが楽ちんかもね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> function test() { var tbl = document.getElementById('t0'); for(var i = 1; i < tbl.rows.length; ++i) { var n = tbl.rows[i].cells[1].childNodes[0]; n.nodeValue = chg(n.nodeValue); } } function chg(s) { for(var a,o=''; a=s.match(/^(.*)(...)$/); s=a[1]) o =','+a[2]+o; return s+o; } </script> </head><body onload="test()"> <table id="t0"><tbody> <tr><td>名前</td><td>金額</td></tr> <tr><td>テレビ</td><td>10500</td></tr> <tr><td>USBケーブル</td><td>1000</td></tr> <tr><td>ラジコン</td><td>3980</td></tr> </tbody></table></body></html>
ごく稀にくるすご腕回答者だなw 俺には何書いてるのかさっぱりだぜ
>>347 >IE4の時点で
わらかすなwwwwww
10年前で思考止まってるのかyp!
そらDOMなんて理解しようって気すらないわな。
百歩譲ってメンテならそれは必要だが、
古くて効率悪い考え方は新しい方法で置き換えろよ。
IE6とIE7で、リストボックスの selectedIndex の値が異なります。 リストボックスの選択された場所を onClickイベントハンドラで取得しようとしています。 IE7ではこちらの想定通りに行番号を取得しているのですが、 IE6の場合は1つ前に選択した値が返ってしまいます(1回目のクリックでは "-1" が返る) これって IEのバージョン違いによる仕様なのでしょうか? もし仕様である場合、どのようにすればIEのバージョンに関係なく期待どおりに動作させられるでしょうか? よろしくお願いします。
ソース。
370 :
Name_Not_Found :2009/01/19(月) 18:48:13 ID:eLeTGWCA
Firefox3ですが、外部ファイルにしたjsを読み込まないって事はないですよね? 試しに外部ファイルに test(){ alert('test'); } とかいたのですが、IE6ではアラートが表示されるのに、 Firefoxでは表示されず、エラーコンソールには「test is not defined」 と表示されています。
selectにonchangeでthis.form.***.selectedIndex 0を空処理にして末尾で=0
ふぁんくしぉん
374 :
Name_Not_Found :2009/01/19(月) 18:57:21 ID:7muSy9kf
大阪市天王寺区烏ケ辻2-3の文字数はどう出したらいいですか?
alert(("僕ドラえもん").length)
>>375 alert("僕ドラえもん".length)
これで良いんじゃない?
最近学び始めた者だけどjavascript学び始めたらActionscriptの理解がしやすくなってきた。 更にC言語の超入門書読んだらさらにjavascriptが理解しやすくなった。 というか、こんだけ似たり寄ったりの言語をイチイチわけるなよって思ったり…
379 :
Name_Not_Found :2009/01/19(月) 22:00:59 ID:RMCGIylb
Firefoxのコードを読んでいたんですがわからない箇所があったので質問します。 \Mozilla Firefox\modules\JSON.jsmの中のコードです。 var JSON = { toString: function JSON_toString(aJSObject, aKeysToDrop) { 〜 となっていますが、toStringメソッドにJSON_toStringという別名?がついているのですが これの意味がわかりません。 toString: function (aJSObject, aKeysToDrop) { だけでいいと思うのですが上記のようにしている理由を教えて下さい。
381 :
379 :2009/01/19(月) 22:57:50 ID:RMCGIylb
debug用でしたか。 処理が早くなったりするのかなとか考えてました。 どうもありがとう。
>>365 遅くなりましたがありがとうございました
javascriptの課題を質問させてください。。。 提出期限は今日の9時。 まじでやばい。 だれかやさしいひとおねがいします
いや
情報の提供に対する対価は、無償では無いということを日本人は知らなさすぎる
すみません。
>>335 で質問し、
>>336 の方にレスをいただき、
>>343 のレスをした者ですが
もう少し試してみました。
・PHPの$_COOKIEでは受け取れています
・JavaScriptはONになっています
・URL欄に直接javascript:document.cookieと打ち込んでも表示されません
IE6ではdocument.cookieが使えないという話も聞きませんし
他に考えられる原因はありますか?
>>386 手元にIE6環境ないから確認できないんだが、
「Cookieを受け取る時に確認ダイアログを表示する」とかなんとかの設定なかったっけ。
これチェックしてからCookieを発行して、そもそも受け取れているかどうかを確認。
>>383 課題ができない=単位を取得するだけの水準に達していないんだから、
今期の単位落として講座再受講が当然じゃ?
JavaScriptは数年前に簡単な処理をするために初歩的な部分だけ勉強しました 本当に数日適当にやっただけなので何もできないに等しいのですが 最近使いたい場面が増えてきたのでまた勉強しているのですが ここ最近のメジャーなライブラリ・APIのソースをみていると 従来(古い?)とはおそらく異なった特殊な書き方が多数でてきて理解ができません obj.property( "hoge", "hogehoge" ); こんなのとか(配列?構造体?) hoge = { // = {のとこが({})のも a: function(){ } b: function(){ } } (function(){})()みたいなやたら()を多様したような記述や 複雑そうなので便利ではありそうだけど難読解そうなソースが多いです 自分が知らないだけで従来からこういう書き方があったのかもしれないですが 多くの個人レベルのJavaScriptの解説サイトだと こんな難しそうな書き方はでてきません こういうソースを何をしてるかがなんとなく理解できる程度に読めるようになりたいのですが どのようなサイトで勉強すればよいのか どのようなキーワードで検索すればいいのか教えてください
>>388 キーワード…。「JavaScript 入門」かなぁ。
1つ1つは単純なことで、それが組み合わされて複雑に見えるだけだから、
1つ1つに分解するコツというか、見方を覚えればいいんだけどね。
たとえば
var hoge;
hoge['a'] = 12;
hoge['b'] = 5;
は
var hoge = { a : 12, b : 5 };
と書いても同じ。ただの変数代入。
また
var func = function(str1, str2){ alert(str1 + str2); };
は
function func(str1, str2){ alert(str1 + str2) }
と(差異はあるけど)だいたい同じ。関数は変数に入れられると考えていい。
(続き) で、上2つを合わせると var hoge = { a : function(str1, str2){ alert(str1 + str2); } }; という書き方もできる。 この関数を呼ぶには、 hoge.a("文章1", "文章2"); という書き方をする。 例で挙げてもらってるのは、これを改行してるだけだと考えていい。 入門サイトでは、個々の説明はしてるだろうけど、 それを組み合わせて紹介してる例は少ないだろうし、 望んでるような複雑な例を勉強できるサイトは思いつかないなぁ。
391 :
388 :2009/01/20(火) 08:28:01 ID:???
>>389 わかりやすい詳細な解説どうもありがとうございます
例にあげた部分がとくにわからなかったので助かりました
入門サイトに個々の説明をしているところがあるとのことなので
色々調べまわってみたいと思います
書き方もいろいろあるしやたらfunctionを多用するめんどくさそうな言語だなぁ
と思いましたがだんだん面白くなってきました
>>383 単位だけ取れればいいと思ってる甘っちょろい学生はくたばれクズ
@・name値が同じ複数のチェックボックスがある A・@のチェックボックスのいずれかがクリックされる B・そのとき@のチェックボックスがひとつでもcheckedになっていればTRUEを返す こんな動作をするコードを書きたいんですが、 Bの判定をするにはチェックボックスの情報をByNameで取得して、 配列をforなどの繰り返し処理で一つ一つ調べるしかないのでしょうか? PHPでいうところのin_arrayやarray_searhのような 配列内の要素を参照する方法はないのですか?
>>388 サイ本読めばいいじゃん
オブジェクトリテラルとか関数リテラルとか
解説載ってるぞ
>>395 javascriptの関数は値としても振る舞う。
var fn = myObj.fn
var fn2 = myObj.fn2
alert(fn);
alert(fn2);
IEは知らないけどFxならinlineFnという名前を含めて表示されるはず。
あとインライン関数っていうのはおそらくオブジェクトリテラルの 「インライン」に記述する「関数」だと思われ。 var obj = { key: function(){} }; やってることはこれと同じ。 var obj = {}; obj.key = function(){};
>>395 横やりだけど、それでうまくいかないのは this がないからじゃに?
fn2: function (str) {
this.inlineFn(str);
}
馬鹿の一つ覚えで無名関数だの匿名関数だの言う輩が後を絶たないが JavaScriptの関数式は名前付きでも構わない 名前を使えるのはその関数内に限定される 再帰に便利 Firebugでは関数名を表示するから名前があると追跡しやすい それだけの話
400 :
398 :2009/01/20(火) 16:39:32 ID:???
間違った・・・・。 fn2: function (str) { this.fn(str); }
>>399 >名前を使えるのはその関数内に限定される
まじか、いいことを聞いたありがとう
内部でワーカー関数を生成して再帰とかやってた
402 :
395 :2009/01/20(火) 16:54:16 ID:???
おぉ。すげーレスついてる。ありがとう。
>>400 それだとinlineFnって付ける意味ないからどういう風に使うんだろう?って思ってたのです。
>>399 再帰とかFirebugの名前追跡か。なるほど。下のようにやったら上手くいった。
var myObj = {
i: 0,
fn: function inlineFn (str) {
alert(str);
for (var i=this.i;i<1;++i){
inlineFn(str);
}
}
};
myObj.fn('test');
再帰目的"だけ"なら、arguments.calleeで十分だけどね。
404 :
Name_Not_Found :2009/01/20(火) 17:24:00 ID:ccBnDmq1
すいません再帰ってどういう意味ですか?
再帰呼び出し でググれ
>>402 これは上手くいったというのか?
2回目のthis.iがundefinedで止まるんでない?
ローカルで関数などの一覧作ってるんだけど F={}とF=[]を同じグループで他と分けるとしたら どんなタイトル付ける? たとえば今は「命令文」枝で //,/* */,;をコメント/ブロック FOR,WHILE,CONTINUE,WITHをループ/連続処理 IF,SWITCHを分岐 等のタイトルで分けてる
タイトル ; {}型:複文(内包した複数スクリプト行を一つのブロックとして扱えます) ;型:単体で空文(何もしない)、前に式がつく事で式文(スクリプト一行分の終り) みたいな分け方で
略式代入とかじゃ意味違っちゃうかな?
>>411 各ブラウザの独自先行仕様や各種JavaScriptFrameworkでは、
indexOfとかcontainsなどの、配列の中に指定の値があるのかチェックする関数(Arrayオブジェクトのメソッド)があるけれど、
標準的には未実装。
>>386 ・URL欄に直接javascript:document.cookieと打ち込んでも表示されません
手元のIE6では表示されるからおまいさんの環境が悪いとしか言えない
>>386 まさかスレイプニルとかルナスケープとかfirefoxにietabかましてるとかじゃないよな
IEを立ち上げてアドレスバーに貼り付けるんだぞ
>393 アドレスクエリをindexOfで評価してみるとか
javascript:alert(document.cookie);void(0) が一番確実なんじゃないだろうか。
418 :
395 :2009/01/21(水) 10:03:56 ID:???
>>406 ありがとう。勘違いしてた。2回目のthisはinlineFnに入った後だから自分自身になってるのか。
iはその上で定義しないとダメなのね。
var i = 0;
var myObj = {
fn: function inlineFn (str) {
alert(i);
alert(str);
if (i < 1) {
++i;
inlineFn(str);
}
}
};
myObj.fn('test');
そもそも再帰の例作るのにfor文使うのが間違いだった。
419 :
Name_Not_Found :2009/01/21(水) 19:23:51 ID:jQCkv2Nl
>>418 var myObj = {
fn : function(str){
alert(i);
alert(str);
if(i < 1){
++i;
arguments.callee(str);
}
}
}
なんてすると、名前付ける必要すらない。
>>419 大元がデバッグ用に名付けろって話なんだから削る必要もないw
421 :
Name_Not_Found :2009/01/21(水) 22:37:44 ID:jQCkv2Nl
if ( value = func( ) ) { ・・・ このような関数の返り値を変数へ代入する式を条件式にしてるのを見るんですが これってどういう意図があるんでしょう?? 例えば返り値のチェックとして value = func( ); if ( value ) { ・・・ とするなら理解できるのですが。。
2つとも同じ意味。 たまに1文字でも短く書きたいときがあるんだ。 ブックマークレット書くときとか。
424 :
422 :2009/01/22(木) 23:19:08 ID:???
たまに見るけど == と勘違いしがちなんでやめた方がいいよね
そんな勘違いをする奴は===の存在も知らないんじゃないかな 合わせてやる必要ないだろ
>>425 普通はしない。
423が言ってるように、字数制限のきついbookmarkletでは
やむを得ず使うこともある。
>>426 どこから===が出てきた?
if (value = func()) この場合ってfunc()の返り値が評価されるの? それとも代入後のvalueの値が評価されるの? それとも式の評価がfunc()の返り値なの?
じゃあさ、 var str = 'hogehogehoge'; var rx = /h(og)e/g; var res; while((res = rx.exec(str))){ ... } こういうのも while(1){ res = rx.exec(str); if(res) { ... continue; } break; } と書いた方が良いのか?
>>430 そりゃwhileの慣用句でしょ。
>>422 のケースでの使用は大したメリットがないくせに
バグの温床になりやすいからやめとけということ。
慣用句なら知ってる知らないの問題だけのような。 バグ回避なら比較のときは定数を左に置く(1 == a)コーディングルールも見たことがある。 俺も読みづらいんだけどメリットもあるのかと思ったんだ。
・こんな書き方が分からないという奴を想定する必要はあるかないかでいえば無いと思う
・しかしデバッグのことを考えれば避けるべきだとは思う
・一方でバグとりおわったコードでこのような書き方を避ける理由は無いと思う
・しかしそれは人間様がわざわざ書き直すことではなくてコンプレッサーが果たすべき仕事だろうと思う
・つまり人間が
>>422 のような書き方をするのは
>>423 が言うようにブックマークレットなど特殊な条件のみだと思う
>>430 いや、そういう書き方が必要になるとしても、
それをやるなら
while(1) {
res = rx.exec(str);
if (!res){ break; }
...
}
と書くでしょ。
例外処理が処理を抜けるだけで終わるなら、
それはbreakやreturnで終わらせりゃ済む話。
正常処理部分を無駄に字下げすることはない。
別の、もっと単純な理由を挙げると、
while(1)は「無限ループ作って特定の条件の時だけ抜ける」慣用句だから、
その「特定の条件= !res」ははっきり明示した方がいい。
うんうん
ベテランだな。
複数の画像を1枚のHTMLで順に見ていくスクリプト(スライドショーみたいな)。 GIF・PNG・JPGが多数混在するので、どれがGIFでどれがPNGかをひとまとめに 設定して動かせるようにしたいのですが、JavaScriptで可能でしょうか? 一通りレファレンスは見ましたがIFで続けるかCASEで続けるかしかなく 3枚くらいならいいけど10枚とか100枚とか行くとJSファイルが巨大化・・・。 例えばperlみたいに @giftype=('1','2')と続けて書いて、@giftypeにある数値と一致したら GIFと認識するみたいな書き方・・・
439 :
438 :2009/01/24(土) 16:56:21 ID:???
今のところこんな感じ switch (Num) {//NUM=ファイル名(数字)が1なら、2なら、3なら case 1: Type=".png"; break; case 2: Type=".jpg"; break; default: Type=".gif"; break; }
>>438 for(i in ["A.GIF","C.PNG","B.JPG","J.JPG","Z.PNG"]){
内で
i.split(".")[1]
の拡張子をswitch、自動振り分けで
GIF_INDEX+="<IMG src='"+i+"'><BR>";
各ボックスに順に追加
拡張子が大文字小文字混在なら toLowerCase(i.split(".")[1]) で小文字統一すればいいかも
あ、スライドショーなら配列追加か
ゴメン寒すぎてミスった f=["A.GIF","C.PNG","B.JPG","J.JPG","Z.PNG"]; for(i in f){alert(toLowerCase(f[i].split(".")[1]));} これをswitch
alert(f[i].split(".")[1].toLowerCase())
これを、 for(var i=0; i<contents.length; i++) { } こうしたらめっちゃ処理速度上がったんですが、 var max = contents.length; for(var i=0; i<contents.length; i++) { } IEのJavaScriptエンジンあほじゃないですか?
間違えた、下段はこう。 var max = contents.length; for(var i=0; i<max; i++) { }
すさまじく今更な件
そうなのかー。 ところで、class属性値を取得したいんですが、 下の方法より、もっといい方法ありませんか? var obj = document.getElementById("file"); for(var j=0; j<obj.attributes.length; j++) { if(obj.attributes[j].nodeName == "class") { return obj.attributes[j].nodeValue; } }
for の中で length が変わったらどうするの -- JIT でどれくらい最適化されるのか楽しみだね 最適化の度合いを強くするほど解釈にかかる時間は増えてしまうわけで
>>448 return document.getElementById("file").className;
452 :
448 :2009/01/25(日) 03:11:23 ID:???
>>451 どうもありがとう。"className"なんだね。
ずっとgetAttribute("class")でとろうとしてました。
>>452 getAttribute("class")で取れないのはIEのバグだね。念のため。
質問させて下さい javascriptで10秒のカウントダウン表示を行いたいんですが <html> <script type="text/javascript"><!-- var startDate; function start(offset) { startDate = new Date(); startDate.setSeconds( startDate.getSeconds() - offset); tick(); } function tick() { currentDate = new Date(); diffDate = new Date(startDate - currentDate); var second = diffDate.getSeconds(); if(second == 0) { document.getElementById("time").innerHTML = "OK"; } else { document.getElementById("time").innerHTML = second; setTimeout("tick()", 1000); } } // --></script> <body onLoad="start(50)" > <span id="time"> </span> </body> </html> これで一応出来ているっぽいんですが、bodyでのonLoadを行わずに、 scriptの中で数値を指定するにはどのようにすればいいんでしょうか。
>>455 body タグの onLoad消して、window.onload=function() { start(50) } を加える
なんで50ひく?これじゃあかんの? <script type="text/javascript"><!-- onload = function() { start(10); }; var startDate; function start(offset) { startDate = new Date(); startDate.setSeconds( startDate.getSeconds() + offset); tick(); } 以下略
458 :
Name_Not_Found :2009/01/25(日) 19:11:53 ID:kveHd+wN
function func(arg) {} こういう関数で引数が渡されたかする場合、 以下の3つの方法を見かけるんですが、 どの方法がいいんでしょうか? if (arg) {} if (arg != null) {} if (typeof arg != "undefined") {}
>>458 厳密には(汎用としては)arguments.lengthをチェックするべきだろうけど
想定された引数にfalse扱いされるものを含まないなら一つめで十分。
なるほど。特に問題ないならヒトツメが簡単でいいですね。 どうもありがとうございます。
0や""はどうすんだ
0や""ならデフォルト値という仕様でおk
>>460 潜在的なバグとなる危険性大なので、引数の存在をチェックするなら、
最低でもif ( arg != null )にしておいた方が安全。
チェック自体要らないんじゃないの? arg=arg||defaultValue; でいいんじゃないの?
型変換を期待しているならな 型変換されて嫌なときはtypeofやinstanceof 引数の省略時にデフォルト値にするならarguments.length 関数のsignatureに合ってるか確認するならFunction.length
どうせ自分しか使わないんだからどうでもいい。
467 :
Name_Not_Found :2009/01/25(日) 23:34:33 ID:7oGfdWR+
だれか下のコードをFirefoxでも動くように書き直してください お願いします。 var obj = new ActiveXObject("Msxml2.DOMDocument"); obj.async = false; obj.load("hoge.xml"); var obj_root = obj.documentElement; var obj_child = obj_root.childNodes; for (i=0; i < obj_child.length; i++) { var obj_node = obj_child.item(i); window.alert(obj_node.xml); }
468 :
Name_Not_Found :2009/01/26(月) 00:05:54 ID:fHmeGciL
perlの BigFloat のような浮動小数点を扱える JavaScript の ライブラリ (prototype.jsのような) はないでしょうか? 宜しくお願いします。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd ">
を指定した時、jsからアクセスすると
<div id="info"></div>と
<div id="info" / >は完全に等価だと思っていたのですが、違うのですか?
472 :
Name_Not_Found :2009/01/26(月) 19:14:20 ID:tBRrWZbM
>>471 エレメントノードとしては等価だろうけど、
文字列としては別物だろうよ。
そういうことじゃなくて?
>>472 エレメントノードとして です
やっぱ等価だよね…
HTMLで等価なわけがない
>>471 xhtmlじゃないただのhtml4で<elem />は厳密には書けないはず。
だからパーザがどう解釈するかは不定。
だね <div id="info" /> が <div id="info" /="/"> こうなるパーサには好感が持てる
/はHTML4の名前文字ではないしNET文字になって <div id="info" >> になるんじゃね?
478 :
Name_Not_Found :2009/01/27(火) 02:14:22 ID:2LsN7CzE
481 :
480 :2009/01/27(火) 02:26:06 ID:???
やってもーた
483 :
482 :2009/01/27(火) 02:33:26 ID:???
やってもーた;;
warota
485 :
Name_Not_Found :2009/01/27(火) 02:37:56 ID:2LsN7CzE
すみません・・・なんだか混乱してきました・・。 url_listに深い意味はなくて、実際の仕様はPHPと連動して url = url_list.replace('<?=$before?>','<?=$after?>'); みたいな事がやりたいんです。 479さんが、「末尾の/は非対称」と書かれていますが、 replaceする前に/が付かないようにする必要があると言う事でしょうか?
486 :
479 :2009/01/27(火) 02:39:35 ID:???
487 :
479 :2009/01/27(火) 02:41:34 ID:???
488 :
478 :2009/01/27(火) 02:44:04 ID:???
//で囲まなかったら出来ました みなさん、ありがとうございました
489 :
Name_Not_Found :2009/01/27(火) 18:52:29 ID:RCG3w0oq
ずこー
何かキーを押した時に音がでるプログラムおしえてくだしあ><
強く叩く
うちのは普通に叩いても音でるよ
>>493 ソース内にあるこれじゃね?
var listItems = $('gallery-row-list').select('li');
Effect.multiple( listItems, Effect.Appear, { delay:0.7, duration : .3 });
あとはググればすぐわかると思うよ
495 :
493 :2009/01/28(水) 18:25:14 ID:???
>>494 本当にありがとうございます!
検索してどこをいじればいいか勉強してみます!
496 :
Name_Not_Found :2009/01/28(水) 20:51:25 ID:C8UemTpv
javascriptでウィンドウのサイズが変更されたときに実行される、 イベントリスナーってありますか? onWindowSizeChanged みたいな感じの。
onresize
alert内の文字の大きさって変更できる?
499 :
496 :2009/01/28(水) 21:51:23 ID:???
できました。ありがとうございます。
>>500 自分のサイトでという話なら、クロスドメインになるから無理。
すみません恐ろしく初歩的なんですが、 if(aa == 0) { これを「aaが0か100の場合」に直したい場合は、 if(aa == 0 or aa == 100) { これで合ってますか?
>>502 恐ろしく初歩的なら、初歩的な本なりホームページなりを見ればいいだろ。
自分で調べずに人に聞く人は、今後一切進化しない。
505 :
502 :2009/01/29(木) 14:51:25 ID:???
リファレンスも見て解決しました。 単に演算子の優先順位間違えてただけでしたね。どうも。
これは流石に釣りだろ
508 :
Name_Not_Found :2009/01/30(金) 11:09:13 ID:lggv6qxo
jqueryの$.ajaxでxmlを読み込み込んだ時に success: function(data){ alert(data.responseText); cutXml(data); } とここまでは期待どおりの結果が得られるんですが function cutXml(data){ $(data).find("item").each(function(){ var item_text = $(this).text(); alert(item_text); }); } これだとfirefoxでは出るけど、IEではalertが出ないんです 一日かけてググったりして調べたけど、解決出来ず 環境は、UNIXサーバー(ローカル環境でやってました・・というドジはありません) xmlファイル、jsファイル、htmlファイルすべてUTF-8でファイル自体のエンコードもUTF-8 実行時のjsエラーもなし お願いします。どなたかご教示ください
すいません、javascriptで開いているhtmlドキュメントの DTタグの背景色だけ変更する方法って何かないでしょうか? cssの変更以外であればお願いします
jQuery で $("dt").css.({backgroundColor:"yellow"}) すれば。
document.getElementById("hoge").innerHTML = "hoge"; だとhogeに変わるんですが var elem = getElementById("hoge"); document.elem.innerHTML = "hoge"; にすると変わりません なんでですか? 対処法あったら教えてください
512 :
511 :2009/01/30(金) 14:48:43 ID:???
すみませんなんか勘違いしてました getElementById("hoge")でhogeの指定された箇所の中身 <div id="hoge">ほげ</div>だったら『ほげ』を取得できると思ってました このほげを取得する方法があったら教えてください
513 :
511 :2009/01/30(金) 14:51:35 ID:???
すみません・・・自己解決しました innerHTMLでとるんですね なんか一人で混乱してすみません
514 :
Name_Not_Found :2009/01/30(金) 15:40:02 ID:XyyCUBDP
質問です。 配列で以下のようにすると長さを取得できますが、 var a = new Array(); a[5] = 1; alert(a.length); //6と出る ハッシュを使う場合どのように取得したらいいのでしょうか? var a = new Array(); a["foo"] = 1; alert(a.length); //0と出る
>>514 JavaScriptにハッシュというものはない。Arrayをハッシュの
代わりに使うのは普通じゃない。Objectを使う。そして「長さ」
というのはとくに定義されていない。何個入れたかの値が欲しい
なら、新しいものを入れるたびにカウントするしかない。
516 :
514 :2009/01/30(金) 16:33:53 ID:???
>>515 レスありがとうございます。
Objectを使うというのが意味がわからないので、
(最近はじめたのですみません)
アドバイスどおりカウントすることにします。
Objectという全ての基本となるオブジェクトがHashとしての役割を兼ねる。 //生成 var obj = new Object(); var obj = {}; //セット var obj = {key: 1}; var obj = {}; obj.key = 1; var obj = {}; obj["key"] = 1; //ゲット alert(obj.key); alert(obj["key"]); ハッシュ的にObjectを利用したときの大きさは、やっぱ数えるしかないのかな? var i = 0; for(key in obj) { i++ }; alert(i);
518 :
514 :2009/01/30(金) 19:19:19 ID:???
>>517 レスありがとうございます。
早速参考にしてArray()で実装したものと置き換えてみます。
>>517 誰かがArrayと同様にHashを実装しようとしたとして、
最初に配列サイズを返すメソッド length の仕様を考えた時に、
その人は気付くわけだ。
文字列 "length" がキーとして使えなくなる。
これではハッシュとして役に立たん、と。
>>519 (DontEnumな)組み込み関数でやれないのかという話。
jsレベルなら名前以前に、同じ実装に行き着くでしょ。
>>508 cutXml($(data).get());
としたらどうなる?
これからJavaScriptやろうとおもうんですけど jQueryを覚えればJavaScriptやらなくていいですか?
>>522 jQueryを覚えるという行為にJavaScriptが含まれる。
>>520 lengthがDontEnumかどうか、なんてのは関係ないんだけど…。
仮に Hash が実装されたとして、
var hash = new Hash;
hash['weight'] = '重さ';
hash['length'] = '長さ';
としたとき、hash['length'] は 2 なのか '長さ' なのかってこと。
>>524 もしかしてObjectがメソッドなにも持ってないとか思ってる?
アラートで 「結果:変数(a) 得点:変数(b)」 みたいな感じで表示させたいんだけどどうすればいい? alert("結果:"+a"\n得点:"+b); では無理だし・・・
無理なのか?
ワラタ 無理に決まってんだろwwwwwwwwwww +a+
524と525の噛み合わなさに乾杯
onKeyPressのときに入力されたものを変数に記憶したいのですが、 最後の文字が記録されません。 <html> <head> <script type="text/javascript"> var str = ""; function setTest() { str = document.getElementById('test').value; } function getTest() { return str; } </script> </head> <body> <input type="text" id="test" size="10" onKeyPress="setTest()"> <input type="button" onClick="alert(getTest())" value="get"> </body> </html> aaaaaと5回入力してからgetを押すと、aaaaと4回までしか出てきません。 5回目の入力もちゃんと出したいのですがどのようにしたらいいのでしょうか?
ヒント:aaaaaと5回入力してから1度空打ちしてgetを押すとaaaaaと5回出る。
>>531 確認してないけどたぶん、テキストエリアに文字が収まる
(valueで取り出せるようになる)直前にイベントが発生してる。
getTestでvalueを取得するか、キーを離したときでやってみて。
>>532-533 どうもありがとうございます。
>>533 のおっしゃるとおりonKeyUpにしたところできました。
どうもありがとうございました。
イベントの順番は onKeyPress → onKeyDown → onKeyUp
あのう。初心者向けのスレがなかったので、こちらに書き込みします。 corner.jsを使い、ブログにアップする画像を全て角丸処理したいのですが、 cssで画像マージンの設定ができなくなってしまいます。 できれば四角い画像のままアップしたいので、回避方法はあれば教えてください。 ブログサービスはjugemです。 jugemに関係あることだったらスレ違いになってしまうかもしれませんが、 ヒントだけでもお願いします!
prototypeという用語について調べてるんですが、 Javascriptの言語仕様としてのprotoypeと、 もう一つ、prototype.jsというライブラリは別物ですよね?
539 :
Name_Not_Found :2009/01/31(土) 17:45:02 ID:buzfdDHU
>>537 別物だよ
"prototypeオブジェクト" -"prototype.js"
上のキーワードでぐぐればいいと思うよ
>>537 同じだということもできるし別物だということもできる。
>>537 同じだとはいえないが別物とも言えない。
コナン=新一
543 :
Name_Not_Found :2009/01/31(土) 22:58:32 ID:LxG6+p9n
>>521 レス遅くなりました
cutXml($(data).get());
入れてみたんですが、ダメでした・・
>>543 一部のソースだけじゃなんとも。。
dataTypeはちゃんとxmlになってる?
応答データのヘッダの文字コードはどうなってる?
>>537 Prototype.js XMLHttpRequestのラッピングやJavaScriptによる開発全般のフレームワーク
とある。
よって別物なんじゃね?
prototype.js はMITライセンスのJavaScriptのフレームワークの1つ prototype は関数オブジェクトのPrototypeオブジェクトを参照するためのプロパティ
JavaScriptはprototypeベースの言語
prototype.jsの中身はJavaScript
煮詰まったので質問させて下さい。 子ノードの中の子ノードの属性ノードを変更する方法はどうしたら良いのでしょうか? id等を付けて識別するしかないのでしょうか…
>>549 普通の属性ならsetAttributeで変更できると思うが。
どんな場面なのかその質問だけからじゃ分からないので
HTMLの断片を貼ってどう変更したいか説明してみて。
>>550 すいません、外出先から書いてるもので手元にソースが無いです;
どんな感じかと言うと、<table>に沢山ある<td>の一つの中に<a>が沢山あり、
<tr>をonclickして、その<a>の属性を変更したいのです。
わかりにくくて申し訳ありません…説明しにくいorz
手元にソースがないんならどっちにしても修正できないんだから帰ってからでいいだろ
こういうのかね。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head><title>???</title> <script type="text/javascript"> function chg(i) { var tbl = document.getElementById('t0'); tbl.rows[i].cells[1].firstChild.style.backgroundColor = 'pink'; } </script> </head><body> <table id="t0" border="2"><tbody> <tr onclick="chg(0)"><td>A</td><td><a href="#">XXX</a>YYY</td></tr> <tr onclick="chg(1)"><td>B</td><td><a href="#">XXX</a>YYY</td></tr> <tr onclick="chg(2)"><td>C</td><td><a href="#">XXX</a>YYY</td></tr> </tbody></table></body></html>
>>549 と
>>551 から読み取れたのはこれだけ
クロスブラウザ用コード書いたのは久しぶりだから間違ってるかも
document.getElementById('id').onclick = function (event) {
event = event || window.event;
var target = event.target || event.srcElement;
var row;
while (target && target !== this) {
if (target.tagName.toLowerCase() === 'tr') row = target;
target = target.parentNode;
}
if (!row) return;
var cells = row.cells;
for (var i = 0, cell; cell = cells[i]; i++) {
// var child = cell.childNodes, anchors;
// for (var j = 0, a; a = child[j]; j++) {
// if (a.tagName.toLowerCase() === 'a')
// anchors[anchors.length] = a;
// }
var anchors = cell.getElementsByTagName('a');
if (!anchors.length) continue;
for (var j = 0, a; a = anchors[j]; j++) {
var cn = (a.className || '').split(' ');
cn[cn.length] = 'selected';
a.className = cn.join(' ');
}
break;
}
};
555 :
Name_Not_Found :2009/02/02(月) 11:12:39 ID:ND6KnwdV
>>544 $.ajaxのオプションは
url: filepath,
dataType: 'xml',
cache: false,
contentType:"application/xml",
async: false
です。
応答データは、中身のitem以外は
<?xml version="1.0" encoding="utf-8"?>
を一番上に付けてるだけです
ちなみに、html,js,xmlの文字コードは
utf-8です。(ファイル保存時も)
firebugのリクエストヘッダーで
Accept-Charsetが
Shift_JIS,utf-8;q=0.7,*;q=0.7
だったんですが、これも関係ありそうですか?
each使わないでやってみたらどうだろうか?
>>555 こっちでもそのソースで試してみたけど問題なし
特におかしいところは見当たらないんだけどなぁ
.htaccessに
AddType application/xml .xml
AddType text/xml .xml
を追加、あとはゴミ(BOM)が入ってないか確認
558 :
Name_Not_Found :2009/02/02(月) 16:46:18 ID:ND6KnwdV
>>557 むむむ、responseXMLにしたら
IEでも結果が返って来たんですが、
ふつうはresponseTextでもいけますよね?
>>549 どーでもいいが「煮詰まる」は「行き詰まる」という意味ではないぞ。
560 :
549 :2009/02/02(月) 19:39:58 ID:???
561 :
549 :2009/02/02(月) 19:40:46 ID:???
>>559 すいません、グツグツ言ってたものですからorz
htmlタグを、例えば<b>を<a>に変えるということは出来るんでしょうか? <table><tr><td></td><td></td></tr></table>を<table><tr><th></th><th></th></tr></table>とかこんな感じです。
できます
>>562 なんのためにそういうことしたいの?見え方を変える?
それならCSSで見え方を指定してクラスを変更する方が簡単では。
Operaでdocument.title = 'hoge'; としてもタイトルが変わってくれません。 他のブラウザでは変わってくれます。 Operaでは書き方が違うのでしょうか?
>>565 それが駄目ならgetElementsByTagNameを使えばいいじゃん
jqueryのdraggableの勉強をしています。質問させてください。
ドラッグはできるのですが、
ドラッグ終了時にalert()が呼ばれません。
何か勘違いしているのでしょうか?
ドラッグ中に半透明になる(opacity:0.5が効いている模様)ので、
設定はあっていると思うのですが。
下記等を参考にしています。
ttp://allabout.co.jp/internet/javascript/closeup/CU20080115A/index2.htm よろしく
<head>
<script type="text/javascript" src="js/jquery-1.3.1.js"></script>
<script type="text/javascript" src="js/ui.core.js"></script>
<script type="text/javascript" src="js/ui.draggable.js"></script>
</head>
-------------
<body>
<div id ="target">draggable</div>
<script type="text/javascript">
$('#target').draggable({
opacity:0.5,
cursor:"move",
stop:function(){alert("foo");}
});
</script>
</body>
function test() { } のようにして、 <div class="a" onClick="test()"></div> という感じで呼び出しているのですが、 実際のソースは <div class="a" onClick="test()"></div> <div class="a" onClick="test()"></div> <div class="a" onClick="test()"></div> こんな感じになっていて何回も呼び出す形になっています。 class="a"の所でonClickをしたときにtest()を呼び出すというルールがあるのですが、 わざわざイベントを呼び出さないでも、 class="a"のときにonClickすればtest()が呼び出されるようにするという 書き方はできないでしょうか?
>>569 そのdivを含む範囲全体(ないしwindow全体)にイベントハンドラを
つけてそのイベントハンドラでtargetがclass="a"なdivだったら
test()を呼ぶとかすればいいんでは。
>>554 が参考になるかも。
(画像などのURLを指定して)ファイルが存在するかしないかJavaScriptで判定する方法はありますか?
あるよ。
同じ鯖のファイルならXMLHttpRequest使ってレスポンスヘッダを見る
>>571 ありがとうございました。
こちらでも読み込みスクリプトをご指摘の方法に変更したらできました。
JSで自身のhtmlにウインドウ名の設定ってできたっけ?
>>577 ウィンドウ名って?
<title>相当ならdocument.titleをいじればいいけど
ウィンドウタイトルが<title>をどう表示するかはブラウザ次第。
window.nameじゃないの?
テンプレ読みにくいな 項目や番号ごとに改行したほうが良くね
581 :
Name_Not_Found :2009/02/05(木) 15:41:44 ID:TyJuWEkR
これからAjaxやってみようと思って ライブラリを使おうと思うんですが、 jQueryとprototype.jsってどっちがいいんですかね? ありがちな質問ですみません
>>581 いまどき、ライブラリを使わないで実装する意味なんてないよ。
好きなほう使えよ。
>>578 ,579
window.nameです。
別のウインドウからjsのfocus()で手前に出したいのだが
参照元のウインドウがblankなので、はてどないしよかと・・
呼び出し元ならwindow.parentみたいなので無理?
587 :
Name_Not_Found :2009/02/05(木) 20:05:42 ID:PToTS1YR
PHPのlist()のように変数代入を一気にやりたいのですが javascriptではできるのでしょうか?
>>585 _blankで新規ウィンドウがでるなら最初からフォーカスしてないかな?
>>584 Ajax(非同期通信)だけならコード書いたほうが短く軽く済む。
ガリガリDOM操作したりアニメーション使うなら話は別だが。
590 :
Name_Not_Found :2009/02/05(木) 23:32:54 ID:pe1vPZ03
ニコニコ動画みたい文字を右から左に流れる動作をさせたいのですが あれをjsでやりたいのですが文字を右から左に流す仕組みをどう書いたらいいのかわかりません ヒントだけ頂けないでしょうか? 時間を見て文字を流すタイミングについては組めるのですが文字を流す動作に突っかかって困り果ててます
js+cssでleft--
俺も難しくてわかんないけど、superclass=prototype なのかな・・・? YUIの方でそれっぽいのは色々定義されてた。 誰か頼みますた。
jqueryのload関数でtableを非同期で書き換えているのですが、 IE7で描画が極端に遅いのは仕様ですか?
>>593 コメントありがとうございます。
ttp://d.hatena.ne.jp/zorio/20080216 その後、上記のページをみたら何となく理解できました。
YUIの拡張メソッドを使うための書き方のようです。
ですが、
YAHOO.extend(jsBox, WireIt.Container, {(以下略)
の処理前にそのような書き方をしてなぜ有効なのか?は依然として疑問なのですが。
どなたか解説して下さると助かります。
よろしくお願いいたします。
今javascriptでカレンダー作ってるんですけど 年と月をフォームで入力すればその月から 12ヶ月分いっぺんに表示されるようにしたいんですよ。 一応入力した年のカレンダーは表示されるようになったんですけど 2009年の2月を入力すると、2009年の12月までしか 表示されません。。。 目標としては上のように入力したら、 2010年の1月まで表示できるようにしたいんです。 お助けください。よろしくお願いします
そりゃ1年は12月までしかないからな。 13月とか14月の数字わたされても出ないだろうよ。
>>597 レスさんくすです
そのとおりなんですよ。
だから翌年の表示をしたいんですけど
どこになにを入れればいいか、今日一日悩んでも
できなかったんですよ。。。
ご教授ください
>>598 12越えたら12引いて1年足せばいいじゃん。
釣りじゃなかったのか。 if(month > 12) { year++; month = month-12; } 他がどうなってるか分からんからこんだけな。
>>599 >>600 レスありがとうです
釣りじゃないです!
リアルに困ってたとこでした。。。
とりあえずやってみます!!!
頼むからDOM使ってくれw
何回もスマン 正直これ勉強したてでなんにもわからないんですよ。。。 とりあえず作れと言われまして、基礎だけやってるわけなんです みにくくて申し訳ない・・・
>>597 はぁ?
ふつうに13月でも100月でも渡せばちゃんと出ますが?
function calender(year,month){ yearname(year) document.write("\n<table border=1>\n"); document.write("<tr>\n"); for (var i=0; i<12; i++){ var printMonth = ((i+month) >= 12) ? (i+month-12) : (i+month); document.write("<td>"); document.write("<img src=images/" + (i%12) +".jpg width=165 height=150>"); alert(printMonth); displayMonth(year, printMonth); document.write("</td>\n"); if ((i % 4 ==0 ) && (i != 12)) document.write("</tr>\n<tr>\n"); } document.write("</tr>\n"); document.write("</table>\n"); }
正規表現でidをキーにしてタグを抽出する方法をおしえてplz
段組は自分でなおしてくれー。
>>607 ありです!!
やってみます
でもなぜにアラート?
ごめん、チェック用に入れてたのが残ってるだけw 消してくださいー。
>>611 わかりましたーw
もうひとつ¥n ってなにを現わしてるんですか?
>>612 改行。
>>608 document.getElementById('test').tagName;
これじゃだめなの?正規表現を使う意図がわからんー。
>>613 改行なんですね!
勉強になります
でもこれだと、2009年の2月でフォームに入力した際に
2009年の2月からカレンダーはじまって、最後が2009年の1月になっちゃう・・・
2010年の1月にするにはどこを変えればよろしいですか?
なんどもすいません。
あ、年足してなかった。 var printMonth = ((i+month) >= 12) ? (i+month-12) : (i+month); ↓↓修正↓↓ var printMonth = i+month; var printYear = year; if((i+month) >= 12)){ printMonth = i+month-12; printYear = year+1; } displayMonth(year, printMonth); ↓↓修正↓↓ displayMonth(printYear, printMonth); 関係ないけどなんでprintなんて名前つけたんだろ・・・。
あらエラーでる・・・チェックしてから書くべきだね!ごめんねちょっとまってね
>>616 だめだーって書こうと思ったところでしたw
すいません・・・
今度こそ大丈夫なはず・・・ <script language="javascript"> function calender(year,month){ yearname(year) document.write("\n<table border=1>\n"); document.write("<tr>\n"); for (var i=0; i<12; i++){ var printMonth = (i+month); var printYear = year; if((i+month) >= 12){ printMonth = i+month-12; printYear = Number(year) + 1; } document.write("<td>"); document.write("<img src=images/" + (i%12) +".jpg width=165 height=150>"); displayMonth(printYear, printMonth); document.write("</td>\n"); if ((i % 4 ==0 ) && (i != 12)) document.write("</tr>\n<tr>\n"); } document.write("</tr>\n"); document.write("</table>\n"); } </script>
>>618 できたー
再うpしてみました
みてみてください♪
どうせやるなら .getDay() も使うなよw
上の関数は全く見てないから分かりません。 ついでに直した。 if(((i+1) % 4 ==0 ) && ((i+1) != 12)) document.write("</tr>\n<tr>\n");
>>622 ぼくもそれを直したくていじってましたw
あと、画像が月ごとに連動するように直しました。
うpしたので確認お願いします!
>>623 画像まずかったですか??w
本当に遅くまでありがとうございました!
感謝してます!!
これはひどい
おまえら宿題は自分でやってこそ意味があるんだぞ
ruby触ったことないのに、jQueryに慣れてくるとrubyが普通に読めてしまう jQueryってrubyを意識してたんだな、知らなかったわ
>>625 じゃ次はクロスブラウザ対応にしてみようか
630 :
Name_Not_Found :2009/02/08(日) 20:19:08 ID:CHcEG8cG
教えてください。 ホームページによくある 同時に○人見ています。 みたいなJavaScriptってありますか? CGIがダメな環境なもので、紹介してください。
正規表現でidをキーにしてタグを抽出する方法をおしえてplz
633 :
Name_Not_Found :2009/02/08(日) 20:53:34 ID:n/yYFfb2
「りんご 山本商店 78円」 商品名、販売店、価格(数字のみ)をクッキーに保存したいのですが 思うように保存されません どなたかご教示お願いいたします document.cookie="name=item1;shop=山本商店;yen=78";
>>633 でたらめすぎ
基本から出直してください
あと文字列はエンコードして入れる
636 :
Name_Not_Found :2009/02/08(日) 21:20:00 ID:n/yYFfb2
すいませんdocument.cookieを2つ使って解決しました 文字列は独自ライブラリでエンコードしなくてもいいようにしてあります お騒がせしました
637 :
Name_Not_Found :2009/02/08(日) 22:03:00 ID:CHcEG8cG
>>631 ありませんかぁ。
残念です。
でも、探します。頑張る。
探しても無駄だよ 技術的にできないから
設置した掲示板の板毎に来訪者人数を表示するphpスクリプト というのがありました。
php は ok なんだ
要素の高さを取得する方法って無いでしょうか? 現在firefox3を使用していて、<a 〜><img 〜></a>のA要素の、IMG要素で膨らんだ後の高さを取得したいのですが clientHeight等では0ですし、offsetHeightだと16や20等の文字列?の高さしか取得できません。 幅の方は上手くいったのですが、高さについてのご教授をお願いします。
>>641 インライン要素に高さは無いから、
aをstyle="display: block;"にしてやればOK。
offsetHeightならIE、Fxどちらも取得できると思う。
>>642 ありがとうございます!
blockでは新たに問題が出てきたのでinline-blockにしてみたところ、
期待したとおりの動作・見た目になりました。
知識も養え、本当に助かりました。
inline-blockはブラウザによっては効果ないからちゃんと確認してなー。
computedStyle 使え
>>631 ,638
質問者の本当の要求は
CGIやPHPが使えないサーバで現在の接続人数を表示する方法だろ
第3者がJavascriptとCGIで接続人数を表示するサービスを提供している可能性はある
だから探せば見つかるかもしれない、が
>>630 ここはJavascriptを勉強するためのスレなのでお前さんはスレ違い
一つ言っておくと「現在の接続人数」なんて表示されても閲覧者は嬉しくないよ
ページ製作者のオナニーでしかないよ
本当にそれ必要なの?
>>646 うれしくないというか気持ち悪いよね
二度と行きたくない
まあ、業務システムなら必要な場合があるかもしれないけど
648 :
Name_Not_Found :2009/02/09(月) 13:33:13 ID:UBig2szy
りんごの金額を取得したいのですがalertするとobject HTMLTableCellElementとエラーが出てしまいます どのようにしたらテーブル内のりんごの金額(100円)を取得できるのでしょうか? どなたかお手数ですがご教示お願いいたします function yen() { alert(document.getElementByid("yen1")); } <table> <thead> <tr> <th>商品</th> <th>金額</th> <th>説明</th> </tr> </thead> <tbody> <tr> <td>りんご</td><td id="yen1">100</td><td>赤い果物です</td> <td>ぶどう</td><td id="yen1">350</td><td>粒がおいしいです</td> <td>パイナップル</td><td id="yen1">300</td><td>酸味が効いてます</td> </tr> </tbody> </table> <button onClick="yen()"></button>
>>648 >どのようにしたらテーブル内のりんごの金額(100円)を取得できるのでしょうか?
勉強し直す
Google で調べる
諦める
そういう煽りは荒れる原因になるからやめようぜ
教えて君に教えないだけで 煽りだとか荒れるとか、バカかと。 そんなやつは林檎の値段なんかとれなくて良いんだよ
alert(document.getElementByid("yen1").text);
>>648 document.getElementById("yen1")でidが"yen1"の要素を取ってきてるので、
その中身が欲しければinnerHTMLとかで取りださないとダメ。
なのでdocument.getElementById("yen1").innerHTMLってやればいい。
でも、この辺の知識から質問しだすと先に進むの結構大変だから、
>>649 が言う通りgoogleとかで似たようなサンプル探すとか、テンプレに書いてあるサイトとか見た方がいいと思うよ
>>651 ここは質問スレッドだから君は無理して来なくてもいいんだよ
質問スレッドだから(笑) 来なくて良い(笑) あのさー、大丈夫かなぁ 将来的に
<td>りんご</td><td id="yen1">100</td><td>赤い果物です</td> <td>ぶどう</td><td id="yen1">350</td><td>粒がおいしいです</td> <td>パイナップル</td><td id="yen1">300</td><td>酸味が効いてます</td> これにはつっこまないのかw
657 :
656 :2009/02/09(月) 13:51:20 ID:???
つーか表吹いたw
>>648 それエラーじゃないよ。
getElementByIdは
<td id="yen1">100</td>
の部分をまるごと取ってくる。それをオブジェクト(≒内部表現)に
したものがHTMLTableCellElementで、ひねりもせずに直接文字列に変換すると
object HTMLTableCellElement
になるせいで、alertの出力がそれになる。
でもほしいのはその中にある100の部分だけだから
>
>>653 のように中身を取り出す。
idはそのHTML文章のなかで唯一無二である必要があるから
id="yen1"の乱発はダメ絶対。
659 :
Name_Not_Found :2009/02/09(月) 13:55:46 ID:DJ1TwEGc
getElementByid getElementById
660 :
Name_Not_Found :2009/02/09(月) 14:03:07 ID:UBig2szy
お陰さまで無事解決できました お時間を割いて回答を教示してくださり助かりました ありがとうございました
661 :
Name_Not_Found :2009/02/09(月) 14:35:36 ID:dWyMQdWs
DOMを使ってドキュメントに要素を挿入するとき、 挿入された要素はすべてメモリ上で処理されるのですか? JavaScriptはローカルファイルにアクセスできないはずなので、 ブラウザのキャッシュは変更できないですよね そうすると何もないHTMLをブラウザに読み込ませて、その中身を すべてJavaScriptで作成した場合は、メモリの無駄使いということに なるのですか?
******** 今日は一名キチガイが降臨してますが触らないで上げてください **********
.| | | | | | | | | | || | | .| | | レ | | | | | J || | | ∩___∩ | | | J | | | し || | | | ノ\ ,_ ヽ .| レ | | レ| || J | / ●゛ ● | .J し | | || J | ∪ ( _●_) ミ .| し J| 彡、 |∪| | .J レ / ∩ノ ⊃ ヽ ( \ / _ノ | | \ " / | | \ / ̄ ̄ ̄ /  ̄ ̄ ̄ ̄
最近見かけないJS終った君が、さらにアホになって戻って来たのでは。
666 :
Name_Not_Found :2009/02/09(月) 16:52:28 ID:YyuEaaLg
html内のinputのvalueを以下のhtmlとjsで取得しました document.form1.text1.value <form name="form1"> <input type="text" name="text1" value="string"> </form> このdocument.form1.text1.valueのtext1の部分を変数にしたいのですが var hensu = text1; document.form1.hensu.value; このようにやりたいのですが値を取得することができませんでした text1の部分を変数に置き換えて値を取得できる方法に詰まってます どなたかアドバイスお願いします
JavaScriptの変数や関数はすべて連想配列に入っているのです。
669 :
Name_Not_Found :2009/02/09(月) 17:11:05 ID:YyuEaaLg
ありがとうございます 誘導していただきましたQ8を参考に書いてみたのですがどうしても動きません どこかおかしいところを発見されましたらご指摘おねがいします function string(){ var str = "text1"; var o = document.form1.elements["str"].value; alert(o); } function string(){ var str = "text1"; var o = document.form1.elements["str"].value; alert(o); } <form name="form1"> <input type="text" name="text1" value="hello javascript"> </form>
すいません以下のようにしたら解決しました すいませんでした function string(){ var str = "text1"; var o = document.form1.elements[str].value; alert(o); }
671 :
661 :2009/02/09(月) 18:38:07 ID:???
で、結局分かる人はいないんですか?
>>671 sage無いでIDを出したら答えましょう。
HTMLをブラウザで描画させること自体、メモリは浪費する。 DOMをHTMLからではなくJSから構築したとしても おそらくメモリ使用量に大差はない。CPU負荷は変わるだろうけど。 ただ正確なところはブラウザの実装に依存するから測ってみないとわからん。
674 :
Name_Not_Found :2009/02/09(月) 19:13:16 ID:fxU11wP6
>>672 内部的に実ファイルに書き込んでいるかどうかは実装による。
それが無駄か否かは、そのコンテンツの性格やユーザの価値観による。
俺個人は、ユーザがいつでもストレスなくそのコンテンツにアクセスできるなら、
キャッシュされるかどうかは、あまり意味のあることではないと考える。
以下余談。DOM操作じゃないし、昔話なので参考になるかどうか分からんが。
Netscape4系は、Document.write()とかした内容をキャッシュに保持してた。
その際の文字コードがソースの文字コードに依存しなかったことと、
ウィンドウをリサイズするとキャッシュを読み直すというイミフな仕様が相まって、
リサイズすると盛大に文字化け、タグが巻き添えになって画面がぼろぼろになった。
キャッシュの文字化けが原因、という結論になかなかたどり着けなかった当時の
多くのJS書きは、
window.onresize = function(){ self = top /* reload()は怖いので避けた */ };
といったことをおまじないのごとく書いて、cgiを叩くようなページでは難儀した。
98〜02年頃の話。
675 :
674 :2009/02/09(月) 19:36:12 ID:fxU11wP6
将来的にgetTimeメソッドがオーバーフローして日付関数の起算点が変更さ れることはありますか?そのときは新しいメソッドが用意されるのでしょうか。
自分でライブラリで実装してるから別に変更されても困らない件
678 :
Name_Not_Found :2009/02/09(月) 21:03:22 ID:xcjf8Zyc
文字列中の特定の文字列にのみタグを追加するにはどうすればいいんでしょう? 途中の文字の色を変えたくてこう書いてみたのですが、タグがそのまま文字として表示されてしまうのです。 momi = getElementsByTagName("h2"); momi.item(0).firstChild.nodeValue.replace("momimomi","<font color=\"red\">momi</font>"); 文の中のmomimomiという文字だけが赤くなるはずだったのですが、 <font color=red>momi</font> と表示されてしまいました。
680 :
674 :2009/02/09(月) 21:23:22 ID:fxU11wP6
>>678 replaceの第二引数を関数にしてDOM操作をする。
matchの結果が関数に渡されるから、検索したテキストノードを、
マッチしたワードの前後に切り分けて、ワードを入れたタグを作って
切り分けたテキストノードで挟んで、もとに戻す。
というのを繰り返す。
自分用に作った文字列→要素の関数あるんだけど、
長くて一度に貼れないし、つまり駄作だろうから、要望があれば。
>>679-680 ああああああできましあたああああああああああああああ
ありがとうございます。ずっと悩んでて諦めかけていたのでとても嬉しいです。
大好きです!
>>676 そらまあ
なんかしないと 2038 年以降は扱えないよね
unsigned になるか 64bit になるか
どういう実装になるかは知らないけど
684 :
676 :2009/02/09(月) 22:25:55 ID:???
>>683 そうですか。確かな年までは求めてみなかったのですが、ミリ秒でやって
たらこれはヤバイと思いました。unsignedになったらカウントダウンでき
ませんよね。やはりbit拡張で後方互換なのでしょうか。30年後はもっと
パソコンも進歩はしてると覆いますが。ご回答ありがとうございました。
685 :
Name_Not_Found :2009/02/10(火) 00:15:51 ID:gE3cF38/
質問! 以下のサイトについて!
JavaScriptを洗練させるPrototype.js
http://www.thinkit.co.jp/cert/article/0702/15/7/2.htm "リスト26:要素をドラッグ可能にするクラス" に書かれているコードが動かないのは何故なんだぜ?
"// 移動メソッド" のところが
× 'top': y + 'px',
○ 'top': y + 'px'
になっているのは修正出来たんだけどこれをやっても何も起こらない。
このソースはテンプレとして保存しておきたいんで解決出来る人がいたらお願いします><
試してないから分からないんだが、結構古い記事だからprototype.jsのバージョンとか?
688 :
685 :2009/02/10(火) 00:35:58 ID:???
>>686 なるほど、記事作成時には1.4.0だったらしいのでこれを使えば動くかも。
ありがとうございます! 今からすぐに試してみます><
ちなみに記事の第一回に書いてあるリンクからダウンロードしたらversion 1.6.0.2が落ちてきました><
689 :
685 :2009/02/10(火) 00:38:07 ID:???
>>687 どうもありがとうございます>< 今から試してみます!!><
690 :
685 :2009/02/10(火) 00:50:32 ID:???
>>686-687 version 1.5.0に入れ替えたら動きました!!><
ありがとうございました!><
しかし最新のバージョンで動かないということは保存する価値がない>< うわーん><
691 :
685 :2009/02/10(火) 08:00:22 ID:gE3cF38/
すみません、再び
http://www.thinkit.co.jp/cert/article/0702/15/7/2.htm のコードで質問です。
上記ページのコードの中から以下のコードを消し、
----------------------------------
// クラスメソッド
Object.extend(Draggable, {
create: function(elem, opts) {
return new Draggable(elem, opts);
}
});
----------------------------------
その代わりに Draggable.prototype = { 〜 } の { } の中の最後に
------------------------------------
, create: function(elem, opts) {
alert("create method is colled."); // createメソッドが呼ばれたらアラートを出す。
return new Draggable(elem, opts);
}
------------------------------------
を追加してみたのですが動きません。 alertさえ出ないことから、createメソッドがまったく
機能していない ( 呼ばれていない ) ようなのですが、 Draggable.prototype = { 〜 } の中で
create メソッドの定義をしたらどうして動かないのかが分かりません。
もし分かる方がおられましたらご教示いただけたら幸いです。^^;
環境: winXP SP3, IE7, Prototype.js 1.5.0
Prototype.js 1.5.0
ttp://prototypejs.org/assets/2007/1/18/prototype.js
692 :
685 :2009/02/10(火) 08:10:28 ID:???
あれ、もしかして prototypeプロパティの中で定義してるのがいけないのかな。 すみません、もうちょっと考えてみます。m(__)m
693 :
685 :2009/02/10(火) 08:38:12 ID:???
出来てしまいました>< やはり prototype プロパティの中で定義していたのがいけなかった。 var Draggable = Class.create(); の後ろに以下のコードを入れたら動きました。 ------------------------------------- Draggable.create = function(elem, opts) { return new Draggable(elem, opts); }; ------------------------------------- また、prototypeプロパティの中で create メソッドを定義した場合は Draggable.prototype.create と呼び出せば 動くことが分かりました。 お騒がせしてすみませんでした!><
>>685 prototypeベースやprototypeチェーンについて勉強汁。
(過去ログにもあるけどここでいう"prototype"とprototype.jsは別物)
簡単に言うと、
Draggable.prototype = { create: function(){} };
はこうやって使う。
var obj = new Draggable(); // javascript本来の書き方
// var obj = Draggable.create() // prototype.js定義にClassならこっち
obj.create(); // Draggable.prototype.createが呼ばれる
Classベースの言語で例えるなら
Draggable.create クラスメソッド
Draggable.prototype.create インスタンスメソッド
あるページに一箇所しかない
</OBJECT>
<BR>
という部分を
</OBJECT>
<BR><HREF="
http://www.google.co.jp/ ">グーグル</A>
というふうに書き換えたいのですがなかなかうまくきません
document.body.innerHTML=document.body.innerHTML.replace(/</OBJECT>\s<BR>/,'</OBJECT>\n<BR><HREF="
http://www.google.co.jp/ ">グーグル</A>');focus();
いろいろ削ってみたりして試したのですが
見よう見まねなのでどこが悪いのかすら全然わかりません・・・
これで動くかしらないけどとりあえず >/</OBJECT>\s<BR>/ /<\/OBJECT>\s<BR>/
>>694 Prototype.jsと言えば、
version1.6での、オーバーライドしたスーパークラスのメソッドを呼び出したい場合には、
一々サブクラスのメソッドの第一引数で$superを指定する必要がある。
という妙な仕様が何故受け入れられているのかが非常に謎。
698 :
695 :2009/02/10(火) 17:05:11 ID:???
>>696 変化ないみたいです
前半はここまで削るとそれっぽい動きにはなるのですが
(/</OBJECT>\s<BR>/
↓
(/OBJECT\s<BR>/
グーグルがリンクにならなかったりと、全体的にいろいろ間違ってるみたいなんです
700 :
Name_Not_Found :2009/02/10(火) 17:10:07 ID:4NdK6URZ
jqueryの解説が一番わかりやすいサイトをおしえてください
701 :
695 :2009/02/10(火) 17:13:40 ID:???
>>699 あああ、いろいろ削ってるうちに消えてたいです
後半はうまくいきました!
>>700 リファレンスが一番いいよ
APIリスト見ればサンプルがのってるでしょ
あれを見ればどういうものか直感的にわかるはずだ
それがわからないなら経験不足かな
703 :
695 :2009/02/10(火) 17:34:26 ID:???
何度もすいません・・・ /OBJECT <BR> → (/\/OBJECT\s<BR>/ まではうまくいったのですが </OBJECT>のどちらか片方でも<>をつけると うまく動かなくなってしまうみたいです \< \> などもやってみたのですがダメみたいで何か原因わからないでしょうか?
>>703 一度テキストエリア作ってそこのvalueにdocument.bodyinnerHTMLを
吐き出してみて。
"</OBJECT>\n<BR>".replace(/<\/OBJECT>\s<BR>/,'</OBJECT>\n<BR><A HREF="
http://www.google.co.jp/ ">グーグル</A>')
は正しく動くから、元が"</OBJECT>\n<BR>"になってない可能性がある。
ブックマークレット?
706 :
661 :2009/02/10(火) 18:32:07 ID:???
>>673-674 遅くなりましたが、お答え頂きありがとうございました。
ブラウザの実装に依存するんですね。
今はメモリも大量に積んでるPCが多いと思うので
あまり気にしないことにしました。
707 :
695 :2009/02/10(火) 18:49:19 ID:???
>>704 ありがとうございます!
やってみたところ</OBJECT><BR>となっていて
\sを削除してみたところうまくいきました
ソースに改行が入っていたので\sが入るものだと思ったのですが・・・
<>をはずしてみると /OBJECT <BR>となりました
なんだか不思議ですがとりあえずうまくいきました
ありがとうございました
708 :
685 :2009/02/10(火) 18:54:58 ID:???
>>694 prototypeプロパティとprototype.jsがまったく違うものということは分かっていたんですが、
prototypeプロパティでcreateメソッドを宣言してもnewでオブジェクトに格納されるまでは使えない
ということを知らなくて混乱してしまいました。^^;
prototypeプロパティのことをまだ全然理解出来てないので勉強してきます、ありがとうございました。m(__)m
質問です。cloneNodeってどういうとき便利なんですか?これって、ノードに ノードを入れ込みますよね。階層深くなるだけで使いづらいです。何かこれ が威力を発揮する場合とかあるんでしょうか。
お前がどういう使い方をしてるか知らないが、cloneNodeはNodeを複製するだけ。 HTMLに追加しなきゃ実在しないものだから別が階層深くなることはない。 いい使い方かは分からないが、iGoogle的なドラッグ&ドロップを作るのに使った。
711 :
Name_Not_Found :2009/02/11(水) 00:07:39 ID:UtDktrE0
prototypeやjqueryに挫折しました これより簡単なライブラリってありませんか?
713 :
Name_Not_Found :2009/02/11(水) 00:10:49 ID:f/IVUGjR
spryって評判悪いですけど良いですか?
>>これより簡単なライブラリってありませんか? jQueryでダメならないんじゃ。
確かに
部分集合構成法において、Parsingの状態遷移で動くように書いてあるものをSubsetConstructionの状態遷移で動くように書き換えるのは、どのようにすればよいのでしょうか?
>>711 よくある勘違いだけど、ライブラリは「簡単にする」ものじゃなくて「単純にする」もの。
マンガ家は、人物や背景全部自分で描くこともできるけど、手間を省くために要所にトーンを使う。
それで手間を軽減できるし、陰なんかは手書きするより綺麗に見せることもできる。
ライブラリも同じ。全部自分で書ける人が、手間省くために使うもの。
それで定型文を自分で書かずに済ませられるし、プログラムの本筋が見やすくなる効果もある。
結局、動作を理解してなけりゃ使えないのは変わらないよ。
プログラムという意味のわからん言語を翻訳してくれる、通訳みたいなものを
期待しているのなら、そんなものはまだないから。
仕様書からプログラムが自動生成されればどんなに楽か・・・
>>718 「仕様書 プログラム 自動生成」でぐぐれば。そういう研究は沢山
ある。使われてないのはプログラムがちゃんと書けない奴は仕様書
もちゃんと書けないからだと思うね。
要するに電動自転車じゃないってことだね。
>>ライブラリも同じ。全部自分で書ける人が、手間省くために使うもの。 これは御幣があるな。 仕組みを知らない人でも使えるようにしたものだろ。
722 :
Name_Not_Found :2009/02/11(水) 11:57:46 ID:cCPIgk2h
>>721 それはどうだろう。
>>708 なんかは、仕組みが分かってないから
うまく使えなかった典型だと思う。
すべてはObjectオブジェクトの派生であることと、prototypeについて
理解していないと、すぐに手詰まりになるでしょ。
723 :
Name_Not_Found :2009/02/11(水) 12:11:14 ID:SeLMV1iP
仕様書の書き方を覚えたいのですがどちらで質問したらよろしいでしょうか?
>>719 研究はいくらでもあるけど、実際に実用されてるもんなんてあんのか?
自動生成するプログラムにバグでもあったら酷い損害になると思うが。
「ソースコードが仕様書」というセリフがあってだなw
>>722 二種類あるんだよ。
prototype.jsやjQueryのようなコアなライブラリはどちらかといえば
お前さんの言う通り。深い部分で絡んでくることと
コードが比較的シンプルに書かれているから、挙動を理解することの
コストパフォーマンスが高め。
それに対してスライドショウとかグラフ生成やらは
>>721 の言うタイプ。
一発芸的な目的だったり、コードの質がいまいちだったりして
問題がなければブラックボックスとして使うことが多い。
>>719 >718の言ってるのは、仕様(日本語)⇔プログラム(プログラミング言語)の
完全な翻訳ができるシロモノのことだと思うが。
今あるのは、ただのコメント自動抽出機能でしかない。
テストデータを自動作成してくれたりもするが、それだって、
コメントの修正漏れ1つでボロボロ。
ぶっちゃけ実用に耐えるマシなシロモノじゃない。
まあ、上に報告する紙束作るために、必要ではあるんだけどw
プログラム修正したらコメントも直して、仕様変更依頼があれば
またプログラムとコメントも直して・・・なんてのを苦もなくできるのは、
「プログラミングとは、コメントを保守することだ」と心から信じてる人だけ。
普通に考えれば、こんなの二重管理でしかないんだけどね。
何かを一元管理するためのシステムを開発しているのに、
開発工程が二重管理とか、見てるだけなら面白い話で済むんだけど。
見てるだけなら・・・。
>718はさすがに無茶だけど、プログラム→仕様書の完全な翻訳だけだって
もし完成させられたなら、十分すぎるほど便利なんだよね。
「プログラムはともかくコメント保守は嫌いだ」という人にとって必要十分だから。
作れたならバカ売れ確実なんだけど、誰か作ってくれないかねw
既存のライブラリにパッチを当てて、jQueryに対応させたいと思っています。 jQueryのあるなしで分岐させる方法はどんな方法がありますでしょうか? 上記に関して余談なのですが、実はExCanvasを使っているグラフ生成ライブラリBluffを jQueryに対応させようとしています。 ExCanvasは、onreadystatechangeイベントの readyState == "complete" の時に初期化処理を行うのですが、 jQueryの$(function(){ 〜〜〜 });でロード時にグラフを生成しようとすると(=ExCanvasを使おうとすると)、 ExCanvasの初期化がよばれていないため、エラーがでます。 ExCanvasの初期化処理をグラフ生成時にグラフのelementごとに手動で呼んでやるか、 もしくは、ExCanvasの初期化処理をjQueryのロードイベント処理時に書いてやればよいのではないか、 ということがわかりました。 JavaScriptは最近弄り始めたばかりなのですが、こういうライブラリごとの競合はけっこう起こるものなのでしょうか?
>>727 if(typeof(jQuery) == "undefined")
当然、jquery.jsが読み込まれる前では判定できない。
if(typeof jQuery != 'undefined')
おおう、リロードしてから書くべきだった。すまん。
form内にあるButton要素を押したときにSubmitさせたくないんですが そういう場合はどうしたらいいんでしょうか
>>732 onclickとかの話なら、return false;しとけ。
そもそも<input type="buttom">を<input type="submit">に
してしまってる気がするけど。
HTMLはこんな感じになってます。 <h2 id="cake">ケーキ</h2> このケーキの部分を太字にしたくて、 node = document.getElementById("cake"); node.firstChild.nodeValue = "<B>ケーキ</B>"; と書いたのですが、画面には<B>ケーキ</B>とそのまま表示されてしまいました。 じゃあinnerHTMLを使おうと思って node.firstChild.innerHTML = "<B>ケーキ</B>"; としてみると、innerHTMLがundefinedになってしまいました。 どうすればいいのでしょうか?
node.innerHTML = "<B>ケーキ</B>";
<style type="text/css"> #cake { font-weight:bold; } </style>
Hnだから何もしてなければ太字だと思うんだけどな・・。
741 :
Name_Not_Found :2009/02/12(木) 01:44:39 ID:KzOr0DNp
既存のブックマークレットを参考にして、自分で使うためのブックマークレットを作っています。 以下の、document.forms[i].length;の部分って、各<form>内の要素数が入るって事であってますか? できれは、この時点で、<input type="text">の要素のみ回したいんですが、可能でしょうか? ----------------- javascript:(function(){ // すべての値にプロンプトで入力した数値を足す。 var x = prompt('いくつ追加?','');; for (var i = 0; i < document.forms.length; i++) { for (var j = 0; j < document.forms[i].length; j++) { // テキスト入力フォームだったら。 if (document.forms[i][j].type=='text') { // 既に入っている値にプロンプトで入力した数値を足して入れなおす。 void(document.forms[i][j].value = Number(document.forms[i][j].value) + Number(x)); } } } })();
>>741 それが動くならたぶんそれで合ってるだろうけど
こういったformの子ノードに添え字でアクセスできるのかは自信がない。
var form = document.forms[0];
var elem = form[0];
でもページ全体の<input type="text">を対象にしていいなら
var e = document.getElementsByTagName("input")
で<input>の配列を得られるからそれに対してループ回して
type="text"のチェックと処理をすればいい。
あと(idとname以外の)特定の属性を持つ要素を引っ張り出す方法は ループ回す以外にはないはず。
744 :
741 :2009/02/12(木) 02:11:32 ID:KzOr0DNp
>>742 ありがとうございます。
それがなぜか、動くんです。。だから多分、アクセスできているんだと思います・・・・
(この部分は人が書いたもののままなので、確証はありませんが)
「ページ全体の<input type="text">を対象にしていい」んですが、
結局ifでtype=='text'の判定をするのが入ってしまうのなら、変らないのです。。。
回す前に、ページ内の<input type="text">の数を使いたいなと思ったのですが、
document.***.***.length;みたいなかんじでいきなり数だけ参照できないでしょうか?
745 :
741 :2009/02/12(木) 02:12:22 ID:KzOr0DNp
>>743 あ、レスしている間に、とっくにレスいただいてましたね・・・
ありがとうございます!一回回すしかないんですね!
>>712 重すぎてダメだろ?
普及すんのかあれ?
jqueryなどを使って、ログインとパスワードを用いて特定のディレクトリに うpできる簡素なうpローダなどはないでしょうか?
>>747 根底からWebの仕組みを考え直した方がいいと思う
>>747 ライブラリが何だろうとブラウザの上で動作している
JavaScriptだけでできるわけがない。
CGI、PHPなどの鯖側プログラムを用意するか、無料あぷろだ
を使うかどちらか必要だね。
>>750 それってローカルでファイルに書くやつでしょ。VBScriptだろうと
鯖側にうpは無理。
そもそも質問の意味がわからんw
753 :
Name_Not_Found :2009/02/12(木) 16:48:49 ID:6oBfkSnR
いろんなサイトで以下のスクリプトを見かけるのですがどんな処理をしているのでしょうか? function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_swapImgRestore() { //v3.0 var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc; } function MM_findObj(n, d) { //v4.01 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); if(!x && d.getElementById) x=d.getElementById(n); return x; } function MM_swapImage() { //v3.0 var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3) if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];} }
>>753 ちゃんと読んでないけどマウスロールオーバーじゃないの?
MM_関数ってmacromedia製品絡みっぽい。
現在では、大抵のサイトでCSSの擬似クラスを使って実装しているが、 旧世紀の遺物のようなこのコードはまだ結構見かけるね。
それDWが吐き出すスクリプトだよ。 単純な動作をよくもそこまで複雑に書けるなと感心する。
758 :
Name_Not_Found :2009/02/12(木) 19:29:05 ID:hzwennEp
>>755 全てのサイトを調査した訳じゃないからアレだけど、
:hoverを使うのより、JavaScriptでimg要素のsrc属性値書き換える
タイプの方が全然多い気がする。
いや、:hoverも増えてきてはいるけど。
:hover擬似クラスがアンカーにしか効かないIE6を使ってるやつが大半だからな
>>758 CSSスプライトを使えば、わざわざ画像ファイルをキャッシュする必要も無く、
さらにCSSよりもJavaScriptを無効にしているユーザーの方が多いと思われる現状では、
このような処理で、今更JavaScriptでの実装を選択する理由もちょっと見当たらないよ。
>>759 の言うように非アンカータグへの適用ぐらいか。
古くからあるサイトなら、JavaScriptのままというのも全く不思議では無いけれど。
761 :
Name_Not_Found :2009/02/12(木) 22:30:46 ID:hzwennEp
>>760 >>758 は、CSSやJavaScriptの利用状況の調査をここ数年やったときの
俺の私見だから。参考程度ですよ。で、その私見による「今更JavaScriptでの
実装を選択する理由」は↓。
現在の商業web制作の現場のほとんどが、デザインプレを経た一枚絵(aiかpsdか
png)を、オーサーがPhotoShopかFireworksで「スライス(ここ重要)」して
画像パーツにする、っていうフローでやっていて。
で、ロールオーバ用の画像を二枚バラで書き出す方が、縦か横にくっつけた
一枚として書き出すより、圧倒的に早い。コーディングもDWに任せるか、または
imgタグにクラスを一つ書く程度で済む。
JavaScriptをオフられて動作しないリスクと、画像書き出しの手間を天秤にかけて、
前者はブラウザのデフォルト状態ではないことも鑑み、JavaScriptでやる方を選択
している。
と、こじつけてみた。
763 :
Name_Not_Found :2009/02/12(木) 22:36:25 ID:hzwennEp
>>761 の「ほとんど」は乱暴だった。「多くは」だね。
最近のショッピングサイトはJavaScriptOFFだと買い物できないよね。
765 :
Name_Not_Found :2009/02/13(金) 00:18:25 ID:d3i0dalz
すいません、javascriptを使用されている方々で入門書として使われていた書籍で お勧めがあれば教えていただけないでしょうか? 今は『WebクリエイティブのためのDOMScripting」を読んでますが、基礎を固める意味で もう一冊ほど入門書を読みたいんですが…。
>>765 一撃必殺javascriptが最強
これを超える入門書はない
犀本読んどけ。
オライリーで良いんじゃないの? 最初にやって挫折しかけてるけどw
769 :
765 :2009/02/13(金) 00:41:44 ID:???
最近出たばっかりの 『JavaScript 1 はじめてのプログラミングとJavaScriptの基礎』 せっかくなんでやってみますわ。
ネットに腐るほど入門サイトがあるのに本なんかいるの?
>>770 腐るほどある入門サイトはだいたい腐っている。
きちんとプロトタイプチェーンとかも含めて系統的に解説
しているサイトがあればテンプレに載せたいよね。
ぜひ紹介キボン。
jsのことを全部載せてあるサイトなんかいらないな。
あってもとほほみたいに時が経てば過去の遺物になるだけ。
知りたいことをぐぐってそれについて詳しく、分かり易く説明してるサイトを見る
の無限ループでおk。
入門て言ってもプログラムの知識がある程度あるか無いかでかなり違ってくるよな。
俺はあったから
http://codezine.jp/article/detail/222?p=1 を読んで30分で理解出来たけど
予備知識が無い人にとっては参照とかワケワカメだろうなw
あ、いい本があったら俺も教えてもらいたいな。 いい本とはどんな本なのかってとこに興味ある。
とほほは最初jからつっこまれまくってたじゃん お前何言ってんの
最初からって、おまえおっさんだろ。
777 :
Name_Not_Found :2009/02/13(金) 16:07:47 ID:ExK1Ytta
javascriptを先に書いておいて 後で指定しておいたclass名の要素が出てきた時に実行するっていう風にするには どうしたらいいですか? こんな感じに↓ <script> <!-- /* 実行内容 */ --> </script> #間省略 <a href="" class="test">てst</a> ↑これが出た時に実行
>>777 onloadにフックして走査するしかないんじゃね?
780 :
Name_Not_Found :2009/02/13(金) 18:24:39 ID:ULnJWnJX
phpのisset的なものってないんでしょうかね。 変数が宣言されてるかどうか知りたいんですが。
>>780 if(typeof v != 'undefined')
本当に宣言だけの var v; だと判断できないけど必要もないはず。
>本当に宣言だけの var v; だと判断できないけど必要もないはず。 いや、それもundefinedになるから
だから判断できないと言ってるw でも未使用変数を判断する必要性ってあるの?
泥臭いが、 function isset(v) { var flg = true; try { if (eval(v + " === null")) return false; // ... (1) eval("var _" + v + " = " + v); } catch(e) { flg = false; } return flg; } (isset() には変数ではなく変数名(文字列)を渡す) isset("a") ... 変数 a が宣言済みなら true、そうでないなら false を返す。 PHP の isset とやらは宣言済みの変数の場合であっても 値が null であれば false を返すらしいので こちらでも一応そのようにしておいたが、もしそれが余計なら (1) の行を削って。 どういう需要があるのか知らんけど。
変数 flg なんて余計だったわ。 function isset(v) { try { if (eval(v + " === null")) return false; // ... (1) eval("var _" + v + " = " + v); return true; } catch(e) { return false; } }
786 :
Name_Not_Found :2009/02/14(土) 00:18:14 ID:lrX8pXDA
テーブルに行が追加できなくて困っています。 どこがいけないのでしょうか? 以下ソース。 <script language="JavaScript" type="text/javascript"> function printList(wordlist){ var table = document.getElementById("wordtable"); for(var i in wordlist){ var new_row = table.insertRow(table.rows.length); new_row.insertCell(0).appendChild(document.createTextNode(wordlist[i][0])); new_row.insertCell(1).appendChild(document.createTextNode(wordlist[i][1])); } } </script> <script language="JavaScript" type="text/javascript"> wList = [ ["0-0","0-1"], ["1-0","1-1"], ["2-0","2-1"] ]; printList(wList); </script> <table id="wordtable" border="1"> <tr><td>hoge</td><td>fuga</td></tr> </table>
printList(wList); は table が閉じた後に呼ばないとだめだと思うが
788 :
786 :2009/02/14(土) 00:29:50 ID:???
>>787 ありがとうございます!
動作しない理由がそことは予想外でした・・・。
789 :
Name_Not_Found :2009/02/14(土) 01:57:44 ID:zItDGlW+
すいません。iboxってツールの質問ってここで質問しちゃまずいですかね? ウィンドウ表示されるページ内のjavascriptが動かなくってこまっちゃってます。 普通にブラウザ通して、ウィンドウ表示するページをみるとjavascriptが動いて、 ibox上でそのページを表示したらjavascriptが動かなくなるんですけど。 よろしくです
790 :
Name_Not_Found :2009/02/14(土) 02:21:19 ID:zItDGlW+
いちおう情報バージョン: ibox.2.17c リンク元ページ:sample.html <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html><head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <link rel="stylesheet" href="css/ibox.css" type="text/css"> <script type="text/javascript" src="ibox.js"></script> <title>iBoxサンプル</title> </head> <body> <h1>iBoxサンプル</h1> <div> <a href="sample_disp.html" rel="ibox" title="アラーと">アラート</a> </div> </body> </html>
791 :
Name_Not_Found :2009/02/14(土) 02:21:58 ID:zItDGlW+
表示ページsample_disp.html <html> <head> <script type='text/javascript'> function testalert(){ alert("testt"); } </script> </head> <body> <a href='javascript:testalert()'>testalert</a> </body> </html>
以上。
>>789 探すのがめんどくさいからURLぐらい添えてくれw
んでコードは追ってないけどfirebugで動作を見た感じ
iframeではなくdivに流し込んでいるせいかhead部分がハンパになってるから
body部分にscriptを書けば動くかも。
>>793 すいませんでした。
ごめんリンク元ページにtestalert関数追加したら動いた。
最初から読み込んでおけばいいみたいですねぇ。
795 :
Name_Not_Found :2009/02/14(土) 02:48:36 ID:zItDGlW+
>>790 XMLHttpRequestでとってきたHTMLをinnerHTMLに流し込んでるのかなたぶん。
「script innerHTML」で検索すると関連してそうな話が出てくたyo。改造してみる?
ご親切にありがとうございます。リンク元にスクリプト書いて実装・起動できましたので特には必要なくなっちゃいました。 ウィンドウ上のフォーム入力を簡単クリック一つで出来るようにしようかなとそういう目的の為でした。 script innerHTMLでぐぐってみましたけど、なんかIEとFireFoxでの挙動の違いもなんかあるみたい なんで、めんどくさそうですw重ね重ねありがとうございました。
clipboardData.getData に代用できるFirefoxでも使用可能なスクリプトって 無いんですかね?
あったら怖いわ。
>>798 FlashでもgetClipboardはないしな
で、それを何に悪用するつもりなんだ?
>>799 いやまぁそうなんだけどさ、
セキュリティを変更した場合だけ使えるとか、なんか方法ないかなと思って
>>800 自分だけ使いたいことがあって
郵便番号をコピーして、別画面でボタン押したらそれが
貼り付けられるようにできないかなぁって
>>798 昔はFlashと組み合わせて出来たんだが
今はセキュリティホール扱いで出来ないな
自分で使うだけなら古いバージョンのフラッシュプレイヤー使えばいいんじゃね
懸賞に応募するための支援ツールにそんなのがあったなー。 まあ本当は悪用したいだけかも知れないが。 俺は2000年頃に自前のサイトにこれしかけてみたら2ちゃんのAAコピーして来たやつがいて引いたわ。
>>803 断言する。悪用は無い。
というか、アドオン使うにしろFlash使うにしろ、
ブラウザ自体を特殊な状態に持ってこないと使えないと思うから、
悪用できないと思いますよ。(逆にどんな環境でも出来るってことならそれFirefoxのセキュリティホールってことですし
>>804 いまいちよくわからんが、もう少し見てみるwサンクス
>>805 Flashなら簡単に出来る。というより、Flashを使わないと出来ない、か。
自分だけで使うこと前提なら、JavaScript+Flashで違和感なくコピーさせることも可。
実際にやれている例を知っている。
user.jsとかgreasemonkeyとかの領分だろうなぁ
Firefox(3.0.6) で if (window.XMLHttpRequest) { ... } で囲まれたブロック内で 関数定義(リテラルでない)を関数の呼び出し後方に置けないのは仕様ですか? 下の様な感じです(Opera, Safari では問題なし。IE は 6 しかないので未確認)。 <html><head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>test</title> <script type="text/javascript"> window.onload = function() { if (window.XMLHttpRequest) { document.getElementById("piyopiyo").onclick = testFunc; function testFunc() { alert("piyopiyo"); }; } }; </script> </head> <body> <form action="#"> <p><input type="button" value="Run" id="piyopiyo"></p> </form> </body> </html>
エラーコンソールでは testFunc is not defined と出ます。 if ブロックの外では問題ないです。
'testFunc()'
>>809 あのさ
function ???{};の;ってなによ
>>812 ああ、すいません。
そこは不要ですね。
window.onload なしで単に以下のコードでも駄目でした。 仕様と思ってあきらめますです。 if (true) { testFunc(); function testFunc() { alert("piyopiyo");} }
>>809 【正常】
function a(){}
a();
【正常】
a();
function a(){}
【異常】
a();
function a(){
b();
function b(){}
}
【正常】
a();
function a() {
function b(){}
b();
}
816 :
815 :2009/02/14(土) 17:56:06 ID:???
理由:if や定義した関数内じゃグローバルじゃないから
817 :
815 :2009/02/14(土) 17:56:36 ID:???
よってfirefoxが正しい挙動
>>815 すみません、3 つ目の【異常】が良く分からないです。
Firefox でも if ブロックの外なら、参照できるスコープ内にある限り
関数定義の場所は問題ないみたいです。
>>818 リンク先、拝見しました。
ブラウサの実装次第の部分があることは理解しました。
ただ、if 文はスコープに関わるんでしょうか。
もう少し調べて出直してきます。
//ERROR
if (true) {
testFunc();
function testFunc() { alert("piyopiyo"); }
}
//OK
if (true) {
testFunc();
}
function testFunc() { alert("piyopiyo"); }
globalにfunctionがあれば遅かれ早かれ実行(→定義)されることが保証される。 ifブロックは実行してみないとわからない。 スコープの問題よりは最適化の問題かと。
821 :
819 :2009/02/14(土) 19:46:22 ID:???
>>815 ちなみに3つ目の【異常】ってのはどういった実行環境でそうなる?
すみません、HTMLで特定のタグの下階層の特定のタグにアクセスしたい場合の記述はどのようになりますでしょうか。 例えば、<div><a>AAA</a></div>とあったときは getElementTagName("div").getElementTagName("a") で合ってますでしょうか?
document.getElementsByTagName("div")[0].getElementsByTagName("a")[0]
>>824 基本的なことかもしれませんが、とても助かりました。ありがとうございます!!
826 :
Name_Not_Found :2009/02/14(土) 23:06:44 ID:n+pPMmRv
index.htmlに以下のようなリンクがあります <div id="menu"> <ul> <li><a href="a.html">あ</a></li> <li><a href="b.html">い</a></li> <li><a href="c.html">う</a></li> </ul> </div> javascriptがONの場合のみ以下のようにリンクに?id=testという文字列を付けたいのですが どなたかヒントだけで頂けないでしょうか? <div id="menu"> <ul> <li><a href="a.html?id=test">あ</a></li> <li><a href="b.html?id=test">い</a></li> <li><a href="c.html?id=test">う</a></li> </ul> </div>
却ってヒント出す方が難しいな きほんてきなことなんで精進してくれ <div id="menu"> <ul> <li><a href="a.html">あ</a> <li><a href="b.html">い</a> <li><a href="c.html">う</a> </ul> </div> <script type="text/javascript"> var li = document.getElementById("menu").getElementsByTagName("a"); for(var i=0; i<li.length; i++){ li[i].href+="?id=test" } </script>
828 :
827 :2009/02/14(土) 23:19:47 ID:???
変数名間違えた
829 :
Name_Not_Found :2009/02/15(日) 00:28:03 ID:Tkvj6PHB
↓は上から参照・処理していますが、これをお尻からまわすことはできますか? 下の要素から順に参照・処理できたら・・・ for (var i = 0; i < document.forms.length; i++) { for (var j = 0; j < document.forms[i].length; j++) { [処理省略] }})();
for (var i = document.forms.length - 1; i <= 0; i--) {
i >= 0
832 :
829 :2009/02/15(日) 00:49:27 ID:Tkvj6PHB
うをぉなるほろ dクスです
833 :
Name_Not_Found :2009/02/15(日) 03:03:03 ID:U6AyzeOI
以下のようにしたら、テーブルの横線(外枠以外)が消えてしまったのですが、 なぜでしょうか? var table = document.getElementsByTagName("table"); table = table[0]; table.border = "1"; table.style.borderCollapse = "collapse"; table.style.backgroundColor = "yellow";
834 :
833 :2009/02/15(日) 03:51:42 ID:???
自分の検証不足だったのですが、
HTMLで直に書いたテーブルに
>>833 を適用したら、ちゃんと横線が出ました。
問題が発生したテーブルは以下のスクリプトで作っています。
// num行num列のテーブルを作る関数
function createTable(num){
var body = document.getElementsByTagName("body")[0];
var table = document.createElement("table");
for(var j=0; j<num; ++j){
var row = document.createElement("tr");
for(var i=0; i<num; ++i){
var cell = document.createElement("td");
var text = document.createTextNode(j+"-"+i);
cell.appendChild(text);
row.appendChild(cell);
}
table.appendChild(row);
}
body.appendChild(table);
}
これじゃ駄目かい function createTable(num){ var body = document.getElementsByTagName("body")[0]; var table = document.createElement("table"); table.border = "1"; table.style.borderCollapse = "collapse"; table.style.backgroundColor = "yellow"; for(var j=0; j<num; ++j){ var row = table.insertRow(j); for(var i=0; i<num; ++i){ var cell = row.insertCell(i); var text = document.createTextNode(j+"-"+i); cell.appendChild(text); } } body.appendChild(table); } body.appendChild(table); }
こぴぺ失敗した ↓一個多いからけして body.appendChild(table); }
837 :
833 :2009/02/15(日) 04:25:39 ID:???
>>835 ありがとうございます。
>>835 のやりかたを初めにやってできたので、
テーブル生成と装飾を分てみよう、と思って createTable() から分離しました。
実際は
>>833 は decorateTable()内に書かれており、
createTable()を呼んだあとに、decorateTable()を呼ぶ、
といったかたちになっています。
これで
>>833 のような現象が生じています。
情報不足で申し訳ありません。
こっちの方がいいか。 <html> <head> <script type="text/javascript"> function createTable(num){ var body = document.getElementsByTagName("body")[0]; var table = document.createElement("table"); for(var j=0; j<num; ++j){ var row = table.insertRow(j); for(var i=0; i<num; ++i){ var cell = row.insertCell(i); var text = document.createTextNode(j+"-"+i); cell.appendChild(text); } } body.appendChild(table); } function changeTable() { var table = document.getElementsByTagName("table")[0]; table.border = "1"; table.style.borderCollapse = "collapse"; table.style.backgroundColor = "yellow"; } </script></head><body onload="createTable(5);changeTable();"></body></html>
tr と td 要素を insertRow と insertCell で生成するように変えてあるよ。
IEで罫線が灰色っぽくなってることを言ってる? function decorateTable() { var table = document.getElementsByTagName("table")[0]; table.style.borderColor = 'black'; table.style.borderStyle = 'solid'; table.style.borderWidth = '1px'; table.style.borderCollapse = "collapse"; table.style.backgroundColor = "yellow"; for (var j=0; j<table.rows.length; ++j) { var row = table.rows[j]; for (var i=0; i<row.cells.length; ++i) { var cell = row.cells[i]; cell.style.borderColor = 'black'; cell.style.borderStyle = 'solid'; cell.style.borderWidth = '1px'; } } }
javascriptでfunctionの戻り値の型を宣言しておくことって出来ないんですか? Flashで使われるactionscriptでは funcion ext():Number{ return 10; } という書き方が出来るんですがjavascriptだと動きませんでした。(winXP SP3、IE7)
↑function の t が抜けてますが気にしないで下さい。
できないし必要もない
>>841 returnするときに宣言すればいいだろksg
845 :
841 :2009/02/15(日) 12:24:17 ID:???
>>843 そうでしたか、ありがとうございました。
846 :
841 :2009/02/15(日) 12:26:14 ID:???
>>844 それだとreturnが複数あった場合に面倒ですよね。
これしか策が無いのならこれでいきます、ども。
javascriptのデバッグをサクサクしたいんですが、何がいいですか? FireBugがいいのでしょうか?
848 :
Name_Not_Found :2009/02/15(日) 14:44:58 ID:9dVFDlVe
ある要素をマウスオーバーした時に、setTimeoutを使って500msの遅延を置いてから xml_httprequestで通信を始めるようにしました。 ここで、500msの間にマウスが離れた場合に、この通信そのものを行わないようにしたいんです。 何かいい方法はありませんでしょうか?
849 :
833 :2009/02/15(日) 14:57:28 ID:???
>>848 var timerID = setTimeout( ajaxProc, 500 );
で、mouseoutのイベントハンドラで、
clearTimeout( timerID );
とか。
>>849 たぶんtbody絡み。
tableはtbodyが自動生成されてるからDOM構造が想像とは食い違う。
<table>
<tbody>
<tr><td> </td></tr>
</tbody>
</table>
>>851 できました!本当にありがとうございます!
なんのレッテル?
でたらめな回答を繰り返すゴミ回答者 ・質問をよく読まない。 ・質問を理解しようとするのではなく、自分勝手に読み替えて回答しようとする。 ・思いついたことを検証せずに回答する。 ・マナーの悪い質問に対しても、自分の知っている内容であれば回答する。 ・質問内容に直接には触れずに、代案のみを書く。 ・質問内容は不可能なことなのか、不適切なことなのか、回答者が知らないだけなのか、 何もわからないので質問者はもう一度聞き直すしかない。 ・間違いを指摘されても訂正しない。謝らない。無視、ごまかし、言い逃れようとする。 ・「わかりません」と言えない。わからなくなると、質問とは無関係な事例や経験談を語り始める。 ・事実と仮説の区別ができない。推測したことをそのまま事実と思い込み、断言してしまう。 ・他人の回答やWebページの内容を出典を示さず、無断で転載する。 ・教えて君のあいまいな質問が大好き。自分勝手に解釈して回答する。 ・「わかるように書け」と説教をしたがる。質問者のマナーをくどくどと批判し、 他のメンバーに同意を求める。憂さ晴らしに利用している。 ・問題点の絞り込みをしようとしない。議論を重ねても、何が問題なのかさえ不明のまま。 ・すでに同じような回答があっても、自分が投稿しないと気が済まない。 ・積極的に回答しているので親切そうに見えるが、 初心者の質問の不備やマナーの悪さをねちねちと指摘するのが大好き。 ・他人の回答に対しては、横から割り込み、意味もない感想を書いたりする一方で、 自分の回答が批判されると「他人の回答の批判はやめてくれ。 そんな暇があったら自分で回答しろ」などと文句を言う。 ・人に嫌われ、攻撃されることが多い。自分は何も悪くないと思っている。 ・攻撃する人は荒らしで、自分は被害者だと言って回る。 ・ゴミ回答者は優良回答者を駆逐する。ゴミ回答者は他の人の回答の機会を奪う。 ・優良回答者は意欲を失くして去り、新しい回答者が育つこともない。 ・寛容であることとマナーを軽視することの区別ができない。 ・初心者に寛容であることは大切なマナーだが、マナー軽視を容認することは最悪のマナー。
>>858 回答者はこうあるべきって書けばいいのに。
__parent__プロパティは何でなくなったん?
861 :
Name_Not_Found :2009/02/15(日) 22:36:22 ID:Tkvj6PHB
ブックマークレットを作っています。 ページ内に複数あるテキストフォームに1〜の数値が入っている前提で、 まずすべてのテキストフォームの値にプロンプトで入力した数値(x)を加算してから(処理1) 下からx番目までのフォームには1〜の数値を上書きで入れたいです(処理2)。 下記コードの、処理1の行をコメントアウトすると、処理2は正常に動き、 2番目のループをコメントアウトすると、処理1は正常に動きます。 両方動かしたい場合はどうすればいいでしょうか? ----------- javascript:(function(){ var x = prompt('いくつ追加?','');; for (var i = 0; i < document.forms.length; i++) { // テキストフォームの値ににxの数値を足して入れる。 for (var j = 0; j < document.forms[i].length ; j++) { if (document.forms[i][j].type=='text') { void(document.forms[i][j].value = Number(document.forms[i][j].value) + Number(x)); // ↑処理1 } } // 逆回しして、テキストフォーム下からx...1まで入れる。 for (var k = document.forms[i].length - 1; k >= 0; k--){ if (document.forms[i][k].type=='text' && 1 <= x) { void(document.forms[i][k].value = x); // ↑処理2 x--; } } } })();
>>861 処理2 で x の値を変更したら i ループの 2周目でうまくいかないとか、かな。
javascript:(function(){
var x = prompt('いくつ追加?',''), d = document;
x = parseInt(x);
for (var i = 0, f; i < d.forms.length; i++) {
f = d.forms[i];
for (var j = 0; j < f.length - x ; j++) {
if (f[j].type == 'text') {
f[j].value = parseInt(f[j].value) + x;
}
}
for (var k = f.length - x, l = 1; k <= f.length - 1; k++){
if (f[k].type == 'text') {
f[k].value = l;
l++;
}
}
}
})();
処理2でxをデクリメントしながら回してりゃ処理1のNumber(x)が毎回変わるだろうね。
864 :
861 :2009/02/15(日) 23:27:59 ID:Tkvj6PHB
あ、なるほど。そういえばそうですね・・・ ただ、一応まわしていますが、<form>は一つしかないのです。
>>864 form が一つなら、おっさん、アンタのコードでも動作する様だぜ。
866 :
864 :2009/02/15(日) 23:43:13 ID:Tkvj6PHB
>>862 ありがとうございます。
いろいろとスマートになっていて、とても参考になります!
二番目のforのなかのf.length - x,ですが、
ページ内には、テキスト入力フォーム以外にもhiddenやbuttonがあるので
(すべてのテキスト入力フォーム-プロンプトで入力した数値)というのをやるのがちょっと手間なのです。
すべてのテキスト入力フォームの数を数える処理を入れたくなくて、逆回ししています。
>>865 うーん。そうですかー。でも、事実動かないのはなんでなんだろう。
コードがあっているのに動かないっていうのはあるんですかね。(最初のプロンプトすら出ないです)
ブックマークレットなので文字コードとかは関係ありません。
まさかと思うけど JavaScript が切ってあるとか。 あと IE の場合、元のファイルの JavaScript にエラーがあるとブックマークレットも実行されない。
868 :
861 :2009/02/16(月) 00:13:50 ID:wwvbl3Rd
>>867 ありがとうございます。
以下の通り、動くときは動くのです。ですので、javascriptはonです。
> 下記コードの、処理1の行をコメントアウトすると、処理2は正常に動き、
> 2番目のループをコメントアウトすると、処理1は正常に動きます。
また、IEでテストしていますが、元のファイルにjavascriptはありません。
最初のプロンプトが動かないということはこれを囲っている { } の中に不正があるということ。 だから関数オブジェクトとして認識されずに実行されない。
てかfunction名がカラなのは何ぜだぜ? それとfunctionで囲っているのはなんでだぜ?
無名関数を利用してるだけですよー なんか気に障りますね^^:
無名関数すら知らないのがこんなスレにきてるのか。
無名だから知らなくて当然。
874 :
861 :2009/02/16(月) 00:24:03 ID:wwvbl3Rd
>>869 ふーむ・・・そうですか・・・
いったいどこに不正が・・・
> てかfunction名がカラなのは何ぜだぜ? それとfunctionで囲っているのはなんでだぜ?
それは、参考にしたブックマークレットがそうだったからそのまま同じように書いています。
なるほど、変数のスコープやら関数名の衝突やらが関わってくるのか。 考えてみれば有効だなこれは。 勉強になりました。
他にあり得るのは IE6 の文字数制限かな(もし IE6 なら)。 とりあえず、質問者のおっさんのコードからコメントを消して document.forms を変数 f に変えてみたら IE6 でも動いた。 javascript:(function(){ var x = prompt('いくつ追加?',''); var f = document.forms; for (var i = 0; i < f.length; i++) { for (var j = 0; j < f[i].length ; j++) { if (f[i][j].type=='text') { void(f[i][j].value = Number(f[i][j].value) + Number(x)); } } for (var k = f[i].length - 1; k >= 0; k--){ if (f[i][k].type=='text' && 1 <= x) { void(f[i][k].value = x); x--; } } } })();
document.getElementsByid("il")[0]; document.forms[num].il.checked = true; google開いたら「日本語のページを検索」にチェックを入れるにはどうすればいいんですか?
>getElementsByid 余計なsとかIdが小文字とかずいぶんヒドいなw document.getElementById("il").checked = true GMスクリプトかなにかはわからんからその辺は自力でやってくれ
>>877 スレ的には的外れな回答だけど、これでどう?
表示設定>検索言語の設定>優先する言語、を選んで
「日本語」だけチェックして「保存」を押す。
死んで
HTMLのサイズが大きい時、(データの量が多くて) 読み込み中です…、みたいなメッセージを表示しておき HTML の読み込みが完了した段階で、メッセージを消去する みたいな事がやりたいんですが、参考になるような コードが書かれたページがあればアドバイスもらえませんか?
>>881 <body>内の<script>はそれが読み込まれた時点で実行される。
<body>やwindowのonloadは読み込みが完了した時点で実行される。
微妙に不親切だったからサンプル。動作確認はしてない。 <body><div id="msg"></div> <script> window.onload = hideMsg; dispMsg(); </script> しかもサンプル書こうとしたら別解に気づいた。 <body onload="document.getElementById("msg").innerHTML = ''"> <div id="msg">now loading</div>
>>881 body の末尾に「読み込み中です」の要素を非表示にする
コードを置けばいいんですが、参考になるような
コードが書かれたページは知らないのでアドバイスお断りします
2ちゃんがそうじゃないか
886 :
887 :2009/02/16(月) 18:34:40 ID:???
>>878 FirefoxのGMスクリプトです。試してみたら動きました。
嬉しいです。ありがとうございました。
obj.onclick = F; というイベント設定のとき、Fが引数を持っているとしたらどう書けばいい んでしょうか。
>>887 obj のプロパティをセットすればいいじゃん。
889 :
861 :2009/02/16(月) 23:40:03 ID:???
>>876 !!
この短縮していただいたコードで動きました〜!
ありがとうございました!
確認用にバージョンアップしていないので、IE6なんです。
なるほど、文字数制限があるんですね。勉強になりました!
>>887 obj.onclick = function(ev){ F.apply(null,[arg]) }
とか。
891 :
Name_Not_Found :2009/02/17(火) 01:52:28 ID:Xy//Dw2j
ある要素に現在適用されているスタイルを調べて、別の要素にコピーしたいんです。 style.cssTextをコピーすればいいのかと思いましたが、どうやらcssファイルが外部にある場合はダメみたいです。 そこで調べてみるとgetComputedStyle関数がかなりいい線いっているのですが、 困ったことに全てのプロパティを一括してコピーすることができないようなのです。 どのプロパティが使用されているのかさえわかればforで回せるのですが、それもわかりません。 何かいい方法はありませんでしょうか?
892 :
Name_Not_Found :2009/02/17(火) 04:28:12 ID:B1dV1RgZ
>>891 // コピー元の要素をelem1、コピー先をelem2として
var css = elem1.currentStyle || document.defaultView.getComputedStyle(elem1,"");
for(var i in css){
elem2.style[i] = css[i];
}
とか?
なんかもっとましなやり方ありそうだけど。
var css = elem1.currentStyle || document.defaultView.getComputedStyle(elem1,""); var buf = { }; for (var i in css) { buf[i] = css[i]; } for(var i in buf){ elem2.style[i] = buf[i]; }
>>892-893 うーん、どうもうまくいきません…
getComputedStyleが返すのはCSSStyleDeclarationという型のオブジェクトのようで、
for inでは値を取得できないような気がします。
>>894 for inではなく
for(var i = 0; i < css.length; ++i) buf[i] = css.item(i);
とかでは。試してないけど。css.item(i)ででてくる文字列を
alertでチェックしてみてね。
>>895 itemはどうも関係の無いプロパティも全部返すらしく、lengthは150近くにもなってしまいました。
それだけならまだいいのですが、使っていないプロパティをnullではなく文字列で返してくるので、
line-height:0pxなどと代入されてしまい表示がおかしくなってしまいました。
どれが無関係なのか判別できればいいのですが方法が思いつきません。
897 :
Name_Not_Found :2009/02/17(火) 15:12:41 ID:YmtQaz3M
innerHTMLで書き換えるともっさりした感じがあるのですが 書き換えを高速化するにはどのような方法がございますでしょうか? document.getElementById("txt").innerHTML= "書き換えました"; <div id="txt>書き換えテスト</div>
>>897 当然のことながらinnerHTMLの操作を最小限にする。
それでも物足りないならDOMでテキストノードいじるとか?
DOMのほうが処理することが多いから遅くない? innerHTMLの方が早いよ
サンプル走らせてみてわろたw document参照するだけで何やってんだよw
>>899 テキストノードの取得とかのこと?
同じノードを何度も書き換えるなら事前取得したものをキャッシュできるし
HTMLのパースがかからないはずだからメリットはありそうだけど
正直ベンチ取るのがめんどくさい。
>>901 たかがキャッシュ、されどキャッシュ
キャッシュを使って高速化してるのはわかったけどevalで書き換えなんて そんなことしたことなかったから納得いかねーww
904 :
903 :2009/02/17(火) 19:10:13 ID:???
と思ったけどよくよく読み返すと異常に納得できるな。すげぇ。
ieでしか使えない件
話の途中ですみません。 function文とfunction式の違いがしりたくて、次のようなコードを書いたのですが。 g() の処理結果が undefined f() の処理がエラーになる理由がわかりません。どなたか説明してもらえないでしょうか? よろしくお願いします。 == var f = function(str) { print(str); return f; }("foo"); var g = function f(str) { print(str); return f; }("bar"); g(); f(); == SpiderMonkeyの結果 foo bar undefined tmp2.js:14: TypeError: f is not a function Rhinoの結果 foo bar undefined js: uncaught JavaScript runtime exception: TypeError: f is not a function, it is undefined.
>>906 f();のまえでfの中身を出力してごらん
ちょっと回答が悪かった。var fの部分は var f = ( function() { return f; }() ); と同じ、だから関数実行時点でのfはundefined。 g()は「fという名前を持つfunctionオブジェクト」ではあるけど 内部からfで自分自身を呼べるか、それとも変数fをアクセスしにいくのかは 実装依存っぽい。Fx3だと再現できない。
>> 907 ありがとうございます。undefinedですね。 帰宅してからもう少し考えて見ます。下みたいに思考中です。 == print(f); var f = function(str) { print(str); print(f); return f; }("foo"); print(f); var g = function f(str) { print(str); print(f); return f; }("bar"); print(f); g("baz"); print(f); f("qux"); ==
910 :
Name_Not_Found :2009/02/17(火) 20:54:30 ID:TD9JVw2v
マウスが画像に乗ったら、徐々に画像が変わるJavascript分かる方いませんか?ネットから引っ張ってきたサンプルが上手くいきませんでした。
>>900 全然関係ない
>>906 g に代入しようとしてるのは関数式だから、関数宣言みたいに先読みは働かないし、内部からしか見えない
f だの hoge だのの変数は、スコープチェーンをたどって最初に見つかった値に評価される
var はスコープの最初にまとめて宣言される
まとめると
1. f と g が宣言された。中身は undefined
2. 無名関数を作って速攻で実行、"foo" を出力。戻り値である undefined を f に代入
3. 関数 f を作って速攻で実行、"bar" を出力。戻り値である 関数 f を g に代入
4. g を引数なしで実行して undefined を出力
5. f is undefined.
>>910 2枚重ねて手前のほうをタイマーで透過していく
>>910 翻訳すると
「
>>1 読んでいません作る能力もありませんが、910の理想とする物を作って!!!」
だな
スレチすぎる
913 :
906 :2009/02/17(火) 22:53:50 ID:???
>> 908, 911 感謝です。理解しました。 var g = function f() {}; って書いても関数式で解釈される?ようです。 # グローバル汚さなくていいかも。 関数内部で自分自身への参照が実装依存なのは残念です。 いままで、呼べるものだと思ってて、ちょっと再起関数を書くとき下みたいにしてました。 (function f() { return f(); })(); # arguments.callee 使えばいいか。
うっ、流れが速いね! テンプレ論議あれば今どぞ!!
うんごめん、908書いたときにはg()の返値が出力されてると勘違いしてた。
917 :
906 :2009/02/18(水) 01:07:44 ID:???
いえいえ、多謝。 関数(式)の名前空間の理解が深まってよかったです。
918 :
emi :2009/02/18(水) 01:48:53 ID:CdwyNT8D
プログラミングど素人です。すみませんが教えてください。
GPSのデータを自分のHP上にgooglemapで表示させたいんです。
HP URL
http://khepresh.toyama-cmt.ac.jp/~d04233 GPSデータ
$GPGGA,025207.561,3645.5161,N,13709.5192,E,0,0,,-10.0,M,35.7,M,,*5A
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,09,05,69,141,,12,64,095,17,22,59,271,24,18,51,192,21*7D
$GPGSV,3,2,09,30,50,182,18,09,42,048,,14,38,313,24,15,11,112,16*7E
$GPGSV,3,3,09,31,05,252,23*43
$GPRMC,025207.561,V,3645.5161,N,13709.5192,E,0.00,0.00,160708,,,N*7A
$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32
$GPGGA,025208.561,3645.5161,N,13709.5192,E,0,0,,-10.0,M,35.7,M,,*55
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPGSV,3,1,09,05,69,141,,12,64,095,17,22,59,271,17,18,51,192,20*7C
$GPGSV,3,2,09,30,50,182,17,09,42,048,,14,38,313,23,15,11,112,15*75
$GPGSV,3,3,09,31,05,252,22*42
↑毎秒データが追加される。
このデータの必要な部分のみをPHPで抽出し、javascriptに組み込み
グーグルマップにリアルタイムでピンを立てていきたいんです。
流れはわかるのですが、プログラミングしろとなると本当にわからなくて…m(_ _)m
すみません。どうかよろしくお願いします。
>>918 そう言うのは、対価を払って頼むべきこと
>>870 ,875,901,903,904
基本の勉強終わるまでもうレスすんな
>>920 var x = A || B;
の || の動作の意味が良く分からないから教えて。
|| って if文の中で使うものだと思ってた。
>>921 Aがnull等falseとして扱われるものであればB、そうで
なければAを値としてxに入れる。Lisp系の言語に多いパターン。
923 :
921 :2009/02/18(水) 11:18:49 ID:???
>>922 if ( !Boolean(A) )
{ return A; }
else
{ return B; }
みたいなものだったのかー、神様どうもありがとう。
ちがうだろ
>>921 まずAを評価する
Aがtrueに型変換できる場合にはAを返す(Bは評価されない)
そうでない場合にはBを返す
(ただしJavascript1.2以上)
関数の引数のうち省略可能なもののデフォルト値を定めたり、
ブラウザ依存を適当に処理したりする(navigator.userLanguage || navigator.language とか)
のに使う
かぶった
928 :
Name_Not_Found :2009/02/18(水) 15:22:06 ID:0YQwiQrJ
解像度を表示するスクリプトですが IE6,IE7,Firefox,Opera,safariに対応できますか? 昔、何かの本で見たときはクロスブラウザ対応はもっと複雑なコードを見たので不安です iwidth = screen.width; iheight = screen.height; document.write(iwidth+"*"+iheight);
document.write(screen.width + "*" + screen.height);
どこに笑いどころがあるのかわからん・・・
このWebページは、スクリーンの解像度が(800*600)用に最適化されています。 あなたのスクリーン解像度は(1920*1080)です。 可能ならば解像度を変更してください!
>>932 ボール紙に四角い穴を800x600になるように開けて、
画面に貼りつけてから利用すればよろし。
935 :
921 :2009/02/18(水) 21:35:47 ID:???
>>925-926 思いっきり勘違いしてました^^; クロスブラウザ対策に使えるとはいいこと聞けました。
ありがとうございました!
すいません。「ループラベル」を日本語にしてください。
938 :
936 :2009/02/18(水) 22:13:47 ID:???
>>937 さん、早速ありがとうございます。分かりました。「附箋」ですね(笑
すみません、onUnload等で退室時にプログラムを呼び出す事って可能でしょうか? やりたい事としてはそのページの閲覧者を管理したくて onUnload時にログの値をデクリメントする処理を含んだPHPファイルを実行させたいのです。
やってみればいいじゃん。
その方法がわからなくて困っているのです…。入室時は <script type="text/javascript" src="./write1.php"></script> とする事でページアクセス時にインクリメントする事は出来るのですが…。
JavaScript だから任意のタイミングで実行できるし、実行せずに退室することもできる
phpのほうでやるべきだよな
>>942 その実行する方法をご教授頂けないでしょうか?
onunloadじゃだめだったの?
できるかは知らないけどonunloadでXHRするか<script>をDOMノードに足す。
>>946 助言ありがとうございます。
そのやり方で調べてみます。
948 :
Name_Not_Found :2009/02/19(木) 01:21:32 ID:eBUbH2u1
>>939 var ajax = function(url){ // ajaxする関数 };
window.onunload = function(){ ajax(デクリメントするphp); }
こういうこと?
>>939 人数管理したいのなら、JavaScriptで「10秒間隔で在室登録
を更新する」呼び出しを行い、PHP側で「在室登録が継続されて
いる人数」を数えるのがよいかと。人数が1万とかだと重いかも
知れないけどね。
950 :
Name_Not_Found :2009/02/20(金) 21:53:53 ID:iYlos5Me
>>950 どんなURLをどんな形で開くかにもよる。
IEは複数ウィンドウ開こうとすると警告が出るよ。
つまり迷惑行為と感じる人もいるってことだから止めたほうがいい。
>>950 onclickでwindow.openしまくってreturn false
953 :
Name_Not_Found :2009/02/20(金) 23:03:30 ID:h/NYSWSV
戻るボタンを使わせないjavaスクリプトを教えてください。
document.write('戻るボタンを使わないでください');
955 :
950 :2009/02/20(金) 23:20:07 ID:iYlos5Me
>>951-952 回答、ありがとうございます。迷惑をかけることはありません。自分用です。
正直エロサイトの巡回が目的です。
↓こんな作りにしてみたのですが・・・同じタブのURLが書き換わっています。。
ヒントをお願いします。。
<body onload="EroOpen()">
<SCRIPT TYPE="text/javascript">
function EroOpen()
{
var url = new Array(3);
url[0] = "
http://www.yahoo.co.jp ";
url[1] = "
http://www.google.co.jp ";
url[2] = "
http://www.goo.ne.jp ";
for (i = 0; i < url.length; i++){
this.window.open(url[i],null);
alert(url[i]);
}
}
</SCRIPT>
</body>
>>955 for (i = 0; i < url.length; i++){
window.open(url[i], i);
}
957 :
950 :2009/02/20(金) 23:44:40 ID:iYlos5Me
959 :
950 :2009/02/21(土) 00:24:41 ID:PtDjYrcu
>>958 一時ファイルを削除してみましたが・・やはりできんのです。。
最後の配列のURLが表示されます。。
マルチラインのテキストを容易に変数へ格納する方法はありますか? たとえば <--ここから abc 123 xyz 789 -->ここまで をhogeという変数に入れたいです たとえばRubyだと hoge = <<TEXT abc 123 xyz 789 TEXT とやれば、視覚的に見たままのテキストがhogeに格納されますが JavaScriptで似たようなことは可能でしょうか?
JSON でも使え
var hoge = '' + <><![CDATA[ abc 123 xyz 789 ]]></>;
innerHTMLは代入されるたびにブラウザがパースかけるから for文の中とかで使うとめっさ効率悪くなる。 for文中で innerHTML += str; とかもう最悪。
>>953 window.location.replace(url);
965 :
950 :2009/02/21(土) 15:56:37 ID:PtDjYrcu
>>965 FirefoxでFirebug使いながらデバッグしろ。
967 :
950 :2009/02/21(土) 16:42:55 ID:PtDjYrcu
>>966 IE7で動かしたいんですが、Firefoxでのデバグで良いのですか?
>>967 当たり前だろ
デバッグしなきゃどんなブラウザでも動かないことぐらい分かるだろ
うっせーよ馬鹿。
>>965 こういうこと言うのもなんだけど、そのコードから察するに
sleipnirのグループ機能とか使えばいいんじゃないの?
Firefoxのブックマークでもフォルダにまとめれば タブですべて開く があるし
972 :
Name_Not_Found :2009/02/21(土) 17:43:16 ID:Cx/tnPuC
javascriptで質問なんですが、 ワンクリックでコピーとかどうやったら出来るのでしょうか? 検索してもうまくかからないので教えて下さい。
>>972 IEならclipboardData.setData
それ以外はflashのsetClipboardを使う
974 :
950 :2009/02/21(土) 17:46:39 ID:PtDjYrcu
>>966 なんでそんなに怒ってるの?w
正直このためにFirefoxをインストールしたくないです
ソース教えてくれたら エロサイトのURL入れたソース貼るのに・・
というか、ドザは
>>973 レス有難うございます!
本当に助かりました!
>974 普通の人が毎回同じページを巡回するなら、 ブラウザでブックマークして纏めておいて、 「ブックマークを全て開く」機能を使う。 自分で作ろうとする人って異端だと思うな。 誰かが欲しがるようなモノって、 大抵別の誰かが便利に使えるように作ってくれてるもんだよ。 ブラウザ関係は特にそう。 自分で作らざるを得ないような低機能ブラウザを盲信してる人は これを知らないか、知ってて無視しようと努力してるか、大抵どっちかだね。
便利なものに目を背ける理由が分からない
>>979 それが日本人なんだよね
車輪の再発明したがる
車輪の再発明。kwsk
楽したがる人が多い中自ら茨の道を進もうとしてる
>>974 は偉いと思うよw
茨の道を進むのと、地球を山手線感覚で歩くのとは違う
そろそろ次スレ・・・・。 テンプレ論議なし?
正規表現で、"楽しいかもね、そうかもね" から、"楽しいかもね" までを抜き出したい場合に、 楽.*ね だと一番最後まで抜き出されてしまうのですが、どうしたらうまく抜き出せるのでしょうか?
楽([^ね]*)ね
最短一致にしたいという趣旨なら 楽.*?ね
お、この板はID出ないのか。 自演し放題だな。
>>988 .*の後に?を付けると最小マッチになる
>>990 ,992
最小(最短)ではないだろ
最小にしたいのなら
楽([^楽ね]*)ね
か
楽([^楽]*?)ね
素人は黙っとけ。。
>>988 解答は出てるけど、今後のために「正規表現 欲張り」の
キーワードでググってみるといいよ。
alert("楽楽しいねね".match(/楽.*?ね/)); //楽楽しいね 非貪欲な繰り返し≠ショーテストマッチ
おいおいおい、
>>988 の質問の意図をくみ取ってやれよw
馬鹿正直に読み取ると "楽しいかもね" が正解になってしまうだろw
すぐムキになるやつは使えないな。
>>997 どんな意図があろうと、?つければ最短一致と教えるような解答者はカスじゃないかな
うめとくか
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。