+ JavaScript の質問用スレッド vol.83 +

このエントリーをはてなブックマークに追加
1Name_Not_Found
━━━本スレに書く事を許される者は以下の通り━━━━━
 一、正しい(validな)HTMLとは何か知っており書ける者
 一、JavaScriptはJavaとは別物であると知っている者
 一、自ら学んでJavaScriptコードを書く意思を持つ者
 一、ユーザに迷惑となるスクリプトを書かない者
 一、質問を分かる日本語できちんと説明できる者
 一、トラブルを再現する最小限のサンプルを貼れる者
 一、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者
━━━━━━━━━━━━━━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
前スレhttp://hibari.2ch.net/test/read.cgi/hp/1291963517/
[必読]過去スレ全集 http://www2.atpages.jp/mirror/2ch/javascript/
      (閲覧のみ) http://usamimi.info/~mirrorhenkan/2ch/javascript/
      (閲覧のみ) http://wing2.jp/~mirrorhenkan/2ch/javascript/
[必読]ガイド https://developer.mozilla.org/Ja/JavaScript
(GuideをReferenceに→Netscape版言語仕様。多くの実装が準拠:ECMA-262.ed3)
FAQ・注意・過去ログ・仕様書・関連資料・関連スレ>>1-7
2Name_Not_Found:2011/01/17(月) 20:56:08 ID:uRyN2JFp
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
 長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
 ただ「動きません」「エラーです」は何も情報がないため嫌われる。
 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!!
 OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度
 手間を食わせる可能性大
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
7)質問はまっとうな(他人に理解できる)日本語で。
 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
3Name_Not_Found:2011/01/17(月) 20:56:21 ID:uRyN2JFp
【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"」としないとページ移動しちゃうから。
4Name_Not_Found:2011/01/17(月) 20:56:35 ID:uRyN2JFp
【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が置き換え前の文字列全体になります。
5Name_Not_Found:2011/01/17(月) 20:56:52 ID:uRyN2JFp
【FAQその3】
Q16. input type="file"の値を設定(参照)できないのですが…
A16. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q17. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A17. コード実行時点でHTMLがそこまで読まれてない。onload中でやるとか。

【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと
 は無視」は不毛。質問者が分かって選択していれば尊重する。無知か
 らIE専なのは指摘してあげると親切。
・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される
 可能性大。非標準機能も損得を分かった上で使うならよい。
・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、
 そこだけ見ているとIE専になる。あとは上2件と同様。
