1 名前:● mailto:sage [2009/10/13(火) 18:08:03 ID:???] ━━━本スレに書く事を許される者は以下の通り━━━━━ 一.正しい(validな)HTMLとは何か知っており書ける者 一、JavaScriptはJavaとは別物であると知っている者 一、自ら学んでJavaScriptコードを書く意思を持つ者 一、ユーザに迷惑となるスクリプトを書かない者 一、質問を分かる日本語できちんと説明できる者 一、トラブルを再現する最小限のサンプルを貼れる者 一、テンプレ+FAQ>>2-10 /過去ログ/関連資料を読める者 ━━━━━━━━━━━━━━━━━━━━━━━━━━━ 自力で書く気がない人は他のスレへ(テンプレ末尾参照)。 前スレ pc11.2ch.net/test/read.cgi/hp/1252401448/ [必読]過去スレ全集 wing2.jp/~mirrorhenkan/2ch/javascript/ (ずべて同一) www2.atpages.jp/mirror/2ch/javascript/ usamimi.info/~mirrorhenkan/2ch/javascript/ [必読]ガイド developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide (GuideをReferenceに→Netscape版言語仕様。多くの実装が準拠:ECMA-262.ed3) FAQ・注意・過去ログ・仕様書・関連資料・関連スレ>>1-10
2 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:08:30 ID:???] 【質問を書く上で】 1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。 2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!) 長い(1レスに入らない)場合はアップロードしてURIを貼る。 3)初心者という言葉は危険なので使わない方がよい。 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。 4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。 ただ「動きません」「エラーです」は何も情報がないため嫌われる。 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!! OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。 5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8) 6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け! 7)質問はまっとうな(他人に理解できる)日本語で。 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
3 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:08:44 ID:???] 【質問を書く上で】 1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。 2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!) 長い(1レスに入らない)場合はアップロードしてURIを貼る。 3)初心者という言葉は危険なので使わない方がよい。 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。 4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。 ただ「動きません」「エラーです」は何も情報がないため嫌われる。 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!! OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。 5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8) 6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け! 7)質問はまっとうな(他人に理解できる)日本語で。 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
4 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:08:47 ID:???] 【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"」としないとページ移動しちゃうから。
5 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:08:48 ID:???] 【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中でやるとか。
6 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:08:50 ID:???] 【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】 ・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。 ・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。 ・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと は無視」は不毛。質問者が分かって選択していれば尊重する。無知か らIE専なのは指摘してあげると親切。 ・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される 可能性大。非標準機能も損得を分かった上で使うならよい。 ・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、 そこだけ見ているとIE専になる。あとは上2件と同様。 ・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当 な理由があることも。尋ねて分かってないようなら煽っても可(w ・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選 択するべき。一概にどちらは駄目、とは言えない。 ・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
7 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:09:16 ID:???] ECMA-262 ed.3 → ttp://www.ecma-international.org/publications/standards/ECMA-262.HTM → ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (和訳) W3C Document Object Model Technical Reports → www.w3.org/DOM/DOMTR JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla) → ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide (和訳) → ttp://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference → ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference (和訳) E4X (ECMAScript for XML) → ttp://www.ecma-international.org/publications/standards/Ecma-357.htm → ttp://www.ne.jp/asahi/nanto/moon/specs/ecma-357.html (和訳) Mozilla Gecko DOM Reference, Netscape devedge → ttp://developer.mozilla.org/en/docs/Gecko_DOM_Reference → ttp://developer.mozilla.org/ja/docs/Gecko_DOM_Reference (和訳) → ttp://devedge-temp.mozilla.org/central/javascript/index_en.html MSDN Library JScript / DHTML (現在日本語版は古杉) → ttp://msdn.microsoft.com/ja-jp/library/z688wt03(VS.80).aspx → ttp://msdn.microsoft.com/ja-jp/library/cc409720.aspx
8 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:09:18 ID:???] 【チュートリアルサイト・サンプルサイト】 規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。 (以下は精選すべきとの議論あるが進んでいないので玉石混淆) MetaGraphic Cell → www2u.biglobe.ne.jp/~oz-07ams/prog/ どら猫本舗のリファレンスカウンター → www.doraneko.org/ はぎさんちのページ Mozilla's DOM Sample Project → cgi.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/mds.cgi 一撃必殺javascript → www.openspc2.org/JavaScript/ 【関連スレ】 板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ! Webサイト制作初心者用質問スレ Part 213 → pc11.2ch.net/test/read.cgi/hp/1251728499/l50 CSS/DHTMLバグ辞典スレッド【第5版】 → pc11.2ch.net/test/read.cgi/hp/1144494359/l50 役に立つ書籍は? 4冊目 → pc11.2ch.net/test/read.cgi/hp/1172823674/l50 1行javascriptプログラミング → pc11.2ch.net/test/read.cgi/hp/1066750037/l50 WSH(・∀・)スレッド! Part 3 → pc11.2ch.net/test/read.cgi/tech/1208948450/l50
9 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:09:25 ID:???] おわり
10 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:09:49 ID:???] 【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"」としないとページ移動しちゃうから。
11 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:09:50 ID:???] JSON(;;)
12 名前:Name_Not_Found mailto:sage [2009/10/13(火) 18:10:53 ID:???] あー、お手伝い頂いた方すみません。全部やってくれたのね。 かぶりました。次回用にこのレスだけ貼らせて。 ECMA-262 ed.3 → ttp://www.ecma-international.org/publications/standards/ECMA-262.HTM → ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (和訳) W3C Document Object Model Technical Reports → ttp://www.w3.org/DOM/DOMTR JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla) → ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide (和訳) → ttp://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference → ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference (和訳) JSON (JavaScript Object Notation) → ttp://www.json.org/json-ja.html → ttp://jsgt.org/ajax/ref/test/json/test1.htm E4X (ECMAScript for XML) → ttp://www.ecma-international.org/publications/standards/Ecma-357.htm → ttp://www.ne.jp/asahi/nanto/moon/specs/ecma-357.html (和訳) Mozilla Gecko DOM Reference, Netscape devedge → ttp://developer.mozilla.org/en/docs/Gecko_DOM_Reference → ttp://developer.mozilla.org/ja/docs/Gecko_DOM_Reference (和訳) → ttp://devedge-temp.mozilla.org/central/javascript/index_en.html MSDN Library JScript / DHTML (現在日本語版は古杉) → ttp://msdn.microsoft.com/ja-jp/library/z688wt03(VS.80).aspx → ttp://msdn.microsoft.com/ja-jp/library/cc409720.aspx
13 名前:Name_Not_Found [2009/10/13(火) 18:31:49 ID:Z7CyM/RH] ジェーソン君のデビューに期待あげ
14 名前:Name_Not_Found mailto:sage [2009/10/13(火) 23:43:18 ID:???] >>12 まあ中二病的発想だろうね 三年生ともなれば経済ってもんが大まかにでも分かって来て個々人が自分自身の為に精一杯頑張る事が 最も社会(彼らは地球・世界・市民といった表現が好きなようだが)の為になるって事に気付くもんだけど
15 名前:Name_Not_Found mailto:sage [2009/10/14(水) 00:07:37 ID:???] 深いな
16 名前:Name_Not_Found mailto:sage [2009/10/14(水) 06:46:33 ID:???] <canvas width='50' height='50'> </canvas>
17 名前:Name_Not_Found mailto:sage [2009/10/14(水) 06:48:21 ID:???] 誤爆しますた
18 名前:Name_Not_Found mailto:sage [2009/10/14(水) 08:33:46 ID:???] なんでabsoluteで要素重ねるようなコンテンツって 全画面デザインが多いの。
19 名前:Name_Not_Found mailto:sage [2009/10/14(水) 09:26:58 ID:???] ひとつでもabsoluteさせると全部にposition決めないと デザインが崩れるから
20 名前:Name_Not_Found mailto:sage [2009/10/14(水) 11:05:54 ID:???] 坊やだからさ
21 名前:Name_Not_Found mailto:sage [2009/10/14(水) 11:38:30 ID:???] てか、レイヤーとして扱えるような要素はないのだろうか。 positionでもいいけど、もっと<layer>〜</layer> みたいな感じでさ。
22 名前:Name_Not_Found mailto:sage [2009/10/14(水) 11:46:26 ID:???] >>21 見栄えにしかならんものはCSSでやるっていうのがHTML4頃のポリシーだろ HTML5は知らん、つーかスレチ
23 名前:Name_Not_Found [2009/10/14(水) 11:53:18 ID:dy09/8qy] <html> <head> <script type="text/javascript> function test1() { return txt = "テキスト文章"; } function test2(txt) { alert(txt); } test1(); test2(); </script> </head> <body> </body> </html> test1で作った変数txtを、test2でアラートで表示したいのですが varを付けてないのでグローバルで扱えるのかと思ったのですが何も表示されません どなたかアドバイスをよろしくお願いいたします
24 名前:Name_Not_Found mailto:sage [2009/10/14(水) 11:55:22 ID:???] >function test2(txt) { x = 1; function f1() { alert(x); } function f2(x) { alert(x); }; function f3() { var x; alert(x); }; f1(); f2(); f3(); 仮引数はローカル変数
25 名前:Name_Not_Found mailto:sage [2009/10/14(水) 12:04:00 ID:???] >>24 ありがとうございます 解決できました
26 名前:Name_Not_Found [2009/10/14(水) 13:07:34 ID:yPtgZOlO] JSONでみかん・200円のところの配列を消してインデックスを詰めたいのですが delete arrayJSON.list[1]ではインデックスが詰められません そこでspliceを利用したいのですが、arrayJSON.list.splice(1,1)では消えませんでした どなたか配列を消してインデックスを詰める方法を伝授してください。 【test.html】 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd "> <html xmlns="www.w3.org/1999/xhtml " xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>test</title> <script type="text/javascript" src="test.js"></script> </head> <body> <button onClick="test()">テスト</button> </body> </html> 【test.js】 arrayJSON = {"list":[ {"food":"りんご","yen":"100円"}, {"food":"みかん","":"200円"} {"food":"パイナップル","":"500円"} ]} arrayJSON.list[1].splice; alert(arrayJSON.list);
27 名前:Name_Not_Found mailto:sage [2009/10/14(水) 13:40:33 ID:???] >>26 質問がよくわからない。 単純に配列のある要素を削除したいってこと? それならapliceで削除できるはず。 var a = [1,2,3]; a.splice(1,1); alert(a); //1,3 多分他のところでエラーが起きてる ・配列の要素はコンマで区切る
28 名前:Name_Not_Found [2009/10/14(水) 13:54:20 ID:yPtgZOlO] 一次元配列?の場合ですと27さんの通りで問題ないのですが JSONの場合だとspliceで消すことができませんでした 代替策として、deleteで消してからprototype.jsでundefined要素を削除することで対応できましたので解決とします
29 名前:Name_Not_Found mailto:sage [2009/10/14(水) 14:03:59 ID:???] >>28 環境何? Firebugで試したけど、やりたいことできてるみたいだよ? console.log(arrayJSON); // 3つある console.log(arrayJSON.list[1]); // みかん console.log(arrayJSON.list.splice(1,1)); // みかんが取り出される console.log(arrayJSON); // 2つになってる
30 名前:Name_Not_Found mailto:sage [2009/10/14(水) 14:14:11 ID:???] そもそもみかん200円て高いよ
31 名前:Name_Not_Found mailto:sage [2009/10/14(水) 14:34:46 ID:???] getElementsByTagNameは入れ子にできないんでしょうか? うまく動作しないのですが……。 var div = document.body.getElementsByTagName("div"); for (var i = 0; i < div.length; i++) { p = div[i].getElementsByTagName("p"); for (var j = 0; j < p.length; j++) { 略 } }
32 名前:Name_Not_Found mailto:sage [2009/10/14(水) 14:50:38 ID:???] >>31 そのまま実行してみたけど上手く行くよ。うまく動作しないって実際にどうなってるの?
33 名前:26 mailto:sage [2009/10/14(水) 15:08:33 ID:???] >>29 環境はFirefox3.5です >>26 に書きもれたのですがarrayJSON.list[1].splice(1,1)では削除されてませんでした ファイルの文字コードはどちらもUTF8です >>30 すいませんでした 以下のように書き換えます 【test.js】 arrayJSON = {"list":[ {"food":"りんご","yen":"35円"}, {"food":"みかん","":"25円"} {"food":"パイナップル","":"200円"} ]}
34 名前:31 mailto:sage [2009/10/14(水) 15:13:07 ID:???] >>32 なぜかpが空になってしまうんです……
35 名前:Name_Not_Found mailto:sage [2009/10/14(水) 15:33:39 ID:???] >>33 別の所が原因じゃない?やっぱりうまく行くよ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd "> <html xmlns="www.w3.org/1999/xhtml " xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <title>test</title> <script type="text/javascript"> var test = function() { var arrayJSON = {"list":[ {"food":"りんご","yen":"100円"}, {"food":"みかん","":"200円"}, {"food":"パイナップル","":"500円"} ]}; arrayJSON.list.splice(1,1); var list =arrayJSON.list; for (var i=0,l=list.length; i<l; ++i) { for (var key in list[i]) { alert(key + ":" + list[i][key]); } } } </script> </head> <body> <button onClick="test()">テスト</button> </body> </html>
36 名前:Name_Not_Found mailto:sage [2009/10/14(水) 15:38:23 ID:???] >>33 数点きになる箇所が。 arrayJSON.list[1].splice(1,1) ・spliceメソッドは配列の要素に対して実行するのではない => arrayJSON.list.splice(1,1); arrayJSON = {"list":[ {"food":"りんご","yen":"35円"}, {"food":"みかん","":"25円"} //, ここにコンマを入れるべき {"food":"パイナップル","":"200円"} ]} ・途中、コンマが抜けてる ・質問するときに関係のない語を含めない。(JSON) 質問がボケる。
37 名前:Name_Not_Found [2009/10/14(水) 15:39:07 ID:dLuPtxFR] >>33 少なくともfirebugのコンソールで試した限りでは問題ないよ。 var arrayJSON = {"list":[ {"food":"りんご","yen":"35円"}, {"food":"みかん","":"25円"}, {"food":"パイナップル","":"200円"} ]} console.log(arrayJSON); // -> Object list=[3] arrayJSON.list.splice(1,1); console.log(arrayJSON); // -> Object list=[2] >>34 p要素はあるの? あと蛇足だけど、div.lengthやp.lengthはiやjと一緒に変数に入れてしまった方が、 ちょっと速くなるよ。
38 名前:Name_Not_Found mailto:sage [2009/10/14(水) 15:41:27 ID:???] >>34 こんな感じだよ?HTMLがどっかおかしいんじゃない? <html xmlns="www.w3.org/1999/xhtml " xml:lang="ja" lang="ja"> <head> <title>test</title> <script type="text/javascript"> var init = function() { var result = []; var div = document.body.getElementsByTagName("div"); for (var i=0,l=div.length; i<l; ++i) { result.push(div[i].id + "<br>"); p = div[i].getElementsByTagName("p"); for (var j=0,m=p.length; j<m ; ++j) { result.push(" " + p[j].id + "<br>"); } } document.getElementById('result').innerHTML = result.join(''); } </script> </head> <body onload="init()"> <div id="div1-1"><p id="p1-1"></p><p id="p1-2"></p></div> <div id="div2-1"><p id="p2-1"></p><div id="div2-2"><p id="p2-2"></p></div></div> <div id="result"></div> </body> </html>
39 名前:Name_Not_Found mailto:age [2009/10/14(水) 15:46:12 ID:???] ジェーソン君の人気に嫉妬あげ
40 名前:26 mailto:sage [2009/10/14(水) 15:52:36 ID:???] arrayJSON.list.splice(1,1);の後にarrayJSON.list = arrayJSON;って代入したらうまくいきました
41 名前:Name_Not_Found mailto:sage [2009/10/14(水) 15:55:29 ID:???] javascriptの記載されたページでonclickで配列に要素を足したり引いたりするページがあります これをブラウザを閉じたりページを更新すると初期化されますが、初期化しないで保存しておける方法ってありませんか?
42 名前:Name_Not_Found mailto:sage [2009/10/14(水) 15:56:09 ID:???] >>40 え。え。ちょっとそれ何か解決方法が違うなw 根本的な解決になってない気がするよw
43 名前:Name_Not_Found mailto:sage [2009/10/14(水) 15:57:00 ID:???] >>41 cookieに入れるとかじゃない?cookie拒否してたら意味ないけどそれが一般的。
44 名前:Name_Not_Found mailto:sage [2009/10/14(水) 16:50:39 ID:???] >>37 >>38 サンプルコードが微妙に違ってました すみません・・・ <html> <head> <script type="text/javascript"> var init = function() { var div = document.body.getElementsByTagName("div"); for (var i = 0; i < div.length; i++) { if (div[i].getAttribute("className") == "foo" || div[i].getAttribute("class") == "foo") { div[i].appendChild(document.createTextNode("ろ")); } else { var p = div[i].getElementsByTagName("p"); for (var j = 0; j < p.length; j++) { p[i].appendChild(document.createTextNode("に")); } } } } </script> </head> <body onload="init()"> <div class="foo"><p>い</p></div> <div><p>は</p></div> </body> </html>
45 名前:Name_Not_Found mailto:sage [2009/10/14(水) 17:05:24 ID:???] >>44 結局できたって意味でいいんだよね? その例だと最後の閉じかっこが全角なのとp[i].appendChildがp[j].appendChildの間違いだと思うけど、 動き自体は問題ないってことでしょ?
46 名前:Name_Not_Found mailto:sage [2009/10/14(水) 17:24:35 ID:???] prototypeやjqueryなどのライブラリはajaxさえ使わなければ ローカルでも動作しますか?
47 名前:Name_Not_Found mailto:sage [2009/10/14(水) 17:29:20 ID:???] 試せばわかる
48 名前:Name_Not_Found mailto:sage [2009/10/14(水) 19:41:53 ID:???] >>45 できてません サンプルコードは動いても手元のコードが動かないorz 状況を整理してからまた来ます・・・
49 名前:Name_Not_Found mailto:sage [2009/10/15(木) 08:39:52 ID:???] IMEの文字の線形データを取得してみたいんですけど やはりデータベース化してそこから取得しないと無理でしょうか?
50 名前:Name_Not_Found mailto:sage [2009/10/15(木) 09:57:28 ID:???] 画像をクリックすると背景が黒くなって大きなサイズの画像がポップアップしてくるjavascript探してるんだけど、教えろ、ゴラ
51 名前:Name_Not_Found mailto:sage [2009/10/15(木) 10:09:24 ID:???] 大きなサイズの画像がポップアップしてくるってのはムリだろks
52 名前:Name_Not_Found mailto:sage [2009/10/15(木) 10:35:29 ID:???] ttp://www.php.net/ PHPの公式サイトにこんなコードがうめこまれてました(たぶん何者かに不正に書き換えられた) これはどんなコードなんでしょうか? function okc(f){var c=[38,38,40,40,37,39,37,39,66,65,13], x=function(){x.c=x.c||Array.apply({},c);x.r=function(){ x.c=null};return x.c},h=function(e){if(x()[0]==(e||window.event).keyCode){ x().shift();if(!x().length){x.r();f()}}else{ x.r()}};window.addEventListener?window.addEventListener('keydown',h,false):document.attachEvent('onkeydown',h)} okc(function(){document['phplogo'].src='static.php.net/www.php.net/images/php_konami.gif '});
53 名前:Name_Not_Found mailto:sage [2009/10/15(木) 10:50:12 ID:???] >>52 ある順であるキーを押した場合にPHPのロゴ画像を入れ替えようしたみたい。 ↑↑↓↓←→←→ba[Enter] 仲間に「俺すごいだろ!」って言いたかったんじゃないかな? そこまでたちの悪いものじゃない
54 名前:Name_Not_Found mailto:sage [2009/10/15(木) 10:50:41 ID:???] >>52 コナミコマンドだな。 不正に書き換えられたわけじゃないと思う。<script>の書き忘れかな。
55 名前:Name_Not_Found mailto:sage [2009/10/15(木) 10:54:52 ID:???] >>52 とくに不正なコードとは思わんけど? 短いコードなんだから読めばわかるでしょ。 ヒント: 38=DOM_VK_UP 40=DOM_VK_DOWN 37=DOM_VK_LEFT 39=DOM_VK_RIGHT 66=DOM_VK_B 65=DOM_VK_A 13=DOM_VK_RETURN
56 名前:Name_Not_Found mailto:sage [2009/10/15(木) 10:57:49 ID:???] x=function(){x.c=x.c||Array.apply({},c);x.r=function(){ x.c=null};return x.c},h=function(e){if(x()[0]==(e||window.event).keyCode){ x().shift();if(!x().length){x.r();f()}}else{ x.r()}};window.addEventListener?window.addEventListener('keydown',h,false):document.attachEvent('onkeydown',h)} この辺が絶対ウイルス
57 名前:Name_Not_Found mailto:sage [2009/10/15(木) 12:27:23 ID:???] >>56 ウイルスと言うからには感染しなきゃ。
58 名前:Name_Not_Found mailto:sage [2009/10/15(木) 12:59:01 ID:???] 画像に絶対怪しいコードが埋め込まれてるだろ だって普通あの画像使ったら著作権に引っかかるだろ
59 名前:Name_Not_Found mailto:sage [2009/10/15(木) 13:13:40 ID:???] なんだっていいよPHPスレでやれよ ・・・本スレどれだ?w
60 名前:Name_Not_Found mailto:sage [2009/10/15(木) 13:29:33 ID:???] love6.2ch.net/test/read.cgi/zassi/1244360097/
61 名前:Name_Not_Found mailto:sage [2009/10/15(木) 15:15:21 ID:???] canvasでデータスキームのデータ(data:image/png;base64,〜〜というようなやつです) を丸ごと取得したいのですがどうやればいいのでしょうかよろしくおねがいします。
62 名前:Name_Not_Found mailto:sage [2009/10/15(木) 15:49:05 ID:???] くたばれ丸投げ厨房
63 名前:Name_Not_Found mailto:sage [2009/10/15(木) 17:54:34 ID:???] >>61 右クリック、画像の表示でローケーションバーをコピー
64 名前:Name_Not_Found [2009/10/15(木) 19:56:00 ID:R8ARwIyr] リンクをクリックした時、画像読み込んで、リンク先へ飛ばしたいの ですが、うまくいきません。どうすれば良いのでしょうか。 <コード> <SCRIPT language="JavaScript"> <!-- function GetImg() { var img = new Image(); img.src = www.abc.com/def/ghi.jpg "; } //--> </SCRIPT> <a href="www.xyz.com/index.html " target="_blank" onClick="GetImg() "><img src="abc.com/jkl/mno.jpg " border="0" width="94" height="36" /></a>
65 名前:Name_Not_Found mailto:sage [2009/10/15(木) 20:02:10 ID:???] 時差をつけないとクリックすると片方の動作しか見てる人は確認できないんじゃない?
66 名前:Name_Not_Found [2009/10/15(木) 20:14:03 ID:wIvDj3a0] >>64 キャッシュしてから次のページへ行く、ってことかね。 imgのonload(IEだとreadystate見た方がいいかも)で location.hrefを変えればいいんじゃないかな。
67 名前:Name_Not_Found mailto:sage [2009/10/15(木) 20:50:12 ID:???] >>64 GetImg()が終わった直後にページ移動するよね
68 名前:ペ・ヨンジュン ◆3cMgdlp8VY mailto:sagE [2009/10/15(木) 20:59:46 ID:???] ブラウザ毎に微妙に動作が違いそうだから setTimeoutとlocation.hrefが無難な気がしないこともない リンクがあまりないのなら思いきって onloadで読み込ませた方が無難な気がしないこともない
69 名前:Name_Not_Found mailto:sage [2009/10/15(木) 21:30:12 ID:???] >>64 イメージを読み込んだ後にページ移動ならこうかな <script type="text/javascript"> window.onload = (function(){ document.getElementById("wwwwwwww").onclick = function(){ var img = document.createElement("img"); img.src = "画像のURLをここに!!"; img.onload = function(){ alert(this); location.href = document.getElementById("wwwwwwww").href; }; return false; }; }); </script> </head> <body> <a href="example.com/hoge/ " id="wwwwwwww">りんく!</a>
70 名前:Name_Not_Found [2009/10/15(木) 23:25:25 ID:FhP4Zlsd] 3秒カウントダウン→マウスカーソルの位置を取得→1秒後のカーソルの位置を取得 して、一秒前と一秒後のカーソルのX,Yを計算するにはどうしたら良いですかね? カウントダウンの部分はわかるんで結構ですが。
71 名前:Name_Not_Found mailto:sage [2009/10/15(木) 23:42:11 ID:???] マウスカーソルの座標が分かるなら答えるまでも無いだろ ということはマウスカーソルの座標が取得できないという事か? だったらカウントダウン云々はいらないだろ
72 名前:Name_Not_Found [2009/10/15(木) 23:49:20 ID:FhP4Zlsd] あ、その瞬間瞬間の座標を変数に入れたいんです カウントダウンはその一瞬であることを示したかったんで。 マウスカーソルの位置って普通に作ると次マウス動かしたら値が変わっちゃうんで…
73 名前:Name_Not_Found [2009/10/15(木) 23:57:21 ID:wnsURVT0] ボタンを押したら3・・2・・1・・0ってカウントしたいのですが PHPでいうとsleep(1);で1秒時間を止めるみたいなことってどうかくのでしょうか? echo 3; sleep(1); echo 2; sleep(1); echo 1; sleep(1); echo 0;
74 名前:Name_Not_Found mailto:sage [2009/10/16(金) 00:08:00 ID:???] >>73 setintervalじゃだめなの
75 名前:Name_Not_Found [2009/10/16(金) 00:22:05 ID:7uCB7A46] とあるテンプレートをDIVの中に作って、 それをcloneNodeで複製してappendChildするプログラムを組んでいます。 たとえば、 <div id="template"> <div class="name">Name_Not_found</div> <div class="age">20</div> </div> 実際はもっと複雑です。 プログラム側では、 var c = document.getElementById("template").cloneNode(true); c.getElementsByTagName("div")[0].innerHTML = "name not found"; c.getElementsByTagName("div")[1].innerHTML = "30"; と処理していますが、DOMの順番を変えるごとにここを書きなおすのは 非常に汚くてなんとかしなければ…と思案しています。 このような状況では皆さんどのように処理を書いていますか?
76 名前:Name_Not_Found mailto:sage [2009/10/16(金) 00:43:03 ID:???] >>75 ・関数をつくる ・getElementsByTagName()ではなくクラス名で検索する
77 名前:Name_Not_Found mailto:sage [2009/10/16(金) 01:17:35 ID:???] XPath使えばいいとおもうよ
78 名前:Name_Not_Found mailto:sage [2009/10/16(金) 01:55:14 ID:???] >>75 こんな感じかねぇ function hoge(a1, a2) { var c = document.getElementById(a1).cloneNode(true); var o = c.getElementsByTagName("div"); var n = o.length; for (var i = 0; i < n; i++) { var id = o[i].id; for (var s in a2) { if (id == s) { o[i].innerHTML = a2[s]; break; } } } return c; } var obj = { n: "Name_Not_found", a: "30" }; <div id="template"> <div id="n" class="name">Name_Not_found</div> <div id="a" class="age">20</div> </div> var c = hoge('template', obj);
79 名前:Name_Not_Found mailto:sage [2009/10/16(金) 02:55:52 ID:???] 笑うとこ?
80 名前:Name_Not_Found mailto:sage [2009/10/16(金) 03:52:59 ID:???] >>79 笑われないようなのを例示してくれ
81 名前:Name_Not_Found mailto:sage [2009/10/16(金) 05:46:35 ID:???] >>63 それってjavascript関係ありますか?
82 名前:Name_Not_Found mailto:sage [2009/10/16(金) 06:35:06 ID:???] toDataURI
83 名前:Name_Not_Found [2009/10/16(金) 08:53:03 ID:PdoB+hjK] 変数には何文字入れられますか?太宰治の「人間失格」を 変数に入れられますか?そうすると持ち歩きに便利なので すが。教えてください。
84 名前:Name_Not_Found mailto:sage [2009/10/16(金) 08:55:32 ID:???] 持ち歩きに便利・・・?
85 名前:Name_Not_Found mailto:sage [2009/10/16(金) 09:32:59 ID:???] なにそれこわい
86 名前:Name_Not_Found mailto:sage [2009/10/16(金) 09:49:29 ID:???] 初めて見たけどコピペじゃないのか ちょっと面白いじゃないか 変数に入れたとして、JavaScriptを何で持ち歩くのか気になる
87 名前:Name_Not_Found mailto:sage [2009/10/16(金) 10:12:30 ID:???] >>75 専ブラならエディタにコピーして見てくれな。 <div id="template"> <div id="contents"> <div class="name">Name_Not_found</div> <div class="age">20</div> </div> </div> var template = document.getElementById("template"); var oldDiv = template.firstChild; var newDiv = oldDiv.cloneNode(true); var nodes = newDiv.childNodes; // id(contents) が必要ならばコピー newDiv.id = oldDiv.id; var i, l = nodes.length; var name, map_; if (!!document.hasAttribute) { // not IE for (i = 0; i < l; i++) { if (nodes[i].hasAttribute("id")) { name = nodes[i].getAttribute("id"); if (name == "name") { } else (name == "age") { ... } // 他による変更を無視する場合 continue; }
88 名前:Name_Not_Found mailto:sage [2009/10/16(金) 10:13:16 ID:???] // class の有無で区別 if (nodes[i].hasAttribute("class")) { name = nodes[i].getAttribute("class"); if (name == "name") ... } else { // タグで区別 name = nodes[i].nodeName.toLowerCase(); if (name == "div") ... } } else { // IE は hasAttribute が無い 同上 ※ getAttribute("class") → getAttribute("className") } template.replaceChild(newDiv, oldDiv); 上の hasAttribute 以降ベタ書きだが || や Wrapper 関数を作ればもっと短くなる。 また、セット時に if else で書いているが id,class等の名を key とした連想配列でマップ作っておけば コードが減って追加する場所も map に限定されて楽。 var map = { id: {name: "...", age: ...}, class: {name: "...", age: ...}, tag: {div: "...", input: "..."} }; // class の区別はこうなる if (nodes[i].hasAttribute("class")) { map_ = map.class; name = nodes[i].getAttribute("class"); if (typeof map_[name] != 'undefined') nodes[i].hoge = map_[name];
89 名前:Name_Not_Found mailto:sage [2009/10/16(金) 10:31:13 ID:???] var map の位置はグローバルや上位スコープに置くだろうから var name, map_; は var name, map_ = map; にして // map_ = map.class; name = nodes[i].getAttribute("class"); if (typeof map_.class[name] != 'undefined') nodes[i].hoge = map_.class[name]; になる
90 名前:Name_Not_Found mailto:sage [2009/10/16(金) 11:53:08 ID:???] 人間失格は8バイトぐらいじゃないか?
91 名前:Name_Not_Found mailto:sage [2009/10/16(金) 12:08:33 ID:???] 正しいJavaScriptの書き方を覚えたいのですが MDCで勉強するのがいいのでしょうか?
92 名前:64 [2009/10/16(金) 13:17:17 ID:FVxfLBkE] >>65 〜69 レスありがとうございます。 >>69 うまく画像を取り込めました。ありがとうございました。 ただ、target="_blank"を付けたのですが、 別ウインドウに表示されませんでした。 リンク先のホームページを別ウインドウに表示させるようにするには、 どうすれば良いのでしょうか? よろしくお願いします。
93 名前:Name_Not_Found [2009/10/16(金) 13:53:35 ID:fXf8+52m] 画像を上から下に降らせるjavascriptってありますよね それってどのような仕組みなのでしょうか?
94 名前:Name_Not_Found mailto:sage [2009/10/16(金) 13:57:53 ID:???] >>93 タイマー使ってCSSいじる つーかそのコード見れ
95 名前:Name_Not_Found [2009/10/16(金) 14:36:52 ID:yp2NSRTt] >>92 location.hrefをwindow.openに変えれ。
96 名前:Name_Not_Found mailto:sage [2009/10/16(金) 15:57:00 ID:???] >>88 IE8にはhasAttributeあるし IE8モードだとclassNameじゃ取れないだろ
97 名前:92=64 [2009/10/16(金) 16:33:59 ID:FVxfLBkE] >>95 レスありがとうございます。 (1)window.openに変えると、 リンク先のホームページが表示されなくなりました。 (2)あと、location.hrefの時、 1回目のクリックでリンク先が表示された後、 IEの[戻る]で元の画面を表示し、再度クリックすると、 リンク先の画面が表示されません。 どうすれば良いのでしょうか。よろしくお願いします。
98 名前:Name_Not_Found [2009/10/16(金) 18:04:27 ID:yp2NSRTt] >>97 >(1)window.openに変えると、 > リンク先のホームページが表示されなくなりました。 …いや、おいらの書き方が悪かった。 location.hrefを使わずに、window.openを使おう。 window.openは関数です。引数にURLを渡そう。 >(2)あと、location.hrefの時、 > 1回目のクリックでリンク先が表示された後、 > IEの[戻る]で元の画面を表示し、再度クリックすると、 > リンク先の画面が表示されません。 imgが既にloadedなのでonloadが発火しないからです。 if(/loaded|complete/.test(img.readyState)){ やりたいこと } みたいな処理を挟むのがいいかも。
99 名前:ペ・ヨンジュン ◆3cMgdlp8VY mailto:sagE [2009/10/16(金) 18:12:35 ID:???] >>83 文字数約73600+改行等で150〜160KB 変数に入れることは可能だろう 持ち運ぶとしてCookieに記録すると約40件になる ちなみにモバイルのブラウザで40件は無理かもしれない
100 名前:Name_Not_Found mailto:sage [2009/10/16(金) 18:54:59 ID:???] >>87 走査するノードのtypeチェックくらいしとこうよ
101 名前:Name_Not_Found mailto:sage [2009/10/16(金) 19:09:28 ID:???] >>91 「正しい」ってのは効率的な書き方ってこと? そうだったらjqueryとかprototypeだとか、そういったライブラリを 読めばいいと思うよ 読むだけじゃなくて自分の手も動かしてね
102 名前:97 [2009/10/16(金) 19:13:13 ID:FVxfLBkE] >>98 レスありがとうございます
103 名前:Name_Not_Found [2009/10/16(金) 19:17:40 ID:wwHLFfqa] 質問です。switchのdefaultって何のためにあるのでしょうか。 なくても結果が変わらないので外してもよいのでしょうか。
104 名前:Name_Not_Found mailto:sage [2009/10/16(金) 19:24:13 ID:???] >>103 調べればわかるでしょ
105 名前:Name_Not_Found mailto:sage [2009/10/16(金) 19:24:22 ID:???] if文でいうelse節だよ (全ての)条件に一致しないものが流れ着く 不要なelse節が端折れるように、defaultが不要なら端折っていい
106 名前:103 [2009/10/16(金) 19:28:28 ID:wwHLFfqa] >>104-105 さん ありがとうございます。105さん、よく分かりました。どうもです。
107 名前:Name_Not_Found mailto:sage [2009/10/16(金) 22:33:51 ID:???] defaultは先頭に置けるがな
108 名前:Name_Not_Found mailto:sage [2009/10/17(土) 01:11:50 ID:???] マウスが動いてから一秒後に動いた後の位置のX座標とY座標を表示するスクリプトを組みたいんですが、 下がうまくいかないんですがどこが間違っていますか? 初歩的なミスでしたらすいません。 <script type="text/javascript"> //<![CDATA[ function checkMousePoint(e) { if(document.all) { var x = event.clientX; var y = event.clientY; } else { var x = e.clientX; var y = e.clientY; } var myText = "X : " + x + "<br/>"; myText += "Y : " + y + "<br/>"; document.getElementById("dispArea").innerHTML = myText; } document.onmousemove = SetTimeout(checkMousePoint,1000); //]]> </script>
109 名前:Name_Not_Found mailto:sage [2009/10/17(土) 01:14:45 ID:???] マウスが動いてから一秒後に動いた後の位置のX座標とY座標を表示するスクリプトを組みたいんですが、 下がうまくいかないんですがどこが間違っていますか? 初歩的なミスでしたらすいません。 <script type="text/javascript"> //<![CDATA[ function checkMousePoint(e) { if(document.all) { var x = event.clientX; var y = event.clientY; } else { var x = e.clientX; var y = e.clientY; } var myText = "X : " + x + "<br/>"; myText += "Y : " + y + "<br/>"; document.getElementById("dispArea").innerHTML = myText; } document.onmousemove = SetTimeout(checkMousePoint,1000); //]]> </script>
110 名前:Name_Not_Found [2009/10/17(土) 01:16:13 ID:a+bs1nMh] ↑申し訳ありません。更新してしまいました
111 名前:Name_Not_Found mailto:sage [2009/10/17(土) 01:31:42 ID:???] なにもかも
112 名前:Name_Not_Found mailto:sage [2009/10/17(土) 01:33:47 ID:???] >>108 とりあえず、setTimeoutな? JavaScriptは大文字小文字を認識するんで。 あと、checkMousePointの引数のeは何なのかを考えてみな?
113 名前:Name_Not_Found mailto:sage [2009/10/17(土) 01:43:26 ID:???] >>111-112 ありがとうございました。 基本からきちんと学ぶことにします。 初心者のスレ汚しすいませんでした。
114 名前:Name_Not_Found mailto:sage [2009/10/17(土) 02:00:10 ID:???] 308 名前:Name_Not_Found[] 投稿日:2009/10/17(土) 01:33:56 ID:a+bs1nMh マウスが動いてから一秒後に動く前と動いた後のマウスのclientxとyの座標を表示させるスクリプトお願いします。 これはひどい・・・
115 名前:Name_Not_Found mailto:sage [2009/10/17(土) 02:01:27 ID:???] <div id="dispArea" onclick="clearTimeout(t)"></div> <script type="text/javascript"> var t = 0; var x = 0; var y = 0; document.onmousemove = function (e) { if (document.all) { x = event.clientX; y = event.clientY; } else { x = e.clientX; y = e.clientY; } }; function checkMousePoint() { var myText = "X : " + x + "<br/>"; myText += "Y : " + y + "<br/>"; document.getElementById("dispArea").innerHTML = myText; t = setTimeout(checkMousePoint, 1000); } checkMousePoint(); </script> >>113 がんがれ〜
116 名前:Name_Not_Found mailto:sage [2009/10/17(土) 02:24:34 ID:???] if (document.all) これは不細工だな。 if (!e) これでよかろ。
117 名前:Name_Not_Found mailto:sage [2009/10/17(土) 02:32:44 ID:???] それなら、下のを二行に分けるのも微妙な気がするぜ。 var myText = "X : " + x + "<br/>"; myText += "Y : " + y + "<br/>"; var myText = "X : " + x + "<br/>" + "Y : " + y + "<br/>"; 面倒だし、これでいんじゃね?
118 名前:Name_Not_Found mailto:sage [2009/10/17(土) 02:39:34 ID:???] >>116 は一理あるけど>>117 はただの好みだろw
119 名前:Name_Not_Found mailto:sage [2009/10/17(土) 02:46:23 ID:???] XHTMLでscript要素内に<br/>を直に書くとかもうね
120 名前:Name_Not_Found mailto:sage [2009/10/17(土) 02:56:35 ID:???] きったねぇwwwwwwwwwwwwwwwwwwwwwwwww
121 名前:Name_Not_Found mailto:sage [2009/10/17(土) 05:16:18 ID:???] innerHTMLで書換えるな>>117 とやってることが対して変わらん
122 名前:Name_Not_Found mailto:sage [2009/10/17(土) 05:27:40 ID:???] innerHTMLの書き換えがなぜいけないのか説明してくれたまえ
123 名前:Name_Not_Found mailto:sage [2009/10/17(土) 05:44:04 ID:???] DOM木が以下略
124 名前:Name_Not_Found mailto:sage [2009/10/17(土) 07:07:08 ID:???] 銭湯にバスクリンを投入するのがなぜいけないのか説明してくれたまえと同レベル
125 名前:Name_Not_Found mailto:sage [2009/10/17(土) 07:30:52 ID:???] innerHTMLはHTMLを直接いじってるのだから文字列にタグが含まれていてもいなくてもやってることは全く同じ
126 名前:Name_Not_Found mailto:sage [2009/10/17(土) 11:32:07 ID:???] >>115 を見て即座に>>119 のように思わなかった奴はinnerHTMLを使うな HTMLの基礎からやり直すレベル
127 名前:Name_Not_Found mailto:sage [2009/10/17(土) 11:40:08 ID:???] HTMLじゃなくてJavaScriptの勉強じゃね?
128 名前:Name_Not_Found mailto:sage [2009/10/17(土) 11:44:43 ID:???] <script>内に<br>を仕込んだらいけない理由なんてあんの?
129 名前:Name_Not_Found mailto:sage [2009/10/17(土) 12:08:24 ID:???] とりあえず>>127-128 は今後innerHTMLを使うな
130 名前:Name_Not_Found mailto:sage [2009/10/17(土) 12:17:54 ID:???] 勉強すべきはxhtmlの基礎だろ html勉強してどうするんだ
131 名前:Name_Not_Found mailto:sage [2009/10/17(土) 12:37:25 ID:???] なんか一概に言えなくて説明しにくいんだけど おそらく4の倍数から外れたときに計算処理が重くなる・・
132 名前:Name_Not_Found mailto:sage [2009/10/17(土) 12:42:44 ID:???] 日記ならチラシの裏に書いてくれ
133 名前:Name_Not_Found mailto:sage [2009/10/17(土) 12:46:50 ID:???] ダメダメじゃなくてさぁ>>115 なんて単純な構造なんだし 妥当なものに書き替えてやるなり、ピンポイントに 指摘するなりがあると助かるゾ。
134 名前:Name_Not_Found mailto:sage [2009/10/17(土) 12:47:33 ID:???] 誤爆だよカス いちいちレス消費するだろスルーしてろクズが
135 名前:Name_Not_Found mailto:sage [2009/10/17(土) 13:11:59 ID:???] 乱数生成なんですが、var arr = new Array(10)という配列があった とき、Math.randomに掛ける数値はそのままarr.lengthでいいのでしょ うか。それとも、arr.length-1ですか?arr.lengthだと最後の要素が 出ないように思うのですが。なんだかいろいろ考えていたら分から なくなってしまいました。やさしく教えてください。 あと、乱数結果の最小値と最大値を確認する方法ってありまうか。
136 名前:Name_Not_Found mailto:sage [2009/10/17(土) 13:25:24 ID:???] >>129 早く教えてよ^^
137 名前:Name_Not_Found mailto:sage [2009/10/17(土) 13:30:42 ID:???] >>135 Math.random は0以上1未満の乱数を発生させる 10倍すれば0以上10未満 あとは分かるな?
138 名前:Name_Not_Found mailto:sage [2009/10/17(土) 13:35:52 ID:???] >>135 配列アクセスなら*length Math.randomの返す値が0-0.99・・・だから
139 名前:Name_Not_Found mailto:sage [2009/10/17(土) 13:56:41 ID:???] >>133 お前がやれ このレベルで指摘できないならお前も二度とinnerHTMLを使うな
140 名前:Name_Not_Found mailto:sage [2009/10/17(土) 13:57:06 ID:???] XHTMLがどうのって言ってるやつ、もしかして<br/>じゃなくて<br />だろって思ってんの?
141 名前:Name_Not_Found mailto:sage [2009/10/17(土) 14:24:37 ID:???] 一度に離れた位置にノードを挿入するには ツリー丸ごとコピーして挿入して元のツリーと差し換えるしかないの?
142 名前:Name_Not_Found mailto:sage [2009/10/17(土) 14:33:04 ID:???] 一度に離れた位置 の意味が解からんが 一度に複数のノードを挿入するのは innerHTML でも appendChild でも insertBefore でも replaceChild でも 好きなものを使え。
143 名前:Name_Not_Found mailto:sage [2009/10/17(土) 14:46:43 ID:???] >>135 Math.random()*10+0)で0〜10 Math.random()*3242+1847)で1847〜3242
144 名前:Name_Not_Found mailto:sage [2009/10/17(土) 14:57:21 ID:???] えっ
145 名前:Name_Not_Found mailto:sage [2009/10/17(土) 15:06:33 ID:???] あっ
146 名前:Name_Not_Found mailto:sage [2009/10/17(土) 15:09:31 ID:???] ミスった こっちが正解 Math.random()*10+0)で0〜9 Math.random()*3242+1847)で1847〜5088
147 名前:Name_Not_Found mailto:sage [2009/10/17(土) 15:32:55 ID:???] その閉じ括弧はなにw あと境界条件をないがしろにしたらあかん 「"1未満"の最大値」の10倍は「"10未満"の最大値」であって9じゃないぞ
148 名前:Name_Not_Found mailto:sage [2009/10/17(土) 15:57:10 ID:???] >>147 ごめんfloorでまとめてた
149 名前:Name_Not_Found mailto:sage [2009/10/17(土) 17:28:47 ID:???] 初心者はレスすんな
150 名前:ペ・ヨンジュン ◆3cMgdlp8VY mailto:sagE [2009/10/17(土) 17:34:29 ID:???] ア=Math.floor(Math.random()*イ+ウ) だったら ウ≦ア<イ+ウ(アは整数) だっけ? 心配だから試してみた イ=1000;ウ=1000;大=0;小=ウ*ウ; for(i=0;i<1000;i++){ア=Math.floor(Math.random()*イ+ウ);if(大<ア){大=ア};if(小>ア){小=ア}} エ="間違い";if(ウ<=小&&大<(イ+ウ)){エ="真偽不明"}if(ウ==小&&大==(イ+ウ-1)){エ="正しい"} alert("仮説が正しいとすると結果は\n"+ウ+"以上"+(イ+ウ)+"以下の整数のはず\n実際の結果は\n"+小+"〜"+大+"だから\n仮説は【"+エ+"】") 結果:合ってるっぽい
151 名前:Name_Not_Found mailto:sage [2009/10/17(土) 20:28:17 ID:???] xとy座標指定するときにうっかり0の存在忘れそうになるんだがどうしたらいい
152 名前:Name_Not_Found mailto:sage [2009/10/17(土) 20:55:31 ID:???] >>140 話にならん、教科書レベルからやり直せ
153 名前:Name_Not_Found mailto:sage [2009/10/17(土) 21:14:11 ID:???] >>152 だからXHTMLじゃなくて、JavaScriptの話だろ?
154 名前:Name_Not_Found mailto:sage [2009/10/17(土) 21:26:38 ID:???] >>153 そう思ってんならお前も出直せ
155 名前:Name_Not_Found mailto:sage [2009/10/17(土) 21:27:28 ID:???] あえて言うならSGMLの話かな
156 名前:Name_Not_Found mailto:sage [2009/10/17(土) 21:28:24 ID:???] 馬鹿の一つ覚え
157 名前:Name_Not_Found mailto:sage [2009/10/17(土) 21:36:59 ID:???] この話は>>123 で終わってるし
158 名前:Name_Not_Found mailto:sage [2009/10/17(土) 21:44:38 ID:???] 結局「なんとなく」でしか理解してなくて きちんと説明できる奴はいないんだな
159 名前:Name_Not_Found mailto:sage [2009/10/17(土) 21:49:37 ID:???] ぐぐってみた タグとして認識されてしまうから script 要素内に「<」「&」を書いてはならない →>とかであらわせばおk?
160 名前:Name_Not_Found mailto:sage [2009/10/17(土) 21:58:25 ID:???] >>155 あえて言うならXMLだろ
161 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:02:04 ID:???] つまり>>117 をこうしろってことか? document.getElementById("dispAreaX").innerHTML = "X : " + x; document.getElementById("dispAreaY").innerHTML = "Y : " + y;
162 名前:135 mailto:sage [2009/10/17(土) 22:02:46 ID:???] 乱数の質問者です。みなさんご回答ありがとうございました。コードと か読ませて頂きましたが余計分からなくなりました(笑
163 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:10:47 ID:???] ・JavaScriptとHTMLを連携させるためにDOMという概念を使ってアクセスしている ・innerHTML,innerText,textContentはDOM木を破壊する(再構築される)ので要素の書き換えのために使うべきではない ・innerHTML,innerTextは、元はMSが勝手に作った独自プロパティ ・IEのシェアが大きすぎるためやむを得ず他のブラウザも追従した ・要素を作るにはcreateElementとcreateTextNode、要素を追加するにはappendChild、 削除するにはremoveChild、置き換えるにはreplaceChildと専用のプロパティが存在する。 ・速度的にはinnerHTMLが早い(纏めてパースするため) たぶんこんな感じ。記憶が正しければ
164 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:11:32 ID:???] 失礼なやつ
165 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:14:56 ID:???] >>159 外部のscriptファイルを読み込めばおk 確かに>>115 は直接書いちゃってるから駄目だな つまりなんだ、独自拡張だからinnerHTMLは駄目だと言ってるのか XHTMLの話じゃないっしょ
166 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:22:04 ID:???] >>163 なるほど。 正解はreplaceChildだが、速度を考えれば慣例化してるinnerHTMLって感じになるか?
167 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:31:33 ID:???] >>166 どちらが正解とかそういう問題じゃないね あえて言うなら状況に応じて使い分けるのが正解
168 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:32:45 ID:???] innerHTMLはHTML5に含まれる(ことになっている)。 今更仕様的に非推奨みたい書くのは時代遅れ。 まあ、イベントリスナーが消えたり、scriptが実行されたりとか、 素人が使うとミスりやすいのは事実。
169 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:34:03 ID:???] 無粋を承知でまとめるとinnerHTMLは DOMツリーを壊すからいかんと言っているのと #PCDATAだからいかんと言っているのと2派いて 片方しか理解してない奴が数名いる感じ
170 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:34:39 ID:???] プロパティじゃなかった。メソッドの間違いだった、 innerHTML,innerText, ...etcがプロパティだ >>166 速度より〜.innerHTML = "String"みたいに代入だけで置き換えられるのが一番大きいと思う replaceChildだと代入みたいに単純には出来ない 〜.replaceChild([置換後のノード],[置換前のノード]);
171 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:36:26 ID:???] 昔のMozillaのinnerHTMLは死ぬほど遅かった
172 名前:Name_Not_Found mailto:sage [2009/10/17(土) 22:54:36 ID:???] >>169 もしかして ・innerHTML使うと多くの場合でリテラルに<>が出現する ・XHTMLのインラインスクリプトで<>は使えない →だからXHTMLでinnerHTMLは使うな というずれた主張してるヤツがいるってことか >>129 の意味とかやっとわかったわ つーかインラインスクリプトはCDATAで括るのがXHTMLの常識じゃなかったのか? 実態参照でも別ファイルでも構わんけどさ DOMツリー云々は>>6 でおk?
173 名前:Name_Not_Found mailto:sage [2009/10/17(土) 23:14:25 ID:???] >>172 >つーかインラインスクリプトはCDATAで括るのがXHTMLの常識 え
174 名前:Name_Not_Found mailto:sage [2009/10/17(土) 23:33:28 ID:???] >>172 さんよろしかったら「正しい知識を付けたい人のためのJAVASCRIPT」講座やってください
175 名前:Name_Not_Found mailto:sage [2009/10/18(日) 00:22:10 ID:???] エスケープもできない奴にinnerHTMLを与えるなってことだろ innerHTMLに限らずdocument.writeだってそう まともにエスケープできてるものなんてまず見ない だからHTML5で妙な構文修正やら入ったんだぜ よかったなお前ら、ブラウザ様に感謝しろ それでもscript内の</は駄目だからバカの一つ覚えでこれだけは避けろ
176 名前:Name_Not_Found mailto:sage [2009/10/18(日) 00:31:07 ID:???] >>175 訂正 バカの一つ覚えでscript内を<!--...//-->で囲め </を避けるのは高度過ぎたな
177 名前:Name_Not_Found mailto:sage [2009/10/18(日) 00:50:32 ID:???] >>176 だからそれXHTMLで通用しないからバカの一つ覚えになってない
178 名前:Name_Not_Found mailto:sage [2009/10/18(日) 01:11:13 ID:???] 賢いつもりのバカは声がでかいぶんただのバカより厄介だな
179 名前:Name_Not_Found mailto:sage [2009/10/18(日) 01:20:57 ID:???] XHTMLで通用しないってのも時代遅れ感あるな。 わざわざ Content-Type: application/xhtml+xml 使うようなモノ好きな人はそんなことは百も承知だろうし。
180 名前:Name_Not_Found mailto:sage [2009/10/18(日) 01:31:06 ID:???] >>177 ほとんどの奴はXHTMLをtext/htmlにしているから事実上HTMLと同じ application/xmlなXHTMLを書ける奴なら>>115 のようなミスはしない HTML5は非XML構文でも<br/>を許すようにした HTML5は非XML構文でscriptなど特定の要素内でのみ使える新構文<!--...-->を導入した (これはコメントではない) これらによりSGML互換の夢は完全に潰えたがそれはどうでもいい バカは無理してXHTMLを書くな HTMLにしとけ、な
181 名前:Name_Not_Found mailto:sage [2009/10/18(日) 01:37:17 ID:???] てかスクリプトは別のファイルに書いとけよ
182 名前:Name_Not_Found mailto:sage [2009/10/18(日) 03:07:56 ID:???] >>178 空っぽの容器が一番大きな音を立てるんだぜ?
183 名前:Name_Not_Found [2009/10/18(日) 09:40:27 ID:4XCaQKiu] JavaScriptでブラウザーのステータスバーの文字を変更できますが、 これって何のためにあるのでしょうか。ユーザビリチィの点で問題で はないでしょうか。悪意のあるスクリプトが書けるようにどうし て放置されているのでしょうか。
184 名前:Name_Not_Found mailto:sage [2009/10/18(日) 10:11:11 ID:???] おかげでJavaScript自体オフにされちゃうからなぁ JavaScript以外の言語、HTMLとかでも言えるけど 特にIE
185 名前:ペ・ヨンジュン ◆3cMgdlp8VY mailto:sagE [2009/10/18(日) 10:38:39 ID:???] >>183 ごめんけどRPG作ってた頃に ブラウザ互換が面倒でよく使ってたわ 友達からはまあまあ好評だったけどなぁ
186 名前:Name_Not_Found mailto:sage [2009/10/18(日) 10:53:01 ID:???] marquee要素やtarget属性的な
187 名前:Name_Not_Found mailto:sage [2009/10/18(日) 14:15:07 ID:???] 問題があるのはわかってるけど、消したくても互換性のために消すわけ にいかないというところだと思う。
188 名前:Name_Not_Found mailto:sage [2009/10/18(日) 18:47:01 ID:???] setTimeoutとsetIntervalどっち使ったらいいかがわかりません。 場合によって使い分けするものなのか、好みなのか どっちなんでしょうか
189 名前:Name_Not_Found mailto:sage [2009/10/18(日) 19:01:11 ID:???] 誤差しかないから好みでいいときもあるけど、基本は使い分け
190 名前:Name_Not_Found [2009/10/18(日) 19:09:40 ID:2WeTZpL7] IE8のことで困ってます。 何らかのイベントが発生した際にデフォルトのブラウザ動作を 行わないようにしたいと思っています。 しかし、IE8ではreturnValueにfalseを設定してもデフォルトの 動作が行われてしまいます。 どうすればいいでしょうか。アドバイスよろしくお願いします。 <div onmousedown="window.event.returnValue=false;">AAAA</div> ※テキストが選択されてしまう
191 名前:190 [2009/10/18(日) 19:26:30 ID:2WeTZpL7] 失礼しました。 私の勘違いでした。ちゃんとデフォルトの動作はキャンセルされてました;
192 名前:Name_Not_Found mailto:sage [2009/10/19(月) 01:30:34 ID:???] クラス内のメソッドに対してクラス内で window.setInterval(this.Foo, 1000); としても動作しないのですが何が問題なのかご教授よろしくお願い致します。
193 名前:192 mailto:sage [2009/10/19(月) 01:36:38 ID:???] スミマセン、自己解決ですorz this.Foo側で読み込んでいたメソッドにバグがあったようです。 スレ汚し申し訳ないです。
194 名前:Name_Not_Found mailto:sage [2009/10/19(月) 01:38:31 ID:???] this.Foo 内のコードに this が書かれてるに 2 ペソ。
195 名前:192 mailto:sage [2009/10/19(月) 01:44:24 ID:???] >>194 正解です、1000万ペリカ進呈いたします。w どうしてエラーになるんですか?
196 名前:Name_Not_Found [2009/10/19(月) 01:58:37 ID:h+JGiZjA] >>195 いやいや。 setIntervalに渡した関数はwindowオブジェクトのメソッドとして 呼び出されるんだよ。すなわち、thisはwindowオブジェクトを指してる訳。
197 名前:Name_Not_Found mailto:sage [2009/10/19(月) 02:01:17 ID:???] >>195 今の場合、this.Foo に代入されてる function オブジェクトを「関数」として呼び出しているから。 this には Global オブジェクト(window オブジェクト)がセットされる。 コンテキストが分からないから何とも言えないが、 var that = this; window.setInterval(function() { that.Foo(); }, 1000); ならうまくいきそうな気がする。
198 名前:Name_Not_Found mailto:sage [2009/10/19(月) 02:01:49 ID:???] >>195 callとかapplyを使えばOK
199 名前:Name_Not_Found mailto:sage [2009/10/19(月) 02:38:24 ID:???] やーね、また Geno が流行ってきてるの?
200 名前:Name_Not_Found mailto:sage [2009/10/19(月) 03:08:06 ID:???] >>196 ,197,198 ご丁寧な解説ありがとうございました。^ ^ なぞが解けました。
201 名前:Name_Not_Found mailto:sage [2009/10/19(月) 09:31:24 ID:???] javascriptってmainから始まらないの?
202 名前:Name_Not_Found mailto:sage [2009/10/19(月) 09:56:01 ID:???] Yes
203 名前:Name_Not_Found mailto:sage [2009/10/19(月) 10:52:18 ID:???] javascriptで格闘ゲームをつくってみたいのですが 何かデモのある良いサイト教えて
204 名前:Name_Not_Found mailto:sage [2009/10/19(月) 12:48:30 ID:???] >>203 ttp://www.moongift.jp/2007/12/javascript_gamelib/
205 名前:Name_Not_Found mailto:sage [2009/10/19(月) 13:50:54 ID:???] >>203 どうせならゼロから作ってみるのもいいかも ライブラリを組むいうことは、すごい良い経験になるはず
206 名前:Name_Not_Found mailto:sage [2009/10/19(月) 15:57:34 ID:???] よくjavascriptを使ってテキストエリアの文字色や背景、 見出しやリストなんかを編集できるサイトがあるけど(ブログとか)、 ああいう機能を実現するスクリプトでフリーでオススメのがあったら教えてください。 上に書いた程度のことが実現できれば良いです。 今はtinyMCE?だったかな?外なんで分からんけど、ちょっと高機能すぎてもてあまし気味。
207 名前:Name_Not_Found mailto:sage [2009/10/19(月) 16:32:14 ID:???] >>202 えっ!javascriptってmainから始まるの?
208 名前:Name_Not_Found mailto:sage [2009/10/19(月) 16:45:16 ID:???] うるさい
209 名前:Name_Not_Found mailto:sage [2009/10/19(月) 16:49:03 ID:???] >>207 英語やってみな あんた嬉しいんじゃない?
210 名前:Name_Not_Found mailto:sage [2009/10/19(月) 17:21:14 ID:???] Does javascript begin with main ?
211 名前:Name_Not_Found mailto:sage [2009/10/19(月) 17:23:57 ID:???] Yes, it does.
212 名前:Name_Not_Found mailto:sage [2009/10/19(月) 17:30:50 ID:???] >>210 notがいるんじゃね?
213 名前:Name_Not_Found mailto:sage [2009/10/19(月) 17:50:46 ID:???] Does not javascript begin with main ?
214 名前:Name_Not_Found mailto:sage [2009/10/19(月) 17:56:53 ID:???] Yes, it does.
215 名前:Name_Not_Found [2009/10/19(月) 17:57:56 ID:/Ma7yI8j] tiddlywikiはIE,Firefox,operaでも動作するjavascriptを使ったwikiですが javascriptでファイルへの書き込みはできるのでしょうか?
216 名前:Name_Not_Found mailto:sage [2009/10/19(月) 18:09:25 ID:???] >>215 ソース見りゃいいじゃん、ヒントはsaveFile ネットとローカルでセキュリティポリシー違うのは忘れんな
217 名前:Name_Not_Found [2009/10/19(月) 18:17:54 ID:h+JGiZjA] すみません。 IE8であるスクリプトの処理速度を測定するにはどうすればいいでしょうか? もしアドオンなどがありましたら、教えてください。 よろしくお願いします。
218 名前:Name_Not_Found mailto:sage [2009/10/19(月) 18:39:23 ID:???] 古典的だが、始まる前にnew Date() 終わったところでnew Date() 後者から前者を引く
219 名前:Name_Not_Found mailto:sage [2009/10/19(月) 19:05:43 ID:???] var b = new Date().getTime; 〜ここに処理を書く〜 alert(new Date().getTime - b + "ms秒かかったよ!!");
220 名前:217 [2009/10/19(月) 19:14:49 ID:h+JGiZjA] >>218-219 どうもありがとうございます。 Dateを用いて測定することにしたいと思います。 IE8のデバッガで測定できればよかったんですけどね。
221 名前:Name_Not_Found [2009/10/20(火) 12:00:29 ID:j/Vxh/Ys] フォームの連続送信を防ごうと、以下のようなソースを書きました。 function formSubmit(){ document.getElementById('sbm').disabled = true; document.form1.submit(); } <form action="form.php" method="post" onsubmit="formSubmit"> <input id="sbm" type="submit" value="内容確認"> </form> ボタンを押した時、disabled状態になって連続送信を防げるのですが、 Firefox3.5.3では確認画面からブラウザの「戻る」で前に戻った時、 ボタンが押せません。IE7では入力画面に戻っても再びボタンを押せます。 どうやってFirefoxに対応させればいいのでしょうか?
222 名前:221 mailto:sage [2009/10/20(火) 12:01:49 ID:???] すみません。ソースがちょっと変でした・・・。 function formSubmit(){ document.getElementById('sbm').disabled = true; document.form1.submit(); } <form name="form1" action="form.php" method="post" onsubmit="formSubmit();"> <input id="sbm" type="submit" value="内容確認"> </form>
223 名前:Name_Not_Found mailto:sage [2009/10/20(火) 13:08:52 ID:???] >>222 確認してないからアイデア止まりだけど、window.onloadでdisabled = trueしてみたら? それか、記憶(再設定)するのはフォーム関連だけだったと思うから、アプローチを変えて submitしたときにフォーム外側のブロックをdisplay: noneにして「送信中」と表示するとか
224 名前:221 mailto:sage [2009/10/20(火) 13:25:44 ID:???] >>223 windows.onloadでいけました。後者の方法も有りですよね。 1つの関数だけで納められればと思ったのですが、これらの方法を使います。
225 名前:221 mailto:sage [2009/10/20(火) 13:30:24 ID:???] すみません、window.onloadは勘違いでした・・。 これを入れても前の画面に戻ったらボタンはdisabled状態です。 もう少し考えてみます。
226 名前:Name_Not_Found mailto:sage [2009/10/20(火) 15:58:46 ID:???] Javascriptと直接絡むか微妙ですが、HTMLのselectタグによる プルダウンでプルダウンの項目一覧が開いた瞬間と閉じた瞬間 を取得できるイベントってありますでしょうか? 開くのをonMouseDown、閉じるのをonChangeでやっているのですが、 これだと値を変更しなかった場合に閉じるが取れなくて困っています。 代替案でもよいのでご教授いただけるとありがたいです。
227 名前:Name_Not_Found mailto:sage [2009/10/20(火) 16:14:03 ID:???] >>226 selectのonchangeってブラウザによってタイミングが違ったような気がするけど...
228 名前:Name_Not_Found mailto:sage [2009/10/20(火) 16:20:27 ID:???] >>227 言い忘れてましたが、IE8のみ対応の案件です。 なのでIE8限定の対処方法でもOKです。
229 名前:Name_Not_Found mailto:sage [2009/10/20(火) 16:30:58 ID:???] onmousedownも微妙なんだよね。 Alt+↓とかで開いたりすることもあるし。 onchangeだって開かなくても変更(選択してから上下等)すれば起こる。 そのイベントで「何をしたいか」をはっきりさせてくれると代替案が出しやすい。
230 名前:Name_Not_Found mailto:sage [2009/10/20(火) 17:47:12 ID:???] やりたい事は、プルダウンが開いた時にだけwidthを広げ、プルダウンが 閉じた時にwidthを元に戻すというものです。 プルダウンの項目の中に長い文字があって、元のwidthより広くなる場合、 IEだと広がった部分の幅が元のwidthと同じなので文字が全部表示され ないんですよね……。(Firefoxとoperaでは問題ないのですが)
231 名前:Name_Not_Found mailto:sage [2009/10/20(火) 17:48:23 ID:???] ちとめんどくさいね。 開き方としてはつぎの二通り mousedown => focus focus => keydown こいつらフラグなり駆使して監視してやればOK それが自分でできないなら仕様を再検討するべき じゃ頑張って
232 名前:Name_Not_Found [2009/10/20(火) 18:01:09 ID:3YpkaVyV] >>226 かなり無理があるやり方だけど。 var count = 0; select.onfocus = function(){ select.onmouseup = function(){ count++; if(count % 2 == 0){ // ここで、selectが閉じる(たぶん)。 select.onmouseup = null; count = 0; } }; }; 手づくりaddEventListenerで書いたのを、適当に書き直したから 間違いがあるかもしれない。
233 名前:232 [2009/10/20(火) 18:02:51 ID:3YpkaVyV] リロードしないで書き込んだらかぶった… すみません。
234 名前:Name_Not_Found mailto:sage [2009/10/20(火) 20:23:21 ID:???] >>231 ,232 ありがとうございます。アドバイスを参考に下記のようにしてうまくいきました! var Count = 0 function SelectOnMouseUp(){ if(Count == 0){ document.form.pulldown.style.width = 50; } } function SelectOnMouseDown(){ if(Count == 0){ Count = 1; document.form.pulldown.style.width = 200; } else if(Count == 1){ Count = 0; } } function SelectOnKeydown(){ if(Count == 1){ Count = 0; document.form.pulldown.style.width = 50; } } function SelectOnBlur(){ document.form.pulldown.style.width = 50; } <select name="pulldown" style="width:50px" onmousedown="javascript:SelectOnMouseDown()" onmouseup="javascript:SelectOnMouseUp()" onkeydown="javascript:SelectOnKeydown()" onblur="javascript:SelectOnBlur()" >
235 名前:Name_Not_Found mailto:sage [2009/10/20(火) 21:38:21 ID:???] なんというjavascriptスキームの嵐…
236 名前:Name_Not_Found mailto:sage [2009/10/20(火) 21:41:30 ID:???] <html></body> <div style="width:450;height:450px;border:1px solid blue;cursor:pointer;"> <canvas id="tes1" width=450 height=450 style="position:relative;background-color:rgb(200,0,0);"></canvas> <canvas id="tes2" width=450 height=450 style="position:relative;bottom:450px;background-color:rgba(0,0,200,0.5);"></canvas> </div><div style="border:1px solid black;">foot</div> </body></html> これfirefoxだとfoot含むした側に450pxらしきものがあったり operaだとfootの上に450*2px分出てきてしまうけど どうにかならんのかおしえて。 ・一番上のdivのwidthを450*2以上にして、bottomのところをleft:450px;というのはなしで ・absoluteもなしで
237 名前:Name_Not_Found mailto:sage [2009/10/20(火) 21:42:18 ID:???] 訂正 →left:-450px;
238 名前:Name_Not_Found mailto:sage [2009/10/20(火) 21:43:12 ID:???] 次の方どうぞー
239 名前:Name_Not_Found mailto:sage [2009/10/20(火) 23:32:59 ID:???] >>236 1行目からそれかいっ!
240 名前:Name_Not_Found [2009/10/21(水) 00:02:44 ID:yjVdHlcU] Cドライブの中におけば実行されるのに Gドライブの中に置いたファイルはJavaScriptが無効になって <noscript>の中身が見える 何だよこれ死ねよ
241 名前:Name_Not_Found mailto:sage [2009/10/21(水) 00:03:59 ID:???] >>236 どうなって欲しいのかを書きなさいよ。 たぶんJavaScript関係ない。CSSの問題。
242 名前:Name_Not_Found mailto:sage [2009/10/21(水) 00:24:51 ID:???] Gドライブなんて恐くて開けません><
243 名前:Name_Not_Found mailto:sage [2009/10/21(水) 00:44:05 ID:???] <noscript>ならブラウザのセキュリティポリシーだろ CSS関係ない
244 名前:Name_Not_Found mailto:sage [2009/10/21(水) 04:34:23 ID:???] >>239 今気づいた。そして爆笑したw
245 名前:Name_Not_Found [2009/10/21(水) 09:44:28 ID:pBH87KYD] Jscriptはjavascriptをカバーしていて独自の拡張性をもっているの ならJscrriptはjavascriptの上を行っているのですよね。そんなす ごいものならなぜみんな使わないのですか? あと将来的に、javascriptがJscriptになる日は来ますか?勉強した 方がよいでしょうか。
246 名前:Name_Not_Found mailto:sage [2009/10/21(水) 10:27:02 ID:???] >>245 独自の拡張性を持っていることは優れているということに繋がらない 「IEのCSSが独自拡張してるから優れてますよね?」って言ってるのと同じ なのでJavaScript勉強した方がいい
247 名前:Name_Not_Found mailto:sage [2009/10/21(水) 11:49:52 ID:???] たとえばLinuxはウインドウの描画をするためにX Windowというものを使っている このX Windowは1987年に仕様が決定されて以来拡張や変更が行われずにほぼ完全な互換性を維持している 互換性って大切なんだぜ
248 名前:Name_Not_Found mailto:sage [2009/10/21(水) 17:41:07 ID:???] var isNewIE = typeof(document.documentElement.style.msInterpolationMode) != "undefined" ? true : false; なんかもっとスマートなやり方があったような気がする。。。
249 名前:Name_Not_Found mailto:sage [2009/10/21(水) 18:20:18 ID:???] >>248 IEのバージョン判定? なら条件コンパイルで@_jscript_versionを見りゃいいだろ
250 名前:Name_Not_Found mailto:sage [2009/10/21(水) 18:37:29 ID:???] var IE = false; /*@cc_on IE = true;@*/ alert(IE);
251 名前:Name_Not_Found mailto:sage [2009/10/21(水) 18:39:38 ID:???] >>245 > javascriptがJscriptになる日は来ますか? 来ません IE 専のサイト作るつもりならお好きにどうぞ WSH で使えるから無駄にはならんと思うけど Web 標準とはちょっと違う方向を向いてる訳です
252 名前:Name_Not_Found mailto:sage [2009/10/21(水) 18:39:51 ID:???] 10年前のネット初心者時代ActiveXは脅威だった まだダイヤルアップ時代だったからな エロサイトは100%なんかしら仕掛けがしてあるし アンチウイルスソフトは精度が低くてあてにならないし うっかりインストール許可してしまうと国際電話やらQ2に勝手に接続するプログラムがよくあったものだ JScriptとVBスクリプトは負の遺産 MSはNTTにとられた2万円を俺に返すべき
253 名前:Name_Not_Found mailto:sage [2009/10/21(水) 18:50:41 ID:???] >>252 (´;ω;`)ブワッ
254 名前:Name_Not_Found mailto:sage [2009/10/21(水) 19:10:33 ID:???] IEは負の遺産
255 名前:Name_Not_Found mailto:sage [2009/10/21(水) 19:11:34 ID:???] ( ;∀;) イイハナシダナー
256 名前:Name_Not_Found mailto:sage [2009/10/21(水) 22:10:02 ID:???] >>252 小学生の俺ダナー
257 名前:Name_Not_Found mailto:sage [2009/10/22(木) 00:50:08 ID:???] 当時はスクリプト、ActiveX切るのが当たり前だったな…
258 名前:Name_Not_Found mailto:sage [2009/10/22(木) 01:24:41 ID:???] ダイヤルアップで切り忘れて大変なことになったなあ
259 名前:Name_Not_Found mailto:sage [2009/10/22(木) 01:52:09 ID:???] >>249 XP SP3以降はIE6でもJScript5.7なんだけど ビルドバージョンを見るの?
260 名前:Name_Not_Found mailto:sage [2009/10/22(木) 03:16:32 ID:???] レンダリングエンジンの特徴を調べるのに スクリプトエンジンのバージョンを見ても仕方ない 逆も同じ いい加減isIEとかの無意味さに気付くべき
261 名前:Name_Not_Found [2009/10/22(木) 06:14:33 ID:nMh36VKS] オブジェクト?内で他の要素にアクセスするにはどうしたらいいでしょうか var obj = { a : function () { alert('a'); }, b : function () { obj.a(); } // ここで a の alert('a')を出したい } 自分でもよくわからんことやってて混乱してます。 可能ならばお教えくださいm(__)m
262 名前:Name_Not_Found mailto:sage [2009/10/22(木) 06:44:34 ID:???] >>261 this.a()
263 名前:Name_Not_Found [2009/10/22(木) 07:10:08 ID:nMh36VKS] >>262 ありがとうございます!!
264 名前:Name_Not_Found [2009/10/22(木) 07:47:52 ID:qxFhJRXR] JavaScriptは、携帯ホームページでは使えないのでしょうか?
265 名前:Name_Not_Found mailto:sage [2009/10/22(木) 08:13:30 ID:???] 839 名前:nobodyさん[] 投稿日:2009/10/22(木) 07:53:18 ID:wrpHBrml Cookieは携帯ホームページでも使えるのでしょうか? まとめてレスしてやる ぐぐれば3秒でわかるようなことはググリなさい
266 名前:Name_Not_Found mailto:sage [2009/10/22(木) 13:19:45 ID:???] 貴様、名のあるエコロジストだな!
267 名前:Name_Not_Found [2009/10/22(木) 18:31:41 ID:ZpZioJnp] a = new Array(); a[0] = 1; a[1] = 2; hoge(a); function hoge(a) { alert(a.length)←これは出る for (i = 0; i < a.length; i++) {←なのに、ここのaに対してundefinedエラー 処理 } } これってなぜなんでしょうか?
268 名前:267 [2009/10/22(木) 18:46:25 ID:ZpZioJnp] あ、alert(a.length)の時点でも出てました でもちゃんと値も出るんですよね alert(a[0]) や alert(a[1]) でもちゃんと出ます 値が入ってるのにundefinedってどういうことなのでしょうか?
269 名前:Name_Not_Found [2009/10/22(木) 18:59:45 ID:XbobHndb] >>268 何か書き間違えてない?当方問題なく動作するよ。 firebugの為に関数を前にしたけど。
270 名前:267 mailto:sage [2009/10/22(木) 19:45:20 ID:???] 仰る通りの凡ミスでした。。 実際のコードでは想定外の動きで2度関数が呼ばれており、 1度目では正式な配列値が渡り正常にlengthがalertされ、 2度目では値が渡らずundefinedで、 それらの一連の動きを1度の動作と思い込んでいました。 お手を煩わせて申し訳ありません。
271 名前:Name_Not_Found [2009/10/22(木) 22:40:48 ID:e856PHph] 質問です a.html?k=aaaのようなパラメータがついたページを ポップアップで開かせているのですが、 a.html?k=aaaに貼られたリンクや直接アドレスが入力されて 開かれた場合はページを閉じるようにしたいのですが そんな感じの方法があれば教えてください ポップアップ以外ではa.html?k=aaaというページを 開かれたくないので「閉じる」じゃなくてもかまいません なにかいい方法ないでしょうか?
272 名前:Name_Not_Found mailto:sage [2009/10/22(木) 23:03:31 ID:???] よく分かんないんだけどlocation.searchチェックかな
273 名前:Name_Not_Found mailto:sage [2009/10/22(木) 23:20:46 ID:???] それじゃできないんじゃない? popupでも使えるのかはわからないけど、Refererかな? あとはiframeの中に表示する部分の文字の色を白にしてoverlibのCSSで背景設定。iframeって背景透過できたよね? いろいろ勘違いだったらスマソ
274 名前:Name_Not_Found [2009/10/22(木) 23:41:12 ID:2Opy8K0k] var hairetu = alert(1); hairetu; この2行のようにhairetuにアラートを入れて、hairetuを呼び出したらアラートが出るようにできませんか? function使えばできますが変数でやれる方法ってありませんか?
275 名前:Name_Not_Found mailto:sage [2009/10/22(木) 23:47:48 ID:???] ファーストクラスオブジェクトだとそれできないんだわ 添え字無しの配列は[0]の値を返してほしいとかいうのに近い どういう例がわかりやすいかがわからないけど一例として var a = alert; a(a); // alert(alert);
276 名前:Name_Not_Found mailto:sage [2009/10/23(金) 00:03:08 ID:???] >>274 >function使えばできますが変数でやれる方法ってありませんか? functionも変数に入れられるよ。
277 名前:Name_Not_Found mailto:sage [2009/10/23(金) 09:12:33 ID:???] >>271 opener.document.URLが想定外のものだったり取得できなかったらエラー画面に遷移でどうかな? 閉じるのはブラウザによって警告が出るだろうからしないほうがいいかも
278 名前:Name_Not_Found [2009/10/23(金) 10:40:33 ID:YOGrBGKc] どこで質問していいか分からなかったので、ここで質問させてください。 "http"のページでJavaScriptにてログインフォームを生成していて、action先は"https"なフォームを作っているのですが、 http から https へデータを飛ばすのはセキュリティー上よくない事なのでしょうか? 分かっているのは、http -> http はダメで、https -> https はちゃんとデータが暗号化されている ということです。 スレ違いな質問でしたら誘導して頂けるとありがたいです。 よろしくお願いします!
279 名前:Name_Not_Found mailto:sage [2009/10/23(金) 11:17:25 ID:???] > http から https へデータを飛ばすのはセキュリティー上よくない事なのでしょうか? 大丈夫ちゃんとPOSTデータは暗号化されてるよ ただあなたのようにセキュリティー上どうなの?って思った人から質問がきたり 自称Web関連技術に多少詳しい人が危険だと思い込んで苦情ぶつけてくるのを想定して 最初からhttpsにしておいたほうがいいんじゃない? そんなに送る内容が重要でもないのならSSLを無理に使う必要もないし 使いたい人にはSSLモードに切り替えるリンクを張っておくみたいな感じでいいんじゃないかな
280 名前:Name_Not_Found mailto:sage [2009/10/23(金) 11:17:52 ID:???] スレチだけど誘導先知らんから軽く答えておくと、それやるとHTTPS使うメリットが半減する フォーム自体の安全性が保証されないからたとえば送信先を書き換えられる可能性が生まれる とはいえ安全性を削ってでも利便性を取るパターンはある
281 名前:Name_Not_Found [2009/10/23(金) 11:49:20 ID:YOGrBGKc] >>279-280 ありがとうございます! 物凄く参考になりました。 一先ず現状のものに、httpsとなるページのリンクを付け加えてみます。
282 名前:Name_Not_Found mailto:sage [2009/10/23(金) 11:54:28 ID:???] var obj = {}; があったときにこれが空のオブジェクトかどうかを調べる方法ってありませんっけ? 前に自分でどうやって判断していたのか忘れた。 for (var key in obj) {} で、key舐めるしかないのでしたっけ? typeof だとobjectが返ってきちゃうし。 jQuery使えば何かできるんだっけと思って探したけどそれっぽいのがない
283 名前:Name_Not_Found mailto:sage [2009/10/23(金) 12:12:25 ID:???] function isEmpty(o) { for (var k in o) return false; return true; } 舐めるってほどでもないけど、for-in しかないと思う そもそも Object の空チェック自体ニッチなんだよな 大抵はしなくてもなんとかなる どうでもいいけどどっかの言語の _ あたりのノリで捨て変数に $ 使いそうになったw
284 名前:Name_Not_Found [2009/10/23(金) 12:58:02 ID:hMV8z3Nb] ちょっと聞きたいんですが、 携帯サイトにドリコムRSSを貼り付けて 自動更新のニュースを見れるようにしたいんだけど、 どうすればいいですかね? やっぱそんなん無理ですかね
285 名前:Name_Not_Found [2009/10/23(金) 13:02:34 ID:hMV8z3Nb] ↑ すいません補足です。 このままだとPCからは見れるんですが、 携帯からだと表示されない状態です。 script type="text/javascript" src="rssのurlみたいなの" charset="AUTO"></script> こんなんです。
286 名前:Name_Not_Found [2009/10/23(金) 14:18:50 ID:qt/MfDVw] ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ ここはjavascript1.5相当の内容ですが javascript1.6以降の最新の情報ってどこで閲覧できますでしょうか?
287 名前:Name_Not_Found mailto:sage [2009/10/23(金) 14:24:52 ID:???] >>285 使っている携帯電話はJavaScriptに対応しているのかね?
288 名前:Name_Not_Found mailto:sage [2009/10/23(金) 14:32:12 ID:???] MDC
289 名前:Name_Not_Found [2009/10/23(金) 15:04:48 ID:qt/MfDVw] Firefoxもそうですがoperaやieやsafariやchromeも視野に入れてるのですが MDCってFirefox独自の仕様も入ってるそうですが参考にしても大丈夫ですかね?
290 名前:Name_Not_Found mailto:sage [2009/10/23(金) 15:12:25 ID:???] www.nicovideo.jp/watch/sm8524579 PHPのプログラミング教室はじめました
291 名前:Name_Not_Found mailto:sage [2009/10/23(金) 15:20:31 ID:???] >>286 俺もよく知らんがECMAScript3.1はIEとかFirefoxとかで使えるはず www.ecmascript.org/docs.php
292 名前:Name_Not_Found [2009/10/23(金) 15:31:48 ID:hMV8z3Nb] >>287 調べてみたら対応してないっぽいです。 っていうか携帯自体が基本JavaScript無理みたいですね・・ 日々進化する携帯に今だったら行けるんじゃと思った自分が甘かった。 htmlだけで>>285 と同じ操作をするなんてのは不可能なんでしょうか? 無料ホームページサイトでお手軽にやりたいので、 出来ればPHPは避けて通りたいです。
293 名前:Name_Not_Found mailto:sage [2009/10/23(金) 15:37:26 ID:???] >>285 ドリコムRSSがどんなものか分からんが、 Flash Liteを使えばRSSリーダー作れるんじゃないかな JavaScriptは無理
294 名前:Name_Not_Found [2009/10/23(金) 15:51:32 ID:hMV8z3Nb] >>293 情報サンクスです。やっぱ無理ですかぁ どっちかというと携帯ホムペのヘッドラインニュースみたいのを 作りたいんですが、Flash Liteでいけるんですかね? モバイルスペースとかでやりたいんで、 それこそhtmlとかがいいんですが・・・
295 名前:Name_Not_Found mailto:sage [2009/10/23(金) 15:57:14 ID:???] >>294 htmlでも出来る 新しいニュースが入る度に手動更新すればいいだけ FlashLiteは古い機種は対応してないから注意 それが嫌ならPHPやRubyとかを使うべし というわけでWebProg版へGo
296 名前:Name_Not_Found [2009/10/23(金) 16:16:11 ID:2hA2MvXp] ttp://www.ecmascript.org/download.php このページでダウンロードできるes4-pre-release.M2.windows-x86.zipってどうつかうのでしょうか?
297 名前:Name_Not_Found [2009/10/23(金) 17:14:45 ID:hMV8z3Nb] >>295 なるほど手動更新の手がありましたね・・・
298 名前:Name_Not_Found [2009/10/23(金) 17:25:58 ID:FEQ4zD06] javascriptの勉強で以下のサイトを参考にしています ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-9_Date_Objects.html#section-15.9.1.12 MakeDayの使い方で質問です 下のようにコードを書いたのですがアラートが表示されません MakeDayとはどのように使うのでしょうか? var md = MakeDay(2009, 12, 12); alert(md);
299 名前:Name_Not_Found [2009/10/23(金) 18:29:41 ID:b0zmPGHk] >>293 クロスドm
300 名前:Name_Not_Found mailto:sage [2009/10/23(金) 18:48:21 ID:???] >>286 https://developer.mozilla.org/ja/New_in_JavaScript_1.6 https://developer.mozilla.org/ja/New_in_JavaScript_1.7 https://developer.mozilla.org/ja/New_in_JavaScript_1.8 https://developer.mozilla.org/En/New_in_JavaScript_1.8.1
301 名前:Name_Not_Found [2009/10/23(金) 19:45:27 ID:nIzPO7WG] ただ今、学校の課題でhtml/jspを使用した簡単なショッピングサイトを作っております。 その中でjavascriptでポップアップエラーを出したいのですが、上手くいきません <input type=\"radio\" name= \"sdate\" value=" + nb + " /> ----中略--- <script formcheck = "javascript"> <!-- function formcheck(form){ if(form.sdate.value == null){ alert("商品が選択されていません。"); return false; } return true; } //--> </script> sdateにチェックが入っていなければアラームを作動させたいんですが、 チェックが入っていてもアラームが作動してしまいます。 初歩的な質問ですみません。よろしくお願いします。 一応ソースも貼り付けておきます。 kissho.xii.jp/1/src/1jyou94948.jsp
302 名前:Name_Not_Found mailto:sage [2009/10/23(金) 20:10:19 ID:???] >>301 ラジオボタンとチェックボックスを間違えてるってことはない?
303 名前:Name_Not_Found mailto:sage [2009/10/23(金) 20:12:07 ID:???] >>300 それってmozilla独自仕様なんじゃないの? javascript1,8は4thをサポートしてるってだけでさ
304 名前:Name_Not_Found mailto:sage [2009/10/23(金) 20:25:59 ID:???] どこを読んだら独自仕様になるんだ 独自仕様ならプリフィックスが付くだろ
305 名前:Name_Not_Found mailto:sage [2009/10/23(金) 20:55:36 ID:???] >>301 ラジオボタンまたはチェックボックスなら、要素.checkedで判断しないか? それに、ソース見た感じボタン複数も想定できるから全ボタンに対してチェックが必要
306 名前:Name_Not_Found mailto:sage [2009/10/23(金) 21:24:05 ID:???] ECMA 4Editionは草案なのに
307 名前:Name_Not_Found mailto:sage [2009/10/23(金) 22:03:28 ID:???] NP完全問題を解くため探索領域を分割したいのですが、JavaScriptとPHPでタスクを分担して別々に同時処理することは可能ですか?
308 名前:Name_Not_Found [2009/10/23(金) 22:11:22 ID:b0zmPGHk] >>307 >JavaScriptとPHPでタスクを分担して別々に同時処理 まあ、別のコンピュータでやることだからねえ。 同期したいところでAjaxでもすれば。
309 名前:Name_Not_Found [2009/10/23(金) 22:16:10 ID:nIzPO7WG] >>302 チェックボックスで購入画面を作ろうと思ったのですが、 処理が面倒になるのでラジオボタンで妥協しました。 >>305 商品IDであるnbをif文で判定するのでしょうか? >ボタン複数も判定 これはラジオボタンなら考えないでいいですよね
310 名前:Name_Not_Found [2009/10/23(金) 22:16:30 ID:q07ioA4B] if (cipher_char == from_char) { result = result + to_char; x++; } else result = result + clear_char; これってエラーでないんですけどどこか間違ってますか?
311 名前:Name_Not_Found mailto:sage [2009/10/23(金) 22:45:42 ID:???] >>309 function formcheck(form){ if( Array.prototype.slice.call( form.querySelectorAll('input[name="sdate"]') ).some(function(e){return e.checked}) ){ alert("商品が選択されていません。"); return false; } return true; }
312 名前:Name_Not_Found [2009/10/23(金) 22:58:48 ID:nIzPO7WG] >>311 うーん・・・出来ませんでした。 ありがとうございます。 まだ答えていただけるようならDBもお使いください。 upしておきます。 kissho.xii.jp/1/src/1jyou94962.mdb
313 名前:Name_Not_Found mailto:sage [2009/10/23(金) 23:05:57 ID:???] if( form.querySelector('input[name="sdate"]:checked') )
314 名前:Name_Not_Found [2009/10/23(金) 23:11:17 ID:nIzPO7WG] >>313 出来ませんでした。 本当にありがとうございます。
315 名前:Name_Not_Found mailto:sage [2009/10/23(金) 23:21:29 ID:???] ブラウザがSelectors APIサポートしてないと当然できないよ
316 名前:Name_Not_Found [2009/10/23(金) 23:43:03 ID:nIzPO7WG] Selectors API・・・ 習っていない物を使ってしまったら先生にどんな顔をされるか分からないので ポップアップエラーはあきらめることにしました。 本当にありがとうございました。
317 名前:Name_Not_Found mailto:sage [2009/10/23(金) 23:54:22 ID:???] 普通にこんなんでいいんじゃないの? if(!form.elements["sdate"].checked){ radio ボタンなら「いずれにもチェックされていない場合」に 多少書き換える必要があると思うけど
318 名前:Name_Not_Found mailto:sage [2009/10/23(金) 23:55:09 ID:???] 習ってないから使ってはいけないのはプログラマーとして失格
319 名前:Name_Not_Found mailto:sage [2009/10/24(土) 00:05:35 ID:???] 先生に遠慮なんていらんよ 義務教育中ならまだしもまわりと足並みをそろえることはない
320 名前:Name_Not_Found mailto:sage [2009/10/24(土) 00:07:11 ID:???] 本人が理解もしてない洗練された(?)コードを提出するのは問題じゃないか
321 名前:Name_Not_Found mailto:sage [2009/10/24(土) 00:55:10 ID:???] >>317 >radio ボタンなら「いずれにもチェックされていない場合」に そういうことでしたか・・・ 調べてみます >>318 ,>>319 ,>>320 >習ってないから使ってはいけないのはプログラマーとして失格 確かにそうですね。調べてみて、自分に使えこなせそうなら使ってみます。 色々ありがとうございました。
322 名前:Name_Not_Found mailto:sage [2009/10/24(土) 01:58:53 ID:???] >>286 JavaScript1.5とか1.6とかってバージョニングがそもそもFirefox独自(正確にはそのJavaScriptエンジン用)のもの だから>>303 は概ね正しい。 クロスブラウザも考えて真面目にJavaScript勉強するならオライリーのJavaScript第5版くらいしかまともな教材ないよ >>291 ,>>306 ECMAScript3.1, 4… それらはもう消えました。ECMAScript5にご期待ください。
323 名前:Name_Not_Found mailto:sage [2009/10/24(土) 02:34:19 ID:???] querySelector(All)はIE8、Firefox3.5、Opera10、Chrome1、Safari3.2以上かな(Safariは4かも確認できん…) Array.prototype.someはFirefox1.5、Opera9.5、Chrome1、Safari3以上でIEは対応してない >>321 ここに書かれたコードを参考にしちゃダメだよ。 function isSdateChecked(){ var sdates=document.getElementsByName('sdate'); for (var i=0;i < sdates.length; i++){ if(sdates[i].checked){ return true; } return false; } }
324 名前:Name_Not_Found mailto:sage [2009/10/24(土) 03:27:19 ID:???] それで出てきたのがよりによってgetElementsByNameなのはギャグか
325 名前:Name_Not_Found mailto:sage [2009/10/24(土) 04:03:34 ID:???] 確かに参考にしてはいけないコードだ
326 名前:Name_Not_Found mailto:sage [2009/10/24(土) 04:47:14 ID:???] まさかHTML4しかも互換モードでのgetElementsByNameにケチつけられるとは… てか、>>301 が根本的に駄目なのは <script formcheck = "javascript"> だな。なんじゃそりゃ。 <script type="text/javascript"> か、面倒なら <script>で良いよ
327 名前:Name_Not_Found mailto:sage [2009/10/24(土) 05:03:10 ID:???] HTML4互換なら尚更、name="sdate"を持つのがフォーム内、 しかもそのフォームが文書内で一つだけという思い込みはマズい かつHTML5では全てのHTMLElementがcheckedを持つから尚マズい 役立たず故にDOM2で意味論変更すらされそうになったgetElementsByNameを 使いたがる理由がよく分からん
328 名前:Name_Not_Found mailto:sage [2009/10/24(土) 05:23:32 ID:???] >>327 301のjsp見ろよ。なに勝手に一般論の話してんの? なんだったらサーバーをハックしてjsp書き換えて適切にid振ってくれ。 そうすりゃgetElementsByNameなんて使わなくて済むからさ。
329 名前:Name_Not_Found mailto:sage [2009/10/24(土) 05:45:35 ID:???] O'ReillyのJavaScript第3版を持っているのですが第5版は購入する価値がありますか? 解説がJavaScript1.2と古いので新しいバージョンのリファレンス本が欲しいのです。 ネットで調べた結果ではJavaScriptマスターブックがよさそうな感じですが、 最近のJavaScriptが理解できるおすすめの本があれば教えてください。 他にはJavaScript ビジュアル・リファレンス第2版(2006年2月発行)を所有しています。
330 名前:Name_Not_Found mailto:sage [2009/10/24(土) 06:33:20 ID:???] >>328 見苦しい
331 名前:Name_Not_Found mailto:sage [2009/10/24(土) 07:14:02 ID:???] そうですか、私の勉強不足でしたか… それで、どう書くとより良いのでしょうか?
332 名前:Name_Not_Found mailto:sage [2009/10/24(土) 07:52:21 ID:???] googleのキャッシュを見た際に、元のページを読み込ませる方法を教えてください
333 名前:Name_Not_Found mailto:sage [2009/10/24(土) 08:01:36 ID:???] リファラを見てGoogleのキャッシュだったら飛ばすようなスクリプトを仕込んでおく しかしGoogleのキャッシュでありGoogle側のコントロールにあるので Googleのキャッシュがそういったスクリプトを除外して表示している場合は不可能 しかし重要なこととして頭に入れておくべきことは Googleのキャッシュを見てるのに勝手に飛ばされるのは 見てる側の意図ではないのでやめたほうがいい キャッシュ側にも手動ではあるが元のページへのリンクを張っているわけだしそれでいいのでは?
334 名前:Name_Not_Found mailto:sage [2009/10/24(土) 08:01:52 ID:???] もちろんjavascriptで
335 名前:Name_Not_Found mailto:sage [2009/10/24(土) 08:09:53 ID:???] JavaScriptでもリファラはとれるでしょ document.referrer
336 名前:Name_Not_Found mailto:sage [2009/10/24(土) 08:15:52 ID:???] リファラ見てどうする。 キャッシュならlocationだろ
337 名前:Name_Not_Found mailto:sage [2009/10/24(土) 08:17:14 ID:???] だからキャッシュと判断するためにリファラが必要といったんだが
338 名前:337 mailto:sage [2009/10/24(土) 08:20:38 ID:???] あ、すまん 冷静に考えてみたらキャッシュから見るのも普通に見るのも Googleの検索からくるわけだからリファラは同じだったな 上のほうのはなかったことにしてくれ
339 名前:Name_Not_Found mailto:sage [2009/10/24(土) 08:23:07 ID:???] Googleから来たなら、オリジナルのページもキャッシュも、リファラはgoogle/searchにしかならんぞ… キャッシュの場合、locationがIPになるから(もちろん、必ずしもGoogleとは限らないが)すぐわかる
340 名前:Name_Not_Found mailto:sage [2009/10/24(土) 08:25:00 ID:???] >>337 俺もお前もドンマイ
341 名前:Name_Not_Found mailto:sage [2009/10/24(土) 08:32:52 ID:???] で、getElementsByNameを使わない実装は誰かやってくれないのかな。 せめてこれ使うんだぜってヒントだけでもほしいのだけど。
342 名前:Name_Not_Found mailto:sage [2009/10/24(土) 08:58:49 ID:???] function formcheck(form) { var n = form.sdate.length; for (var i = 0; i < n; i++) { if (form.sdate[i].checked) { return true; } } alert("商品が選択されていません。"); return false; } formオブジェクト取るならこれでよろし。
343 名前:332 mailto:sage [2009/10/24(土) 09:26:19 ID:???] locationが自分のところでなかったら、自分のところに飛ばすようにすればよいのでしょうか?
344 名前:Name_Not_Found mailto:sage [2009/10/24(土) 09:29:19 ID:???] 朝からカオスなスレだな
345 名前:Name_Not_Found mailto:sage [2009/10/24(土) 10:01:20 ID:???] >>321 名乗るほどのモンじゃねえから礼はいいってことよ
346 名前:Name_Not_Found mailto:sage [2009/10/24(土) 10:46:04 ID:???] きもいのが沸いてるな
347 名前:Name_Not_Found mailto:sage [2009/10/24(土) 10:56:49 ID:???] >>329 AjaxとかDOMの解説が増えてるから購入する価値はあるね
348 名前:Name_Not_Found mailto:sage [2009/10/24(土) 12:05:50 ID:???] >>329 「JavaScriptマスターブック」からJSを始めたけど十分な内容だったよ。 マスターブックが終わったら、オライリーの「Javascript&DHTMLクックブック」 で実践的なコードを学ぶといい 追加でオライリーのクイックリファレンスがあれば完璧。
349 名前:Name_Not_Found mailto:sage [2009/10/24(土) 12:15:19 ID:???] >>308 回答ありがとうございます。Ajaxを勉強してみます
350 名前:Name_Not_Found mailto:sage [2009/10/24(土) 13:18:15 ID:???] >>347-348 「JavaScriptマスターブック」良さそうですね。買ってみます。 第5版は解説が増えているということですので、Javascript&DHTMLクックブック等と 比較して、マスターブックが物足りなくなったら再度購入を検討することにしました。 ありがとうございました。
351 名前:Name_Not_Found mailto:sage [2009/10/24(土) 15:53:24 ID:???] >>342 それだとラジオボタン1個の時に対応できないよ
352 名前:Name_Not_Found [2009/10/24(土) 23:48:11 ID:DwHdb6bx] 質問です。 モーダルダイアログを表示させる、showModalDialogという メソッドがありますけど、これって正式なJavaScriptでは ないのでしょうか? (オライリーのJavaScript 1.5版に記載がないもので。)
353 名前:Name_Not_Found mailto:sage [2009/10/24(土) 23:53:00 ID:???] window.showModalDialogはDOMの領分
354 名前:Name_Not_Found [2009/10/24(土) 23:53:32 ID:F6j7TLub] DOMがさっぱりわかりません w3cのDOM level2にはlevel1の内容も含まれているのでしょうか?
355 名前:Name_Not_Found mailto:sage [2009/10/25(日) 01:16:08 ID:???] DOMがわからないってのはHTMLがわかってないということ
356 名前:Name_Not_Found mailto:sage [2009/10/25(日) 02:54:56 ID:???] phpの中にjavascriptを使って、ラジオボタンで項目を選んだ後に 違うボタンで指定されたサイトに飛ばすようにしたいですがphpに入れたら動いてくれません。 これだけだと動くのですがphpに入れると動かなくなるのはなぜでしょうか? <html> <head> <script type="text/javascript" language="JavaScript"> <!-- function Check() { var tolink = document.url for(i=0 ; i<=tolink.list.length -1 ; i++){ if (tolink.list[i].checked) { var n = tolink.list[i].value; document.location.href=n; } } } //--> </script> </head> <body> <form name="url"> <input type="radio" name="list" value="www.yahoo.co.jp/ ">テスト表示1 <input type="radio" name="list" value="www.google.co.jp/ ">テスト表示2 <input type="button" name="ok" value="OK" onclick="Check()"> </form> </body> </html>
357 名前:Name_Not_Found mailto:sage [2009/10/25(日) 03:03:43 ID:???] ごめんなさい・・・ 解決しました・・・・
358 名前:354 mailto:sage [2009/10/25(日) 11:47:18 ID:???] >>355 さんDOM2はDOM1に含まれるのでしょうか? ちなみにHTMLとXHTMLについてはw3cのDTDを理解してます
359 名前:Name_Not_Found mailto:sage [2009/10/25(日) 11:48:13 ID:???] 訂正 >>>355 さんDOM2はDOM1に含まれるのでしょうか? >>355 さんDOM2はDOM1の内容も含まれるのでしょうか? css2.1にcss1の内容が含まれているようなものと考えて大丈夫ですか?
360 名前:Name_Not_Found mailto:sage [2009/10/25(日) 12:00:25 ID:???] 仕様見れ ttp://www.w3.org/TR/DOM-Level-2-Core/ >The Document Object Model Level 2 Core builds on the Document Object Model Level 1 Core.
361 名前:Name_Not_Found mailto:sage [2009/10/25(日) 14:27:38 ID:???] お前の優しさに全米が泣いた
362 名前:Name_Not_Found mailto:sage [2009/10/25(日) 15:27:02 ID:???] >>355 の言うDOMとHTMLの関係を誰か解説頼む
363 名前:Name_Not_Found mailto:sage [2009/10/25(日) 15:54:05 ID:???] HTMLがわからないってのはDOMがわかってないということ(ただしDOMがわからなくてもHTMLを理解することはできる) の間違いじゃないかな
364 名前:Name_Not_Found mailto:sage [2009/10/25(日) 16:36:19 ID:???] 何故?
365 名前:Name_Not_Found mailto:sage [2009/10/25(日) 22:12:37 ID:???] DOMの理解にはHTMLはわかってなくてもXMLがわかってりゃいい
366 名前:Name_Not_Found mailto:sage [2009/10/25(日) 23:18:40 ID:???] 誰が開発したものなのかとか 最初に、かっこよくかつきちんと宣言したいんですけど 何か良いテンプレートみたいなものありませんでしょうか。
367 名前:Name_Not_Found mailto:sage [2009/10/25(日) 23:24:53 ID:???] 実用性重視でJsDoc
368 名前:Name_Not_Found mailto:sage [2009/10/27(火) 00:53:58 ID:???] string = "abacbbdc";これをこの文字列のまま正規表現など で(ループなしで)string = "abcd";にすることってできますか?
369 名前:Name_Not_Found mailto:sage [2009/10/27(火) 01:34:38 ID:???] エスパーさせんなよ、例は大事だけど説明もしろよ それで、これでいいか?実質的にループしてっけど var string = "abacbbdc"; var flag = {}; string = string.replace(/./g, function(s) { if (flag[s]) return ""; flag[s] = true; return s; });
370 名前:Name_Not_Found mailto:sage [2009/10/27(火) 09:16:47 ID:???] >>369 すごいな。>>368 見てもどういうルールかわかんなかったわ 単純にabcdって順番で出したいのかと思った
371 名前:Name_Not_Found mailto:sage [2009/10/27(火) 10:02:23 ID:???] 俺もソートしてから重複する文字を削除・・・を考えた。
372 名前:Name_Not_Found mailto:sage [2009/10/27(火) 10:22:14 ID:???] >>370 俺は1,2,4,7,11,16...番目を取得するのかと思ったけど 間が一つずつ増えるのね
373 名前:Name_Not_Found mailto:sage [2009/10/27(火) 10:39:31 ID:???] >>372 ??(゚Д゚;)三(;゚Д゚)??? どうやったらそういう風になるのか、すまんが教えてくれないか
374 名前:Name_Not_Found mailto:sage [2009/10/27(火) 10:40:44 ID:???] あ、ごめん事故解決した。どんがらがっしゃん的な意味で。
375 名前:Name_Not_Found mailto:sage [2009/10/27(火) 11:44:25 ID:???] >>372 数学ガールの数列の話思い出したわw 少ない数列で階差数列だと思い込むってなかなかないw
376 名前:Name_Not_Found mailto:sage [2009/10/27(火) 11:47:03 ID:???] どんがらがっしゃんついでにおらが考えたのはこういう方法。 var str = "abacbbdc"; var arr = new Array(); str.replace(/./g, function(s){arr.push(s)}); str = arr.sort().join(''),replace(/(.)(.*?)\1+/g, "$1$2"); 結局どれが正解なのかがわからんので>>368 は早く出頭するように。
377 名前:Name_Not_Found mailto:sage [2009/10/27(火) 11:49:46 ID:???] なんだよそのカンマなんだよ。俺のバカバカ ×,replace ○.replace あと他に間違ってないだろな・・・
378 名前:372 mailto:sage [2009/10/27(火) 11:49:57 ID:???] >>375 数学ガールが何物なのかは知らないけど、 数列でとりあえず階差をとってみるってのは常套手段だぜ
379 名前:Name_Not_Found mailto:sage [2009/10/27(火) 11:54:39 ID:???] >>378 文字列を見る→とりあえず数列→とりあえず階差 っていう発想がおらには無かったわ・・・
380 名前:Name_Not_Found mailto:sage [2009/10/27(火) 11:57:06 ID:???] >>375 奇遇だな、俺も思い出した 文字列を数列と見なすあたりはよい着眼点してる >>376 >var arr = new Array(); >str.replace(/./g, function(s){arr.push(s)}); var arr = str.split(""); ようするにjoin("")の逆 正規表現も意図がよくわからん、これではだめなのか? arr.sort().join('').replace(/(.)\1*/g, "$1");
381 名前:Name_Not_Found mailto:sage [2009/10/27(火) 12:03:11 ID:???] >>380 なんでだっけか忘れたけど、うまくいかないことがあって確かそんな風に置換してたっけかなーとうる覚えで書いたのでようわからん・・・
382 名前:Name_Not_Found [2009/10/27(火) 12:13:27 ID:OFmzOs7u] 全然話についていけない件について。この文字列は 大文字とスペース交えて書くと AB a C bb D ccc E dddd F eeeee .... だってこと?
383 名前:372 mailto:sage [2009/10/27(火) 13:07:41 ID:???] >>382 >>368 が正解を言ってくれないとなんとも。 string = string.replace(/^(.)(.).*(.)(.)$/, '$1$2$4$3'); かもしれないじゃん?
384 名前:Name_Not_Found mailto:sage [2009/10/27(火) 13:16:24 ID:???] 単に質問じゃないのか?
385 名前:Name_Not_Found mailto:sage [2009/10/27(火) 13:22:09 ID:???] >>384 >string = "abacbbdc";これをこの文字列のまま正規表現など >で(ループなしで)string = "abcd";にすること だけだと、色んなアプローチ方法がありすぎる。 もっと具体的に何がしたいのかを示してくれないとこのようにエスパーレスがつかざるをえない。
386 名前:Name_Not_Found mailto:sage [2009/10/27(火) 13:29:15 ID:???] おまえら本人は質問逃げしてるのに優しいね それともただのバカなのか? こんなやつのために議論してやるなんて時間の無駄だぞ
387 名前:Name_Not_Found mailto:sage [2009/10/27(火) 13:33:57 ID:???] 1日も経ってないのに逃げたと判断するのもどうかと思うがこれはこれで楽しいぞ?w
388 名前:Name_Not_Found mailto:sage [2009/10/27(火) 13:38:47 ID:???] 現時点で既に一つの問いに対して4通りの解が出てるしな。 ある意味参考になる
389 名前:Name_Not_Found mailto:sage [2009/10/27(火) 13:43:11 ID:???] >>368 >string = "abacbbdc";これをこの文字列のまま正規表現など >で(ループなしで)string = "abcd";にすることってできますか? var string = "abacbbdc"; string = "abcd"; これでよし
390 名前:Name_Not_Found mailto:sage [2009/10/27(火) 13:53:40 ID:???] >>389 おれも初め全く同じ答え出して書き込もうとしたw
391 名前:Name_Not_Found mailto:sage [2009/10/27(火) 14:07:01 ID:???] >>389 よしじゃねーよwwww
392 名前:Name_Not_Found mailto:sage [2009/10/27(火) 14:08:03 ID:???] 要件は満たしている。何も問題はないw
393 名前:372 mailto:sage [2009/10/27(火) 15:03:12 ID:???] >>372 のコード。複雑になったうえにループありw string = (function (f, string) { var len = string.length, s = '', n = 1, x = f(n); while (x < len) { s += string.charAt(x); x = f(++n); } return s; })(function (n) { return n * (n - 1) / 2; }, string); やっぱり>>380 かなあ
394 名前:372 mailto:sage [2009/10/27(火) 15:18:56 ID:???] ごめん、こっちのほうが簡単。でもループは消えないw string = (function (string) { var len = string.length, s = '', n = 1, a = 0; while (a < len) { s += string.charAt(a); a += n++; } return s; })(string);
395 名前:Name_Not_Found mailto:sage [2009/10/27(火) 15:39:36 ID:???] /* ここまでのまとめ */ var string = "abacbbdc"; // @左から順に var flag = {}; string = string.replace(/./g, function(s) { if (flag[s]) return ""; flag[s] = true; return s; }); // A階差数列 string = (function (string) { var len = string.length, s = '', n = 1, a = 0; while (a < len) { s += string.charAt(a); a += n++; } return s; })(string); // Bソート var arr = new Array(); var arr = string.split(''); arr.sort().join('').replace(/(.)\1*/g, "$1"); // C切り出し string = string.replace(/^(.)(.).*(.)(.)$/, '$1$2$4$3'); // Dお前の願いを一つだけ叶えてやろう string = "abcd";
396 名前:Name_Not_Found mailto:sage [2009/10/27(火) 15:42:25 ID:???] B間違い。ごめんorz /* var arr = new Array(); */
397 名前:Name_Not_Found mailto:sage [2009/10/27(火) 18:57:44 ID:???] str.join("") の逆ってstr.split("") じゃだめなの?
398 名前:Name_Not_Found mailto:sage [2009/10/27(火) 19:36:06 ID:???] >>395 のネーミングセンスに嫉妬 >>397 元レスは>>380 か?str.joinといい節穴もいいところだな
399 名前:368 mailto:sage [2009/10/27(火) 22:04:22 ID:???] みなさん、こんばんは。>>368 で質問した者です。少し前に帰宅した所 です。開いてみてびっくり!みなさん、どうもありがとうございます。 >>369 さん、舌足らずな質問ですいませんでした。趣旨は、文字列に重複 したものがあったとき、それを排除したかったんです。配列に格納して 要素マッチをするとか、charAt()で回して同じことをするのは、誰でも まず考えると思いますが、文字列のままスマートにできないかな、と思い ました。ソートの必要までは考えていませんでした。 いろいろ自分でやってみたのですが、寝る時間までやってもでき ず、ここでお伺いしたわけです。ありがとうございます。 >>369 さん、流石です。勉強になりました。そのほかの方々もありがとう ございました。>>395 さんには、まとめまでして頂いて、とても分かりやす いです。とりあえず、少々のお詫びとお礼まで。 長々とすいません。では。
400 名前:Name_Not_Found mailto:sage [2009/10/28(水) 13:26:02 ID:???] 短いのを書いてみた。最初の出現を判定しつつ記録するのって短くしづらい。 var str = "abacbbdc"; var map = {}; str=str.replace(/./g,function(s){return(map[s]||(map[s]=0)||map[s]++)?'':s;})
401 名前:Name_Not_Found mailto:sage [2009/10/28(水) 14:49:37 ID:???] >>400 なるほど。勉強になったわ
402 名前:Name_Not_Found mailto:sage [2009/10/28(水) 14:56:38 ID:???] str=str.replace(/./g,function(s){return(map[s]||(map[s]=0)||map[s]++)?'':s;}) str=str.replace(/./g,function(s){return(map[s]||void(map[s]=1))?'':s;}); ちょっと縮まった、てかなんでgolfにw
403 名前:Name_Not_Found mailto:sage [2009/10/28(水) 15:10:50 ID:???] <script> function Rec(w,h){ this.width = w; this.height = h; } function RRec(x,y,w,h){ Rec.call(this,w,h); this.x = x; this.y = y; } RRec(1,2,3,4); document.write(RRec.width); </script> RecのプロパティをRRecに継承したいんだけど、 callメソッドってこういう使い方じゃダメなの? 実行結果はundefinedだった
404 名前:Name_Not_Found mailto:sage [2009/10/28(水) 15:17:34 ID:???] function RRec(x,y,w,h){ alert(this); } RRec(1,2,3,4); function RRec(x,y,w,h){ Rec.call(this,w,h); this.x = x; this.y = y; } var rr = new RRec(1,2,3,4); document.write(rr.width);
405 名前:Name_Not_Found mailto:sage [2009/10/28(水) 15:35:53 ID:???] >>404 オブジェクト作るの忘れてたわ ありがとう
406 名前:Name_Not_Found mailto:sage [2009/10/28(水) 15:43:48 ID:???] >>402 をを! voidか、なるほどこういう時に使うんだねー。 str=str.replace(/./g,function(s){return(map[s]||(map[s]=0)||map[s]++)?'':s;}) str=str.replace(/./g,function(s){return(map[s]||void(map[s]=1))?'':s;}); str=str.replace(/./g,function(s){return(map[s]||!(map[s]=1))?'':s;})
407 名前:Name_Not_Found mailto:sage [2009/10/28(水) 15:47:06 ID:???] ああ否定演算子のほうがよっぽど素直だw
408 名前:Name_Not_Found mailto:sage [2009/10/28(水) 15:57:55 ID:???] str=str.replace(/./g,function(s){return(!map[s]&&(map[s]=1))?s:'';})
409 名前:Name_Not_Found mailto:sage [2009/10/28(水) 16:14:51 ID:???] 極限まで短くしてって質問じゃないだろw トリッキーなコードでわけがわからん
410 名前:Name_Not_Found mailto:sage [2009/10/28(水) 17:09:29 ID:???] arr=['a', 'b', 'c', 'd', 'e', 'f']; とあるときにarr[5]='g'というように格納すると同時?というか arrの中を左にずらしてarr=['b', 'c', d', 'e', 'f', 'g']; という風にしたいので、arr[0]=arr[1],arr[1]=arr[2]・・・・arr[5]='g' のような感じにしてみました。ですが効率が悪い気がします。 なにかよい方法ありませんでしょうか よろしくお願いします。
411 名前:Name_Not_Found mailto:sage [2009/10/28(水) 17:13:19 ID:???] とおもったらshift、pushというものがありました お騒がせしました
412 名前:Name_Not_Found mailto:sage [2009/10/28(水) 17:16:03 ID:???] 質問です 一番手前の位置にページ全体を覆うように透明のオブジェクトを配置し、 なおかつマウスでのリンクやフォームの操作に支障が無いようにする事はJavaScriptで可能ですか? 何て説明したらいいのか分かりませんが、オブジェクトの非オブジェクト化というか イベントを受け取らず止めもしない、単なる視覚効果として扱いたいのです。 上手く説明できなくてすいません。
413 名前:Name_Not_Found mailto:sage [2009/10/28(水) 18:00:31 ID:???] いや、上手く説明してくれよ。具体的に何したいんだかさっぱりわからん。
414 名前:Name_Not_Found mailto:sage [2009/10/28(水) 18:34:02 ID:???] >>412 それだけだとページ全体を花柄の枠とかで飾りたいだけのようにも見て取れる もっとちゃんと説明汁
415 名前:Name_Not_Found [2009/10/28(水) 18:40:45 ID:Ea84aIqv] ライトボックスの黒カーテンみたいなものを置きつつ、 下層のオブジェクトは普通にマウスで触れるようにしたい、 ということかと。
416 名前:Name_Not_Found mailto:sage [2009/10/28(水) 20:19:37 ID:???] 視覚的に手前(z-index最大)、イベント的に奥(z-index最小)のエレメントがほしいんだろ グラフィックソフトなんかでいうと手前のレイヤーが見えた状態で奥のレイヤーを操作したいと 意味はわかるけど答えはしらん フォーム全体に半透明の一枚絵を描きたいとかならFlashでやってくれ そもそも一部のオブジェクト(フォーム部品やFlash等)はHTMLよりも手前に描画されるじゃなかった? 最近のブラウザでは解決してるんだっけ?
417 名前:Name_Not_Found [2009/10/28(水) 20:27:50 ID:Ea84aIqv] >>416 ライトボックス的なものとか、コンテンツにオーバレイして云々する アクティブなバナーやブログパーツ的なものとかでは、割と良く使いますよ、 全画面を覆うブロック。 フォームの部品やフラについては、おっしゃる通りかと。 MSIEのselectとMacFxの張付動画(swfじゃなくて)はdisplay:hiddenするように しています。
418 名前:Name_Not_Found mailto:sage [2009/10/28(水) 20:58:20 ID:???] >>417 そりゃ視覚もイベントも手前だろ
419 名前:Name_Not_Found mailto:sage [2009/10/28(水) 21:16:09 ID:???] >>413 例えば、αチャンネル付きの薄い霧の画像をページ全体を覆うdivのbackgroundに指定して スクロールさせたり透明度を微妙に変化させて雰囲気を出したり、 ふわっとHTML上のランダムな場所に薄くメッセージを表示させてすぐに消すような演出をしたり、 大きな桜の花びらや雪のオブジェクトを降らせたり、マウスストーカー系のスクリプトのときに、 オブジェクトがリンクやボタンに被っても操作性に影響が無いようにする方法があれば知りたかったのです。 >>414 そのようなことです。 >>415 ,416 理解していただいてありがとうございます。 現状はJavaScriptでは不可能と言うことでよろしいのでしょうか? Flashは分かりませんが、Flashを学び、サイト全体を作り直す方が簡単なのでしょうか?
420 名前:Name_Not_Found mailto:sage [2009/10/28(水) 21:21:11 ID:???] >>419 Flashで作り直すほうが、というかjavascriptじゃ無理
421 名前:Name_Not_Found mailto:sage [2009/10/28(水) 21:22:09 ID:???] javascriptで出来ないわけでは無いが複雑なコードになるだろうactionscriptでやれば楽
422 名前:Name_Not_Found mailto:sage [2009/10/28(水) 21:22:17 ID:???] jsだけでもできそうがけどなかなかハードな仕様だな見た目つくりにしては。 flashの方がいいんじゃね?action scriptとかどっかに落ちてそうだし。
423 名前:Name_Not_Found mailto:sage [2009/10/28(水) 21:23:18 ID:???] 単に色フィルタかけたいだけならオブジェクト全部色変化させて一見スクリーンかかってる様に 見せる手はあるけどな。グラデーションだとキツいが。
424 名前:Name_Not_Found mailto:sage [2009/10/28(水) 21:35:48 ID:???] jQueryでも限度がある。
425 名前:Name_Not_Found mailto:sage [2009/10/28(水) 21:37:53 ID:???] 全部canvasでやれば自由自在に・・
426 名前:Name_Not_Found mailto:sage [2009/10/28(水) 22:36:12 ID:???] XHTML+SVG
427 名前:Name_Not_Found mailto:sage [2009/10/28(水) 23:19:04 ID:???] それはひどい
428 名前:Name_Not_Found mailto:sage [2009/10/28(水) 23:42:26 ID:???] マイクロソフトがHTML5仕様からCanvas要素を外すように提案、しかし一刀両断に... − Publickey ttp://www.publickey.jp/blog/09/html5canvas.html
429 名前:Name_Not_Found mailto:sage [2009/10/28(水) 23:44:19 ID:???] 配列の中を全部削除したいのですが、 arr.length分forで、popもしくはshiftする 以外になにかよい手段があれば教えてください
430 名前:Name_Not_Found mailto:sage [2009/10/28(水) 23:45:52 ID:???] Canvasを筆頭に他要素が力つけて flashいらねってなったら、そりゃいろいろと困るもんな。
431 名前:Name_Not_Found mailto:sage [2009/10/28(水) 23:52:36 ID:???] >>429 arr.length = 0;
432 名前:Name_Not_Found mailto:sage [2009/10/29(木) 00:09:30 ID:???] >>431 ありがとうございました
433 名前:Name_Not_Found mailto:sage [2009/10/29(木) 00:13:10 ID:???] >>429 arr = [];
434 名前:Name_Not_Found mailto:sage [2009/10/29(木) 01:03:04 ID:???] canvasのgetImageDataで連続でimagedata取得してみて。 メモリがすごいことになるんだが
435 名前:Name_Not_Found mailto:sage [2009/10/29(木) 03:19:14 ID:???] そうですか
436 名前:Name_Not_Found mailto:sage [2009/10/30(金) 02:42:46 ID:???] a=['x', 'y', [['c','d'], ['e','f']] ]; のときに、a[2]の配列の最後に['g','h']を格納しようと、 a[2].push(['g','h']); としたのですが無理でした。どうすればよいでしょうかよろしくおねがいします。
437 名前:Name_Not_Found mailto:sage [2009/10/30(金) 02:55:14 ID:???] すいません勘違いでした、 できました。
438 名前:Name_Not_Found mailto:sage [2009/10/30(金) 03:33:59 ID:???] また質問させていただきます 配列の中に同じ値があるかを検索したいのですが、 a=[['a','b'], ['c','d'], ['e','f']]; とあるときに a.indexOf(['c','d']); で一致したり、 a.indexOf(['g','h']); で一致しなかったり、というようなことをやりたいのですが 上記ではどれもindexOfが-1を返してしまいます。 [○,△]のペアで一致する検索をしたいのですが うまくいきません、どうすればいいでしょうかよろしくおねがいします。
439 名前:Name_Not_Found mailto:sage [2009/10/30(金) 12:31:49 ID:???] 久しぶりにスレッドを覗いたら>>301 の解答が出ていました。 遅くなりましたが報告させていただきます。 >>342 さんを試したら成功しました。 >>351 さんの指摘を受けて function formcheck(form) { var n = form.sdate.length; if (form.sdate.checked) { return true; } for (var i = 0; i < n; i++) { if (form.sdate[i].checked) { return true; } } alert("商品が選択されていません。"); return false; } と、成りました。 協力いただいた方々ありがとうございました。
440 名前:Name_Not_Found mailto:sage [2009/10/30(金) 15:15:25 ID:???] >>438 まずArray#indexOf()はECMA-262の標準には含まれていないので、 ブラウザによっては動かないかも。そして、indexOf()は内部で ===を使って等しいかどうかを調べるらしいので、配列の「内容が」 等しいかどうかを調べるのにはどのみち使えない。結局、自分で ループしながら配列を検索するしかないと思われ。
441 名前:Name_Not_Found [2009/10/30(金) 22:04:46 ID:svkMyns1] すみません、どうかアドバイスをください。 横のボタンを押せば、テーブルの行が上に上がるスクリプトを組みたいのですが・・・ 作ったのは・・・ <table border=1> <tbody id="test"> <tr> <td><a href="javascript:testn(0);">↑</a></td> <td>一行目</td> </tr> <tr> <td><a href="javascript:testn(1);">↑</a></td> <td>二行目</td> </tr> <tr> <td><a href="javascript:testn(2);">↑</a></td> <td>三行目</td> </tr> </table> <script type="text/javascript"> function testn(no) { obj = document.getElementById('test'); if (no != 0) obj.insertBefore(obj.rows[no], obj.rows[(no-1)]); } </script> うまく動かない原因はわかるのですが・・・ しかし、どう改良すればよいのかわかりません。 どうかアドバイスをください。。。
442 名前:Name_Not_Found mailto:sage [2009/10/31(土) 01:52:56 ID:???] >>440 ありがとうございます。なるほど、indexOf()は使わないほうがいいみたいですね。 一応自分なりにかいてみました。 fpは次のような配列になっています、 fp=[ [ 8, //←dx [4,2,5] //←dy ], [ 5, [10,21] ] ]; で、fp[0][0]やfp[1][0]がdx、 fp[0][1]やfp[1][1]がdyというような関係です。 説明しにくいので (dx,dy)=(11,3)、(8,3)、(5,10)が与えられたとき、fpがどのように変化するかを下に書きます fp=[ [ 8, [4,2,5,3] ], [ 5, [10,21] ], [ 11, [3] ] ]; です。(11,3)はどれも重複しないので新たにfpの最後に加えます。 (8,3)はまずdxがfp[0][0]に重複後、fp[0][1]の最後にdyを追加します。 (5,10)はまずdxがfp[1][0]に重複後、dyもfp[1][1][0]に重複するので何もしません。 こういう検索をするために次のコードを書いてみました。つづく
443 名前:442 mailto:sage [2009/10/31(土) 01:55:09 ID:???] fp=[[8,[4,2,5]],[5,[10,21]],]; var a=function(dx,dy){ for(var i=0;i<fp.length;i++){ if(fp[i][0]==dx){ for(var j=0;j<fp[i][1].length;j++){ if(fp[i][1][j]!=dy){ if(j==fp[i][1].length-1){ fp[i][1].push(dy); } }else{break;} } break; }else{ if(i==fp.length-1){ fp.push([dx]); fp[i+1].push([dy]); } } } } var t=function(){ var tes=[]; for(var i=0;i<fp.length;i++){ tes.push(fp[i][0]+'<>'+fp[i][1]+'\n'); } return tes; } a(11,3);alert(t().join()); 今のところはこれで思ったとおりの検索ができるのですが、自分の書いたものだと、無駄なものがあったり間違っていたり、別の良い方法があるような気がしてなりません。 ちなみに、そもそもこのdx,dyは、onmousemoveしている間、整数のdx,dyを取得し続け、その都度a(dx,dy)を実行するような感じです。どうかアドバイスよろしくお願いします。
444 名前:Name_Not_Found mailto:sage [2009/10/31(土) 01:57:18 ID:???] 訂正 整数→正の整数(0もあり)
445 名前:Name_Not_Found mailto:sage [2009/10/31(土) 08:48:18 ID:???] 0は正じゃないけどね。揚げ足か
446 名前:Name_Not_Found mailto:sage [2009/10/31(土) 11:01:50 ID:???] 0には正負があるけどね。揚げ足か
447 名前:Name_Not_Found mailto:sage [2009/10/31(土) 13:55:30 ID:???] IE8って、もしかしてwindow.event.yでスクロール分足した数値返すようになってる・・・?
448 名前:Name_Not_Found mailto:sage [2009/10/31(土) 20:35:48 ID:???] 0に正負があるとかやばくね?話逸れてるけど
449 名前:Name_Not_Found mailto:sage [2009/11/01(日) 00:22:52 ID:???] 実際には使われていないけど正の0と負の0、つまり0が二つ存在する扱い方もある ja.wikipedia.org/wiki/1%E3%81%AE%E8%A3%9C%E6%95%B0
450 名前:441 [2009/11/01(日) 02:20:02 ID:DhDwNkMP] 自己解決しました
451 名前:Name_Not_Found [2009/11/01(日) 06:45:29 ID:IpszXO/r] url には4桁の数字のみが記述されているとします。 この中身をアラートで表示させるために、 readFrame = document.createElement('iframe'); readFrame.setAttribute('style','display:none;'); readFrame.src = 'url '; readFrame.id ='readFrame'; document.body.appendChild(readFrame); readFrame.onload = function (){ var nakami = document.getElementById('readFrame').innerHTML; alert(nakami); } としたんですが、空白のアラートが表示されてしまいます。 なにが原因か分かりますでしょうか?
452 名前:Name_Not_Found mailto:sage [2009/11/01(日) 09:37:07 ID:???] <iframe>のinnerHTMLを表示したから。 nakami=document.getElementById("readFrame").ownerDocument.body.innerHTML;
453 名前:Name_Not_Found mailto:sage [2009/11/01(日) 11:27:01 ID:???] iframeの中身であっても、ドメイン超えだとアクセスできなかったりはしない? 確認せず適当に言うが。
454 名前:Name_Not_Found mailto:sage [2009/11/01(日) 12:14:57 ID:???] そんな事が出来たら <iframe src="www.amazon.co.jp/ " id="readFrame"></iframe> alert(document.evaluate("//div/span[@class='navGreeting']",document.getElementById("readFrame").ownerDocument,null,0,null)).iterateNext().textContent); こうするだけでAmazonで使ってる自分の名前が表示出来ちゃうね
455 名前:Name_Not_Found mailto:sage [2009/11/01(日) 13:51:29 ID:???] XPathがどうしようもなく分からない
456 名前:Name_Not_Found mailto:sage [2009/11/01(日) 15:21:27 ID:???] 異ドメイン操作不可というのはよいですよね。
457 名前:Name_Not_Found mailto:sage [2009/11/01(日) 15:50:32 ID:???] XPathは軸とノードテストと述語を省略せずに覚えろ //divとか書いてあるのは、とりあえず参考にするな
458 名前:Name_Not_Found mailto:sage [2009/11/01(日) 16:21:07 ID:???] //divは/descendant-or-self::node()/child::divの省略形だからな /descendant::divとは効率も結果も全然違う 特にJavaScript-XPathを使って//divと書いてる奴は悔い改めた方がいい
459 名前:Name_Not_Found mailto:sage [2009/11/01(日) 17:05:24 ID:???] 省略しないと長すぎるって言われるんだもん
460 名前:Name_Not_Found mailto:sage [2009/11/01(日) 17:37:19 ID:???] ownerDocumentとcontentDocumentを混同してる奴がいるな
461 名前:Name_Not_Found mailto:sage [2009/11/01(日) 21:30:40 ID:???] あはは誰だownerとか書いてるヤツ。 ownの意味もわかんないのかwwwww俺
462 名前:Name_Not_Found mailto:sage [2009/11/02(月) 03:29:53 ID:???] 表示させたくない要素は、positionでleftとtop のどちらに大きな負の値を入れるのがよいでしょうか。 要素を飛ばすとき、bottomとrightに指定すると ブラウザによってはスクロールがでてしまいました。 今はleftでしているのですが、ほぼ差し支えないでしょうか? よろしくお願いします。
463 名前:Name_Not_Found mailto:sage [2009/11/02(月) 04:21:10 ID:???] display: none
464 名前:Name_Not_Found mailto:sage [2009/11/02(月) 04:22:32 ID:???] あれ、つうかcssでいいのか? ここjavascriptのスレだけど?
465 名前:Name_Not_Found mailto:sage [2009/11/02(月) 05:00:32 ID:???] cssスレだと、js知らないやつからしたら 使い道よりも一つの方法としての意識の方が強いが js、css両方知ってるやつからしたら 明確に、使い道として理解してる まぁどっちでもいいんじゃないだろうか 強いて言うならjsスレの方で聞くほうが賢いと思う
466 名前:Name_Not_Found mailto:sage [2009/11/02(月) 09:26:21 ID:???] 正方形200×200のエリアがあって、その上をマウスが動くときに その正方形の中心から100×100の範囲だけ有効にしたくて マウスのx座標、y座標それぞれxとyにして if(x>50 && y>50 && x<150 && y<150){} みたいにしたんだけどもっとカッコいい書き方があるような気がしてそわそわするから教えて
467 名前:Name_Not_Found mailto:sage [2009/11/02(月) 09:48:41 ID:???] 何かが間違っているような気がしてそわそわする
468 名前:Name_Not_Found mailto:sage [2009/11/02(月) 11:00:17 ID:???] 似たようなことを繰り返すなら俺はRectオブジェクトでも用意するけど、最終的にやってることは変わらんから一回だけならそれでもいい var r = new Rect(50, 50, 100, 100); if (r.contains(x, y)) ちなみにそれ99x99だぞ、不等号使うときはよく考えろ
469 名前:Name_Not_Found [2009/11/02(月) 13:16:10 ID:lWYkjuDV] >>462 ほぼ差し支えないんじゃないかと。 >>463 作った要素の大きさをこっそり測っておきたい時とか、あるじゃん。
470 名前:Name_Not_Found mailto:sage [2009/11/02(月) 15:37:44 ID:???] 測りたいときだけそうすればいい 多少なりとも描画に時間を費やしているから測れるってことを忘れんな
471 名前:Name_Not_Found mailto:sage [2009/11/02(月) 15:49:28 ID:???] 計りたいときだけそうできればどんなに楽だったろうな
472 名前:Name_Not_Found [2009/11/02(月) 16:16:12 ID:lWYkjuDV] >>470 >測りたいときだけそうすればいい あ、それはそうだと思います。
473 名前:Name_Not_Found mailto:sage [2009/11/02(月) 18:03:50 ID:???] parseIntって非推奨とかある? なんかどっかで見た気がするんだけど勘違いなきがするのでお願いします
474 名前:Name_Not_Found mailto:sage [2009/11/02(月) 18:21:56 ID:???] >>473 parseInt()はECMA-262で規定されているので使うことは無問題。 ただ、1引数で使うと'012'みたいに0で始まる文字列は8進として 解釈されるため、常に2引数で使った方がいい。 それを忘れるくらいならむしろparseFloat()を使えばと前に ここで書いたがそれには異論もあったかと。まあそれだけ。
475 名前:Name_Not_Found mailto:sage [2009/11/02(月) 18:55:01 ID:???] あとはきちんと戻値をisNaN()にかけてNaNチェックするとかね まあ使いどころによるけど
476 名前:Name_Not_Found [2009/11/02(月) 19:43:46 ID:lWYkjuDV] みんなNaNってなんて読んでる? 自分は奈良ナンバーと読んでいるんだけど…
477 名前:Name_Not_Found mailto:sage [2009/11/02(月) 23:22:47 ID:???] ナン
478 名前:Name_Not_Found mailto:sage [2009/11/03(火) 10:17:21 ID:???] ナソ
479 名前:Name_Not_Found mailto:sage [2009/11/03(火) 10:55:49 ID:???] 文末のセミコロンはつけるべきですか? それとも省略すべきですか?
480 名前:Name_Not_Found mailto:sage [2009/11/03(火) 11:24:10 ID:???] つけるべき
481 名前:Name_Not_Found mailto:sage [2009/11/03(火) 11:34:29 ID:???] 寧ろ改行とかいらん
482 名前:Name_Not_Found mailto:sage [2009/11/03(火) 11:34:38 ID:???] >>480 d
483 名前:Name_Not_Found mailto:sage [2009/11/03(火) 12:04:50 ID:???] >479 つけないとセミコロンは自動補完されるわけだけど、稀にセミコロンがつくと思ってた場所につかなくい、って事がある。 (まあ、逆に「つかないと思ってた場所にセミコロンがつく」場合の方が多いが。例えば return { aaa : bbb }; // nullが返る いずれにせよ原因を非常に特定しづらいバグを生むので、なるべくつけるようにした方がいい。
484 名前:Name_Not_Found mailto:sage [2009/11/03(火) 12:06:35 ID:???] つかなくい→つかない
485 名前:Name_Not_Found mailto:sage [2009/11/03(火) 12:09:48 ID:???] >>483 そうなんですか つけるようにします。
486 名前:Name_Not_Found mailto:sage [2009/11/03(火) 14:28:00 ID:???] なんちゃって
487 名前:Name_Not_Found mailto:sage [2009/11/03(火) 21:57:15 ID:???] for(){} とか if(){} とかもセミコロンつけた方がいいですか?
488 名前:Name_Not_Found mailto:sage [2009/11/03(火) 22:05:04 ID:???] arr=['test']; oj={'a':'test'}; 上の配列と下のJSONって arr[0]とoj.aだと、配列の方が testの引き出しが速いんですよね?(大差なしという話ではなくて)
489 名前:Name_Not_Found mailto:sage [2009/11/03(火) 22:07:27 ID:???] evalするコストが無い分配列のほうが断然早いな、
490 名前:Name_Not_Found mailto:sage [2009/11/03(火) 22:48:53 ID:???] >>489 なるほど参考になります。 あと、oj={'a':'test'};場合 oj.aでもoj['a']でもどちらでもtestを取れるみたいなんですが これって何か違いがあるんでしょうか
491 名前:Name_Not_Found mailto:sage [2009/11/03(火) 23:06:40 ID:???] JSON=文字列
492 名前:Name_Not_Found mailto:sage [2009/11/03(火) 23:15:44 ID:???] >>489 ハッシュするコストじゃないか?評価はどっちもするし って質問内容に忠実すぎるのかw それはオブジェクトリテラルだ、JSONならこう var json = "{'a':'test'}"; var oj = eval(json); >>490 使用可能な文字の違い(文字列リテラルならほぼ全て) 静的or動的 Stringオブジェクトの要不要 二番目の差が一番でかいと思う var v = "a"; alert(oj[v]); もちろん便利な分、若干でも処理にコストがかかる
493 名前:Name_Not_Found mailto:sage [2009/11/04(水) 01:05:10 ID:???] >>491 ,492 勘違いしておりましたありがとうございました。 たしかにoj.aだとa=なんたらとかにして代入できずでした あとoj['a']のときよりもシビアなリテラル選びになりそうでした ただやはり処理を速くくしようとすれば 配列>オブジェクトリテラルのoj.a>oj['a'] な感じでしょうか ありがとうございました。
494 名前:Name_Not_Found mailto:sage [2009/11/04(水) 01:32:59 ID:???] ちゃんとベンチとったほうがいいぞ Arrayでもデータ構造はObjectの使い回しをしてる可能性もあるし 最適化とか関わるとドット演算子使うのが一番速い場合だって考えられる つーか変数使うのが一番速い
495 名前:Name_Not_Found mailto:sage [2009/11/04(水) 02:03:07 ID:???] Firefox 3.0以上向けにJavaScriptのプログラムを組んでいます。 Canvasを利用した描画を行いたいと思っているのですが、点線の描画方法が分かりません。 点線でなく、実線の描画方法ならば、下記の通りに出来ました。 --ソースの描画部分-- //キャンバスの取得 var canvas = document.getElementById("canvas"); if (!canvas.getContext) return; // Unsupported //線描画 cv = canvas.getContext("2d"); cv.beginPath(); cv.lineTo(25,255); -- ここまで -- 点線の描画を行いたいので、そちらをお願いいたします。
496 名前:Name_Not_Found mailto:sage [2009/11/04(水) 06:01:10 ID:???] 便乗でcanvasの質問します。 以下のコードでf=[16,16,20,20]のときより明らかにf=[16,16,32,32]のときの方が 四角の描写までの反応が速いのですが、何が原因でしょうか。 一応自分でいろいろと考えてみたのですが、f=[16,16,20,20]のとき、 1.座標取得の時点で反応が遅れている(pageXやoffsetLeft、offsetTopが原因?) 2.helpのinnerHTMLのコメントアウトの行を有効にしたとき、 ・help要素がhoge1要素とかぶると遅い、 ・hoge1要素と十分にかぶらないくらい(16×20より上)の値をhelp要素のleftに入れると速い(例left:400px;) くらいしかわかりませんでした。いずれもFireFox3.0で実験した結果です。 <html><body><div id="hoge1" style="border:2px dashed blue;position:absolute;left:0px;"><canvas id="hoge2" style="position:absolute;"></canvas></div> <div id="help" style="width:100px;height:50;position:absolute;left:0px;">a</div> <script type="text/javascript"><!-- elem1=document.getElementById('hoge1'); elem2=document.getElementById('hoge2'); // f=[16,16,32,32]; f=[16,16,20,20]; elem1.style.width=f[0]*f[2]; elem1.style.height=f[1]*f[3]; elem2.width=f[0]*f[2]; elem2.height=f[1]*f[3]; ctx=elem2.getContext('2d'); elem1.onmousemove=function(e){ var px=Math.floor(e.pageX-this.offsetLeft); var py=Math.floor(e.pageY-this.offsetTop); var sa=[f[0]*Math.floor(px/f[0]),f[1]*Math.floor(py/f[1])]; //document.getElementById('help').innerHTML=sa.join(); var rgb=function(){return Math.floor(Math.random()*255+1)}; ctx.fillStyle='rgb('+rgb()+','+rgb()+','+rgb()+')'; ctx.fillRect(sa[0],sa[1],f[0],f[1]); } //--></script></body></html>
497 名前:Name_Not_Found mailto:sage [2009/11/04(水) 07:40:32 ID:???] Firebugでたどっていくといいよ
498 名前:Name_Not_Found mailto:sage [2009/11/04(水) 08:16:56 ID:???] JSONは二重引用符しか受け付けないし 配列もJSONなんだぞ 大丈夫かお前ら
499 名前:Name_Not_Found mailto:sage [2009/11/04(水) 12:20:50 ID:???] >上の配列と下のJSONって という元質問に対して、JSONで配列が定義できることがどう関係するんだ?
500 名前:Name_Not_Found mailto:sage [2009/11/04(水) 16:57:41 ID:???] >>499 君は>>498 の言ってることを全く理解してないと思う
501 名前:Name_Not_Found mailto:sage [2009/11/04(水) 17:49:29 ID:???] >思う なのか。なんだか自信なさげだな
502 名前:Name_Not_Found mailto:sage [2009/11/05(木) 17:57:04 ID:???] この世に絶対なんて無いってアビタニが言ってた
503 名前:Name_Not_Found mailto:sage [2009/11/05(木) 19:11:40 ID:???] アビタニって?トニー谷しか知らないっす。
504 名前:Name_Not_Found mailto:sage [2009/11/05(木) 19:31:47 ID:???] javascript始めたばかりのものです。 選択したテキストエリアに書かれているテキストを取得したいのです。 条件としては、同じページに複数のテキストエリアがあっても、それぞれが 区別出来るようにしたいのですが、 javascriptでどのように書けばいいのでしょうか?
505 名前:Name_Not_Found mailto:sage [2009/11/05(木) 19:48:30 ID:???] >>504 onfocus/onblurハンドラでどのテキストエリアが選択されたかを 常時追跡する。分からなければ勉強してね。
506 名前:Name_Not_Found mailto:sage [2009/11/05(木) 19:50:45 ID:???] 各textareaがonfocusで自分のidを通達しておいて 最後に通達されたid(=選択したテキストエリア)を基にvalueを取得 これじゃわからん全部教えろっていうならこっち [JavaScript]プログラム作成します pc11.2ch.net/test/read.cgi/hp/1212582365/
507 名前:Name_Not_Found mailto:sage [2009/11/05(木) 19:57:31 ID:???] >>504 >>505 ありがとうございます。 自分でできないか、試してみます!!
508 名前:Name_Not_Found mailto:sage [2009/11/06(金) 00:35:12 ID:???] XMLで書いたデータをJavascriptで読み込みたいのですが、 属性値のある情報をどう表示させればいいか困っています。 <HTML><SCRIPT> function displayData(){ rec=bookdata.recordset while(!rec.EOF){ area.innerHTML+=rec("title")+" "+rec("author") +" "+rec("publisher")+"<BR>" moveNext()}} </SCRIPT> <BODY onLoad=displayData()> <XML ID="bookdata" SRC="books.xml"></XML> <SPAN ID="area"></SPAN> </BODY></HTML> XMLはこの様になっています <book> <title>おもしろい本</title> <author>山田太郎</author> <publisher>出版社</publisher> <year>2000</year> <price unit="円">1000</price> </book> これから値段を取り出して表示させたいのです。 よろしくお願いします。
509 名前:Name_Not_Found mailto:sage [2009/11/06(金) 00:39:25 ID:???] i=''; t=0; var tes=function(w){ alert(w); } (t==1)?i='tes1':i='tes2'; tes(i); ってやるとtesはファンクションじゃありませんってエラーがでます。 t==1?i='tes1':i='tes2'; だと大丈夫でした。三項でかくときは条件のところ()は外さないといけないのでしょうか よろしくおねがいします。
510 名前:Name_Not_Found mailto:sage [2009/11/06(金) 00:46:44 ID:???] >>509 式と文の違いについて再勉強 わかんねーなら全部セミコロンつけとけ それしても(function(){})()のfunction周りの括弧ってなくてもいけるんだな
511 名前:Name_Not_Found [2009/11/06(金) 01:00:33 ID:eRRSS6lE] >>508 rec()で関数のように値が取れるのは何の言語だ?多分何かの言語と勘違いしてるんだよね? javascriptでそういう取り出し方あったけ? >>509 i = (t == 1) ? 'tes1' : 'tes2'; って書けば曖昧じゃなくなるな
512 名前:Name_Not_Found mailto:sage [2009/11/06(金) 01:20:19 ID:???] books.xmlをbookdataというIDにして、 bookdata.recordsetは長くて入力が面倒なのでrecとする。 それで、area.innerHTML+=rec("title")+" "+rec("author") +" "+rec("publisher")+"<BR>" で出力できています。 一応、JavascriptとHXMLの課題です。
513 名前:Name_Not_Found mailto:sage [2009/11/06(金) 02:37:09 ID:???] 前から気になっていたのですが if(x+y+z>0){ x=x+y+z; } みたいなとき、条件式の中でx+y+zして、 さらに条件に合えばまたx+y+zをしているのですが これは無駄ではないでしょうか? 解決できるのであればアドバイスくださいませ
514 名前:Name_Not_Found [2009/11/06(金) 02:42:10 ID:eRRSS6lE] >>513 if( (x=x+y+z) > 0 ){ } わかりやすさから言ったら x=x+y+z; if(x>0){ } ってする方がいいと思うけど。普通そうすると思う。
515 名前:Name_Not_Found mailto:sage [2009/11/06(金) 02:46:41 ID:???] var a = x + y + z; if (a > 0) { x = a; } >>514 動作変わってんじゃんw
516 名前:Name_Not_Found mailto:sage [2009/11/06(金) 04:59:30 ID:???] >>514-515 ありがとうござました
517 名前:Name_Not_Found [2009/11/06(金) 06:46:01 ID:eRRSS6lE] >>515 えぇ、どこが違うんだ?としばらくマジで考えてしまった if分岐なのに全く頭に入れてなかったよ。寝ぼけてたすみません。
518 名前:Name_Not_Found mailto:sage [2009/11/06(金) 12:31:24 ID:???] 質問です JavaScriptでカーソルの形状を取得できますか?
519 名前:Name_Not_Found mailto:sage [2009/11/06(金) 17:26:35 ID:???] イベントハンドラを駆使すればできるが、完璧とは言えん。
520 名前:Name_Not_Found mailto:sage [2009/11/07(土) 00:37:06 ID:???] >>510 "function" から始まる文は function 文と解釈されるから、 文の先頭に "function 式" を書くときは括弧が必要。 式と文の違いについて再勉強な。
521 名前:Name_Not_Found mailto:sage [2009/11/07(土) 01:26:51 ID:???] 質問です。 ああああ <script type="text/javascript"> var req = new XMLHttpRequest(); req.open('GET', 'test.php', true); req.onreadystatechange = function (aEvt) { if (req.readyState == 4) { if(req.status == 200) var newresponseText= req.responseText.match(/test\.php?[0-9]+/); var test1=("http:test.com/"+newresponseText) document.write(test1); document.close(); } }; req.send(null); </script> ああああ これをhtml中へ入れると上下にある「ああああ」などが表示されなくなるんですが、 どこが悪いんでしょうか?
522 名前:Name_Not_Found mailto:sage [2009/11/07(土) 01:55:35 ID:???] >>520 >括弧が必要 一緒に再勉強しようか void function(){}() >>521 document.writeが悪い
523 名前:Name_Not_Found mailto:sage [2009/11/07(土) 02:28:57 ID:???] >>522 それは void 式
524 名前:Name_Not_Found mailto:sage [2009/11/07(土) 02:54:23 ID:???] >>521 onreadystatechange の中で document.write を呼び出しているから、 その時までに「ああああ」などを含む document の読み込みが完了していると、 強制的に document を再 open した後 document.write が実行される、んだと思う。 >>522 一緒に勉強?お断りw
525 名前:521 mailto:sage [2009/11/07(土) 08:19:39 ID:???] >>522 >>524 ありがとうございます。 あの、、できたらズバっと書き換えて書き込んでもらえませんでしょうか! お願いします!お願いします!!
526 名前:Name_Not_Found mailto:sage [2009/11/07(土) 08:47:23 ID:???] >>525 >>524 であってる
527 名前:521 mailto:sage [2009/11/07(土) 09:04:47 ID:???] >>526 ありがとうございます。 } }; document.write(test1); document.close(); 単純にズラしただけではダメなんですよね? firebugで「test1 is not defined」と出てしまって表示されないのですが。
528 名前:Name_Not_Found mailto:sage [2009/11/07(土) 09:46:18 ID:???] どうしてもdocument.writeが使いたければ 同期通信にして、onreadystatechange使うな
529 名前:521 mailto:sage [2009/11/07(土) 09:59:02 ID:???] >>528 いえ、どうしてもと言うわけではなく、表示させるにまだはdocument.writeしか知らないもので ああああ test1内容 ああああ と表示できれば何でも良いのですが・・・
530 名前:521 mailto:sage [2009/11/07(土) 10:34:22 ID:???] >>528 同期通信でいけました! ありがとうございます。
531 名前:Name_Not_Found mailto:sage [2009/11/07(土) 13:35:17 ID:???] >>519 ありがとうございました
532 名前:Name_Not_Found [2009/11/09(月) 12:01:38 ID:hcohdA59] <input type="file" name="hogehoge" value="hogehoge"> <input type="submit" value="send"> これでファイルを送信してるんですが、ファイルが指定されていない時はsubmitをdisabled状態にして ファイル名が指定されている時はsend出来るようにしたいと思います。 type=fileの部分に文字列が入っているかどうかを監視出来れば出来そうな気がするんですが、 文字が入っているかどうかの判断はどの関数を使用すれば出来ますでしょうか? 初歩的な質問かもしれませんがアドバイスいただけると助かります。
533 名前:Name_Not_Found mailto:sage [2009/11/09(月) 13:37:01 ID:???] input type=file の中身をアクセスすることはセキュリティ 制約からできないと思われ。
534 名前:Name_Not_Found mailto:sage [2009/11/09(月) 13:43:08 ID:???] >>532 単に文字列が入ってるかどうかでいいなら(それで意味があるかは別として) valueが空かどうかで判断できる。 document.forms[0].hogehoge.value;
535 名前:Name_Not_Found mailto:sage [2009/11/09(月) 13:55:41 ID:???] JavaScriptってPHPマニュアル(www.php.net/manual/ja/index.php )のようなサイトって無いんでしょうか? 関数とかイベントハンドラ等の詳細な説明(引数とか戻り値の説明とか)のあるサイトって調べてもないような気がするのですが JavaScriptの公式サイトというのも見当たりませんでした とほほさんとか、一撃さんようなリファレンスとかサンプルコードは見つかりましたが、PHPマニュアルのようなメソッドの詳細な説明のあるサイトはないように思います すみませんが、もしそのようなサイトがありましたら教えていただきたいのですが オライリーのクイックリファレンスは持っているのですが、持っていない時に分からないのがあった時に困ったりするもので オライリーのクイックリファレンスのようなサイトを探しています
536 名前:Name_Not_Found mailto:sage [2009/11/09(月) 14:03:01 ID:???] >>535 公式サイトなら >>1 に載ってるでしょ。JavaScript言語本体ならね。 問題はさまざまなブラウザ固有の違いとかDOMをはじめとするAPI なんだけど、そういうものを一手にまとめてるものはないと思われ。 PHPと違って各実装者がそれぞれ開発してるからねー。
537 名前:Name_Not_Found mailto:sage [2009/11/09(月) 17:55:21 ID:???] >>533 <input type="file" id="test" /> document.getElementById("test").files[0].fileName; //ファイル名 document.getElementById("test").files[0].fileSize; //サイズ document.getElementById("test").files[0].getAsBinary(); //バイナリ形式のファイルの中身 document.getElementById("test").files[0].getAsDataURL(); //Dataスキーム形式のファイルの中身 Firefoxオンリーだけどね
538 名前:Name_Not_Found mailto:sage [2009/11/10(火) 01:32:49 ID:???] すげえ
539 名前:Name_Not_Found mailto:sage [2009/11/10(火) 04:21:56 ID:???] array=[1,[2,1],3] みたいなやつで、値だけじゃなく [1,[2,1],3]みたいな文字型で得たいのですがどうすればよいでしょうか phpでいうvar_dump的な感じです よろしくおねがいします
540 名前:Name_Not_Found mailto:sage [2009/11/10(火) 08:11:22 ID:???] console.log
541 名前:Name_Not_Found mailto:sage [2009/11/10(火) 11:52:45 ID:???] >>540 どうもありがとうございました。
542 名前:Name_Not_Found mailto:sage [2009/11/10(火) 14:49:16 ID:???] >>539 toSource()
543 名前:Name_Not_Found mailto:sage [2009/11/10(火) 17:36:25 ID:???] dqnew-calendarというのを自分好みに改造している途中です。 開発環境はDebian Lenny, Firefox 3.0.11で、 動作確認はDebianのGoogle Chrome 4.0.223.11とWindows XPのIE7でおこなっています。 質問が2点あります。 1. IE7だと動作しません。画像をクリックすると'XXX' is undefined.と言われます。ちゃんとポップアップされていたときもあったのですが、今はエラーになります。どこを修正すれば良いでしょうか? 2. 画像をクリックして表示されるカレンダーの年月の部分をドラッグするとカレンダーが移動するようにしたいのですが、どのブラウザでも動作しません。これは根本的にどこか間違っていると思うのですが、どこがマズいでしょうか? ttp://kissho.xii.jp/1/src/1jyou96309.zip.html ソースが長くて恐縮ですがよろしくお願いします。
544 名前:Name_Not_Found mailto:sage [2009/11/10(火) 18:24:34 ID:???] >>543 せめて問題の部分を特定してから質問しなよ ドラッグなんかも、一旦ドラッグのみを実装してみればある程度 問題は絞れるでしょ
545 名前:Name_Not_Found mailto:sage [2009/11/10(火) 21:28:57 ID:???] DnDはなんとかできました。 しかしまだIE7で動かない問題は解決していません。 どこが問題なのか全く見当がつきません。。
546 名前:Name_Not_Found mailto:sage [2009/11/10(火) 21:56:01 ID:???] >>545 16行目 day_hover_bgcolor: '#99BBFF',//コンマとれ
547 名前:543 mailto:sage [2009/11/10(火) 22:04:57 ID:???] >546 ありがとーー 表示されるようになりました。 こんなん全然気付かんわ。すごいね。
548 名前:Name_Not_Found mailto:sage [2009/11/11(水) 01:25:05 ID:???] >>542 とんくす
549 名前:Name_Not_Found mailto:sage [2009/11/11(水) 01:50:39 ID:???] userjs.org/scripts/download/general/enhancements/clean-uri.js opera用のスクリプトをfirefoxでも使えるようにしたいのですが 66行目にエラーが出て使えません どこを直せばいいか教えていただけないでしょうか
550 名前:Name_Not_Found mailto:sage [2009/11/11(水) 02:02:20 ID:???] 64行しかない件
551 名前:Name_Not_Found [2009/11/11(水) 03:37:05 ID:jW1SZMrP] JSファイルを軽量化したくて、 先月出たAjax Minifier新版のハイパークランチ機能(高圧縮)を試してます。 ヘルプを読むと、たとえば↓こんなのが ------------------------------------------------------------ function DivideTwoNumbers(numerator, denominator, unsedparameter ) { return numerator / denominator; } ------------------------------------------------------------ こんな風に↓短くなるらしいんですが、 ------------------------------------- function a(a,b){return a/b} ------------------------------------- 実際はこんな風に↓中途半端になってしまいました。 ------------------------------------- function DivideTwoNumbers(a,b){return a/b} ------------------------------------- 試した方法ですが、コマンドプロンプトから下記記事のとおり↓このように打ち込みました。 ajaxmin -hc inputfile.js -o ouputfile.js 上例のように短くできた方いらっしゃいますか? どうぞ、よろしくお願いいたします。 (記事11/6) journal.mycom.co.jp/articles/2009/11/06/msajax/002.html (D/Lサイト) aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34488
552 名前:Name_Not_Found mailto:sage [2009/11/11(水) 06:17:32 ID:???] displayはだめだめ言われてるのをよく見るけどどうして?
553 名前:Name_Not_Found mailto:sage [2009/11/11(水) 06:56:54 ID:???] displayはだめだめ言われてるのをよく見ないんだけどどこで?
554 名前:Name_Not_Found mailto:sage [2009/11/12(木) 00:38:31 ID:???] >>551 記事の説明よく読みな! >ローカル変数名を短い文字列に置きかえ
555 名前:Name_Not_Found [2009/11/12(木) 01:00:33 ID:m9aNdsA1] 再初期化したいのですが、同じ変数に数度newで割り当てるとメモリリークしますか? あるいは、Cのmemsetのような関数はないでしょうか?
556 名前:Name_Not_Found mailto:sage [2009/11/12(木) 03:31:01 ID:???] よく○○.js ver1.00とか1.01とかみるんすけど 小数点以下って一体なんなんですか? ver1とかver2とかだとかっこ悪いから.00とかにしてるんですかね?
557 名前:Name_Not_Found mailto:sage [2009/11/12(木) 03:51:02 ID:???] >>555 しない 基本的には、どーやってもアクセスできないオブジェクトはGCがよろしくやってくれる JSオブジェクトの循環参照ぐらいまでなら余裕 >>556 JSに限らない話だからム板の質問スレにでも行くといい
558 名前:Name_Not_Found mailto:sage [2009/11/12(木) 03:52:36 ID:???] >newで割り当てる そもそもこの発想がおかしい newは生成であって割り当てじゃない
559 名前:Name_Not_Found [2009/11/12(木) 04:12:27 ID:m9aNdsA1] >>557 ありがとうございます。これが噂のガーベジコレクションですか。 そういった参考例が見つからなかったので安心しました。 >>558 すみません、言葉が足りませんでした。 手放したオブジェクトのアドレスの行方が知りたかったのです。
560 名前:Name_Not_Found [2009/11/12(木) 08:03:32 ID:DlYjSI6s] ただ単純に正規表現で配列を検索したいと思っているのですが、うまくいきません。 a.456 だけが出てくるのを期待しているのですが、どこが間違っているのでしょうか? function pattern_check(){ pattern = '/^a\.\d+$/'; arrays = new Array('a1.123','a.456','1a.789'); for(i=0; arrays[i]; i++){ if(arrays[i].match(pattern)){ alter(arrays[i] + ' ok'); } } }
561 名前:Name_Not_Found mailto:sage [2009/11/12(木) 08:16:26 ID:???] 456ってのは正規表現のどこに反映されてんだよ つか普通に==でいいだろそんなもん
562 名前:Name_Not_Found mailto:sage [2009/11/12(木) 08:20:34 ID:???] \d を [0-9] に変更
563 名前:Name_Not_Found mailto:sage [2009/11/12(木) 08:22:17 ID:???] patternが文字列になってる 引用符いらない
564 名前:Name_Not_Found mailto:sage [2009/11/12(木) 08:24:09 ID:???] あーわり読めてなかった 何で正規表現リテラルを文字列にしてんだお前
565 名前:Name_Not_Found mailto:sage [2009/11/12(木) 08:32:40 ID:???] pattern = '^a\.[0-9]+$'; だな なんつーか Perl 臭い
566 名前:Name_Not_Found mailto:sage [2009/11/12(木) 09:35:47 ID:???] \dと[0-9]って違うんだっけ? と質問してもググれで終わりそうだから先にググった https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/RegExp > Basic Latin アルファベットにおける数字 (digit character) にマッチします。[0-9] と同じです。 結局わからないので誰か教えて。
567 名前:560 [2009/11/12(木) 09:37:58 ID:DlYjSI6s] デリミタ使う正規表現は使えなかったのか ありがとうございました
568 名前:Name_Not_Found mailto:sage [2009/11/12(木) 10:29:19 ID:???] >>566 \d は Firefox で全角数字にもマッチする。
569 名前:Name_Not_Found [2009/11/12(木) 10:33:01 ID:rf00CiU4] javascriptで操作できるdom一覧のページをテンプレに追加していただけませんか?
570 名前:Name_Not_Found mailto:sage [2009/11/12(木) 10:59:26 ID:???] >>568 おぉ。そうなんだ。[0-90-9]と同等なのか。 でもFirefoxだけなら\dを使わない方がいいのね。
571 名前:Name_Not_Found mailto:sage [2009/11/12(木) 11:33:18 ID:???] いや・・・・>>566 のリンク先を見たらとっくにバグとして修正済みらしい。 知らんかった。スマソ
572 名前:Name_Not_Found mailto:sage [2009/11/12(木) 12:34:29 ID:???] >>569 具体的なURLを挙げなよ。まともなサイトがあまりないので 結局W3Cの標準を読めとかになりがちなのでね。
573 名前:Name_Not_Found mailto:sage [2009/11/12(木) 14:02:45 ID:???] w3cを読める人がこのスレに一覧でまとめればおk
574 名前:Name_Not_Found mailto:sage [2009/11/12(木) 14:17:05 ID:???] ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/dom-ref/object-index.html ここでいいのでは
575 名前:Name_Not_Found mailto:sage [2009/11/12(木) 14:34:35 ID:???] >>574 そんなサイトあったのか
576 名前:Name_Not_Found mailto:sage [2009/11/12(木) 15:30:43 ID:???] >>574 はECMA 262 3rd Edition (ECMAScript 3)の邦訳を公開してる人のサイト
577 名前:Name_Not_Found mailto:sage [2009/11/12(木) 19:30:19 ID:???] IE8で var obj = document.createElement("table"); obj.setAttribute("id","table"); document.body.appendChild(obj); document.getElementById("table").innerHTML = "<tr><td>テスト中</td><td>失礼いたします</td></tr>"; 上記のスクリプトを実行するとなぜかエラーになります。回避する方法はないでしょうか? 複雑なテーブルを組むので、できればinnerHTMLで一括置き換えしたいのですが・・・。
578 名前:Name_Not_Found mailto:sage [2009/11/12(木) 19:42:12 ID:???] すいません、divで囲ってtableタグごと書き換えたら事故解決しました。
579 名前:Name_Not_Found mailto:sage [2009/11/12(木) 19:42:47 ID:???] >>577 support.microsoft.com/kb/239832/ja これはIEの仕様^^; DOMで組み立てるのが一番の近道だと思うよ(解答になってなくてすまん)
580 名前:Name_Not_Found mailto:sage [2009/11/12(木) 22:43:38 ID:???] promptみたいな感じで、複数個入力できるようにしたいんですが 無理でしょうか?
581 名前:Name_Not_Found mailto:sage [2009/11/12(木) 22:46:51 ID:???] すみません、 function A(t){ var v = 33; } var a = new A(); こうした時に、aオブジェクトから 変数vにアクセスする方法はないですよね? やりたいことは、使っているライブラリのconstructor内のローカル変数にアクセスしたいのです。
582 名前:Name_Not_Found mailto:sage [2009/11/12(木) 23:01:05 ID:???] >>579 >table.innerHTML を設定するさせるには、次のエラー メッセージを表示します。 リンクページの文章が^^; 天下のマイクロソフト様も日本語がおかしいのは気のせいかw
583 名前:Name_Not_Found mailto:sage [2009/11/12(木) 23:07:21 ID:???] >>581 無理、どうしても必要ならモンキーパッチで対処 >>582 ページ下部まで見ろ
584 名前:Name_Not_Found mailto:sage [2009/11/12(木) 23:27:09 ID:???] >583 ありがとうございます。 function A(){ var v = 33; } var a = new A(); function A()
585 名前:Name_Not_Found mailto:sage [2009/11/12(木) 23:28:32 ID:???] >583 ありがとうございます。 function A(){ var v = 33; } var a = new A(); function A(){ var v = 87; } a = new A(); こういうことですよね。
586 名前:585 mailto:sage [2009/11/12(木) 23:31:56 ID:???] 途中の var a = new A(); はいらないですね。 なんとなく、できそうなきがしてきた。
587 名前:Name_Not_Found [2009/11/13(金) 00:53:21 ID:6Eu/tgl7] 画像検索apiを使って ttp://sokkuri.net/alike/%E9%97%98%E7%89%99/%E9%9A%86%E3%81%AE%E9%B6%B4 上記のサイトのように画像一覧を表示させる方法を教えてください。 初めての質問なので板違いだったらすみません。 よろしくお願いします。
588 名前:Name_Not_Found mailto:sage [2009/11/13(金) 00:58:07 ID:???] >>587 ここはJavascriptの作り方を教えるスレではありません。
589 名前:Name_Not_Found mailto:sage [2009/11/13(金) 01:12:52 ID:???] >>585 値を書き換えるだけならそんな感じ prototypeを移すのも忘れずに __A = A; function A(){} A.prototype = __A.prototype; このやり方だとnew A().constructor == __Aになるけど、まあ大丈夫だろ
590 名前:Name_Not_Found mailto:sage [2009/11/13(金) 19:39:37 ID:???] XMLHttpRequestで読み込み終わった後、またXMLHttpRequestとループさせることできますか? 可能であれば方法教えて欲しいです。宜しくお願いします。
591 名前:Name_Not_Found mailto:sage [2009/11/13(金) 19:58:00 ID:???] XHRのコールバックでXHRすればいいだけ
592 名前:Name_Not_Found [2009/11/13(金) 20:38:21 ID:YUnQfsTF] 下記のサイトで○×問題を作ろうとしてサンプルを実行してみたらサイト上では 採点もされるのですが、ダウンロードして実行するとブラウザの左下に黄色の ビックリマークとページが表示されましたと表示が出るだけで点数などが出ません。 説明では名前をつけて保存だけでいいらしいのですが。確認ポイントなどあれば お教えください。 使用環境は Windows7 と InternetExplorer8 です。 WEB問題作成ツール www.fureai.or.jp/~irie/webquiz/samples/eizu1.html WEB問題作成ツール www.fureai.or.jp/~irie/webquiz/
593 名前:Name_Not_Found mailto:sage [2009/11/13(金) 20:49:24 ID:???] その黄色のビックリマークをクリックしてみなよ。
594 名前:592 [2009/11/13(金) 20:54:40 ID:YUnQfsTF] >>593 下記のような表示が出ました。これはブラウザ側の設定で直るのでしょうか。 Web ページ エラーの詳細 ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0) タイムスタンプ: Fri, 13 Nov 2009 11:53:43 UTC メッセージ: アクセスが拒否されました。 ライン: 495 文字: 5 コード: 0 URI: file:///C:/Users/JUN/Desktop/クイズ!エイズを知ろう!!.htm メッセージ: アクセスが拒否されました。 ライン: 495 文字: 5 コード: 0 URI: file:///C:/Users/JUN/Desktop/クイズ!エイズを知ろう!!.htm
595 名前:Name_Not_Found mailto:sage [2009/11/13(金) 21:28:22 ID:???] Firefoxでブックマークにある特定のサイトだけ常に新しいタブで開きたいです。 ミドルクリックすれば任意に選んで新しいタブで開けますが。 そのサイトだけは常に新しいタブにしたいんです。 ブックマークレットに使われてるように、登録したURLの前にjsを使って可能でしょうか? 検索しても見当たらないので記述おわかりの方いたら教えてください。
596 名前:Name_Not_Found mailto:sage [2009/11/13(金) 21:43:09 ID:???] >> じゅん君 ライン 495 って window.open の箇所かな。 自分の環境(XP/IE8) では再現しないから分からん。 >>595 javascript:void window.open("url")
597 名前:Name_Not_Found mailto:sage [2009/11/13(金) 21:45:47 ID:???] あ、「新しいウィンドウではなく新しいタブで開く」にチェック入れとかないと駄目か。
598 名前:595 mailto:sage [2009/11/13(金) 22:20:35 ID:???] >>596-597 そのチェックは既にしていたので無事開けました こんな短いスクリプトでできるんですね ありがとうございました
599 名前:592 [2009/11/13(金) 22:39:08 ID:YUnQfsTF] >>596 >>597 私は JavaScript の中身は全然わからないのですが、問題を作った後にサイトの 説明ではブラウザのメニュー「ファイル」→「名前を付けて保存」で,ファイルの種類を 「Webページ,HTMLのみ」で保存するように書いてあったのですが「Webアーカイブ、 単一のファイル」で保存して実行したら動作しました。
600 名前:599 [2009/11/13(金) 23:02:50 ID:YUnQfsTF] のつもりだったのですが問題数が少ない場合は「Webアーカイブ、 単一のファイル」で保存でよかったものの問題数が多いとエディタ で見ると問題が消えてなくなってました。結果、サイトの説明の 通りに「Webページ,HTMLのみ」で保存し、ブラウザに google の新しいのをいれたらこれでは表示できました。本当は IE8 で 使いたかったのですが。
601 名前:Name_Not_Found [2009/11/14(土) 01:07:57 ID:mAPd0lxt] itpro.nikkeibp.co.jp/article/COLUMN/20061101/252356/ 上記のサイトみたいに www.kawa.net/text/nikkeibp/mashup/vol02/search-hdr.html のような感じで表示はできるのですが、この画像検索結果を違う種類(2種類、3種類など) 同じページ内に表示させることはできるのでしょうか? すごい難しい質問のような気がするのであきらめ気味ですがわかる方がいたら その方法を教えてください。
602 名前:Name_Not_Found mailto:sage [2009/11/14(土) 01:52:19 ID:???] FirefoxでPDFファイルを開くときにAdobeではなく docs.google.com/viewer?url= で開きたいんですが リンクを右クリックしたときに このファイルをdocs.googleで開くを追加する方法ありませんか? mozilla-remix.seesaa.net/article/130845279.html gpdfというスクリプトを使ってますが、検索結果だと反応しないこともあるんです
603 名前:Name_Not_Found mailto:sage [2009/11/14(土) 01:53:52 ID:???] >>601 質問の意味がわからん var div = document.getElementById( 'photos_here' ); の id を渡せるようにするだけじゃないの?
604 名前:Name_Not_Found mailto:sage [2009/11/14(土) 02:32:17 ID:???] >>602 なんで反応しないかを探ってみたら?
605 名前:585 mailto:sage [2009/11/14(土) 02:32:20 ID:???] >>589 すいません。 prototype, consturctorの辺りがよくわからなくなって、手が止まってました。 週末の間には、考えて、また返信します。 単に、関数を差し替えれば、いいかと思ってしまっていたのですが、、、勉強が足らなかったです。
606 名前:Name_Not_Found mailto:sage [2009/11/14(土) 02:46:44 ID:???] >>602 そのグリモンはこれらしいよ blog.arpitnext.com/get-gpdf/gpdf.user.js 末尾に ".pdf" がないのはダメ
607 名前:Name_Not_Found mailto:sage [2009/11/14(土) 03:21:38 ID:???] location.pathname の末尾が ".pdf" ないし location.search に ".pdf" が含まれる だと いくらか拾えるかもね そもそも ".pdf" が含まれない場合だと JavaScript で対応するのは現実的ではないが
608 名前:Name_Not_Found mailto:sage [2009/11/14(土) 06:15:32 ID:???] javascriptのprototypeて試作品という意味?
609 名前:Name_Not_Found mailto:sage [2009/11/14(土) 06:21:55 ID:???] ???
610 名前:Name_Not_Found mailto:sage [2009/11/14(土) 06:55:47 ID:???] >>608 prototypeってフレームワークがあるんだよ jqueryみたいなもん
611 名前:590 mailto:sage [2009/11/14(土) 10:47:54 ID:???] すいません、もう一度聞かせて下さい。 document.writeが終わったらまた最初から同じ処理のループがしたいのですがどなたか改変してもらえませんでしょうか? function など入ると僕の頭では厳しくて・・・ jmp = new Array(); jmp[0] = "image.php"; jmp[1] = "img.php"; jmp[2] = "gazou.php"; n = Math.floor(Math.random()*jmp.length); var req = new XMLHttpRequest(); req.open('GET', jmp[n], false); req.send(null); var newresponseText= req.responseText.match(/test\.php\?no=[a-zA-Z0-9]+/); document.write("<a href='test.com/get.php?no= "+newresponseText+"); document.close(); 宜しくお願いします。
612 名前:Name_Not_Found [2009/11/14(土) 10:51:38 ID:mAPd0lxt] >>601 で書き込んだものですが、すみません書き方が悪かったです。 例えば犬の画像の検索結果と猫の画像の検索結果を同じページ内に表示したいのですが 自分なりのコードを変換してみたのですがどうしてもうまくいきませんでした。 その方法をぜひ教えてください。
613 名前:Name_Not_Found mailto:sage [2009/11/14(土) 14:17:00 ID:???] e = new Array() と e = [] ってどっちがいいの?
614 名前:Name_Not_Found mailto:sage [2009/11/14(土) 14:28:08 ID:???] どっちも同じだろks
615 名前:Name_Not_Found mailto:sage [2009/11/14(土) 14:46:52 ID:???] a1 = new Array(); a2 = new Array(1); a3 = new Array(1, 2); と並べてみて問題点を指摘できないなら、new Array()は使わない方がいい
616 名前:Name_Not_Found mailto:sage [2009/11/14(土) 15:32:03 ID:???] わざわざコンストラクタ使うやつは変態
617 名前:Name_Not_Found mailto:sage [2009/11/14(土) 15:53:26 ID:???] 変態というのはひどすぎませんか。大学で言語をしっかりとマスターした 人ほど変態ということですか?明確なご説明を求めます。
618 名前:Name_Not_Found mailto:sage [2009/11/14(土) 17:00:12 ID:???] 褒め言葉だろ
619 名前:Name_Not_Found mailto:sage [2009/11/14(土) 17:01:11 ID:???] javascriptでオブジェクト指向にそって書く方法ってありませんよね? phpなら class Hello { function word(){echo "こんにちは";} }
620 名前:Name_Not_Found mailto:sage [2009/11/14(土) 17:03:26 ID:???] クラスベースだけがオブジェクト指向だと考えてるなら大間違い
621 名前:Name_Not_Found mailto:sage [2009/11/14(土) 17:04:18 ID:???] 無いね
622 名前:Name_Not_Found mailto:sage [2009/11/14(土) 17:04:24 ID:???] 大学で言語をマスターとかw
623 名前:Name_Not_Found mailto:sage [2009/11/14(土) 17:07:48 ID:???] 大学ではフォートランを習いました・・・
624 名前:619 mailto:sage [2009/11/14(土) 17:16:17 ID:???] >>621 無理そうですね621さんありがとうございました
625 名前:Name_Not_Found mailto:sage [2009/11/14(土) 17:24:03 ID:???] Prototype.jsとかはクラスっぽい書き方をしようとした努力の集大成なのに 全否定しやがったな いいことだ
626 名前:Name_Not_Found mailto:sage [2009/11/14(土) 17:26:32 ID:???] >>619 JavaはObjective-Cの流れを汲むクラスベースのオブジェクト指向 JavaScriptはSelfの流れを汲むプロトタイプベースのオブジェクト指向
627 名前:Name_Not_Found mailto:sage [2009/11/14(土) 17:45:32 ID:???] >>605 かわいそうだから言っといてやるが 589は関数宣言だから無理
628 名前:585 mailto:sage [2009/11/14(土) 22:01:46 ID:???] >>627 降参です。できれば、もう少しヒント下さい。 関数宣言とは、 function A(){}という形でしょうか? A = function(){}という形なら、なんとかしようが有ると言うことでしょうか?
629 名前:Name_Not_Found mailto:sage [2009/11/14(土) 23:32:49 ID:???] 関数Aを呼び出してから一秒間は関数Aを使えないようにしたいのですが、うまくいきません。 $('ABC').toggle();の部分が動くのは確認済みです。 <script type="text/javascript"><!-- function A() { var Z if (Z != 0) { $('ABC').toggle(); }; setTimeout("add_Z (0)", 0); setTimeout("add_Z (1)", 1000); } function add_Z(num) { Z = num; } //--></script> どなたかお助けを。
630 名前:Name_Not_Found mailto:sage [2009/11/14(土) 23:48:28 ID:???] var Z; 何でローカル変数なん?
631 名前:Name_Not_Found mailto:sage [2009/11/15(日) 00:13:50 ID:???] simpleJS使ってるでしょ
632 名前:Name_Not_Found mailto:sage [2009/11/15(日) 00:54:55 ID:???] setTimeout、setIntervalでミリ秒指定しても必ずしもその時間後に動作するとは限らない function(){ setTimeout(function(){alert("Hello!");},100); heavyFunction(); } たとえばheavyFunction();の実行に2秒かかったらsetTimeoutが実行されるのは2秒以降になる
633 名前:Name_Not_Found mailto:sage [2009/11/15(日) 01:16:44 ID:???] >>629 > setTimeout("add_Z (0)", 0); ここは setTimeout 使う意味ないし。
634 名前:Name_Not_Found [2009/11/15(日) 04:11:45 ID:Gx55W3JL] siki = "//body"; rsv = document.createNSResolver(document.documentElement); res = document.evaluate(siki, document, rsv, XPathResult.ANY_TYPE, null); <html xmlns="www.w3.org/1999/xhtml "> <body> ・・・ これでresにnullしか含まれないのはなぜでしょうか? siki = "//*"だと取れるのに・・・? ブラウザはfirefox3.5, safari4、HTMLはContent-Typeをapplication/xmlにしており、XMLとしてパースされてます。
635 名前:Name_Not_Found mailto:sage [2009/11/15(日) 22:37:29 ID:???] この間うちの部署のパソコン画面がエラーが出て部長が激怒。ある人 がやってきてメモ帳みたいなのを開いてチョチョッとやったら直って しまいました。ジャバの天才っているんですね。皆さん本当に凄いです。 尊敬してます。
636 名前:Name_Not_Found mailto:sage [2009/11/15(日) 23:06:19 ID:???] ↓みたいなことを実現したのですが、うまくいきません。 スクリプトから、外部スクリプトを呼び出すことは無理なんでしょうか? <div id="box"></div> <a href="javascript:void(0);" onclick="document.getElementById('box').innerHTML = '<script type=\"text/javascript\" src=\"ほにゃらら.js\"><\/script>'; return false;">表示</a> 「<script type="text/javascript" src="ほにゃらら.js"></script>」はいわゆるブログパーツで、 要点としては、これを画面操作によって初めて表示させたいのですが。
637 名前:Name_Not_Found mailto:sage [2009/11/15(日) 23:07:37 ID:???] 失礼 ×実現したのですが ○実現したいのですが
638 名前:Name_Not_Found mailto:sage [2009/11/16(月) 00:14:12 ID:???] とりあえずhtml-lintでチェックしてみ
639 名前:Name_Not_Found mailto:sage [2009/11/16(月) 00:56:08 ID:???] // ==UserScript== // @name gPDF // @version 1.1 // @author ArpitNext // @namespace blog.arpitnext.com/ // @description Scan webpages for pdf links and set them to open with Google PDF viewver. // @include * // @exclude docs.google.com/* // ==/UserScript== (function () { dl=document.links; for(i=0;i<dl.length;++i){ if(dl[i].host!="docs.google.com"){ if(dl[i].href.substr(-4)==".pdf"){ dl[i].href="docs.google.com/viewer?url= "+dl[i].href; } } } })(); >> if(dl[i].href.substr(-4)==".pdf"){ これだと.pdfにしか反応しないので >> if(dl[i].href.substr(-4)=="*pdf*"){ としたのですが、全く意味がありませんでした。 URLに"pdf"が入っている場合全てに適用させるにはどうしたらいいでしょうか
640 名前:636 mailto:sage [2009/11/16(月) 01:21:20 ID:???] >>638 レスありがとうございます。 html-lintでチェックしてみて、文字参照されていないのがまちがいのようだったので、 <div id="box"></div> <a href="javascript:void(0);" onclick="document.getElementById('box').innerHTML = '<script type="text/javascript" src="ほにゃらら.js"></script>'; return false;">表示</a> に書き換えたのですが、やはり狙い通りには動いてくれません。 Firebugで確認すると、確かにbox内に「ほにゃらら.js」は書き込まれて、展開もされているようなのですが、 内部の関数が実行されないのか、ブログパーツが表示されません。 あとはどこをチェックすればいいでしょうか?
641 名前:Name_Not_Found mailto:sage [2009/11/16(月) 01:22:47 ID:???] あら、これならうまくいくか <div id="box"></div> <a href="javascript:void(0);" onclick="document.getElementById('box').innerHTML = '<script type="text/javascript" src="ほにゃらら.js"></script>'; return false;">表示</a>
642 名前:636 mailto:sage [2009/11/16(月) 01:24:31 ID:???] >>640 のは間違い。 >>641 のように書き換えたんですが、やっぱり表示されません。
643 名前:Name_Not_Found mailto:sage [2009/11/16(月) 01:45:17 ID:???] onmouse系が左クリックで反応してくれるのはいいのですが 右クリックでも反応してしまうのはどうにかなりませんか? ただし、右クリックメニューはそのまま使いたいです。
644 名前:Name_Not_Found mailto:sage [2009/11/16(月) 02:04:31 ID:???] >>636 innerHTMLでは基本的に無理 createElementで<script>を組み立てて、<head>あたりにappendChildする方法が一般的 ブックマークレットで外部jsを読む方法を調べれば実例見つかると思う
645 名前:636 mailto:sage [2009/11/16(月) 13:10:55 ID:???] >>644 レスありがとう。 ブックマークレットのやり方をググってcreateElement&appendChildしてみましたが、 やっぱり表示できませんでした。 「ほにゃらら.js」の中身でdocument.writeとかやってるせいかなと思っているのですが、 「ほにゃらら.js」は一律じゃなく、こちらで中身を触れないのもあって、とりあえずこの方法も無理との判断です。 ですが、この方法を教えてもらったのをきっかけに、ある別の方法を思いつき、 ちょっと試したところ、やりたいことが実現できそうな目星がたちました。 ただそれがJavaScriptの文法的に正しいのか自信が無くて、 他のブラウザでも汎用的に通用するのか、もう少しテストしてみて、改めて相談に伺います。 その時はまたよろしくお願いします。
646 名前:Name_Not_Found mailto:sage [2009/11/16(月) 13:20:39 ID:???] application/xml笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
647 名前:Name_Not_Found mailto:sage [2009/11/16(月) 14:54:36 ID:???] >>646 失笑の爆笑をしてらっしゃるところに質問なのですが、application/xmlで駄目な理由を詳しく教えてもらえますか?
648 名前:Name_Not_Found mailto:sage [2009/11/16(月) 15:29:38 ID:???] 理由も知らないでapplication/xml使ってたのかよ笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
649 名前:Name_Not_Found mailto:sage [2009/11/16(月) 15:55:55 ID:???] なーんだ答えられないのか 聞いて損した
650 名前:Name_Not_Found mailto:sage [2009/11/16(月) 17:27:10 ID:???] 文字参照を使うなら、application/xmlかapplication/xhtml+xmlじゃないと駄目だよ IEは相変わらず機能しないけど
651 名前:Name_Not_Found [2009/11/16(月) 17:39:44 ID:a2Nmfpeo] >>639 クォートで括ったそれは文字列リテラルで、"*pdf*"という文字列と 一致するかどうかの比較。ワイルドカードとして機能しない。 正規表現リテラルはスラッシュで括ります。 /.*?¥.pdf.*?/.test(dl[i].href) とかかな。乱暴すぎるだろうか。
652 名前:634 [2009/11/16(月) 19:24:46 ID:VFLw7WPT] だ、誰かお助けを・・・
653 名前:Name_Not_Found mailto:sage [2009/11/16(月) 20:38:21 ID:???] >>634 XPathでの「body」は「名前空間なしのbody」の意味。 だから名前空間のあるXHTMLではそのままで動かない。
654 名前:634 [2009/11/16(月) 21:07:22 ID:VFLw7WPT] >>653 名前空間プレフィックスは無しだからXPathは"//body"で合ってると思ったんですが、 どこがおかしいのでしょうか? NSリゾルバはlookupNamespaceURI("")で"www.w3.org/1999/xhtml "をちゃんと返します。
655 名前:Name_Not_Found mailto:sage [2009/11/16(月) 23:00:41 ID:???] >>645 読み込んだだけでdocument.writeするjsをクリックイベントで読み込ませるのはどうかと思うけど、 document.writeを上書けば何とかなるんじゃ
656 名前:Name_Not_Found mailto:sage [2009/11/17(火) 00:30:45 ID:???] >>654 繰り返しになるけど、NSResolverがどう動こうと、XPath式の中のプレ フィックスなしタグ名は「名前空間なし」と決まっているの。 だから、この場合はXPath式の中でプレフィックスを付けて自分で NSResolverを提供するか、//*[local-name()="body" and namespace-url()="..."] と書く必要がある。
657 名前:634 mailto:sage [2009/11/17(火) 00:36:14 ID:???] >>656 理解できました。ありがとうございます。
658 名前:Name_Not_Found mailto:sage [2009/11/17(火) 10:15:03 ID:???] 文字列をつくるのに、クオテーションやダブルクオテーションを使いますが、Perlのように q/文字列/ みたいな記法はないのでしょうか?
659 名前:Name_Not_Found mailto:sage [2009/11/17(火) 10:42:53 ID:???] RegExp コンストラクタ
660 名前:Name_Not_Found mailto:sage [2009/11/17(火) 11:24:00 ID:???] q/文字列/みたいな記法はないが似たような事は可能 function q(s) { s += ""; return s.replace(/\//g, ""); } var a = q(/"""'''/); alert(a);
661 名前:Name_Not_Found mailto:sage [2009/11/17(火) 12:48:16 ID:???] >>660 なるほど、関数を作れば似たようなことができるんすね。 d
662 名前:Name_Not_Found [2009/11/17(火) 15:44:28 ID:/uatvqzf] 専ブラのjane等のようにアンカーをマウスオンすると その上にポップアップ(ブラウザが開くタイプではなく、レイヤー?というタイプだと思います)して、特定のHTMLファイルを読み込んで表示したいのですが、参考になるサイトがあればご教授下さい
663 名前:Name_Not_Found mailto:sage [2009/11/17(火) 16:20:07 ID:???] 教授はあげません
664 名前:Name_Not_Found mailto:sage [2009/11/17(火) 16:42:07 ID:???] ご教示だな。
665 名前:Name_Not_Found [2009/11/17(火) 17:08:32 ID:PFN85Hw+] >>662 p2.2ch.net/
666 名前:Name_Not_Found [2009/11/17(火) 20:20:12 ID:PFN85Hw+] サーバ負荷が高まった時に、レスポンスが遅くてイラついた ユーザがリロードするのを抑制したくて、とりあえず サーバ側で高負荷時にフラグを立てて JS側で、フラグONなときにショートカットとF5を 抑制することにしたんですが、 リロードそのものをどうこうすることって、できるんかね?
667 名前:Name_Not_Found mailto:sage [2009/11/17(火) 20:32:27 ID:???] うざす
668 名前:Name_Not_Found mailto:sage [2009/11/17(火) 20:50:41 ID:???] >>660 斬新な発想だなw s += "";は文字列変換したいんだよな? String()でキャストしたほうが見た目もパフォーマンスもいい あと replace(/\//g, "")だと/が全部消える。replace(/^\/(.*)\/$/g, "$1") とか。 で、こんな感じ。 function q(s) { return String(s).replace(/^\/(.*)\/$/g, "$1"); } たださ、これ、q(/[/) とかがシンタックスエラーになるのよ。 残念だけど、実用的ではないな。
669 名前:リリン ◆1Fyv5SRcNU mailto:sage [2009/11/17(火) 21:06:48 ID:??? BE:366610076-PLT(36666)] JavaScriptで<html></html>内に記述した日時を取得してくるって可能ですか?´`
670 名前:Name_Not_Found mailto:sage [2009/11/17(火) 21:31:41 ID:???] >>668 パフォーマンスの話をするなら結果的に呼ばれるtoString()を直に呼ぶ方がいいはず >>669 DOM操作の基本レベル
671 名前:Name_Not_Found mailto:sage [2009/11/17(火) 21:38:16 ID:???] >>669 可能です。
672 名前:Name_Not_Found mailto:sage [2009/11/17(火) 21:54:14 ID:???] >>668 /にしても[にしても(にしても、あんたのように何が書けて何が書けないかが 分かるヤツならどうとでもなるでしょ。 実用的って…んなもの考えて書いちゃいないって。勘弁してよw 使いたいヤツが使えるようにすりゃいいのよ。
673 名前:Name_Not_Found [2009/11/17(火) 22:05:50 ID:PFN85Hw+] >>667 やっぱ無理かー。 いろいろ調べたんだけど、リロード自体とちゃんと向き合って どうこうしたのは見つからんし。
674 名前:リリン ◆1Fyv5SRcNU mailto:sage [2009/11/17(火) 22:31:35 ID:??? BE:392796959-PLT(36666)] >>670 >>671 var obj = document.getElementsByTagName("html").innerText; alert(obj); こんな感じでつか? あんでぃふぁいんど としかでねー<(゚Д゚;)>ぬおーー
675 名前:Name_Not_Found mailto:sage [2009/11/17(火) 23:25:11 ID:???] >>672 アイデアは素直に面白いなーと思ったけど、 実用的じゃないと鵜呑みにしちゃってる感じの>>661 は困るんじゃないかなと思ってさ。 って、それなら安価を661にするべきだったな。すまそ
676 名前:Name_Not_Found [2009/11/17(火) 23:37:56 ID:h/dA56Cd] >>662 こんな所で聞くよりもググれカス www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&rls=org.mozilla%3Aja-JP-mac%3Aofficial&hs=1z4&q=2ch+html%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97+p2+site%3Awiki.github.com%2Funpush%2F&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja&aq=f&oq=
677 名前:Name_Not_Found mailto:sage [2009/11/17(火) 23:45:48 ID:???] カスとか言いながらググッてくれた貴様の優しさに東京市民が泣いた
678 名前:Name_Not_Found mailto:sage [2009/11/18(水) 00:16:20 ID:???] 1943年東京都誕生
679 名前:Name_Not_Found mailto:sage [2009/11/18(水) 04:38:52 ID:???] >>676 safe サーチを off にして何を検索してるんですか//
680 名前:Name_Not_Found mailto:sage [2009/11/18(水) 18:28:19 ID:???] 何ってナニでしょ
681 名前:Name_Not_Found mailto:sage [2009/11/18(水) 18:29:32 ID:???] んま〜お下品ですこと
682 名前:Name_Not_Found mailto:sage [2009/11/18(水) 21:03:32 ID:???] >>661 実用に耐えられるものを書いた(つもり) /******************************************* 引数:正規表現リテラル(/ [ ] ( ) これらはエスケープ) *******************************************/ function q(s) { function f(s1, s2, s3) { if (s3.charAt(s2 + 1) != '\\') return ''; return s1; } return s.source.replace(/\\/g, f); } var a = q(/\\ \/ \[ \( " '/); alert(a); 穴があったらフォローしてちょ
683 名前:Name_Not_Found mailto:sage [2009/11/18(水) 21:08:29 ID:???] 穴があったら俺は入れる。
684 名前:Name_Not_Found mailto:sage [2009/11/18(水) 21:11:50 ID:???] おめーら下品すぎんだよ おれのチンポでもしゃぶってろこのチンカスマンゲ
685 名前:Name_Not_Found mailto:sage [2009/11/18(水) 21:23:39 ID:???] >>682 関数にしてまで利用する処理なのか?それ
686 名前:Name_Not_Found mailto:sage [2009/11/18(水) 21:38:37 ID:???] >>685 知らん。 クォーテーションをエスケープすんのが面倒なんじゃないの。
687 名前:Name_Not_Found mailto:sage [2009/11/18(水) 22:46:56 ID:???] >>682 function q(s) { function f(s1) { return s1.substring(0, s1.length / 2); } return s.source.replace(/\\+/g, f); }
688 名前:Name_Not_Found mailto:sage [2009/11/18(水) 23:24:18 ID:???] ぶっちゃけると、エスケープの手間を省こうとして エスケープしないといけない文字の種類を増やしてるのは本末転倒だよね
689 名前:Name_Not_Found mailto:sage [2009/11/19(木) 08:10:58 ID:???] 以下サイトにクロージャーの説明がありますが、 第3回 変数の宣言とスコープ − @IT www.atmarkit.co.jp/fdotnet/ajaxjs/ajaxjs03/ajaxjs03_04.html function myClosure(init) { var cnt = init; return function() { return ++cnt; } } var result = myClosure(10); window.alert(result()); // 11 window.alert(result()); // 12 window.alert(result()); // 13 以下のように引数をそのままクロージャーに入れるのとは何か違いはありますでしょうか? function myClosure(init) { return function() { return ++init; } }
690 名前:Name_Not_Found mailto:sage [2009/11/19(木) 08:53:33 ID:???] >>689 その例だと見てるスコープが同じだから違いがないなぁ 上の例は、 var cnt = init; で初期化を考えてるんだろうから var cnt = init || 0; の方が良い気がする。引数なければ1からカウントってことで。
691 名前:Name_Not_Found mailto:sage [2009/11/19(木) 09:53:59 ID:???] >>690 なるほど。 レス、d
692 名前:Name_Not_Found mailto:sage [2009/11/19(木) 09:58:43 ID:???] Number の初期化に論理和演算子使う奴とかまだいたのかよ arguments.length まで頭回らなくてもせめて Number() してくれ alert(let (x = 'num') x++);
693 名前:Name_Not_Found mailto:sage [2009/11/19(木) 11:23:21 ID:???] or使うと不幸になるパターンあるのはわかるがそのコードでなにが言いたいのかわからねー NaNはNaNだろ、つーかサンプルコードで当然のようにlet使うなよ
694 名前:690 mailto:sage [2009/11/19(木) 12:49:10 ID:???] >>692 ごめん、Numberの初期化で論理和演算子ってダメなの?今まで気にしてなかった arguments.lengthの話ってことは0だとfalseになるからってこと? それと、alertのコードの意味がよくわからないのでそれも教えて
695 名前:636 mailto:sage [2009/11/19(木) 19:22:37 ID:???] onclickでブログパーツを表示させたいと相談した>>636 です。 あれからいろいろやってみて、↓でかなりいい線まで来ました。 <script type="text/javascript"> function Disp(js, x, y) { document.getElementById('box').innerHTML = '<iframe id="blogparts" name="blogparts" width="' + x + ' height="' + y + '" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"><\/iframe>'; var iframeDocument = document.getElementById('blogparts').contentWindow.document; iframeDocument.open(); iframeDocument.writeln('<html><head><title><\/title><\/head><body style="margin: 0px; padding: 0px;">' + js + '<\/body><\/html>'); if (!document.all) iframeDocument.close(); //IE除外※ return; } </script> <div id="box"></div> <a href="javascript:void(0);" onclick="Disp('<script type="text/javascript\" src="ほにゃらら.js"></script>', 160, 400); return false;">表示</a> innerHTMLで書き出すのでは「ほにゃらら.js」を実行できないので、iframeを書き出して、その中にdocument.writeしてしまおうという発想です。 つづく
696 名前:636 mailto:sage [2009/11/19(木) 19:24:07 ID:???] つづき この方法で、動作確認しているFirefox 3.5.5、Google Chrome 3.0、Safari 4.0.4では完璧に表示できました。 しかし、IE 8.0ではcontentWindow.documentをclose()すると、ほとんどの場合、エラーも出ないままにIEが固まってしまいました。 ※その回避のための「if (!document.all) iframeDocument.close();」 そこでまた相談なのですが、 1)IEがエラーで停止じゃなくてブラウザごとフリーズしてしまうというのは、この方法は他のブラウザでたまたま表示できているだけで、JavaScript的になにか根本的にまずいことをしてしまっているのか? 2)手法として問題ないのであれば、今のスクリプトだと、当然IEではcloseしていないので「ほにゃらら.jsをダウンロードしています」とステータスバーに表示されたままになってしまう。 closeしても絶対フリーズするわけではなく、タイミングによっては表示ができるので、おそらくcloseのタイミングが早すぎるのだと思われる。 ほにゃらら.js読み込み完了を判別してcloseする方法はないか? やってみたこととして、 「<iframe 〜 onload="self.contentWindow.document.close();">」 ↑iframeにonloadを仕込む。 「iframeDocument.writeln('<html> 〜 <\/html><script type="text/javascript">self.document.close();<\/html>');」 ↑contentWindow.documentに書き出す内容の最後に自身をcloseするスクリプトを追記する。 「iframeDocument.writeln('<html> 〜 <body 〜 onload="self.document.close();">');」 ↑contentWindow.documentに書き出したbodyにonloadを仕込む。 は、いずれもダメでした。 いかがでしょうか?どうかいいアイデアをご教示願います。
697 名前:Name_Not_Found [2009/11/19(木) 19:27:25 ID:4k1oW1OP] ブラウザIEなんですが、 <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html;charset=UTF-8N"> <TITLE>あ</TITLE> </HEAD> ・・・というHTMLがあって、 var titleTag = document.all.tags("HEAD")[0].children(1).tagName; とすると、TITLEではなくMETAになるんですが、 HEADのchildrenは勝手に並びかえられて、HEADのfirstChildは必ずTITLEになるという決まりがあるのでしょうか?
698 名前:Name_Not_Found [2009/11/19(木) 19:38:53 ID:istAjeXH] javascriptを覚えることとjqueryやprototypeを覚えるのは どちらがweb制作現場で使える技術になりますか?
699 名前:Name_Not_Found mailto:sage [2009/11/19(木) 20:07:46 ID:???] 最低限、HTML(HTML4.01/5.0/XML/XHTML1.0|1.1),CSS(CSS2.1/3),JavaScript,PHP,WAI(アクセシビリティ)は使えるようになった方が良い
700 名前:Name_Not_Found mailto:sage [2009/11/19(木) 20:26:28 ID:???] >>695 どこで利用したいのかわからないけど、思いついたこといくつか。 1、ほにゃらら.jsを書き換えられるなら関数で包んで、onclick=その関数 2、自分のウェブページとかでページをうpできるなら、ほにゃららJSを埋め込んであるページを作る。iframeのsrc="〜”の〜部分にそのページを入れる。
701 名前:Name_Not_Found mailto:sage [2009/11/19(木) 20:27:30 ID:???] >>698 現場だとライブラリを使いこなせるほうが助かる。 ただ、本質的にJSを理解したいとなれば、当然自分で ライブラリを組んでみるなりしたほうがよい。
702 名前:Name_Not_Found [2009/11/19(木) 21:55:42 ID:Aafz5cdk] >>698 両方できないといずれ困る。っていうか 「来週からやる案件、JQuery使うから(使えないから)よろしこ」 「はい」 ってなるだけだけどね。
703 名前:Name_Not_Found mailto:sage [2009/11/19(木) 22:00:48 ID:???] >>699 2009/11/19現在で勧告段階でもないのにHTML5を使える人なんているんですか?
704 名前:Name_Not_Found mailto:sage [2009/11/19(木) 22:02:12 ID:???] >>703 もうYoutubeとかいろいろなサイトで使われてますがな
705 名前:Name_Not_Found mailto:sage [2009/11/19(木) 23:04:22 ID:???] 試験用の先行対応を利用するとかえらい迷惑やね
706 名前:Name_Not_Found [2009/11/19(木) 23:09:27 ID:Aafz5cdk] これだな。 www.youtube.com/html5
707 名前:Name_Not_Found mailto:sage [2009/11/19(木) 23:12:29 ID:???] sectionに対応したブラウザが無いのにhtml5が使えると思ってる人って勘違い野郎ってことか
708 名前:Name_Not_Found mailto:sage [2009/11/20(金) 00:31:49 ID:???] 「勧告段階でもないのに」とか… HTML5は実装されて、使える状態になってからやっと勧告だからな。 CSS2.1とかも勧告候補だけど、普通に使われてるし。 勧告されるまで律儀に待つというなら止めないけど、完全に取り残されるぞ… 実際、Firefox3.6にはHTML5パーサー載ってて、html5.enableをtrueにすればもう試せるようになってる。
709 名前:Name_Not_Found mailto:sage [2009/11/20(金) 00:35:52 ID:???] 試すのはいいが、まだ独自拡張状態だからな
710 名前:Name_Not_Found [2009/11/20(金) 00:45:40 ID:3jkPr5Fz] 何をもって使えないって言ってるかだよね。 IE以外はある程度使えると実感してるけど。canvasとか。 web storageも使えてるなぁと実感してるけど、確かにそれぞれのブラウザの独自拡張とかもあるからそう言う面ではまだってことか。
711 名前:Name_Not_Found mailto:sage [2009/11/20(金) 00:59:08 ID:???] 読んどけ www.slideshare.net/myakura/html5-2480964
712 名前:Name_Not_Found mailto:sage [2009/11/20(金) 06:56:11 ID:???] HTML5の半分以上は意味論の再定義と現実装の後付け標準化なんだから 勧告段階だのサポートだの言ってる奴はHTML5をFlashか何かと勘違いしてる
713 名前:Name_Not_Found mailto:sage [2009/11/20(金) 07:54:21 ID:???] HTML5で大騒ぎ(?)してるけど、新規タグや要素などが追加されるって話であって、 <開始タグ>〜</終了タグ>というマークアップ言語としては変わらないんでしょ? だったら何も問題はないじゃない。 ttp://dev.w3.org/html5/spec/Overview.html あぁ、doctypeが大きく短くなるのは非常に歓迎する。
714 名前:Name_Not_Found mailto:sage [2009/11/20(金) 08:04:30 ID:???] 発端は>>699 JavaScriptから話がそれた
715 名前:Name_Not_Found mailto:sage [2009/11/20(金) 10:15:36 ID:???] XHTML1.1なんていまさら使う機会なんてないよ
716 名前:Name_Not_Found mailto:sage [2009/11/20(金) 10:19:02 ID:???] 質問です。 jQueryを使用していて、 $(this).css("backgroundColor","red"); みたいにやると、thisの指し示す要素の背景色を赤くできると思うんですけど、 thisの指し示す要素の中にある「#hoge」の背景色を赤くしたい場合、 どのような書式にすればよいのでしょう。 $("#fuga > #hoge").css("backgroundColor","red"); みたいなことをしたい時に、「#fuga」の部分が「this」になると書き方がわからないのです。 JavaScriptの根本が全く理解できていないせいだとは思うのですが。。。
717 名前:Name_Not_Found mailto:sage [2009/11/20(金) 10:38:41 ID:???] こんなの作れる奴ってここにいるの? ttp://www.chiptune.com/
718 名前:Name_Not_Found mailto:sage [2009/11/20(金) 10:43:56 ID:???] 技術的にという意味ならいる
719 名前:Name_Not_Found mailto:sage [2009/11/20(金) 10:45:57 ID:???] ノシ
720 名前:Name_Not_Found mailto:sage [2009/11/20(金) 10:58:20 ID:???] そういうのって行動力が評価されるべきだろ
721 名前:Name_Not_Found mailto:sage [2009/11/20(金) 11:01:48 ID:???] >>716 すみません(たぶん)自己解決しました。 jQueryの仕様の中に普通にあったみたいで、 $("#hoge", this) とすれば、(ちょっと自信ないですが)okだという認識で落ち着きました。 お騒がせしました、ありがとうございます。
722 名前:Name_Not_Found mailto:sage [2009/11/20(金) 11:21:01 ID:???] >>721 children()かfind()使ったらええやん
723 名前:Name_Not_Found mailto:sage [2009/11/20(金) 11:28:04 ID:???] >>722 children()とfind()についてリファレンス見てきました、理解できたつもりです。 どんな命令が予め用意されてるのかすら把握できていないことは自覚できたので、 もう一度リファレンス等きちんと読んで勉強してきます。 ありがとうございます。
724 名前:Name_Not_Found mailto:sage [2009/11/20(金) 11:37:32 ID:???] 参考のためそのリファレンスを教えてください
725 名前:716 mailto:sage [2009/11/20(金) 11:47:17 ID:???] URL直接貼るのはどうなのかな、いいのかな 私が今見てるのは、「jQuery リファレンス」でググると上の方に出てくる、以下3つです。 www.openspc2.org/JavaScript/Ajax/ref/jQuery/ver1.0.3/index.html semooh.jp/jquery/ www.mikage.to/jquery/jquery_ref.html かなり初心者なのでどういう情報を参考にするとよいのかも自信ないんですが、 ひとつ見てもよくわからない場合とかに複数のサンプル比べながら目を通したりして、 まあ、少しずつ勉強してるつもりです。
726 名前:>>636 = >>695 mailto:sage [2009/11/20(金) 12:56:50 ID:??? BE:3196368678-2BP(100)] >>700 レスありがとうございます。 利用場所というか目的は見たまんまだと思うんですが、ブログパーツギャラリーみたいなのを構築しています。 というわけで、ほにゃらら.jsの中身は千差万別で、書き換えることもできません。 で、ごめんなさい。 本当はIEの場合の回避は、今回問うているclose問題とは違う理由から>>700 の2の方法でやっています。 ただ、自由にページを増やせる環境でなく、今やっている別ページの埋め込みも、 それ専用のページが作れないので、いろいろ無理をしており、できれば単独ページで完結させたいのです。 その辺を説明しだすと回りくどくなるかと思い触れなかったのですが、 結果的に同じところにたどり着いてしまいました。すみません。 他のブラウザではうまくいくのに、IEではハングしてしまうのが解せなかったのですが、 これについては、IEが特殊と思うしかないんでしょうかね。 仕方ないので、別ページを埋め込む無理を許容して、一応の完成としたいと思います。 ありがとうございました。
727 名前:Name_Not_Found [2009/11/20(金) 15:51:07 ID:u77XSZWV] 教えてください。 ある会社のHPを作成しています。 その中にブログのページを作るのですが、最新のブログのタイトルとテキストを 表紙ページでも表示させたいのです。 そのときに、テキストは全文ではなくて、最初の3行程度だけ表示させて、 下に『続きを読む』と入れて、ブログのページにリンクさせたいのです。 『続きを読む』と入れて、ブログのページにリンクさせることは簡単なので出来ましたが、 ブログのページの最初の3行程度を表示させるところがわかりません。 JavaScriptを使うのかと思い、こちらに質問させていただきましたが、違ったらすいません。
728 名前:Name_Not_Found mailto:sage [2009/11/20(金) 16:04:42 ID:???] >>727 そういうのはサーバで全部やるのが普通 javascript使うのは「リンクをクリックしたらその部分に全文が表示される」という場合 要約にせよ全文にせよサーバがデータ吐かないと実現不可能なわけで、大概サーバもいじることになる つーかどのブログシステム使ってるのかしらないけど、該当スレで聞けばいいだろ 有名どころなら特定のアドオンやテーマを使えば一発だったり、手順解説してる記事が存在してたりする
729 名前:Name_Not_Found mailto:sage [2009/11/20(金) 16:05:49 ID:???] javascriptで続きを読むという文字をクリックしたら tuduki1にdisplay:noneにしてkiji1にdisplay:blockを設定 .kiji1 { display:none; } あああああああああああああああ いいいいいいいいいいいいいいい ううううううううううううううううううううう <div class="tuduki1">続きを読む</div> <div class="kiji1"> えええええええええええええええ おおおおおおおおおおおおおおお かああああああああああああああ </div>
730 名前:Name_Not_Found mailto:sage [2009/11/20(金) 16:09:29 ID:???] >>727 これでも読んでろks ttp://www.kantenna.com/pg/2007/06/javascript.php
731 名前:Name_Not_Found mailto:sage [2009/11/20(金) 16:10:23 ID:???] 失礼、MTやWPを想定してたけど表紙ページってブログ外か 俺ならそのページを動的生成にしてブログのRSSを埋め込む javascriptでRSS表示する方法でもいいだろうけど、どちらかといえば最終手段だな
732 名前:Name_Not_Found mailto:sage [2009/11/20(金) 16:11:17 ID:???] >>727 コレデモヨンデロKS ttp://ziddy.japan.zdnet.com/qa3133826.html
733 名前:Name_Not_Found mailto:sage [2009/11/20(金) 16:12:02 ID:???] >>727 メルアド晒してくれるのなら作ってもいいんですよ
734 名前:Name_Not_Found mailto:sage [2009/11/20(金) 16:12:40 ID:???] 最初の三行だけ別のデータとして登録すればよかったりするけど
735 名前:Name_Not_Found mailto:sage [2009/11/20(金) 16:13:56 ID:???] >>727 それ俺が昔質問たことあるよ >>1 の過去ログ読んでから質問したの?
736 名前:Name_Not_Found mailto:sage [2009/11/20(金) 16:49:08 ID:???] まだ初心者だけど、そのブログが同一サーバー内にあるのなら内容をAjaxで取ってくれば いいのかな?
737 名前:Name_Not_Found mailto:sage [2009/11/20(金) 17:10:12 ID:???] test999
738 名前:Name_Not_Found mailto:sage [2009/11/20(金) 17:14:04 ID:???] アクセスログ取得CGI(PERL)を先頭ページに仕込んでアクセスすると ”アクティブコンテンツをブロックした”というポップアップが出て うざくてしかたありません。出さないようにするCGIの設定方法や、 HPへのJAVASCRIPTの記述方法はないものでしょうか?
739 名前:Name_Not_Found mailto:sage [2009/11/20(金) 20:44:25 ID:???] >>729 訓令式でtudukiはシビレる。
740 名前:Name_Not_Found mailto:sage [2009/11/20(金) 23:00:16 ID:???] 人のソース見て、変数名とかが訓令式になってるのをを見るとヘボン式に直したくなります
741 名前:Name_Not_Found mailto:sage [2009/11/21(土) 01:21:52 ID:???] ローマ字綴りはうんこ エヴァンゲリオンとヱヴァンゲリヲンを区別できない
742 名前:Name_Not_Found mailto:sage [2009/11/21(土) 01:27:12 ID:???] wevangerion
743 名前:Name_Not_Found mailto:sage [2009/11/21(土) 02:48:42 ID:???] >>727 「その中にブログのページを作る」とあるから同一ドメインだろ? ならjQuery使えばいいんじゃね <!-- 表紙ページ --> <script type="text/javascript" src="jquery-1.3.2.min.js"></script> <div id="nav"></div> <div><a href="blogTop.html">続きを読む</a></div> <script type="text/javascript"> $("#nav").load("blogTop.html #title, #contents"); </script> <!-- ブログページ --> <h3 id="title">タイトル</h3> <div> <span id="contents">表紙に表示させたいテキスト</span> ... </div> ブログの文字コードはUTF-8でなきゃダメよん
744 名前:Name_Not_Found [2009/11/21(土) 07:54:25 ID:66iDeqOB] 公開されているライブラリやサイトで、 時々if文などで === が使われているのをみかけるのですが、 == と === の違いはなんでしょうか? PHPだと === は、厳密な型の比較を行って == よりも高速に動作するみたいなのですが一緒でしょうか?
745 名前:Name_Not_Found mailto:sage [2009/11/21(土) 08:14:55 ID:???] JavaScriptは最適化の関係で厳密等価演算子を使うと遅くなる。 でも使い道が無いわけでもない たとえば正常なら数値を、エラーが発生したらfalseを返す関数の場合、等価演算子をつかうと0とfalseの区別が出来ない
746 名前:Name_Not_Found [2009/11/21(土) 08:49:07 ID:66iDeqOB] >>745 ありがとうございます! === は、やはり厳密等価演算子でしたか。 しかしPHPと違って厳密等価演算子は遅くなるんですね・・・注意します。
747 名前:Name_Not_Found mailto:sage [2009/11/21(土) 12:56:07 ID:???] >>741 それはヘボン式が音写だから。訓令式なら翻字なので可逆変換。
748 名前:Name_Not_Found [2009/11/21(土) 13:13:40 ID:/DfmKa7m] ネスケでの__proto__は将来的にIEでも採用されますか?
749 名前:Name_Not_Found mailto:sage [2009/11/21(土) 13:26:35 ID:???] >>745 手間のかかる文字列比較以外は厳密比較のほうが速いはず
750 名前:Name_Not_Found mailto:sage [2009/11/21(土) 13:44:16 ID:???] 文字列も同じだったかも? とりあえず厳密比較のほうが遅いというソースがほしい 手元のFx3.5でおおざっぱに試してみたら、誤差程度か厳密比較のほうが倍ほど速かった まあJITのご機嫌にも影響するけど
751 名前:Name_Not_Found mailto:sage [2009/11/21(土) 14:46:22 ID:???] if (file1.match(/abcd/)) { document.write("OK"); } file4まである場合 file1〜file4の4つの値全てにabcdが入ってる場合だけOKと表示させたい場合は どう書くのでしょうか?
752 名前:Name_Not_Found mailto:sage [2009/11/21(土) 14:59:20 ID:???] 4つだけなら && で繋げたら?
753 名前:Name_Not_Found mailto:sage [2009/11/21(土) 15:05:09 ID:???] >>751 &&でつなげるか、フラグを用意するか。 それと、その程度の検索であればindexOfを用いたほうがよい
754 名前:Name_Not_Found mailto:sage [2009/11/21(土) 15:26:03 ID:???] 「厳密」って言葉のイメージとは裏腹に、 型変換をしない分、却って速いと思うんだけどな。
755 名前:Name_Not_Found mailto:sage [2009/11/21(土) 15:47:14 ID:???] >>753 ありがとうございます。 できました。 一応・・・ if ((file1&&file2&&file3&&file4&&file5).indexOf(/abcd/)) { で合ってるでしょうか?
756 名前:Name_Not_Found mailto:sage [2009/11/21(土) 15:49:28 ID:???] あ、何か違いますね if ((file1&&file2&&file3&&file4&&file5).indexOf("abcd")) { これで合ってるでしょうか?
757 名前:Name_Not_Found mailto:sage [2009/11/21(土) 15:54:57 ID:???] ふ・・・増えてる・・・・? wwww
758 名前:Name_Not_Found mailto:sage [2009/11/21(土) 16:13:21 ID:???] >>755 1時間くらいJSの基礎を勉強してこい
759 名前:Name_Not_Found mailto:sage [2009/11/21(土) 16:23:09 ID:???] 基礎丸ごとだと一時間じゃ足りないかもしれないw 真偽値と論理演算について勉強してみて オブジェクトの合成は普通できないけど(それぞれ専用の関数を用意した場合を除く) trueやfalseになってしまえば合成できる やりたいことは、愚直に書けばこういうことでしょ? if (file1.match(/abcd/)) { if (file2.match(/abcd/)) { if (file3.match(/abcd/)) { それが>>756 みたいには化けないんだよ でも複数のif文を一つに化けさせることならできる
760 名前:Name_Not_Found mailto:sage [2009/11/21(土) 16:46:00 ID:???] >>750 速くなるというより遅くならないというほうがしっくりくる
761 名前:Name_Not_Found mailto:sage [2009/11/21(土) 16:50:13 ID:???] 0〜4までの値で、イベントに応じてこれが変動するarrayの値(point)があります。 sample[1].point:2 sample[2].point:3 sample[3].point:3 sample[4].point:2 sample[5].point:3 sample[6].point:1 sample[7].point:0 sample[8].point:4 これをhtml内に反映させて、 23323104 のように表示させる部分を作ったのですが、これらの数字のかわりに GIF画像を値に応じて表示させることはできますか?(0なら○○.gif、1なら××.girのように) ネットでいろいろと調べてみたのですが、これといったものが見つけられませんでした。 ここ一週間ほど行き詰まっています。 当方初心者です。アドバイス、もしくはお叱りだけでもかまわないのでよろしくお願いいたします。
762 名前:Name_Not_Found mailto:sage [2009/11/21(土) 16:51:30 ID:???] 検索する対象が増えたらどうするの? こう↓すればいいの? var file_; for ( var i = 1; i < 5; i++ ) { eval( "file_ = file" + i ); if ( file_.indexOf("abcd") ) break; } if ( i == 5 ) document.write("OK");
763 名前:Name_Not_Found [2009/11/21(土) 17:18:45 ID:OBIjUl2O] >>762 そのくらいでeval必要ないだろ。あとindexOfは位置を返すからそれだと正常な状態でもbreakする var files = ['abcde','abcdf','abcdg','abcdh','abcdi',]; for (var i=0,l=files.length; i<l; ++i) { if (files[i].indexOf('abcd') < 0) { break; } else { if (i === l-1) document.write('ok'); } }
764 名前:751 mailto:sage [2009/11/21(土) 17:19:13 ID:???] あら、755ではダメなんですね >>759 ありがとうございますl。愚直なそれでいきます!
765 名前:Name_Not_Found mailto:sage [2009/11/21(土) 17:27:33 ID:???] >>762 どういう意図で eval 使ってるのか分からん。
766 名前:Name_Not_Found mailto:sage [2009/11/21(土) 17:52:53 ID:???] >>765 既存のローカル変数に動的にアクセスしたいからでしょ コンテナ使わずに、動的にアクセスしたくなるほど変数を作った時点で破綻してるわけだけど
767 名前:Name_Not_Found [2009/11/21(土) 18:02:02 ID:95sN+lT1] >>761 「イベントに応じて」っていうのがよくわからないし、 表示部分をどうしているのかによるけど、 エスパーしてみると、今は for (var i = 1; i <= 8; i++) { //sample[i]の添え字は1〜8なんだよね? document.write(sample[i].point); } みたいになってる? だとしたら、0〜4までの値で表示させたい画像をそれぞれ、 0:○○.gif 1:××.gif 2:□□.gif 3:△△.gif 4:◇◇.gif として、 var img = new Array('○○.gif', '××.gif', '□□.gif', '△△.gif', '◇◇.gif'); for (var i = 1; i <= 8; i++) { document.write('<img src="' + img[sample[i].point] + '" />'); } みたいな感じ?
768 名前:Name_Not_Found mailto:sage [2009/11/21(土) 19:30:32 ID:???] 文字列にHTML含めるな
769 名前:Name_Not_Found [2009/11/21(土) 19:42:39 ID:OBIjUl2O] >>768 横レスだけどinnerHTML使わずにDOMでやれってこと?
770 名前:Name_Not_Found mailto:sage [2009/11/21(土) 19:47:03 ID:???] DOMなんてそんなに難しいわけではないし script要素内はPCDATA(バージョンによってCDDATAだが本来はPCDATAとして扱うべき)だからそもそも使えない ttp://www.openspc2.org/JavaScript/JavaScript_DOM/
771 名前:Name_Not_Found [2009/11/21(土) 20:32:30 ID:OBIjUl2O] DOMが難しいかどうかは別にして、簡単に使えるinnerHTMLを全く使わないってのももったいなくない? PCDATAの理由なら <![CDATA[ ]]> で囲めば良いし、外部ファイルにすれば良いって話じゃない?
772 名前:Name_Not_Found mailto:sage [2009/11/21(土) 20:33:59 ID:???] いや、全然。
773 名前:Name_Not_Found mailto:sage [2009/11/21(土) 20:42:52 ID:???] 質問です。 横幅のピクセル数が決まっているdivにフォントサイズの決まったテキストを入れる時に、 右端で折り返す必要のあるとき、あらかじめ何行になるか知る方法はないでしょうか? 3行以上になるならば、残りを省略して2行に抑える処理を入れたいと思っています。 たとえば「長すぎるテキストメッセージ」を「長すぎるテキス...」という風に変更したいわけです。 何か良い方法やアイデアがあればぜひ教えてください。よろしくお願いします。
774 名前:Name_Not_Found mailto:sage [2009/11/21(土) 20:50:44 ID:???] >>773 一定文字数で切っちゃったら?文字列の種類で長さが微妙になるけど・・・ >>771 それつかうと>>695 が出来るようになる?
775 名前:Name_Not_Found mailto:sage [2009/11/21(土) 21:26:17 ID:???] ここにある回答で、ときおりコードの中にコメント(/* */)があり、その中に@ifや@else@やらの コードらしきものが書かれていますが、これにはどういう意味があるのでしょうか? Enter キー 無効について -OKWave okwave.jp/qa5464601.html
776 名前:Name_Not_Found mailto:sage [2009/11/21(土) 21:35:19 ID:???] 条件付コンパイル
777 名前:Name_Not_Found mailto:sage [2009/11/21(土) 21:51:33 ID:???] >>776 d
778 名前:Name_Not_Found [2009/11/21(土) 21:52:05 ID:95sN+lT1] >>770 ごめん、解答しておいてなんだけど、 最近やっとDOM的な扱いを覚え始めてて、 PCDATAとかについてはまったく無知なんだけど、 >>767 なら、 var obj = document.createElement('div'); var img = new Array('○○.gif', '××.gif', '□□.gif', '△△.gif', '◇◇.gif'); for (var i = 1; i <= 8; i++) { var img = document.createElement('img'); img .setAttribute('src', img[sample[i].point]); obj.appendChild(img); } document.getElementById('body内のどっか').appendChild(obj); ってことであってる? document.write('<tag>fuga</tag>'); とか、 document.getElementById('body内のどっか').innerHTML = '<tag>fuga</tag>'; ってのは、今の(?)ルールではやっちゃだめってことで?
779 名前:761 mailto:sage [2009/11/21(土) 21:55:23 ID:???] >>767 ありがとうございました! 試行錯誤した結果、理想のものができました。 自力では100%できなかったんで、本当に感謝です!!!
780 名前:Name_Not_Found mailto:sage [2009/11/21(土) 22:42:08 ID:???] >>773 <div id="nav" style="border:1px solid; width:100px;"></div> var str = "ああああああああああああああああああ".split(""); var s = ""; var obj = document.getElementById("nav"); for (var i = 0; i < str.length; i++) { obj.innerHTML += str[i]; if(obj.offsetHeight > 40) { obj.innerHTML = s.substring(0, s.length - 1) + "…"; break; } s += str[i]; } 英数字が絡んでくると微妙なんだけどね あとは工夫してちょ
781 名前:Name_Not_Found mailto:sage [2009/11/21(土) 22:46:59 ID:???] 質問です。 簡易パスワード認証をかけたんですが、firefoxだとうまくいくのにIEではうまくいきません。 どうしたらいいでしょう。 <script type="text/javascript"><!-- function checkpw(){ var pswd = prompt("パスワードを入力して下さい:",""); location.href = pswd + ".html"; } //--></script> <form> <input type="button" value="秘密のページへ" onClick="checkpw();"> </form> というソースを記載しています。
782 名前:Name_Not_Found [2009/11/21(土) 22:53:05 ID:lHVTQkPd] javascriptとDOMについて最近勉強を始めてみたのですが質問があります javascriptはw3cで公開されているDOMの全てを操作することはできますでしょうか? 例えばwww.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#i-Document のDOMImplementationというのはjavascriptから使うことは出来ますでしょうか? ググってみたのですがどれもJavaに関する記述でjavascriptではどうなのかなと疑問に思いました。 どなたかご教示お願い致します
783 名前:Name_Not_Found mailto:sage [2009/11/22(日) 00:38:21 ID:???] >>782 出来るかどうかは実装次第 検索ワードに javascript ってつけ足せばよくね? 個人的には MDC Search で十分だと思うけど
784 名前:Name_Not_Found mailto:sage [2009/11/22(日) 01:02:10 ID:???] >>782 IE以外なら、DOM Level 2までは確実に使えるよ。 DOM Level 3はブラウザによってまちまちかな。 てか、document.implementationとかでググれば普通にJavaScriptについての記述が出てくるけど…
785 名前:Name_Not_Found mailto:sage [2009/11/22(日) 03:03:02 ID:???] >>2 の5の現行バージョン次スレで直してね
786 名前:Name_Not_Found mailto:baka [2009/11/22(日) 10:03:24 ID:???] getElementsByNameってinputタグみたいにname属性があるものしか取れないの? divタグに無理矢理name属性つけてgetElementsByNameで取るとか不可能?
787 名前:Name_Not_Found mailto:sage [2009/11/22(日) 10:31:12 ID:???] id付けてidでとれよ
788 名前:Name_Not_Found mailto:sage [2009/11/22(日) 10:39:27 ID:???] getElementsByNameとかgetElementsByIDって標準でしょうか?
789 名前:Name_Not_Found mailto:sage [2009/11/22(日) 10:52:01 ID:???] まず標準を定義しようぜ
790 名前:Name_Not_Found mailto:sage [2009/11/22(日) 10:58:29 ID:???] DOM一覧をまとめたサイトをどなたかテンプレ追加していただけませんか?
791 名前:Name_Not_Found mailto:sage [2009/11/22(日) 11:43:44 ID:???] >>569 10日周期に書き込む気か
792 名前:790 mailto:sage [2009/11/22(日) 11:50:21 ID:???] それ俺じゃないです
793 名前:Name_Not_Found mailto:sage [2009/11/22(日) 11:53:48 ID:???] 検索使えば一覧なんて必要ないだろ
794 名前:Name_Not_Found mailto:sage [2009/11/22(日) 12:03:26 ID:???] テンプレに入れたいなら人任せにしないでURL貼れよ 知りたいだけなら小賢しいこと言ってないで素直に聞けばいいだろ
795 名前:Name_Not_Found mailto:sage [2009/11/22(日) 12:32:54 ID:???] >>794 は初心者とみた 煽っておいて本当は自分が知りたいために人を利用するとか乙
796 名前:Name_Not_Found mailto:sage [2009/11/22(日) 13:33:47 ID:???] >>787 idじゃひとつしかとれねーし
797 名前:Name_Not_Found mailto:sage [2009/11/22(日) 13:43:41 ID:???] >>796 sorry,this thread is japanese only!!
798 名前:Name_Not_Found mailto:sage [2009/11/22(日) 13:52:32 ID:???] 脳みそ腐ってんの?
799 名前:Name_Not_Found mailto:sage [2009/11/22(日) 13:59:17 ID:???] ジュワワ?
800 名前:Name_Not_Found mailto:sage [2009/11/22(日) 14:09:51 ID:???] innerHTMLだけだと限界があるんだよね・・変数上にDOMを構築出来ないとか色々と
801 名前:Name_Not_Found mailto:sage [2009/11/22(日) 14:10:46 ID:???] innerHTMLって初心者向きだと思ってるよ
802 名前:Name_Not_Found mailto:sage [2009/11/22(日) 14:48:23 ID:???] トラップだらけなのにどこが
803 名前:Name_Not_Found mailto:sage [2009/11/22(日) 16:13:10 ID:???] ブラウザが曖昧解釈してくれる言語は初心者向け……と言われてる気がする
804 名前:Name_Not_Found mailto:sage [2009/11/22(日) 16:44:44 ID:???] それは JavaScript を知らない人間の認識が間違っているだけ。
805 名前:Name_Not_Found mailto:sage [2009/11/22(日) 17:01:14 ID:???] 子飼弾がYAPCで、「言語モドキのJavaScriptにできてPerlでできなわけがない」という 言及があった。
806 名前:Name_Not_Found mailto:sage [2009/11/22(日) 21:28:39 ID:???] ブラウザによって全然違うからそういわれても不思議ではない
807 名前:Name_Not_Found mailto:sage [2009/11/23(月) 08:37:56 ID:???] CanvasのgetImageDataって、canvasに外部画像読み込ませた上からやるとエラーでるっぽくない?
808 名前:Name_Not_Found mailto:sage [2009/11/23(月) 09:01:37 ID:???] same origin
809 名前:Name_Not_Found mailto:sage [2009/11/23(月) 16:33:58 ID:???] Web Workersを使ってマルチスレッドプログラミングに挑戦中です。 スレッドに引数を渡したいのですがどのようにすればよいのでしょうか?
810 名前:Name_Not_Found mailto:sage [2009/11/23(月) 16:50:17 ID:???] postMessage
811 名前:Name_Not_Found [2009/11/23(月) 17:39:06 ID:IOMrU+tq] >>810 ありがとうございます。今出先で確認できないのですが、postMessageは親→子の通信も可能なのですか?
812 名前:Name_Not_Found mailto:sage [2009/11/23(月) 17:51:50 ID:???] マルチは消えろ
813 名前:Name_Not_Found mailto:sage [2009/11/23(月) 18:09:59 ID:???] 出先で質問するなよ
814 名前:Name_Not_Found mailto:sage [2009/11/23(月) 20:34:37 ID:???] <HTML><BODY><script type="text/javascript"><!-- for(x=1234000;x<=1234100;x++) { var flag=0; if( (x % 2) == 0) { document.write(x+"<br>"); }else { for(y=1;y<=(sqrt(x)/2);y++) { if( (x % (2*y+1) ) == 0 ) { flag++; } } if( flag == 0 ) { document.write(x+"Prime!<br>"); } else { document.write(x+"<br>"); } } } // --></script></BODY></HTML> 1234000〜1234100までの素数判定のプログラムを書いたつもりなのですが、何がいけないのでしょうか
815 名前:Name_Not_Found mailto:sage [2009/11/23(月) 21:02:37 ID:???] 質問です。javascriptで出来ないことって何ですか?
816 名前:Name_Not_Found mailto:sage [2009/11/23(月) 21:06:21 ID:???] >>814 Math.sqrt
817 名前:Name_Not_Found mailto:sage [2009/11/23(月) 21:30:35 ID:???] >>815 他鯖侵入中雑都改竄。
818 名前:Name_Not_Found mailto:sage [2009/11/24(火) 00:32:51 ID:???] >>817 他の鯖に進入して中身を改竄することが出来ないっていう意味でいいんですかね。 javascriptを学ぼうと思っているんですが、何が出来て何が出来ないのかいまいちよく分からなくて。 それ以外の事は大体出来ると考えていいんでしょうか? スレチだったらごめんなさい。
819 名前:Name_Not_Found mailto:sage [2009/11/24(火) 00:35:43 ID:???] 出来ること以外は出来ない、と考えておけ どうせ理論上可能でも現実的・能力的に不可能なことは山ほどある
820 名前:Name_Not_Found mailto:sage [2009/11/24(火) 00:38:49 ID:???] JavaScript 上達しても彼女できないし、生活は充実しないし(T^T) あ、でも AV はいっぱい手に入りました(^^;)
821 名前:Name_Not_Found mailto:sage [2009/11/24(火) 00:39:08 ID:???] 「自分に」が抜けてたスマン 結局、地道にチャレンジを繰り返すことで出来ることを増やしていくしかないんだよ
822 名前:Name_Not_Found mailto:sage [2009/11/24(火) 00:46:27 ID:???] JavaScript 上達しても自分に彼女できないし、生活は充実しn
823 名前:Name_Not_Found mailto:sage [2009/11/24(火) 00:50:06 ID:???] 分かりました、ありがとうございました。 あともう1つだけ(スレチだと思うけど)質問させて下さい。 javascriptが理解出来るようになるまでどれくらい掛かりましたか?
824 名前:Name_Not_Found mailto:sage [2009/11/24(火) 00:53:28 ID:???] JavaScript は進化し続けるよ、いつまでも。 いくら AV を揃えても、新作が気になるのと同じ。
825 名前:Name_Not_Found mailto:sage [2009/11/24(火) 00:54:36 ID:???] 分かりやすい説明ありがとうございます。 なんかやる気が出てきました。
826 名前:Name_Not_Found mailto:sage [2009/11/24(火) 05:46:57 ID:???] ホテル等の検索サイトや家電系の比較サイトのように、複数のサイトから同じ条件(料金や個数など)をフォームで指定し、その結果を1つのページに表示したいのですが、ソースが分かりません・・・
827 名前:Name_Not_Found mailto:sage [2009/11/24(火) 08:03:49 ID:???] >>826 webサーバにデータベース置いて検索してるだけ。jsの仕事じゃない。
828 名前:Name_Not_Found [2009/11/24(火) 13:18:05 ID:3CHH7Npu] >>823 理解したつもりになる→全然わかってなかったことに気づく、 の繰り返しでしょ。何事も。
829 名前:Name_Not_Found mailto:sage [2009/11/24(火) 13:36:30 ID:???] >>823 結局自分がどこで納得するかということだよ
830 名前:Name_Not_Found mailto:sage [2009/11/24(火) 13:38:04 ID:???] JavaScriptなんてたいして難しい言語じゃないよ むしろ他からすると簡単 そう難しく考えずに気楽にすればいいんだよ
831 名前:Name_Not_Found mailto:sage [2009/11/24(火) 13:39:40 ID:???] >>824-825 >いくら AV を揃えても、新作が気になるのと同じ。 >分かりやすい説明ありがとうございます。 >なんかやる気が出てきました。 ・・・おいおいw
832 名前:Name_Not_Found mailto:sage [2009/11/24(火) 13:49:23 ID:???] え? おいらもその説明に納得が行ったんだが、君は違うのかい?
833 名前:Name_Not_Found mailto:sage [2009/11/24(火) 14:29:20 ID:???] (訳:吹いた)
834 名前:Name_Not_Found [2009/11/24(火) 16:07:35 ID:r4ZX7Ioz] JavaScript買ったお^^
835 名前:Name_Not_Found [2009/11/24(火) 16:55:16 ID:vWQq4MUX] <div>header</div> <div>あれこれ「はげ」です。 それこれ「ほげ」ではありません。</div> <div>footer</div> このdiv内(実際はもう少し長い)の「」で囲った部分を強調するように変換するには、 innerHTMLを使っていいなら、 document.getElementsByTagName('div')[1].innerHTML = document.getElementsByTagName('div')[1].innerHTML.replace(/「(.*?)」/g, '「<strong>$1<\/strong>」'); の一行で済むと思うんですが、 同じことをDOMを意識して(document.createElement('strong')などを使って)やるには、どうやったらいいんでしょうか? 一切innerHTMLを使わずにやれるんでしょうか?
836 名前:Name_Not_Found mailto:sage [2009/11/24(火) 17:14:41 ID:???] 太字にするだけなら、id.style.fontWeightでいんじゃないん? ツリーを再構築する必要もないし
837 名前:Name_Not_Found mailto:sage [2009/11/24(火) 17:24:56 ID:???] >>835 結果の状態をDOM inspectorみたいなのでツリー表示してみりゃわかると思う 手順的には、「ほげ」の前後でtextNodeを分割して strongエレメントと「ほげ」をreplaceしてからappendする
838 名前:Name_Not_Found [2009/11/24(火) 18:26:26 ID:3CHH7Npu] >>835 replaceの第二引数に関数を渡してゴニョゴニョする。
839 名前:Name_Not_Found mailto:sage [2009/11/24(火) 20:39:45 ID:???] は?
840 名前:Name_Not_Found [2009/11/24(火) 20:52:30 ID:3CHH7Npu] >>839 あ、自分が以前やったとき、replaceに落ち着いたってだけで。 もっといいやり方があったら、ぜひぜひ!
841 名前:Name_Not_Found mailto:sage [2009/11/24(火) 21:06:38 ID:???] さいきんのにほんごはむつかしいねえ
842 名前:Name_Not_Found mailto:sage [2009/11/24(火) 21:47:02 ID:???] >>836 とか>>838 とか、なんでここにいるの? って感じだな
843 名前:Name_Not_Found [2009/11/24(火) 21:53:08 ID:q6LvWNk8] >>839 とか>842みたいな日本語だけのレスよりはJavaScript使ってレスしてる方がまだマシだけどな おかしなこと言ってればつっこめばいいだけだし
844 名前:Name_Not_Found [2009/11/24(火) 22:27:05 ID:3CHH7Npu] 書いたの見つけてきました。 おかしいところとかあると思うんで、添削してもらえるとありがたい。 var target = 変換する対象となる要素。 var pattern = /(.*?)(「[^」]+」)/g; (function(target){ var c = target.childNodes , i = c.length - 1 , F = arguments.callee; for(; i>=0 ; i--)(function(node){ if(node.nodeType == 1) F(node); else if(node.nodeType == 3){ var baff = node.nodeValue.replace(pattern,function($0,$1,$2){ var element = document.createElement("strong"); node.parentNode.insertBefore(document.createTextNode($1),node); element.appendChild(document.createTextNode($2)); node.parentNode.insertBefore(element,node); return ""; }); if(baff == "") node.parentNode.removeChild(node); else node.nodeValue = baff; } })(c[i]); })(target);
845 名前:Name_Not_Found mailto:sage [2009/11/24(火) 22:53:51 ID:???] >.844 いつもそんな書き方してるの? 正直読みにくい
846 名前:Name_Not_Found [2009/11/24(火) 23:15:19 ID:zVVLsdRG] そこかい!
847 名前:Name_Not_Found mailto:sage [2009/11/24(火) 23:38:24 ID:???] 強調するくらいでツリーごと変更するべきじゃないだろう…
848 名前:Name_Not_Found mailto:sage [2009/11/25(水) 00:23:22 ID:???] >>844 return "";ってなんだよ氏ね
849 名前:Name_Not_Found mailto:sage [2009/11/25(水) 00:54:16 ID:???] >>848 cで\0だったかな?例えてnullじゃなかった? なんか懐かしいような 10年前に廃業したから違ったらすまん
850 名前:Name_Not_Found mailto:sage [2009/11/25(水) 01:00:16 ID:???] (function(target) { var doc = target.ownerDocument; target.normalize(); var textNodes = doc.evaluate('descendant::text()', target, null, 6, null); for (let i = 0, len = textNodes.snapshotLength; i < len; i++) { let textNode = textNodes.snapshotItem(i); let [$0, $1, $2]; let $3 = textNode.nodeValue; let parent = textNode.parentNode; let arr; while (arr = /([^]*?)「([^」]+)」([^]*)/g.exec($3)) { [$0, $1, $2, $3] = arr; $1 && parent.insertBefore(doc.createTextNode($1), textNode); parent.insertBefore(doc.createElement('strong'), textNode) .appendChild(doc.createTextNode($2)); } $3 && parent.replaceChild(doc.createTextNode($3), textNode); } })(target);
851 名前:Name_Not_Found mailto:sage [2009/11/25(水) 01:27:10 ID:???] 悪化してんな
852 名前:Name_Not_Found mailto:sage [2009/11/25(水) 01:34:47 ID:???] ごめん 7 行目おかしかった let $0, $1, $2, $3 = textNode.nodeValue; これで動いたよ! きれい!
853 名前:Name_Not_Found mailto:sage [2009/11/25(水) 10:42:55 ID:???] アンデフィンドとナルの違いをわかりやすく詳しく教えてください。
854 名前:Name_Not_Found mailto:sage [2009/11/25(水) 12:22:39 ID:???] 「ナル」は分かる。ナルはナルシストの意。 「アンデフィンド」はググっても見つからなかったから、多分固有名詞。 アンデフィンドさんのことをナルシストとか言ってただけじゃないかな。
855 名前:Name_Not_Found mailto:sage [2009/11/25(水) 12:26:59 ID:???] undefinedは値がないという値(消極的・暗黙的) nullは空っぽという値(積極的・明示的) ただ実用面でnullは滅多に使わない
856 名前:Name_Not_Found mailto:sage [2009/11/25(水) 12:28:50 ID:???] nullは初期化やmatch等の返り値を統一させるために使うくらいだな。
857 名前:Name_Not_Found mailto:sage [2009/11/25(水) 12:32:53 ID:???] まじで!? undefined に比べたら null の方がよほど使ってるけど。
858 名前:Name_Not_Found mailto:sage [2009/11/25(水) 12:37:36 ID:???] return "" クソワロス
859 名前:Name_Not_Found mailto:sage [2009/11/25(水) 13:08:25 ID:???] undefinedは滅多に使わないな。 使わないと言うか、大抵は宣言するから使わなくて済むことが多いな。 objを確認したい時にnullなら if (! obj) {} ってやるけど、undefinedは if (typeof obj === 'undefined') {} ってやってる
860 名前:Name_Not_Found mailto:sage [2009/11/25(水) 13:25:20 ID:???] >>856 すまん語弊があった 返値などで空であることを伝える必要があるなら俺もnullを使う まさに明示する状況だし だけどvoid(引数無しreturn)で返値がundefinedになることのほうが断然多いんだよな 変数やプロパティの初期値もundefinedだし undefinedに比べて滅多にnullが使われないということが言いたかった >>859 区別したいなら、nullチェックのほうにtypeofを使うべきじゃないか?
861 名前:Name_Not_Found [2009/11/25(水) 14:00:04 ID:txBM9G+t] だ、だれか>>850 を解説してくれる御仁はござらぬか… 手元でコピペして7行目直して、targetに適当なエレメントノード渡したけど動かず。 missing ; after for-loop initializer [Break on this error] for (let i = 0, len = textNodes.snapshotLength; i < len; i++) {¥n ってなるけど、; は足りてるような気が…letのせい? あと、ざくっと調べたんですが、IE6では動かない、ですかね?
862 名前:Name_Not_Found mailto:sage [2009/11/25(水) 14:05:04 ID:???] >>860 undefinedは'undefined'だからtypeofで確認してる
863 名前:Name_Not_Found mailto:sage [2009/11/25(水) 14:19:03 ID:???] >>861 javascript1.7だからIEはダメ よく読んでないから保証しないけどvarに置き換えても動くはず >>862 nullだってnull型じゃ・・・げ、"object"かよ というかobj === nullでいいのか
864 名前:844 [2009/11/25(水) 14:20:31 ID:jZeLnWCW] >>844 です。 確かにbaffのところはおかしいです。 何か他の処理が挟まってたのか、または気が狂ってたかの、 どちらかかと思います…
865 名前:Name_Not_Found mailto:sage [2009/11/25(水) 14:35:10 ID:???] >>861 >>851 が言っている「悪化」の意味は ・document.evaluate がIEにはない > var textNodes = doc.evaluate('descendant::text()', target, null, 6, null); ・let がIEにはない let は javascript 1.7 から。 わざわざ遅くなる let を使う意味はない。 ・安全ではない参照 質問者がテストするときに $3 が変化する可能性が高い。 簡潔に書こうとする場所が間違ってるよ。 insertBefore のところを外部に出して汎用化した方が 読みやすくて良いじゃない。 function attachElement(name, node) {} と言うのを作って ループ内は attachElement('strong', textNode); だけで終わった方が良いよ、後から直しやすい。
866 名前:Name_Not_Found mailto:sage [2009/11/25(水) 14:36:07 ID:???] >>854 ナルシストじゃなく、ナルシシスト。
867 名前:Name_Not_Found [2009/11/25(水) 14:44:38 ID:txBM9G+t] >>865 なるほど。 普段ちゃんと動くJSしか作ってないので、1.7とか疎くて。 古いIEが駆逐されるまでに勉強しようと思いました。
868 名前:Name_Not_Found mailto:sage [2009/11/25(水) 15:39:48 ID:???] >確かにbaffのところはおかしいです。 スペルからしておかしいことは気づいているのか?w
869 名前:844 [2009/11/25(水) 18:07:00 ID:jZeLnWCW] べ、べつにbufferって書きたかったんじゃないんだから…///
870 名前:Name_Not_Found mailto:sage [2009/11/25(水) 21:07:05 ID:???] >>865 IE はどうでもいいが let が遅くなるのと安全ではないのをもうちょっと詳しく
871 名前:Name_Not_Found mailto:sage [2009/11/26(木) 00:23:15 ID:???] var undefined; if( hoge === undefined ) でいいじゃん グローバル変数一個使うけど
872 名前:Name_Not_Found mailto:sage [2009/11/26(木) 00:34:41 ID:???] (・・;)エ? undefined はグローバル変換として定義済み。 わざわざ宣言して使うのは、ローカル変数にする場合。
873 名前:Name_Not_Found mailto:sage [2009/11/26(木) 00:35:56 ID:???] × グローバル変換 ○ グローバル変数
874 名前:Name_Not_Found mailto:sage [2009/11/26(木) 00:43:24 ID:???] >>872 window.undefinedは書き換え可能なために不確実 typeofや宣言だけのローカル変数は確実 書き換えられる心配をする必要があるのかは俺にはわからんがね
875 名前:Name_Not_Found mailto:sage [2009/11/26(木) 00:56:15 ID:???] if( typeof(example) == "undefined" )
876 名前:Name_Not_Found mailto:sage [2009/11/26(木) 01:57:38 ID:???] undefined のチェックはこうやるもの。 if (hoge === void 0)
877 名前:844 [2009/11/26(木) 02:53:28 ID:shG1f8EJ] なんか自分のせいで>>835 が置いてきぼりになったみたいで申し訳ない。