+ JavaScript の質問用スレッド vol.86 +
1 :
Name_Not_Found :
2011/04/26(火) 13:02:48.73 ID:fkM+pSXr
■質問を書く上で
(1) 質問にならない投稿はご遠慮ください。(煽り、コード制作依頼など)
(2) ユーザの迷惑になるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」などです。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(4) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(5) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(6) サンプルコードに HTML が含まれる場合は
http://validator.w3.org/ で [Check] してみてください。
(7) 質問を具体的かつ詳細に書くと回答を得られやすいです。質問テンプレートを活用してみてください。
■質問テンプレート
【環境】OS, ブラウザを記入してください。(*1)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(*2)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。(*3)
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/ (*1) ブラウザのバージョンも明記してください。例えば、IE ではなく IE8 と書きます。
(*2) Windows ならコピット
http://www.umechando.com/software/ を利用すると簡単にコピーできます。
■主要FAQ (全部は
http://fiddle.jshell.net/vSqKr/24/show/ )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。
5 :
Name_Not_Found :2011/04/26(火) 15:31:05.15 ID:nn+YADWK
<iframe></iframe> <ul> <li>movie01</li> <li>movie02</li> <li>movie03</li> </ul> <p><a href="">movie01を再生</a></p> 上記のように遠隔でムービーを<iframe>内に呼んで再生したいのですが どのように記述すればよいでしょうか
【環境】Win7・IE8 【何をしたのか】 以下のサンプルコードのようにpdfを別窓で開き、別窓のlocation.hrefを参照しようとすると 「書き込みできません」のエラーが出ます。 htmlを別窓で開いてlocation.hrefを参照すれば、正しいURLが返ってきます。 また、FireFoxではlocation.hrefで正しいURLを得られました。 【エラーメッセージ】上記の通り 【期待する結果】 新窓で表示されているコンテンツ(HTML, pdf)のURLを取得したいです。 (新窓内にHTMLコンテンツを表示して、そのリンクよりPDFが表示される場合もあるので、 その場合はPDFのURLも表示したいです。) 【サンプルコード】 <script type="text/javascript"> <!-- var url; var w; function test() { w = window.open("test.pdf", "test"); url = w.location.href alert(url); // --> </script>
9 :
Name_Not_Found :2011/04/26(火) 16:14:23.99 ID:nn+YADWK
10 :
8 :2011/04/26(火) 16:14:36.74 ID:???
スミマセン。 コピペミスでfunction test()の{ }を閉じるのを忘れました。
12 :
8 :2011/04/26(火) 17:01:32.46 ID:???
>>11 実は、
w = window.open("test.pdf", "test");
で開いたtest.pdfには複数のハイパーリンクがあり、別のpdfを表示するようになっているのですが、
後で開いた側よりどのpdfふぁ開いているかを検出したかったのです。
なお、ご提示のサイトのスレッドは終了としています。
>>12 スレッドを終了したのは
>>11 の後だろうに、あたかも既に終了していたかのように振る舞うとは調子のいいやつだなあ…。
そもそもPDFを開いた別窓はPDF用のプラグインが動いているでしょ。 それのlocationとか取れるかどうかは場合によりけりで、取れないなら 解決方法はないんじゃないかと想像する。
さて、とりあえず建ったこのスレですけど、テンプレ論議の続きが あれば今やってしまってもいいんじゃない?やる気が出ないなら 800くらいでやるということでもいいです。
みなさんは秒数を時刻型表示に変換するときどうされてます? 有名なライブラリがあるのでしょうか? 213 → 1:43
>>21 >有名なライブラリがあるのでしょうか?
ない。
>変換するときどうされてます?
Math.round 使って (1000 * 60 * 60)
横からで申し訳ないのだけど、
>>21 の変換ってどういうアルゴリズム?
213秒って3分33秒だから1:43がどこから出てきたのかがわからない
俺が何か勘違いしてる?
>>26 Dateオブジェクトに入れてやれば、起点からの「経過時間」が把握できるだろ?
ググろうにもまず言葉を知らないので質問させてください。javascriptでこんな感じのもの作れますか? 0 50 100 ________■_______________ ↑ ここをドラッグして動かすと、 数: 42 ←ここの数値がリアルタイムに切り替わる。 できれば画像抜きで作りたいんですが可能でしょうか。
「javascript スライダ」で検索するといいよ
31 :
Name_Not_Found :2011/04/27(水) 16:46:21.84 ID:8kDp8eiV
スレチなのでお帰りください
33 :
Name_Not_Found :2011/04/27(水) 17:45:48.16 ID:8q3Boumr
スレ違いなのか?
結構昔からJSの活躍の場のひとつだった気もするが
>>31 JavaScript リッチテキストエディタ
でおググりください
先人たちが作ったのがいっぱいありますから
wysiwygエディタの方が良い気がする TinyMCEとかFCKEditorあたりが有名
>JavaScript を自ら学ぶ人のための質問スレッドです。
36 :
Name_Not_Found :2011/04/27(水) 18:19:39.72 ID:8q3Boumr
タグを貼り付けるだけで使える配布物はありませんか みたいなのは初心者用質問スレに誘導?
ごみ箱に移動
だいたい貼り付けるだけなんてJavaScript関係ないじゃん。 初心者スレで十分。
<script type="text/javascript"> if(typeof yyy == "undefined"){ alert("未定義です");}//動く alert(yyy);//動かない </script> なんでalert(yyy)は動かないのですか? yyyはundefinedと出ると思います。 if(typeof yyy == "undefined")では真になっています <script type="text/javascript"> function sb(){ alert(yyy); var yyy=8;}//undefinedとでる </script> これではalert(yyy)がundefinedと出ます。
未宣言の変数を参照するとエラー typeofは変数が未宣言かを確認できる それだけ
理由は分からないけど、window.を付ければ希望の動作。 ブラウザによってはwindow直下の変数xのtypeof x !=="undefined"のつもりで if(x)ってやるとそこで止まることもあるから注意。こちらもif(window.x)ならおk
<script type="text/javascript"> if(typeof yyy == "undefined"){ alert("未定義です");}//動く window.alert(yyy);//動かない </script> FFでもGoogle Chromeでもie8でもundefinedと出ません
ギャグでやってんのかコラ
>>40 typeof演算子は未定義の変数も評価できるから
<script type="text/javascript"> if(typeof yyy == "undefined"){ alert("未定義です");}//動く alert(yyy);//undefinedと出る var yyy=90; </script> こですか?alert(yyy)の後にvar yyy=90と宣言したら alert(yyy)がundefinedと出るがvar yyy=90の記述がないと alertが動かない。あとvar yyy=90と書いたところで上から順に プログラムを実行したらalert(yyy)の時点では yyyが宣言されてないはずなのになぜ挙動が違うのでるか?
var宣言とfunction宣言はコード実行に先だって評価される 宣言と定義/初期化を混同してる奴が多いがな
49 :
Name_Not_Found :2011/04/28(木) 01:34:45.45 ID:6HLotha1
サイトでスクロールを禁止にするscriptを探しているのですが 参考となるHPをご存じの先輩方はいらっしゃいますでしょうか? マウスのスクロールボタンを押されるとスクロール出来てしまうので大変困っています。。 age
>>49 > (1) 質問にならない投稿はご遠慮ください。(煽り、コード制作依頼など)
> (2) ユーザの迷惑になるスクリプトの質問はご遠慮ください。
せめて理由も書けば良かったのに。 ユーザビリティを損なう実装をするな!で終わってしまう。
ショッピングカートのASPを使っていて、javascriptをheadで読み込めません。 そのせいなのかわかりませんが、スライドショーのjqueryを使用すると、ページ読み込みの際に、 スライドショーの中の画像が崩れた形で表示されます。 数秒待てば通常の表示に戻るのですが、綺麗に表示させることはできないでしょうか? javascriptでページ成形された後に、画像が読み込まれればいいのですが。 よろしくお願い致します。
>>52 当該部分全体をdisplay=hiddenにしておいて完成した頃合いで
見えるように切り替えるのはどうかな。
質問です getElementsByTagName("*") getElementById(id) の二つの意味がよくわからないのですが、これの*とidというのはどーいう意味なんでしょうか? 普通なら("idの名前")だと思うのですが
>>54 質問の意味が分からん。
どこからその記述を持ってきたのか、URIか書籍名を示せ。
そして、正確に引用しているか確認せよ。
idは変数だろ。それより前の行とかにid=とか書いてない? *については全てのタグ。ワイルドカードっていうやつです。
>>56 本当だ!変数でした!よく気付きましたね!
ワイルドカードっていうのですか、ありがとうございます!
>>54 たぶん、そもそも、識別子と文字列の区別が付いていない。
これを分かりやすく説明するのは難しいが、
var elems = getElementsByTagName("*");
と
var x = "*";
var elems = getElementsByTagName(x);
が同じ処理をするということが理解できないなら、こんなところで質問するより、何か一冊入門書を読むべき。
いくらなんでも、そんな初歩の初歩を手取り足取り教えるのは無理。
これが理解できるなら、もう一度頭を整理してから質問してくれ。
59 :
58 :2011/04/28(木) 10:49:24.62 ID:???
リロードしてなかったorz とりあえず、すまん。
いえいえ、ご教授感謝ッス!
正規表現マッチについて質問です。 1の例では、テキストに正規表現がマッチしたパターンが配列で返されます。 2の例では、グローバルフラグをつけたので、正規表現がマッチしたすべてのテキストが配列で返されます。 それでは、テキストに正規表現がマッチしたすべてのパターンを返すにはどうすればいいのでしょうか??????????? var text = '[hoge][fuga][piyo]comment'; // 1 var tag = text.match(new RegExp(/\[(.*?)\]/)); alert(tag[0]); // [hoge] alert(tag[1]); // hoge // 2 var tag = text.match(new RegExp(/\[(.*?)\]/g)); alert(tag[0]); // [hoge] alert(tag[1]); // [fuga] alert(tag[2)); // [piyo] // こうしたい alert(tag[0][1]); // hoge alert(tag[1][1]); // fuga alert(tag[2)[1]); // piyo
>>61 var tag = text.match(/[^[]+(?=])/g);
[ ] に囲まれた文字列を全部取りたいなら、これでいいんじゃないか。
[ ] 内の成分に [ ] が現れず、[ ] は常に対であるイレギュラーの無いパターン文字列が前提だけど。
>>61 var text = '[hoge][fuga][piyo]comment';
var reg = /\[((?:[^\]]|\\\])+)\]/g;
var tag = [];
var result;
while (result = reg.exec(text)) { tag.push(result); }
console.log(tag);
replace でも出来るな。 var text = '[hoge][fuga][piyo]comment'; var reg = /\[((?:[^\]]|\\\])+)\]/g; var tag = []; var result; text.replace(reg, function () { tag.push([arguments[0], arguments[1]]); }); console.log(tag);
>>61 煽りじゃなくて素朴な疑問なんだけど、なんで new RegExp(/\[(.*?)\]/) という書き方なの?
/\[(.*?)\]/ もしくは new RegExp('\\[(.*?)\\]') なら理解できるんだけど…。
>>65 >>61 が意識してるか知らんが(してないだろうが)
ES3(≠ES5)の正規表現リテラルの挙動でも調べろ
gフラグがあるから無意味ではない
>>66 なぜ動くのかを聞きたいんじゃない。
var text = '[hoge][fuga][piyo]comment';
text.match(new RegExp(/\[(.*?)\]/g));
text.match(/\[(.*?)\]/g);
わざわざ上の書き方をする理由がわからないだけ。
極端な例を書けば text.match(new RegExp(new RegExp(/\[(.*?)\]/g))) でも動くよ。無駄な処理だと思うけど。
例えるなら剛速球を投げたつもりなんだけどフォアボールで走塁されてしまったパターン?
Javascriptが自在に扱える男になると、AKBで例えてどこ娘レベルと 結婚できますか?
>>67 結局調べもしなかったのか
ES3 の正規表現リテラルは、どこに書かれていようと新規生成されない可能性がある
これはマシンが非力であった頃の名残であり、Firefox2、Opera9はこれに従う
だから神経質な奴は正規表現リテラルをnew RegExp()でそのつど*複製*してlastIndexを0にする
なお、上はRegExp#execで問題になる String#matchは最初にlastIndexを0にするから matchだけを使うならお前の言う通り無駄だ
/: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ ___ /;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ /ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \ /: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 | . /: : : //ヾ ; :|!: イ、||ll|||||::|| ノノ イ|||||||ヾ、 |: ::|!: : イ: ::|/ な 思 が /: : ://: : :ヽソ::ヽl |{ i||ll"ン ´ i| l|||l"l `|: /|: : /'!/l ん う ∠: : : ~: : : : : : : :丶ゝ-―- , ー=z_ソ |/ ハメ;, :: ::|. だ ん i|::ハ: : : : : : : : : : : 、ヘヘヘヘ 、 ヘヘヘヘヘ /: : : : : \,|. ろ な |!l |: : : : : : : : :、: ::\ 、-―-, / : : :丶;,,;,:ミヽ う ら 丶: :ハ、lヽ: :ヽ: : ::\__ `~ " /: : ト; lヽ) ゝ レ `| `、l`、>=ニ´ , _´ : :} ` / ,,、r"^~´"''''"t-`r、 _ -、 ´ヽノ \ノ / お ・ ,;'~ _r-- 、__ ~f、_>'、_ | で 前 ・ f~ ,;" ~"t___ ミ、 ^'t | は ん ・ ," ,~ ヾ~'-、__ ミ_ξ丶 | な 中 ・ ;' ,イ .. ヽ_ ヾ、0ヽ丶 l / ( ;":: |: :: .. .`, ヾ 丶 ! \____/ ;;;; :: 入:: :: :: l`ー-、 )l ヾ 丶 "~、ソ:: :い:: : \_ ノ , ヾ 丶
73 :
Name_Not_Found :2011/04/28(木) 21:13:27.39 ID:yWONXRo6
>>70-71 なるほど、癖みたいなものか。
仕様は調べたけど
>>61 ではmatchを使用していたし、その理由は思いつかなかったよ。
javascriptにはc言語の int main()に相当するものってどこですか? または存在しないのですか?
イベント駆動式ですからね
>>76 やっぱないのですか。
今、大学の図書室でjavascriptの本を借りまくって勉強してます。
Javascript 第5版などかなりいい本がそろっていました。
大学生は勉強するときはやっぱ図書室で借りるに限りますね。本が高すぎて
とてもプログラムの本を何十冊も揃えられません。
perlと同様に、そのコードファイルがmain()相当では。 なのでfunction()で囲んでないものは、読み込み時に全部実行されちまう
addEventListenerでDOMの内容が書き換えられた時の イベントはどのように取れば良いのでしょうか
>>62-71 61です。みなさんありがとうございました。
とりあえず希望通りに動くことは確認しました。
その後の議論など、ほとんど理解できませんが時間をかけて全て読解しようと思います。
..... .:_ -― ─- 、:. ...... ..::⌒>.、:: ...::/::.::/::.:: ヽ::.::.\::....::x<⌒::. ::x-=≦.::.-=`ミO.:/:/:/|:./.:ハ::ヽ::`O::-=ミて`く⌒ヽ:: ::, イ::ノ⌒'Z _⌒ Y彡::./V j/ヽ::ハ.::.V::Y⌒/;^)- 入 \: ::/ :/八 '(:::::':,\ トV::./⌒ ⌒ヽ.::∨/,.::'::/ /:::∧ '\:: ::/ `V::/ヽ\ \ :':, 八W __ __ jハ:::l, :':::::, ′ /:::/  ̄ ノ\:: ::〈 ,.:'::/ ヽ \ \:l:ハ| 〃⌒ ⌒ヾ ハ:|::::/ ,.イ:::/ ∠.::勹:: ::/ ! :.'::::∧ | ヽ \ム .::::: r ┐ ::::.,'ノ/ / /::/ |__:/:: ::∠._jハ_ん:ヘ/}ノ /ヘ ヽゝ_ ヽ ノ イ/ /⌒ん'⌒)_>::  ̄  ̄`ヽ `=≧r ‐i彡''´ /::  ̄ ::\ヽ ` ´ / /:: :: ,′ ::i :; :; i:: ::| |:: ::l |:: ::j :: ::,′ l:: ::/ |:: ::/ !:: ::/ 〉┴r :: ::,′ /:: ::| |::
Javascriptでサイト内検索できる?
サイト内情報がJavaScriptで組まれてるか1ページ以内に収まっていれば可能
Ajaxなら簡単?Javascriptを始めたばかりなんですが どんな感じで作るか検討つかんのです
Ajaxで出来るのはサーバとの通信 どういうレスポンスを返すかはサーバ側の実装による 例えば静的なファイルを取得するだけなら JavaScriptだけで出来るといえるが 実際はサーバ側のデータベースから情報引っ張ってきたりするわけで そうなるとCGIやらを経由することになるわけで JavaScriptだけとは言えなくなる
ページ内ならまだしも、サイト内検索はjsの土俵じゃない 「始めたばかり」これを始めから言ってれば、事故を起こすだけだからAjaxなんて言わなかった サイト内検索はCGIやDBをまわした方が安全
Namazuでもインストールしとけばいいんじゃねえか?
みなさんありがとうございます。JavaScriptだとちょい土俵が違うみたいですね Namazuかgoogle検索にしてみようかと思います。
オンマウスでタイトル表示させたいのですが <a href="" onmouseover="ddrivetip('あいう')" onmouseout="hideddrivetip()" target="_blank" > これを実行するscriptはどのように記入すればいいのでしょうか? イメージはえろねっとさんです。
ありがとうございます。 これをそのままアップロードしても大丈夫ですよね?
>>94 なんで「大丈夫ですよね?」という発想がでてくるんだ。
英語が読めないなら、諦めろ。
98 :
Name_Not_Found :2011/04/29(金) 17:27:55.03 ID:GltjYwHX
<form> <input type="text" name="c" value="test"> </form> これをjavascriptからajaxでpost送信したいので、フォームを無効にしたいのですが formにidを割り当てない場合ではForm.disable();の()の中にどのように書くのでしょうか?
document.formsで1個ずつ子要素でもチェックしてそのformを探せばいいんじゃないか
>>98 HTMLのはなしだけど
<input type="hidden"・・・
or
<input ・・・disabled="true" />
じゃだめなん?
クエリセレクタ使うとか?
Web Storageってめっちゃ簡単で便利なのに使ってる所少ないのはなんでだろ?
>>102 IE 6と7で実装されてないでしょ。
IE 6と7でもCookieを使って仮想的にできるようにするライブラリがあるみたいだけど、微妙に挙動が違うらしい。
また、IE 8以降でも、MSは例のごとく、DOM StorageとかいってWb Storageと微妙に違うものを展開する気、満々。
結局、MSを切り捨てるか、あるいは逆にMSのケツをなめるかどっちかに決めないと使えないインターフェースなんて、おいそれとは使えない。
そもそも草案だし……
>>103 順番が逆だ。DOM Storage が先にあって Web Storage ができたはず。
標準化される前なんだから実装が異なるのは仕方ない。
MSは仕様が安定するまで Web Storage を実装しない心づもりなんだろう。
FirefoxもChromeに追従するから来年には6とか7とか8もしくは10以上のバージョンになってるよね
ならない 何をもってメジャーとするかは開発者によるし おそらくFirefoxでもどういう時にメジャー番号をあげるかとか ちゃんと決まってるだろうけど バージョン番号ってのはソフトウェアが登場してから開発が続いてる間は たいてい比例してあがっていく ようするにChromeは番号をあげる速度が早いだけ 最近のバージョンなんて無秩序でアップデート指標にしかならないのが実情
HTML5はJavascriptとHTML5の機能使えば AdobeのFlashとほど同等のことができるってマジですか
別にcanvas使わなくてもFlashと同等のことできるけど アニメーションとかはFlashほど得意ではない
firefoxは5がすでにβであって 6がナイトリービルド?とかで上がってたはずだが・・・ ちなみに5使ってみたけどどこが変わったの?ってレベル
Firefoxは潮時 Chromeは使い勝手がイマイチ Safariはゴミ IEはもっとゴミ IE9?10?協調路線?もう期待しません 最後のユートピア Operaさんに期待しよう
Firefoxはメモリリークしてるっぽいのがゆるせーん
Firefox4はバグ多すぎだな プロセスみたらいつのまにかplugin-containerがいっぱいで ページ切り替えてもブラウザ終了まできえないし あれは確かにメモリリークかもしれん
ってかJavascriptだけでmp3再生できるように ならないの?無理?
document.documentElement.scrollTopなどで取得できるスクロール位置にある要素(idやclass名)を取得することは可能でしょうか?
>>112 俺は今までちゃんとIE用にスクリプトやってたんだけど
IE9で本当に仕様がガラリと変わったからまた別にIE9用のスクリプト作らなきゃならないハメになった
Firefoxとかの仕様に近くなった感じはするけど、IEと狐の中間って感じで未だに慣れず
「あれ?動作しねー」って事がしばしば発生してる
IE9ってそんなにガラリと仕様変わったの? どこかに変更内容まとめてあるサイトとかない?
jQueryで自分自身の html ファイル名を取得することできますか? ファイル名を取得して、 a href の参照先が同一なら class=active を追加ってのをしたいんですが。
>>122 jQueryは関係ないが、window.locationでググれば、よろしかろう。
javascriptでinputタグに文字列を入力したときにエンターキーでPOSTで送信したいのですが方法ございますか? ググってもエンターキーの無効化はたくさん見つかるのですが、逆が見つからないので方法がないのでしょうか?
XPしか持ってないしIE9開発できない(ノートはAir) 確認用にゴミネットブック買うのもバカバカしいし OS買ってバーチャルマシン使うのも内部構成複雑になって嫌だし かといって新調するのもゴミ増えるだけだし くまったなー XPでも動くハックバージョンやエミュレータでも出まわってくれることに期待
>>125 input.onkeydown = function(e){
if (!e) e = window.event;
if((e.keyCode || e.charCode || e.which) == 13){
// POST
}
};
というか、ググって一番上にでてくるページ見る限りだと、js使わずにhtmlだけでエンターで送信してくれるみたいだけど。
エンターの無効化って事は無効化をやめれば普通に送信じゃん。
EnterキーでPOSTというのは可能だけど、 問題は日本語の場合、入力中に変換作業をするわけで、 Enterキーを頻繁に押すことにある。 変換後の決定のEnterかPOSTするためのEnterかをうまく判断できないと、 変なところで送信してしまう。
変換の決定はkeydown認識されなかったと思うけど。自作のコードで変換エンターでおかしくなったことはないよ。
130 :
Name_Not_Found :2011/04/30(土) 13:06:43.86 ID:O6IhTV1p
画面遷移はさせたくないのでHTMLで送信せず、javascriptで送信したいと思います 教えて頂きましたコードを試してみたのですがchromeでは動きませんでした
別にsubmitじゃなくてbuttonからAjax送信するようにすれば 画面遷移はしないわけだが
すいません自己解決できました jqueryで対応できました buttonにフォーカスを移すのが面倒なのです
onsubmit で待てば Enter キーの処理は不要だったんだけどな
var s = "1 23ef aaabbbddd "; v = s.match(/^[a-z0-9]+[\r\n]+/); alert(v); matchで文字列の先頭の文字列(ここでは1)の部分だけをを取得したいのですが改行にもヒットしてしまいます 数字の部分はa-z0-9が不特定に出現します どうやれば改行を含まずに取れるでしょうか?
/^[^\r\n]+/
それですとA-Zや_-も引っかかるので[a-z0-9]は変えられません
$(function(){ var s = "<"; $("body").html("<p>"+s+"</p>"); }); これをやると<のまま表示されます ソースコードとしては<で、ブラウザには<と表示されないのですが何故でしょうか?
>>134 改行コード含めなきゃ良いだけじゃないの?
ハア?
特定のテキストログが更新されたら自動で取得して表示したいのですがjavascriptで可能でしょうか? サーバはVPSを借りてやろうと思っているので必要なプログラムなどがあれば柔軟に取り入れます
>>134 そもそも、文字列リテラルに「\n」というエスケープシーケンスではなく改行そのものを含むのは構文違反。
あと、
>>136 の反応は、自分でおかしな、失礼な態度だと思わないのかな。オレは
>>135 とは別人ね。
>>137 HTMLの勉強からはじめろ。
実体参照でググれ。
$(function(){
var s = "<";
$("body").html("<p>"+s+"</p>");
});
>>141 サーバーマシンで生成されたテキストログを、あるWebページを開いているユーザーに随時更新しながら表示したいってことでよいかな。
サーバーサイドでいろいろする必要はあるが、クライアント側はjavascriptでできる。
Ajaxを知らないで質問しているなら、まずAjaxでググって。
Ajaxを知っている上での質問なら、CometかWebSocketでググって。
CometもWebSocketもサーバが対応してないとつかえねえべ
>>141 簡単に書くとこんな感じかねえ
//一定時間ごとに繰り替えす
(function(){
var mtime = "0";
var req = new XMLHttpRequest();
req.addEventListener("load", function(e){
mtime = e.target.getResponseHeader("X-Modified");
if(e.total){ // 受信サイズ
alert(e.target.responseText.length); // レスポンスの内容
}
}, false);
req.open("GET", "index.php?time=" + mtime, true);
req.send(null);
})
// サーバーサイド PHP
$filename = "/etc/logfile"; // ログ
if (isset($_GET['time']) && ctype_digit($_GET['time'])) {
header("Content-type: text/plain");
header("X-Modified: " . filemtime($filename));
if ((int) $_GET['time'] < filemtime($filename)) {
readfile($filename);
}
}
>>134 そもそも ^ は改行コードにマッチしない
>>145 中共を新中国と呼ぶのは反日サヨクだよ。「中共」は、中国大陸においては中国共産党の略称である。
一方、中国大陸の外においては、中華人民共和国が国家であることを認めない人々が
「(中国大陸を統治する)中国共産党政権」という意味の俗称として使っていた
(この意味による「中共」は、日中国交正常化前の日本社会で使われていたほか、
現在でも、国共内戦で中国大陸から台湾に渡った中国国民党などが使っている)。
また「新中国」は、主に日中の国交正常化前、つまり中華人民共和国建国後は
台湾島を含む一帯を統治している中華民国を日本政府が「中国を代表する正当な政府」としていた時代(1912〜2009)に、
中国共産党を支持する日本人が中華人民共和国を指して使っていたものである。
>>142 数字の部分はa-z0-9しかこないと質問に書いたのに
失礼といわれても困ります
>>148 頭悪いやつに言っても意味ないだろうが…
>>134 の質問で、文字列に[A-Z]が登場するのかどうか、どのように登場するのか、登場したときにどのように処理するのか理解できるはずがない。
この点は間違いない。理解できたらエスパー。
加えて、「文字列(s)には[a-z0-9]と改行しか登場しない」とひとまずは理解するのが自然だろうとオレは思うし、たぶん多くの人がそうだろう。
それ以外の解釈をとった場合、「文字列の先頭の文字列」をどう理解すればよいのか分からなくなって、場合分けに基づいて回答するほかなくなる。
まぁ、[a-z0-9]と改行以外が登場するなら、そういうデータをあらかじめ提示して、それぞれどのように処理したいのか説明しておけってこった。
そういうことができなければ、質問のときだけでなく、自分でプログラムするときにもさまざまな不具合の可能性を潰しきることができず、いつまでたってもアホのままだぞ。
正規表現の質問ってはっきり言えば何をどうしたいか が明確じゃないと的確なアドバイスとか難しいからなー・・・ 結論的には[\r\n]+これ消して改行コード消せば良いんじゃない?という事になるが
>>144 これをjquery版で書くとどうなるの?
>>151 >>2 > (1) 質問にならない投稿はご遠慮ください。(煽り、コード制作依頼など)
それを煽りという。
>>151 どうなるって言われても$.ajax使うだけ
>>152 >>2 > (1) 質問にならない投稿はご遠慮ください。(煽り、コード制作依頼など)
>>151 こんな感じでいけると思う
$.ajax({
url:"ここにURL",
cache:false
})
.success(function(d){
alert(d);
})
>>134 v = s.match(/^([a-z0-9]+)[\r\n]+/)[1];
こういうことじゃね?
>>148 >>142 ,146で答え出てることに気がつかない?
SyntaxError を修正すれば済む話。
var s = "1\n23ef\naaabbbddd\n";
v = s.match(/^[a-z0-9]+[\r\n]+/);
alert(v);
>そもそも ^ は改行コードにマッチしない ???????????????
javascriptでMVCかテンプレートみたいなことできるライブラリないですか? CGIなどが利用できないサーバで開発の楽をしたいのです
/^[a-z0-9]+/ 要するにこれでええんやろ?
人力検索にちゃん
Q1. 〜できるJavaScriptないですか? Q2. 〜したいんですが、どうすればいいですか? この二つは微妙だよなあ。
そもそもやろうとしてる訳じゃないからスレチなんだよな
var a = new Array(); a("2011/5/11 23:01","2011/5/11 22:40","2010/5/10 11:30"); このa配列をソートしたいのですが、どのように記述すればよいのでしょうか? やっぱり正規表現とか使うのでしょうか?
var a = ["2011/5/11 23:01","2011/5/11 22:40","2010/5/10 11:30"]; a.sort(function(_a, _b){ return new Date(_a) - new Date(_b); });
169 :
Name_Not_Found :2011/05/01(日) 03:47:58.73 ID:WIDp1nTL
function getCoDivFromName(nm){ return document.getElementById?document.getElementById(nm):document.all(nm); } 引数のnmって関数内で宣言してグローバル変数にしないのですか? またら関数の外で宣言してグローバル変数にするのですか?
日本語でおk
171 :
Name_Not_Found :2011/05/01(日) 03:57:28.90 ID:WIDp1nTL
引数nmはvar nmって宣言しなくいいのか? って聞いてんだよオッサン さっさと答えろよ
>>166 数字だけ取り出してそれをソートすりゃいいだけじゃね?
>>167 前から気になってたんだけどインスタンス変数とかの前後にアンダーバーつけるのってなんなんだ?
昔のなごり?
コード上で変数を宣言した場所とは違う場所で実は宣言されているという仕様はどういう利点があるのでしょうか?
>>173 前スレより
637 : Name_Not_Found sage 2011/04/14(木) 19:06:37.53 ID:???
質問です。
function _hoge() {
}
のように関数名の前にアンダーバーを付けてるコードを(色々な言語で)よく見ます。
コーディング規約的なものだと思いますが、どういう意味なんでしょうか?
638 : Name_Not_Found sage 2011/04/14(木) 19:24:05.16 ID:???
privateスコープとpublicスコープを区別する為にJSではそう付けてるなぁ俺は。
アンダーバー付いてたら直接呼ぶなよ!・・と。
639 : Name_Not_Found sage 2011/04/14(木) 19:37:21.82 ID:???
>>637 http://cou929.nu/data/google_javascript_style_guide/#id25
右クリックでリンクを開いた場合はアクセス制限したいのですが方法はございますか?
死ね
どこで何を制限したいんだよ
>>177 もーちょい具体的に説明してくれ
右クリックでリンクを開いたらアクセス制限ってどういうこっちゃ
右クリックでリンクを開いたらそれやった奴のホスト名を記録してとかそんな感じ?
普通の人は左クリックでリンクをクリックしてリンク先に飛ぶと思いますが 右クリックでファイルを保存とか新しいタブで開いたりさせたいないのです エロサイトとかでよくある右クリックで開いたら403を返すようなことをやりたいのです
つまり右クリック禁止!ってのさせたいって事か? っていうかそれ403じゃなくてアラートじゃねーの?
右クリックは許可するけど [名前をつけてリンク先を保存] を拒否したいんだろう
右クリック禁止ってアラーとではないです 右クリックで開くと403になるんです 普通に左クリックで開くとちゃんとリンク先に飛ぶ奴です C言語とかでサーバにインストールしたら対応できますかね?
どのみち無理
>>142 ありがとうございます
Cometで検索したらアマチュア無線の会社にヒットしたのですがこれであってますでしょうか?
右クリ拒否とか何がしたい そんなにユーザーから嫌われたいのか
>>190 そんなエサに(ry
>>191 いちいちケチつけんでもいいだろ
出来ないの一言で終わりだ
■質問を書く上で (2) ユーザの迷惑になるスクリプトの質問はご遠慮ください。 (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
用途はjasracとの契約で楽曲の保存が出来ないようにするための処置なので問題はないです
実際にそういうサイトがあるっていってるんだから サンプル程度にそのサイト見せてほしい なんかもうFlashな感じがするけど
>>192 実際に出来てるんだから出来ないと嘘をつくより迷惑になると教えたほうが適切
その場しのぎは日本の悪い文化みたいだな
新しいタブで開くのすら禁止じゃ、えらくユーザビリティを損なうと思うぞ。
違います 右クリックで開いたら403みたいにしたいのです
>>196 いちいち教育してやる必要もないだろ
余計なお世話っていうんだよそういうのは
よくある歌詞サイトみたいなものかね あれならFlashだよ、
開いたコンテンツがプログラム的に作成されてるならともかく 静的ファイルなら無理だろ
>>199 それでも”出来ない”はねーよ、
その前に余計なお世話って教えてもらう側がいう言葉だろ
いや出来ないし 出来るならやり方提示してみろ
出来るって言ってる人は なぜ答えてあげないの
すみません自己解決しました javascriptでは出来ないようですがサーバ側で設定することで可能との事です
出来もしないのに出来そうだから適当に出来るとかいう出来そこないが日本を駄目にしてるんだと思います。
逃げたw これはひどい・・・
ググれで済ますんなら質問者にもそう言えばいいのに
質問スレで騒ぐな餓鬼か
出来ないって騒いでる奴は煽って答えさせようとするタイプ
また出てきたのか黙ってればいいのに JSでHTTP通信できるといってもレスポンスをどうするかはサーバ側の実装による 403はクライアントから出すのか? JSで出来るっていうやつはただのヴァカだろ
発想の逆転で、右クリックの動作ではなく、左クリックの動作を操作すればよいんじゃないの? Aタグのhref属性は無効なページを入れておいて、onclickで正しいページに飛ばせばよいとおもう。 まぁ、FLASH使うのが防御力が高いと思うけど。
ああ、謎が解けた。質問者の質問そのまま鵜呑みにしてたのか それならサーバーサイドでもユーザーサイドでも不可能だ。
>>213 確か HTML5 にそんな感じの要素があったな。実装しているブラウザがあるかは知らないが。
216 :
215 :2011/05/01(日) 14:45:40.24 ID:???
ごめん、勘違い。 独自の右クリックメニューを作る要素だった。
jQuery使ってますが、フォーム要素のどれかが編集されたら呼び出されるメソッド 編集中に呼び出されるメソッド 編集されてるかされてないかを判定するメソッド これらを実装する方法を教えてください よろしくお願いします
>>217 「編集」っていうのは具体的に何を指してるの?
文字が入力されたときとか、ボタン押されたときとか
それぞれにイベントを付与すればいいんじゃないのか
>>218 あ、やっぱそうなりますか。
一気にトリガかけられるかと期待してました。
ありがとうございます。
222 :
Name_Not_Found :2011/05/01(日) 20:47:00.21 ID:Er1l0+FQ
jQuery1.5 $(function(){ $.ajax({ url: 'test.log', ifModified: true, }) .complete(function(jqXHR, textStatus){ alert(jqXHR+"\n"+textStatus); }); }); 無駄な通信を使わないために更新されてる時だけファイルの内容を取得したいのです。 実行するとファイルの内容も含まれてしまうのですが更新されてなければ取得しないでおきたいのですがjQueryでどう書くのでしょうか?
ifModified: trueだからIf-Modified-Sinceになってると思うが気のせいか
225 :
223 :2011/05/01(日) 21:07:44.88 ID:???
226 :
Name_Not_Found :2011/05/01(日) 23:51:52.27 ID:C5H3fqcD
キャッシュを消して再び試したら正常動作しました If-Modified-Sinceを送信しないサーバ対策としてphpスクリプトからヘッダーでIf-Modified-Sinceを送信するパターンではまりました urlの部分をphpスクリプトにして、phpスクリプトからヘッダーを送信すると常にsuccessとなります jpXHR.getResponseHeader('Last-Modified')はphpスクリプトから送ったヘッダーの値と一致するので Last-Modified: Sun, 01 May 2011 14:40:06 GMT問題はないはずなんですが コードは222と同じでurlはtest.phpにしただけです
227 :
222 :2011/05/01(日) 23:53:28.67 ID:???
226は222です
常にそのPHPを介して取るのならもはやJavaScriptとは無関係では。
クリックすると、画像が別ウィンドウで開くのではなく、浮かび上がる動作はどう行なえばいいでしょうか?スプリクトですか?
lightbox
スプリクト(w
jsdoitってどうよ
234 :
222 :2011/05/02(月) 13:18:50.48 ID:???
ありがとうございますこれ以上はPHPの話題になりそうなのでPHPスレに移動して聞いてみます
hoge[0] = "fuge"; hoge[1] = "fuge"; hoge[2] = "fuge"; hoge[3] = "fuge"; hoge[4] = "fuge"; としたいとき for (var i=0; i<hoge.length; i++){ hoge[i] = "fuge"; } とかじゃなくてhoge[1〜4]="fuge"; みたいに簡潔に出来ないのでしょうか?
hoge = []; hoge[0] = hoge[1] = hoge[2] = 100;
238 :
Name_Not_Found :2011/05/02(月) 16:22:34.51 ID:G3Zwi9ee
hoge = [100,100,100]; の方が楽じゃない
まーどっちにしろ100個ぐらいある配列じゃ
>>236 の方が簡潔になるわな
>>236 JavaScript 1.5+ でなら
Array(5+1).join().split("").map(function(){return "hoge";})
と書けないこともないが、素直にfor文で書くのが吉
>>240 × JavaScript 1.5+
○ JavaScript 1.6+
242 :
236 :2011/05/02(月) 16:33:51.83 ID:???
やはりそうですか 皆さん色々と親切にありがとうございました
>>236 それが正攻法とは思うが。
var hoge = Array(6).join('fuge,').split(',').slice(0, -1);
244 :
243 :2011/05/02(月) 16:39:31.35 ID:???
すまん、リロードすれば良かった。
hoge[0..100] = 100; alert(hoge);
246 :
Name_Not_Found :2011/05/02(月) 16:45:38.22 ID:G3Zwi9ee
SyntaxError: missing ] in index expression
javascriptからRubyスクリプトを起動させればおk
むしろD言語をブラウザで動かそうぜ
<button onClick="hage()";> <tr> <td id="hoge"></td> </tr> function (obj) { obj.style.backgroundColor = "#FFFFFF"; }
250 :
249 :2011/05/03(火) 02:13:29.27 ID:???
ああああー、途中で書き込み押してしまいました <tr> <td onClick="hage(this)"></td> </tr> function hage(obj) { obj.style.backgroundColor = "#FFFFFF"; } とtdのbackgroundColorを設定した後、この設定を消去して<td>の背景色を消去したいのですが 何かいい方法は無いでしょうか?
消去って意味になるかわからんけどtransparentでいいんじゃないの
function hage(obj) { obj.style.backgroundColor = ""; } これで解決 難しく考えず単純に考える
ありがとうございます!
× style.backgroundColor = ""; ○ style.removeProperty("backgroundColor");
オフライン(file:///から始まるアドレス)で外部テキストファイルを読み込む方法はございませんか?ActiveX以外で。 メインブラウザがIE意外なのでオフラインでもajaxで読み込めると思ったんでけどできませんでした
258 :
Name_Not_Found :2011/05/03(火) 12:21:44.93 ID:fq7rglG1
読み込むのは自分のPC内のファイルです
>>256 IE 以外はセキュリティをないがしろにしてると思ってる?
利用用途が分からな以上なんとも言えない・・・
printf("%daaaaaa", 2000); フォーマット済みの文字列を出力する方法ってありますか?
javascriptでは'\n'と書いてもクロスプラットフォームで改行されますか? "\n"と書かなくても問題ないですか?
>>261 そもそも JavaScript には文字列を出力する手段がないw
>>254 前者は仕様で認められている上に element.style.backgroundColor は削除できない。(仮に可能だとしても削除したら element.style.backgroundColor を変更できなくなる)
つまり、正解は反対。
>>266 wwwwwwwwwwwwwwwwwwwwwwwwwww
ここまでやらないと実装できないのですね
諦めます
>>256 ,258
XMLHttpRequest はhttpプロトコルのための仕組みなんだから file:/// で動かなくて当然。
例えば、file:///C:/test.html で 200 OK とかWebサーバでもない OS が返してくれると思う?
動いたとしても「IE 以外」なんてひとまとめに括れる話じゃない。(仕様外の動作)
http://www.w3.org/TR/XMLHttpRequest/ >>268 要素が対応しているのか、の定義が曖昧すぎる。
DOMツリーにあるかなら getElementsByTagName で出来るし、プロパティやメソッドチェックなら in 演算子や typeof 演算子を使えばいい。
たとえばIEではhtml5の一部の要素たとえばprogressやmaterなど対応してないです html5の要素を一覧にまとめて、その中で特定のブラウザでページを開いたときに未対応要素が何かを調べたいのです
>>265 Element.style は、CSSStyleDeclaration だから削除できると思うけど
CSSOM だと空文字列のセットはデイファクトスタンダードに追従して removeProperty に相当するって定義になるみたいだけど
まだ Editor's Draft だし現状では定義されてるとは言い難いかと思う
>>271 ごめん、「仮に可能だとしても削除したら element.style.backgroundColor を変更できなくなる」は勘違いだった。(仕様をよく読んでなかった)
ただ、element.style.removeProperty は GC11, Fx4, Op11, IE8 で期待通りに動作しない。IE8 に至っては element.style.removeProperty が undefined
http://jsfiddle.net/wxFhr/4/ removeProperty も CSSOM 規定だからどちらを採用するかは五十歩百歩な気がする。
274 :
272 :2011/05/03(火) 15:56:15.34 ID:???
何度もごめん。element.style.removeProperty('background-color'); なことに今気がついた。使い方を勘違いしていただけでした……。
http://jsfiddle.net/wxFhr/6/ ただ、IE8 では動かないのは事実なので今 removeProperty を採用するメリットは薄いと思う。
element.getAttribute('id') と element.id の違いのようなものかな
idも空文字列をセットしたら駄目だっけ?
IEで実装するならこんな感じで行けるか? CSSStyleDeclaration.prototype.removeProperty = function(propertyName){ propertyName = propertyName.replace(/-./g, function(match){return match.charAt(1).toUpperCase();}); var oldProperty = this.getAttribute(propertyName); this.removeAttribute(propertyName); return oldProperty; }
>>276 id は "Reflecting content attributes" の一つだから null を代入すればいい。
279 :
278 :2011/05/03(火) 18:14:03.23 ID:???
いや、空文字だった。空文字を代入すればいけるね。
>>255 コラお前
不謹慎ゲーム作るような奴だったのか
見損なったぞ
不謹慎とか考えもせず遊ばせてもらってました
http://sakuraweb.homeip.net/uploader/src/up146210.png こんなコード書いてみたんですけど、httpoj.readyState==4の中でも"あ"を拾うにはどうしたらよいのでしょうか
複数のXMLHttpRequestを同時に投げた時、onreadystatechangeのイベントがどのURLに対してのイベントかわからなくなる事があって困っています
httpojオブジェクトに適当なhttpoj._hoge="あ" とかやって参照すれば参照出来るけど
httpojオブジェクトに勝手に値を追加するのはよくない気がするので正しい方法の場合をお願いします
type属性必須って保守性下がるしIEでバグるし不便だ
>>282 httpoj.onreadystatechange = (function(a){
return function(){
if (httpoj.readyState === 4) {
alert(a);
}
};
})(a);
普通に配列使ったほうがいいと思うけど
>>284 ありがとうございます。その方法は目から鱗でした
>>普通に配列
普通に配列を使うという方法がどういう事かちょっと思いつきません
参考までに、その「普通に配列を使う」場合の方法も教えて頂けないでしょうか
変数内に大量の文字列を格納した場合、スクリプトの動作が終了したままでもいいですか? ちゃんとその変数が不要になったら空にしたほうが良いですか?
>>285 よくわからないけど、元々の例で「あ」が取れないのは
後ろで a を書き換えているのが原因なので
配列を作るなりして a を上書きしないようにすればよいのでは? という意味
var a = [];
...
a[0] = "あ";
httpoj0.onreadystatechange = function(){ /* a[0] を参照 */ };
...
a[1] = "い";
httpoj1.onreadystatechange = function(){ /* a[1] を参照 */ };
フィールド名が日本語になってるJSONを処理していて response($.map(data, function(item) { return { label: item.市区町村名, value: item.市区町村名 } })); は動くのですが response($.map(data, function(item) { return { label: item.大字・町丁目, value: item.大字・町丁目 } })); これは動きません。なにか対策ありますか?
encodeURIなど使えばどうだろう? かなり適当だけど。
なるほど理屈はわかりますがJSONで受け取った時点でオブジェクトになってるのですが オブジェクト名を変更することはできませんよね・・・
>>288 ,290
item['大字・町丁目'] では?
>>291 試してみましたがダメでした
ダブルクォーテでもダメですね
もっと具体的に書いてもらわないと何で躓いているのかわからん。
data は妥当なオブジェクトになっているのか?
data が妥当だが、日本語のプロパティにアクセスできないのか?
云々。
>>288 では現象がわからないからコピペするだけで問題を再現できるコードを書いてくれ。
>>291 あ!ピリオド付いてました。
大丈夫です。うまく行きました。
ありがとうございました!
イベントバブリングって利用しない場合は止めた方が、 垂れ流しより処理的効率的に良さそうな気がしますが 実際どうなんでしょう?
jQuery ajax で自分自身(現在のページ)のフォーム値をポストし、ポストバックされた更新後のページを自分自身に投影って 簡単に実現できませんか? 現在サーバーサイドで自分自身にポストする入力ページを作っていますが、入力値が変更されるたびにDOM要素が増えたり減ったりします。 サーバーサイドでページ書き換えしていけば簡単ですがajaxぽく動作させたいです。 要素個別に動作を書いていけばいいんですが、どうせサーバーに送信しなきゃいけないなら、ページ全部を生成させて増えた部分や減った部分だけ javascriptがぬるっと書き換えてくれるといいなと。 ありそうなんですがなかなか見つかりません。
別に document.body.innerHTML に全部を突っ込むとかでも可能では?
>>297 正直、そんな面倒なことをしなきゃいけない設計にする意味が分からない。
フォームのパラメータによってページのどこに差異が生じるかまったく分からないの?
ふつうはあるTABLE要素の中だけとか、あるDIV要素の中だけだとかだと思う。
それならajaxでHTML(の一部)を返させて、変更したいTABLE要素とかDIV要素を$('#target').empty().add(newHtml)みたいにすりゃ良いんじゃないの?
>>297 サーバに送信しないでDOMを書き換えるのがスマートなのでは?
>>298 確かにそれでもいいですね。イメージ的には追加された要素がぬるっと出てくる感じにしたいのですが
>>299 ・項目名
・要素
・要素
・要素
・要素
・要素
・要素
・
・
・
・項目名
・要素
・
・
要素の部分がすべて増減可能なページになります。要素は時にネストして子要素を持ちます。
そして、これで完成したデータはいつでもこの形で再度呼び出して編集しなければなりません。
ページ全体をデータに基づいて表示するサーバーサイドのプログラムがある。
というか、ほぼ完成しているので、それをうまく利用したいということです。
すべてjavascriptで描画させるの手間と大して変わらなければ作ったものをなるべく利用したいと。
>>300 状態はいちいちサーバで保存しなければなりません。
>>301 別人ですが、ニーズはあるんですね。
ああ、そんなの常識、これこれ。っていうほどメジャーなプラグインとかなさそうなので要素ごとにやることにします。
ありがとうございました。
>>270 Firefoxなら、たとえば<a>はHTMLAnchorElementが生成元で
非対応要素だとHTMLUnknownElementになるからそれ見ればいいんじゃないかな
ロード時にあるファンクションを読み込みたいんですが、どう記述したらいいでしょうか?
onload
selectを用いたコンボボックスで、1つのoptionタグそれぞれが複数の値を持つような 良い方法はないのだろうか? optionタグのvalue属性に複数の値をカンマ区切りで持たせ、取り出す時にカンマで splitして複数の値を取り出すのは思いついたけど、他に簡単な方法無い?
309 :
Name_Not_Found :2011/05/05(木) 23:51:08.10 ID:xTkKbSnx
C言語に挫折してjavascriptの勉強ばっかやってたら Cが分かるようになってきた関数の引数と戻り値、 値渡し、三項演算子などCに共通な部分がいっぱいだった。 やっぱプログラムを読みまくって作りまくるのが 一番早く身につくし、忘れにくいな。
プログラミングは負けて覚える
javascriptしたからといって ポインタのポインタとかが解るようになるとは思えない
アセンブラ(情報処理試験のCOMETII)やればポインタも簡単に理解出来る。
JavaScriptにだって参照の概念があるんだからポインタだってそう難しくはないだろ 別言語で同じことはできなくても一つ理解してれば別言語もわかりやすいよ
<dl id="hoge"> <dt>DT</dt> <dd>DD1</dd> <dd>DD2</dd> </dl> で、ddはdtの子要素だと思っていたのですが、$("#hoge").child().text()でdtもddもとれたので、違うのでしょうか。 この場合、どうすればddだけとれますでしょうか。
ポインタなんて覚えてもwebサイトで使いどころ無いのに(笑
なんでwebサイト
netfront系で次のコードを実行するとブラウザが落ちるようなのですが 原因は何なんでしょうか? Object.toString=Object str=Object+1
>>315 jqueryと仮定して
$("#hoge").children("dd").text()
>>315 子要素が何のことなのかまず理解すべき
dtとddは兄弟要素
321 :
315 :2011/05/06(金) 12:00:18.33 ID:???
すみません、jQueryです。 $("#hoge").children("dd").text()の場合、ddをすべてとってしまうので、 あるdtから次のdtまでのddだけを取得したいのですが、 dtとddで関連性のあるclass名を付けておくしかないでしょうか。
322 :
Name_Not_Found :2011/05/06(金) 12:21:59.90 ID:8MULF0W3
javascriptのファイルを外部ファイル化しているのですが、 そのファイルの絶対パスをJavascript内で取得する事って出来るのでしょうか?
>>322 function GetFileName(file_url){
file_url = file_url.substring(file_url.lastIndexOf("/")+1,file_url.length)
//拡張子も取り除く場合は次の行のコメントアウトをはずしてください
//file_url = file_url.substring(0,file_url.indexOf("."));
return file_url;
}
325 :
Name_Not_Found :2011/05/06(金) 13:19:57.59 ID:8MULF0W3
>>323 解説を見るとこれのような気がするので、試してみます。ありがとうございます。
>>324 その関数は、file_urlを渡さなければ行けませんよね?
その、file_urlを生成したいというのが質問の意図です。
>>321 next()とか使えばできるけどclass使った方が楽
>>321 $('#hoge>dd:first-child') とか $('#hoge>dd:nth-child(2)') とか
330 :
321 :2011/05/06(金) 15:02:54.58 ID:???
うわ、ありがとうございます。 動的にクラス名作って、それを使用した方がいいみたいですね。。。 ありがとうございました。
XPathなら可能なんだけどね。CSSセレクタでは限界があるな。
333 :
Name_Not_Found :2011/05/06(金) 15:40:06.37 ID:jvK8d26l
キー入力の検知を document.onkeydown = function(e) { 矢印キーでキャラ移動; } でやっているのですが、矢印の上下キーを押すと ゲーム画面(HTML5のCanvas使用)のキャラだけでなく、 ブラウザのページ(右に出てくるスクロールバー)まで いっしょにスクロールしてしまいます。 ブラウザがスクロールしないようにするにはどうすれば よいでしょうか。
>>321 $('#hoge>dt:first-child+dd,#hoge>dt:first-child+dd+dd') でいいのでは?
>>2 > (5) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
> ※必ず「問題の事象が再現されること」を確認してください。
> 必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
339 :
Name_Not_Found :2011/05/06(金) 16:46:00.12 ID:jvK8d26l
>>338 ありがとうございます。
下のコードでブラウザのスクロールは止まりました。
イベントが伝播を止められるんですね。勉強になりました。
document.onkeydown = function(e) {
activeKey = e.which;
e.preventDefault();
}
340 :
忍法帖【Lv=12,xxxPT】 :2011/05/06(金) 18:11:17.80 ID:tPFGEsah
GW何してたって聞かれたから、JSの勉強してたって言ったら ロリコンかよキメェって言われた 意味わからん
>>341 JSを女子小学生の略だと認知しているロリコンの言う事は気にするな
俺はロリコンでなくただの変態紳士熟女好きだ
おめーJJ好きかよ
素人に毛の生えた程度の未熟者ってことか このパイパン野郎
345 :
Name_Not_Found :2011/05/06(金) 22:05:05.22 ID:qbaKhHK7
Javascriptの勉強してたら彼女ができました。 ありがとうJavascript ありがとう+ JavaScript の質問用スレッド
jquery1.5です
twitterをリアルタイムに取得したいのですが
全てsuccessで返ってきてしまいます
twitterってlast-modifiedを送信しないのでしょうか?
username="適当なユーザー名";
function a(){
$.ajax({
url: '
http://api.twitter.com/1/statuses/user_timeline/ '+ username +'.json?count=3&callback=?',
ifModified: true,
dataType : 'json',
}).complete(function(x,s){
alert(s);
setTimeout("a()",30000); //30秒毎に実行
});
}
347 :
Name_Not_Found :2011/05/07(土) 06:32:11.64 ID:OG8Z85pj
__proto__は実装依存なので使いたくないなと思って X.constructor.prototype === X.__proto__ であることを利用してコードを書いているけど、 上の式がfalseになることってあり得ないよね?
>>346 そこまでわかってるなら何故自分でwgetなりcurlなりで調べない?
Last-Modifiedヘッダは常にDateヘッダと同じ日時を返してるようだから
一旦全部受信するしかないと思うよ
ありえるその1 X.constructor.prototype.constructor = function(){}; ありえるその2 X.constructor.prototype = {};
>>347 function A() {}
var a = new A();
alert(a.constructor.prototype === a.__proto__) // -> true
A.prototype.constructor = {};
alert(a.constructor.prototype === a.__proto__) // -> false
>>347 Object.getPrototypeOf を使えばいいかと。
unitip.jsでnameがtipのaタグtitleに書かれた ツールチップを出しているんだけれど、 他(fnc1)のjavascriptでtipのtitleを書き換えても ツールチップに反映されない・・・ fnc1ではnameがimgspのimgタグのsrcとtipのtitleを変更させてる。 ちなみにimgタグのsrcは上手いこと変わっている。 function fnc1(pic_num){ document.imgsp.src = pic_num; document.tip.title = pic_num; } 要はfnc1実行の度にunitip.jsの関数を実行させれば 良いんだろうけどわからないので教えてください。 ページリロードだと全部も元に戻るし・・・
>>352 onmouseoverを設定した時のtitleになってるね。
”tipがでてから"毎回document.getElementById("unitipmid").innerHTML = newTitle;で変更すれば可能。
一番簡単なのはunitip.js書き換え。
>>353 ありがとうございます。
document.getElementById("unitipmid").innerHTML = sTitle;
を
document.getElementById("unitipmid").innerHTML = グロバール変数;
にしたら何とか行けそうです。
ライセンスは良いんだろうか・・・
ありえるその3 Parent = function(){}; Child = function(){}; Child.prototype = new Parent(); X = new Child();
すいません、初歩的なことなのですがご教示いただきたく・・ jQuery 1.4.4を使っていてCSSのclassにプロパティを追加or削除するにはどうしたらよいでしょうか。 #(".hoge").css(うんたら)と書くとその後に出力したhtml要素については適用されないように思うのですが、 毎回.hoge { うんたら }とCSSを出力するしかないのでしょうか?
なるほど、jQuery以前に最初から機能があったのですね。 どうもありがとうございました。
360 :
忍法帖【Lv=6,xxxP】 :2011/05/08(日) 03:10:49.42 ID:5mfHM9U6
親ノードを取得する時、ブラウザ毎に違いがあるようなのですが そういうのが書いてあるサイトとかありますか?
362 :
Name_Not_Found :2011/05/08(日) 06:56:04.42 ID:huyKqyCt
>>361 >親ノードを取得する時、ブラウザ毎に違いがある
具体的に
364 :
Name_Not_Found :2011/05/08(日) 07:16:59.15 ID:huyKqyCt
document.documentElementの話と clientHeightやinnerHeightの話は、微妙だが別問題な気がする 前者は標準モードなのか互換モードなのかも関わってくるし 後者はブラウザの実装の問題もあるから 綺麗にまとまってるサイトは知らんですごめん
IE9は未だにわかんねぇな
>>120 見ながらやってるがそれでも不良動作多い
俺はchromeの仕様こそが最高の仕様だと思ってるからchromeのシェア100%になりゃいいのに
OSのシェアがwinowsな時点で50%上回る事は無いだろうけど
拡張機能からjavascriptのオンオフも切り替えられない UAもまともに偽装できない これで最高の仕様ねえ(笑
>>366 で、それがどうJavaScriptの仕様と関係あるの?
CSS、javascriptの仕様だったら火狐かなぁ〜 chromeもほとんど同じだけどブラウザ戦争早く終結して欲しい
スレタイ読めよカス
わかんなければ辞めればいいじゃーん
UA云々の人は「拡張機能からjavascriptのオンオフも切り替えられない仕様」とか「UAもまともに偽装できない仕様」というユーザレベルの話をしてるんだろ
>>365 の意図を正しく理解してない
自分の言いたい事を伝えられない365
>>377 UA文字列のフォーマットなら一応RFC1945に定義されているが
どのブラウザも守ってない
偽装云々についてならできようができまいが自由
何でJavaScriptスレでブラウザのアプリケーション仕様の話だと思ったんだろうね?
>>365 ** 誰が読んでも分かるように人に伝える努力をしましょう **
383 :
365 :2011/05/08(日) 14:31:00.92 ID:???
戻ってきたら凄いレスついてた、何かゴメン 作ってる側の話ね。 javascript質問スレだから勝手に作る側の話で語っちゃってたわ そうだよね、ブラウザーって作る側じゃなくて使う側の為に作られてるんだもんね
DOM操作でHTMLを組み替えるのですが、組み替えた後のソースをIEとかで見れないでしょうか? たとえば
<div id="daikon"> 今日の大根は安いよー! </div> をDOM操作で <div id="daikon"> 今日の大根はめっちゃくちゃ高いよー! </div> に変更したときソースを見ると <div id="daikon"> 今日の大根は安いよー! </div> のままなのですが
387 :
377 :2011/05/08(日) 16:18:57.63 ID:???
>>386 >>388 うおおおおおおおおおお!!凄いっ!!!
ありがとうございます!!こんな機能あったんだー!!
ヤバイ感動した、なにこれ凄い
>>386 >>388 さん本当にありがとうございます、何だか物凄い革新が起こりました
本当にありがとうございます。作業効率が何倍にも上がりました
korehahidoi
DOM操作でエラーした時見ないで試行錯誤でもしてたのだろうか そりゃ感動もするな
画像を移動させたいのですが、 imgにid付けて var iti = document.getElementById('ID名').style.right; でCSSのrightを得ようとしたところ、 「reference to undefined property "iti"」 とエラーが出てしまいます。 なぜでしょうか・・・? window.onloadはちゃんとしてます。
それはフォトショップとか使ってやるんじゃねー?
>>397 Canvasだけでやる場合、ちまちま座標変換して描き直すしかないと思う
画像でなくてテキストならmozTextAlongPathってのがあるけど、
Firefox限定で今のところ非標準
>>398 が言うように、PhotoshopなりGimpなりで
円形の画像を用意してからrotateで回すのが一番簡単だと思う
400 :
394 :2011/05/08(日) 20:59:11.32 ID:???
>>398-399 ありがとうございます。
画像ソフトでやってることを再現できればいいんでしょうが、
数学の知識がまるでなく、座標変換もサッパリなので、
アドバイス通り画像ソフトで作った物を使いたいと思います。
非標準メソッドについての情報もありがとうございます。
後々採用されるかもしれないので、そちらも調べてみます。
opacityをいじるのに aList[0].style.opacity = 1; はOKで this.style.opacity = 1; (thisはaList[0].onmouseoverより) がNGなのはなぜ?
>>402 動くはずだけど何故そこに原因があると思う?
>>403 コンソールエラーで「this.style is undefined」って出た
あ、わかった繰り返してるから2ループ目以降で引っかかってるのか。 大変失礼しました。
CMSで見かけるtextareaでtabを押したときにフォーカスを移すのではなく、タブを挿入するという動作は どのようにやるのでしょうか?
>>407 1. selection (IEはTextRange) で選択範囲(カーソル位置),選択範囲前,選択範囲後を取得
2. 選択範囲を Tab に置換
3. textarea.value に代入
409 :
408 :2011/05/09(月) 00:46:12.33 ID:???
一つ忘れた。 4. カーソル位置を維持するために selection (TextRange) を通してカーソルを戻す
410 :
408 :2011/05/09(月) 00:49:29.52 ID:???
>>397 作れるか試してみるから元の画像をupしてみてくれ
tabが押されたかキーイベントで取得して \tを挿入後return false;のほうが簡単じゃないのか
>>412 「\tを挿入」をどうやるかって話じゃない?
テキストの途中で押されることもあるから Range を使う必要がある
>>408 それだとフォーカスがtextareaから外れない?
初歩的な質問です {hoge:"a", fuge:"b"},"hage" ; という形を変数testに入れたいのですが var test = {hoge:"a", fuge:"b"},"hage" ; とやると失敗してしまいます、どうしたらいいのでしょうか?
>>415 javascript:var a=[{"a":100,"b":200},"hage"];alert(a[0].a);
>>415 var a=[{"a":100,"b":200},"hage"];
alert(a[0].a);
alert(a[0].b);
alert(a[1]);
419 :
408 :2011/05/09(月) 12:57:48.99 ID:???
>>412-414 フォーカスは確かに外れるかも…。
1. keydown を addEventListener
2. event.preventDefault() でデフォルトアクションを抑止
3. selection (IEはTextRange) で選択範囲(カーソル位置),選択範囲前,選択範囲後を取得
4. 選択範囲を \t に置換
5. textarea.value に代入
6. textarea.focus() でフォーカスを戻す
7. カーソル位置を維持するために selection (TextRange) を通してカーソルを戻す
これでいいかな。
細かな見落としは適宜修正してほしい。
絶対それ無駄な処理だよ
<table id="a"> <tr id="a-a"></tr> <tr id="a-b"></tr> </table> のa-aの部分をjQuery一時的に隠す事はできないでしょうか?削除とかではなくて もし無理でしたらjavascriptでも構いません
変数に格納して削除すれば
jQueryならhideメソッド使えばええんちゃう?
425 :
407 :2011/05/09(月) 17:25:10.34 ID:???
自分なりに書いてみましたがどうもうまく動作しません $(function(){ $('textarea').keydown(function(e){ if(e.keyCode==9){ $(this).append("\t"); } }); })
ここってライブラリの質問していいの?
427 :
Name_Not_Found :2011/05/09(月) 17:33:05.71 ID:yy5qssak
回答者をそそる内容ならOK
>>426 何のライブラリを使っているか書いてくれればOK
430 :
397 :2011/05/09(月) 20:41:07.90 ID:???
431 :
407 :2011/05/09(月) 20:45:07.69 ID:???
出てこないから代わりに名乗っただけ
>>431 代わりに名乗る理由になってないし、既存の回答を無視する理由にもなってない
無視したからうまく動作しない
代わりに名乗ったから本人が出てこれなくなる
>>2 に「メール欄に何も入れない」を入れたらどうだろう?
>>433 そういう2ちゃん的に遊べるところはほったらかしにして自由度が
あるようにしておきたいな。面白いじゃん。
下らねぇJavaScriptの質問はID出して書き込みやがれ vol.87
面白いのは騙っている本人と質疑応答がどうでもいいと思っている愉快犯だけ
どこのPHPスレだよ
ブラウザがvideoタグでMP4形式の動画の再生をサポートしているかをJavascriptで調べる方法はありますか?
>>439 video要素に対してcanPlayType('video/mp4')
>>440 助かりましたありがとう
canPlayTypeを検索したら出てきました 自分で見つけられる検索技術が欲しいです
io.jsの12行目のどこか Google Chrome Developer ToolsでTimerでbreakして調べりゃいいよ
GCDTで調べてみます 動作に必要な3のスクリプトってライセンスが明記してないからカスタマイズして再配布はやめたほうがいいですよね?
446 :
Name_Not_Found :2011/05/10(火) 16:32:39.85 ID:M3xMoyD8
>>443 横レスですが
こういうの書いてもらえると
救われる初心者がいっぱいおりますありがとう
447 :
443 :2011/05/10(火) 17:25:57.07 ID:???
おれ質問しかしてないけど何故だ
「便利なスクリプトを紹介してくれてありがとう。早速使わせて貰います。」ってことなんじゃね?
初心者はライセンスを知らない人が多い 何でも無料で借用できると思ってる
んでもライセンスなんて外部ファイルとかじゃないかぎり滅多に無いっしょ
「ライセンスがない === 無許可で利用できる」ではないって知らない人多いよね
ライセンスを明示してないだけだからな ライセンスがないわけじゃあない
ただの文章にさえ著作権が関与しているのに他人のコードを勝手に借用できるわけないだろ
454 :
Name_Not_Found :2011/05/10(火) 19:29:45.34 ID:M3xMoyD8
456 :
397 :2011/05/10(火) 20:22:07.85 ID:???
>>438 ありがとうございます。
本当に出来ちゃうなんてすごいですね。
計算式がよく分かりませんが、
ググリながら参考にさせていただきます。
457 :
Name_Not_Found :2011/05/10(火) 20:52:19.07 ID:locEFJTG
jQuery+Ajaxでブログパーツを取得して画面に表示したいと思っています。
// 実行しているHTMLページのscript部分
$.ajax({
dataType: "html",
url: "preview.php",
cache: false,
success: function(data){
$("#preview").html(data);
}
});
// preview.phpの内容
$html = '<script type="text/javascript" charset="UTF-8" src="
http://localhost/test/widget.php "></script>';
echo $html;
としているのですが、ajax実行後、何も表示されません。
上記の$html内の<scrpt>タグをHTMLページに貼り付ければ普通に表示されますし、
$html = '<strong>あ</strong>';とすれば「あ」が太字になって表示されます。
もしかしてscriptタグを取得できないのかな?と思うのですが、
もし出来るなら方法を教えてください。
459 :
Name_Not_Found :2011/05/10(火) 21:08:02.09 ID:locEFJTG
>>458 ありがとうございます。
画面全体にtest.php内の「あいうえお」というのが表示されてしまいました。
test.php内をdocument.write('あいうえお'); としているのが原因だと思いますが、
#preview内だけに表示させる事は出来無いのでしょうか?
462 :
Name_Not_Found :2011/05/10(火) 21:29:25.93 ID:locEFJTG
>>460 $("#preview").html(data);
この部分を
document.getElementById('preview').innerHTML = data;
としたのですが、何も表示されません。
ブラウザはIE8とFirefox3.6で試しています
463 :
Name_Not_Found :2011/05/10(火) 22:53:38.66 ID:M3xMoyD8
>>462 > test.php内をdocument.write('あいうえお');
の事だと思うぞ
document.writeはprintやechoじゃないん
464 :
Name_Not_Found :2011/05/10(火) 22:58:09.20 ID:M3xMoyD8
途中で投稿しちゃった んで、やろうとしてることはjQueryのloadメソッドとかでも 問題になるんだけどhtml内書かれてる<script>を実行するかどうかは、 ブラウザによって対応が変わってきます prototype.jsなんかだと、script要素の中味を引っ掻いてきて evalするみたいな感じで対応してた、と思う
canvasの質問はここでいいですか? 専用スレあってもいいと思って検索してみましたが見つからなかったのでここでいいですか?
>>456 線形補間もつけといたからコード理解したらもっかい落としてみれ
どうせなら回転アニメーションまでやったれよ
470 :
Name_Not_Found :2011/05/11(水) 09:30:47.99 ID:p+eNALeN
canvasのアニメーションで質問です 部分的にでもアニメーションさせるときは、基本的に全面再描画するのを setIntervalなどのループで、って理解であってますでしょうか また、canvasのアニメーションってなんでこんなにスムーズなんでしょうか? video要素で再生中の動画を、canvasで作った時計の秒針の上に 角度を合わせてリアルタイムでコピペ、なんてことも出来てしまって、 びっくりしました
>>470 あってる
部分的な部分を消せばいいけど大変だし1コマず1コマ全部消して再描画がいい
>スムーズ
スムーズか?
アニメーションプラットフォームとしては重いほうだと思うけどな
もっとcanvasの深い話題をしあいたいからcanvasスレ立ててよ
>>472 あなたがたてれば興味ある人が来るんじゃない?
テンプレだけでも作ってお願いそしたら立てるから 需要なければどうせスレ落ちる
19時ぐらいまでテンプレ案なければクソスレみたいなテンプレで立てる
>>474-475 あなたがcanvasに関して深い知識をお持ちなのではないの?
「自分はcanvasに詳しくないけど詳しい人同士で話し合ってくれれば嬉しいな」という他人任せなスレ立てだったら誰もついてこないと思うよ。
立てた人について来ると言う発想が理解できない
478 :
470 :2011/05/11(水) 15:03:35.31 ID:uj4WuUJf
480 :
478 :2011/05/11(水) 15:18:53.36 ID:uj4WuUJf
JS質問スレのURLも書けばよかったと今更後悔
批判に耳を貸さず馴れ合いしたきゃtwitterでやれ
負け犬の遠吠えktkr
484 :
Name_Not_Found :2011/05/11(水) 16:27:20.63 ID:uj4WuUJf
>>481 乙です
>>みなさん
本スレの質問で、Canvasに偏り過ぎててアレだなってときは
誘導してあげてくだされ
485 :
476 :2011/05/11(水) 16:32:26.32 ID:???
ただの煽りと思われているみたいだから弁明しておくけど、スレ立てるのならしっかり考えて立てた方がいいとアドバイスしたかっただけ。
「19時ぐらいまでテンプレ案なければクソスレみたいなテンプレで立てる」なんて書いているところが特に不安。スレ立てた人にはある程度責任が発生すると思うんだけど。
このスレでもテンプレ議論で荒れたでしょ。適当な理由でスレたてしたら間違いなく同じことが起きる。
>>481 は自分だけどあれだけで上手くいくとも限らないし。
ネチネチと他人のモチベ下げるのが得意そうな人がいらっしゃいますね
「批判が悪」というなら「批判する人を批判する人も悪」という自己矛盾
canvasの質問は多くないのに専用スレッドたてるほどのことか、とは思った
「批判=荒らし」と思っている人がいるみたいだな
批判と罵倒は違うからなー
批判も含めて一つの意見なんだよな
492 :
397 :2011/05/11(水) 19:28:57.91 ID:???
>>468 ありがとうございます。
これはすごいですね。ビックリしました。
ここまで数的に綺麗な処理できちゃうとプログラムも楽しいんだろうなぁ。
補間アルゴリズムも初耳でした。
昔学校ではやったんでしょうけどね。
canvasはflashの代わりにならないと言われる原因の1つに、
ラスタ画像しか扱えないことにあるようですが、
こういう技術を駆使すればだいぶまともになりそうですね。
本当に参考になります。コード理解するのには時間かかりそうですが頑張ります。
AudioオブジェクトやImageオブジェクトはどうやって削除するのでしょうか? どうも参照情報だけが削除されるようでオブジェクト自体は削除されてない気がします メモリが解放されないので困っています var bgm = {}; function set() { bgm.test = new Audio("test.wav"); } function clear() { delete bgm.test; //bgm.test = null; } function play() { bgm.test.play(); } Chrome+タスクマネージャーで確認してるのですが setを呼び出すたびに使用メモリが増えます(単純に上書きされるわけではない) これはif (typeof bgm.test == "undefined") とかをつければ回避できるからいいのですが clearを呼び出した後にplayを呼び出すと音は出ませんが clearを呼んでもタブ(ブラウザ)を閉じるまでメモリが減りません Imageオブジェクトに関してもだいたい同じ感じです 作成したオブジェクトはどこにあってどうやって消せばいいのでしょうか?
それって、メモリというかキャッシュの削除じゃない? 消し方は分かんないけど
>>493 このスレでもjQueryの質問多いからだろ
いい加減スレ違いだからむこうのスレでやれ
自治厨は氏んでくれないかな
>>494 ガーベージコレクションが動けば削除されるんだろうけど、ガーベージ
コレクションが動いたからといってタスクマネージャ上での使用メモリ
が減るとは限らない。
set()&clear()を繰り返し呼んで、あるところで使用メモリが増えなくなっ
たら、とくに問題ない。
>>494 removeChild() でも消えない?
>>497 批判があるなら具体的に指摘した方がいいと思うよ
502 :
nobodyさん :2011/05/12(木) 05:12:40.19 ID:uOGgNzSB
jqtransformがどうしてもできません。 サイトにあるダウンロードをかいとーして その下にある上と下のスクリプトを フォームにはさんだりフォームにdivタグを入れたりしましたけどできません。。 サイトの下に書いてあるスクリプトになにか追記のようなものはありますか?おねがいします><
可能性かありすぎて答えられないっす htmlコピペし
504 :
nobodyさん :2011/05/12(木) 13:39:56.74 ID:uOGgNzSB
print " <script type=\"text/javascript\" src=\"js/jquery.js\"></script> <script type=\"text/javascript\" src=\"js/jquery.jqtransform.min.js\"></script> <form class=\"jqtransform\" action=\"$script\" method=POST>\n"; print "<input type=hidden name=mode value=\"regin\">\n"; print "<table bgcolor=\"$ent_color\" cellspacing=10><tr><td><table>\n"; print "<tr><td style=\"font size:12px;\">ニックネーム</td><td><div class=\"rowElem\"><label><input type=text size=20 name=id style=\"ime- mode:active;\"></div></td></tr>\n"; print "<tr><td style=\"font size:12px;\">パスワード</td><td><div class=\"rowElem\"><input type=password size=15 name=pw style=\"ime- mode:inactive;\"></div></td></tr>\n"; print "</table></td></tr></table><br>\n"; print "<div class=\"rowElem\"><input type=submit value=\" ログイン\"></div></form> <script type=\"text/javascript\"> $(function() { //find all form with class jqtransform and apply the plugin $(\"form.jqtransform\").jqTransform({imgPath:'img/ '}); });</script>\n"; 解凍してもjquery.jqtransform.min.jsが見当たらないのですがそれが問題でしょうか
それが問題だ サイトの説明が適当すぎる 解凍した中にサンプルHTML入ってるから その通りにやればいいよ
506 :
nobodyさん :2011/05/12(木) 19:46:28.20 ID:uOGgNzSB
サンプルのものは動作しました しかしCGIに入れるとどうしてもうまくできません もう何十時間も格闘しましたがどうやっても無理で タダより怖いものはないって感じです
507 :
494 :2011/05/12(木) 20:08:13.38 ID:???
皆様レスありがとうございます removeChildについてですがDOMを追加してるわけではないので使えなさそうです DOM追加してremoveChildで参照をきって さらにオブジェクトの参照もきった時点でGCされるのかもしれませんが それらしきことを試してみましたが最初と変わらない気がします デバッグスキルが低いためちゃんと確認できてないだけかもしれませんが ちょっともう少しいろいろ試してみます
508 :
Name_Not_Found :2011/05/12(木) 20:14:44.47 ID:806Kyulf
>>501 そのサイト、ちゃんと読んでないけど
audio.pause();
document.getElementById("anywhere").removeChild(audio); // HTMLからの参照を切る。これでGCされる
って書いてある
audioはAudioオブジェクトを参照してる変数なんだから
removeChildしたくらいでGCされたら困るんではないか?
509 :
Name_Not_Found :2011/05/12(木) 20:48:06.53 ID:ITOiWbLu
<script src="foo.js"><p>test</p></script> から <p>test</p> を取り出してエレメントに変換したいんだけど、できるのかな? 拾ってぶち込むだけなら var script = document.getElementsByTagName("script"); document.body.innerHTML += script[0].textContent; でいけるけど、一旦エレメントに変換したものを変数に入れたい。
510 :
nobodyさん :2011/05/12(木) 20:52:24.58 ID:uOGgNzSB
<script language="javascript"> $(function(){ $('form').jqTransform が出力されると <script language="javascript"> 20000 20000function(){ 20000 20000'form').jqTransform になって動作しないみたいでした 原因は多分これだと思います
511 :
nobodyさん :2011/05/12(木) 21:08:36.71 ID:uOGgNzSB
↑ すみませんこれ回避方法はありますでしょうか?
ここはサポセンじゃないのよ
>511 引用符中の $( が、出力前に Perl の特殊変数として解釈されてるのでは? てか、ヒアドキュメント使えし。
すみません、表示しているswfを入れ替えたいのですが
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="test1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="test1.swf" menu="false" quality="high" wmode="transparent" bgcolor="#ffffff"
width="240" height="320" name="" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash"
pluginspage="
http://www.macromedia.com/go/getflashplayer " />
<Form> <Input type="button" value=" test1 ⇔ test2 " onClick=" "></Form>
ボタンをクリックする度にtest1、test2と入れ替わるように表示させるにはどうしたら良いのでしょうか
onClickで
javascript:swapSWF
javascript:changeSWF
だと動きませんでした。何か根本が間違ってるのかな
516 :
Name_Not_Found :2011/05/13(金) 00:58:13.09 ID:OzBLRXHn
質問です。 document.getElementById("anywhere").innerHTML.replace(/h?((ttps?}):\/\/[\w?=&.\/-;!#~%-]+(?![\w\s?&.\/;!#~%"=-]*>))/g, "<a href='h$1' target='_blank'>h$1</a>"); URLをリンクに置換するJavaScriptのつもりなのですが、 TwitterのURLのような/#!/が含まれるURLがうまく置換されず困っています。 どうすればうまくいきますか? よろしくお願い致します。
配列を作る際、new Arrayと[]だとどっちが速いのでしょうか ggってみたのですがページによって書いてあることが違ってて困惑しております もちろんブラウザによって違いはあると思うのですが・・・
>>517 case by case
自分のケースに合わせてベンチ取りな
>>521 だからmycomだのitmediaだのgihyoだの警戒しろとあれほど
原文とは逆に書いてんだよその記者
グラフ見ておかしいと思わなかったのか
>>521 おいおい、「ループを展開」なんて while側は余分にカウンタ変数1個追加して倍の演算量じゃねーかw
それに足算では処理ウエイトが軽すぎで、whileの条件比較ごときの処理が結果に現れてしまう可能性
有るし、んなもんで速いなんて言えるかい。
質問です 今開いてるブラウザのスクロールできる高さを取得する方法ありますか? 最上部から最下部までの高さです
>>523 最早、何の為にループ使ってるか分からないよなw
>>522 ほんまやw
グラフだとリテラルの方が速いw
for(i=0;i<1000000;i++) { //何かの処理 } これを処理が終わったら1秒後に繰り返す方法をご教示ください PHPで書くとこういうやつです for(i=0;i<1000000;i++) { //何かの処理 sleep(); }
↑ バカ回答者発見wwwwwwww setIntervalは処理が終わらなくても次の処理に移るよ?
var i = 0; var timer = setInterval(function() { //ここに処理 i++; if (i >= 1000000) { clearInterval(timer); } }, 1000); //1000ミリ秒=1秒
alertで試したけど、複数アラート出なかったよ?
まぁ1秒より長くなるJavaScriptの処理なんてそんなにないだろう 杞憂だと思うね
function dump() { document.getElementById("dump").value = i; } <button onclick="dump()">dump</button><input type="text" id="dump"> で任意のタイミングに試すか var timer2 = setInterval(function(){ if (i % 5 == 0) { alert(i); } }, 100); とかtimerより短い間隔の監視用タイマー作って試せばいいんじゃね?
>>529 では setTimeout で。
人をバカにするのは控えて代替案を掲示すると皆のためになると思うよ?
>>531 複数出るわけねえだろwwwwwwwwwwwwwwwwwwwwww
なんだお前の環境では↓で同時に出ちゃうのか?wwwwwwwwwwwwwwwwwwwwww
alert(1);
alert(2);
そらそうだ。 alertでOKしてノータイムで次のalertが出なかったってことだろ。
537 :
517 :2011/05/13(金) 23:41:58.38 ID:???
そりゃalertは処理止まるからな alertで試すってのがそもそもの間違い
このスレにはマルチスレッドで動くジャヴァスクリプトを持ってる人がいるのか
本日のお題 シフト演算子を実装してください
setIntervalは setTimeout(function(){ //処理 setTimeout(arguments.callee, 1000); }, 1000); じゃなくて setTimeout(function(){ setTimeout(arguments.callee, 1000); //処理 }, 1000); ということか。 でも、処理終わらなくても次には移らなかったぞ?intervalがかってにのび太。 var timer = setInterval(function () { console.log("start:" + new Date().getTime()); i = 0; while (i++ < 1000000) document.body; console.log(" end :" + new Date().getTime()); }, 500);
endの直後にstartが来るんじゃなかったか sleepのつもりで使うとその点でアウト
function sft(dec, bt, vt) { var tmp = dec; var bit = []; if (vt) { for (var i = 0; i < bt; i++) { bit[i] = 0; } } while (tmp > 0) { bit.push(tmp % 2); tmp = Math.floor(tmp / 2); } if (!vt) { for (var i = 0; i < bt; i++) { bit.shift(0); } } for (var i = 1, j = 0; j < bit.length; i*=2, j++) { tmp += i * bit[j]; } return tmp; } console.log(sft(1000, 4, 1)); console.log(1000 << 4); console.log(sft(1000, 4, 0)); console.log(1000 >> 4);
545 :
Name_Not_Found :2011/05/14(土) 01:27:38.47 ID:eJetqKH3
dojoのライブラリで配列をテーブル表示するようなのってありませんか。 dojox.grid.dataGridみたいなソートとかあんな高性能な機能はいらなくて、 dojo.byId("hoge").innerHTML = dojox.fuga.table({"1行1列":"1行2列", "2行1列":"2行2列"}); で2行2列の表ができるだけってくらいのレベルの。 まあ他でdojo使ってるのでどうせなら合わせたいというだけで 別にdojoじゃなくてもいいんですが。
そこまで仕様策定できるなら作ればいいじゃんw
それくらい作れカス
>>545 3列の表を作りたいときはどう書くの?それ
列が可変なら書き方変えるだけだろ
書き方変える変えない以前にセンスないよな コロンで範囲を表すDSLにもなってるってわけでもないし
>>527-534 なんでこいつらジェネレーター使わないの?
yieldとsetTimeoutでいいじゃん
>>551 型付き配列普通にあるよ
WEBGLに対応してたら使える
>>527 Whileかdo whileでforを括れ。
ループを抜ける処理を忘れるなよ。
>>552 なんでこのスレいるの?
ジェネレーターで済ましたらスレの意味がないじゃん
あよく読んでなかった スクリプトジェネレーターのことじゃないのね
JavaScriptの連想配列っていわゆるオブジェクトですよね?
はい
>>527 var i = 0;
function hoge () {
console.log(i++);
if (i < 1000000) { setTimeout(hoge, 1000); }
}
hoge();
>>560 が正解
setInterval使ってるコードは間違い
setIntervalで並列処理
間違いとか正解とかないだろw
>>560 は長い処理の途中で止まるの?
それとも1秒ずらして並列に行うの?
これしきのコードも理解できないとか
コード見ただけで並列かどうかなんて分かるわけないだろ setTimeoutの実装の中身を見れないなら動作を試すしかない
1000ミリたったら途中でも次の処理を並列で始めるかわからないっていう話だろ
実際にどう実装されてるかはわからないけど キューに入るから順番に実行されるはず まぁsetIntervalでもいいだろ どんな処理するのかは知らないけど何万回も回す処理で そんなに時間かかる処理いれるとは思えないしなぁ
setIntervalとsetTimeoutの違いを理解してない奴が大洲木
実装コードレベルあるいはその先まで理解できてないと理解してるとは言えないよ。 動作だけじゃ理解してるつもりにしかならない。 イレギュラーに対処できないということだね。 だからあれほど僕はアセンブラをやれと推奨してきたのに。 時代遅れだのバカにされたんです。
実装まで理解する必要ある? 仕様を理解するだけでも十分な内容だと思うが…。
釣られちゃダメ
んでどうやってsetIntervalで指定時間後に繰り返し処理を実行するわけ?
1秒置きに同じ処理繰り返すって要件ならsetIntervalでいいやん
>>527 の要件には合致すると思うが
本日のお題 修正マージソートをJavaScriptで実装してください
document.getElementById('ID').innerHTML += "hoge"; タグ内に文字を付け足すときこの書き方は許されますか?
許されなきゃ動かないでしょうに
他所からライブラリをコピペしたらこんなエラーが・・
Uncaught SyntaxError: Invalid regular expression: /(.*)(?)(.*)/: Invalid group
if (script) {
script.src.match(/(.*)(?)(.*)/);
if (RegExp.$3) {
関数だけ使わせて貰いたかったのでどう修正したらいいかわからないです。
どうしたらいいでしょうかm(__)m
ここのページです。
http://css-eblog.com/javascript/js-param-get.html
script.src.match(/(.*)(\?)(.*)/);
>>583 上手く行きましたー
ありがとうございます・゚・(ノД`)・゚・。
おっぱいあなる
javascriptで(フレームとか)他ドメインのサイト開いて そこでjavascriptを実行できますか? 相手のサイトの検索ボックスに文字を入力させたいのです
実行出来たら勝手に送信とか出来ちゃうじゃん
589 :
Name_Not_Found :2011/05/15(日) 19:45:44.32 ID:oormE/uk
特定のクラスだけ文字サイズを変更するのってどうやるのでしょうか? getElementsByClassNameでノードを取得して、 setAttributeすればいいだけかなと思ったのですが、 ie8がgetElemntsByClassNameに対応していないという落とし穴が・・・
>>589 document.querySelector('.classname');
>>589 document.createStyleSheet().addRule('.classname', 'font-size', 'large')
間違えた('.classname', 'font-size:large', -1)
593 :
Name_Not_Found :2011/05/15(日) 20:35:55.62 ID:oormE/uk
自分が持っているJSのリファレンスに載ってないものばかりなんですが、 載ってないメソッドも沢山存在しているということなんでしょうか?
JSじゃなくDOMだから てーかいまだにとほほなんか見てんじゃなかろうな
module domにNodeSelectorが定義されているのにDOMでないと申すか
自分はMDC徘徊してる MDCには自分が欲しい情報がほぼ全てある、ただ英語が読める必要があるけど
>>598 本気で意味がわからない
Javascript APIsセクションにもあるselectors-apiを意図的に無視してんのか
w3cの仕様書にたどり着ける奴が、ページ内検索もしないとか
日本語でぐぐりゃw3cより先に「わかりやすいぶろぐきじ」が出てくるだろ
Ajax、DHTML、HTML5みたいなバズワードを連呼している現実の前で
moduleとして定義されているDOMをバズワードとか、謎すぎる
>>600 ページ内にあるのはわかってるけど、「リファレンスの場所がわからない」という質問に「DOM」が適切だと思えなかっただけ。
JavaScriptに詳しくなくてぐぐり方も知らない人に「DOM」と説明して理解できるとは思えない。
あなたが掲示したように「Javascript APIs」を掲示した方がベターだったかもしれないでしょ。
あるいは「Selectors API」を掲示するだけで良かったかもしれない。
ぐぐってわかる人やW3Cを見つけられる人ならまず質問しない。自分も多分ぐぐって解決できる。
それでも質問してるんだから俺やあなたが「そんなもの見つけられて当然」というレベルではないことは確かだと思う。
そんな人にはより適切なキーワードを与えてあげる必要があると思うんだけどね。
DOM といわれたら DOM Level 3 Core や DOM Level 2 HTML を連想するな
603 :
Name_Not_Found :2011/05/16(月) 00:15:22.40 ID:plxH6zRW
昨日今日勉強始めた超初心者です。 リファレンスは奮発していいものを買ったつもりだったんですけど、 調べ方が悪いのかもしれませんね。 オライリーのやつなんですけどね。
リファレンスより先に買う物があると思うが。
まあ言いたいことは分かるけどな。単にDOMっていうとあいまいっつうか範囲が広すぎる。 このスレに質問に来た人に「JavaScriptの仕様書みろや」って言ってるのに近い。
>>603 ちなみに何の本?
JavaScript 第5版には Selectors API は載ってないっぽいね。
POSTするしかないでしょ クロスサイトでDOMには触れないのでは?
あ、ごめんリロードしてなくて古い話題だった
テーブルにソート機能を付けたいのですがライブラリを使用してないコードってどこかにありませんか?
だから自分で作れっちゅうに
>>611 ライブラリ使いたくないのにソース欲しいって矛盾してない?
ライブラリから機能コピペすりゃいいじゃん
日本語で
>>1 > JavaScript を自ら学ぶ人のための質問スレッドです。
>>2 > (1) 質問にならない投稿はご遠慮ください。(煽り、コード制作依頼など)
俺のためにそのままコピペで使えるコードを探してこい
も
( ゚ω゚ )お断りします
onloadで読めるんですけど、onclickだと読めません。 原因はどこにあるかわかるかたいらっしゃったらお願いします。
onclickのせい
何の事だ・・・。移動してしまうっていうなら、 クリックした時のブラウザが本来する動作を切れとしか言い様がない。
Ajaxの質問です AjaxでHTMLを読み込んで表示させた場合、その読み込んだHTMLから 読み込むスクリプトがある親HTMLを操作する場合 たとえば親HTMの<div id="hoge">を操作する場合 getElementById.parent.document.hogeでいいのでしょうか?
日本語でおk
Ajaxなら普通同じドキュメントでしょ。親も子も無い getElementById.parent.document このコードは何から来たん?
フレームみたいに子要素と親要素みたいな感じになって parent.document.getElementById('hoge')になるのかなと すみません、その記述めちゃくちゃでした
その場合で言う「親」の'hoge'を操作したいのなら そのまんまdocument.getElementById('hoge')とすればおk ただしinnerHTMLに<script>要素を仕込んでも動作しない問題があるので注意
>>621 読み込まれた html の Javascript は実行されない
ということは読み込まれたHTML用のJavascriptを読み込むAjaxがある側に用意しておけばいいってことですね!
お前頭良いなと思ってしまった
用意しておくっつーか 読み込む毎にそれに応じたJavascriptファイル呼び出したほうが利口だとは思うが
>>628 UIとしては愚か
何か押すたびにサーバーに取りに行くようでは話にならない
呼び出したhtmlに<script>があるんだろうから、そこだけ切り出してevalでいいじゃん。 1回は通信しないといけないなら一緒にしておけばいい。
何か今日は為になるレスが多い
某社製のwebmail メール一つ開くたびにリクエスト投げるし そのくせ複数のメールを開けないから一個一個確認するしかないし スレッドごとにまとめてくれるわけでもないし Ajaxでやってはいけないことを凝縮した感じだったな
eval するぐらいなら外部script化して createElement で読み込んだ方がいい。
>>633 通信終わってまた通信か
嫌んなるなそれ
>633 お前頭おかしんじゃね? こういうときにeval使わないでいつ使うんだよ こういうときにeval使えるのがスクリプト言語の良さだろ
このスレ見てるとXSSの身近さが実感できるな
eval を偏重してるやつは strict mode も知らないんだろうな
ES5のstrict modeは宗教の域だから深入りしない
呼び方からして魔女狩りじみてますね
eval is evil といわれる理由ぐらいは理解した方がいいと思うがな 自分だけで eval を使う分には問題ない(こともある)が、他人に「eval を使え」とむやみに勧めるもんじゃない
速度とセキュリティとスコープの他に理由があんのか
最優先にすべきはセキュリティだからなー
関係ないけどevalで文字列をコードとして扱うのってdocument.writeみたいで何か嫌じゃね
innerHTMLを使いまくる奴がdocument.writeを嫌う理由はないな
jsしゃないけどcfgファイルとかで 60 * 24 * 356 とか書いてevalしてるな
356が気になって眠れない
document.writeってinnerHTMLみたいでなんか嫌じゃね
document.writeはJS1.0から存在するDOMレベル1標準だぞ 最近HTML5にひろってもらったinnerHTMLごときとは格が違う
document.write は XHTML で使えないから理由として考えられなくはないが、XHTML で innerHTML ってのもなあ…。
XHTMLで使えないなんて初耳だわ 世の中のライブラリの半数ぐらいが死亡するじゃん
そりゃ text/html を使ってるからだろ 正式には使えないし、仕様にもあるから確認してみ
evalもwriteもinner*も嫌だ
XHTML で createElement も嫌
textContentとかnodeValueとかでやるの?
textContentとか要らんだろ
textContentはDOMに12あるノード種全てに定義される強者だぞ ほぼ要素のみ、どころか特定の要素でとれなかったりする脆弱なinnerTextとはレベルが違う
>>653 XHTMLでうごくライブラリなんか見たことない
ブラウザがHTMLとして解釈しているだけ
名前空間を扱えないjQueryで一生懸命XML処理しているのがいるが
かわいそうだからせめてJSONにしとけと言いたくなる
jQueryをJSONってどういうこと?
>>661 もうちょっと質問内容をまとめてから質問した方がいいと思うよ
IE9 でようやく XHTML が使えるようになったかな IE8以下を切り捨てるまで時間はかかるが一歩前進だ
IEが対応をさぼったおかげでJSONが普及したんだろうなあ
JSONが普及したのはJSONPとの絡み、クロスドメイン通信のため XHTMLとの直接の関係はないと思う もし仮にXHTML 2.0が出ていたとして XLinkで多方向リンクや制限付きリンクが可能だったかもしれない XFormsを応用すれば受信データをスキーマでフィルタリングして scriptや@oneventなど不要な部分を自動で取り除けたかもしれない 夢はあったんだよね、最初だけは
いや、単にXMLのハンドリングがめんどくさいからだろうけどねw
JSONが流行り出したのはYahooがサポートしたからだろ
ウィキペディア見たら2001年からJSONあんのな Yahooが2005年、Googleが2006年に提供開始 この辺からJSON/JSONP記事が増えたのは記憶にある
HTTPのPUTやらDELETEやらがまともに使えないのを考えるに いかにシンプルに設計するかという視点は重要だと思う XHTMLにはそれがなかった
普及期はな だが今のHTML5がシンプルかと言うと疑問 JSONPもAjaxもURLハッシュの#!も シンプルさに耐えきれなくなったハックから来てるわけで
亀だが、eval()は簡単にのっとれるんだよね ずっと前にeval()がのっとられてないか調べる話題があった気がする とりあえずjQueryとPrototypeとjson.js見たが、何も対策はないな jQueryはJSON.parseがなければnew Functionで返してたが 今FirefoxでやってみたらFunctionものっとれてわろた ま、心配してもキリがないけど
のっとれるって何? 上書きできるってこと?
んで結局XHTMLってなんだったんだ
_blankを無くした時点でゴミだった罠
むしろ _blank がゴミ
純粋なxmlとしてhtmlを最構築しようとしたが、仕様や使い勝手にムリがあった そこに、不満を持ったメジャーなIT企業に、次期htmlの仕様策定の主導権を奪われて今に至る...
とーしろーです。 a.htmlのデータを新規で移るb.htmlに簡単に送る方法ありませんか? CGIとかPOST,GETを使わないといけないんでしょうか。。 お願いしますorz
日本語でおk というよりCGIとPOST,GETを混在してる時点でよくわかってないんだろうな
>>677 Ajax, XMLHttpRequest
CGIだろこれは
画像を何%読み込んでるか取得する方法ってありませんか? Flashゲームでよくあるローディングの%表示のあれです
初歩的な話で申し訳ありません。jQueryで $("#address1").autocomplete({ source: function(request, response) { 〜中略〜 }, open: function() { $( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" ); }, close: function() { $( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" ); }, change: function() { // イベント処理 } }) こんな感じでオートコンプリートをやってみました。 ここまでは正常に動作しています。 オプションの change: のタイミングや動作を知りたくて ここに // イベント処理 alert(event.currentTarget.nodeName); と記述しましたが、アラートが出てきません。jQueryオブジェクトでないので当然な気もします。 この場合、どうやって記述したらいいでしょうか?
> (5) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。 > ※必ず「問題の事象が再現されること」を確認してください。 > 必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
>>684 あ、これで動くはずなんですか
ありがとうございます
もう少しためしてみます
>>684 は動作するはず「ない」といってるみたいなんだが
空白区切りでデータを渡す仕様でしょ。オブジェクトを渡して動くとは思えないけど。 プラグインのURLぐらい書いた方がいいよ。 それと省略するのは構わないけど、省略して再現されることまで確認してね。
どうも不適切なコピペで申し訳ありませんでした。 ちょっといじったら動いてしまいました。
691 :
Name_Not_Found :2011/05/18(水) 23:37:23.11 ID:2biSeZJN
すみません。 多次元配列について、どうすればよいのか行き詰まってしまいました。 var optionTexts = []; $("ul li").each(function() { optionTexts.push($(this).text()) }); alert(optionTexts); 出力結果 [1000, 1001, 1002] jQueryを使って上記のスクリプトによりli要素から配列を取り出す事まではできています。 さらにこれを、li要素のtitle属性やidなどから取り出して、多次元配列にしたいと思っています。 希望する結果 [1000, title1, id1],[1001, title2, id2],[1002, title3, id3] これにはfor文などを使うのかと色々ためしましたが、なにぶん初心者で… お願いします。
pushに配列を渡せばよい 属性値の取り方はjQueryのリファレンスのAttributesの項から探せばよい
693 :
Name_Not_Found :2011/05/19(木) 00:45:00.70 ID:xbdVWeTq
フォームでpostするのをボタンではなく、テキストリンクで行いました
IEやchromeでは正常に動作するのですがfirefoxだけ動きません
firefoxのjavascript・on/offも調べたのですが関係ないようです・・・
画面右側の「地域別で調べる」です。
http://goo.gl/0DIxM ソース上部に<!-- 質問中 -->と書いておきました、よろしくお願いします
※ post先には有料登録して許可をもらっています
ブラクラ!
window.Post = function (tiku) { document.form01.tiku.value = tiku; document.form01.submit();} 一応動くけど、form関係は詳しく知らないけど、document.”name名”ってのは仕様でOKなのかな? やるならByNameかByIdで要素指定するかな。
>>695 form[name] の仕様は HTML5 に含まれるけどクロスブラウザが完全ではないし、使用すべきじゃない
DHTML時代の名残
698 :
693 :2011/05/19(木) 01:08:28.03 ID:xbdVWeTq
>>695 ありがとうございます、無事firefoxでも動作しました
>>697 アドバイスありがとうございます、今後は別の方法も考えてみます
ByNameこそ遺物だろ
<div id="hoge"> </div> という場所に function hage(){ document.getElementById("hoge").innerHTML = "<iframe name=\"fuge\"></iframe>"; } と、スクリプトで追加した場合 if(条件式)で↑の<iframe name=\"fuge\"></iframe>が追加されてたら実行されるような条件式を作りたいのですが ()の中にはどう記述したらいいのでしょうか?
条件式いらないだろ document.getElementById("hoge").innerHTML = "<iframe name=\"fuge\"></iframe>"; の後にやりたいこと続けてかけばいいじゃないか
そのifは他の関数に使う感じなんです 記述してませんでした。 すみません
出力するiframeにnameだけじゃなく同名のidも振る var fuge = getElementById("fuge") || null; if (fuge) { 処理 } とか まぁやり方は色々ある 単純に関数呼ぶ順番を決めとけばいいならそうしてもいいし
× var fuge = getElementById("fuge") || null; ○ var fuge = document.getElementById("fuge") || null;
"<iframe id=\"fuge\"></iframe>"
>>704 || null;
ここには何か深い意味があるの?
何故に? document.getElementById("fuge")で要素取得出来なきゃnull帰ってくるのに?
firebugがおかしかったようだ もう1度やったらエラー出なかったね || nullはいらないわ
下記JSONデータへアクセスしたいのですが、 { "items":[ { "title" : "2011", "menu" : [{ "header" : "header-1", "photos" : ["00.jpg","01.jpg","02.jpg","03.jpg"] }]}]} 第一階層へは以下で行けました。 $.getJSON( "json.php", null, function(data, status) { var group = data.items; $.each(group, function(i, item){... しかし、以下ではその下位層へアクセスできませんでした。 var menus = group.menu; 下位層へアクセスするときの記述をご教示ください。 どうかよろしくお願いします
配列も含まれてるぞ? group[0].menu
早速のご教示をどうもありがとうございました。 配列のターゲット指定がなかったのですね、以後注意します。
>>708 >>709 逆の場合は必要なんじゃね?
if(!fuge)の時とかはvar fuge = document.getElementById("fuge") || null;とnull必要だと思う
>>713 ___ ・・・・・?
/ ― \
/ノ (●) \
|(●) ⌒) |
| (_ノ ̄ /
| /
\_ ⊂ヽ∩\
/ (_ \\
| / \_ノ
>>713 document.getElementById("fuge")の結果がnull若しくはElement
document.getElementById("fuge") || null;
これはfugaの結果がnullの時nullを返す
まったくもって意味が無い
あれか釣りか
716 :
Name_Not_Found :2011/05/19(木) 13:24:33.23 ID:vFD7Jpb/
誰か作ってください。 項目のselectを、クッキーに保存して、読み込むスクリプト。
能力もなければ努力をしないやつはカエレ
>>2 > (1) 質問にならない投稿はご遠慮ください。(煽り、コード制作依頼など)
質問じゃねー、依頼じゃー
720 :
Name_Not_Found :2011/05/19(木) 17:41:40.13 ID:vFD7Jpb/
ええ、わかんない奴に努力しろっての?ひどいなあ。 javascript<-- function read() { なんとかかんとかのソース } function write() { なんとかかんとかのソース } --> <body> <SELECT name=cook><OPTION value=1 selected>ソース</OPTION><OPTION value=2>塩</OPTION><OPTION value=3>しょうゆ</OPTION> 一応、ここまで作った。あとはわかんない。
努力する気がないなら諦めろ
722 :
Name_Not_Found :2011/05/19(木) 17:53:26.71 ID:vFD7Jpb/
一番簡単に流用できそうで、わかんない人でも理解できそうなサイトを教えてよ。
> ええ、わかんない奴に努力しろっての?ひどいなあ。 わからないから努力するんだろ
あほーちえおくれ
725 :
Name_Not_Found :2011/05/19(木) 17:58:48.15 ID:vFD7Jpb/
あともう1つ、 10ページくらい用意しておいて、クッキーによって前回きたページを返すこと、できますか?(設定のない人はふつうのページを返す)
727 :
Name_Not_Found :2011/05/19(木) 18:02:11.71 ID:vFD7Jpb/
1から勉強するサイトじゃなくて、サンプルをそのまま載せて使えるとこ教えて。
728 :
Name_Not_Found :2011/05/19(木) 18:04:42.62 ID:Cpa/i73F
子ウインドから親ウインドをリロードしたいのですがどのようにすればよいでしょうか? 子ウインドの送信ボタンを押すとpostでサーバ側のDB操作を行います。(子は閉じられます )このときに親ウインドを更新して最新の表示を行いたいのですが、どのように親をリロード するのか方法がわかりません 環境はJavaサーブレットです。post後にdoPost()で親の更新ができれば 一番いいのですが、可能でしょうか?
730 :
Name_Not_Found :2011/05/19(木) 18:04:58.12 ID:vFD7Jpb/
725だけでいいから教えて。
>>728 今時、window.open なんて使わないし一画面に収まるように変更した方がいいんじゃないかな
732 :
Name_Not_Found :2011/05/19(木) 18:07:05.78 ID:vFD7Jpb/
依頼スレなんてないじゃん。
ここまでひどい教えて君はなかなか見ないなw
734 :
Name_Not_Found :2011/05/19(木) 18:10:49.20 ID:vFD7Jpb/
そんなに役に立たないスクリプトなの?あんまし、使えそうにないな。
ID:vFD7Jpb/ は何が出来る? おまえが期待するものを制作してやるからおまえは俺が望むものを作れ
736 :
Name_Not_Found :2011/05/19(木) 18:13:35.03 ID:vFD7Jpb/
なんでもできるよ。
>>736 何でも出来るならJavaScriptも出来るはずだろうが
738 :
Name_Not_Found :2011/05/19(木) 18:15:42.00 ID:vFD7Jpb/
プログラミング以外ならできるよ。
ではダメだ GAEを使った簡単なサンプルがほしかったんだが
740 :
Name_Not_Found :2011/05/19(木) 18:20:09.12 ID:vFD7Jpb/
他のができるわけないじゃん。他のはもっと複雑だ。
何でお前らこういうバカに触っちゃうの?ゆとりなの?
742 :
Name_Not_Found :2011/05/19(木) 18:23:04.10 ID:vFD7Jpb/
あともう1つ、 10ページくらい用意しておいて、クッキーによって前回きたページを返すこと、できますか?(設定のない人はトップページを返す)
依頼スレなかったら質問スレで依頼していいと思ってるところが完全にお子様思考だな
744 :
728 :2011/05/19(木) 18:27:01.59 ID:???
>>731 言い忘れましたがJavaScriptはかなり初心者です、
thickboxを使用して子ウインドを作成しています。ソース見たところ内部でwindow.openは使われていないようでした。
親のウインドを操作できないのかな・・・?
ヤフー知恵袋に誘導されてるんだからあとはそちらで
746 :
Name_Not_Found :2011/05/19(木) 18:31:58.93 ID:vFD7Jpb/
10ページくらい用意しておいて、クッキーによって前回きたページを返すこと、できますか?できないですか?
748 :
744 :2011/05/19(木) 18:48:18.73 ID:???
>>747 失礼しましたm(_ _)m そして、教えていただきありがとうございます。
onClick="test()" function test(){ うんたらかんたら } このtest関数を2回実行させたいのですがどうすればいいでしょう? うんたらかんたらを2回じゃなくてtest関数を2回実行させたいです
test()を二回呼ぶ
751 :
Name_Not_Found :2011/05/19(木) 21:03:05.33 ID:8cJRgRDY
クッキーも教えろや。
onClick="test();test();" そらあんたこうやで
>>750 onclick="test();test()"だと同時に実行されてしまうらしく
test()が終わったらまたtest()みたいにしたいのですが
書かれた順に実行されるんだから同時はありえない もっと詳しく書いてくれると解決策を提示できるかも
setTimeoutでいいんじゃね。
うんたらかんたら の中に非同期処理が混じってるんだろう
>>756 そんな感じです
うんたらかんたらでhtmlを読み込んでも要素まで読み込むのは全部終わってかららしく
そのtest関数の中ではsetTimeoutで5000ミリ秒後とか設定してもダメでした
うんたらかんたらは
if(htmlが読み込まれてなかったら){
htmlを読み込む;
}else{}
if(htmlが読み込まれてたら){
そのhtmlの要素を操作;
}
onclickで呼び出すのですが、2回クリックすると操作できます
読み込んだのを確認してからtestでええやん
コールバック処理でやる、だな
"htmlを読み込む"のとこで使ってるライブラリの名前は何やねん? めんどくさいからもうこれでええわ var hoge = setInterval(function() { if(htmlが読み込まれてたら) { そのhtmlの要素を操作; clearInterval(hoge); } }, 1000);
フレームの高さは自由に調節できます
762 :
761 :2011/05/20(金) 00:28:06.59 ID:???
書いてる途中で投稿してしまいました・・・・・・。 フレームの高さはユーザーが自由に調節できるのですが この時の表示されてるhtmlファイルは自信が表示されてるフレームの枠のの高さを取得する事ってできますか?
763 :
761 :2011/05/20(金) 00:29:36.96 ID:???
すみません・・・、やっぱりなんでもないです・・・。
765 :
761 :2011/05/20(金) 01:17:52.44 ID:???
すみません・・・、やっぱり枠の高さを取得したいです
766 :
761 :2011/05/20(金) 01:26:52.53 ID:???
すみません・・・
あとはお兄さんに任せん祭
768 :
761 :2011/05/20(金) 01:41:59.07 ID:???
769 :
761 :2011/05/20(金) 01:51:44.61 ID:???
すみません・・・、やっぱり自分でした
強制アフィさせたいのですが<iflame> 直接書いたらバレますよね? そこでエンコードした<iflameをデコードして表示させたいです ついでに乱数とかで5回に一回ぐらい実行する感じで誰かお願いします。 お礼は20%で
クッキーは仕組み自体がアホだからすごいめんどくさかった記憶が クッキー使ってるサイトからコードをまんまコピペして使うといいぜ
>>772 頑張ってみます。ありがとうございました!
AdBlock余裕でした
775 :
Name_Not_Found :2011/05/20(金) 10:50:34.93 ID:CHwqJMiU
javascript<-- function read() { なんとかかんとか } function write() { なんとかかんとか } --> <body> <SELECT name=cook><OPTION value=1 selected>ソース</OPTION><OPTION value=2>塩</OPTION><OPTION value=3>しょうゆ</OPTION> で変えてやってみたけど、 100回はエラー出たわ。
アマゾンとかの強制アフィって禁止されてるんだっけか
AHOO池沼袋いけって
778 :
Name_Not_Found :2011/05/20(金) 11:47:05.27 ID:CHwqJMiU
エラーばっかだ。ハゲ。死ね。
クッキーなんて [write] document.cookie = "afo=hoge"; [read] alert(document.cookie); ただこれだけだろ。何が難しいんだ。
780 :
Name_Not_Found :2011/05/20(金) 13:00:28.20 ID:CHwqJMiU
SELECT name=cookのname=cookが、指定されてないと思うんですけど。
>>779 pathを設定しないとローカルで実行した時に
読み書きできなくなるブラウザがあった。
783 :
Name_Not_Found :2011/05/20(金) 14:50:38.09 ID:o8r8isMx
htmlの属性は普通ダブルで囲むからでしょ そのへんのサイトのソースみてみなよ <div class='hoge'>とかシングルでやってるところや <div class=hoge>のように省略してるところはまず見ないと思うぞ 0ではないけど
strictとかW3Cバリデーションとかにこだわる人はそうなんだろうけど そうでない人にとってはどうでもいい話だな JavaScriptで動的にhtmlソースを出力してもバリデーションには関係ないし 単に気持ち悪いという理由なんだと思う Googleなんかは省略したりしなかったりしてるけど あそこは転送量減らすために減らせるコードは減らすし SEOなんかも気にする必要はないからソースも適当
コーディング規約っていうのは複数人で作業したり、自分のコードを公開して広く利用して貰うためのものだよ 用途を間違えちゃ行けない
[ {"itemCode":91, "itemName":"塩ラーメン", "itemPrice":300}, {"itemCode":94, "itemName":"味噌ラーメン", "itemPrice":290}, {"itemCode":95, "itemName":"豚骨ラーメン", "itemPrice":320} ] こんなJsonデータがあるのですが、あらかじめオブジェクト名がわからない場合 obj[0].itemNameのように要素データ「塩ラーメン」にアクセスするにはどう記述したらいいでしょうか? 最終的にはjQueryでテーブルに入れたいのです
>>787 何か検索条件があるはずだけど、配列を each() で回して探すのじゃダメなの?
あとそれJSONじゃないよ
JSONは日本語をエスケープして入れる
>>787 手元に読み込んだ時点でなんらかのオブジェクトに入ってる筈だから、
アクセスできないって事はないでしょ。
>>783 jQueryはCベースの書き方しろって言ってるし好きなようにしろ
for - in だろ。たぶん。
何の情報を元に itemName を引きたいのか書かないとアドバイスしようがない 何の情報もなしに検索は出来ない
>>795 ああ、そういうことか
プロパティ名がわからないから全てのプロパティを走査したかったのね
for (var i=0;i<rows.length;i++) { var row = rows[i]; for (var filedKey in row) { if (row.hasOwnProperty(filedKey)) { var col = row[filedKey]; } } } こんな感じでいいよ
for in で調べてみます。ありがとうございました。 ほんとうに助かりました。
>>798 あ・・・完璧なコードが!
理解できます!
ありがとうございました!!
海外のサイトでダウンロードしたJavascriptファイルの文字を出力するところに日本語を入れると どーしても文字化けしてしまいます 考えられる原因の候補としては何があるのでしょうか?
文字コード
Javascriptファイルにも文字コードってあるんですか? どうやって設定すればいいのでしょうか
エディタぐらいどこかで覚えてこい UTF8に設定出来れば良い
Sleep sortのJavaScript版で話題が持ちきりかと思ってスレ開いたら...全くねぇしw
ここ質問スレだし
実用的じゃないじゃんwソート対象の最大ms待たされるなんてw
<table> <tr> <th>〜</th><th>〜</th> <tr> <table> とあるのをjavascriptで <table> <tr> <th>〜</th> <th onclick="a()"><form method="POST" action="a_ac" target="a_ta" id="a_id"> <input type="hidden" name="a_n1" value="a_v1"> <input type="hidden" name="a_n2" value="a_v2"> </form> </th> <th>〜</th> <tr> <table> と結構複雑な感じにしたいのですが、どのようにしたらいいでしょう?
DOMで生成するなりinnerHTML使うなりご自由に
800超えたのでテンプレ論議で大物があるようなら今どうぞ。 今回はもうあまり問題ないと認識しているがいかが。
812 :
Name_Not_Found :2011/05/21(土) 09:05:14.23 ID:blMc7+HL
オブジェクトの中に関数を入れているんだけれど、関数自身のポインタって取れる? 具体的には、 var obj = { func: function() { obj.func.value = "test"; } }; というようなコードを書いているんだけど、objやfuncの名前が変わったりしても 問題なく動くコードが書きたいんです。 thisを使うと、この場合this==objになるので、funcの名前に依存してしまうし いい解決方法があれば教えてください。
いい質問だ。
こーりぃはいい質問ばい
arguments.callee = "test" 値の保持なら別にオブジェクト作ったほうがいいかと思うけどな。 再帰実行なら有り
名前付き関数式でよくないかい? func: function f() { f.value = "test"; }
いくない。 IEが名前付き関数式を仕様通りに実装していれば、普通に使えるのだが。
>>812 みたいなケースはなんでおこりうるの?
あとあとつけた名前が気に入らなかったとか単純な理由?
他人のコピペコードをなんか組み合わせたりとか?
オブジェクトなんてのは簡単に渡せるわけだし。そんなとこでしょ。
使える、使えないを行ってる訳じゃない。 名前付き関数式が再帰などで普通に使われていないのにはそれなりの理由がある。
普通に使われていない理由は?
変数汚染とかでしょ?
var f1 = function f2() { }; // IE8- alert(f2); // ECMAScript エラー f1.value = "test"; alert(f2.value); // undefined alert(f1 === f2); // false とまぁ不可解な振る舞いをしてくれる。使えない理由には十分だと思うのだが。
>>816 var hoge = function f () { f; };
alert(f); // IE??
try { .. } catch (ex) {..}
alert(ex); // IE??
そんなの書き直しを間違えたとかJQueryが取れてないとか どっちかじゃないの。エラーは出てないんだろうな。
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> jQueryで動いてるが、そこは分かっているか?
>>827-828 JQueryについて何もしてませんでしたのでそれが原因なんですね。
早い回答ありがとうございました。今からJQueryについてググッてきます。
<div class="entry"> <p>text blaablaa balaa 1</p> <p>text blaablaa balaa 2</p> <p>text blaablaa balaa 3</p> <p>text blaablaa balaa 4</p> </div> 上記のようなHtmlページがあるとします。 この時、 text blaablaa 2の部分のテキストをクリックすれば、 その部分を含め、残りのテキストも全て取得するにはどうすればよいでしょうか? (window.getSelection()).anchorNode.textContent このコードを使うと、クリックした部分のパラグラフは取得できるのですが、 その後のパラグラフ全ても同時に取得したいです。 どなたから分かる人いましたら、どうぞよろしくお願いいたします。
>>831 event.target.parentNode.textContent
833 :
831 :2011/05/21(土) 16:58:19.15 ID:???
>>832 レスありがとうございます!
しかし、parentNode.textContentを使うと、
例えば、
>>831 の 2段落目の text blaablaa balaa2の部分を
クリックしたとしても、 1段落目からすべてのテキストを取得して
しまわないでしょうか?
>>833 なるほど、兄弟要素を取得したかったのか
では、nextSibling が null になるまで取得し続ければいいのでは?
>>834 ヒントありがとうございます!
まず、loopとかでnextSiblingを全て取得して、それらを結合すればいいわけですね。
window.getSelection()).anchorNode.nextSibling.textContent
まず、こういう書き方で次のパラグラフのテキストを取得しようと
思ったのですが、なぜか取得できないというところで詰まっているのですが、
なにか問題があるのでしょうか。
window.getSelection()).anchorNode.textContent
これなら取得できます。
>>835 window.getSelection の用途がよくわからんが、こんな感じ。(未検証)
document.querySelector('.entry').addEventListener('click', function (event) {
var element = event.target;
var texts = [];
while (element) {
texts.push(element.textContent);
element = element.nextSibling;
}
console.log(texts);
}, false);
>>836 わざわざコードを書いてくださり、本当にありがとうございます。
実は、IphoneのWebViewからjavascriptを使うというやり方をやっているため、
タッチした要素を取得するため、下記のようにしています。
NSLog(@"%@",[webView_ stringByEvaluatingJavaScriptFromString:@"(window.getSelection()).anchorNode.textContent"]);
書いていただいたサンプルコードを参考にすれば、うまくできそうです。
ありがとうございます!
見よう見まねでこんなコード書いてみました $trtd = $("<tr/>").attr("id","appended"); for (var i=0;i<flist.length;i++) { $trtd.append($("<th/>").attr("id","appended").text(flist[i])); } $("#tbl").append($trtd); でもちゃんとDOMに追加できません よろしくお願いします
>>812 func: F(function(func) { return function() { func.value = 'test'; }; })
のようにして自己参照するfuncを返す関数Fを書け
ページ内検索スクリプトを組み立てています 一致する文字列をハイライトするためにページ内のテキストノードを取り出しspanなどで装飾して置き換えたいのですが とりあえず作った今の実装は、innerHTMLを使い、間違えばタグの内容まで書き換えてしまいます。 何か良い方法は無いのでしょうか
>間違えばタグの内容まで書き換えてしまいます。 ここが意味不明
例えば <body> こっちに<b>くるな</b>よ! </body> とかあったとき 「にく」をハイライトしたいときに困るということだろ ・innerText <body> こっち<span>にく</span>るな</b>よ! </body> ・innerHTML+工夫正規表現 <body> こっち<span>に<b>く</span>るな</b>よ! </body> 明日までに答えがでなかったらきっと作ってやるからもっと詳しい仕様書いて待ってろ
こういうときにRangeを使わずにいつ使うんだ
>>838 ですが、とりあえず変数に格納せず直接追加する方法とってみます
そもそも変数に入れるのが間違いだったんですか?
anで検索したら、<sp<mark>an</mark>>になるって話だろ
TEXTNODEをsplitTextすればいい話
>>842 のは、マークアップされている部分は意味が切れている場合がほとんどだから、
タグをまたがってまでハイライトする必要は実用上あまりなくて、
実装の面倒さとメリットが釣り合わない感じ(displayがblockかinlineかとかも見ないといけないからな)
>>842 正規表現をよく勉強して工夫すればコードもシンプルで理解しやすそうです。
>>843 rangeは初めて知りました。
range.toStringのマッチ結果からrangeを得る部分が難しいですね・・・。
やはり簡単にというわけにはいきませんね。
最初はノードをまたいだ装飾は諦めてchildNodes[i].nodeType == 3に対してのみ置換え処理をしようと思います。
JavaScript(YUI,jQuery)を使用したページを作ったのですが、 なんとIE6ではまったく動作せずメチャクチャなページになることが分かりました。 ・・いやぶっちゃけIE6とかどうでもいいのですが、<noscript>タグのような感じの、 古いブラウザでみるなよ!的なおまじない記法はあるのでしょうか? 「バージョンアップしろや」メッセージを出すなり、別ページに飛ばしてしまうなりしたいのですが。
document.write()の前後にdocumen.open()とdocument.close()を使うべきですか? またwriteとwritelnはどちらを使ったほうがいいのでしょうか?
>>849 わかりやすさを求めるなら open, close した方がいい。
write と writeln は機能が異なるので用途に応じて。
URLにjavascriptコード書いたら実行されるのはなぜなんでしょうか?
close 後か open 前の document で write したら close は必須でしょう?
>>846 Rangeに慣れろ
ツリーベースのDOMで枝をまたげる唯一のインターフェイスだ
innerHTMLで書き換えたら、中のイベントリスナーも根こそぎ消えるわ
孤児ノードが生まれてメモリーリークの原因になるわ
XSSを考えなきゃならんわ
いいことないぞ
hoge.style.width="100px"; hoge.style.height="100px"; hoge.style.border="1px"; みたいなやつを延々と書くのがいやなんですが ライブラリを使わないで hoge.style({width:"100px", height:"100px", border:"1px"}) みたいなまとめて指定する書き方できませんか? ありそうでないのかなぁ?
>>856 ありそうでないの意味がわからんが、CSSStyleDeclaration.prototype.setProperties でも定義したら?
858 :
856 :2011/05/22(日) 18:51:47.22 ID:???
>>857 自分で作らないとだめ=ありそうでないということです
やっぱないんですかね?
もう少し待ってみてなさそうなら
おとなしくおっしゃるとおりに定義することにします
with (hoge.style) { width="100px"; height="100px"; border="1px"; }
862 :
856 :2011/05/22(日) 21:23:37.89 ID:???
あーなるほどー with使えばだいぶスッキリしますね 参考になりますどうもありがとう
携帯でJavascriptを有効にするにはどうすればいいんですか?
このスレにいる人ってjQuery素直に使えますか? なんか気持ち悪くて(主に文法が)最高峰のJavaScriptFrameworkとわかっていても敬遠してしまいます コード見てるとなんかスッキリしません MooToolsやprototype.jsはそうでもないのですが jQueryはなんかおかしいというより不思議な感じがするのは自分だけでしょうか? jQuery並の性能でMooToolsやprototype.jsが進化すればいいのに開発速度からしてももう廃れ気味ですね
とりあえず君にはJQueryを超えるものがつくれないということは明白だ
嫌なものは使わなくてもいいじゃん 煽りとか嫌味とかそういうのじゃないよ
>>864 jquery-1.6.1.js のコードがすっきりしないのか、jquery-1.6.1.js を使用したコード($ とか jQuery.ajax とか)がすっきりしないのか、で大分視点が変わってくるな。
868 :
864 :2011/05/22(日) 23:27:21.56 ID:???
ごめんなさい コードってフレームワークのコアソース読んでるわけではなく チュートリアルとかサンプルソースですね 自分は職業プログラマーではないですが プログラマー向けではないようななんか不思議な印象をうけるんです 今までのプログラムに慣れてると吐き気が 職業プログラマーにもなるとすぐに適応できちゃうんですかね
その程度の違和感なら使ってるうちに慣れると思う
jQueryはメソッドチェーンに価値を見出すかどうか 中身はDHTMLの延長にすぎず、DOMをうまく扱えてない プラグインが多いので手っ取り早いが競合・衝突も多く、使い捨て以上のものにはならない チームメンバーのレベル差を吸収して最低限のレベルにまで底上げするためのもの
DOM、組み込みオブジェクトを拡張してるMooTools、Prototypeがとっつきやすいってことなんだろうか。 「気持ち悪い」とか抽象的でいまいちよく分からんのだけど。 prototypeてのは拡張するために公開されてるわけだけどDOM、組み込みオブジェクトを拡張するのは ライブラリ、フレームワークって性質上どうなのかね。jQueryが圧倒的シェアを占めるのはこのあたりでしょ。 意見を求めるのなら、気になるところをもう少し具体化した方が良い。
prototype.jsとかは一定以上の技術力ないと使い切れんのに対して jQueryはおばかな子でもそれなりに見た目上綺麗な事ができる そこらへんもあってシェアが違うんじゃないの? JSって元々どちらかといえばフロントエンドのコーダとかの人がやってたから 数は違うと思うが・・・。あ、別にばかにしたりとかそういう他意はない。
悪いことは言わん、別のを探せ
IEの場合7以降は、IMEによってはTextエリアでの かな入力が上手く動作しなかったりして 嫌々ながらIE6使ってるケースも多いんだよなぁ。 加えて金融機関がIEシリーズの認証のみ 対応だったりのコンボでIE6に縛られるケース。 でも、さすがにそろそろIEは特定の認証の時だけ 使うとして、メインはIE以外の最新ブラウザにすることでIME問題回避した方が幸せになれるとは思うけど。
えらく時代後れな書き込みだな
別にサービスなんか使わないからIE6でページ内容だけ見られりゃいいの へったくそなスクリプトなんかいらんからまじでおねがい
JQueryの件です 動的に<img/>を複数生成したあとで、 for (i in items) { $("#box01").append( $("<img/>").attr("src", items[i] ) ) } var box01 = $(element); var kidsimg = box01.children(); そのすべての<img/>にeachで処理を続けたいのですが うまく見つけられません。ご指摘ください。 kidsimg.each(function() { var child = $(this); var link = '';............... たとえば if(!child.is('img')){ if(child.is('a')){ child.addClass('imgLink'); link = child; } child = child.find('img:first'); } または var childWidth = child.width(); if(childWidth == 0) childWidth = child.attr('width');.......
879 :
Name_Not_Found :2011/05/23(月) 09:00:52.45 ID:kJafEAkS
ある自前オブジェクトをnew した時点でプログラムが終わってるようなんですが、Firebugを含めほかのブラウザでもエラーが出てません。 これってどういう理由なんですかね?
880 :
Name_Not_Found :2011/05/23(月) 11:05:56.24 ID:qfmAuC1L
881 :
Name_Not_Found :2011/05/23(月) 11:13:57.21 ID:4JiKmU1C
リアルタイムにtiwtterからツイートを取得するライブラリってありませんか? webページを表示したら更新せず、常に最新のツイート(webぺージを表示した後のツイートも含む)を取得できるもの
884 :
Name_Not_Found :2011/05/23(月) 17:42:21.68 ID:qfmAuC1L
>>883 ストリーミングAPIとか使えば
JS関係ないけど
三項演算子で var a = 2; a = a > 5 ? 5 : a; こんな感じに書いてるのですが これはif-elseでかくと if (a > 5) { a = 5; } else { a = a; } という具合になります あきらかにelse部分がいらないのですが もっとすっきりした書き方はありますか?
886 :
Name_Not_Found :2011/05/23(月) 19:36:07.18 ID:qfmAuC1L
if(a > 5) a = 5; じゃいかんの?
三項演算子で省略はできない。 一行で書きたいならこれしかないだろうね。 if (a > 5) a = 5;
>>884 これは知らなかった
素晴らしい用語に感謝する
889 :
885 :2011/05/23(月) 19:40:46.32 ID:???
>>886-887 ありがとうございます
a = a > 5 || a;
だとtrue || aになりますが
これに類する書き方が出来ないかなと思いまして
省略できないとのことなのでこのままでいくことにします
890 :
Name_Not_Found :2011/05/23(月) 19:46:03.74 ID:qfmAuC1L
まあ、三項だからね
JS関係ないけどどっかのLLに省略記法があった希ガス
どっかのLLにあってもJSで使えなきゃ意味が無い・・・ Cかなにかに a = a < 5 ? 5; っていう書き方ができたとは思うけど JSじゃできないし
>>889 a = a > 5 && 5 || a;
だけど、比較して再代入だから
>>886 が一番いいと思うけどな。
ちなみにこれは
>>885 のif-elseと同じ。
難読化プロジェクトスレ
一度代入した変数を書き換えることじたいラムダ的にかっこわるい
a > 5 && (a=5)
数値限定で良いのなら、Cなら min(5,a) とマクロ使うのが定石。
>>898 見て思ったけどMath.minって使われてるんだろうか・・・
使う
var c = Math.min(a, b); Math.min使うぐらいなら var c = (a < b) ? a : b; こっちのがいいって偉い人が言ってた
(a < b) やっぱ条件のとこは()で囲ったほうがいいのかね?
知るかよ、囲った方が見やすいことくらいはわかるだろ
>>902 確かに関数コールだから細かく言えば三項演算子の方が速い。しかし、min() max()は可読性に優れる。
つまり適材適所であって、カリカリにチューニングするループ内等は三項がいいが
変数設定処理みたいな1回通るか通らないかみたいな箇所は、関数で良いのだす。
テンプレ論議(小物)あれば今どうぞ。何もなければ本スレと同じで?
>>902 その2式は違うから
それをすすめた人は偉くない
910 :
909 :2011/05/24(火) 10:42:14.51 ID:???
どうもしばらく試していたら、やはり結合オプションはない様子。 後で別のツールも当たってみようと思います
>>885 a=a.replace(\[6-9]*\g,'5')
一の位が0の場合とかはシラネ
つーか、これじゃ全然ダメだな、誰か正規表現で頼む(^人^)
>>907 >>19 ,433は取り込んでいいと思う
最近、idを晒さない質問者を騙って遊んでいる人が多い
下らねぇJavaScriptの質問はID出してここに書きやがれ vol.87
Index:0〜MAX データ:A,B,C,D,A,D,E... と言う配列があり、重複データを抜き出したい for(i=0;i<=hogeArray.length;i++){ for(j=0;j<=hogeArray.length;j++){ if(i==j){ //同じIndexなのでスルーする処理へ } If(hogeArray[i] == hogeArray[j]){ //同じ値なのでデータ出力する処理へ } } } 説明へ続きます
続きです 上記処理だと[0]の値Aは[4]と同値なので データ出力処理に入る(これは良い) だが、[4]の時に[0]を参照してしまうと、 先程[0]と[4]で出力していたので、出力情報が 重複してしまう。これを回避したい。 また、重複データは2件以上も考えられる。 何か良い方法ないですかね?
>>903 JavaScriptは括弧いらないけど、Rubyは括弧がないといけなかった記憶が。
文法で強制されてるのか、優先順位が直感に反するのかは覚えてないけど。
>>916-917 ・あらかじめ重複要素を削除しておく
・出力情報を配列にキャッシュしておき、既に出力していたら出力しない
一括して出力する方がいろいろ楽だと思う。
920 :
916 :2011/05/24(火) 15:44:13.49 ID:???
配列を一旦ユニークの配列にして、その配列と重複データを含む元の配列とを比較すればいけそうですが、 このやり方だとindexが崩れてしまうので微妙です
>>916-917 var l = hogeArray.length;
for(var i = 0;i < l; i++) {
for(var j = i + 1;j < l; j++) {
If(hogeArray[i] == hogeArray[j]){
//同じ値なのでデータ出力する処理へ
}
}
}
これだけでいいよ
922 :
916 :2011/05/24(火) 15:47:51.37 ID:???
>>919 確かに、出力したフラグを残せばいけそうですね
有り難うございます!
924 :
923 :2011/05/24(火) 16:00:18.08 ID:???
オブジェクトが空{}かどうかを判断するよい方法ありますか とりあえず以下のように考えたんですが、あまりにも・・ var isEmpty = true; for (var i in obj) { isEmpty = false; break; }
>>925 それしかないと思うが、for-in はprototypeたどるぞ
空のオブジェクトを判断しないで済むアルゴリズムを考えるのがスマートだと思うがな
テンプレ議論って結局1に何を載せるとかそれぐらいか?
前スレでこういう意見があって
これは一理あるっていう意見もこのスレで出てたけどどうなの?
>991 :Name_Not_Found :sage :2011/04/26(火) 14:05:06.40 ID:???
>専ブラを使わない場合
>>1 と特定のレス以降が表示される
>専ブラによってもそうだろう
>
>>1 だけ読んで
>>2-4 とか読まない人は多いと思うが・・・
>その為に
>>1 に書くということは悪くないと思うんだが
個人的には旧
>>1 とまではいかないけど、最低限必要な事は1に書くべきだと思う
なので再現可能なコード云々の件は
>>1 にあったほうがいいと思う。
あと、関連スレとかを1に載せる必要って無いと思う。
どちらかと言えば
>>2-4 とかそれ以降向けでしょ。
>>925 Underscore.jsの_.isEmptyのソースを見るといいかと。
>>923 それは不要だと思う。PHPの質問スレでID出す、出さないってスレ別れたけど
結局どっちのスレも荒れる場合は荒れるしどちらで質問があっても回答される。
930 :
925 :2011/05/24(火) 18:14:55.77 ID:???
>>926 >>928 ありがとうございます。ちょっと整理しまして
空オブジェクトを判断しないように考えてみました。
Underscore.jsも見てみました。>925の判定部分を少し厳密にした感じですね。
いろいろ参考になりそうです
931 :
916 :2011/05/24(火) 18:27:47.50 ID:???
ダメだできない…
>>921 それだと2重目のforでi-1より下位のインデックスが参照できないです
>>929 PHPの方は知らないが、荒れる理由を考える必要があるんじゃないか
ID出すルールにしたときに荒れる理由とID出さないルールにしたときに荒れる理由は違うと思うんだが
テンプレ議論の最中のようですが質問です document.getElementsByTagNameのように全てのテキストノードを取り出す方法ってあるのでしょうか?
>>933 XPath で抽出するのが楽です。
var xpathResult = document.evaluate('descendant::text()[normalize-space(.)]', document.body, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
IE8- にも対応するなら自前で再起処理を。
https://gist.github.com/658424
>>932 IDが強制でない板ではどこでも多少なり自演があるからそれが原因で荒れたりはする。
IDを出すことに対するメリットが少なからず無いわけではないが、
それをルールとして必須にする意味はあまりない。
>>934 それCDATASectionもとるからな
>>935 >>923 は必須ではなく推奨。ID出すことによるメリットは認められるのだからいいと思うんだが…。
>>934 あと細かいことを言えば、Function#toStringは
"the syntax of a FunctionDeclaration"を返す
つまりeval((Node.toString())が同じ関数を生み出すか
せめてSyntaxErrorが出ないようにしなければならない
大多数のエンジンはこの点でECMA違反
IDの件、強制でないならいいんじゃないかな
ID出すことで騙りを防止出来ますよ、と注意書きを添える感じ
もともと
>>2 は「こうすると回答されやすいですよ」というアドバイスみたいなもんだし
サイ本 6版、洋書で出てんだね。 早く日本語版出ないかな。
>>936 ご指摘ありがとうございます。調査してみます。
>>938 Node#toString は Google Chrome の Node.toString() === "function Node() { [native code] }" の実装を基準にしていましたが、ECMA に違反しているのですね。
942 :
Name_Not_Found :2011/05/25(水) 09:37:23.95 ID:TKbef1sv
>>940 インデックスだけみたけど、jQueryの話とかあるのね
944 :
Name_Not_Found :2011/05/25(水) 13:38:22.28 ID:Y7P/3aQ3
どうもヘンだと思った、よく分かった。
>>945 これでいいと思うな。
(*3*)ソンナー
テンプレ議論するときはID出して欲しいね 自作自演で自分の意見を賛成したり、気に入らない意見を複数に見せかけたりできて議論操作できるから
IDは無意味 俺なら5秒で変更可能 トリップならよい
トリップだって自分で変えられるんだから自演可能じゃん。
自演防ぐの無理だから中身で議論してほしいね
954 :
Name_Not_Found :2011/05/26(木) 16:48:54.49 ID:WDr8djnW
親ウィンドウから子ウィンドウを操作する方法について質問させて下さい。 var subwin; subwin = window.open('hoge','piyo'); として、 subwin.document.getElement・・・としていけば、 ieでは普通に子ウィンドウのノードを取得したり、 属性を書き換えたのにそれ以外のブラウザでは出来ませんでした。 プロではなく習いはじめの素人なので、 jqueryやAjaxのような難しい話無しに教えて頂けると有り難いです。
質問です。 IE8でcreateDocumentFragmentの返すモノのprototypeをいじりたいのですが、 対象が分からないのでご存じの方は教えてください。 具体的に言うと、たとえばcreateElementの場合、 Firefoxではwindow.HTMLElement、IE8ではwindow.Elementのprototype。 createDocumentFragmentの場合、 Firefoxではwindow.DocumentFragmentのprototypeですが、、IE8では???ということです。 −−− 「いじるな」は不要で。当方承知の上。 createElementとappendChildで、0から複雑な内容組み立てる処理で "いちいちこんな長いメソッド名書いてられるか鬱陶しい"という話ですので。
>>954 セキュリティ上の理由で異なるドメインの window を操作できない
IE もサーバにアップロードすれば出来ないことがわかるはず
>>955 document.createDocumentFragment().constructor
958 :
Name_Not_Found :2011/05/26(木) 17:39:11.09 ID:WDr8djnW
>>956 では、100枚のサムネイルがあってそれをクリックすると、
別ウィンドウで表示したい場合、100ページ作る必要があるのでしょうか?
>>958 100枚のサムネイルがどこから出てきたのかわからないけど、
>>956 は↓に対する回答
> ieでは普通に子ウィンドウのノードを取得したり、
> 属性を書き換えたのにそれ以外のブラウザでは出来ませんでした。
>>957 ああそか、それでいいんだ。
いま試して動作も確認できました。ありがとうございました。
962 :
Name_Not_Found :2011/05/27(金) 12:32:35.05 ID:S5wRS9KZ
初期化スクリプトの実行でIEと他との違いに悩んでいます。 書いてるのは開閉するリストを擁するdiv要素の制御で、 ページ読み込みと同時に非表示=>初期処理(リスト開閉)=>表示します。 IE以外では問題ないのですが、IEでは以下のようになります(特にIE8/9が顕著) (1)<head> <script>/*div#fooを非表示にするCSSを定義するインラインスクリプト*/</script> </head><body>...<div id="#foo">...</div>... <script src="...">/*リストの処理を実行=>表示*/</script></body> => headのスクリプト実行で止まるため一瞬画面が白くなる (2)<body>...<div id="foo">...</div>... <script src="...">/*div#fooを非表示に=>開閉の処理を実行=>表示*/</script></body> => リストのレンダリングが済んでるので一瞬リストが開いた状態で見えてしまう (3)<body>... <div id="foo"><script>/*div#fooを非表示にするインラインスクリプト*/</script>...</div>... <script src="...">/*リストの処理を実行=>表示*/</script></body> => div#fooのみ一瞬遅れて表示される おそらく3つの動作はどれも正常のように思うのですが、なにしろ他のブラウザでは どの書き方(スクリプトの配置)でもスムーズにページが切り替わり、白くなる瞬間はありません。 他のブラウザがうまくやってくれてるだけでIEが正直なのか、 IEだけの特徴があるのか、区別がつきません。助言いただけるとうれしいです。 ※スクリプトは8k程度、処理もごく軽いものです
964 :
962 :2011/05/27(金) 14:12:05.51 ID:S5wRS9KZ
すいません。小さいコードでもほぼ同じなのでタイミングの問題か
ブラウザのレンダリングの違いのみのつもりで・・
>>962 の説明と一部違いますが再現する簡易コードは以下です。
document.getElementById("foo").style.visibility="hidden"; # div#fooを非表示(3ではインライン,2では外部ファイル)
document.getElementById("list").style.display="none"; # リストを非表示(ページ末尾の外部スクリプト)
var cnt=0; while (++cnt < 10000) {} # なんらかのちょっとした処理(〃)
document.getElementById("foo").style.visibility="visible"; # div#fooを再表示(〃)
ただ、今ふと思いついてJSオフにしてIEで見てたんですが、
スクリプトがなくともページの描画がチラチラッと何段階かに分かれてて
スクリプトで処理してるリスト部分も後から描画されてるように(一瞬白く)見え、
ちょうど
>>962 の(3)にしたときとほぼ同じように見えます。
(スクリプトとは別にIEのレンダリングが速いor描画のタイミングがマメ?)
ちょっと質問の焦点がうやむやになってしまった感なので
ひとまず時間帯を変えるなどして観察してみようと思いますm(_ _)mスイマセン...
>>964 そのやり方ならブラウザに関係なく一瞬見えるはずだよ
IE以外は描画速度が速くて見える時間が短いだけ
確実な方法は document.stylesheets から新たなスタイルを定義すること
対象の要素がDOMツリーに追加される前にスタイルを定義しないとダメ
966 :
Name_Not_Found :2011/05/27(金) 20:08:24.06 ID:Ei1exLbg
ECMAScriptのグローバルオブジェクトにアクセスするやり方ってどうやるんでしょうか。 JavaScriptならwindowで常にアクセス出来るんですが、 SVGを含む色々なライブラリからアクセスされるので、グローバルオブジェクトの名前が 一意に規定出来なくて困っています。 グローバルスコープでthisで取れるのはわかるのですが、 グローバルスコープ以外でどうすればいいのかお分かりになる方、どうかご教示ください
windowで常にアクセスできるって認識がおかしい フレームあるときどうすんだと あとthisとスコープは関係ねえ SVGならnode.ownerDocument.defaultViewとかevent.viewとかで十分だろ node.jsならglobalだか何かなかったか (function(){return this})()には何か問題があった気がするが何だっけ
968 :
Name_Not_Found :2011/05/27(金) 20:38:00.00 ID:Ei1exLbg
>>967 よくわからないのに無理にレスしなくていいですよ ^^;;;
あとWebWorker使ったときも、windowじゃ駄目だな
>>968 そうか、頑張ってな
>>2 > (1) 質問にならない投稿はご遠慮ください。(煽り、コード制作依頼など)
node.jsのマニュアル見たが トップレベルでvar hogeしてもモジュールローカルなんだな グローバル変数にしたければglobalにつけろ、と
今の主要ブラウザって1.7で作っても問題ないですか?
>>966 Function('return this')();
>>968 質問する立場で煽るのはどうなんですかね。
>>973 それ"use strict"だとダメらしい
>>974 ありゃ、本当ですか。私は Strict Mode でも大丈夫と教わったんですが…。
検証してみたところ、Google Chrome 11, Firefox 4, Opera 11.11, IE8 でOKでした。(IE8 は Strict Mode を実装していないので当然ですが)
http://jsfiddle.net/sufH4/3/ >>968 IE8- を懸念しているのなら parentWindow でいけますよ。
>>973 は eval() に近い(evalよりは安全ですが)ので、可能なら defaultView を採用することをお勧めします。
69-801の範囲を判定する場合 /^69|[7-9][0-9]|[1-7][0-9][0-9]|80[0-1]$/.test(a.toString())とか if(a>=69 && a<=801)とすると思うのですが、もっとスマートで高速にする方法はないのでしょうか
if(69<=a<=801)
>>976 if (68 < a && a < 802)
スレ立て人ですが…また立てられないよ〜。誰かお願い。
テンプレは
>>945-947 あたりを参考に。
>>974 strict modeになってダメになる理由がなさそうだけど
あ、じゃあ俺が立ててくる。 テンプレ間違ったらすまん
>>976 ifで十分スマートだが
似たような条件がelseifで続く場合はswitchのほうがいい
984 :
982 :2011/05/28(土) 12:01:53.06 ID:???
テンプレの議論がグダグダでわからん 他の人よろしく
じゃ俺が立てる 俺もテンプレ見てないからちょっと時間かかるかも
ろくに議論してないからこのままでいつもどおりのテンプレで立てて次スレで議論すればいい
今strict modeを実装しているブラウザってFx4以外にあるの?
"use strict";で8進数リテラルの下位互換がなくなるのは勘弁してほしい if(010 == 10) みたいな
すまん、規制にひっかかった これも別ipアドレスから書いてる(かけてたら) 他の人頼む
梅
>>983 ありがとう 以前から数値範囲の判定の書き方に違和感を感じていました
しかし、switchの方が良いというのはどういうケースでしょうか?
if(0<a && a<8){}
else if(a<16){}
else if(32<a && a<64){}
else if(63<a && a<100){}
else {}
という条件分岐の場合、switchに置き換えられますか?
switch(true){ case 0<a && a<8:... case a<16:... case 32<a && a<64:... case 63<a && a<100: ... default: ... }
>>999 while(true) と同じぐらいバッドノウハウな気がするなあ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。