・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当
 な理由があることも。尋ねて分かってないようなら煽っても可(w
・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選
 択するべき。一概にどちらは駄目、とは言えない。
・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性
 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
6Name_Not_Found:2011/01/17(月) 20:57:12 ID:uRyN2JFp
7Name_Not_Found:2011/01/17(月) 20:57:28 ID:uRyN2JFp
【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。
(以下は精選すべきとの議論あるが進んでいないので玉石混淆)
MetaGraphic Cell
http://www2u.biglobe.ne.jp/~oz-07ams/prog/
どら猫本舗のリファレンスカウンター
http://www.doraneko.org/
はぎさんちのページ Mozilla's DOM Sample Project
http://cgi.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/mds.cgi
一撃必殺javascript
http://www.openspc2.org/JavaScript/
【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!
Webサイト制作初心者用質問スレ part222
http://hibari.2ch.net/test/read.cgi/hp/1291304974/
CSS初心者スレッド=9th=
http://hibari.2ch.net/test/read.cgi/hp/1287470663/
役に立つ書籍は? 4冊目
http://hibari.2ch.net/test/read.cgi/hp/1172823674/l50
1行javascriptプログラミング
http://hibari.2ch.net/test/read.cgi/hp/1066750037/l50
WSH(・∀・)スレッド! Part 4
http://hibari.2ch.net/test/read.cgi/tech/1243095768/l50
【誰か】jQueryのここがわからない【助けて】
http://hibari.2ch.net/test/read.cgi/tech/1229881548/
8Name_Not_Found:2011/01/18(火) 02:44:08 ID:???
ファイル関連のメモ
Q18. ローカルファイルを読み込みたいのですが
A18. HTML5草案でFile APIが利用できます。対応ブラウザはまだ少ないので注意。 http://www.w3.org/TR/FileAPI/
Q19. ドラッグ&ドロップでローカルファイルを読み込みたい。
A19. HTML5草案でDrag and dropイベントが利用できますA18と併せて利用可。以下略 http://www.w3.org/TR/html5/dnd.html
Q20. A18,A19を使ってファイルをアップロードしたい。
A20. HTML5草案でXMLHttpRequest以下略 http://www.w3.org/TR/XMLHttpRequest2/#the-formdata-interface
9Name_Not_Found:2011/01/18(火) 09:02:54 ID:???
なんか、HTML5のJavaScript関連とかをまとめて整理して載せる
ようにした方がいいんじゃないかと思えてきた。
10Name_Not_Found:2011/01/18(火) 20:24:00 ID:???
Web Storage API http://www.w3.org/TR/webstorage/
Web Sockets API http://www.w3.org/TR/websockets/ #欠陥規格
Web Workers API http://www.w3.org/TR/workers/
Web Messaging API http://www.w3.org/TR/webmessaging/
File API http://www.w3.org/TR/FileAPI/
File API: Writer http://www.w3.org/TR/file-writer-api/ #ファイル書き込み
Indexed Database API http://www.w3.org/TR/IndexedDB/ #データベース
XMLHttpRequest Level 2 http://www.w3.org/TR/XMLHttpRequest2/
Cross-Origin Resource Sharing http://www.w3.org/TR/cors/ #XMLHttpRequest Level 2でクロスドメイン
Selectors API Level 2 http://www.w3.org/TR/selectors-api2/
-
Offline http://www.w3.org/TR/html5/offline.html
Video http://www.w3.org/TR/html5/video.html
Canvas http://www.w3.org/TR/html5/the-canvas-element.html
11Name_Not_Found:2011/01/18(火) 20:38:21 ID:???
HTML5関連はまだまだあるけど量が多すぎて直接見てくれって感じだわ
http://www.w3.org/TR/html5/
12Name_Not_Found:2011/01/18(火) 20:50:59 ID:emSMVatA
フラグたくさんついてるスクリプトってかっこいい?ださい?
13Name_Not_Found:2011/01/18(火) 21:26:24 ID:???
>>10
なんで欠陥規格なの?
14Name_Not_Found:2011/01/18(火) 21:33:40 ID:???
15Name_Not_Found:2011/01/18(火) 21:40:21 ID:???
ストレージ関連っていろいろなかったっけ
いろいろあるのはgoogle chrome界隈だけだっけ
16Name_Not_Found:2011/01/18(火) 21:53:51 ID:???
>>14
読めない
17Name_Not_Found:2011/01/18(火) 21:58:11 ID:???
>>16
要約
WebSocketsには穴があってキャッシュを汚染できる脆弱性があるということ。
そしてこれはプロトコルの問題であって、ブラウザは関係なくFlashやJavaにも影響すること。
なのでFirefoxとOperaはこの問題が解消するまで実装を無効にしている。
18Name_Not_Found:2011/01/18(火) 22:08:17 ID:???
>>17
ありがとう!
19Name_Not_Found:2011/01/19(水) 00:29:54 ID:???
>>15
webkitもgeckoもnightlyではそんなに大差ないと思うよ
20Name_Not_Found:2011/01/19(水) 08:58:52 ID:???
>>8-11
たしかに沢山あるんで、HTML5関連のはここを見ろという
1行だけテンプレに入れる?それとも1レスぶんの説明を追加?
ともかくFile API+D&D「だけ」FAQを3項目追加とかはアンバランス
なのでやめた方がいいと思われ。
21Name_Not_Found:2011/01/19(水) 09:54:49 ID:???
JSAN(http://www.openjsan.org/)って使ったこと無いんだけどどうですか?
使い方も何も分かんないんですけど、prototypeやjQueryなんかと違うのでしょうか?

デモなんかも見つからなかったのでどうなんだろうと思いまして
皆さんはどういう場合に使ったりするのでしょうか?
22Name_Not_Found:2011/01/19(水) 11:15:08 ID:???
>>21
ぐぐってみたけど、比べるもんじゃない気がする
23Name_Not_Found:2011/01/19(水) 14:16:40 ID:LI5o/N0R
javascriptが上達する為にはどうすればいいですか?
あとお手本になるようなサイトはありませんか?
できるだけ大規模なものがいいです!
24Name_Not_Found:2011/01/19(水) 14:33:16 ID:BdpEnohD
このスレのテンプレにあるサイトだけでも
かなり勉強になるとは思うがどうでしょ
上達するためには

書く→うまくいった気になる→調子にのる→
→思わぬ穴が見つかる→痛い目を見る→書く

を続けないとなんとも
25Name_Not_Found:2011/01/19(水) 16:21:42 ID:???
>>23
www.google.com
26Name_Not_Found:2011/01/19(水) 16:47:12 ID:???
数をこなす以外にないよ
27Name_Not_Found:2011/01/19(水) 21:16:33 ID:LI5o/N0R
28Name_Not_Found:2011/01/19(水) 21:20:11 ID:LI5o/N0R
あ、スクロールバー出てしまった。おとなしく数こなす事にします。
29Name_Not_Found:2011/01/19(水) 21:34:21 ID:BdpEnohD
>>27
マジレスすると、元ソースはもっと人間が読みやすいのが別にあって
それを機械で短縮してる

短縮するのツールはもともとグーグルの社内用の物だったんだけど
今は一般に公開されてる。Google Closure Compiler
http://closure-compiler.appspot.com/home
30Name_Not_Found:2011/01/19(水) 21:51:28 ID:???
googleはけっこう標準外多いからあんま参考にしない方がいいよ
31Name_Not_Found:2011/01/19(水) 22:13:40 ID:LI5o/N0R
>>29
サイトありがとうございます。使わせてもらいます。

>>30
MSNの新バージョンなんかよさそうじゃないですか?
http://jp.msn.com/
http://kaw.stj.s-msn.com/br/sc/js/97/0adac54f4a9c1c7adb6821244a02b9.js
32Name_Not_Found:2011/01/19(水) 22:51:59 ID:LI5o/N0R
ちょっと小耳に挟んだんですがprototype.jsやjQueryのライブラリそのものを読むと結構いいみたいですね。
長くなったのでこの辺で終わります。
33Name_Not_Found:2011/01/20(木) 11:07:05 ID:???
http://www.ajaxtower.jp/jquery/install/index3.html
コレを見ると、jQueryのAPIがダウンロード出来るようですが、自分には見つかりません
いったいどこからjQueryのドキュメンテーションをダウンロードできるのでしょうか?

以前は出来たけど、今は出来ないのでしょうか?
もしそうだとしたらファイルの置いてある場所はどこなないでしょうか?
34Name_Not_Found:2011/01/20(木) 11:40:02 ID:zmiDAdLP
普通に見れるが?
例えばjQuery coreの説明
http://api.jquery.com/jQuery/
35Name_Not_Found:2011/01/20(木) 11:45:36 ID:???
>>34
Webでの閲覧ではなく、ドキュメンテーションをダウンロードしたいのです
PHPやperlをやられているか分かりませんが、基本的にLAMP系はドキュメンテーションをダウンロードできます
ネットに繋がっていなかったり、外出時などのオフライン環境時にAPI等の確認をしたいのです

36Name_Not_Found:2011/01/20(木) 12:00:45 ID:???
気になってがんばって読んでみた
WebSocketsの欠陥というよりプロキシの欠陥じゃないか
ソケットで自由にデータを送れると欠陥プロキシのキャッシュを汚染できると・・・
同様にソケットで自由にデータを送れるFlashやJavaでもキャッシュを汚染を引き起こせると
それで欠陥プロキシを通しても問題ないようにWebSocketsの仕様を変更しようってことか
まぁそれはいいけどFlashとかJavaでできるんならWebSocketsだけ封印してもあんまり意味ないんじゃ
欠陥プロキシの方を直さなきゃ
37Name_Not_Found:2011/01/20(木) 12:08:07 ID:zmiDAdLP
>>35
あー。さらっとはみつからんね。
ページ保存しちゃえば?
38Name_Not_Found:2011/01/20(木) 12:29:46 ID:???
>>35
君には無理みたいだからあきらめな
39Name_Not_Found:2011/01/20(木) 15:32:57 ID:???
http://docs.jquery.com/Alternative_Resources
ここに腐るほどあるじゃねーか
40Name_Not_Found:2011/01/20(木) 16:37:03 ID:???
javascriptであいまい検索用の文字列を生成したいんですけどわかりません。

2chを検索したい時、

2ch
2ch
2ch
2ch

とか、全半かなカナのパターンをリストに出したいのです。
41Name_Not_Found:2011/01/20(木) 16:46:13 ID:???
検索対象を揃えたほうがいいんじゃないの
42Name_Not_Found:2011/01/20(木) 16:51:05 ID:???
cが全角でhが半角のパターン、とかやってたらとんでもないから
何をしたいのかわからないけど>>41のやりかたでも目的が達成されるのなら>>41のアプローチが妥当だと思う
43Name_Not_Found:2011/01/20(木) 16:58:34 ID:???
>>41
おっしゃる意味が良くわかりません
>>42
そのとんでもない事を手動でやるのは大変なので、自動化したいんです
44Name_Not_Found:2011/01/20(木) 17:22:09 ID:???
英数文字分の正規表現を文字毎に用意して、
それを組み立てて検索するとか。
chre = [ '(a|A|a|A)', '(b|B|b|B)', … ];
sstr = '2ch';
sre = '';
for ( i = 0; i < search.length(); ++i ) {
 ch = search.charCodeAt(i);
sre += chre[i-0x41]; // ← この辺は適宜よろしく
}
sre = new RegExp(sre);
4544:2011/01/20(木) 17:23:15 ID:???
あー、推敲してたら変数名がおかしいな。
意図は汲んでくれw
46Name_Not_Found:2011/01/20(木) 21:29:14 ID:???
たまにみる『i-0x41』こういう計算ってなんて検索すれば良いの?
メカニズムが知りたい
47Name_Not_Found:2011/01/20(木) 21:35:29 ID:???
>>43
長さ20文字あったら、半角全角の組み合わせは百万通りあるんだが、
百万回検索するつもりかい?何日掛かるかねえ。ずっと待つの?
48Name_Not_Found:2011/01/20(木) 22:12:19 ID:???
>>46
'A'の文字コードが0x41。
>>44の例はアルファベットのみを想定してるけど、
他のアスキー文字の全角/半角も覚えておくならまた別の値になる。
ダミーを加えて、文字コードそのままをインデックスにしちゃってもいい。
49Name_Not_Found:2011/01/20(木) 22:50:17 ID:???
>>47
それが問題なんだよねー
でも、その時はそれをやんなきゃならない
手動ならほんと何日かかるんだろうね?
50Name_Not_Found:2011/01/20(木) 22:58:22 ID:???
すでにたくさん突っ込みが入っているけど
設計を改めるレベル
最終的に
生成した文字列をどうしたいのか
知りたい
51Name_Not_Found:2011/01/20(木) 23:21:06 ID:???
ttp://la.ma.la/js/roma.html
考えてることこれに近いんじゃない?
52Name_Not_Found:2011/01/20(木) 23:44:39 ID:???
>>50
いずれは改めるんだろうけど、すぐには動かないから
ついでにjavascriptの勉強がてら作れたらいいなと
53Name_Not_Found:2011/01/20(木) 23:45:33 ID:???
>>51
ああ、近いかもしれない
54Name_Not_Found:2011/01/21(金) 01:12:40 ID:???
>>48
Aなら0、Bなら1が導けるのか
勉強になった。サンクス
55Name_Not_Found:2011/01/21(金) 09:18:19 ID:???
>>52
検索相手側の文字列が取得できるなら、「検索文字列も相手側も
半角に揃えてから比較」で1回で済むわけで、皆それを勧めている
わけよ。百万回と1回じゃ桁違いすぎでしょ?

で、検索相手側に手が出せない場合でも、正規表現が使えるなら
すべての文字を「全角または半角」というパターンに取り替えて
正規表現検索してもいい。これでも1回。
56Name_Not_Found:2011/01/21(金) 09:48:52 ID:???
>>55
取得できないんです
正規表現も使えないんです
57Name_Not_Found:2011/01/21(金) 12:33:38 ID:???
IEではクロージャを使用するとメモリリークを起こすようですが(IE8等は分かりませんが)、jQueryは基本的にクロージャを使う構文が多いですが、
この場合メモリリークは起きないのでしょうか?
58Name_Not_Found:2011/01/21(金) 12:40:19 ID:???
>>56
検索システムとかに何億通りかのリクエストを送りたいってことか?
59Name_Not_Found:2011/01/21(金) 13:38:55 ID:???
>>56>>58
結論として「迷惑だからそんなことをしてはいけない。あきらめるべき」
というところかな。岡崎図書館事件て知ってるよね。逮捕されないようにね。
>>57
なんと言う拙速な理解。クロージャが全部リークするわけじゃないだろ。
そこがきちんと読み取れないのならWeb開発する資格ないと思うが。
60Name_Not_Found:2011/01/21(金) 14:28:46 ID:???
>>58
場合によってはそうなりますね
61Name_Not_Found:2011/01/21(金) 16:34:43 ID:???
>>59
許可を得てますので迷惑にはなりません
62Name_Not_Found:2011/01/21(金) 19:34:57 ID:???
<a href="#abc">abc</a>のようにハッシュと中のテキストが同じというリンクが1000個以上あるhtmlがあります。
これをいちいち上記のように書くのが面倒なので、html上では<a>abc</a>とだけして、javascriptで以下のようにしました。

var a = document.getElementsByTagName('a');
for (var lp = 0; lp < a.length; lp++)
{
if (a[lp].href == '') {a[lp].setAttribute('href','#' + (a[lp].innerText || a[lp].textContent));}
}

FirefoxやOperaだとそれほどでもないのですが、ie6だとすっごく遅いです。
どうにか高速化できないでしょうか? なるべくならie6を窓から投げたくありません。
63Name_Not_Found:2011/01/21(金) 19:43:40 ID:???
IE6を切り捨てないなんて許さない
64Name_Not_Found:2011/01/21(金) 20:06:06 ID:???
本当に面倒だという理由なら、エディタの検索・置き換えで保存してアップしたほうが良いよ
正規表現使えば一瞬だよ
控えめなjavascriptにもなるし
65Name_Not_Found:2011/01/21(金) 20:07:23 ID:OGUASIjZ
すこーーーーーしだけ速くしてみた

var a = document.getElementsByTagName('a');
for(var i=0,l=a.length ; i<l ; i++){
    if(!a[i].href) a.href = "#" + a.innerHTML;
}
66Name_Not_Found:2011/01/21(金) 20:09:28 ID:???
>>62
JavaScriptじゃなくてテキストエディタの正規表現で一括置換するのがスマートだと思う。
67>>62:2011/01/21(金) 20:30:24 ID:???
皆さんありがとうございました。

>>64,66
そうだよね、javascriptであれやこれやより正規表現でずばっと書き換えたほうがいいですよね。
なんで気が付かなかったんだ自分……

>>65
うん、ほんとにすこーーーーーしだけ早くなったような気がするw
こっちの書き方のほうがスマートだし。以後の参考にします。
68Name_Not_Found:2011/01/21(金) 21:54:29 ID:S9Xg5H2O
どっちみちハッシュならaタグのクリックイベント拾って処理する方法でやった方が楽かな。
リンクないのにaタグなのも気持ち悪いからspanタグとかにしちゃうけど。
69Name_Not_Found:2011/01/21(金) 22:50:36 ID:???
スクリプトを終了する命令ってありますか?

処理途中で出したダイアログで、ユーザが「OK」でなく「キャンセル」選んだら
そこで処理を終える、みたいな。
exitとかquitとかいう命令は無いみたいだし、gotoで最後の方に飛ぶとかもできないっぽい。
でっかくifで括るのも見づらいし。
70Name_Not_Found:2011/01/21(金) 22:55:16 ID:???
return;
71Name_Not_Found:2011/01/21(金) 23:24:25 ID:???
>>69
エラーを発生させて良いなら、throw new Error('処理は中断されました');
エラーにしたくないなら、>70が指摘したように関数内で return するしかないだろうね。
72Name_Not_Found:2011/01/21(金) 23:41:04 ID:???
>>68
いっそBODYのonclickだけでどうだろうか
73Name_Not_Found:2011/01/21(金) 23:49:21 ID:???
return といえば以下の return this; がよくわからないのですが、
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this; // ?
};

ここから以下のようにしたとき、
Number.method('integer', function () {
return Math[this < 0 ? 'ceil' : 'floor'](this);
});

return this; はこんな感じで返るもの、と理解してよいのでしょうか?
Number.integer() {return Math[this < 0 ? 'ceil' : 'floor'](this);};
74Name_Not_Found:2011/01/22(土) 00:28:58 ID:???
thisはarguments.calleeではなく、Number自体を返すので、繋げられる。
Number.method('integer', function () {
return Math[this < 0 ? 'ceil' : 'floor'](this);
}).method(〜).method(〜);
75Name_Not_Found:2011/01/22(土) 02:53:57 ID:???
>>62
for (var i = 0, a = document.getElementsByTagName("a"), l = a.length; i < l; i++) {
  if (!a[i].getAttribute("href")) a[i].setAttribute("href", "#" + a[i].firstChild.nodeValue);
}
>>65より1-3%だけ早くなったw
76Name_Not_Found:2011/01/22(土) 03:12:28 ID:???
実測してないけど。

var a = document.getElementsByTagName('a'), l = a.length, node;
while (l--) {
 node = a[l];
 if (!node.href) {
  node.href = '#' + node.firstChild.nodeValue;
 }
}
77Name_Not_Found:2011/01/22(土) 10:31:36 ID:???
ajax使ってPHPの処理を実行させた場合、
その結果を返す場合のPHP側の処理としては、
echoでメッセージを出せば、そのデータが結果として返されるんですか?

phpかこっちかどっちに質問したらよかったのかわからなかったので、
こっちにしてみましtあ。
78Name_Not_Found:2011/01/22(土) 11:42:50 ID:???
もういいです
79>>62:2011/01/22(土) 19:18:53 ID:???
たくさん例を出していただいてびっくり。改めて自分で実行速度を計ってみた。
以下だいたいの平均値。ブラウザはie6、置き換えるaタグは1000件超。

>>62(元の質問のやつ):約1秒
>>65:約0.4〜0.5秒
>>75:約0.1〜0.3秒
>>76:約0.3〜0.5秒

>>75,76はそのままでは動かなかったので、
getAttribute("href")に,2をつけて、firstChild.nodeValueをinnerTextに変えた。
しかしこんなにいっぱい書き方あるんだなー。勉強になる。

>>68,67
event.srcElement(event.target)で、最初の質問の望みどおりになった!
ありがとー
80Name_Not_Found:2011/01/22(土) 19:24:21 ID:???
アンカー間違えた
×>>68,67
>>68,72
81Name_Not_Found:2011/01/22(土) 19:38:21 ID:???
Opera限定なんですが、Operaのユーザスクリプトにて、
domにアクセスしようとしてできないページがあります。
今のところ、iframeを使ったページが怪しい感じですが、
これ何とかなりますか?
82Name_Not_Found:2011/01/22(土) 19:49:47 ID:???
>>81
クロスドメイン制約のこと?
83Name_Not_Found:2011/01/22(土) 20:03:13 ID:???
>>70-71
了解。
ありがとう!
84Name_Not_Found:2011/01/22(土) 21:02:06 ID:???
getElementsByTagName で取得できる nodelist は live だから
ループ回す前に配列に変換したほうが速いんじゃないか
85Name_Not_Found:2011/01/22(土) 23:36:42 ID:???
>>81
zakuとは違うのだよ
86Name_Not_Found:2011/01/23(日) 17:07:54 ID:???
━━━本スレに書く事を許される者は以下の通り━━━━━
 一、質問を分かる日本語できちんと説明できる者
 一、トラブルを再現する最小限のサンプルを貼れる者
87Name_Not_Found:2011/01/23(日) 18:58:30 ID:???
htaで、ttp://weather.yahoo.co.jp/weather/jp/13/4410/13104/1631401.html
をテキスト形式で読み込んで変数txtに入れ、
var wth_today = txt.match(/<div id="yjw_pinpoint_today">([\n\r]|.)*?<!---\/yjw_pinpoint_today--->/);
という正規表現で切り取るものを書いたのですが、
なぜか欲しい文字列(<div 〜 --->)の後に「,>」というゴミが付いてしまいます。
どなたか原因分かりませんでしょうか。
88Name_Not_Found:2011/01/23(日) 19:15:25 ID:???
すいません、自己解決しました
89Name_Not_Found:2011/01/24(月) 03:42:53 ID:???
ajaxでcsvデータを読み込み、作られたテーブルから情報を取得しようとしています。
しかしテーブル作成後、例えばgetElementsByTagName('"td")などとしても、中身は空っぽです。
通常のDOM操作をするにはどうしたらいいでしょうか。

function createXMLHttpRequest(func) {
var result = null ;
try { result = new XMLHttpRequest() ; }
catch (e) {try { result = new ActiveXObject("Msxml2.XMLHTTP") ; }
catch (e) {try { result = new ActiveXObject("Microsoft.XMLHTTP") ; }
catch (e) { return null ; }
}
}
if (result) result.onreadystatechange = func ;
return result ;
}

function makeTable() {
if (httpObj.readyState == 4) {
var data = httpObj.responseText.split("\n") ;
result = "" ;
for (i = 0; i < data.length; ++i)
result += '<tr><td>'+data[i].replace(/,/g, '</td><td>')+'</td></tr>' ;
document.body.innerHTML = '<table>'+result+'</table>' ;
}
}

window.onload = function() {
httpObj = createXMLHttpRequest(makeTable) ;
httpObj.open("GET", "./data.csv", true) ; httpObj.send("") ;
var test = document.getElementsByTagName("td")
alert(test.length) // 0が返る
}
90Name_Not_Found:2011/01/24(月) 07:46:27 ID:???
openの第三引数をfalse(同期)にする、もしくはテーブル作成を待ってgetElementsByTagNameを実行
91Name_Not_Found:2011/01/24(月) 09:48:42 ID:???
[123]
[456]
[789]

と言う文字列があって、これらを

147
148
149
・・・

全てのパターンを書き出すにはどうしたらいいでしょうか?
92Name_Not_Found:2011/01/24(月) 10:20:48 ID:???
>>91
普通に多重ループすればいいだけだろこのゴミ野郎
93Name_Not_Found:2011/01/24(月) 10:36:53 ID:PiwbQcfh
>91
string.replace(pattern,callback);
94Name_Not_Found:2011/01/24(月) 10:42:29 ID:???
>>92
どう言うのが普通なんでしょう?
95Name_Not_Found:2011/01/24(月) 12:09:09 ID:???
for使え
96Name_Not_Found:2011/01/24(月) 12:13:04 ID:TKRYb6M8
forループ3つ重ねてやれば、まあ出来るんだろうけど
出力される数値は確定しているんだから
n = [147,148,149,157,158,159…369];

ってしたほうがいい気がする。
97Name_Not_Found:2011/01/24(月) 12:14:41 ID:???
拡張性考えろや馬鹿か
98Name_Not_Found:2011/01/24(月) 12:18:37 ID:???
いやむしろ>>91のお勉強という意味でループ使わせた方がいい
99Name_Not_Found:2011/01/24(月) 12:19:49 ID:???
質問です。

A.html内にiframeが配置されていて、そのiframeにはB.htmlが読み込まれています。
2回目の訪問(あるいはリロード)の際には、iframeの中をC.htmlに、
3回目の訪問(あるいはリロード)の際には、iframeの中をD.htmlに、
で、n回目の訪問の際には、iframeの中をA.htmlに戻したいです。

こういうことをJavaScriptでやろうと思った場合、Cookieを使う以外に手段はないでしょうか?
100Name_Not_Found:2011/01/24(月) 12:40:27 ID:???
>>96
あ、数値は確定されてません。
あと、桁も揃ってません
101Name_Not_Found:2011/01/24(月) 12:54:42 ID:???
for(i=0;i<x.length;i++){
for(j=0;j<y.length;j++){
for(k=0;k<z.length;k++){
いまいちわかりません
}
}
}
102Name_Not_Found:2011/01/24(月) 13:16:03 ID:???
>>99
そりゃjavascriptで状態を保存しておく方法はCookieしか無いからな
phpなりcgiなりも使っていいなら鯖側に保存する方法も使えるが、なんか無駄すぎるな

なんでCookie使いたくないの?
103Name_Not_Found:2011/01/24(月) 13:18:47 ID:???
>>99
なんかあったけど忘れた
104Name_Not_Found:2011/01/24(月) 13:23:23 ID:???
>>99
cookieを使わないなら、javascriptがどうやってn回目だとわかる?

>>100
正規表現でやったら?
105Name_Not_Found:2011/01/24(月) 13:25:55 ID:???
>>102-104
レスありがとうございます。

Cookieに抵抗があるとかそういうわけではなくて、
自分の知識の範囲ではCookieを使うくらいしか思いつかなかったんですけど、
詳しい方ならもしかして別の方法とかを知っていたりするのかなと思いまして、
もしそういうのがあれば参考にさせて貰いたいな、程度の質問でした。

お騒がせしました、Cookieでやってみます。
106Name_Not_Found:2011/01/24(月) 13:25:58 ID:???
>>104
すいません
正規表現よくわからないんです
107Name_Not_Found:2011/01/24(月) 13:32:10 ID:???
わからないことは仕方ないことだけど自分でどこまでやったか詳しい情報書かないとみんな答えようがないだろう
108Name_Not_Found:2011/01/24(月) 13:46:17 ID:???
>>107
>>101までできました
109Name_Not_Found:2011/01/24(月) 13:58:41 ID:???
String(x)[i] + String(y)[j] + String(z)[k]
でできる?
110Name_Not_Found:2011/01/24(月) 14:09:35 ID:???
>>106
<textarea cols="60" rows="20" id="text">
[123]テスト
テテト[456]
テ[789]テ[206]ト
</textarea><br />
<input type="text" id="start" value="100" /><br />
<input type="button" value="test" onclick="test()" />
<script type="text/javascript">
function test(){
start=document.getElementById('start').value;
if(start.match(/\d+/)){
var text=document.getElementById('text');
text.value=text.value.replace(/\[\d+\]/g,change);
}
}
function change(rslt){
return rslt.replace(/(\[)\d+(\])/,"$1"+(start++)+"$2");
}
</script>
111Name_Not_Found:2011/01/24(月) 15:05:01 ID:???
>>106-110 やっぱり再帰を使って何個でも大丈夫にした方がいいのでは。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head>
<title>sample</title>
<div><script type="text/javascript">
function comp(s, a, n) {
if(n >= a.length) {
document.write(' ' + s);
} else {
var t = a[n];
for(var i = 0; i < t.length; ++i) { comp(s + t.charAt(i), a, n+1); }
}
}
comp('', ['123','456','789'], 0);
</script></div>
</body></html>
112Name_Not_Found:2011/01/24(月) 15:41:41 ID:???
>>111
初級者だけどこれすげぇ
113Name_Not_Found:2011/01/24(月) 16:37:16 ID:???
>>105
localStorageは?
あとはflash使って保存。
11489:2011/01/24(月) 18:31:15 ID:???
>>90
できました!ありがとう!
115Name_Not_Found:2011/01/24(月) 20:56:39 ID:XIclonmr
ラーメンマンは中国人ですか?
116Name_Not_Found:2011/01/24(月) 21:35:23 ID:DEE0z+M9
いいえ、ケフィアです。
117Name_Not_Found:2011/01/24(月) 22:01:01 ID:???
クリックした位置の要素上のY座標(要素の上端を0とする座標)の値を取得するにはどうやったらいいですか?
IEだとevent.offsetYで簡単に取得できるのですが、Firefoxではどうやればいいのか分かりません。
118 ◆Afv5PFgYfo :2011/01/24(月) 23:42:51 ID:???
>>117
clientX、clientY
119 ◆Afv5PFgYfo :2011/01/25(火) 00:05:43 ID:???
<script type="text/javascript">
function offset(event){
eventOffset=getOffset(event);
offsetX=eventOffset.offsetX;
offsetY=eventOffset.offsetY;
alert([offsetX,offsetY])
}
function getOffset(event){
var target=event.target;
if(target.offsetLeft==undefined)target=target.parentNode;
var pageCoord=getCoord(target);
var eventCoord={x:window.pageXOffset+event.clientX,y:window.pageYOffset+event.clientY};
var offset={offsetX:eventCoord.x-pageCoord.x,offsetY:eventCoord.y-pageCoord.y};
return offset;
}
function getCoord(element){
var coord={x:0,y:0};
while(element){
coord.x+=element.offsetLeft;
coord.y+=element.offsetTop;
element=element.offsetParent;
}
return coord;
}
</script>
<div><textarea style="width: 200px" cols="0" rows="0"></textarea><label onclick="offset(event)">Offset</label></div>
120117:2011/01/25(火) 06:51:55 ID:???
>>118
ありがとうございます。
ただ、clientYだと要素の外の長さも含めた大きな値が返ってくるような...
>>119の内容は複雑すぎるので、時間をかけて調べてみます。
121Name_Not_Found:2011/01/25(火) 07:54:22 ID:???
jQueryを使いスライドパネルを作っているのですが

$(function(){
$(".open").click(function(){
$("#loadsome").slideToggle("normal").load("./hogehoge/hogehoge.html");
});
});

としたときに,.openをクリックしても一回でスライドせず,ダブルクリックが必要になってしまいます
どうやら最初のクリックでロードだけしているようで,一度ロードした後なら.openはワンクリックで開いたり閉じたりするようになります
.slideToggleと.loadを入れ変えても,#loadsomeではなく別のdivをloadさせてもどうしてもダブルクリックが必要になります
slidetoggleを外しアコーディオンっぽい挙動を諦めればワンクリックで済むようなのですが,どなたか対処法を御教授して頂けないでしょうか
122Name_Not_Found:2011/01/25(火) 10:05:53 ID:???
>>121
クリックする前にロードしとけば?
123Name_Not_Found:2011/01/25(火) 11:30:29 ID:???
>>121
要はloadし終わってからslideToglleを実行しなくちゃ行けないわけだから
.loadの第2引数にコールバック関数を指定してその中でslideToggleを行うべきだよね
2回目以降は#loadsomeの有無で.loadを使わないようにして。
124Name_Not_Found:2011/01/25(火) 11:36:22 ID:???
と思ったんだけど、始めにloadsomeが非表示になってないってオチはないよね?
始めの1回目のクリックが表示→非表示のtoggleが行われてるだけだとか
125Name_Not_Found:2011/01/25(火) 11:42:30 ID:???
if($("#loadsome").is(":empty")){
$("#loadsome").load("./hogehoge/hogehoge.html",function(){
$("#loadsome").slideToggle("normal");
});
}else{
$("#loadsome").slideToggle("normal");
}

まちがってるかもしれないけどこんな感じ?
12689:2011/01/25(火) 18:46:02 ID:???
また引っかかった……
ajaxでcsvを読み込み、表にしました。
IEやOperaは正常に表示されますが、FireFoxでエラーが出てしまいます。
内容はこんな感じです。
//
構文エラーです。
(csvファイルのフルパス) 行:1
abc,abc,abc
  ↑(緑の矢印、カンマの所を指している)

文字コード関連の問題と思い、csvをutf-8、改行コードをCRに直して(splitの区切りも\rに)保存しましたが、駄目でした。
127Name_Not_Found:2011/01/25(火) 21:10:31 ID:???
>>126
試してみたいから再現するようなcsvの疑似データちょうだい
12889:2011/01/25(火) 21:23:38 ID:???
>>127
ttp://www1.axfc.net/uploader/Sc/so/198164.zip
アップしました。ついでにhtmlも。
どこかから拾ってきたものをそのまま使っています。
129Name_Not_Found:2011/01/25(火) 21:25:06 ID:???
あ、すみません。33行目のtrueはfalseですね。
130117:2011/01/25(火) 22:20:22 ID:???
>>119 は、てっきり余分なコードも入っているサンプル例なのかと思っていたのですが・・・

Firefoxでは、IEで event.offsetY と書くだけで返ってくる値を知るために、
これだけ長い行のコードを書いてループ処理で計算させないと求めることが出来ないんですね。
_| ̄|○
131Name_Not_Found:2011/01/25(火) 22:21:36 ID:???
>>128
Fx 3.6.13 で試したが、エラーはなかった。
ただし、改行コードが CR になっているので一行のテーブルになる。
split('\n') を split('\r') に直せばいいわけだが、どうせなら一通り対応した方がいいと思う。

dataArray = httpObj.responseText.split(/\r\n|[\r\n]/);
132Name_Not_Found:2011/01/25(火) 22:31:39 ID:???
>>128
httpObj をグローバル変数にしているのはリークパターンを防ぐためか…。

> 文字コード関連の問題と思い、csvをutf-8、改行コードをCRに直して(splitの区切りも\rに)保存しましたが、駄目でした。
素朴な疑問なんだが、CR にするのは何故?
普通は互換性を考えて CR + LF にすると思っていたんだが…。
13389:2011/01/25(火) 23:08:01 ID:???
>>131-132
ありがとうございます。
改行コードですが、普段はCRLFを使っています。
文字コード関連のエラーを疑っていたのと、
サンプルサイトでCR(LF)を使っているところを見たので、試してみた次第です。
そっか、CRLFのままでいいのか。

で、csvとhtmlの改行コードをCRLFに戻し、splitの区切り文字も>>131さんのように書き換え、
httpObj.openのfalseをtrueに戻したところ、IE、Opera、FireFox(自分の環境は3.6.3)すべてでうまく動きました。
ただし相変わらず構文エラーは出たままですが……動くのでいいのかな?
とにかく回答くださった皆さん、本当にありがとうございました。
134Name_Not_Found:2011/01/25(火) 23:57:22 ID:???
function hoge_class()
{
}
hoge_class.prototype.get_a = function()
{
return "a";
}
hoge_class.prototype.get = function()
{
return this.get_a(); //!
}

!の部分がコンパイルが通らず困っています.
メソッド内でメソッドを呼び出すことは出来ないでしょうか?
(理解が乏しいので,説明も乏しいです..申し訳ありません..
135Name_Not_Found:2011/01/26(水) 00:04:15 ID:???
>>134
var hoge = new hoge_class();
hoge.get(); // "a"
エラーにならないと思うよ?
136Name_Not_Found:2011/01/26(水) 01:10:57 ID:???
>>134
問題なかった。
http://ideone.com/UOmmy
137Name_Not_Found:2011/01/26(水) 01:58:13 ID:???
ありがとうございます.
どうやら自分が思っていたのと原因が違うようです.
分析し直して,改めてご質問させて頂きます.
138Name_Not_Found:2011/01/26(水) 13:03:59 ID:???
>>89です。
よく考えたら、openがtrueだとgetElementsbyTagNameが通らないんだったorz

[エラーまとめ]
IE,Opera
httpObj.openがtrue→表は表示されるが、DOMが通らない
httpObj.openがfalse→表もDOMもOK

FireFox
httpObj.openがtrue→表は表示されるが、DOMが通らない
httpObj.openがfalse→表が表示されない、csvが構文エラー
139Name_Not_Found:2011/01/26(水) 13:21:49 ID:???
ごめんなさい!trueのまま、setTimeout関数で少し処理を遅らせればいいことに気づきました。
>>90さんに指摘もらってるのにorz
何度も何度も申し訳ありませんでした。あせりすぎた……
140Name_Not_Found:2011/01/26(水) 18:00:28 ID:???
どうやらjavascriptで書かれてるっぽいのでこちらで質問させて頂きます。
DreamWeaver CS5の設定ファイルを弄ろうとしたのですが、途中で詰まりました・・・orz
何卒皆様のお力添えをお願いします!

マルチポストになってしまうのでURLを貼らせて頂きます。すみません。
ttp://hibari.2ch.net/test/read.cgi/hp/1193904189/622-
141Name_Not_Found:2011/01/26(水) 18:11:49 ID:???
予約語回避ってみんなどうやってるの?俺は初級者だがたまーにやってしまう
全部覚えてるのが普通?
142Name_Not_Found:2011/01/26(水) 18:13:56 ID:???
スレチっつーかイタチやね
143Name_Not_Found:2011/01/26(水) 18:14:47 ID:???
予約語くらい覚えとけ
144Name_Not_Found:2011/01/26(水) 18:18:01 ID:???
俺もよーやく覚えたよ
145Name_Not_Found:2011/01/26(水) 19:20:06 ID:???
開発環境使ってたら例えば変数に予約語使ったとたんに警告される
146Name_Not_Found:2011/01/26(水) 19:23:08 ID:???
そういや色変わるしな
147Name_Not_Found:2011/01/26(水) 21:27:01 ID:???
function foo_class()
{
this.obj = new bar_class();
}

foo_class.prototype.method_a()
{
this.obj.update(); //!updateは未定義と指摘されます
}

foo_class.prototype.method_b()
{
( new bar_class() ).update(); //問題ありません
}

method_bの例から,updateは確かに定義できていると思うのですが,
method_aで未定義と指摘されないためには,どうすれば良いでしょうか?
148Name_Not_Found:2011/01/26(水) 21:55:40 ID:???
>>147
method_a, method_b ともに定義できていない。
>>136 を参考に修正すべし。
149Name_Not_Found:2011/01/26(水) 22:00:50 ID:???
>>122-125
ありがとうございます
自分の技術ではやはり上手く行かず,結局スライドパネルではなくアコーディオンでやることにしました
ご協力感謝します
150Name_Not_Found:2011/01/26(水) 22:54:37 ID:???
>>148
foo_class.prototype.method_a = function()
{
this.obj.update(); //!updateは未定義と指摘されます
}

foo_class.prototype.method_b = function()
{
( new bar_class() ).update(); //問題ありません
}

の間違いですね.失礼しました.
未定義と指摘されるのは変わりないので,具体的な方策を教えて頂けると助かります.
151Name_Not_Found:2011/01/26(水) 23:26:44 ID:???
>>150
「未定義と指摘されるのは変わりない」といわれても、bar_class のコードもないわけだし検証しようがない。
書いていないコードに問題があるのでは?
152Name_Not_Found:2011/01/26(水) 23:30:47 ID:???
>>151
method_bで未定義と出ない点で,this.objに問題があるかと思ったのですが...?
153Name_Not_Found:2011/01/26(水) 23:37:25 ID:???
>>152
問題なかった。http://ideone.com/Lt9Rf
いい加減にしてもらえないだろうか?検証不足にも程がある。
154Name_Not_Found:2011/01/26(水) 23:43:59 ID:???
>>152
宿題くらい自分でやらないと意味ないぞ
155Name_Not_Found:2011/01/26(水) 23:47:28 ID:???
>>152
後からコードを付け足すなら、エラーが再現されることまで確認してから付け足してくれ。
156Name_Not_Found:2011/01/27(木) 00:48:47 ID:???
>>153, 154, 155
初心者いじめカッコワルイ
同じ種類の人間だと思われたくない・・・スレから出てってくれまいか?
157Name_Not_Found:2011/01/27(木) 00:55:49 ID:???
じゃあ回答はカッコイイ>>156に全て任せよう。頼んだぞ。
158Name_Not_Found:2011/01/27(木) 01:01:59 ID:???
ここで>>152に沿う回答ができたらヒーローだな。
正直、俺はわからないので>>156に期待している。
159Name_Not_Found:2011/01/27(木) 01:08:01 ID:???
俺もよくわからんから>>156の解説が聞きたい
160Name_Not_Found:2011/01/27(木) 02:07:46 ID:???
どうでもいいけど火山が怖い
161Name_Not_Found:2011/01/27(木) 08:24:36 ID:???
>>156
>>1 一、トラブルを再現する最小限のサンプルを貼れる者
それが守れないのならこのスレに来ないで欲しいというだけで。
回答しようとした人のとこで動かないとか再現しない不完全な
コード貼られてもこういう言い合いになるだけだから無意味なんだよね。
>>150
もっかい「そのままそっくり貼ったらエラー出る」コード出して欲しい。
一式揃ってないと回答者の側でつぎはぎしたときに食い違うから。
162Name_Not_Found:2011/01/27(木) 10:42:43 ID:???
all=getElementsByTagNameでタグの要素の配列を取得すると思うのですが。
for(tag in all){
tag.nodeValue;
}

にしても、サポートされてない操作ですとでます。
for in は使えないのでしょうか?
163Name_Not_Found:2011/01/27(木) 10:55:07 ID:???
いいえ
164Name_Not_Found:2011/01/27(木) 11:22:13 ID:???
すみません、サイ本の第5版を持っている方にお聞きします
P518の例20-7なんですが、この中にあるoptions.timeoutとかoptions.progressHandlerとは何なのでしょうか?
急に出てきたようなので分かりません
このようなプロパティはあるのでしょうか?
165Name_Not_Found:2011/01/27(木) 11:23:08 ID:lzAjCz8O
誰か>>140お願いしますm(_ _)m
166Name_Not_Found:2011/01/27(木) 11:30:06 ID:???
>>162
タグの要素とかイミフだけど
var elems = document.getElementsByTagName("hoge");
for (var i = 0, len = elemes.length; i < len; i++) {
var tag = elems[i];
tag.nodeValue;
}
でできる。配列(的なオブジェクト)をfor inで走査するのはオススメできない
167Name_Not_Found:2011/01/27(木) 11:38:06 ID:???
>>166
ありがとうございました。for in は全ての配列で使えるわけではないんですね。
168Name_Not_Found:2011/01/27(木) 11:56:25 ID:???
xmlhttprequest?ってやつで、ネット上のXMLデータを取得したいんだが、
IEではreadyStateとstatusプロパティの値は正常なのに、、
chromeとfirefoxではstatusプロパティが0なんだ。

0なんてエラーはどこにも載ってないから困ってるんだが、
何か原因として考えられることってありますか?
169Name_Not_Found:2011/01/27(木) 12:59:04 ID:???
170Name_Not_Found:2011/01/27(木) 13:00:13 ID:???
>>167
いいえ
171Name_Not_Found:2011/01/27(木) 15:17:21 ID:???
>>117
>>130
function(e){
var r,offsetX,offsetY;
r=((e=e||event).target||e.srcElement).getBoundingClientRect();
offsetX=e.clientX-r.left;
offsetY=e.clientY-r.top;
}
172117:2011/01/27(木) 20:50:59 ID:???
>>171
ありがとうございます。
簡潔に書くのは無理かとあきらめてました。
173Name_Not_Found:2011/01/27(木) 20:58:26 ID:???
>>168
再現可能なコードを出してもらわないとわからない。
174Name_Not_Found:2011/01/27(木) 21:09:18 ID:???
>>164
options は引数にある。

HTTP.get = function (url, callback, options) {

options.timeout, options.progressHandler はスクリプト制作者が任意に設定したオブジェクトだから、名前は任意でいいと思う。
175Name_Not_Found:2011/01/27(木) 21:40:25 ID:???
下のHTML+JavaScriptで文字にマウスを移動するとテーブルがでる。ここまではOK。
けどそのテーブルの文字選択ができない。ずっと解決方法が分からない。わかる方いませんか?
ブラウザはChrome8.0.55・・・
<body><div id='o'onMouseOver='_a()'>ああああいいいいううううええええおおおお</div>
</body>
<script type="text/javascript">
function _a(){o.innerHTML="<table border=1 cellspacing=0><tr><td>select</td></tr></table>";}
</script>
176Name_Not_Found:2011/01/27(木) 21:47:22 ID:???
>>175
table を範囲選択するときにも onmouseover が発火してる。
innerHTML 後にonmouseoverイベントハンドラを削除してやればいい。

<div id='o' onMouseOver='_a(); this.onmouseover = null;'>ああああいいいいううううええええおおおお</div>
177175:2011/01/27(木) 21:55:59 ID:???
さすが!原因と対策が分かったので実コードにも使えそうです。ありがとうございます。
178175:2011/01/27(木) 23:02:05 ID:???
問題は解決した。しかし発火といえるほどonmouseover出てたのはなぜなんでしょ?入るとき1回じゃないの?ブラウザバグ?
179Name_Not_Found:2011/01/27(木) 23:11:54 ID:???
>>178
イベントバブリングでぐぐってください。
180175:2011/01/27(木) 23:41:29 ID:???
ヒントありがとうございます。ググって着ましたが少し難しいですね。勉強してきます。
181Name_Not_Found:2011/01/28(金) 05:54:34 ID:c1Ys/Ber
ttp://pspnetkatuyou0224.blog2.fc2.com/blog-entry-600.html

このサイトの画像が拡大表示されるjavaで同じものってどこにあるか教えていただけませんか...
182Name_Not_Found:2011/01/28(金) 06:32:43 ID:???
>181スレチ
Javaはこっちで聞け

★★Java質問・相談スレッド143★★
http://hibari.2ch.net/test/read.cgi/tech/1295892452/
183Name_Not_Found:2011/01/28(金) 07:22:52 ID:7cLOjvAm
関数内でscriptタグを生成し、読み込みを確認した上で返したいのですがうまくいきません。

foo.load = function(service) {
// scriptタグ生成
var scriptElement = document.createElement("script");
scriptElement.type = "text/javascript";
scriptElement.src = "service + ".js";
document.getElementsByTagName("head")[0].appendChild(scriptElement);

// 待ち(読み込みスクリプトで定義されている名前空間用のオブジェクトを参照)
while (window["foo"][service] === undefined) {
// alert(window["foo"][service]);
}
return;
}

foo.load("search");

これは無限ループになります。ですがコメントアウトしてるalertを実行すると
(1回目)=>undefined
(2回目)=>object
などとなってループを抜けます(正常動作)。

上のコードでは一度参照したwindow["foo"][service]の内容が書き換わらないが
alertでは常に最新の値を取得してるのではないかと考えてるのですが、
ループ内であれこれ試しても解決できません。
どうすればいいでしょうか。
184Name_Not_Found:2011/01/28(金) 08:39:58 ID:???
>>183
JavaScriptではいちど実行を放棄しない限り他のスレッド(読み込みとか)
が動かないから無限ループで待つ方法では絶対不可能。alert()が嫌なら
setTimeoutとかで待つしかない。だから1つの関数の中で「読み込みを
確認してから帰る」というのは不可能。setTimeoutの勉強を勧める。
185Name_Not_Found:2011/01/28(金) 10:05:28 ID:???
>>181 以下は大丈夫ですか
>>1 一、JavaScriptはJavaとは別物であると知っている者
186183:2011/01/28(金) 17:22:41 ID:???
>>184
たいへん参考になりました。
タイマーを使ってチェックする方法は別に書いていたのですが、
どうも前後のコード(プログラムを使う人がコーディングする部分)との兼ね合いで
すっきりしなかったもので、こっそりループして待つ方法を試していたところでした。
今は読み込みタイミングを工夫してイベントとタイマーで待つ方法に修正したところです。
ありがとうございました!
187Name_Not_Found:2011/01/28(金) 20:45:08 ID:???
addEventListenerに対応しているかどうかとかは
if(document.addEventListener){}
else if(document.attachEvent){}
else{}
みたいにしますが
さらに特定のイベントタイプに対応しているかどうかを判断するにはどうすればいいですか?
188Name_Not_Found:2011/01/28(金) 21:43:32 ID:???
対応してるか否かに関わらずどんな名前でも(自分で)イベント投げられるから無いと思うよ
189Name_Not_Found:2011/01/28(金) 21:58:08 ID:???
document.createEventでイベント作れるしなー
190Name_Not_Found:2011/01/28(金) 22:52:43 ID:???
そうなんですか
どうもありがとうございますm(_ _)m
191Name_Not_Found:2011/01/29(土) 17:20:02 ID:???
  $(function(){
    $("#markerset").submit(function(){
      createMarker();
      return false;
    });
  });
  function createMarker(){
    var lat = (map.getCenter()).lat();
    var lng = (map.getCenter()).lng();
    var marker = new google.maps.Marker({
      position: new google.maps.LatLng(lat,lng),
      map: map,
      title: "指定位置でドロップ",
      draggable: true //なんかV3での動作が超遅いきがする
      });
      google.maps.event.addListener(marker,'mouseup',function(){
        echoPoint(marker.position);
      });
    google.maps.event.addListener(map,'dblclick',function(event){
      marker.setPosition(event.latLng);
      echoPoint(marker.position);
    });
    return marker;
  }
  function echoPoint(point){
    var lat = point.lat();
    var lng = point.lng();
    $("#marker_lat").val(lat);
    $("#marker_lng").val(lng);
  }
ボタンに関数設定したけど呼び出せません。。。ほわい?
192Name_Not_Found:2011/01/29(土) 17:22:02 ID:???
━━━本スレに書く事を許される者は以下の通り━━━━━
 一、トラブルを再現する最小限のサンプルを貼れる者
193Name_Not_Found:2011/01/29(土) 17:41:18 ID:???
>>191
自己解決
.clickですた orz
194Name_Not_Found:2011/01/29(土) 22:24:51 ID:???
javascriptで動的に作成したarrayをformでpostするにはどうやるのが一番ふつうなんでしょうか?
195Name_Not_Found:2011/01/29(土) 22:30:30 ID:???
サーバーサイドがPHPなら[]で

<input name="test[]" value="aaa" />
<input name="test[]" value="bbb" />
<input name="test[]" value="ccc" />

var_dump($_POST["test"]) // = array("aaa", "bbb", "ccc");
196Name_Not_Found:2011/01/29(土) 22:33:01 ID:???
そうか!サーバーサイドによってやり方が変わるんですね
サーバー側はpythonです
197Name_Not_Found:2011/01/29(土) 22:42:48 ID:???
jQueryのajaxも配列をname[] 形式で送るしそれでいいんじゃね。
pythonには自動的に配列にする機能はないから自前で処理する必要があるね。
198Name_Not_Found:2011/01/29(土) 23:21:13 ID:???
199Name_Not_Found:2011/01/30(日) 00:03:28 ID:???
>>197
>>198
参考になりました!ありがとうございました。
200Name_Not_Found:2011/01/30(日) 08:27:41 ID:ytGkNMSf
Ajaxのonreadystatechangeとopen
って記述する順番ってどっちが正しいんでしょうか?
(実行される順番ではなく)


--------onreadystatechangeが前?-----------------
aj.onreadystatechange = function(){};
aj.open(method, url, bool);
aj.send(null);

--------onreadystatechangeが後?-----------------
aj.open(method, url, bool);
aj.onreadystatechange = function(){};
aj.send(null);


onreadystatechangeが前派なサイト例
http://blog.wonder-boys.net/?p=281

onreadystatechangeが後派なサイト例
http://gihyo.jp/dev/serial/01/crossbrowser-javascript/0012



大変お手数ですがご回答をよろしくお願いいたします。
201Name_Not_Found:2011/01/30(日) 08:38:04 ID:???
sendの前に書けばどっちでもいい。
好みの問題
202Name_Not_Found:2011/01/30(日) 10:51:05 ID:???
http://www.hajimeteno.ne.jp/dhtml/dist/js64.html
windowsXP,FireFox

・ソース
http://www.hajimeteno.ne.jp/dhtml/download/sp64.zip

63行目の
document.getElementById("iLf").onmousedown = Mdown;

document.getElementById("iLf").addEventListener('mousedown',Mdown,false);
に変えるとうまくいかないのですが、
何が悪いのでしょうか?
203Name_Not_Found:2011/01/30(日) 13:46:31 ID:???
>>202
その2つの記述じゃイベントの動作仕様が微妙に違うからなんだよね。

前者だとMdown関数の中で、return false;とすれば既定のイベントはすべてキャンセルされるんだけど、
後者だとそれだけじゃダメで、下記の記述も必要になる。

e.preventDefault();
e.returnValue = false;
e.cancelBubble = true;
204Name_Not_Found:2011/01/30(日) 13:50:18 ID:???
>>203
e.cancelBubble は明らかに違うのでは…。
バブリングをキャンセルする必要はないと思う。
205Name_Not_Found:2011/01/30(日) 15:04:50 ID:???
>>203
解決しました。
ありがとうございます。
206Name_Not_Found:2011/01/30(日) 20:22:24 ID:???
<html>
<head><title>test</title>
<script type="text/javascript">
<!--
function url1(){
window.open("http://google.co.jp/")
}
//-->
</script>
</head>
<body>
<script type="text/javascript">
setTimeout("url1()",3000)
setTimeout("url1().close()",5000) //←ここがわからない
</script>
</body>
</html>

3秒立ってからページを開いて、5秒後に開いたページを閉じる。ってのをやりたいんですが調べてもよくわかりません
207Name_Not_Found:2011/01/30(日) 20:27:06 ID:???
url1() === undefined

window.w1= window.open("http://google.co.jp/");
w1.close();
208Name_Not_Found:2011/01/30(日) 21:11:38 ID:???
>>206
http://jsbin.com/ugotu5/3
IE8 では動くが、ほとんどのブラウザはポップアップブロックすると思われる。(とりあえず、Fx と Chrome はNG)
ユーザアクションでないポップアップはブロックされるのが今の風潮。
209Name_Not_Found:2011/01/30(日) 22:24:38 ID:???
>>207-208
今まで胃をキリキリさせながら調べ考えてきたのでありがたいです
210Name_Not_Found:2011/01/30(日) 22:46:59 ID:???
ちょっとスレチかもしれませんが
技術評論社のjavascript超入門って本がだいたい終わったので
次にjavascriptの本を買おうと思うのですが
なにかおすすめはありますか?
211Name_Not_Found:2011/01/31(月) 00:45:34 ID:???
サイ本
212Name_Not_Found:2011/01/31(月) 01:09:51 ID:???
a==b と a===b では、どちらの方が負荷が少ないでしょうか
213Name_Not_Found:2011/01/31(月) 02:08:07 ID:???
そんな無意味なことで高速化しようと思ってるならハゲろ
育毛剤買いに行く時間でロジックの見直しでもしてろ
214Name_Not_Found:2011/01/31(月) 07:07:28 ID:wqHESTql
>>213
育毛剤は禿げてからじゃ遅いんだ!
もう…手遅れなんだよ…
215Name_Not_Found:2011/01/31(月) 07:29:06 ID:???
演算子の意味が分かっているなら自明のはず
216Name_Not_Found:2011/01/31(月) 08:36:26 ID:tn8G3+zJ
すいません
javascript で、文字化けします。

<SCRIPT language="JavaScript">
<!--
document.write("譁?ュ怜喧縺");
//-->
</SCRIPT>

文字化け部分は、日本語を書いています

環境
os macOS version 10.6.4

ブラウザ safari か google crome

エディタ テキストエディタ


どうしたらなおるでしょうか?
217Name_Not_Found:2011/01/31(月) 09:51:56 ID:???
>>212 >>215
==の比較処理で、内部で事前に型変換をやっているかによるなあ。力不足でわからん。

>>216
テキストエンコーディングの指定を変更しても直らない?
218Name_Not_Found:2011/01/31(月) 10:01:06 ID:???
>>216
保存時に正しいコードで保存してても、開くときはエディタが中身を見て文字コード解析するから
あんまり短いソースとかだと読み違えることがあるが、実用上は問題ない。
開くときに化けるのは、エディタ側でコード指定して開きなおす必要がある。
219218:2011/01/31(月) 10:08:32 ID:???
すまん、ブラウザで化けるんだよな。それはHTMLのエンコード指定だろうなあ。
保存時の文字コード、HTMLでのエンコード指定、ブラウザの解釈、を確認しよう。
ちなみにcrome→chromeね
220216:2011/01/31(月) 10:50:34 ID:tn8G3+zJ
>217テキストエンコーディングを、Shift_JISにしたら、なおりました。ありがとうございました(´∀`)

>218保存時の文字コード、HTMLでのエンコード指定、ブラウザの解釈
UST8から、Shift-Jisに変更したら、okでした。ブラウザは、safari とchrome(勉強になりました)の、両方okです。
ありがとうございました。
221Name_Not_Found:2011/01/31(月) 10:53:56 ID:???
JavaScript関係ないしマカーだからでいいよ
222Name_Not_Found:2011/01/31(月) 13:25:53 ID:???
>>220
UST8じゃなくUTF-8な。
横文字に弱そうだな。
223Name_Not_Found:2011/01/31(月) 15:22:30 ID:???
USO8百な。
224Name_Not_Found:2011/01/31(月) 17:41:42 ID:???
>>217
普通は === の方が高速。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.9.1
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/11_Expressions.html#section-11.9.4

速度は実装依存だから、実際に対象ブラウザ別に確認した方がいいと思うけどね。
225Name_Not_Found:2011/01/31(月) 22:00:35 ID:???
>>224
数値比較の場合は、差は無いんですね。
== の場合でも型は揃えてから比較した方が速いとかいろいろ勉強になります。
226Name_Not_Found:2011/02/01(火) 00:53:39 ID:???
こういうのは実際に自分でテストして試したほうが身になるよ。
ネットに書かれてるからと妄信する新人PGが多くて困る。
227Name_Not_Found:2011/02/01(火) 01:26:36 ID:???
>>226
どうやって自分でテストすんの。値が微妙すぎてテストだと誤差が多いだろうから
ECMAを参考にした方が間違いは少ないと思うぞ。
228Name_Not_Found:2011/02/01(火) 02:06:32 ID:???
>>227
==と===の比較を10億回ほどループさせれば、Core i7でも400ミリ秒くらい違ってくるよ。
229Name_Not_Found:2011/02/01(火) 03:18:49 ID:???
ベンチマークの話題するときはベンチマークのコードを出しましょうね
230Name_Not_Found:2011/02/01(火) 03:22:16 ID:???
どんだけ他力本願なの(笑)
231Name_Not_Found:2011/02/01(火) 03:46:34 ID:???
他力本願とかそういう話じゃないだろ
プログラマーの一般常識
コードに不備があって結局は変わらないことが証明されたり
そういう話をするためにも必要
232Name_Not_Found:2011/02/01(火) 03:49:04 ID:???
そんなくだらないことで揉めてる時間があったらカツラでも買ってこい
233Name_Not_Found:2011/02/01(火) 03:51:56 ID:???
ベンチマーケティングですねわかります
234Name_Not_Found:2011/02/01(火) 03:52:10 ID:57px5ypG
ヅラはやっぱ縫込みがいいのかなー
235Name_Not_Found:2011/02/01(火) 07:51:50 ID:???
最近の処理系だと10億回もループ回すとJITされて
==も===も同じコードにされてベンチマークの意味なくなっちゃうかもよ
236Name_Not_Found:2011/02/01(火) 08:43:37 ID:???
憶測ですねわかります
237Name_Not_Found:2011/02/01(火) 10:46:05 ID:jcBMwG4X
>>232
被るか被らないかは、転職や結婚くらい重大な問題なんだよ!!
簡単に口にするんじゃねえよ…簡単に…
238Name_Not_Found:2011/02/01(火) 11:16:03 ID:r2uTNUKw
>>214,237
必死だなおいw
239Name_Not_Found:2011/02/01(火) 17:42:54 ID:sIYoQUUd
$(document).ready(function(){
$('div').hide();
$('div:first').show();
});
firefoxだけ最初の一回hide()に失敗するんだけど何でやろCSSでdisplaynoneしとくと消えてるしリロードするとちゃんとできる
あとこういう書き方見たんだけどこうしたほうが正しいの?
var divs = $('div');
divs.hide().filter(':first').show();
240Name_Not_Found:2011/02/01(火) 17:45:51 ID:???
>>239
失敗しないけど
241Name_Not_Found:2011/02/01(火) 17:51:02 ID:???
レンタルサーバにあげてdivのなかにいろいろ読み込むと失敗するんよ
重い画像で引っかかるとスキップされるとかなんかあるのかしら
242Name_Not_Found:2011/02/01(火) 17:57:59 ID:???
>>241
レンタルサーバにあげてdivのなかにいろいろ読み込んでるせいでしょ
243Name_Not_Found:2011/02/01(火) 17:59:15 ID:???
それこそonloadでいいんじゃね。
244Name_Not_Found:2011/02/01(火) 18:47:55 ID:???
正規表現の()←このかっこの意味を詳しく教えてください。

この括弧でくくったなかの正規表現にマッチしたものを、
配列に格納するという意味しかないんですか?

それともほかになにか意味がありますか?
245Name_Not_Found:2011/02/01(火) 19:05:53 ID:???
>>244
括弧で括ると、グループ化できる。

alert(/^(abc)+$/.test('abcabcabc')); // true

グループ化するだけならキャプチャしない方が良い。

alert(/^(?:abc)+$/.test('abcabcabc')); // true
246Name_Not_Found:2011/02/01(火) 19:25:07 ID:???
グループ化っていうのは、()内の文字列はこの条件、ってまとめて指定できるってことでいいですか?

もしその場合、()内に?とか$の文字が入っていた場合はエスケープ文字を付加する必要ありますか?
247Name_Not_Found:2011/02/01(火) 19:27:42 ID:???
JavaScript関係ないし
248Name_Not_Found:2011/02/01(火) 19:54:00 ID:???
249Name_Not_Found:2011/02/01(火) 21:03:34 ID:???
いつも思うんだけど
> 一、正しい(validな)HTMLとは何か知っており書ける者
これ、完璧にって言うと結構レベル高いよね。
知ってはいても完璧に実践するのは非常に手間だし
間違いやすい・微妙すぎる決まりもある。
HTMLだけでも大変だし、CSSとなると…

無視されてるっぽいからどうでもいいのかもしれないけど。
250Name_Not_Found:2011/02/01(火) 21:59:26 ID:???
strictじゃなくてvalidだから
251Name_Not_Found:2011/02/01(火) 22:05:30 ID:???
validが何か知らないとなるとますますこのスレは無理では…
252Name_Not_Found:2011/02/01(火) 22:20:16 ID:???
バリデータ使えばいいし
253Name_Not_Found:2011/02/01(火) 23:10:37 ID:???
>>251
ところでなんて読むの?
254Name_Not_Found:2011/02/01(火) 23:12:57 ID:???
>>253
ぐぐれ
255Name_Not_Found:2011/02/01(火) 23:30:47 ID:???
だが断る
256Name_Not_Found:2011/02/01(火) 23:34:52 ID:???
> ━━━本スレに書く事を許される者は以下の通り━━━━━
>  一、自ら学んでJavaScriptコードを書く意思を持つ者

じゃあ、さようなら。
257Name_Not_Found:2011/02/01(火) 23:43:21 ID:???
>>254
ありがとう
覚えておくよ
258Name_Not_Found:2011/02/02(水) 00:03:15 ID:???
>>256
さようなら〜。もう来るなよ^^
259Name_Not_Found:2011/02/02(水) 10:29:11 ID:???
test="あhttp://www.abc.com/watch?v=asdgajkewjfaいhttp://www.gdas.com/watch?v=ooweijgi".match(/(https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/g);
alert(test.length);
for(i=0;i<test.length;++i){
alert(test[i]);
}
これで何で最初のURLにはマッチしないのか教えてください。
なぜか2番目のURLにしかマッチしません。
260Name_Not_Found:2011/02/02(水) 10:33:12 ID:???
$
261Name_Not_Found:2011/02/02(水) 11:27:13 ID:???
あ、なるほどwありがとうございましたw
262Name_Not_Found:2011/02/02(水) 12:38:40 ID:???
何回もすみません。
/(https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/g

この正規表現で、.とか?とかって正規表現で使うメタ文字ですよね?
なんでスラッシュとかはエスケープ文字(\)をつけてエスケープしてるのに、
このメタ文字はエスケープしなくてよいのでしょうか?
エスケープしないと文字として認識してくれないと思うのですが、どうなのでしょうか?

それと、replace関数についてですが、
ここでのgオプションについては、
マッチしたら都度、第二引数の変換を行うという認識でいいでしょうか?
例えば、文字列の中で4つマッチしたとしたら、
一つずつ、第二引数の変換処理が行われていくという感じだと思うのですがどうでしょう?

何度もすみませんがお願い致します。
263Name_Not_Found:2011/02/02(水) 12:55:16 ID:???
はい
264Name_Not_Found:2011/02/02(水) 13:00:30 ID:???
えっと、両方とも僕の認識であってるということですかね。
ありがとうございました。
265Name_Not_Found:2011/02/02(水) 14:00:10 ID:JaFitnud
>>264
[]の中やん
266Name_Not_Found:2011/02/02(水) 15:08:15 ID:???
>>262
/[.]*/.test("hello"); // false
/.*/.test("hello"); // true

そういうこと
267Name_Not_Found:2011/02/02(水) 17:28:48 ID:???
フレームワークのHTMLページを作ってるのですが
ボタンをクリックするというか、onclickで下にある別のフレームを表示、非表示とかって出来ますでしょうか?
268Name_Not_Found:2011/02/02(水) 17:36:17 ID:???
できますよ
269Name_Not_Found:2011/02/02(水) 17:39:49 ID:???
マジですか!?
DOM操作でやればいいのでしょうか?

そのHTMLの中にあるインラインフレームとかだったら、外のHTMLにそういうボタンを作って
フレームの部分だけを表示&非表示にすればいいってのわかるんですが

メインフレームとかじゃなくて、サブフレームからメインフレーム操作ってのがどうも
270Name_Not_Found:2011/02/02(水) 17:48:42 ID:???
フレームワークってそういう意味の言葉だっけ?
271Name_Not_Found:2011/02/02(水) 17:51:45 ID:PPLsevli
フレームワークという言葉の使い方はほっといていいのか?

>>269
window.framesをごにょごにょすればいいよ

あとあからさまにフレームを毛嫌いするつもりはないけど
ものすごい今更感があるよ、フレーム
272Name_Not_Found:2011/02/02(水) 17:52:37 ID:???
すみません・・・、ただのフレームかも・・・。

たとえばこのページの右側のフレームにボタンを作って、そこをクリックしたら赤ページが消えるみたいな
http://www.7key.jp/hp/_frame/frame1.html
それでまたボタンをクリックすると出るみたいな
273Name_Not_Found:2011/02/02(水) 17:53:34 ID:???
>>271
ありがとうございます!早速調べてきます!
274Name_Not_Found:2011/02/02(水) 18:18:04 ID:???
阿部寛とかこういうHTMLっぽいHTMLのサイト見ると思わずニヤニヤしてしまう
http://homepage3.nifty.com/abe-hiroshi/
こういうシンプルさは大切だね
275Name_Not_Found:2011/02/02(水) 19:00:37 ID:K8zYrF01
じゃんけん のプログラムです。
http://akiba.geocities.jp/tr4583384/datsuijanken.html
勝った時、画像とリンクをしたいです。
location.hrefの使い方を、わかりません。
どこで、どのように使うべきでしょう?
<html><head>
<script language="JavaScript">
var aite;
var message;
function clickhere(n){
aite=Math.floor(Math.random()*3+1);
if(n==1) message="あなた:グー\n";
if(n==2) message="あなた:チョキ\n";
if(n==3) message="あなた:パー\n";
if(aite==1) message+="相手:グー\n";
if(aite==2) message+="相手:チョキ\n";
if(aite==3) message+="相手:パー\n";
if(n==aite) message+="あいこです";
else {
if((n+1)%3==aite%3) message+="あなたの勝ち";
else message+="相手の勝ち";
}
alert(message);
}
</script></head>
<body>
脱衣じゃんけん大会!<br>
<a href="JavaScript:clickhere(1);">グー</a><br>
<a href="JavaScript:clickhere(2);">チョキ</a><br>
<a href="JavaScript:clickhere(3);">パー</a><br>
</body></html>
276Name_Not_Found:2011/02/02(水) 19:13:02 ID:???
パッと考えたけど
$kekkaって変数でも作って
勝ったら+1、負けたら-1、あいこで+0とかにして

変数kekkaが5超えたら全裸とかでいいんじゃない?
4ならこの画像、3ならこの画像って感じで
それと画像とか完成したらまたURL貼って教えてくれ
277Name_Not_Found:2011/02/02(水) 19:47:03 ID:???
画像を変えるやり方がわからなかったら
<div id="hyouji">ここに表示されます</div>
とかやって

var hyo = document.getElementById("hyouji");
if($kekka>=5)
hyo.innerHTML = <img src="5.jpg">
elseif($kekka>=4)
hyo.innerHTML = <img src="4.jpg">

ってやったりとか
これは超テキトーだからアテにしたり、そのまま使わないでね。この記述方法じゃ間違いなくエラーになる
詳しくはDOM操作で
DOMを使えばHTMLの記述をチェンジできます
278Name_Not_Found:2011/02/02(水) 20:19:38 ID:???
ジェットストリームアタックも出来る!
279Name_Not_Found:2011/02/02(水) 21:10:34 ID:K8zYrF01
>276
おもしろいね
よかったら、それのソースおしえて

じつは、まだ、javascriptよくわかってない

入門サイトみながら、つくってる 
おそいけど、
つくったら、またはる
280Name_Not_Found:2011/02/02(水) 21:17:43 ID:K8zYrF01
>277
なるほど。
調べながら、ためしてみる。

>288
ガイア、オルテガ、マッシュさんのこと?
281Name_Not_Found:2011/02/02(水) 21:26:21 ID:???
>>279
待て、野球拳の画像全部置いていけ。授業料だ
282Name_Not_Found:2011/02/02(水) 22:43:32 ID:K8zYrF01
javascriptのシェルつかうと、たくさんいれたが、SyntaxError: Unexpected token < これが、常にでる。

なんで?

他に、よいシェルある?

シェルのソース
<script>
function p(s){
document.getElementById('stdout').innerHTML += s + '<br>';
}
</script>
<dl>
<dt>プログラム:</dt>
<dd><textarea id="src" cols="80" rows="25"></textarea></dd>
<dd><input type="submit" value="実行" onclick="
document.getElementById('stdout').innerHTML = '';
document.getElementById('stderr').innerHTML = '';
try {
eval(document.getElementById('src').value);
}catch(e){
document.getElementById('stderr').innerHTML = e;
}
"></dd>
<dt>出力:</dt>
<dd><div id="stdout"></div></dd>
<dt>エラー:</dt>
<dd><div id="stderr"></div></dd>
</dl>

>281
http://akiba.geocities.jp/tr4583384/imgres.jpeg
283Name_Not_Found:2011/02/02(水) 22:44:34 ID:K8zYrF01
284Name_Not_Found:2011/02/02(水) 22:58:25 ID:???
プログラミングでサイト参考にするのはよくないよ、サイトってのは調べもの程度にしとけ
基礎からじっくり学びたいんだったら3000円位の初心者向けの本一冊買うべし
285Name_Not_Found:2011/02/02(水) 23:10:33 ID:???
俺はそんなにかわらんと思うけどね
本でもデタラメ書いてるときあるし
自分で情報を選べるならネットで十分だ
286Name_Not_Found:2011/02/02(水) 23:13:48 ID:???
関数が解らないぐらいだったらいいけど
オブジェクト指向って何?だったら本がいいな
287Name_Not_Found:2011/02/02(水) 23:15:10 ID:???
>>282
javascriptのシェルになんでHTML入れるんだよ、別の言語
288Name_Not_Found:2011/02/02(水) 23:15:32 ID:???
初心者向けの本を買ってまともなJavaScriptを覚えられるセンスのあるような奴は
サイト参考にしたりネットで調べるだけでも充分できるものだよ

できる奴はできるしできない奴は何をやってもできない
289Name_Not_Found:2011/02/02(水) 23:18:04 ID:???
最初本で勉強してたけど内容が偏りすぎていて結局ネットで調べる羽目に
googleの検索結果もksみたいな内容のサイトばっかり出てくるから検索スキルも身についたw
290Name_Not_Found:2011/02/02(水) 23:23:44 ID:???
>>282
は初心者用の本買って始める事をオススメする
サイトでやるより、初心者用の本の方がわかりやすく1から書いてあるし、ちゃんとやりたいなら焦らず遠回りしてやるといい
本はコレがオススメ
http://gihyo.jp/book/2010/978-4-7741-4278-4

急がば回れ、javascriptがどういうものかわからないままDOM操作とかやっても、いくらやってもできない
あとオブジェクト指向ってなんなのかよくわからなくなったらココ読むといい
http://www.atmarkit.co.jp/im/carc/serial/object01/object01.html
291Name_Not_Found:2011/02/02(水) 23:31:38 ID:???
宣伝とかやめてください
292Name_Not_Found:2011/02/02(水) 23:34:02 ID:???
俺が著者乙、宣伝スンナと言われても仕方が無いな
すまん
293Name_Not_Found:2011/02/02(水) 23:40:18 ID:???
英語読めれば本はいらなくない?
294Name_Not_Found:2011/02/02(水) 23:42:46 ID:???
英語読めればね
295Name_Not_Found:2011/02/03(木) 00:11:20 ID:???
>>282
エラーにならなかった。
http://jsbin.com/epuso5/1
296Name_Not_Found:2011/02/03(木) 00:21:09 ID:???
>>282
(function (error) {
error.message = '\u003Cstrong>hoge\u003C/strong>\u003Cbr>\u003Cem>foo\u003C/em>';
throw error;
})(new Error);
297282:2011/02/03(木) 00:52:27 ID:Pu3nq/XH
>thx
本 かつ サイト で、勉強しよう
英語 も勉強必要

>287 どうやら、そのようです
htmlはいってました 反省

298Name_Not_Found:2011/02/03(木) 07:45:52 ID:???
jQuery1.5出たよ〜
299Name_Not_Found:2011/02/03(木) 12:20:44 ID:???
出たね
300282:2011/02/03(木) 13:59:25 ID:Pu3nq/XH
>295
thx
私は間違ってたようです
>296
?
301Name_Not_Found:2011/02/03(木) 14:18:18 ID:???
jqueryのリリースノートを翻訳してください
302Name_Not_Found:2011/02/03(木) 14:46:53 ID:???
303Name_Not_Found:2011/02/03(木) 14:49:44 ID:???
addEventListenerつかって、input要素のbuttonにイベント設定したんですが、
firefoxとchromeだけ反応がありません。

elem.onclick使って設定してもダメでした。
考えられる原因として何がありますか?
304Name_Not_Found:2011/02/03(木) 14:52:17 ID:???
>firefoxとchromeだけ反応がありません
IEだけ反応するの間違いじゃねーのw
ソース出せよ
305Name_Not_Found:2011/02/03(木) 14:56:54 ID:???
all=document.getElementsByTagName("input");
for(i=0;i<all.length;++i){
var buttonname=all[i].name;
if(buttonname=="test"){
var buttonnode=all[i];
break;
}
}

if(buttonnode.addEventListener){
buttonnode.addEventListener("click",Test,true);
}else if(buttonnode.attachEvent){
buttonnode.attachEvent("onclick",Test);
}else{
buttonnode.onclick=Test;
}

タグ内のonclick=の部分に書いてもダメでした。
IEだけしか反応しないの間違いですね。すみません。お願いします。
306Name_Not_Found:2011/02/03(木) 15:12:47 ID:???
>>305
<input name="test" />はクリック可能?
disabledなどで無効になってるとイベントが起こらない
307Name_Not_Found:2011/02/03(木) 15:13:51 ID:???
>>306
クリック可能です。
IEでは問題なく動くんですが。。。
308Name_Not_Found:2011/02/03(木) 15:15:42 ID:???
ちなみにfirebugでステップ実行してみると、
最初のaddEventListener関数が実行されているところまでは確認しています。

その後、呼び出し先の関数にブレークポイントしかけても、
反応がないので、呼び出されていないようなのです。
309Name_Not_Found:2011/02/03(木) 15:20:40 ID:???
このソースじゃ再現できないから再現できるものを貼って

 一、トラブルを再現する最小限のサンプルを貼れる者
310Name_Not_Found:2011/02/03(木) 15:26:12 ID:???
試したら普通に動いたからなんか凡ミスしてるんじゃないか
311Name_Not_Found:2011/02/03(木) 15:30:24 ID:???
>>302
そんな機械翻訳見せられてもね
312Name_Not_Found:2011/02/03(木) 15:31:51 ID:???
皆さんすいません。
alertだけの関数をセットしてみたら動きました。。。

関数の名前は間違ってないはずなんですけどね。。。
凡ミスっぽいのでもっと調べてみます。
313Name_Not_Found:2011/02/03(木) 15:32:41 ID:???
気にせずまたいつでもこいや
314Name_Not_Found:2011/02/03(木) 15:33:03 ID:???
一番上の階層にあるdivを消そうとするときってどうやるんですか?

div.parentNodeで親要素取得しようとしたんだが、実装されていませんってエラーがでるんだが。

これって、それ以上の親がないってことですか?
315Name_Not_Found:2011/02/03(木) 15:33:29 ID:???
JavaScript版テンプレートエンジンとフレームワークを教えてください
316Name_Not_Found:2011/02/03(木) 15:39:13 ID:???
>>314
もうちょい詳しく書いてくれれば答えやすいです
317Name_Not_Found:2011/02/03(木) 15:43:45 ID:???
>>314
これ以上上位のノードが無かったらnullが帰るはずだよ
318Name_Not_Found:2011/02/03(木) 15:51:06 ID:???
>>305
うちでは問題ありませんね
319Name_Not_Found:2011/02/03(木) 15:55:34 ID:???
あなたが問題ないなら環境ぐらい書いてくださいよ・・・
こっちは躓いてるんだから
320Name_Not_Found:2011/02/03(木) 16:16:57 ID:???
>>316-317
parentNodeを実行した時点で、実装されていません、というエラーがでるので
戻り値は見れないです。

そのdivは、document.getElementsByTagName("div")で取得したものを、
ループして、getAttributeを使ってクラス名を取り出し、
あるクラス名と一致したものがそのdivです。

実行する前に、そのdivがundefinedじゃないこと、クラス名とタグ名が正しいことを
alert出して確認しています。

その後、そのdivを消すために親ノードを取得しようとすると、
parentNode関数で「実装されていません」というエラーがでます。

何がおかしいのでしょうか?
321Name_Not_Found:2011/02/03(木) 16:18:25 ID:???
一番上の階層って言ったのは、bodyタグと同じ階層にあるということです。

<body>
<div class="abc">
</div>
</body>

↑こういうことです
322Name_Not_Found:2011/02/03(木) 16:25:03 ID:???
divxのアドオン入れてないか?
前スレでそんな話あったぞ
323Name_Not_Found:2011/02/03(木) 16:29:55 ID:???
>>320
とりあえずどのブラウザで実行したかを教えて
324Name_Not_Found:2011/02/03(木) 16:31:32 ID:???
実装されていませんって出るならIEだろうな
325Name_Not_Found:2011/02/03(木) 16:41:05 ID:UYsVxMBV
>>321
同じ階層じゃなくてbodyの一階層下なんだが、それはまあいいか

div.nodeNameとかdiv.nodeTypeとか見てみたらどう?
もしくは>>322が言うように、なにかがElementを書き換えてるとか
326Name_Not_Found:2011/02/03(木) 16:54:37 ID:???
>>322-325
ありがとうございます。

nodeNameはDIVで、nodeTypeは1でした。

ブラウザはIE7です。

アドオンはちょっと見てみます。
327Name_Not_Found:2011/02/03(木) 17:12:05 ID:???
アドオンは特に気になるようなものは無かったですね。

ちなみにさっきのだと親はbodyになるんですか?
328Name_Not_Found:2011/02/03(木) 17:12:41 ID:???
>>319
ふつーの環境ですよ
329Name_Not_Found:2011/02/03(木) 17:16:48 ID:???
>>327
yes
330Name_Not_Found:2011/02/03(木) 17:23:23 ID:???
むう。結局なぜかparentNodeではエラーが出てしまうので、
対象のdivを別のdivで囲って、その親divにidをつけて、
getElementByIdでそのIDを取得して、その親divから消すことで強引に解決させました。

原因が分かる方がいらっしゃれば、回答いただけると嬉しいです。
331Name_Not_Found:2011/02/03(木) 17:25:17 ID:???
getElementsByTagName[0].parentNode
って感じでやってIE7で普通に動いたのは確認しておいた
332Name_Not_Found:2011/02/03(木) 17:30:30 ID:???
まさかとは思うが、parentNode()ってやってないよな?
333Name_Not_Found:2011/02/03(木) 17:33:23 ID:???
>>331
ありがとうございます。

>>332
最初はやってて変なエラーが出ましたが、今はやっていません。
334Name_Not_Found:2011/02/03(木) 18:40:23 ID:???
JavaScript版テンプレートエンジンとフレームワークを聞いておるのだ
335Name_Not_Found:2011/02/03(木) 19:41:57 ID:???
getElementsByTagName()・getElementsByName()はnodelistを取得するからじゃないの?
336296:2011/02/03(木) 19:51:10 ID:???
>>300
サニタイズしてないのでセキュリティ上の問題が。
337Name_Not_Found:2011/02/03(木) 20:09:22 ID:???
>>314
とりあえず、IE8 では動く。
http://jsbin.com/uviyu4/2
338Name_Not_Found:2011/02/03(木) 20:23:55 ID:lszieM5f
if (!!window.screen)とif (window.screen)は同義ですよね?
何故わざわざ!をふたつつけるんでしょうか?
339Name_Not_Found:2011/02/03(木) 20:32:52 ID:???
>>337
おおお!ありがとうございます!
いけました!

私の実行方法としては、
tmp=test.parentNode;
tmp.removeChild(test);
みたいなことしてたんですが、
test.parentNode.removeChild("test")
って、一行で書いたらなぜかいけました!

意味わかりませんが、ありがとうございました!
340Name_Not_Found:2011/02/03(木) 20:36:29 ID:???
function test()
{
var a=0;
b=0;
}

↑こうやって変数を宣言してたら、それぞれの寿命はいつまでなんですか?
aはローカル変数だから、関数が終了したら消滅だと思うんですが、
bはグローバル変数ですよね?

bはいつまで値が保存されてるんですか?
そのページが表示されてる間は、ずっと保存されてるという認識でいいですか?
341Name_Not_Found:2011/02/03(木) 21:25:57 ID:???
createElement,appendChild,removeChild,DocumentFragment,createDocumentFragmentとか
色々あるみたいだけどHTMLを作って最後に一気にinnerHTMLの方がコード少なくて
楽そうだしそこそこ行数あってもそんなに遅くない気がする。
OSはWinXPSP3ブラウザはChrome。メモリリークは少し心配だけど休止使って何百時間とか
ブラウザ・OSとも再起動しなくても特におかしなこともない。
タスクマネージャで見ながらinnerHTMLでそこそこ大量のtable,div,brなど何度も
消したり入れたりしてみた。けどブラウザが勝手にメモリ開放してくれてるのか
タスクマネージャでは分からないものなのか物理メモリの利用可能はそんなに変わらない。

大量のタグを書き換える時でも時間が気にならなかったら素直にinnerHTMLでいいのかな?
createElement,appendChild,removeChild,DocumentFragment,createDocumentFragmentなど
innerHTMLの代わりに使うと幸せになれそうなことは時間が気にならなかったらないのかな?

>>340は言ってる通りページ表示してる間はずっと保存されてて使おうと思ったらいつでも
使えると思う。
しばらくレスがないみたいなのでレスしてみた。
342337:2011/02/03(木) 21:55:04 ID:???
>>339
> 一行で書いたらなぜかいけました!
IE8 は http://jsbin.com/uviyu4/3 でも動く。
そこは原因じゃないと思う。
343Name_Not_Found:2011/02/03(木) 22:01:01 ID:???
>>340
グローバル変数はそのページが unload されるまでは値が保持される。
メモリリークしていたら、ブラウザを終了するまでメモリから解放されない。

>>341
innerHTML でメモリリークする話は始めて聞いた。
リークパターンとなる条件や参考URLがあったら、教えて欲しい。
344341:2011/02/03(木) 22:19:00 ID:???
>>343
http://yakinikunotare.boo.jp/orebase/index.php?Javascript%2FinnerHTML%A4%CB%A4%E8%A4%EB%BB%D2%CD%D7%C1%C7%BA%EF%BD%FC%A4%CE%C3%ED%B0%D5%C5%C0
(張ってよくなかったらすみません)
ここはそういうことじゃないかと思った。まだどこかになにか残ってるからリークかなと。
データ不整合みたいなのかもとも思ったけど。
それにタグをinnerHTMLで削除か追加し直したらもとの中のタグの情報は完全には消えないと思ってる。
345Name_Not_Found:2011/02/03(木) 22:37:43 ID:???
>>344
正直、何を問題としているのか良くわからない…。
件のURLは「IE7 で innerHTML が不振な挙動をする」と指摘しているのであってメモリリークとは書いてないし、Google Chrome で不具合が発生するとも書いてない。
どうして Google Chrome でメモリリークすると思ったのかな?

http://jsbin.com/ocepi3/1
IE8 でDOCTYPEスイッチを切り替えてみたがどれも正常に動作した。
IE7 のみ再現する不具合なのか、著者が何か勘違いしているのか…。
346Name_Not_Found:2011/02/03(木) 22:45:34 ID:UYsVxMBV
>>341
希望通りに動いてればいいんじゃなイカ
今はどのブラウザでもinnerHTML使えるし

jQueryのloadメソッドとか、innerHTMLを使ってんね
読んだHTMLに<script>が入ってたときに、ちょっとはまったけど
347341:2011/02/03(木) 22:56:59 ID:???
C言語とかならメモリに気を使って当たり前でJavaScriptならそこまで気にしないでいいというのは分かる。
俺が心配なのはChromeであれIEであれinnerHTMLで消したタグの情報の行く末。
けどせっかくcreateやらremoveやらappendやらの関数があるのでinnerHTMLより有効な使い方はないかの2点。

>>345のURLはどうやってみるの?
348Name_Not_Found:2011/02/03(木) 23:12:07 ID:Pu3nq/XH
脱衣じゃんけん 画像とリンクできた
http://akiba.geocities.jp/tr4583384/janken0203.html

>$kekkaって変数でも作って
勝ったら+1、負けたら-1、あいこで+0とかにして
変数kekkaが5超えたら全裸とかでいいんじゃない?

これは、まだできてない。
勉強する。





349341:2011/02/03(木) 23:49:53 ID:???
いやあれだね・・・素直にしばらくはinnerHTML使って、使いたいときにcreateやらremoveやらappendやらの関数を使うようにします。
350Name_Not_Found:2011/02/04(金) 01:36:30 ID:???
innerHTMLはイベントリスナーとかとある右手みたくぶち壊していくから好きじゃないな
351Name_Not_Found:2011/02/04(金) 01:56:36 ID:???
javascriptでグラフを描くというのに挑戦しているのでが
upしたコピー 〜 コピー 〜 【完成】試作.html
でグラフを描写すると謎の隙間が空いてしまう不具合の修正方法を
教えてください。
ttp://www1.axfc.net/uploader/Sc/so/201415
352Name_Not_Found:2011/02/04(金) 02:45:19 ID:???
innerHTMLはevalと似て文字列をコードとして評価するから、ただただ綺麗じゃない感じがして使ってない
353Name_Not_Found:2011/02/04(金) 09:55:30 ID:???
document.writeも?
354Name_Not_Found:2011/02/04(金) 10:13:18 ID:???
>>305
> buttonnode.attachEvent("onclick",Test);

buttonnode.attachEvent("click",Test); じゃないか?

355Name_Not_Found:2011/02/04(金) 10:17:47 ID:???
attachEventはon必要
356Name_Not_Found:2011/02/04(金) 10:37:44 ID:e1hNPugn
ソートについて伺いたいのですが、
tableのtdの内容をソートするのではなく、
tableごとソートって出来るのでしょうか?

何か良いものがあればご紹介下さい。
357Name_Not_Found:2011/02/04(金) 10:51:44 ID:???
フローティングウィンドウの作り方が載ってるサイトあったら教えてください。

jqueryを使わない方法で。
358Name_Not_Found:2011/02/04(金) 10:57:22 ID:???
>>353
document.writeってそもそもXHTMLじゃ使えなかったから
何かそれがコピペだけのスクリプトから、JavaScriptの文法だのDOMだの知って書き始めたきっかけだった
359Name_Not_Found:2011/02/04(金) 12:22:19 ID:???
以下のことをやりたいのですがどうもうまくいきません。

・やりたいこと
ダブルクリックしたときにダブルクリックされたところの要素の文字を取得

例えば
-div
テスト1 -br テスト2 -br テスト3 -br
-/div
※-はタグです。
のような構成で
"テスト2"の"ス"の部分をダブルクリックした時に"テスト2"という文字列が欲しいです。
文字列の対象範囲の特定はクリックされた位置から
前方に向かって空白が見つかるまで&後方に向かって空白が見つかるまで
で考えてます。

document.selection.createRangeでcreateRangeメソッドを使って
ダブルクリックしたときの要素が取得できるのは分かったのですが
対象要素全体での文字列等しか自分の技量では取得できませんでした。

何かいい方法があればよろしくお願いいたしますm(__)m
360Name_Not_Found:2011/02/04(金) 13:34:42 ID:???
取得したい文字の要素全てにイベントしかけとけば?w
361Name_Not_Found:2011/02/04(金) 16:25:05 ID:k7e7Zkr1
>>360
むしろ親要素に一個仕掛けておいて、event.target見てごにょごにょしたい
362Name_Not_Found:2011/02/04(金) 16:52:22 ID:k7e7Zkr1
innerHTMLの話だけど
IEでこうするとbuttonのinnerHTMLが空になりますな

var div = document.createElement("div");
document.body.appendChild(div);

var button = document.createElement("button");
button.innerHTML = "hello";

var fn = function(e){ alert((e.target ? e.target : e.srcElement).innerHTML); };

if(document.addEventListener) button.addEventListener("click",fn,false);
else button.attachEvent("onclick",fn,false);

div.appendChild(button);
alert("まず普通にbuttonをappendしました");

div.innerHTML = "";
alert("divをinnerHTMで空にしました");

div.appendChild(button);
alert("再度buttonをappendするとどうでしょう");
363Name_Not_Found:2011/02/04(金) 17:21:01 ID:???
>>356 非常に意味不明な日本語だと思うがこういうことだと想像した。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head>
<script type="text/javascript">
var t0, t1, a = new Array(10), b = new Array(10);
function init() { t0 = document.getElementById('t0'); t1 = document.getElementById('t1'); }
function randomize() {
for(var i = 0; i < 10; ++i) {
a[i] = i; b[i] = t0.rows[i]; b[i].cells[0].innerHTML=String(Math.floor(Math.random()*1000));
}
}
function sort() {
a.sort(function(i,j){return Number(b[i].cells[0].innerHTML)-Number(b[j].cells[0].innerHTML);});
for(var i = 0; i < 10; ++i) { t1.removeChild(b[a[i]]); t1.appendChild(b[a[i]]); }
}
</script>
<title>sample</title>
</head><body onload="init()">
<div><button onclick="randomize()">RANDOM</button><button onclick="sort()">SORT</button></div>
<table id="t0" border="2"><tbody id="t1"><tr><td>1</td><td>A</td></tr><tr><td>2</td><td>B</td></tr>
<tr><td>3</td><td>C</td></tr><tr><td>4</td><td>D</td></tr><tr><td>5</td><td>E</td></tr>
<tr><td>6</td><td>F</td></tr><tr><td>7</td><td>G</td></tr><tr><td>8</td><td>H</td></tr>
<tr><td>9</td><td>I</td></tr><tr><td>10</td><td>J</td></tr></tbody></table></body></html>
364Name_Not_Found:2011/02/04(金) 18:35:05 ID:???
var img = Array.slice(document.links).filter(function(e){
  return /\.(jpe?g|png|gif|bmp)$/.test(e.getAttribute("href"))
});
リンク要素の集合から画像ファイルへのリンクを抽出する処理でこれよりスマートな方法を探してます
何かいい方法ありませんか
365Name_Not_Found:2011/02/04(金) 21:41:35 ID:k7e7Zkr1
querySelectorで正規表現が使えれば
document.querySelectorAll("a[href=/.*?¥.(?:jpe?g|png|gif|bmp)/]");

とか書けるなあ、と妄想した。
366Name_Not_Found:2011/02/04(金) 21:50:54 ID:???
>>365
ありがとう!良いヒントになりました。
document.querySelectorAll("a[href$='.gif'], a[href$='.jpg'], a[href$='.jpeg'], a[href$='.png']");
こんな感じで書けますね
367Name_Not_Found:2011/02/04(金) 22:07:45 ID:/ImTIRvL
<div id="wrapper">
<iframe src="./test.html"></iframe>
</div>

この時に、iframe上でおこったclickイベントなどを
wrapperまで伝播させたいんですができますか?
伝播ができなくても擬似的に同様のことをできるのであれば教えてもらいたいです。
368Name_Not_Found:2011/02/04(金) 22:11:53 ID:???
ふごふご
369Name_Not_Found:2011/02/04(金) 23:42:58 ID:???
iframeにonclickを設定した場合って検知できるんだっけ。いや、出来なかった気がする。
iframe内でwindowとかにonclickでwindow.parent.$('wrapper').onclick()とか。
あるいは、iframe.contentWindow.onclickにでも。
370Name_Not_Found:2011/02/04(金) 23:46:31 ID:???
>>367
iframe 上で click を拾った時に parent に dispatchEvent してみたらどうだろう?
371Name_Not_Found:2011/02/04(金) 23:48:49 ID:???
>>369
jQuery で iframe 上のイベントを操作するなら、2つ jQuery が必要だと思う。
呼び出し側で ownerDocument を変更できないから。
372Name_Not_Found:2011/02/04(金) 23:51:54 ID:???
window.onclick って有効なんだな。始めて知った。
DOM 規定では document までしか伝播しなかったと思うが、HTML5 規定なのかな?
373Name_Not_Found:2011/02/05(土) 00:13:49 ID:???
>>371
jQueryはしらんがな。
同じドメインなら>>369で。(違うドメインはwindow.parentいじれないはず)
$はgetElementById

window.onclickダメだっけ。document.でもbody.でも臨機応変によろ。
374Name_Not_Found:2011/02/05(土) 01:23:35 ID:???
375Name_Not_Found:2011/02/05(土) 08:15:44 ID:???
どこのサイトだか忘れましたが、
文章内をハイライトするとPOPアップでこの用語を検索みたいなことをしているページがありました。
ハイライトを検出するイベントと、ハイライトした文字列を取得する方法を知りたいのですが、
どなたかご存知の方教えていただけませんか?よろしくお願いします。
376Name_Not_Found:2011/02/05(土) 08:54:07 ID:???
ハイライトって文字列選択ってことか?
377Name_Not_Found:2011/02/05(土) 11:55:43 ID:???
window.getSelection().toString();
378Name_Not_Found:2011/02/05(土) 15:02:38 ID:???
0から100までの値を配列にランダムソートした形で格納したいのですが
スマートな方法ってありませんか?
379Name_Not_Found:2011/02/05(土) 15:14:01 ID:???
>>378
エスパーするとそこに配列を使うのが間違ってる
380Name_Not_Found:2011/02/05(土) 15:18:13 ID:???
何を使うのがよいでしょうか?
381Name_Not_Found:2011/02/05(土) 15:41:07 ID:???
378じゃないけど配列に格納しない方法があるなら俺も知りたい
382Name_Not_Found:2011/02/05(土) 15:46:08 ID:???
もしかして>>379はランダムとシャッフルの違いが分からない人なのかな。
シャッフルだけなら
ttp://blog.livedoor.jp/dankogai/archives/50614134.html
383Name_Not_Found:2011/02/05(土) 16:24:16 ID:???
a === bみたいに厳重な比較ってJavaScriptって出来ました?
384Name_Not_Found:2011/02/05(土) 16:26:46 ID:???
一、自ら学んでJavaScriptコードを書く意思を持つ者
385Name_Not_Found:2011/02/05(土) 17:08:56 ID:???
ニ、兄ちゃんこのマンガ貸して
386Name_Not_Found:2011/02/05(土) 17:17:30 ID:???
三、死して屍拾う者無し
387Name_Not_Found:2011/02/05(土) 17:17:57 ID:???
俺は厳重に比較が出来るか聞いておるのだ
388Name_Not_Found:2011/02/05(土) 17:32:24 ID:???
できるけどそれくらい調べて下さいよ
389Name_Not_Found:2011/02/05(土) 17:47:16 ID:???
>>382
ありがとうございます
そのアルゴリズムで試したんですが処理に時間がかかりました
配列に100も値があると高速化は厳しいでしょうか?

var a = [0,1,2,〜98,99,100];
var b = shuffle(b);
function shuffle(list){
var i = list.length;
while (--i) {
var j = Math.floor(Math.random() * (i + 1));
if (i == j) continue;
var k = list[i];
list[i] = list[j];
list[j] = k;
}
return list;
}
390Name_Not_Found:2011/02/05(土) 18:03:01 ID:???
>>389
どのアルゴリズムを選んだか知らんが10000個の配列でも5ミリ秒もかからないけど?

Array.prototype.shuffle = function() {
var i = this.length;
while(i){
var j = Math.floor(Math.random()*i);
var t = this[--i];
this[i] = this[j];
this[j] = t;
}
return this;
}

var test = [];

for(var i = 0; i < 10000; i++)test.push(i);

console.log(test); // [0,1,2…,9999]

var b = new Date().getTime();

test.shuffle();

console.log(new Date().getTime() - b); // かかった時間(ms)
391Name_Not_Found:2011/02/05(土) 19:35:46 ID:???
>var a = [0,1,2,〜98,99,100];

ここってまさか手書きで0から100まで入力してるの?
392Name_Not_Found:2011/02/05(土) 19:46:52 ID:???
エロサイトで迷わないためにリンク一覧作るスクリプト(chromeでのみ確認)
chrome使ってるとリンク一覧生成する拡張でいいのがないから自分で書いてみました
これをブラウザに貼り付けると新規ページでユニーク&ソートした形でリンク一覧表示します
これをもっと文字数減らしたり高速化したり最適化、もしくは5大ブラウザ対応するならどのように書けますか?
変数も好きなようにつけてください
素人なのでこんなんしか掛けないので上級者のコードが見たいです

↓1行が多くなって投稿できないのでセミコロンの箇所に改行いれてます
javascript:var obj = document.getElementsByTagName("a");
var len = obj.length;
var link = len ? new Array(len):[];
for (var i=0;
i<len;
i++){if (obj[i].href != "") link[i] = '<li><a href="' + obj[i].href + '">' + obj[i].href + '</a></li>';
}var s = '<ul>' + uniq(link).sort().join("") + '</ul>';
var w = window.open("");
w.document.open();
w.document.write(s);
w.document.close();
function uniq(a){var t = [];
var r = [];
var i = 0;
var f=0;
while(a[i] != null){if(a[i] != ""){if(!t[String(a[i])]){t[String(a[i])] = 1;
r[f]=a[i];
f++;
}}i++;
}return r;
}
393JS評論家:2011/02/05(土) 19:56:59 ID:???
迷うやつなんていねえよばかだろ
javascriptやってるやつは いちいち見るやつにたいしてよせいなおせっかいだな
394Name_Not_Found:2011/02/05(土) 20:03:15 ID:???
なんで0〜99か1〜100じゃなく0〜100なんだ?

// 初期化
var ary = new Array(101);
for ( var i = 0; i <= 100; ++i ) ary[i] = i;

function shuffle1() {
for ( var i = 0; i <= 100; ++i ) ary[i] += ~~(Math.random()*1000)*1000;
ary.sort();
for ( var i = 0; i <= 100; ++i ) ary[i] %= 1000;
}

function shuffle2() {
ary.sort(function(a, b) {return ~~(Math.random()*3)-1});
}

どちらかお好きな方で。
395Name_Not_Found:2011/02/05(土) 20:25:25 ID:???
>>392
window.open().document.write('<ul>' + Array.prototype.map.call(document.links, function(e){return '<li><a href="' + e.href + '">' + e.href + '</a></li>';}).join('') + '</ul>');
ユニーク処理が長くなるから勝手に省いた
396Name_Not_Found:2011/02/05(土) 20:36:00 ID:???
ソート処理忘れてた。.jsoin('')の前に.sort()入れればいい
397Name_Not_Found:2011/02/05(土) 20:36:01 ID:???
try〜catchで一つ目のtryでエラーが出たらまた次のtryへというのは
try {}
catch (e) {
 try {}
 catch (e) {
  try {}
  catch (e) {}
 }
}
こんなふうに書くんですか?if elseみたいに入れ子じゃないように書けたりしますか?
入れ子じゃなくフラットにするには
function () {
 try { return 〜 } catch (e) {}
 try { return 〜 } catch (e) {}
 try { return 〜 } catch (e) {}
}
みたいに書くものですか?
398Name_Not_Found:2011/02/05(土) 20:37:23 ID:???
すみません
×if elseみたいに
○else ifみたいに
399Name_Not_Found:2011/02/05(土) 20:43:06 ID:???
入れ子でないと動かないでしょ
普通はエラーが発生しないように組んでtryは極力使わないようにするものだがなあ
400Name_Not_Found:2011/02/05(土) 21:04:40 ID:???
入れ子にするしかないんですね
どうもありがとうございます
401JS評論家:2011/02/05(土) 21:07:23 ID:???
お前らカスさあ
なんでJavaScriptやってるのかな
低底糞ゲロWEB企業のやつだろぉ?

っていうかさあ ガキくさいんだよね

大人が真顔で、JavaScriptについて熱弁してると キモキモ

ぐだぐだいってねえでPerl様にドゲザしてみろよカス
402Name_Not_Found:2011/02/05(土) 21:11:03 ID:0Z5v49jj
てか大文字だぜ()笑
403Name_Not_Found:2011/02/05(土) 21:12:25 ID:???
>>390
すいません、遅く感じたのはPHPの原因でした

>>391
はい、頑張って手書きで入れてましたっ

>>394
神様ありがとうございます

404Name_Not_Found:2011/02/05(土) 21:12:31 ID:???
Array.mapってIEで動いたっけ
405Name_Not_Found:2011/02/05(土) 21:14:45 ID:LkHZi9Mh
>>400
else if も入れ子よ

if(a == b) alert("BBB!!");
else if(a == c) alert("CCC!!");

ってカッコ省略しないで書くとこうじゃん

if(a == b){
    alert("BBB!!");
}
else{
    if(a == c){
        alert("CCC!!");
    }
}
406Name_Not_Found:2011/02/05(土) 21:15:01 ID:???
>>392
おおwこれはw
便利ですねお借りしますw
407Name_Not_Found:2011/02/05(土) 21:35:05 ID:???
>>401
「低底糞」ってどう読むんだ?
408Name_Not_Found:2011/02/05(土) 21:37:12 ID:???
>>404
MDCにコードある
409Name_Not_Found:2011/02/05(土) 22:02:00 ID:???
>>408
IEには標準装備されてないみたいですが
410Name_Not_Found:2011/02/05(土) 22:11:20 ID:???
411Name_Not_Found:2011/02/05(土) 22:11:21 ID:???
>>409
IEで動くようにするためのArray.mapと同等のコードがMDCにある
412Name_Not_Found:2011/02/05(土) 22:21:20 ID:???
>>408 >>411
わざわざ別のものを出してくるってことは、
それはリンク先に貼ってある既出のコードと違うものなの?
413Name_Not_Found:2011/02/05(土) 22:40:07 ID:???
>>394
~~(Math.random()*3)-1 って何してるの?
414Name_Not_Found:2011/02/05(土) 23:02:09 ID:???
>>413
・Math.random()は0以上1未満の実数を返す
・3倍して0以上3未満にする
・~~は「整数化」してビット反転のまた反転=元通り、Math.floor()の代わり
 これで0,1,2のいずれかになる
・1引いて-1/0/1になる、これをsort()で大小関係の判断に使う
415Name_Not_Found:2011/02/05(土) 23:19:59 ID:???
>>414
0〜9999数の配列で試してみましたが、
 IE: 1桁の数が配列の最後の方に集中
 Firefox: 1桁の数が配列の最初の方に集中
なぜそうなるのかは分かりませんが、偏りがありますね。
416Name_Not_Found:2011/02/05(土) 23:37:45 ID:???
>>415
後は乱数の質の問題だからなぁ。
適宜メルセンヌツイスターでも実装してもらうとかw
417Name_Not_Found:2011/02/05(土) 23:38:35 ID:LkHZi9Mh
>>414
>~~は「整数化」してビット反転のまた反転=元通り、Math.floor()の代わり

勉強になりました
418Name_Not_Found:2011/02/05(土) 23:53:56 ID:???
Math.floor使った方が速いだろうし、初心者相手の説明に使うのはお奨めできないけど

a=3.14e+10; ~~a == Math.floor(a); // false
419Name_Not_Found:2011/02/05(土) 23:54:37 ID:???
シャッフルするのにO(N)より計算量大きくするの阿呆だろ。
sortの比較関数に乱数って全然シャッフル保証されないし
下手するとものすごく遅いし。

function swap(a, i, j) { var x = a[i]; a[i] = a[j]; a[j] = x; }
var a = new Array(100);
for(var i = 0; i < 100; ++i) a[i] = i;
for(var i = 0; i < 100; ++i) swap(a, i, i+Math.floor((100-i)*Math.random()));
420js評論家:2011/02/06(日) 00:00:52 ID:???
ここのスレは相変わらず低レベルだなカス
421Name_Not_Found:2011/02/06(日) 00:03:49 ID:???
>>420
そう思うなら、二度と来なくていいよ。
422js評論家:2011/02/06(日) 00:05:23 ID:???
ていぞこくそ に決まってんだろ
なにが大文字だ

クソゲロごみjs書いててかわいそうだな
お前らさあ 目覚まして

jsとか本当にネタじゃないよな?

なんか上のほうで、じゃんけんスクリプトとかあったよな

小学生なのか?

10〜40台のごみくずにーとがJavaScirptとかわめいててほんと痛いぜえ?
いたくねえか?だってあんなブラウザの表面上のことでわめいてんだぜ
ほんと笑っちまうぜ まじさあ、大人が三輪車のったりポケモンカードやってるほどの痛さだぜ?

いいかげんにしろよな カス
423Name_Not_Found:2011/02/06(日) 00:08:06 ID:???
Cの感覚だと、関数呼び出し(Math.floor)よりも演算子(~~)の方が速い印象がある。
424js評論家:2011/02/06(日) 00:10:02 ID:???
じゃんけんスクリプト、動画プレイヤー

もう笑わせないでクレよほんとうに
動画プレイヤーとかいい年下大人が、そんな必死に見た目のUIや効率もとめてていたいんだよ
ばかだから、ほんとに あほじゃね?

ひまわりとか死ねよ にこにこも
なにがたのしいの?動画みてさあ あたまわいてんじゃないの?

カスども カスどもはさあ amachangとかフォローしてんでしょお?ばかだから
javascirptのカス同士サイ本みたり なあjsonとかわめいてればいいよ雑魚

スカイプをjsで操作してよろこんでるはげつるもいるしさあ

>421
おめえこなくていいとかいってるけどさあ
お前も低レベルな質問してんじゃねえよ?じゃんけんとか
じゃんけんスクリプトで勝ったら画像みせるとか まじでいってるの?
失笑ものだぜ?それなら画像くらいちょくでみせろよ ばかじゃねえの?本当に

なんかここのスレみるけど、非実用的な3ステップゴミゲロコードしかないじゃん

お前らほんとうにカスだな カスが
425Name_Not_Found:2011/02/06(日) 00:14:15 ID:???
>>423
Cの場合は普通、元から整数の値をビット反転させますから
426Name_Not_Found:2011/02/06(日) 00:19:37 ID:???
2ちゃんって荒らしの削除とアク禁はちゃんと可能なんだよね。
まあお楽しみにどうぞ。
427js評論家:2011/02/06(日) 00:20:01 ID:???
ゆるしてください
428Name_Not_Found:2011/02/06(日) 00:27:33 ID:???
ちょっと計ってみたが心持ち演算子の方が速いかな。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head>
<title>???</title>
</head><body>
<pre><script type="text/javascript">
var c = 0, t1, t2, t3;
t1 = new Date().getTime();
for(var i = 0; i < 100000; ++i) c += Math.floor(Math.random()*3);
t2 = new Date().getTime();
for(var i = 0; i < 100000; ++i) c += ~~(Math.random()*3);
t3 = new Date().getTime();
document.writeln(t2-t1);
document.writeln(t3-t2);
</script></pre>
</body></html>
429Name_Not_Found:2011/02/06(日) 00:35:36 ID:???
~~ ってなんだよ
|0 だろ
430Name_Not_Found:2011/02/06(日) 00:41:36 ID:???
これまでにそれが出てなかったことに驚き。若干はやいね。
431Name_Not_Found:2011/02/06(日) 00:47:34 ID:???
Pentiumだと、FPUのレジスタからCPUのレジスタへ整数で転送可能だからかな。
432Name_Not_Found:2011/02/06(日) 00:49:23 ID:???
|0は式によっては優先順位が変わっちゃうから。
~~だと単項だから真っ先にやってくれる。
433Name_Not_Found:2011/02/06(日) 00:52:38 ID:???
またperlの知恵遅れが暴れてるのか
434Name_Not_Found:2011/02/06(日) 01:12:42 ID:???
|0の方が速いね。
435Name_Not_Found:2011/02/06(日) 01:24:54 ID:???
そんな速度を必要とする奴なんてこれっぽっちもいないんだから
素直にMath.floor使っとけ
436Name_Not_Found:2011/02/06(日) 01:38:01 ID:???
~~とかトリッキーなコードは個人の趣を深めるには適してるがそれをパブリックにすると保守が面倒
437392:2011/02/06(日) 12:59:26 ID:???
とりあえず5大ブラウザ対応やってみようかな
438Name_Not_Found:2011/02/06(日) 13:02:46 ID:???
トリッキー上等で質問させて下さい。
(使用フォントはUTF-8で)
変数名に2バイトコードを使えてしまうのは、偶然ですか?それとも必然ですか?
439Name_Not_Found:2011/02/06(日) 13:08:22 ID:???
2バイトコードが使えないなんて制限あった?
日本語変数とかJS初心者講座サイトとかで昔からよく見てきたけど
440Name_Not_Found:2011/02/06(日) 13:11:57 ID:???
441Name_Not_Found:2011/02/06(日) 13:14:28 ID:???
仕様なんですか、ありがとうございました。
442Name_Not_Found:2011/02/06(日) 14:13:19 ID:wEcnqRXd
テーブル的に使う目的で
var a = ["北海道","青森県",…,"沖縄県"];
var kanji_number = {};

for(var i=0,l=a.length ; i<l ; i++){
    kanji_number[a[i]] = i;
}

ってよく作る
443Name_Not_Found:2011/02/06(日) 14:16:18 ID:???
この文脈と何の関係が?
444Name_Not_Found:2011/02/06(日) 15:04:48 ID:???
>>438
フォントは表示する上での物であって、
そういう場合は文字エンコーディングとか、単に文字コードとか
書かないと伝達性が悪いよ。
445Name_Not_Found:2011/02/06(日) 15:40:51 ID:???
jsonなんですが
[
{"a":"100"}
{
{"b":"200"},
{"b":"300"}
}
]

json[0].aで100
json[1][0].bで200
json[1][1].bで300
と表示させたいのですがjsonの記述エラーになります
jsonのどこを書き換えたらよいでしょうか?
446Name_Not_Found:2011/02/06(日) 15:49:09 ID:???
意図する形は多分こうなのかな。

[
{"a":"100"},
[
{"b":"200"},
{"b":"300"}
]
]
447Name_Not_Found:2011/02/06(日) 15:52:33 ID:???
>>446さんあなたは神です
ありがとうございます!このご恩は忘れませんっ!
448Name_Not_Found:2011/02/06(日) 16:04:33 ID:???
まさかそんなに感謝されるとは思わなんだ。
449Name_Not_Found:2011/02/06(日) 16:10:01 ID:???
恩なんて次の日には忘れてるから大丈夫だ
450Name_Not_Found:2011/02/06(日) 16:16:07 ID:???
,
451Name_Not_Found:2011/02/06(日) 21:01:20 ID:9Uxt94G9
Prototype Window の Window内でJavaScriptを使用することは
可能でしょうか?
452Name_Not_Found:2011/02/07(月) 04:56:42 ID:poFm2qVk
jqueryについて質問です。
jqueryでページ遷移をする際にアニメーション効果をつけてみたのですが、
下記のようにpositionを付けるとanimateやcssがIEで効かなくなってしまいます。
<div style="position:absolute;">
<a href="./test.html">fade</a>
</div>
こういう場合はどうすればいいのでしょうか?
参考にしたサイトはここです。
http://e2designer.seesaa.net/article/159745163.html

どなたか教えて下さい。
453Name_Not_Found:2011/02/07(月) 05:50:41 ID:???
質問です

frame.html
<html>
<head>
<title></title>
<frameset rows="50%,*">
<frame src="a.html">
<frame src="b.html">
</frameset>
</head>
</html>

b.html
<html>
<head>
<title></title>
<input type="submit" value="aを消す" onclick="">
</head>
</html>
とやって、aフレームを消したいのですがどのようにすればいいのでしょうか?
window.flamesで調べてみてもそれらしいのが出てこなくて
454Name_Not_Found:2011/02/07(月) 05:57:59 ID:???
flames×
frames○
455Name_Not_Found:2011/02/07(月) 07:40:59 ID:???
frameは過去の産物です
456Name_Not_Found:2011/02/07(月) 08:05:31 ID:???
appendChildって、その要素の子要素として末尾に追加するメソッドですよね?
ある要素の後ろにくっつけたい場合はどうすればよいのでしょうか?

例えば、
<div class="test"></div>
<div class="tsuika">/div>

↑のtsuikaクラスのdivのように、testクラスのdiv内ではなく、
その後ろに追加したい場合のことを言っています。
457Name_Not_Found:2011/02/07(月) 09:35:13 ID:???
次の要素の手前へinsertBefore()。
末尾ならappendChild()。
…ってこれ、なんで「これの次」っていうのがないんだろうね。
458Name_Not_Found:2011/02/07(月) 09:45:55 ID:???
>>456-457
そうやってあらゆる場合に便利なものを入れ出すとAPIがどんどん
肥大するからじゃないですかね。(1)testの前に入れて、(2)testを
削除して、(3)入れたものの前にtestを入れ直す、とかすれば
最後かどうかの枝分かれ無しにできることはできるね。
>>455
じゃあなんで2chは未だにframeしてるのかな?
459Name_Not_Found:2011/02/07(月) 10:04:19 ID:???
>>457-458
ありがとうございます。
そんなに面倒なことしないといけないんですね。
jQueryなどの内部でもそういう風にしてるのでしょうかね。
ありがとうございました。
460Name_Not_Found:2011/02/07(月) 10:23:00 ID:???
>>458
じゃあなんでhtml5ではframe要素が廃止されたのかな?
461Name_Not_Found:2011/02/07(月) 11:19:09 ID:???
a要素にinnerHTMLって無理ですか?
未定義の実行時エラーってでるんだが。
462Name_Not_Found:2011/02/07(月) 12:02:00 ID:???
>>461
table要素に対して実行した時なら知ってるけど・・・
具体的なソース貼れる?
463Name_Not_Found:2011/02/07(月) 12:23:16 ID:???
>>462
ありがとうございます
色々試してみたら、特定の文字があるときだけ出るっぽいです。
未知の実行時エラーでした。未定義じゃなかったです。すいません。
464Name_Not_Found:2011/02/07(月) 12:27:04 ID:???
どうやらaタグの中にaタグを入れるとでるっぽいです。
なんとかします。ありがとうございました。
465Name_Not_Found:2011/02/07(月) 12:33:12 ID:???
aの子供にaはだめだからね
> 一、正しい(validな)HTMLとは何か知っており書ける者
466 ◆.NSAhz.k9c :2011/02/07(月) 12:49:49 ID:??? BE:1928709656-2BP(0)
はじめて書き込みます。
今、JavaScriptで簡単なアクションゲームを作ろうとしている厨房です。
以下ソースです。

<meta charset="UTF-8">
<table summary="Top" cellspacing="0" cellpadding="0" border="1" Height="200" width="200">
<caption>Top</caption>
<td valign="center">●
</td>
</table>


<table summary="Button" cellspacing="1" cellpadding="1" border="0" bgcolor="cddddd">
<caption>Button</caption>
<td valign="center">
<td><input type="button" value=" ↑ " onClick=""></td>
<td><input type="button" value=" ・ " onClick=""></td>
<td>  </td>
<td><input type="button" value=" ← " onClick=""></td>
<td><input type="button" value=" → " onClick=""></td>
</table>

上記の"↑"ボタンで"●"をジャンプさせたり、
"→"や"←"のボタンで"●"を移動させたいと思っているのですが、
onClick=""でやり方はありますでしょうか?
ご回答のほど宜しくお願いします。
467Name_Not_Found:2011/02/07(月) 12:51:10 ID:???
質問が抽象的すぎる。どこがわからんのか具体的にかけ。
468 ◆.NSAhz.k9c :2011/02/07(月) 12:54:00 ID:??? BE:1800128674-2BP(0)
ええと、ボタンをクリックして、物体を動かしたいということです。
ジャンプの場合は、上に跳んでから、下に落ちてくるのが望ましいです。
469Name_Not_Found:2011/02/07(月) 12:56:09 ID:???
aの中にa入れるとかジョークだろw
470Name_Not_Found:2011/02/07(月) 12:56:45 ID:???
物体なら動かせばいいじゃん

物体の動かし方がわからないの?理解度はどれくらい?
重力の法則とか大丈夫?
それ以前、オブジェクトの移動は普通にできるの?
471Name_Not_Found:2011/02/07(月) 12:58:40 ID:???
>>469
すいませんでした。

displayをblockにしてリンクをブロック全体に影響するようなaの中に、
色を変えた文字を書こうと思って、aタグを使ってしまいました。
fontタグで解決させました。

正しいHTMLをもっと勉強します。
472Name_Not_Found:2011/02/07(月) 12:58:44 ID:???
え?何?コードを代わりに書いてくれって事?w
473 ◆.NSAhz.k9c :2011/02/07(月) 13:05:07 ID:??? BE:514322742-2BP(0)
すみません。あまり分からないです。
←→の場合はボタンを押したら●が少し動くようながが良いです。
474Name_Not_Found:2011/02/07(月) 13:09:35 ID:???
丸投げ1丁はいりました^^
475Name_Not_Found:2011/02/07(月) 13:09:55 ID:???
jQuery使ったら楽だよ厨房でもできる
476Name_Not_Found:2011/02/07(月) 13:10:01 ID:???
>>452
positionを付けない。
477Name_Not_Found:2011/02/07(月) 13:12:15 ID:???
厨房がなんでこんな時間にいるの?
478Name_Not_Found:2011/02/07(月) 13:13:33 ID:???
>>473
それが君の具体的な質問か。
そんなんじゃ社会に出たらやっていけないぞ。

まずはjQueryでも触ってみなさい。
jQueryをそこそこ扱えるようになったらまた来なさい。
479 ◆.NSAhz.k9c :2011/02/07(月) 13:18:37 ID:??? BE:1800129247-2BP(0)
2ヶ月前にPCが壊れてしまって、ツールは使えません。
今はiPhoneのアプリでjsのテストをしています。
480Name_Not_Found:2011/02/07(月) 13:19:38 ID:???
jQueryはツールじゃない。ライブラリだ。
481 ◆.NSAhz.k9c :2011/02/07(月) 13:35:17 ID:??? BE:3085935168-2BP(0)
ダウンロードも出来ません;
482Name_Not_Found:2011/02/07(月) 13:39:52 ID:???
どうやってネット接続してんだ
483Name_Not_Found:2011/02/07(月) 13:43:50 ID:???
まず学校行け
484 ◆.NSAhz.k9c :2011/02/07(月) 13:50:28 ID:??? BE:1542967946-2BP(0)
壊れたというのはPCだけなので、回線は大丈夫です;
学校は早く終わりました。
485Name_Not_Found:2011/02/07(月) 14:08:00 ID:HJlT1jkC
>>484
みんな厳しいなw
とりあえず、なにがわからないのか
逆に何が分かるのかを書いてみようよ
486Name_Not_Found:2011/02/07(月) 14:10:14 ID:???
背伸びをせずコツコツ勉強してもらいたいんだよ
487 ◆.NSAhz.k9c :2011/02/07(月) 14:12:35 ID:??? BE:2893063695-2BP(0)
自己解決したかもしれません。

<!--Sample-->
<meta charset="UTF-8">
<script type="text/javascript">
<!--

function moveByLAYER(layName,offsetx,offsety){
  if(document.getElementById){             //e5,e6,n6,n7,m1,o6用
    var oj = document.getElementById(layName).style
    oj.left = ( parseInt(oj.left) + offsetx ) + 'px'
    oj.top  = ( parseInt(oj.top)  + offsety ) + 'px'
  }
  else if(document.all){                  //e4用
    document.all(layName).style.pixelLeft += offsetx
    document.all(layName).style.pixelTop  += offsety
  }
  else if(document.layers)                //n4用
    document.layers[layName].moveBy(offsetx,offsety)
}

488 ◆.NSAhz.k9c :2011/02/07(月) 14:14:00 ID:??? BE:1028645928-2BP(0)

  function moveLAYER(layName,x,y){
    if(document.getElementById){        //e5,e6,n6,n7,m1,o6,o7,s1用
        document.getElementById(layName).style.left = x
        document.getElementById(layName).style.top  = y
    } else if(document.all){            //e4用
        document.all(layName).style.pixelLeft = x
        document.all(layName).style.pixelTop  = y
    } else if(document.layers)          //n4用
        document.layers[layName].moveTo(x,y)
  }

//-->
</script>
489 ◆.NSAhz.k9c :2011/02/07(月) 14:15:31 ID:??? BE:4114579788-2BP(0)
<style type="text/css">
<!--

.posabs  { position:absolute }

           
#test1   { left:100px;
           top:180px;
           font-family:Osaka,Arial;
           font-size:12pt }

-->
</style>

<div style="position  : absolute  ;
            top       : 100px     ;
            left      : 120px     ;" id="test0">
  <img src=".gif">
</div>

<div class="posabs" id="test1">
 <center>
  <form>
   <input type="button" value="←" onclick="moveByLAYER('test0',-15,0)"><input type="button" value="→" onclick="moveByLAYER('test0',15,0)">
  </form>
 </center>
</div>

<!--/////////////////// End of Sample ///////////////////-->
490 ◆.NSAhz.k9c :2011/02/07(月) 14:17:26 ID:??? BE:3471676496-2BP(0)
>>485
ええと、物体をボタンで動かす所と、
物体を上に移動させてから、下に落ちてくる所です
491Name_Not_Found:2011/02/07(月) 14:18:12 ID:???
>>458
2chは過去の産物です。
492Name_Not_Found:2011/02/07(月) 16:36:26 ID:???
493Name_Not_Found:2011/02/07(月) 16:41:20 ID:???
急がば回れ
javascriptの事何にも解らないで付け焼刃のその場しのぎの情報で作ったとしても理解してないんだったら一つのモノを作るのは無理
何か初心者向けの本とか買ってそれからにするといいよ
494Name_Not_Found:2011/02/07(月) 16:43:20 ID:???
javascriptのゲーム用ライブラリってなかったっけ?
495Name_Not_Found:2011/02/07(月) 17:05:30 ID:???
akihabara
496Perl評論家:2011/02/07(月) 18:09:45 ID:A8rcpC2/
ブラウザ型で熱中できるゲームなんてあんまりねえから

お前らが個人用でブログにテトリスとかシューティングつくってもゴミだろ
最初からつくるなごみ

死んどけ
497Name_Not_Found:2011/02/07(月) 18:19:50 ID:HJlT1jkC
>>490
またえらい古いサンプルですな

とりあえず左右ボタンを押すとなぜ動くのかはわかってるんだよね?
下に落ちるのは、横に動くのと同様に下方向に移動させればいいよ

で、ボタンの操作なしで落ちるわけだから、時間のループ作ってそれを
繰り返せば、勝手に落ちていくようになる
1ループ毎に落下距離を大きくしていくと、自由落下っぽくなるよ
498Name_Not_Found:2011/02/07(月) 20:51:34 ID:tVSxd/q1
499Name_Not_Found:2011/02/07(月) 21:20:05 ID:???
ああいう丸投げして自分は努力しないクズはスルーでいいよ
500Name_Not_Found:2011/02/07(月) 21:55:55 ID:???
レイヤーとか数年ぶりに見た気がする
501Name_Not_Found:2011/02/07(月) 22:23:10 ID:HJlT1jkC
丸投げは良くないけど、やってくれとも言ってないし
高校か大学生くらいで、全く初めてプログラムとか書いてて
なんて聞いて良いかすらわからんのではないのかね
502 ◆.NSAhz.k9c :2011/02/07(月) 22:35:39 ID:??? BE:1735839239-2BP(0)
まだまだですが一応少し出来たので貼ってみます。

<meta charset="UTF-8">
<script type="text/javascript">
<!--

function PlayerMove(layName,offsetx,offsety){
  if(document.getElementById){             //e5,e6,n6,n7,m1,o6用
    var oj = document.getElementById(layName).style
    oj.left = ( parseInt(oj.left) + offsetx ) + 'px'
    oj.top  = ( parseInt(oj.top)  + offsety ) + 'px'
  }
  else if(document.all){                  //e4用
    document.all(layName).style.pixelLeft += offsetx
  }
}
  function moveLAYER(layName,x,y){
    if(document.getElementById){        //e5,e6,n6,n7,m1,o6,o7,s1用
        document.getElementById(layName).style.left = x
    } else if(document.layers)          //n4用
        document.layers[layName].moveTo(x,y)
  }
//-->
</script>
<div style="position  : absolute  ;
       top  : 100px  ;
       left  : 120px  ;" id="test0">
  ∧_∧<br>
   <`Д´><br>
 彡|つ |つ
 (_(_)
</div>
503 ◆.NSAhz.k9c :2011/02/07(月) 22:36:26 ID:??? BE:1542967283-2BP(0)
<style type="text/css">
<!--

.button1  { position:absolute }

#test1   { left:10px;
           top:200px; }
-->
</style>

<div class="button1" id="test1">
<table summary="Button" cellspacing="1" cellpadding="1" border="0" bgcolor="cddddd">
<caption>Button</caption>
<td valign="center">
<td><input type="button" value=" ↑ " onClick=""></td>
<td><input type="button" value=" ・ " onClick=""></td>
<td>   </td>
<td><input type="button" value=" ← " onClick="PlayerMove('test0',-5,0)"></td>
<td><input type="button" value=" → " onClick="PlayerMove('test0',5,0)"></td>
</table></table>
504Name_Not_Found:2011/02/07(月) 23:08:15 ID:tVSxd/q1
>>502-503
似たようなコードを貼り続けるのなら、どこかにUPしてもらえないかね。
http://jsbin.com/uhipi4/1
505Name_Not_Found:2011/02/08(火) 00:00:12 ID:???
貼らなくていいからブログでやってくれ
506Name_Not_Found:2011/02/08(火) 08:15:59 ID:???
フォームにデータを入力して入力履歴を残すにはどうすればよいでしょうか?

PHPなどにデータを送って画面遷移したときは残るのですが、
あるボタンを押してjavascriptで新しいウィンドウを立ち上げるときなどは
入力履歴が残らなくて、ちょっと不便を感じています。
507Name_Not_Found:2011/02/08(火) 08:35:55 ID:???
一瞬「新しいウィンドウ立ち上げ画面」に遷移して、それから窓を
開くとともに元の画面に遷移して戻ればいいんじゃないの。
508Name_Not_Found:2011/02/08(火) 08:44:14 ID:???
ありがとうございます。

もともともとの画面は色々データを読み込んでいるので、
あまりページを更新ししたくないんです。

何もページ遷移せずに、フォームに入力履歴を残したいんです。
やはり厳しいですかね?
509 ◆.NSAhz.k9c :2011/02/08(火) 09:45:21 ID:??? BE:771483762-2BP(0)
>>504
すいません知りませんでした;
ありがとうございます。
510Name_Not_Found:2011/02/08(火) 12:03:25 ID:???
履歴はプライバシ情報だからJavaScritpからのアクセスは厳重に
制約されている。だから履歴を追加するとしたらページを実際に
遷移するしかない。残って欲しい情報が何と何か正確に分かって
いるのなら、それらを別窓などを使って保存しつつ2回遷移して
復元するのでいいと思ったが、まあ面倒ならあきらめるんじゃない?
511Name_Not_Found:2011/02/08(火) 12:56:53 ID:???
オートコンプリートのことなら、onsubmitで動作させれば残るんじゃないの
512Name_Not_Found:2011/02/08(火) 13:31:49 ID:???
そうなんだ! どのブラウザでもOKですか?
513Name_Not_Found:2011/02/08(火) 13:54:34 ID:???
面倒くさいからクッキーにでも残しておけば?
514Name_Not_Found:2011/02/08(火) 14:27:04 ID:???
localStrage使えば良いじゃん・・・
515Name_Not_Found:2011/02/08(火) 15:02:01 ID:???
またバカが来た
516Name_Not_Found:2011/02/08(火) 15:11:35 ID:rpv/gD18
feedの日付表示形式を2011/2/7 → 2011/02/07 に変更したいのですが、教えて頂けないでしょうか?



//APIを読み込む
google.load("feeds", "1");

//初期関数
function initialize(){

//読み込むフィードを設定する
var mynow = new Date();
var q = mynow.getMonth(); //月を取得
var q2 = mynow.getDate(); //日にちを取得
var q3 = mynow.getHours(); //時間を取得
var q4 = mynow.getMinutes(); //分を取得
var q5 = mynow.getSeconds();//秒を取得
var query = q+"0"+q2+"0"+q3+"0"+q4+"0"+q5; //月日時間
var feedurl = new Array("http://feeds.fc2.com/fc2/xml?host=**********"+"&"+query);
var feed = new google.feeds.Feed(feedurl);

≪省略≫
var date = new Date(entry.publishedDate);

≪省略≫

<th>'+ date.getFullYear()+"年"+(date.getMonth()+1)+"月"+date.getDate()+"日"+'</th>
517516:2011/02/08(火) 15:13:19 ID:rpv/gD18
2011年2月7日→2011年02月07日 の間違いでした。すみません・・・(恐縮
518Name_Not_Found:2011/02/08(火) 15:14:24 ID:???
一桁のときは前に0つけたらいいだけじゃないか
519Name_Not_Found:2011/02/08(火) 15:21:06 ID:???
queryの処理が無駄だなMath.random()でいい
520Name_Not_Found:2011/02/08(火) 15:32:29 ID:???
if文でできるじゃないか
521Name_Not_Found:2011/02/08(火) 15:35:18 ID:???
(date.getMonth()+1).replace(/(^[1-9]$)/,'0$1')
(date.getDate()+1).replace(/(^[1-9]$)/,'0$1')
522Name_Not_Found:2011/02/08(火) 16:04:27 ID:???
aとbに同じ関数を適用したいのですが、
a.hoge();
b.hoge();
といった感じではなくいっぺんにやる方法はないでしょうか?
[a,b].hoge();
とかしてみたのですがだめでした。
523Name_Not_Found:2011/02/08(火) 16:10:15 ID:???
配列にいれてぶんまわすか、可変引数にでもしたらどうだい
524Name_Not_Found:2011/02/08(火) 16:13:40 ID:RaXqJGLK
>>522
var hoge = function () { alert('hoge');}, a = {hoge: hoge}, b = {hoge: hoge};
[a, b].forEach(function (element) { element.hoge(); });
525Name_Not_Found:2011/02/08(火) 16:18:01 ID:???
forEachが一番楽だな
526Name_Not_Found:2011/02/08(火) 18:37:26 ID:4qraLkTG
>>521
正規表現を使わずに

(date.getMonth + 101).toString().substr(-2);
(date.getDate + 100).toString().substr(-2);

とかどうだろう
527Name_Not_Found:2011/02/08(火) 19:11:52 ID:???
>>511
onsubmitでは記録されませんでした。

他の方がいってるクッキーを使うというのはどういうことでしょうか?
クッキーに値を記録することはできますが、
それをどうやってフォームの入力履歴欄に表示するのでしょうか?
528Name_Not_Found:2011/02/08(火) 19:15:19 ID:6nMsARv9
http://ja.wikipedia.org/wiki/XMLHttpRequest#.E3.82.B9.E3.83.88.E3.83.AA.E3.83.BC.E3.83.9F.E3.83.B3.E3.82.B0
> Opera 以外のブラウザでは、ブラウザ側でデータを受け取るたびに onreadystatechange が発生するが、
> Opera 11.0 では発生しないので、定期的にresponseTextの内容を見に行く必要がある。

このOperaの不具合を解消してくれるライブラリ等はないでしょうか
529Name_Not_Found:2011/02/08(火) 19:21:00 ID:???
operaはきれ
530Name_Not_Found:2011/02/08(火) 19:23:48 ID:???
ライブラリっつうか定期的に見に行けばいいじゃん
531Name_Not_Found:2011/02/08(火) 19:34:46 ID:RaXqJGLK
>>527
例えば、JavaScript で入力履歴が記録されている Cookie を読み出して、サジェストするとか。
532531:2011/02/08(火) 19:39:01 ID:RaXqJGLK
533Name_Not_Found:2011/02/08(火) 22:57:29 ID:pn+QH8bs
指定の要素内にマウスがあるかどうかをチェックするにはどうしたらいいんでしょうか?
534Name_Not_Found:2011/02/08(火) 23:13:12 ID:???
mouseoverじゃいかんの?
535Name_Not_Found:2011/02/09(水) 01:09:01 ID:???
http://gihyo.jp/dev/serial/01/crossbrowser-javascript/0004?page=2
これ読んでて気になったんですが、
FunctionExpression と FunctionDeclarationの違いって、評価されるタイミングだけなんでしょうか?

あと (function(arg){・・・})(x); みたいな書き方のメリットってなんなんでしょうか?
グローバルとか汚さないようにしたいだけ?
536Name_Not_Found:2011/02/09(水) 01:10:05 ID:???
a要素にmouseoverのイベントを設定しました。

evt.targetまたはevent.srcElementでそのオブジェクトを取得しようとしたところ、
なぜかオブジェクトではなく、hrefの値を返してきたのです。

a要素にイベントを設定した場合では、これは通常の動作なのでしょうか?
もしそうであれば、a要素にイベントを設定した場合、
どのa要素で発生したものかを調べる方法を教えて下さい。
537Name_Not_Found:2011/02/09(水) 01:30:44 ID:???
tagNameプロパティ見ればAって出る
538Name_Not_Found:2011/02/09(水) 01:47:29 ID:???
evt.targetを取得した時点でhrefの値が入ってしまっているので、
tagNameプロパティは見れません。

オブジェクトではないとエラーになります。
539Name_Not_Found:2011/02/09(水) 06:06:08 ID:???
すみません、親要素と子要素って何なんでしょうか?
540Name_Not_Found:2011/02/09(水) 06:18:41 ID:4JU7sUXN
少しはググれよなあ、ふんとにもう!
htmlの要素って階層(入れ子)構造になってるでしょ
で、ある要素から見て、1つ上層の要素が親要素、1つ下層の要素が小要素だよ
541Name_Not_Found:2011/02/09(水) 06:42:37 ID:???
いやぁ、ググっても皆知ってる事前提に話しちゃってて
ありがとだっぴ!
542Name_Not_Found:2011/02/09(水) 09:13:40 ID:???
>>535
よくわかってないので自分も知りたいところですが
使い捨ての関数は、いちいち命名して別の場所から呼び出すより
(function(arg){・・・})(x); と無名で即時実行したほうがよいかなと

document.write(cube(5));
var cube='foo';
function cube(x){return x*x*x;}
document.write(cube);

関数宣言はこういう書き方もできてしまうあたり個人的には微妙
543Name_Not_Found:2011/02/09(水) 09:27:38 ID:???
>>538
> evt.targetを取得した時点でhrefの値が入ってしまっているので、

再現するコードと環境は?
544Name_Not_Found:2011/02/09(水) 10:03:37 ID:???
>>538 別に問題ないけどー。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head>
<title>sample</title>
</head><body>
<div><a href="http://www.example.com"
onmouseover="alert((event.target||event.srcElement).tagName);return false">
test</a></div>
</body></html>
545Name_Not_Found:2011/02/09(水) 10:11:56 ID:???
>>543-544
ありがとうございます。
今コード用意できないんで、帰ったらまた再現コード作って貼りにきます。

>>544
たしかにこれだと大丈夫ですね。
イベントはaddEventListenerかattachEventで設定してるんですけどね。
546516:2011/02/09(水) 10:21:26 ID:CnM8i7Jn
>>521
教えて頂いた通りに修正したつもりでしたが、エラーしてしまいます
お手数をお掛けしてすみません。。。

<th>'+ date.getFullYear()+"年"+(date.getMonth()+1).replace(/(^[1-9]$)/,'0$1') +"月"+(date.getDate()+1).replace(/(^[1-9]$)/,'0$1') +"日"+'</th>
547Name_Not_Found:2011/02/09(水) 11:11:11 ID:g1aPuIMg
ドメインAとドメインBの2つのサイトを持っています
ドメインAからドメインBのページをiframeで読み込んでCSSを適用することは可能でしょうか?
548Name_Not_Found:2011/02/09(水) 11:16:30 ID:???
クリックジャッキング乙でございますぅ!
549Name_Not_Found:2011/02/09(水) 11:18:11 ID:???
違ったw
550Name_Not_Found:2011/02/09(水) 11:42:46 ID:???
すみません、正規表現で
/[\<img].+[\/\>]/gi
を使用してimgタグを抽出したいのですが、一緒に<br>タグも抽出されてしまいます。この正規表現の指定方法が悪いのでしょうか?
ご教授のほどよろしくお願いします。
551Name_Not_Found:2011/02/09(水) 11:44:06 ID:???
× .+
● .*?
552Name_Not_Found:2011/02/09(水) 11:50:23 ID:???
/<img[^>]+>/ig
これでどうだろう
553Name_Not_Found:2011/02/09(水) 11:54:19 ID:???
http://example.com/#test aaa
空白を含んだハッシュが取得できません
554Name_Not_Found:2011/02/09(水) 12:00:22 ID:???
>>551
なんとも早いレスありがとうございます!
ですが、ご教授いただいた通り
/[\<img].+[\/\>]/gi

/[\<img].*?[\/\>]/gi
に変更した所、まだ<br>タグに反応している他、imgタグも区切られて配列に入れられてしまいます。
という事は、正規表現以外の所が良くないのでしょうか?
申し訳ありません。

>>552
なんと…期待通りの結果が出ました!
本当にありがとうございます!
これを元に勉強し直したいと思います。

>>551,>>552
お二方、ありがとうございました!
555Name_Not_Found:2011/02/09(水) 12:06:22 ID:???
>>553
何がしたいの?

>>554
[^>]+がミソ。
>以外の文字が1つ以上あるっていう意味だから、
imgタグの最後の>までがマッチするってわけ。
556Name_Not_Found:2011/02/09(水) 12:12:26 ID:???
ハッシュを取得したいのです
#aaa
#test
とかは取れるんですが
#aaa bbb
#test ggg
みたいに風伯を含んでるものは取れません

alert(location.hash);
557Name_Not_Found:2011/02/09(水) 12:15:17 ID:???
>>555
なるほど!
やはり正規表現は考え方が複雑ですねぇ…
しかし、何故 /[\<img].+[\/\>]/gi で<br>まで引っかかるのか不思議です。
ただ単に正規表現を理解できてないだけなんでしょうけどw
解説までありがとうございます!
558Name_Not_Found:2011/02/09(水) 12:19:09 ID:???
>>556
これでどう?
alert("http://example.com/#test aaa".replace(/https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%]+\/(#[a-z_0-9]+)/i,"$1"));
559Name_Not_Found:2011/02/09(水) 12:20:27 ID:???
>>557
.+だと<br>も対象に入っちゃうからだと思いますが。
560Name_Not_Found:2011/02/09(水) 12:25:04 ID:???
何回も書くけど、個人的に正規表現はマッチさせるというよりかは、
他のものをマッチさせないって考えて書いた方がうまくいく気がする。
561Name_Not_Found:2011/02/09(水) 12:29:01 ID:???
>>559
/[\<img].+[\/\>]/gi

"<img"の後に何でもいいから文字があり、"/>"で終わっているモノのみ
ではないのですね…
考え方がよくわからない…これは一から勉強し直しですね。
そもそも\を入れる必要も無かった事にびっくりですw
ありがとうございます!
562Name_Not_Found:2011/02/09(水) 12:31:59 ID:???
>>560
おお、よくある間違いなんですね。
できれば自力で解決したかったので過去ログを見ていませんでした、申し訳ないです…
なるほど、その考え方で一度考えてみます。
ありがとうございます!
563Name_Not_Found:2011/02/09(水) 15:07:22 ID:???
>>556
もともとhash部分に空白を含むことはできない。空白を含むならそれは
validでないURIだから取れなくて当り前。
564Name_Not_Found:2011/02/09(水) 18:50:21 ID:rXF6mPzT
>>535
> FunctionExpression と FunctionDeclarationの違いって、評価されるタイミングだけなんでしょうか?
そのページの解説は「Function#name に違いがあるので、FunctionDeclaration を使用した方がよい」と読めるが…。
付け加えると、Function#toString, Function#valueOf の値にも違いが出るはず。

> あと (function(arg){・・・})(x); みたいな書き方のメリットってなんなんでしょうか?
基本的に匿名関数を使う理由は1回しか呼び出す必要がないから。
クリティカルな答えが欲しいなら、コードを書いてくれ。
565Name_Not_Found:2011/02/09(水) 18:56:53 ID:rXF6mPzT
>>556
正常に取得できるようだが…。パーセントエンコードしてないだけかな?
http://jsbin.com/irowe3/3#a%20b
566Name_Not_Found:2011/02/09(水) 19:02:07 ID:???
>>535
評価された関数式は生成オブジェクトへアクセスするための参照を返す。
関数宣言は生成オブジェクトへアクセスするための参照を宣言時に指定した識別子に持たせる。
互いのオブジェクト生成規則からすれば当然の振る舞いである。

> (function(arg){・・・})(x);

よくわからん。自己管理できるくらいのちっぽけなプログラムなら、グローバルに置いとけばいいと思うけどね。
それなりに意味のあるクロージャを作らないと、見ていてイタい。
567Name_Not_Found:2011/02/09(水) 19:56:37 ID:???
は?
568Name_Not_Found:2011/02/09(水) 21:08:12 ID:???
自分のソースが質の高い人間にイタがられてると思うとゾクゾクするな・・・
569Name_Not_Found:2011/02/09(水) 21:37:01 ID:???
alert("test")は三流

function _alert(str){alert(str)};_alert("test");は二流

さて、一流コードを書いていただけますか?
570564:2011/02/09(水) 21:39:55 ID:rXF6mPzT
一応、補足。
本来は FunctionExpression でも Identifier を付けられるが、IE の挙動がおかしいので使用者は少ない。
http://es5.github.com/#x13
571Name_Not_Found:2011/02/09(水) 21:42:06 ID:???
(function(arg){・・・})(x);

今時、こんな書き方はトリッキーでも何でもないじゃない。
寧ろ無名関数でラップするだけで、名前空間を汚染しないなら、それだけで価値あるんじゃないかしら。

他にも、return を使って、途中で実行を中止できたり、何かと便利だと思うわ。
572Name_Not_Found:2011/02/09(水) 21:53:40 ID:???
>>570
arguments.callee は strict mode で使用できないから、使う機会は増えるでしょうけどね。
573Name_Not_Found:2011/02/09(水) 23:15:49 ID:???
http://www5e.biglobe.ne.jp/access_r/hp/javascript/js_066.html
http://www5e.biglobe.ne.jp/access_r/hp/javascript/js_065.html
このスクリプトを使って、フレーム・インラインフレームのアドレスを表示するページを作りました。
しかしフレーム内が自サイト内のページ(リンク時にhttp//:を入力しないページ)である場合は
きちんとアドレスが表示されるのですが、他サイトの場合はボタンを押しても何も反応しません。

これは解決可能なのでしょうか?
574Name_Not_Found:2011/02/09(水) 23:53:11 ID:???
>>573
クロスドメイン制約
575573:2011/02/10(木) 00:22:11 ID:???
即答ありがとうございます。
回避方法を探してみましたが、phpを使う方法は、他サイト側のアドレスが固定していないといけないので、
サーフィンは不可能です。
何かいい方法はないでしょうか?
576Name_Not_Found:2011/02/10(木) 00:57:08 ID:???
http://www.pori2.net/js/location/5.html
インラインフレーム内のアドレス変更が、htmlでできないという意味が分かりません。
普通にできると思うのですが。
577Name_Not_Found:2011/02/10(木) 01:19:08 ID:???
優しく教えてあげるかそっとしておきましょう
578Name_Not_Found:2011/02/10(木) 08:43:06 ID:???
>>573
あなたは >>3 FAQの一番最初の奴すら読んでないわけだ。
どっかよそへ行けば?
579Name_Not_Found:2011/02/10(木) 11:25:54 ID:???
PHPのcakephp,zend frameworkみたいな
javascript版フレームワークをおしえてください
用途はPHPが使えないサーバでフレームワークでサイト作りたいからです
SEOなどは気にしないので楽にサイト作れればかまわないのです
580Name_Not_Found:2011/02/10(木) 12:46:02 ID:???
>>579
サーバーサイドJavaScriptが使える環境はあるのか?
581Name_Not_Found:2011/02/10(木) 12:51:05 ID:???
クライアントサイドで動くものです
javascriptがオフの環境は見れなくてもかまいません
582Name_Not_Found:2011/02/10(木) 12:56:47 ID:???
クライアントサイドならフレームワークっつったらJqueryみたいな基本的にDOM操作の
ライブラリってことになるんだろうけど、フレームワークに何を求めてるんだろう?
583Name_Not_Found:2011/02/10(木) 13:56:30 ID:???
えっと、579でも書きましたが
ようはjavascriptだけでMVCがやりたいってことです
584Name_Not_Found:2011/02/10(木) 14:07:27 ID:???
>>583
クライアントサイドでは無理です。サーバサイドでやってください。
585Name_Not_Found:2011/02/10(木) 14:10:40 ID:???
開発効率上げるだけなら zen-coding が便利だけど毛色が違うか。
586Name_Not_Found:2011/02/10(木) 14:11:06 ID:???
クッキーにデータ保存したいってこと?
587Name_Not_Found:2011/02/10(木) 14:12:42 ID:???
ぐぐったらあったけど、詳細は知らない。

JavaScriptで実現するMVCフレームワーク「JavaScriptMVC」 | MOONGIFT | オープンソース・ソフトウェア紹介を中心としたITエンジニア/Webデザイナー向けブログ
http://www.moongift.jp/2008/07/javascriptmvc/
588Name_Not_Found:2011/02/10(木) 14:13:02 ID:???
ここで聞いたのが間違いでした
自分で開発して作ります
589Name_Not_Found:2011/02/10(木) 14:19:00 ID:???
>>584
ワラタwwwwwwwwwwww
MVCについて勉強してこいwwwwww
590Name_Not_Found:2011/02/10(木) 14:25:27 ID:???
煽ることに意義を見いだしている人がいるな
知っているなら回答してあげればいいのに
591Name_Not_Found:2011/02/10(木) 14:59:44 ID:???
今日一日悩んでいます…
Google Ajax Feed APIを使用して表示したhtmlを
JQueryを使って操作できないのでしょうか?

APIを使わず最初から記述しているhtmlをjQueryで操作できるのは確認しました。
APIを使用し吐き出したhtmlへのCSS適応も確認できましたが、
jQueryが一切適用できません。

これはそのまま操作できないと受け取ってよいでしょうか?
592Name_Not_Found:2011/02/10(木) 15:02:16 ID:???
質問が漠然としてて回答できない
593Name_Not_Found:2011/02/10(木) 15:07:48 ID:???
>>592
質問の意味が分からないJavaScript素人に聞いておりません
594Name_Not_Found:2011/02/10(木) 15:15:56 ID:???
>>591
シンプルに答えるなら「出来る」になるかと。
595Name_Not_Found:2011/02/10(木) 15:16:12 ID:???
申し訳ありません。どう簡略化したものか…
Google Ajax Feed Apiを使用したjsファイルで
htmlstr += ’<div class=”hide”>ホニャララ</div>’;
を入れて
container.innerHTML = htmlstr;
でhtml内
<div id=”feed”> </div>
に表示し、html内の
<button>ぷっしゅ</button>
をクリックした時に#hideのdisprayプロパティを
noneに変更するjQuery
$(document).ready(function(){
$(”button”).click(function(){
$(”div#hide”).css(”display”, ”none”);
});
});
を適用させたいのですが、適用できなかったのです。
長くなって申し訳ありません。
596Name_Not_Found:2011/02/10(木) 15:20:52 ID:???
> htmlstr += ’<div class=”hide”>ホニャララ</div>’;
> を入れて

htmlstr += ’<div class=”hide”>ホニャララ</div>’;
とhtml文をhtmlstrに入れて

文章力足らずですね…すみません。

>>594
できる…のですね?
ありがとうございます!
それだけわかれば、がんばれます。
さらに悩んでみます!
597Name_Not_Found:2011/02/10(木) 15:21:18 ID:???
hideがidじゃなくてclassなら#hideじゃなくて.hide
とりあえずこうでは
まだ動かないと思うが
598Name_Not_Found:2011/02/10(木) 15:24:16 ID:???
わかりにくいんだけどbuttonは最初から表示されてるのか?
599Name_Not_Found:2011/02/10(木) 15:29:24 ID:???
>>597
そうですね、最初はclassを使用していたのですがダメでした。

また、
feed > divや
feed divとセレクタ―の部分を変えてもダメでした。

一点、エンコードの違いが原因では…と疑っています。
html → SHIFT-JIS
feed js → UTF-8
jQuery js → UTF-8

>>598
本当にすみません、buttonはGoogle Ajax Feed Apiを記述したjsファイル
を使用し表示しているので、最初から…では無いです。
600Name_Not_Found:2011/02/10(木) 15:29:51 ID:???
>>595
API は全く関係ないので、簡略化したHTMLを書いてその中でテストしてみればいいと思う。
ここで質疑応答するならミニマムなコードを書いて http://jsbin.com/ にでもUPしてもらえると助かる。
601Name_Not_Found:2011/02/10(木) 15:31:59 ID:???
>>600

おお、こんな所もあるのですね!
度々申し訳ありません、まだ勉強し始めなので
簡略化するのに時間がかかると思いますが、簡略化し
そちらにUPしたいと思います。
ありがとうございます!
602500:2011/02/10(木) 15:32:11 ID:???
あ、ひょっとしてイベント定義が出来てないんじゃないか?
document.readyState === "complete" の後に feed が描画されたら上手くいかないはず。
603600:2011/02/10(木) 15:32:54 ID:???
すまん。>601 == >600 ね。
604Name_Not_Found:2011/02/10(木) 15:33:44 ID:???
clickをliveにしたら捗るよ
605600:2011/02/10(木) 15:36:18 ID:???
>602 == >600 だった。OTL

$(document).click(function (event) {
 var button = event.target;

 if (button.tagName !== 'BUTTON') return;

 $("#hide").css("display", "none");
});

これでどうだろう?
606Name_Not_Found:2011/02/10(木) 15:37:58 ID:???
読み込んだhtml表示

ここでscript処理
イベント設定

ボタン描画(イベント設定されてない)


みたいになってんじゃね?
まだ描画されてないbuttonにイベントは設定できない
607Name_Not_Found:2011/02/10(木) 15:52:42 ID:???
>>604さんのを見た瞬間跳ね回りました!
ああ、liveを忘れていました…
clickをliveに変更した所希望通りの動作をしてくれました!!
感謝感激雨霰です!

>>592->>606
の皆さん本当にありがとうございました!
皆さんに書き込んで頂いたコード等しっかり読み、
勉強させていただきます!

いつか他の方に手助けをできるようがんばります。
608Name_Not_Found:2011/02/11(金) 06:35:35 ID:???
<div id=test>



</div>

このdivの中身を削除というか消去したいのですが
var test = document.getElementById('test');
test.の後をどうしたらよいでしょうか?

test.innerHTML="";じゃなくてちゃんと消去するのがあればいいのですが
609Name_Not_Found:2011/02/11(金) 08:00:41 ID:???
>>608
childNodes
removeChild
610Name_Not_Found:2011/02/11(金) 10:18:23 ID:???
カラにするだけでいいなら

while (elem.firstChild) elem.removeChild(elem.firstChild);
611608:2011/02/11(金) 17:52:08 ID:???
あざっす!
その場合
test.removeChild(test);で良いでしょうか?
612Name_Not_Found:2011/02/11(金) 19:10:54 ID:???
ブックマークレット作ろうとしてるんですが

これを

javascript:(function(){
var url = location.href;
alert(url);
})()

こんな感じにすることってできないんですか

javascript:(function(){
var url = function() {
return location.href;
}
alert(url());
})()
613Name_Not_Found:2011/02/11(金) 19:18:58 ID:???
>>612
何がやりたいか説明してもらった方が勘違いがなくていいのだけど
そもそも何をしたいブックマークレットで、何でlocation.hrefを関数化したいの?
614Name_Not_Found:2011/02/11(金) 19:21:29 ID:???
>>611
せめてremoveChildの仕様を確認しろよ
https://developer.mozilla.org/ja/DOM/element.removeChild

自分自身を消そうとするとか、メソッド名から見て不可能に決まってんじゃないか
615Name_Not_Found:2011/02/11(金) 19:33:24 ID:???
>>613
内容はただのサンプルで、要は関数を使うことはできないのかという趣旨の質問です。
616Name_Not_Found:2011/02/11(金) 20:03:10 ID:???
$(function(){})ってjqueryとかで見るけどこれってどうなってるんですか?
617Name_Not_Found:2011/02/11(金) 20:05:28 ID:???
618Name_Not_Found:2011/02/11(金) 20:08:42 ID:???
>>616
jQueryオブジェクトを生成してる。
http://api.jquery.com/jQuery/
619618:2011/02/11(金) 20:10:21 ID:???
...ではなく、$(document).ready() のエイリアス。
http://api.jquery.com/jQuery/#jQuery3
620Name_Not_Found:2011/02/11(金) 20:24:40 ID:???
>>617
いやいや、すみません。
そんな高度な話をしているわけではないんです・・・

もう一度書き直しますけど、
こういうことはできないのかってことです。

javascript:(function(){

var hoge = function() {
  return 'piyo';
}
alert(hoge());

})();
621Name_Not_Found:2011/02/11(金) 20:26:06 ID:???
あ、自己解決しました
functionの閉じたあとに、;が足りなかっただけみたいです・・・
どうもお騒がせしました
622Name_Not_Found:2011/02/11(金) 20:30:33 ID:???
>>620-621
こういう書き方もあったり。

javascript:(function (hoge) {
 alert(hoge());
})(function () {
 return 'piyo';
});
623Name_Not_Found:2011/02/11(金) 20:30:44 ID:???
 一、トラブルを再現する最小限のサンプルを貼れる者
624Name_Not_Found:2011/02/11(金) 20:47:56 ID:???
>>615
できません
625Name_Not_Found:2011/02/11(金) 22:32:58 ID:???
読書感想文はもう結構
お前自身がどういった問題に直面し、どのように考え、どうやって解決したのかを語ってみろ
626Name_Not_Found:2011/02/11(金) 23:16:11 ID:???
アラートを出すクリップボードにコピーするボタンを実装しようと、有名なZeroClipboardを
利用したのですが、alertとあわせるとアラートが出なくて困っています。
具体的には 以下で出て欲しいのですが、
<input type="button" id="copybtn" onclick="alert('コピー完了')" >
ZeroClipboardを利用するとアラートが出なくなります。
わかる方がいらしゃれば何か良い方法をご教示頂ければと思います。
627Name_Not_Found:2011/02/12(土) 01:03:35 ID:???
> 一、トラブルを再現する最小限のサンプルを貼れる者
これを守る人少ないな…。
628Name_Not_Found:2011/02/12(土) 01:57:00 ID:???
今日は全員合格だったじゃん
629Name_Not_Found:2011/02/12(土) 08:11:21 ID:???
<div id = a>〜</div>
<div id = b>〜</div>
a =○○getelement〜
b =○○getelement〜
replaceChild(b,a);
でaをbに置換したあと、このbをaに戻す事ってできます?
aのHTMLを記述して入れるとかじゃなくてaのノードをまた入れるみたいな
630Name_Not_Found:2011/02/12(土) 08:39:54 ID:???
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head>
<title>sample</title>
<script type="text/javascript">
var a, b, c, toggle = true;
function init(){
a = document.getElementById("a"); a.parentNode.removeChild(a);
b = document.getElementById("b");
c = document.getElementById("c");
}
function chg() {
if(toggle) { c.replaceChild(a,b); } else { c.replaceChild(b,a); }
toggle = !toggle;
}
</script>
</head><body onload="init()">
<div id="a">A</div>
<blockquote id="c" style="background: yellow"><div id="b">B</div></blockquote>
<div><button onclick="chg()">change</button></div>
</body></html>
631Name_Not_Found:2011/02/12(土) 09:35:28 ID:xFFm3+yB
xmlでgetAttribute等を使うとき
htmlと同様に大文字小文字を問わず取得したい場合はどう書けばいいですか?
var attribute = node.getAttribute("HOGE") || node.getAttribute("HOGe") || node.getAttribute("HOge") || ...;
みたいなことを簡潔に書きたいです
632Name_Not_Found:2011/02/12(土) 09:38:38 ID:???
>>630
ありがとうございます!参考にしまチュ!
633Name_Not_Found:2011/02/12(土) 13:14:42 ID:???
>>631
HOGE と HOGe が別の要素であることをわかってる?
全てを hoge に統一したいなら toLowerCase() で。
634Name_Not_Found:2011/02/12(土) 13:17:19 ID:???
ごめん。要素じゃなくて属性だった。
635Name_Not_Found:2011/02/12(土) 13:20:48 ID:???
>>633
>>631は既に大文字小文字が入り混じってる環境で全て取得したいんじゃない?
それだと正規表現が良いかと
636633:2011/02/12(土) 13:29:34 ID:???
>>635
なるほど。Node#attributes を for 文で回せばいけるね。
637631:2011/02/12(土) 13:54:11 ID:???
どうもありがとうございます
正規表現とループでやってみます
638Name_Not_Found:2011/02/13(日) 06:40:07 ID:???
safariについて質問です
ブログを作成してるのですがインラインフレームとか
AのフレームからBのフレームを操作できないっていう話を見かけたのですが
http://nex.xrea.jp/?s=214
これって「インラインフレームからそのフレームが置いてある所の操作はあきらめてください」
ってレベルなんでしょうか?
フレームからフレームの操作はsafariやgooglechromeじゃ絶対に不可能なんでしょうか?
639Name_Not_Found:2011/02/13(日) 10:36:08 ID:???
>>638
Bのフレームに入れる要素はBのドキュメントのcreateElementなり
で作ったものでなければいけない、というのを守ってないだけに
見えるんだけど。作るところが書いてないから分からないが。
640Name_Not_Found:2011/02/13(日) 12:34:30 ID:???
比較的読みやすくて勉強になるお勧めライブラリ教えてもらえませんか?
641Name_Not_Found:2011/02/13(日) 13:51:10 ID:???
PHPの関数を使えるようにするphp.jsとか
http://phpjs.org/
642Name_Not_Found:2011/02/13(日) 14:23:54 ID:???
>>641
ライブラリの割に、配列をfor( in )で回すという、まともに動かなくなる可能性のある
非推奨の記述を多用しているのがちょいと気になりますね。
643Name_Not_Found:2011/02/13(日) 16:53:02 ID:???
>>638
確かグーグルって物凄いフレーム嫌いだからフレームから親フレームや別フレームの操作できないんじゃない?
試しに別フレーム操作するDOM作ってみたら見事に動作しなかった
644Name_Not_Found:2011/02/13(日) 16:54:03 ID:???
645Name_Not_Found:2011/02/13(日) 17:58:42 ID:???
>>644
jqueryって読みやすい方なのかな。
行数が多くて読むのしんどい気がするんだけど
646Name_Not_Found:2011/02/13(日) 18:08:00 ID:???
俺そんな熱心なjavaスクリプターじゃないからかもしれないけど
jqueryとかアジャックス使わないなぁ
慣れてない上新しいの学ぶのメンドクサくて読みづらい
647Name_Not_Found:2011/02/13(日) 19:32:14 ID:???
俺はJavaScriptは趣味でやってるたちだから自作じゃないライブラリは使わないとかスマホのメモ帳で作る(mjd)とか縛りいれてた
でも近頃ライブラリもかなり充実して当たり前になって来てたから自分でもあんまり縛っても意味ないかなってずっと思ってた
だけど、HTML5の流れが来て最近はその縛りが結構役に立ってると感じるよ

HTML5はいろんな事ができるから必然的にコードが長く奇抜になってくるけど
そこでメモ帳でとにかく短いコードを他作ライブラリ無しで書いてた事が生きた
今じゃあ(普通に書いてきた人)誰よりも短く読みにくくスマホでもハイパフォーマンスなコードがかける自身がある

だから言っておきたいけど、やっぱり趣味でやるんだったら人に頼ったりしないでひたすら我流でやるべき
そしたら自分に必要なレベルまでの力は必ず身につくから
エッセイ〈終〉
648Name_Not_Found:2011/02/13(日) 19:35:12 ID:???
かっけー!
649Name_Not_Found:2011/02/13(日) 19:36:35 ID:???
> 読みにくく
そこは自信をもたなくていい。恥ずべき点だから
650Name_Not_Found:2011/02/13(日) 19:49:48 ID:BQ1JFtM3
>>647
>ひたすら我流でやるべき
英語と同じで、下手でも、毎日使っていると、上手くなる。
通訳や機械翻訳は便利だが、英語は上達しない。
651Name_Not_Found:2011/02/13(日) 20:34:30 ID:???
>>646
熱心なJavaScripterじゃない人ほどjQuery使った方が楽になると思うよ。
記述量が半分以下になる。
652Name_Not_Found:2011/02/13(日) 21:22:07 ID:???
>>650
一定のレベルまではそれで良くても、ずっと「ひたすら我流」のままではいかんでしょ。
体系的にまとめられた知識と、一般に「良い習慣」とされる書き方は身に付けるべき。

一般的なプログラミングの作法を意識してないと、Per○忍者みたいな末路が待ってる。
653Name_Not_Found:2011/02/14(月) 00:34:03 ID:???
>>645
依存関係が強いから読みにくいと感じるのかも。始めに全体像が掴めれば、苦もなく読めると思う。

>>647
「我流でやったこと」よりも「ネイティブコードで書いてきたから生きた」って印象だな。
その点ではライブラリを読んでテクニックを盗むのは悪くないと思う。
jQuery を使ったコードはあまり好きじゃないけど、jquery.js のソースを読んだことは為になったから。
654Name_Not_Found:2011/02/14(月) 07:15:52 ID:???
>653
もちろんライブラリ読んだりするのは大事だと思うよ
ただどういう仕組みになってるかわからないうちに便利なものバンバン使うのは
本当の力が身につかないようでダメな気がしてね

とは言っても我流じゃあやっぱり学校で専門的に習って来た人よりは基礎力とか組み方のバラエティー少ないだろうから
最近はJAVAとか他の言語もいろいろやって柔軟に考えれるようつとめてる
655Name_Not_Found:2011/02/14(月) 18:23:00 ID:Ze1IK1xe
何行かある文字列から、特定の文字を含んだ行だけを取得したいのですが上手くいきません。

str.replace(/^(.*moji.*)$/gmi, '$1');

↑では駄目でした。
どなたかご教授お願いしますm(__)m
656Name_Not_Found:2011/02/14(月) 18:43:29 ID:???
>>655
function sample1 (string) { return string.split(/\r\n|[\n\r]/).filter(function (value) { return value.indexOf('moji') !== -1 }); }
function sample2 (string) { return string.match(/.*moji.*/g); }
console.log(sample1('..moji..\rfoo\nhoge\nmoji test'));
console.log(sample2('..moji..\rfoo\nhoge\nmoji test'));
657Name_Not_Found:2011/02/14(月) 21:09:44 ID:???
>>655
その置換は「マッチした箇所をそのままにする」という操作w

>>656
.(ドット)はキャリッジリターンにもマッチするよ。
658Name_Not_Found:2011/02/14(月) 23:53:52 ID:???
>>657
. は「LineTerminator を除く任意の文字」と認識していましたが、どの環境下での話でしょうか?
http://es5.github.com/#x15.10.2.8 (ES5)

ES3 でも「<LF>, <CR>, <LS>, <PS> を除く全て文字の集合」とあるようです。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-10_RegExp_Objects.html#section-15.10.2.8
http://bclary.com/2004/11/07/#a-15.10.2.8
659Name_Not_Found:2011/02/15(火) 03:34:54 ID:???
変数aaaにhttp://www〜〜〜
と、アドレスが入っていてiframeのsrcにaaaを入れて使いたいんですが
どうやったら出来ますか?
あれやこれやずっとやって一向に解決できない・・・
660655:2011/02/15(火) 12:03:54 ID:y3//typi
ありがとうございました
661Name_Not_Found:2011/02/15(火) 12:33:16 ID:???
>>659
srcに代入するだけで普通に更新されたけど
662Name_Not_Found:2011/02/15(火) 22:09:05 ID:???
my = my || {};

これってmyが空ならmyをオブジェクトに初期化するって
意味でいいのかな?
663Name_Not_Found:2011/02/15(火) 22:12:49 ID:???
ok
664Name_Not_Found:2011/02/15(火) 22:15:40 ID:Z6Y1RVCO
うん
「空ならオブジェクト」って理解するのもいいけど
||の演算を理解したほうがもっといいかも
665Name_Not_Found:2011/02/15(火) 22:17:33 ID:???
>>664
そういう演算子は検索できないから困るんだよね
666Name_Not_Found:2011/02/15(火) 22:22:26 ID:???
>>663>>664
ありがと

||演算子は、どちらか一方が真なら真を返すって
説明しか見当たらないんですよね
667Name_Not_Found:2011/02/15(火) 22:34:22 ID:???
1 || 0 // 1
0 || 2 // 1
false || 3 // 3
0 || "4" //"4"
(function(){alert(1); return false;})() || (function(){alert(2); return false;})() // alert(1) alert(2)
(function(){alert(1); return true;})() || (function(){alert(2); return false;})() // alert(1)
真のほうを評価して返す(偽だったら次のを確かめる・真なら次のは無視。)
代入式でない場合はa || bはif(!a) bと同じ。

逆にa && bはif (a) b。 aがtrueの時のみbが使われる。
668Name_Not_Found:2011/02/15(火) 22:38:32 ID:???
>0 || 2 // 1
669Name_Not_Found:2011/02/15(火) 22:39:31 ID:???
> 0 || 2 // 1
670Name_Not_Found:2011/02/15(火) 22:57:18 ID:???
ごめんw1234って途中で変えたけど、結果の部分変えてなかった。
671Name_Not_Found:2011/02/15(火) 23:40:33 ID:???
a = b || c
とかはPHPだと中身じゃなくてtrueかfalseしか返さないからそっちから先に覚えた人は迷うかも
自分は逆で迷った
672Name_Not_Found:2011/02/16(水) 00:07:57 ID:???
>>671
ちなみに、Firefoxをstrictモードで使うと、bが定義されていない場合は
定義されていない式を参照したという警告を吐く
673Name_Not_Found:2011/02/16(水) 00:19:34 ID:???
674Name_Not_Found:2011/02/16(水) 03:58:25 ID:???
>>672
strict mode でなくても ReferenceError になるような。
675Name_Not_Found:2011/02/16(水) 09:10:45 ID:???
最近、それに関する話を見た。
ttp://www1.ocn.ne.jp/~tabby/recent.html#JD2455605
エラーになったりならなかったりするパターンがあるらしい。
676Name_Not_Found:2011/02/16(水) 09:25:20 ID:???
var result;
// hoge is not declared
try {
result = (hoge != undefined)? 'defined': 'not defined';
} catch ( e ) {
result = 'error';
}
document.writeln('direct = '+result);
try {
result = (typeof hoge != 'undefined')? 'defined': 'not defined';
} catch ( e ) {
result = 'error';
}
document.writeln('typedef = '+result);
try {
result = defined(hoge)? 'defined': 'not defined';
} catch ( e ) {
result = 'error';
}
document.writeln('function = '+result);

こういう事かな。
複数の環境で、確かに typeof hoge と undefined の比較だとエラーが出ない。
677Name_Not_Found:2011/02/16(水) 10:22:25 ID:???
>>676
あー、3番目の関数を忘れた。
function defined(x) {
return (typeof x != 'undefined');
}
678Name_Not_Found:2011/02/16(水) 12:25:20 ID:2T3sIBK/
IE8 における XDomainRequest() が上手くいきません
以下の XHTML を開発者ツール(F12)を開いた状態で表示しましたが、エラーも表示されません
XMLHttpRequest() だとコンソールに example.html の内容が表示されます
XDomainRequest() はどのように記述すれば利用出来るのでしょうか


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<title>foobar</title>
</head>
<body>
<script type="text/ecmascript">
var req = new XDomainRequest();
req.open('GET', './example.html', true);
req.onreadystatechange = function(){
if(req.readyState == 4){
console.log(req.responseText);
}
}
req.send(null);
</script>
</body>
</html>
679Name_Not_Found:2011/02/16(水) 12:53:58 ID:???
>>678
レスポンスヘッダで XDomainRequestAllowed: 1 を返してる?
そもそも自分のドメインにアクセスするならXDomain要らないし・・・
680678:2011/02/16(水) 13:11:12 ID:2T3sIBK/
>>679
ありがとうございます。はい、XDomainRequestAllowed: 1 を返しています
readyState == 3 の状態で responseText を取得するために、XDomainRequest() を使いたいんです
681Name_Not_Found:2011/02/16(水) 13:44:15 ID:???
XDomainRequestにonreadystatechangeってあるの?
MSDNには記述が無いみたいだけど。
682678:2011/02/16(水) 18:43:35 ID:2T3sIBK/
>>681
すみません、クロスドメイン等の機能が加わっていること以外は XMLHttpRequest と同じだと思っていました
以下のように書き換えてみましたが、空文字列しか取得出来ません
どのように修正するのが正しいのでしょうか

var req = new XDomainRequest();
req.open('GET', './example.html');
setInterval(function(){
console.log(req.responseText);
}, 2000);
req.send(null);
683662:2011/02/16(水) 21:00:59 ID:???
ありがとうございます

・左辺、右辺の真の方の値を返す
・左辺が真なら右辺無視
よく理解できました

>>671
ご想像の通りPHPから来て混乱しました
684Name_Not_Found:2011/02/16(水) 22:34:44 ID:???
>>683
> ・左辺、右辺の真の方の値を返す
> ・左辺が真なら右辺無視

いや、違うって。>>673ちゃんと読んでやれよ。

・左の式を評価した値をBoolean型に変換
・trueなら左の評価値を返す
・falseなら右の評価値を返す

右辺が真かどうかなんて関係ないって。
685Name_Not_Found:2011/02/16(水) 22:52:34 ID:???
>>682
感での解答だけど多分こんな感じだと思う。試してはいないw

var req = new XDomainRequest();
req.open('GET', './example.html');
req.onprogress = function() {
console.log(req.responseText);
};
req.send(null);
686Name_Not_Found:2011/02/16(水) 22:54:55 ID:???
漢字・・・まぁいいか・・・・
687Name_Not_Found:2011/02/16(水) 23:05:54 ID:???
>>684理解しました。
>>673は難解すぎてミリ
688Name_Not_Found:2011/02/16(水) 23:23:48 ID:???
>>667
横だけど、すげー理解した!
今まで三項演算子とかは余裕だったんだけど、
この真偽値分岐が理解できなかったんだよね
ああ、マンモスすれぴぃぃぃぃぃいいいいぃぃぃいいい
689Name_Not_Found:2011/02/16(水) 23:38:25 ID:???
>>687

例えば
 z = x || y;
というのがあった場合、
 if (Boolean(x)) {z = x;} else {z = y;}
または
 z = Boolean(x) ? x : y;
というのと同じ結果になる。

これでx、yにブール型が入っていたら論理和となるし、
662のように書くことで「空ならデフォルト値を設定」にも使える。
 a || b || c || d
とさらに連結させたら、Boolean()に入れたときtrueとなるようなものを
a→b→c→dの順に探していって最初に見つかったものを返す。

つーことですね。
690673:2011/02/17(木) 00:53:04 ID:???
>>687
ToBoolean演算子は真偽型に型変換する関数のようなもの。Boolean() とほぼ同じ。
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/Boolean

if (Boolean(my) === true) {
 my = my;
} else {
 my = {};
}

my = my || hoge || {}; はこうなる。

if (Boolean(my) === true) {
 my = my;
} else if (Boolean(hoge) === true) {
 my = hoge;
} else {
 my = {};
}
691678:2011/02/17(木) 02:19:47 ID:FLBYMmDd
>>685
ありがとうございます
試してみましたが、コンソールに反応はありませんでした
692Name_Not_Found:2011/02/17(木) 11:37:54 ID:???
<html>
<head>
<title>タイトル</title>
</head><div id="tada">
<frameset cols="120,*" id="set">
<frame src="ita_test.html" id="kasu" /></div>
<frame src="sure_test.html">
</frameset>
<noframes>
</noframes>
</html>

この時document.getElementById('tada')の値はnullになって
<frameset cols="120,*" id="set">
<frame src="ita_test.html" />
の部分が取得できないのですがこのdivみたいにグループ化して取り出すことってできませんか?
693Name_Not_Found:2011/02/17(木) 12:39:37 ID:???
できません
694Name_Not_Found:2011/02/17(木) 12:49:26 ID:???
いやできる
695Name_Not_Found:2011/02/17(木) 12:56:05 ID:???
>>692
あのさあ、framesetとdivを一緒に書いたらいけないって知らない?
validなHTMLが分からん奴は来るなと >>1 に書いてあるでしょ。
696Name_Not_Found:2011/02/17(木) 13:02:07 ID:???
終了タグ足らんし要素が入れ違いになっとるぞw
697Name_Not_Found:2011/02/17(木) 13:14:22 ID:???
俺がこの中じゃ比較的javascriptやjqueryに精通してるかもしれないけど
divじゃなくて他の使えばいくらでも同じようなのできっぞ
698Name_Not_Found:2011/02/17(木) 13:53:20 ID:???
誰だよ
699Name_Not_Found:2011/02/17(木) 14:09:21 ID:???
>>697
とりあえず1つ貼ってみそ。
700Name_Not_Found:2011/02/17(木) 14:14:26 ID:???
>>692
> <frameset cols="120,*" id="set">
> <frame src="ita_test.html" />
> の部分が取得できない
日本語でおk
701Name_Not_Found:2011/02/17(木) 14:23:05 ID:???
>>699
bloc要素を使う
702Name_Not_Found:2011/02/17(木) 14:26:01 ID:???
いやいやいや
703Name_Not_Found:2011/02/17(木) 14:45:37 ID:???
>>701
だからblockとframeset共存できないんだってば。validなHTML分からん奴は
来るなって言ってるのに…とにかくクロスブラウザで動く例貼って見せられない
のなら2度と書き込まないで欲しいわ。
704Name_Not_Found:2011/02/17(木) 14:56:36 ID:???
>>695=>>703だとは思うけどコイツはココをどういう所だと思ってるんだろ・・・w
705Name_Not_Found:2011/02/17(木) 15:01:49 ID:???
HTMLマスター(笑)の集まりだとは思ってるだろうよ
706Name_Not_Found:2011/02/17(木) 15:08:42 ID:???
DOM操作できるためにはHTMLがinvalidでないことは当然前提でしょ。
だから >>1 に書かれているわけで。 >>1 の当該項目を削除したい
というのなら今その議論したら?洩れは反対だけど削除賛成な人は
どれだけいるのかな?
707Name_Not_Found:2011/02/17(木) 15:08:47 ID:???
何にしてもとにかくHTMLスレでやった方がいいんじゃないかな
708Name_Not_Found:2011/02/17(木) 15:10:07 ID:???
>>707
だから「取れない」理由がHTMLが正しくないからというので終了なら
それでいいんだけどね。正しくないHTMLを直さずに何とかするなんて
無理な話だからさ。
709Name_Not_Found:2011/02/17(木) 15:11:41 ID:???
>>708
>>692はJavaScriptの問題じゃないからHTMLスレに行けと言ったつもりだった
710Name_Not_Found:2011/02/17(木) 15:45:54 ID:???
JavaScriptの動作にHTMLがvalidかは関係ないだろ
doctypeとか省略していきなり<foo><fool></foo></fool>とか怪文書書いても暗黙的に<html><body>が生成されてちゃんと動作する
そうしたら>>1
>  一、正しい(validな)HTMLとは何か知っており書ける者
は何のためにあるのか分からんな誰か説明して
711Name_Not_Found:2011/02/17(木) 15:56:28 ID:???
何言ってんだこいつ
712Name_Not_Found:2011/02/17(木) 15:57:34 ID:???
>>710
構造が正しくないとDOMツリーがどういう状態になってるか判らんし、
例えば同じIDが2つあったらどうなるか実装によって変わったり、
いろいろ不都合があるでしょ。
713Name_Not_Found:2011/02/17(木) 16:13:32 ID:???
>>710
思いっきりパースエラーだよ
714Name_Not_Found:2011/02/17(木) 16:18:22 ID:???
>>711 分からないならレスするなよ

>>712
<foo>A<fool>B</foo>C</fool>だったら
<foo>  →  <foo></foo>
<foo>A  →  <foo>A</foo>
<foo>A<fool>  →  <foo>A<fool></fool></foo>
<foo>A<fool>B  →  <foo>A<fool>B</fool></foo>
<foo>A<fool>B</foo>  →  <foo>A<fool>B</fool></foo> // 一致しないタグで無視される
<foo>A<fool>B</foo>C  →  <foo>A<fool>B</fool>C</foo> // fooはまだ閉じてない
・<foo>A<fool>B</foo>C</fool>  →  <foo>A<fool>B</fool>C</foo> // 一致しないタグで無視される
・idが被った時は最初のidが返される
な感じでルールが決まってたと思う、どこに書いてたかは忘れたが。
>>713
何でパースエラー?XMLだと当然エラーですよw
715Name_Not_Found:2011/02/17(木) 16:19:50 ID:???
喧嘩腰か、また荒れんのか……
716Name_Not_Found:2011/02/17(木) 16:30:01 ID:???
仕様書読んで来い。あとここでやるな
717Name_Not_Found:2011/02/17(木) 16:34:57 ID:???
>>716
読みましたが
* 認識できない要素があった場合、ユーザエージェントは、内容のレンダリングを試みねばならない。
* 認識できない属性があった場合、ユーザエージェントは、当該属性定義全体(すなわち、属性とその値)を無視しなければならない。
* 認識できない属性値があった場合、ユーザエージェントは、デフォルトの属性値を用いねばならない。
* 宣言されていない実体があった場合、この実体を文字データとして扱わねばならない。

>  一、正しい(validな)HTMLとは何か知っており書ける者
これが必要な理由は何ですか
718Name_Not_Found:2011/02/17(木) 16:36:29 ID:???
わざわざvalidじゃないHTMLに固執する理由がわからん
719Name_Not_Found:2011/02/17(木) 16:43:04 ID:???
認識できないもなにも、開始タグと終了タグが入れ違ってるだろう

>これが必要な理由は何ですか
基礎がわかってないと発展は難しいから……か、1+1 と同じで説明するのは難しいな
720Name_Not_Found:2011/02/17(木) 16:45:44 ID:???
ぐだぐだ言ってねぇでお前は質問にだけ答えてりゃいいんだよ
721Name_Not_Found:2011/02/17(木) 16:50:00 ID:???
ここの住人なら反論してくると期待したのにがっかりだよ
doctypeから</html>まで丁寧に書いてくれる人もいるのに
validではないhtmlだからって頭の中でパースエラーを起こして答えれない回答者って
722Name_Not_Found:2011/02/17(木) 16:51:35 ID:???
もうわかったから
JavaScript質問スレでオレオレ言語の議論はやめてくれ
723Name_Not_Found:2011/02/17(木) 16:52:11 ID:???
結局、validを知らない奴の相手するのはとってもやってられんから
というのが理由かなー。で、HTML直したら別に問題なく取れるよね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html><head>
<title>sample</title>
<script type="text/javascript">
function test() { alert(document.documentElement.innerHTML); }
</script>
</head>
<frameset onload="test()"><frame src="t0.html"><frame src="t0.html">
<noframes></noframes></frameset>
</html>
724Name_Not_Found:2011/02/17(木) 16:52:17 ID:S18upD2+
>>717
>>  一、正しい(validな)HTMLとは何か知っており書ける者
>これが必要な理由は何ですか

お前みたいにわかってる奴はいいんだよ
だけど、わかってない人が質問者の場合、いちいちHTMLの事から説明しなきゃ
ならなくなっちゃうでしょ
それは面倒すぎるし、そもそもスレ違いじゃん

って言う理由だよ
言わせんな恥ずかしい
725Name_Not_Found:2011/02/17(木) 16:56:14 ID:???
それで結局、
>  一、正しい(validな)HTMLとは何か知っており書ける者
を削除することに賛成な人は何人?洩れ反対。

賛成: 0票 反対: 1票
726Name_Not_Found:2011/02/17(木) 16:59:47 ID:???
もういい
727Name_Not_Found:2011/02/17(木) 17:01:43 ID:???
>>703のような勘違いさんがいなくなってほしいだけ
賛成: 0票 反対: 2票
728Name_Not_Found:2011/02/17(木) 17:04:15 ID:???
何回スルー検定実施すりゃ気が済むんだよ
729Name_Not_Found:2011/02/17(木) 17:38:57 ID:???
賛成: 0票 反対: 12票
730Name_Not_Found:2011/02/17(木) 17:52:34 ID:???
それはそうと。いつもテンプレ論議が時間切れになるので、早めに始める
という話があって。いま730だから、今始めたらどうだろうか。テンプレの
ここを直したらとかあれば(前出たことの繰り返しでもいいので)どうぞ。
731Name_Not_Found:2011/02/17(木) 18:36:19 ID:???
<option value="n">n</option>
n=1〜30で最後の30をselectedにしたいのですが、

<select id="hoge">
<script>
for (var i = 1; i <= 30; i++) {
 if (i == 30) {
  documenr.writeln('<option value="'+i+'" selected="selected">'+i+'</option>');
  break;
 }
 documenr.writeln('<option value="'+i+'">'+i+'</option>');
}
</script>
</select>

みたいにちょっと不細工で効率も悪そうですがJavaScript内で完結させるか、

<select id="hoge">
<script>
for (var i = 1; i < 30; i++) {
 documenr.writeln('<option value="'+i+'">'+i+'</option>');
}
</script>
<option value="30" selected="selected">30</option>
</select>

とするのではどちらがいいと思いますか?
732Name_Not_Found:2011/02/17(木) 19:01:29 ID:???
前者
自分ならこうかな
var sel = document.createElement("select"),opt = document.createElement("option");
sel.setAttribute("id", "hoge");
for(var i = 1, _opt = null ; i <= 30; i ++){
_opt = opt.cloneNode(false);
_opt.appendChild(document.createTextNode(i));
_opt.setAttribute("value", i);
sel.appendChild(_opt);
}
_opt.setAttribute("selected", "");
document.body.appendChild(sel);
delete sel, opt, _opt, i;

733731:2011/02/17(木) 19:16:58 ID:???
>>732
コードまで出していただいてどうもありがとうございます。
これはまた本格的ですね。
見慣れないコードが含まれてるのでじっくり読ませて参考にさせていただきます。
734Name_Not_Found:2011/02/17(木) 20:28:47 ID:???
>>732
> delete sel, opt, _opt, i;

意味不明 & 何してるつもりなのか教えて
735Name_Not_Found:2011/02/17(木) 20:59:59 ID:???
名前空間の掃除じゃないのかな。
736Name_Not_Found:2011/02/17(木) 21:04:23 ID:???
何スレも前の話だけど>>2を修正する話はどうなった?
確か新テンプレも上がってたはずだけど
737Name_Not_Found:2011/02/18(金) 00:03:45 ID:???
発掘でいいんで修正案だれか貼ってください。具体例がないと検討できない。
738Name_Not_Found:2011/02/18(金) 02:21:03 ID:uPqkm/Gp
俺も1案出したはずなんだが思い出せん
結構前だよなー
739Name_Not_Found:2011/02/18(金) 02:31:58 ID:uPqkm/Gp
あった
http://hibari.2ch.net/test/read.cgi/hp/1264164226/
俺の書いたのこれだ

【質問を書く上で】

1)「何を、いつ、誰が、どこに、なぜ、どのように」動作させたいのかを
 簡潔に説明してください。ただ「動きません」ではわかりません。
 脳内おれおれ用語は混乱のもと。一般的な用語を使うようにしてください。

2)調べたこと・試したことを書いてください。
 OS、ブラウザ、バージョンを必ず明記しましょう。
 質問箇所(行数、エラー内容)を簡潔に。
 何のエラーかわからなければ、エラーメセージをコピペ。
 IE8、Firefox、SafariのJavaScriptコンソールを活用しよう。

3)説明が困難なら、ソースを貼ってください(要点を整理して)。
 コピペだけで動くと試しやすいです。
 エラーの場合は再現可能なように。
 長い場合(1レス以上)はアップロードする等工夫を。

4)閲覧者の迷惑になる質問は回答されません。
 別窓を多数開く、閉じる・戻る・クリックを妨害、画面占有、など。
 「分かんねえの?」と煽っても無駄です。

5)「初心者なので」「初心者だから」「初心者ですみません」とか
 書かない方が無難です。
 知らない、できない、わからない、まちがい、は誰にでもありますから。
740Name_Not_Found:2011/02/18(金) 03:05:33 ID:???
XML spryで東京を探し出すのは
<span spry:when="'{ado}'.search("東京") != -1">{zaza}</span>
で、{zaza}に結果が出ますが、("東京")にjavascriptの変数を入れたい場合はどうやって書けばいいのですか??
741740:2011/02/18(金) 03:28:57 ID:???
自決src=でいけました
742Name_Not_Found:2011/02/18(金) 06:02:14 ID:???
javascriptとcssで作成したwebサイトが
IE8とGoogle Chromeでは正常に表示され
Firefoxで表示されることなくフリーズしてしまいます。
このサイトで調べてみると時にエラーが見当たりません
http://www.javascriptlint.com/online_lint.php

いろいろ試しているとjavascriptの記述を消すと
Firefoxでも表示されます。
別のjavascriptとcssで制作したhtmlを開くと正常に
表示されます。同じよな症状の人はいますか?
743Name_Not_Found:2011/02/18(金) 08:10:37 ID:???
>>739
ありがとう。3) なんだけど、「説明が困難なら」というところが
ちょっと気になる。困ったちゃんはだいたい「自分はちゃんと説明
している」と勘違いしてるから。問題が起きる例を貼れともっと強く
言いたい感じがするけどいかが。
744Name_Not_Found:2011/02/18(金) 08:12:56 ID:???
>>742
もちろん、あなたのページにまずいとこがあるからに決まってます。
ぜひ、問題が起きる最小限の例を作って貼ってください。そしたら
見させていただきます(笑)。
745Name_Not_Found:2011/02/18(金) 08:25:40 ID:???
オライリージャパン[JavaScritp the GoodParts] 64P〜65Pに
下の例文が出てきますが、これ具体的にどんなふうに使えばいいんですかね?
----以下例文----
シンプルなイベント処理の機能を、他の任意のオブジェクトへ追加する関数。
onメソッド、fireメソッド、そしてプライベートなイベントレジストリを追加する。
var eventuality = function(that){
var registry = {};
that.fire = function(event){
var array, func, handler, i,
type = typeof event === 'string'?event : event.typel;
if(registry.hasOwnProperty(type)){
array = registry[type];
for(i =0; i < array.length; i += 1){
handler = array[i];
func = handler.method;
if(typeof func === 'string'){func = this[func];}
func.apply(this,handler.parameters || [event]);
}
}
return this;
};
that.on = function(type, method, parameters){
var handler = {method: method, parameters: parameters};
if(registry.hasOwnProperty(type)){registry[type].push(handler);
}else{registry[type] = handler}
return this;
};
return that;
};
eventuality();
任意のオブジェクトを引数にeventualityを呼び出すことで、それらのオブジェクトに
イベントハンドリングを行うメソッドを追加することができる。
746Perl忍者 ◆M5ZWRnXOj6 :2011/02/18(金) 09:28:01 ID:SPZ6dzM2
今さあ
ユーストリームのまとめのやつ作るみたいなんだけど
http://www.ustream.tv/user/garden5/videos

一覧作るときに、ここの右の番組名とか視聴数の要素をPerlで抽出して抜き出してページ生成するよな?

<li><a href="/recorded/12755917"><span class="img">
<img src="http://static-cdn2.ustream.tv/videopic/0/1/12/12755/12755917/1_6621815_12755917_120x90_b_1:3.jpg" alt="ヒエズナイト2
(ガーデン 2/17/11 11:26AM PST" />
</span><span>ヒエズナイト2
(ガーデン 2/17/11 11:26AM PST</span>

こういうのってjavascriptとかで抜き出せない?無理?今のjsならできる?
あとさあ、登録するURLちょっとしかないからDB使わないで、javascriptで手軽にテキストファイルにURL保存とかできる?
ページング処理はjqueryでできるみたいだけどさあ

そいつのパソコンのローカル環境で、できるようにさせたいんだけど

1,javascriptで正規表現使って、ジャケットや番組名などを更新できるか
2,テキストファイルで書き込み、読み込みのやりとりできるか教えて

教えてください
747Name_Not_Found:2011/02/18(金) 09:43:38 ID:???
荒らしに救いの手を伸べる神は存在しません
748Perl忍者 ◆M5ZWRnXOj6 :2011/02/18(金) 09:49:08 ID:SPZ6dzM2
はぁ・・・
749Perl忍者 ◆M5ZWRnXOj6 :2011/02/18(金) 09:50:20 ID:SPZ6dzM2
速く答えろカス
750Name_Not_Found:2011/02/18(金) 09:51:45 ID:???
早く消えろクズ
751Name_Not_Found:2011/02/18(金) 09:54:43 ID:???
ファイルの読み書きならFileAPIが仕様としてある
752Perl忍者 ◆M5ZWRnXOj6 :2011/02/18(金) 09:55:11 ID:SPZ6dzM2
FileAPIのほかになにある

1のやつおし得てください
753Name_Not_Found:2011/02/18(金) 10:21:54 ID:???
>>745

var obj = eventuality({});
obj.on('click', function(a, b) { alert(a + b); }, [1, 2]);
obj.on('click', function(e) { alert(e.type); });

<p onclick="obj.fire(event);">click!</p>

こういうことなんだろうけど、バグあんだろこれ

else {
// registry[type] = handler;
registry[type] = [];
registry[type][0] = handler;
}

そのまんま映したのか?お前のミスか?
754Perl忍者 ◆M5ZWRnXOj6 :2011/02/18(金) 10:29:31 ID:SPZ6dzM2
javascriptでURLから取得して読み込めるみたいなlwpみたいなやつある?
755745 :2011/02/18(金) 10:40:48 ID:???
>>753

なるほど!そんな感じに使えばいいのか
だいぶ悩んだんで助かりました!
ありがとうございます

>> registry[type] = handler;
確認したけど、やはりそう書いてありますね
756Perl忍者 ◆M5ZWRnXOj6 :2011/02/18(金) 10:46:56 ID:SPZ6dzM2
びっくりまーくウザいですよ?w
757Name_Not_Found:2011/02/18(金) 10:59:06 ID:???
>>752
document.getElementById('RecordedShowsBoxList');
758Perl忍者 ◆M5ZWRnXOj6 :2011/02/18(金) 11:03:35 ID:SPZ6dzM2
perlでやってみますからいいよw
759Name_Not_Found:2011/02/18(金) 11:17:33 ID:???
>>755
JavaScript: The Good Parts――「良いパーツ」によるベストプラクティス
ttp://www.oreilly.co.jp/books/9784873113913/

正誤表にもなかった

関連ファイルのch05.txtでは

>> registry[type] = [handler];

やっぱこうなっとる。
本当に誤植ならオライリー・ジャパンに報告すれ。粗品ぐらい送ってくるだろ。
760Name_Not_Found:2011/02/18(金) 11:24:01 ID:???
>758
俺もCGIはperl派だがperlとJSって敵対する関係じゃなくてむしろ仲間だろ
HTML5でJSがいろいろできるようになって基礎処理の部分ではwebにおいてperlは不必要になりつつあるが、オンライン処理系はむしろこれからどんどん必要になってくる
ちょっかい出しに来る暇があったらそれに役立つモジュールとかライブラリとか開発しろ
761Name_Not_Found:2011/02/18(金) 11:35:12 ID:???
抜き出すのは当該箇所を取り出してループで回りながらパターンで
マッチして必要な箇所を抜き出すんでしょ。Perlと同じだと思うけど。
ユーザにファイル保存さすのなら、保存したい情報を表示したページなり
別窓なりが現れて、それを自分で保存してねとかが簡単では。
762Name_Not_Found:2011/02/18(金) 11:42:23 ID:???
>>760
二行目が読解できない。
基礎処理ってのは何のことを言ってるの?
サーバサイドのこと?だとするとオンライン処理って部分はPerlとJSどっちを指してるのか・・・
763Name_Not_Found:2011/02/18(金) 12:49:39 ID:???
今までは単なる出力のために使われてたけどこれからはWebベースのアプリケーションってことでしょ
HTML5はHTML4と違って単なるHTMLの規格じゃない
764Name_Not_Found:2011/02/18(金) 13:06:29 ID:???
5のAPIに関してはこれが良くまとまってると思った
ttp://codezine.jp/article/detail/5653
765Name_Not_Found:2011/02/18(金) 13:07:10 ID:???
>>760
> HTML5でJSがいろいろできるようになって基礎処理の部分ではwebにおいてperlは不必要になりつつあるが
Perl のどんな技術が JavaScript で代替できるのか、具体的に書いてもらえると助かる。
HTML5 は革新的だと思うが、Perl を代替できる機能っていうのは思いつかない…。
766760:2011/02/18(金) 13:10:04 ID:???
今まではPC内ファイルのバイナリデータ一つJSで扱うのも
formでアップしてサーバー側でtxtとかに書き出したのをAjaxとかで取得したりしなくちゃいけなかったり、
Cookieじゃ足りないからサーバー側にデータをAjaxで保存したりと、
ちょっとJSで大きなことをしようと思ったらCGI側にいろいろ任せなきゃいけなかったけど
これからはオンラインゲームとか掲示板みたいなシステムに集中できるよねってこと
767765:2011/02/18(金) 13:16:39 ID:???
>>766
なるほど、それを基礎処理と称していたのか。理解した。
768Perl忍者 ◆M5ZWRnXOj6 :2011/02/18(金) 13:37:17 ID:SPZ6dzM2
#!/usr/bin/perl
use strict;
use utf8;
use LWP::Simple;
use HTTP::Request::Common;
use HTML::TagParser;
use Encode;
print "Content-type:text/html; charset=utf8\n\n";
my $url="http://www.ustream.tv/user/garden5/videos";
get($url) ? my $con=get($url) : print "Error\n";
my $list=[split /\n/,$con];
my $put;
foreach (@$list){
push @$put,$1 if($_=~/<a href=\"(\/recorded.*?)\">/)
}
print "$_\n" foreach (@$put);
769Name_Not_Found:2011/02/18(金) 13:40:56 ID:???
> get($url) ? my $con=get($url) : print "Error\n";
0点、perlスレへお帰り。
770mai:2011/02/18(金) 13:56:09 ID:8xpfuh2V
インターネットビジネス界のTOPランナー和佐大輔さんの考え方がわかります。
http://www.auction.co.jp/mem1/item/mem_itm_item.asp?LOT=1543435
771745 :2011/02/18(金) 14:19:29 ID:???
>>759
自分でも検証してみます
粗品かぁ
772Name_Not_Found:2011/02/18(金) 16:40:40 ID:???
なんかレス抜けてるけど忍者でも出たか?
773Name_Not_Found:2011/02/18(金) 17:59:24 ID:???
>>772
森へお帰り
774Name_Not_Found:2011/02/18(金) 19:04:41 ID:???
>>771
初版第1冊で確認したけど、打ち間違えでしょう
>>745のコードでいうと、

前から5行目
event.type が event.typel になってる
正 type = typeof event === 'string'?event : event.type;

後ろから6行目
handler を囲む角括弧が抜けてる
正 }else{registry[type] = [handler];}

最後の行
用例を書こうとしたんだと思うけど、パラメータなしの呼び出し eventuality(); いらない
775774:2011/02/18(金) 19:06:54 ID:???
オレ使用例(動作確認済み)。こんな感じで使うもんだと思います。

var obj = {};
// obj に on メソッドと fire メソッドを追加
eventuality(obj);

// on でイベント設定
// イベント名、メソッド、配列に入れたメソッドのパラメータ
obj.on("calc", function(a, b){alert(a+"+"+b+"="+ (a+b));}, [1, 2] );
obj.on("calc", function(a, b){alert(a+"-"+b+"="+ (a-b));}, [5, 3] );
obj.on("greeting", function(a){alert(a);}, ["aloha."] );

// すぐに実行されないのを確認するためalertを入れてます
// このalert閉じた後 fire で実行します
alert("do something else");

// fireでイベント発生
// "calc"イベントに設定したものだけが実行される
obj.fire("calc");
776Name_Not_Found:2011/02/18(金) 22:43:01 ID:???
お前らオライリーのjavascriptパターンは買ったのか?
777Name_Not_Found:2011/02/18(金) 23:32:34 ID:???
なんかPerl忍者っていうやつより、しょぼいねここ
768のソースなんて、適当に書いたやつだろ
そんな、変なコード載せなさそうだし
778Name_Not_Found:2011/02/18(金) 23:33:22 ID:???
> get($url) ? my $con=get($url) : print "Error\n";

Error処理が変だと思ったけど
たんなる、テストだとおもうよ 適当にErrorって出力させたくてさ
いちいち0点って言い方やめたほうがいいんじゃない?
779Name_Not_Found:2011/02/18(金) 23:36:18 ID:???
>>7789
たぶん、0点っていったやつはPerl忍者よりカスなんでしょうね
780Name_Not_Found:2011/02/18(金) 23:40:29 ID:???
スレタイ読めないやつよりマシだと思うぜ
781Name_Not_Found:2011/02/18(金) 23:41:46 ID:???
>>778
getってうrlが同じならキャッシュを返してくれるの?
782Name_Not_Found:2011/02/19(土) 00:00:06 ID:???
君たちじゃわからないんだよ>>781
783Name_Not_Found:2011/02/19(土) 00:00:19 ID:???
二度も取得するのが0点なんだろわかれよ
784Name_Not_Found:2011/02/19(土) 00:02:27 ID:???
死ね
785Name_Not_Found:2011/02/19(土) 00:20:12 ID:???
きっと print "Error" unless get($url);ってやりたかったんだよ
時間帯的に頭がボーっとしてそうだしね
786Name_Not_Found:2011/02/19(土) 00:22:29 ID:???
print "Error" unless $con=get($url);
787Name_Not_Found:2011/02/19(土) 00:24:13 ID:???
いつまでやってんだガキども死ね
788Name_Not_Found:2011/02/19(土) 00:31:40 ID:???
もうだめだ 名誉を傷付けられた
789Name_Not_Found:2011/02/19(土) 00:35:36 ID:???
0点っていうの謝れ
790Name_Not_Found:2011/02/19(土) 00:36:48 ID:???
Perl忍者はPerlスレへ行け。

Perlコーディング初心者質問スレ Part 62
http://hibari.2ch.net/test/read.cgi/php/1295170172/
791Name_Not_Found:2011/02/19(土) 00:37:47 ID:???
謝れ
792Name_Not_Found:2011/02/19(土) 00:37:59 ID:???
とても香ばしいスレですね
793Name_Not_Found:2011/02/19(土) 00:41:31 ID:???
以前この板で
「JavaScriptでprototype使うのは邪道で、危険なプログラミング」
みたいな事を言われて面食らったんですが
何故邪道なのか、分かる方居ますか?

「メモリ節約の為にもprototypeを活用すべき」
という話をあちこちで聞いて、そう思っていたのですが
何かデメリットがあるのでしょうか。

かなり前にどこかのスレでこの話をされて、理由を聞いたんですが
「話にならん、自分で調べろ」と言われ
調べても今ひとつわからず、放置して2年くらい経ちます。
794Name_Not_Found:2011/02/19(土) 00:43:21 ID:???
prototype使うなってプロトタイプベース言語全否定じゃん
795Name_Not_Found:2011/02/19(土) 00:44:29 ID:???
>>793
prototype汚染のことをいってるのかな。
該当URLを出せる?
796Name_Not_Found:2011/02/19(土) 00:48:13 ID:???
>>795
いや、もう大分前の事な上に何のスレだったかも忘れてしまって・・・
当時まだJavaScriptを使い始めたばかりの頃で
「オブジェクトにメソッドとか追加するにはprototypeを使えば良い」
知ったばかりにもかかわらず、そんな事を偉そうに書き込んだところ
>>793のような状況になったような感じです。

prototype汚染 でぐぐると色々出ますね。
for・・・inで列挙されるとか、まぁそれはそうですよね
797Name_Not_Found:2011/02/19(土) 00:59:24 ID:???
普通に使ってもいいと思うけどなー
複数人で開発するときに使うなら話し合ってドキュメント書いておけば問題ないしょ
798Name_Not_Found:2011/02/19(土) 01:07:01 ID:???
自分で作ったオブジェクトには、メモリ節約できるならprototypeは積極的に使っていいと思う。

それ以外は微妙。 ─── 俺は使っているけどね。
799793:2011/02/19(土) 01:11:00 ID:???
>>797-798
なるほど、既存のオブジェクトにprototypeで何かしら追加したうえに
それが複数人開発で、他の人が知らないとバグの原因に成る
という感じですかね。
多分この事だったんでしょうね。
800Name_Not_Found:2011/02/19(土) 01:11:10 ID:???
prototype拡張にも2通りあって、

・ユーザ定義のオブジェクトを拡張する
・ネイティブオブジェクトを拡張する

前者は気にしなくていいと思う。
後者は話し合いが必要かな。
特に Object.prototype や Array.prototype は注意しないと他の人の時間を食いつぶすことになる。
その辺、全部わかっている人ばかりなら問題ないと思うけどね。
801Name_Not_Found:2011/02/19(土) 02:31:58 ID:???
C言語みたいな感じで、Arrayを拡張した子クラスを作れませんか?
802Name_Not_Found:2011/02/19(土) 03:04:59 ID:???
C言語ってクラスあったっけ…?
803Name_Not_Found:2011/02/19(土) 03:41:59 ID:???
var MyArray = Array;
804Name_Not_Found:2011/02/19(土) 07:38:12 ID:l5LbRssE
>>739
1年も前だったかw
次スレも近いんで、>>743の意見を反映してちょっとリライト

【質問を書く上で】

1)「何を、いつ、誰が、どこに、なぜ、どのように」動作させたいのかを
 簡潔に説明してください。ただ「動きません」ではわかりません。
 脳内おれおれ用語は混乱のもと。一般的な用語を使うようにしてください。

2)調べたこと・試したことを書いてください。
 OS、ブラウザ、バージョンを必ず明記しましょう。
 質問箇所(行数、エラー内容)を簡潔に。
 何のエラーかわからなければ、エラーメセージをコピペ。
 各ブラウザのJSコンソールを活用しよう。

3)質問は、あなたが思っているほどうまく説明できていないことが多いです!
 要点を整理してソースを貼ってください(エラーは再現できるように)。
 1レスで収まらない場合は、アップロードしてください。
 http://jsbin.com/http://jsdo.it/ なども活用してください。

4)閲覧者の迷惑になる質問は回答されません。
 別窓を多数開く、閉じる・戻る・クリックを妨害、画面占有、など。
 「分かんねえの?」と煽っても無駄です。

5)「初心者なので」「初心者だから」「初心者ですみません」とか
 書かない方が無難です。
 知らない、できない、わからない、まちがい、は誰にでもありますから。
805Name_Not_Found:2011/02/19(土) 11:50:29 ID:???
>>803
拡張してないじゃん
806Name_Not_Found:2011/02/19(土) 13:54:29 ID:???
var myArray = {};
myArray.__proto__ = Array;
?
807Name_Not_Found:2011/02/19(土) 14:20:46 ID:???
>>804
よいんだけど、「そのまま貼って試せる、エラーが再現するソース」
という言い方でどうかな。現状だと動かない断片を貼られてもめるとか
心配じゃないですか?
808Name_Not_Found:2011/02/19(土) 14:43:42 ID:???
>>806
それだと、
var hoge = new myArray();
とかやってArrayで出来た書き方が出来ないんじゃないの?
809Name_Not_Found:2011/02/19(土) 14:46:13 ID:???
3)うまく説明できない時は、ソースを貼ると回答されやすいです。
 要点を整理して、エラーが再現するソースを貼ってください。
 1レスで収まらない場合は、アップロードしてください。
 http://jsbin.com/http://jsdo.it/ なども活用してください。

res739.replace(/(?=セージ)/, 'ッ')
810Name_Not_Found:2011/02/19(土) 14:54:29 ID:???
function myArray() {
  var self = Array.apply(null, arguments);
  self.__proto__ = myArray.prototype;
  return self;
}
myArray.prototype = {
  constructor: myArray,
  last: function last() { return this[this.length - 1]; }
};

var a = new myArray(1, 2, 3);
alert(a.last());
811Name_Not_Found:2011/02/19(土) 15:04:11 ID:???
>>810
おお、動いた ...と思ったけど
IE8では a.last() が「オブジェクトでサポートされていないプロパティまたはメソッドです。」
ってエラーになるね。
812Name_Not_Found:2011/02/19(土) 15:08:34 ID:???
1コ忘れてた。

function myArray() {
  var self = Array.apply(null, arguments);
  self.__proto__ = myArray.prototype;
  return self;
}
myArray.prototype = {
  __proto__: Array.prototype,
  constructor: myArray,
  last: function last() { return this[this.length - 1]; }
};

var a = new myArray(1, 2, 3);
alert(a.last());
alert(a.reverse());
alert(a.last());
813Name_Not_Found:2011/02/19(土) 15:10:05 ID:???
IEでは__proto__がサポートされてないはず?
814Name_Not_Found:2011/02/19(土) 15:10:40 ID:???
>>811
IE は __proto__ 使えないからね。9 以降は知らんけど
815745 :2011/02/19(土) 15:32:18 ID:???
>>774>>775
内間違いの箇所確認できました。失礼しました。

用例参考にさせてもらいます。
816Name_Not_Found:2011/02/19(土) 15:45:27 ID:???
>>801
function MyArray(){}
MyArray.prototype = new Array;
817816:2011/02/19(土) 15:57:03 ID:???
IE8 では動いた。

>>812
IE9 から Object.getPrototypeOf がサポートされる。
http://msdn.microsoft.com/en-us/library/ff877835%28v=vs.94%29.aspx
818Name_Not_Found:2011/02/19(土) 16:12:16 ID:???
>>817
そのコードもリンクも全然関係ないよ。
ちなみに Object.create でもちゃんとした配列オブジェクトは作れない。
Proxy.create で完全エミュレートは可能。
819816:2011/02/19(土) 16:28:50 ID:???
>>818
> そのコードもリンクも全然関係ないよ。
すまん。もう少し詳しく。

・IE9 は Object.getPrototypeOf をサポートしない
・>816 は >801 の要件を満たさない

こういう意味?
「>816 がコンストラクタを再現してない」ならわかるが…。

var a = new MyArray(1, 2, 3);
console.log(a.join(', ')); // ""
820Name_Not_Found:2011/02/19(土) 16:48:30 ID:???
JavaScriptライブラリで継承できるようにしてるのあるから
そのソース見てみればいいのでは?
でもC言語ってことは継承の話でないのかな?
821Name_Not_Found:2011/02/19(土) 17:39:56 ID:???
822Name_Not_Found:2011/02/19(土) 20:36:38.24 ID:FA12auiN
おれおれライブラリのArray
__proto__なしで書いた


function _Array(){
    var Wrap = this; this.arr = [];
    [].push.apply(this.arr,arguments);
    var Substance = this.arr;
    for(var i in this)(function(prop){
        if(Wrap[prop] instanceof Function)(function(name,method){
            Substance[name] = function(){
                return method.apply(Substance,arguments);
            }
        })(prop,Wrap[prop]);
    })(i);
    return this.arr;
};
823822:2011/02/19(土) 20:39:28.49 ID:FA12auiN
書いた当時に人に聞いて教えてもらったのをもとにして
そこに俺のへっぽこぶりが重なって、ちょっと変だなあ
824Name_Not_Found:2011/02/19(土) 22:10:15.02 ID:pkszutki
document.allの有無でIEとそれ以外を振り分けるやり方は
フィーチャーディテクション以前の古いやり方ですか?
今でもフィーチャーディテクションが使いにくい場合によく使われる手法ですか?
825Name_Not_Found:2011/02/19(土) 22:26:09.28 ID:???
>>824
今では使われない。
826824:2011/02/19(土) 22:27:19.55 ID:???
どうもありがとうございますm(_ _)m
827Name_Not_Found:2011/02/19(土) 22:29:32.59 ID:???
document.all の判定は

if (document.all) { ; } else { ; }



if ('all' in document) { ; } else { ; }

で全く違う。
828Name_Not_Found:2011/02/19(土) 22:37:35.66 ID:???
JavaScript初心者です。
オブジェクト指向で書くことを勉強中です。
ロールオーバーのスクリプトをいろんなサイトや書籍を参考に書いてみました。

ttp://jsdo.it/bla1/7qJx/read

諸先輩方のご意見伺えると幸いです。
よろしくお願いします。
829Name_Not_Found:2011/02/19(土) 22:49:52.05 ID:???
>>819
何がわからないのか分からない…。
>>816はコンストラクタもそうだけど、そもそも配列じゃないから
length の機能が抜けちゃってるし
Object.getPrototypeOf は話題にかすってもいないじゃないか。
830Perl忍者 ◆M5ZWRnXOj6 :2011/02/19(土) 23:12:33.20 ID:0Er2YwGM
プログラミング言語にレベルってないの?

ゲームみたいにあったらいいのに

Perlレベル10までしかないし

あれよりいいの考えようぜ Maxレベル75くらいね

Perl忍者lvl50 みたいなかっこいい
831Name_Not_Found:2011/02/19(土) 23:17:28.48 ID:???
レベル付けて欲しいならどうぞ
Perl忍者lvl1
832Perl忍者lvl1 ◆M5ZWRnXOj6 :2011/02/19(土) 23:23:09.01 ID:0Er2YwGM


今日から、人の質問に答えるごとにlvl1ずつあがりますね

経験値は2乗ずつになってくかんじです

マゾい仕様です

暴言をはくとカルマがさがりますね

悪ってつきます

いまはニュートラルです

がんばります
833Name_Not_Found:2011/02/19(土) 23:37:10.93 ID:???
>>828
JSでロールオーバーの是非とか実装はともかく、普通はこうじゃないか


function RolloverItem($elem) {
  this.$elem = $elem;
};
RolloverItem.prototype = {
  setEvent: function() {
    var that = this;
    this.$elem.bind('mouseover focus', function() {
      that.over();
    }).bind('mouseout blur', function() {
      that.off();
    });
  },
  over : function() {
    this.$elem.attr('src', this.$elem.attr('src').replace(state.off, state.on));
  },
  off : function() {
    this.$elem.attr('src', this.$elem.attr('src').replace(state.on, state.off));
  },
  preload : function() {
    $('<img>').attr('src', this.$elem.attr('src').replace(state.off, state.on));
  }
};
$('a img[src*="_off."]').each(function() {
  var ins = new RolloverItem($(this));
  ins.preload();
  ins.setEvent();
});
834Name_Not_Found:2011/02/19(土) 23:45:14.46 ID:???
>>833
レスありがとうございます。
はじめは示してもらったコードで書いていたのですが

ーJavaScriptのnewって本当にいらない子?ー
ttp://d.hatena.ne.jp/jdg/20090706/1246840565

この辺の話も気になって変則的になってしまいました。
thisを多用するのが何となく見た目がスマートじゃない感じがしたので
このようにしました。

機能的な面で違いがでますでしょうか?
835816:2011/02/20(日) 00:28:44.95 ID:???
>>829
ありがとう。
どうもいろいろと勘違いしていたようだ。勉強が必要だなー。
836Name_Not_Found:2011/02/20(日) 09:02:14.50 ID:???
ちょっとすれ違いかもしれないですが、すいません。

動的にDIV要素を作成して、画面上に出現させてるんですが、
スクロールした際にその要素を画面上に固定させることできますか。

スクロール量を足して移動するのではなくて、
背景画像をfixedにしてるような感じの状態にしたいのです。
837Name_Not_Found:2011/02/20(日) 09:39:37.26 ID:???
>>836
CSSの機能にposition: fixedというのがあるから。ただし古いIEは非対応。
838Name_Not_Found:2011/02/20(日) 09:52:45.14 ID:???
>>837
できました。ありがとうございました!
839Name_Not_Found:2011/02/20(日) 10:37:29.86 ID:h/cHkT0R
good parts の言う「newを使うな」って

var F = function(){
    this.prop = "value";
}

って関数があって
var f = new F();

ってすれば問題ないけど
var f = F();

ってすると、グローバルにpropっていう変数が出来ちゃうってこと?
そりゃあたりまえだし、そんなの杞憂だと思うんですが…

「レンガで頭をぶん殴ると死にます。だからレンガは使うな」って事ですよね?
ぶん殴らなきゃいいだけなのに

この考え方って主流になるの?
840Name_Not_Found:2011/02/20(日) 11:05:56.90 ID:???
開発の規模
841Name_Not_Found:2011/02/20(日) 11:12:19.24 ID:???
>>834
this がいらない代わりにメモリの無駄遣いになる。
var ins = RolloverItem($(this)); でも動くと思うけど…。
842Name_Not_Found:2011/02/20(日) 11:22:45.92 ID:???
>>839
レンガくらい自明ならよかったけどね
843Name_Not_Found:2011/02/20(日) 11:44:36.16 ID:???
F()の中でthisがglobal objectかどうか調べて
global objectなら警告だけ出して何もしないとか
どうだろうか。オブジェクトを作るところにnewが
使われているというのはコードを読むという点からは
好ましいことだと思う。
844Name_Not_Found:2011/02/20(日) 11:46:02.25 ID:???
別案
function F() {
if(this === window) { return new F(); }
...
}
845Name_Not_Found:2011/02/20(日) 11:49:04.59 ID:???
>>841
ありがとうございます。
オブジェクト指向というかコンストラクタからインスタンスをつくり、
プロパティやメソッドを継承させる方法に悩んでいます。
普通に
var Constructor = function(){
    this.hoge = XXX;
    this.huga = YYY;
}
Constructor.prototype = {
    ZZZ : function(){ ・・・ }
}
var instance = new Constructor();
のほうがいいのでしょうか?
今回はたまたま簡単なロールオーバーなのですが、
例えば膨大なデータを扱うアプリケーションだったりした場合には
どういったロジックで組み立てていけばいいのか苦慮しています。

$(function(){
    $("img.rollover").mouseover(function(){
        $(this).attr("src",$(this).attr("src").replace(state.off, state.on))
    }).mouseout(function(){
        $(this).attr("src",$(this).attr("src").replace(state.on, state.off));
    }).each(function(){
        $("<img>").attr("src",$(this).attr("src").replace(state.off, state.on))
    })
});

ロールオーバー程度ならこれだけですむのはわかるのですが、
結局は大規模開発以外、オブジェクト指向の組み立て方は必要ないのでしょうか?
846Name_Not_Found:2011/02/20(日) 13:26:35.15 ID:???
>>845
どっちでもいいよ
ひとつひとつ抽象化していったほうが複雑なアプリケーションを作りやすいってだけ。
847Name_Not_Found:2011/02/20(日) 13:46:18.93 ID:???
>>846
ありがとうございます。
アプリケーション開発時に、

 ・扱うデータの量や行う処理
 ・処理速度やメモリ効率
 ・のちに拡張していきやすいか
 ・バグやエラーをフィックスしやすいか

を勘案し、継承のさせ方も判断しなさいということでいいでしょうか?
848Name_Not_Found:2011/02/20(日) 13:57:04.14 ID:???
>>847
846 じゃないけど、最終的には後々時間が経ってそのコードを組んだことさえ忘れて再びそれを読む機会が出来たとき(あるいは同僚の誰かがそれを読んだとき)に理解できるか、だと思う。
どんな組み方をしてもいいんだよ。自分で理解できる自信があるなら。

その多寡は第三者である俺には判断できないが、俺なら>>845は抽象化しないで普通に書く。
このぐらいのサイズなら一目で全体を把握できるだろうからね。
849Name_Not_Found:2011/02/20(日) 14:18:55.73 ID:???
>>848
レスありがとうございます。
JavaScriptは他の言語に比べて縛りが弱く、いろんな表現ができるのが特長でもあり、
それが初心者である僕にとっては迷いが生じる元となっていました。

>>833さんはじめ、>>839さん?>>841さん、>>846さん、>>848さん
お時間を割いてご意見いただきありがとうございました。
850Name_Not_Found:2011/02/20(日) 18:20:39.55 ID:???
<div id="test1" style="height:3000px; overflow:auto;">
<div id="test2" style="height:4000px; border:2px solid black;">
aaa
</div>
</div>
<script type="text/javascript">
document.getElementById("test1").focus();
document.getElementById("test2").focus();
//--></script>

「↓↑」キーでbodyのスクロールバーじゃなくてtest1のスクロールバーが動くようにしたいです。
このソースのscriptでどうにかならないかなと思ったんですが、無理でした。
マウスホイールでスクロールしたり、内側を一回クリックすれば、内側が先に動くんですが、キーボードだけで動かすことは可能でしょうか?
onkeydownで↓↑を検知して移動じゃなくて、”内側を一回クリック”と同じことをjsでやりたいです。
851Name_Not_Found:2011/02/20(日) 18:57:06.57 ID:???
IE なら click メソッド、それ以外なら dispatchEvent してみれば。
意図した通りになるかどうかは知らんけど。
852Name_Not_Found:2011/02/20(日) 18:59:07.68 ID:???
>>850
ttp://archivist.incutio.com/viewlist/css-discuss/51475


<script type="text/javascript">
window.location.hash = '#test2';
//--></script>
853850:2011/02/20(日) 19:25:03.76 ID:???
>>851,852
レスサンクス。
実はIEはdocument.getElementById("test1").focus();で希望の動作しているのです。
chrome/firefoxで動かなくて・・・

hashのも試してみましたが、chromeでは動かなかったです。
854Name_Not_Found:2011/02/20(日) 19:40:09.73 ID:???
positionがabsoluteじゃないと、topやleftの値を取得しようとしても、
nullになっちゃうんですか?
855Name_Not_Found:2011/02/20(日) 20:03:29.28 ID:???
Firefox と Chrome で動いたけど、汚い・・・・。

<script type="text/javascript">
var test2 = document.getElementById("test2");
test2.style.position = "relative";
var btn = document.createElement("button");
btn.style.position = "absolute";
btn.style.opacity = 0;
test2.appendChild(btn);
btn.focus();
//--></script>

btn は remove できないし。
856Name_Not_Found:2011/02/20(日) 20:46:13.61 ID:???
>>855
できた!
たしかに美しくないけど、自分用だからいいかな。
ありがとう〜
857Perl忍者 ◆M5ZWRnXOj6 :2011/02/20(日) 22:26:25.49 ID:???
nooooooooooooooooooooooooooooooooobがたくさん集まってますね

Nooooooooooooooob消えろNoob
858Name_Not_Found:2011/02/20(日) 22:32:13.70 ID:???
>>832
> 暴言をはくとカルマがさがりますね
> 悪ってつきます
859Perl忍者 ◆M5ZWRnXOj6 :2011/02/20(日) 22:32:30.93 ID:???
>>856
おめえ女だろ?きえろカス
860Perl忍者lvl2(悪) ◆M5ZWRnXOj6 :2011/02/20(日) 22:37:16.65 ID:???
あと2回質問にこたえれば
レベル3だよ
861Name_Not_Found:2011/02/20(日) 22:40:05.78 ID:???
>>860
悪にもlvlをつけてくれ(ニュートラルに戻る目安になる)
862Name_Not_Found:2011/02/20(日) 22:40:54.57 ID:???
Perl忍者lvl-1(ナメクジ並)
863Name_Not_Found:2011/02/20(日) 22:45:08.99 ID:???
Perl忍者lvl2(悪lvl1)
864Name_Not_Found:2011/02/20(日) 22:47:10.80 ID:???
Perl忍者のレベルは、初心者以下のマイナスでいいよ。
865Name_Not_Found:2011/02/20(日) 22:54:37.17 ID:???
暴言を吐くだけでlvl(なぜか読めない)が上がるのはPerl忍者だけ
866Name_Not_Found:2011/02/20(日) 22:58:23.36 ID:0nV/2yZO
>>842
遅レスすまんこ

つまり、その関数が意図せぬ使い方をされる可能性を
考慮せよってこと、なんだよね?

広い意味ではわかるんだけど
実際それを説いているのがグローバル潔癖症の人なのが
すこし解せない感じです
867Name_Not_Found:2011/02/20(日) 23:05:11.72 ID:???
MasterというオブジェクトのprototypeにSlaveというオブジェクトを追加して
Slaveのprototypeにmethodというメソッドを追加する

この考え方に何か問題などありますでしょうか?
問題ない場合、以下のような感じで良いんでしょうか?

function Master(){}
Master.prototype.Slave = function(){}
Master.prototype.Slave.prototype.mesod = function(){}
868Name_Not_Found:2011/02/20(日) 23:33:21.60 ID:???
var master = new Master();
var slave = new master.Slave();
slave.method();
て使うならおk.
でもmasterの情報をslaveにも持たせたいんだよね?
Master.prototype.newSlave = function(n){this._slave[n]=〜}とか。
869867:2011/02/20(日) 23:39:41.43 ID:???
>>868
>でもmasterの情報をslaveにも持たせたいんだよね?
そうそう、そんなんです。
870 冒険の書【Lv=4,xxxP】 :2011/02/20(日) 23:50:37.90 ID:???
もうvar slave = new master.Slave(master);
で渡せばいいんじゃねw
871Name_Not_Found:2011/02/20(日) 23:53:05.79 ID:???
872867:2011/02/21(月) 00:30:54.62 ID:???
>>870-871
ありがとうございます。
明日試してみます
873Name_Not_Found:2011/02/21(月) 00:49:47.50 ID:???
var master = new Master();
var slave = new master.Slave();

この書き方にどうしても気持ち悪さを感じるんだが
874Name_Not_Found:2011/02/21(月) 00:54:04.87 ID:Y9eUT5JX
>>867
自分は以前はこんなふうに書いてまいした
function Master(){
var m = this;
this.slave = new Slave();
function Slave(){};
Slave.prototype.method = function(){
// Master は m で参照できる
}
}

最近はこのように渡しています
function Master(){
this.slave = new Slave(this);
}
function Slave(master){
this.master = master;
}
Slave.prototype.method = function(){
// Master は this.master で参照できる
}
875Name_Not_Found:2011/02/21(月) 00:58:06.38 ID:???
Function.prototypeをObjectから参照できて
逆もできるんですけど、これってどういうことでしょうか?

ちなみにObject.prototype←Arrayは参照できて
逆は出来ません
876Name_Not_Found:2011/02/21(月) 01:45:42.15 ID:???
>>875
参照できるというコードを晒してくれ
877Name_Not_Found:2011/02/21(月) 03:51:53.95 ID:???
>>876
例えば
Object.prototype.animal = 'cat';
alert(Function.animal)//cat

ObjectとFunctionを入れ替えても参照できる

で、
Array.prototype.animal = 'cat';
alert(Function.animal)//undefined
これは参照できなくて
ArrayとFunctionが逆なら参照できます

階層の上下が関係してるんですかね
878Name_Not_Found:2011/02/21(月) 04:01:31.54 ID:Y9eUT5JX
>>877
Objectオブジェクトは他全員の素なんよ
879877:2011/02/21(月) 04:42:22.00 ID:???
>>878
となるとこれも参照できるのは何でなんでしょうか
Function.prototype.animal = 'cat';
alert(Object.animal)//cat

階層が同じだから・・・?
880Name_Not_Found:2011/02/21(月) 07:31:46.35 ID:???
>>874
slaveを2つ以上ほしい時とか動的に追加したい時に無理じゃね?
あ、その時は普通に
Master.prototype.newSlave = function(){return new this.Slave(this);}でいいか。
var slave = master.newSlave();

>>880
typeof Object === "function"だから。
881Name_Not_Found:2011/02/21(月) 07:44:10.20 ID:???
簡単なゲーム作りたいと思ってるんですが、
アニメーション用に複数の動作の画像を分割して一つの画像にしたものがあるんですが、
どうにかして、分割して表示する方法ないでしょうか?

イメージとしてはある画像の指定した部分だけを表示するイメージです。
882Name_Not_Found:2011/02/21(月) 09:41:17.48 ID:???
>>881
divの中に画像を入れてdivの大きさを表示したい大きさに設定して
スクロールバー無しに指定して中の画像の位置を適切な位置に設定
すればいいんじゃないの。全部CSSでできる気がするけど。
883Name_Not_Found:2011/02/21(月) 09:45:30.56 ID:???
もうすぐ900。とりあえず >>2 の改訂案をマージしたけどこれでよい?
テンプレの他の奴は改訂案ないのね?(900から始めてもこれまでの例から
見て間に合わないだろうけど一応)

【質問を書く上で】

1)「何を、いつ、誰が、どこに、なぜ、どのように」動作させたいのかを
 簡潔に説明してください。ただ「動きません」ではわかりません。
 脳内おれおれ用語は混乱のもと。一般的な用語を使うようにしてください。

2)調べたこと・試したことを書いてください。
 OS、ブラウザ、バージョンを必ず明記しましょう。
 質問箇所(行数、エラー内容)を簡潔に。
 何のエラーかわからなければ、エラーメセージをコピペ。
 各ブラウザのJSコンソールを活用しよう。

3)うまく説明できない時は、ソースを貼ると回答されやすいです。
 要点を整理して、エラーが再現するソースを貼ってください。
 1レスで収まらない場合は、アップロードしてください。
 http://jsbin.com/http://jsdo.it/ なども活用してください。

4)閲覧者の迷惑になる質問は回答されません。
 別窓を多数開く、閉じる・戻る・クリックを妨害、画面占有、など。
 「分かんねえの?」と煽っても無駄です。

5)「初心者なので」「初心者だから」「初心者ですみません」とか
 書かない方が無難です。
 知らない、できない、わからない、まちがい、は誰にでもありますから。
884 冒険の書【Lv=4,xxxP】 :2011/02/21(月) 09:52:43.06 ID:???
いいと思う
885Name_Not_Found:2011/02/21(月) 10:10:33.63 ID:???
>>881
CSS background-image, background-positionを調べてみ
886Name_Not_Found:2011/02/21(月) 10:17:33.90 ID:???
if (($("aaa").value !=undefined) && ( $("bbb").value !=undefined))
aaabbbともに浮動小数が入ってる状況なのにif文がスキップされてメダパニです
ツールで見るとちゃんと括弧内はtrueなのです
javascript苦手です・・・
887Name_Not_Found:2011/02/21(月) 10:33:02.39 ID:???
>>886
jqueryだよね。まぁ、if文がスキップされんならundefinedが返ってきてるんだろ。

とりあえず、$関数に渡すセレクタ文字列についてまずは調べなさい。
jquery使いなら基本中の基本ね。苦手もクソもない。
888Name_Not_Found:2011/02/21(月) 10:40:02.53 ID:???
background-positionなんてあったんですね!
これでいけます!どうもありがとうございました!すいませんでした!
889Name_Not_Found:2011/02/21(月) 11:31:42.70 ID:???
>>887
ありがとうございます。

ソースにもろvalue="123.56"って入れてます。
$関数外してdocument.getElementById("aaa").value見ましたが、数値データが入ってます。
しかも==に条件文を変更すると()内はfalseなのにif文の{}の中にステップが入ります。
ifの判定が反転してるような反応です。
ぜったいものすごくバカなことやってると思うのですがなにから疑えばいいかわかりません。
890Name_Not_Found:2011/02/21(月) 11:34:34.45 ID:???
IDなら#aaaだろ。
891Name_Not_Found:2011/02/21(月) 11:47:16.18 ID:???
jQueryなら>>890
prototype.jsなら他の部分でおかしな事やってる。
892867:2011/02/21(月) 11:59:11.70 ID:???
>>874
ありがとうございます、やりたい事が上手く実現できました。
893Name_Not_Found:2011/02/21(月) 12:00:25.17 ID:???
>>889
すこし落ち着け。条件式がfalseになったif文に進入するなんてありえんから。

undefinedと比較する意味からしてよくわからんぞ。空文字を調べたいのなら

if (($("#aaa").value != "") && ($("#bbb").value != "")) ...

if ((document.getElementById("aaa").value != "") && (document.getElementById("bbb").value != "")) ...
894Name_Not_Found:2011/02/21(月) 12:17:52.11 ID:???
>>889
まずそれぞれに何が入ってるか調べなよ
どっちの条件でif文に入ってるかもわかってないんだろ?
console.log使えないならとりあえずalertでもいいから
alert($("aaa"))
alert($("aaa").value)
alert($("bbb"))
alert($("bbb").value)
って実行したらそれぞれ何になるわけ?
あと、$使ってるなら何のライブラリ使ってるのかも書かないと無駄にレスが増える
895Name_Not_Found:2011/02/21(月) 12:27:50.99 ID:???
$=function (){
return document.getElementById.apply(document, arguments)
}
これと予想
896Name_Not_Found:2011/02/21(月) 12:32:30.95 ID:???
>>889
すまん、おれもすこしボケてる。

>>893 訂正
if (($("#aaa").val() != "") && ($("#bbb").val() != "")) ...

jqueryならvalメソッドだな。undefinedになっちまうわけだ。
897Name_Not_Found:2011/02/21(月) 12:47:58.38 ID:???
>>890
>>891
なんかそのへんですね。
#をつけたらnullが帰ってきました。idみつからないみたいです。これはおかしい。
要素はid="aaa" name="aaa"となってます。
>>893
ですよね。
サーバーサイドが最初からvalueをセットしてる場合とそうでない場合(value="")の切り分けがしたかったのですが・・・
参考にしてテストしてみます。
>>894
choromeのjavascriptコンソールでそれぞれ検証してみます。

メインのライブラリはjQueryです。前任の書いたライブラリも読み込んでます。
ライブラリが競合してる可能性があるので一つづつ外して検証してみます。

>>895
$の宣言の競合ですか?
考えられます。前任の書いたコードには$が一切使われてないので競合はないだろうと気軽にjQureyを入れて
みましたが、ライブラリのどっかに隠れてるかも知れません。

おかげで切り口がいくつか見つかったので検証をつづけようと思います。ありがとうございました。
898Name_Not_Found:2011/02/21(月) 12:49:10.88 ID:???
>>896
あ・・・
899Name_Not_Found:2011/02/21(月) 13:11:13.46 ID:???
>>896
うまく動きました。

ありがとうございました!!
900佐々木優子lvl2(悪) ◆M5ZWRnXOj6 :2011/02/21(月) 13:34:35.13 ID:5aGSRhWX
javascriptってどうやってブラウザでテストしてる?
ブラウザみたり エディタもどったりめんどくさいんだけど


ねえ?どうすればいいの?どうすればいいの?
901Name_Not_Found:2011/02/21(月) 13:38:07.48 ID:???
ggrks
902Name_Not_Found:2011/02/21(月) 14:04:47.26 ID:fq3W4dAu
エディタで書いてブラウザで見る以上に楽な方法は思いつかんなあ
あ、パソコン2台以上あるとまあまあ楽よ
903Name_Not_Found:2011/02/21(月) 14:08:21.40 ID:???
F12キー押してみろよ
904Name_Not_Found:2011/02/21(月) 17:54:58.66 ID:???
>>900
・エディタ用モニター
・ブラウザ用モニター
・その他用モニター
3画面くらいあると便利

コンパイルも要らないしテストは超楽じゃないか?
905Name_Not_Found:2011/02/21(月) 17:59:17.16 ID:NebKgDXY
ディスプレイいっぱいあるとクビが痛くなるがな(´・ω・` )≡( ´・ω・`)
906Name_Not_Found:2011/02/21(月) 18:40:19.38 ID:???
便乗だけど
複数のIEでテストするのは不便
複数のIEを共存させる系のソフトは不安定だし仮想環境は面倒だし
複数のIEでのテスト方法はどうするのがいいのか気になる
907Name_Not_Found:2011/02/21(月) 18:44:13.57 ID:???
IETester
908Name_Not_Found:2011/02/21(月) 18:44:44.60 ID:???
IETester一択
909Name_Not_Found:2011/02/21(月) 18:59:20.28 ID:???
>>883
×エラーメセージ
○エラーメッセージ
910Name_Not_Found:2011/02/21(月) 23:17:50.14 ID:???
適当に作った要素をbody要素の上におきたいんだけど、
俺はいつも、
tmp=document.getElementByTagName("body");
tmp[0].appendChild(test);

とかってやってるんだが、ほかにいい方法ない?
911Name_Not_Found:2011/02/21(月) 23:19:38.34 ID:???
document.body
912Name_Not_Found:2011/02/21(月) 23:55:54.49 ID:???
>>911
うわ!こんなのあったんですねorz
ありがとうございました・・・
913佐々木優子lvl2(悪) ◆M5ZWRnXOj6 :2011/02/22(火) 00:26:18.62 ID:k/DZ89Oc
>>912
女は帰れカ
914Name_Not_Found:2011/02/22(火) 00:36:46.44 ID:???
IETesterはバグが多いからIECollection使ってる
915Name_Not_Found:2011/02/22(火) 02:28:17.65 ID:???
>>914
同じく
916Name_Not_Found:2011/02/22(火) 06:31:15.18 ID:???
document.getElementById("foldable").style.display="block";
document.getElementById("close").style.display="inline";
document.getElementById("open").style.display="none";
という記述でdisplayに値をいれて、次に
document.getElementById("foldable").style.display="";
document.getElementById("close").style.display="";
document.getElementById("open").style.display="";
という記述はdisplayの値を消すのですか?
この場合CSSで設定したdisplayの値が入るのですか?
917Name_Not_Found:2011/02/22(火) 07:59:52.70 ID:???
javascriptにユニットテストってないの?
918Name_Not_Found:2011/02/22(火) 08:53:46.62 ID:???
画像のクロスフェードさせたいんですが、良い方法が思いつきません。
要素を重ねる方法って、ある場所に配置した要素の上に、
position:absoluteで絶対座標を指定するしか方法ないですよね?

なんか良い方法あるなら教えていただけると助かります。
919Name_Not_Found:2011/02/22(火) 10:00:36.18 ID:???
良い方法ですね
920Name_Not_Found:2011/02/22(火) 11:20:57.41 ID:???
>>916
ブラウザのデフォルト値になるだけ
HTML上では
<div id="foldable" style="display:block">
<div id="close" style="display:inline">
<div id="open" style="display:none">
から
<div id="foldable" style="">
<div id="close" style="">
<div id="open" style="">
になる
921Name_Not_Found:2011/02/22(火) 11:57:43.17 ID:???
>>916
空文字を代入したときにデフォルトスタイルシートに戻る仕様はどこにも定義されていない。
つまり、実装依存なので空文字を代入すべきではない。
922Name_Not_Found:2011/02/22(火) 12:36:36.08 ID:???
実装依存といっても主要ブラウザ全てそうなんだから
デファクトスタンダードだからいいんだよ
923Name_Not_Found:2011/02/22(火) 14:25:35.00 ID:???
質問なんですが、違うスクリプト間でも変数の値は共有できるのでしょうか?
<script>
var test = "テストだよ";
</script>

<body>
<script>
document.write(test);
</script>
</body>


このようにしても、何も表示されません。
testの内容を表示させるにはどうすればいいのでしょうか?
924Name_Not_Found:2011/02/22(火) 14:46:17.73 ID:???
You should study it from the base
925Name_Not_Found:2011/02/22(火) 14:50:51.88 ID:???
</font><font color="#FF9900">正の整数</font><br>
ウェブサイト上のソースで上記のように書かれている文の
「正の整数」と書かれた部分だけを自動で取得したいのですが
どのようなメソッドを使えばいいでしょうか
画像の取得はdocument..getElementsByTagNameを使ってできたのですが
その形では無い上記の文章はgetElementsByNameやgetElementByIdでも上手くできませんでした
勉強不足で上記のでもできるならごめんなさい
926Name_Not_Found:2011/02/22(火) 14:51:54.32 ID:???
はい、それは尤もだと思いますが・・・
自分はクッキーかhtml5のlocal storage機能を使えば上の問題は解決できると思いますが
これはいろいろな場面で使うので、簡単な方法があればぜひ知りたいのです
グローバル変数は同じスクリプト内でしか有効でないと思うので、これは無理ですし・・・
927Name_Not_Found:2011/02/22(火) 15:02:48.10 ID:???
>>925
fontもgetElementsByTagName使って要素の参照はできるから
それのinnerHTMLとか見ればいいよ
928Name_Not_Found:2011/02/22(火) 15:05:06.90 ID:???
無問題なんだがうまく行かない「そのまま試せる例」を貼ってみそ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head>
<title>sample</title>
<script type="text/javascript">
var test = 99;
</script>
</head>
<body>
<pre><script type="text/javascript">
document.writeln(test);
</script></pre>
</body>
</html>
929Name_Not_Found:2011/02/22(火) 15:09:07.06 ID:???
>>927
ありがとう
色々試して勉強してみます
930Name_Not_Found:2011/02/22(火) 15:16:15.47 ID:???
>>926
グローバル変数は、同じページ内なら有効のはずだよ
931Name_Not_Found:2011/02/22(火) 16:05:32.81 ID:???
> クッキーかhtml5のlocal storage機能を使えば
って書いてあるから別ページなんだろう
932Name_Not_Found:2011/02/22(火) 16:21:03.40 ID:hJ8G5JXI
>>926
なにか激しく勘違いしていないか?

<script>
var a = "what is the global scope?";
</scirpt>
<script>
alert(a);
</scirpt>



<script>
alert(a);
</scirpt>
<script>
var a = "what is the global scope?";
</scirpt>

とか。
933Name_Not_Found:2011/02/22(火) 16:48:04.16 ID:???
すいません、>>926です。
大きな勘違いをしていました、異なるスクリプトの間でも、グローバル変数であれば値を共有できていました。
しかし、問題はそこではありませんでした

<script>

function kei(){
var kento = "kentyan";
}
document.write(kento);

</script>

このように、function内で宣言した変数が、function外では使えません。
皆様を混乱させるような書き込みしてすいませんでした、
上記のスクリプトを実行したところ、何も表示されませんでした。
何度も質問してすいません
934Name_Not_Found:2011/02/22(火) 16:48:51.14 ID:???
スコープが違うから_
935Name_Not_Found:2011/02/22(火) 16:52:24.65 ID:???
おいお前。
関数内でvarつけたら、ローカル変数。
varつけなかったら、グローバル変数になるってことおぼえとけ。

関数外ならvarつけてもグローバル変数だ。

これだけ覚えとけ。じゃあ頑張れよ。
936Name_Not_Found:2011/02/22(火) 17:02:08.77 ID:???
>>933
<script>
var kento;
function kei () {
 kento = "kentyan";
}
document.write(kento);

</script>
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/Variables
937Name_Not_Found:2011/02/22(火) 17:56:08.84 ID:???
すみません、みなさん、勉強になりました。
>>936さんのスクリプトを少し変えて

<script>
var kento;
function kei () {
 kento = "kentyan";
}
kei();
document.write(kento);

</script>

として、一度functionのkeiを実行すると、うまくkentoの値が表示されました
ノートに書いて復習しておきます、ありがとうございました。
938Name_Not_Found:2011/02/22(火) 20:03:41.48 ID:???
新書のJavaScriptパターンの紹介で
JavaScripを200%使いこなすとか書いてあるんだけど
100%使いこなすよりも2倍使いこなす状態が想像できない
939Name_Not_Found:2011/02/22(火) 20:10:32.01 ID:???
>>938
当社比

昔から、「○○を256倍使うための本」というもっと嘘くさい本があってだな・・・
940Name_Not_Found:2011/02/22(火) 20:47:12.39 ID:???
javascriptってキーの同時押し検知できないんですか・・・?

例えばAとBが両方押されてるかをチェックしたいんです。

あるオブジェクトの移動を斜めに移動させたくて困っています。
941Name_Not_Found:2011/02/22(火) 21:18:10.64 ID:???
onkeydownでAとBが押し下げられたか検知
onkeyupでA or Bが上がったらflag[A or B]=false
keydown時に両方がtrueなら同時押しされた。ってできるはず。
942Name_Not_Found:2011/02/22(火) 21:18:51.62 ID:???
>>938
おおかた独自拡張テク満載ってことや
943Name_Not_Found:2011/02/22(火) 22:04:59.52 ID:???
>>941
ありがとうございます。やってみます。
944Name_Not_Found:2011/02/23(水) 05:05:44.72 ID:???
ボタンを押すと表示されている数字が1ずつ大きくなっていきます
<head>
<script type="text/javascript">
//サブルーチンはここに記述
function increment(obj) {
var i = obj.value - 0; //ボタンの表示文字列を整数に
i++;
if(i < 10)
obj.value = "0" + i;
else
obj.value = i;
}
</script>
</head>
<body>
<INPUT TYPE="button" VALUE="00" ONCLICK="increment(this)">
</body>

でi=obj.value - 0の-0ってなんですか?i = obj.valueでも問題なく作動
しますが、何か意味があるのですか?
945Name_Not_Found:2011/02/23(水) 08:02:25.29 ID:???
>>944
詳しくはしらんけど、コメントに書いてある通り -0 がなかったら変数
i が文字列になってしまって、その後の計算では内部でいちいち数値に
変換しているんじゃないかな。なくても動くけど、効率が悪そうだと。

-0 ってのはわかりにくいので、var i = Number(obj.value); とした方が
いい気がする。
946Name_Not_Found:2011/02/23(水) 08:06:53.07 ID:???
>>944
-0する事で型を数値型にしてる保険じゃないの?
947Name_Not_Found:2011/02/23(水) 08:09:16.45 ID:???
文字列でもi++通るなら-0はいらないか
948Name_Not_Found:2011/02/23(水) 08:19:49.28 ID:???
var i = obj.value// - 0;
i += 2; // 増分値の変更に弱い

var i = obj.valueでも問題なく作動するのはi++でも型変換が行われているからね。
型変換のルールを>>944が分かってるとも思えないから - 0、あるいは* 1でもいいから
あらかじめ型変換をしておいた方が良い。
949Name_Not_Found:2011/02/23(水) 09:19:06.70 ID:???
944です。
型変換のルールであらかじめ変換しておくための-0
ということなんですね。
javascriptは他の言語のに比べ本がほとんど本屋になく
技術評論社の本とインターネットで検索して強しています。
すごく勉強しずらいですね。みなさんはどのように勉強したんですか?
950Name_Not_Found:2011/02/23(水) 10:30:35.25 ID:???
本とインターネット
951Name_Not_Found:2011/02/23(水) 10:54:19.69 ID:???
次スレは975超えたら。テンプレ変更は >>2>>883
952Name_Not_Found:2011/02/23(水) 10:55:54.54 ID:???
何しきってんの?
953Name_Not_Found:2011/02/23(水) 11:25:33.20 ID:???
混乱が生じないために、このスレの合意と思われることを確認しています。
過去に 950 超えて建てたら旧スレの残りが使われないとか並行で混乱とか
あったので 975 で建てることが慣例となってきています。
テンプレも含めて、内容に異論があるならぜひ今どうぞ。
そして仕切りたいなら私は別に仕切りたくないのでぜひどうぞ。
954Name_Not_Found:2011/02/23(水) 12:36:33.24 ID:vPXEySrU
テンプレ議論やろうやろうっていって
いっつもグダグダになっちゃうしね
>>883だって、元ネタが書かれたの1年前だしw

つーわけで>>952はgj
955Name_Not_Found:2011/02/23(水) 13:02:15.00 ID:???
80 スレ以上消費してきてまだテンプレなんてものがオナニーに過ぎないことがわからんのかい
956Name_Not_Found:2011/02/23(水) 13:42:10.00 ID:???
読む人は読むし、読まない人は読まない
だから無いよりはあった方がまし
だからテンプレがオナニーって言うのは言い過ぎ
957Name_Not_Found:2011/02/23(水) 14:00:17.85 ID:???
いっそ外部にwikiでも作れと
958Name_Not_Found:2011/02/23(水) 14:17:46.55 ID:???
MDC と ECMA と W3C だけで良いよ。

他に強いて挙げるなら・・・・

http://blog.livedoor.jp/perlninja2/
http://blog.livedoor.jp/perl_ninja/
959Name_Not_Found:2011/02/23(水) 14:29:16.98 ID:???
サウンド再生について、ベストな方法を教えてくれ。
960Name_Not_Found:2011/02/23(水) 14:41:43.75 ID:???
http://www.nogray.com/time_picker.php

ここのtime pickerのソースってどこにあるの?


961Name_Not_Found:2011/02/23(水) 14:57:24.05 ID:???
>>953
じゃあ、私が仕切ります

次スレ建てる人はお好きにどうぞ
962Name_Not_Found:2011/02/23(水) 18:58:21.14 ID:???
web開発者の集まってる板なんだからgithub pages使えよ
963Name_Not_Found:2011/02/23(水) 21:42:48.20 ID:???
じゃあテンプレ有無も含めて好きにするということで?
964Name_Not_Found:2011/02/23(水) 21:45:35.50 ID:???
>>957
そもそも過去スレ全集とかからして、外部に用意しても結局2ちゃんの
方が長続きしている。1000レス中の6、7レスだから別に入れてあっても
いいと思うね。テンプレ要不要の投票しますか?洩れ「要」。

要: 1票 不要: 0票

さあどうぞ。
965Name_Not_Found:2011/02/23(水) 23:56:38.48 ID:???
>>957
じゃあ、お願い
966Name_Not_Found:2011/02/24(木) 00:10:07.33 ID:???
function hoge(){
var str = ["abcde","abcde","abcde"];
str.push(str.splice(0,1));
document.open();
document.write(str[0].slice(0,3) + "<br>");
document.write(str[1].slice(0,3) + "<br>");
document.write(str[2].slice(0,3) + "<br>");
document.close();
}

過去の入力履歴を一定数格納する配列を作っているのですが、
pushした配列要素にだけsliceが効きません。
置換を続けて位置がずれていっても、pushやunshiftで追加した要素はずっとsliceが効きません。
何がいけないでしょうか?
967Name_Not_Found:2011/02/24(木) 00:17:45.06 ID:???
str.splice(0,1)の返り値はArray
んで、Arrayにもsliceメソッドがあったからエラーを吐かれなかった。
str[2].slice(0,3)てのは["abcde"]を返している。(slice(1,3)にすると[])
toString()では要素数が1なのでそのまま[0]がかえってくる。
968Name_Not_Found:2011/02/24(木) 00:34:34.64 ID:???
一度吐き出した物をまた戻そうとしたら、前とちょっと違ったものになってて、
拙者、何かおかしくなっちゃったでござる、の巻。
969Name_Not_Found:2011/02/24(木) 00:35:10.58 ID:???
入力履歴を格納なんていわれると身構えちゃうな
970Name_Not_Found:2011/02/24(木) 00:41:07.90 ID:???
画像検索の履歴が個人情報と紐付けられたら生きてらんない><
971Name_Not_Found:2011/02/24(木) 00:51:09.23 ID:???
>>967
なるほど!解決しました!
ありがとうございました。m(__)m
972Name_Not_Found:2011/02/24(木) 08:39:54.57 ID:???
今回は700台から始めたんで、ちゃんとテンプレ論議はできてると
思うな。次スレはそれに従ってたてて、次スレの中でまた頃合いを
見て「テンプレ廃止」の議論するということでどうですかー。
973Name_Not_Found:2011/02/24(木) 14:07:34.05 ID:???
HTML5の完成は3年後--W3Cの決定の背景
http://japan.cnet.com/news/commentary/20426259/
974678:2011/02/24(木) 16:38:17.62 ID:E+OKUWW9
XDomainRequestAllowed ではなく、Access-Control-Allow-Origin を返すようにしたところ
>>682のコードで機能するようになりました
失礼致しました
975678:2011/02/24(木) 17:33:53.80 ID:E+OKUWW9
すみません。>>685のコードも機能しました
976Name_Not_Found:2011/02/24(木) 20:05:29.26 ID:???
>>974-975
http://d.hatena.ne.jp/amachang/20080306/1204771762 のコメント欄にもあるけど、途中で実装が変わったみたいだね。
http://msdn.microsoft.com/en-us/library/cc288060%28v=vs.85%29.aspx では "Access-Control-Allow-Origin" と説明されてる。
977Name_Not_Found:2011/02/24(木) 20:15:22.40 ID:???
Canvas3D、WebGL関係の質問はこちらでよろしいでしょうか?
978Name_Not_Found:2011/02/24(木) 20:47:58.41 ID:???
JavaScriptで書かれたコードをスクレイピングするライブラリってないですか?
コード中においてDOM操作が何回行われるか静的に解析したいのですが
979Name_Not_Found:2011/02/24(木) 21:16:32.57 ID:???
スコープがいまいち理解できません

var foo=fumction(){
var a=3,b=5;
var bar=fumction(){
var b=7,c=11;
//この時aは3,bは7,cは11
a+=b+c;
//この時aは21,bは7,cは11
};
//この時aは3,bは5,cは未定義
bar();
//この時aは21,bは5
//ここでbが5になるのがよくわからないです
};

bar()が実行されてbが7になるけど
実行後でfoo()の中だからbが5になるって事ですか?
980Name_Not_Found:2011/02/24(木) 21:26:08.96 ID:???
var b=としてる所でそのbはその関数より下の階層でしか使えないからかな・・・
var a=3,b=のbとvar b=のbは変数名は同じでも別物
981Name_Not_Found:2011/02/24(木) 21:39:00.94 ID:???
bが7のところで外のbを参照したいときはどうすればいいの?
982Name_Not_Found:2011/02/24(木) 21:42:47.26 ID:???
varを付けない。
983Name_Not_Found:2011/02/24(木) 21:46:25.49 ID:???
>>981
中の関数でvar bを宣言しない。名前を変える。

ところでfumctionって何だ まともに動くソースを貼れよ。
984Name_Not_Found:2011/02/24(木) 22:01:53.09 ID:???
>>978
それはスクレイピングというのかなあ。
DOMNodeInserted や DOMSubtreeModified を見ればチェックできると思う。
985まる:2011/02/24(木) 23:19:06.32 ID:9ZCg3Jzw
はじめまして、唐突ですが、質問及びお願いです。
今現在、商用のHPを製作しているのですが、javaでの計算式が必要で、私自身が時間がなく勉強することが出来ません。
計算式ですが、ある料金の単価を出す式です。

合計金額が¥5775で、基本料金が¥1500(絶対に掛かる料金)、使用量が10の場合・・・

5775÷1.05(消費税)=5500
5500−1500(基本料金)=4000
4000÷10(使用量)=400(単価)

この¥400(単価)を出せる式をHPで使用したいのですが・・・

お客様に入力してもらうのは、合計金額と使用量で、単価を出す感じです。

計算式のjavaを製作していただき、HPに設置するまで面倒見ていただける方に¥10.000振り込ませていただきます。HPに設置は私がHTMLでやりますので、わからなかったらご指導ください。
式の製作後に¥5.000、HPに設置後に¥5.000払います。
私の身分は設置するHPの版下と、名刺を出して身分を明かすので安心です。住所は埼玉県の川口市なので近隣に住んでる方なら嬉しいです。
信用できる方なら誰でも良いので、是非御連絡ください。よろしくお願いいたします。

makeupgasアットmail.goo.ne.jp
*メルアドのアットを変換して送ってください。
986Name_Not_Found:2011/02/24(木) 23:20:40.76 ID:???
━━━本スレに書く事を許される者は以下の通り━━━━━
 一、JavaScriptはJavaとは別物であると知っている者
 一、自ら学んでJavaScriptコードを書く意思を持つ者
987Name_Not_Found:2011/02/24(木) 23:23:01.39 ID:???
こういった所でなくmixiのそう言うのを頼むコミュみたいなのとか
それなりの場所でやりなよ・・・
988Name_Not_Found:2011/02/24(木) 23:34:07.19 ID:???
うーん、今日もまたスレ立て規制で新スレ建てられません。すみませんが建てられる方
お願いいたしたく。 >>2 のかわりに >>883 ということになったのでそこもよろ。
989Name_Not_Found:2011/02/24(木) 23:36:52.97 ID:???
&
エラーメセージ

エラーメッセージ
990979:2011/02/24(木) 23:39:48.09 ID:???
>>980
別物って言葉で理解できました。
助かりました。有難う御座いました。

>>983
>>981は別人ですが、>>979のコードが手打ちだった為、
誤字がありました。すいません。
991Name_Not_Found:2011/02/25(金) 00:22:41.20 ID:???
>>990
スコープチェーンでググると幸せになれる
スレ立てるか
992Name_Not_Found:2011/02/25(金) 00:30:19.15 ID:???
+ JavaScript の質問用スレッド vol.84 +
http://hibari.2ch.net/test/read.cgi/hp/1298561109/l50
993Name_Not_Found:2011/02/25(金) 00:32:57.95 ID:???
"おつ";
994Name_Not_Found:2011/02/25(金) 01:00:19.48 ID:???
IEでのlocation.hrefってbaseタグのhrefの値は考慮しないんでしょうか?
Firefoxではbaseタグのhrefを基準にしたURLに相対パスで飛んでくれるのですが、
IEでは無視されてしまいます。
995Name_Not_Found:2011/02/25(金) 01:20:08.14 ID:???
>>985
スレ違いです
996Name_Not_Found:2011/02/25(金) 01:33:15.38 ID:bjXHEjUx
>>992
おつおつ
では来年までには>>2以外のテンプレを…
997Name_Not_Found:2011/02/25(金) 01:41:22.59 ID:???
>>985
複数の場所に依頼していることは周知されているのかな?
知恵袋の人にはお金を払わないとか公平性に難があるようだけど。

JavaScriptで料金の単価を出す式をホームページに入れたいのですが、、、 - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1456241319
998Name_Not_Found:2011/02/25(金) 01:47:58.88 ID:???
>>985
2ちゃんねるの中でもマルチポストしてるのか

JavaScriptプログラマーだけど何か質問ある?
http://hibari.2ch.net/test/read.cgi/prog/1275422574/103n-
999Name_Not_Found:2011/02/25(金) 01:49:45.47 ID:???
釣りっしょ。
1000Name_Not_Found:2011/02/25(金) 01:50:28.10 ID:???
マジだったら怖いわ。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。