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

このエントリーをはてなブックマークに追加
━━━本スレに書く事を許される者は以下の通り━━━━━
 一、JavaScriptはJavaとは別物であると知っている者
 −、自ら学んでJavaScriptコードを書く意思を持つ者
 −、ユーザに迷惑となるスクリプトを書かない者
 −、質問をきちんと分かる日本語で説明できる者
 −、トラブルを再現する最小限のサンプルを貼れる者
 −、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者
━━━━━━━━━━━━━━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
前スレ http://pc11.2ch.net/test/read.cgi/hp/1208140663/l50
[必読]過去スレ全集 http://wing2.jp/~mirrorhenkan/2ch/javascript/
  (ずべて同一)  http://www2.atpages.jp/mirror/2ch/javascript/
          http://usamimi.info/~mirrorhenkan/2ch/javascript/
[必読]ガイド http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide
(GuideをReferenceに→Netscape版言語仕様。多くの実装が準拠:ECMA-262.ed3)
FAQ・注意・過去ログ・仕様書・関連資料・関連スレ>>1-10
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
 長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
 ただ「動きません」「エラーです」は何も情報がないため嫌われる。
 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!!
 OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度
 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8)
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
7)質問はまっとうな(他人に理解できる)日本語で。
 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
【FAQその1】
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
Q3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが…
A3. セミコロンで複数の文を区切れます。onclick="foo();bar();"としましょう。
Q4. document.write(...)でページ内容を追加したいのですが…
A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
 innerHTMLは非標準ですがIE、Opera、Safari、Gecko(N6/N7/Firefox等)で対応済。
Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか
 <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。
Q6. DOMでtable要素にtr要素を追加しても表示されないのですが…
A6. DOMでは(XHTML 1.x除く)tbody要素にtr要素を追加する必要があります。
 tbody要素はtbodyタグを書いていなくても自動的に作成されます。
 またはtable.insertRow()/tbody.insertRow()を使いましょう。
Q7. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A7. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。
Q8. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A8. 「document.forms.myform.elements[変数名].value」でどぞ。
 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
Q9. Aタグのonclickで動作指定してるのですが時々動きません…
A9. 「onclick="...;return false"」としないとページ移動しちゃうから。
【FAQその2】
Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A10. 取得には document.defaultView.getComputedStyle() を使う必要あり。
Q11. 100*1.15の結果が114.999…998となってしまうのですが…
A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが…
A12. IE7/Gecko/Opera/Safariのnew XMLHttpRequest()、IEの
 new ActiveXObject("Msxml2.XMLHTTP.6.0") (または"Msxml2.XMLHTTP.3.0")
 を使えばできます。古いブラウザだと隠しフレームに読むなどのワザが必要。
Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
 複数の関数を呼びたいときは obj.onclick=function(){foo();bar();};
 という風に無名関数を作りましょう。中に書かれたコードが実行されます。
Q14. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
 「"...this..."」とか「function(){...this...}」ではうまく行きません。
A14. それらが実行されるときはthisは別のもの(window等)を指してしまってる。
 「function(x){return function(){...x...};}(this)」のようにthisを別の変数に
 束縛しその変数を使って。循環参照によるメモリリーク問題あり(この項記述検討中)
Q15. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが…
A15. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。
 正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。
 各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、
 offsetがマッチした位置、sが置き換え前の文字列全体になります。
Q16. input type="file"の値を設定(参照)できないのですが…
A16. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q17. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A17. コード実行時点でHTMLがそこまで読まれてない。onload中でやるとか。
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと
 は無視」は不毛。質問者が分かって選択していれば尊重する。無知か
 らIE専なのは指摘してあげると親切。
・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される
 可能性大。非標準機能も損得を分かった上で使うならよい。
・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、
 そこだけ見ているとIE専になる。あとは上2件と同様。
・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当
 な理由があることも。尋ねて分かってないようなら煽っても可(w
・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選
 択するべき。一概にどちらは駄目、とは言えない。
・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性
 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。
(とほほは間違いが多いためこのスレでは批判的意見が多い)
(以下は精選すべきとの議論あるが進んでいないので玉石混淆)
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
オブジェクトなJSの基礎講座
http://chaichan.web.infoseek.co.jp/src/2ndthema.htm
【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!
Webサイト制作初心者用質問スレ Part 197
http://pc11.2ch.net/test/read.cgi/hp/1210081559/l50
CSS /* CSS・スタイルシート質問スレ 上級者用【71th】 */
http://pc11.2ch.net/test/read.cgi/hp/1205680031/l50
CSS/DHTMLバグ辞典スレッド 【第5版】
http://pc8.2ch.net/test/read.cgi/hp/1144494359/l50
役に立つ書籍は? 4冊目
http://pc11.2ch.net/test/read.cgi/hp/1172823674/l50
JavaScript手取り足取りスレッド
http://pc11.2ch.net/test/read.cgi/hp/1199354032/l50
1行javascriptプログラミング
http://pc11.2ch.net/test/read.cgi/hp/1066750037/l50
WSH(・∀・)スレッド! Part 3
http://pc11.2ch.net/test/read.cgi/tech/1208948450/l50
8Name_Not_Found:2008/05/29(木) 12:49:09 ID:???
あとこういうのを用意したんだけど>>7の行数が一杯で。
あった方がよければ次から何とか入れるようにします?

【各種フレームワーク】←テクニックの宝庫なので一度参考にぜひ。
Prototype.js → http://prototypejs.org/
script.aculo.us → http://script.aculo.us/
JQuery → http://jquery.com/
Yahoo! UI Library (YUI) → http://developer.yahoo.com/yui/
Mootools → http://mootools.net/
9Name_Not_Found:2008/05/29(木) 13:13:37 ID:???
>>1
おつかれ。

日本の JavaScript ユーザのためのハブサイト
http://js-users.jp/

ここも参考になると思うので追加。
1042:2008/05/29(木) 19:35:57 ID:XHep3Czc
>>1
乙でーす
11Name_Not_Found:2008/05/29(木) 23:25:49 ID:???
>>7
手取り足取りスレのURLが違うような気が。
12Name_Not_Found:2008/05/30(金) 00:01:57 ID:???
JS終了にまだ気付けない>>1がかわいそうすぎる。おつかれさま。
13Name_Not_Found:2008/05/30(金) 02:13:01 ID:???
>>9
間違っています。
以上。
↓次どうぞ
14Name_Not_Found:2008/05/30(金) 04:09:22 ID:Jct6WDVf
    ____
       /_ノ  ヽ、_\      
.     / (● ) (● )\  こっこれは別に>>1乙なんかじゃなくてただズレてるだけなんだからっ
    / /////(__人__)///\ 変な勘違いしないでよね!
    |              | 
     \           /
        ̄ ̄ ̄ ̄ ̄ ̄
15Name_Not_Found:2008/05/30(金) 06:14:23 ID:7OkfQ9LB
http://www.sam.hi-ho.ne.jp/cgi-bin/user/ike3/suntack.cgi

こんな感じでランダムに択一の問題を表示していく方法ってjavascriptでできますか?
16Name_Not_Found:2008/05/30(金) 06:45:57 ID:???
>>15
問題数が数百くらいなら大丈夫と思うよ。ただし全部
ブラウザに持って来るので始まるまでの時間はのろいと
思うが。
17Name_Not_Found:2008/05/30(金) 06:56:32 ID:???
データ量が少ないなら全ての問題をJavaScriptファイルに記述し<script>で読み込み、
それでなければAjaxでまとめて数問づつ取得、とか。
18Name_Not_Found:2008/05/30(金) 09:55:01 ID:???
>>8, >>9
要らんことすんな。
それらサイトになんらかの場はあるだろ。
何をトチ狂って我田引水やってんだ?
もし、設置できませんなどの悩みにボランティアで答えたいのなら、個人でやれ。迷惑だ。
19Name_Not_Found:2008/05/30(金) 11:29:50 ID:ba8tyd41
しつもん。

a.php→b.phpの流れでb.phpはリファラでa.php以外からのアクセスを遮断します。

IEだとlocation.href等で飛ばすとリファラが空になってしまうわけですが、
http://www.teria.com/~koseki/memo/referrer/
なんか代替方法ありませんかね?

divブロック内どこからでも飛ばせるようにしたいので<a>使えってのは無しの方向で。
20Name_Not_Found:2008/05/30(金) 12:03:05 ID:???
?ref=a
21Name_Not_Found:2008/05/30(金) 12:22:16 ID:???
>>19

ファイル分けないで、同じファイルで全部処理すれば!

画面遷移毎にワンタイムパスとか発行して、ユーザの一意性を確保すればいいんだよ
22Name_Not_Found:2008/05/30(金) 12:34:56 ID:???
>>18
日本語でおk
23Name_Not_Found:2008/05/30(金) 12:49:45 ID:???
いや。>>18は正しいよ。余計なリンク貼るな、ボケ。
テンプレ議論で出すべき。
24Name_Not_Found:2008/05/30(金) 13:08:00 ID:???
余計なリンクwww
-users.jpが余計なリンクwwww
25Name_Not_Found:2008/05/30(金) 13:33:03 ID:???
>>23
お前がevalの議論に夢中で気付かなかっただけだろ

956 名前:Name_Not_Found[sage] 投稿日:2008/05/29(木) 02:13:19 ID:???
テンプレ追加推奨
http://js-users.jp/


この板でYAPCからの一連の流れを知らんとは
26Name_Not_Found:2008/05/30(金) 14:06:14 ID:ba8tyd41
>>21
単に他所からリクエスト要求されるのを防ぎたかっただけで、
一意性とかそこまで厳重なことは考えてなかったわけですよ。

リファラ偽装してまでアクセスするような内容でもないけど、
少々重いので何の対策もしないのはどうかと思ったので。

まあ手っ取り早くセッションでものっける方向で行きたいと思います。
27Name_Not_Found:2008/05/30(金) 14:08:46 ID:???
新しいサイトなら無条件でテンプレに載せるべきか?
お前らが積極的にjs-users.jpにコミットして
名実ともにハブサイトにしてくれるっていうなら構わんけど
28Name_Not_Found:2008/05/30(金) 14:12:59 ID:???
>>19
display:block;
29Name_Not_Found:2008/05/30(金) 14:18:04 ID:???
YAPCってなんですか?
30Name_Not_Found:2008/05/30(金) 14:26:18 ID:???
Yet Another Perl Conferenceの略。
この間東京で開かれたYAPC::Asiaで偉い人が
「お前らSEOに有利などメインとって初心者向けの際と作れ」
といったのを受けて、Perl以外でも自称ハブサイトが乱立する事態に。
個人的にはほとんどが一過性のもので自然消滅するんじゃないと思ってるし、
YAPC自体ここにいる連中が知らなくてもおかしくないものだと思う。
31Name_Not_Found:2008/05/30(金) 14:26:36 ID:???
32Name_Not_Found:2008/05/30(金) 14:27:04 ID:???
33Name_Not_Found:2008/05/30(金) 14:46:04 ID:???
今スレのテンプレはあくまでも>>1-7で、その先は議論でしょ。
それで、関連スレ等(要するに>>7だね)は次回どうするの?
別に洩れは今のままでも構わんと思っているけどね。
34Name_Not_Found:2008/05/30(金) 14:48:30 ID:???
>>27
見てみたけど、現状は内容スカスカの単なる(立ち上げ人関連の)微妙ブログ宣伝サイトのようなので、
テンプレ入りさせるのは時期尚早では。

js-users.jpでググってみたら、ハブサイトを目指すというより、
*-users.jpに便乗し、なんとなくお友達サークルサイトを立ち上げてみましたという雰囲気だし。
35Name_Not_Found:2008/05/30(金) 14:51:24 ID:jAS1vCjM
ホイール回転やスクロールバーをクリックしたときに動く量を
取得したり設定したりするにはどうすればいいですか?
3629:2008/05/30(金) 14:53:13 ID:???
>>30
解説ありがとうございました。ヤマハがパソコン作ったのかと思いました。
最後のお言葉に勇気付けられました。それにしても>>27さんはリアルでも
感じの悪い人なのでしょうが酷く高圧的な発言には皆さん気分を害してい
る方が多いのではないでしょうか。
37Name_Not_Found:2008/05/30(金) 15:10:17 ID:???
>>34
主要リンクがまとまってるだけでも十分だと思うが
まあとりあえず950辺りまで保留でいいだろうな。
38Name_Not_Found:2008/05/30(金) 16:01:59 ID:???
>>30
>個人的にはほとんどが一過性のもので自然消滅するんじゃないと思ってるし、
誰でも思ってるよ。またか、ってね。
それを長寿スレ(長寿の意味が違うが)のテンプレにいきなりのせようとするなんて、キチガイかと思った。

ついでにはっきり言っておくが、YAPCのえらいさんどもは、俺からすれば年下だし、社会的地位は低いし、JS初心者でもある。ありがたがるなら俺をありがたがれ。
39Name_Not_Found:2008/05/30(金) 16:24:42 ID:???
じゃあお前は大腸菌レベルだな
40Name_Not_Found:2008/05/30(金) 17:30:54 ID:???
>>38
ぜひ住所とお名前を
41Name_Not_Found:2008/05/30(金) 17:32:34 ID:???
>>38
> YAPCのえらいさんどもは、俺からすれば年下だし、社会的地位は低いし、JS初心者でもある。
これが何を意味してるかよくわからない
自分を誇示したいの?それこそこのスレにいらないだろ
42Name_Not_Found:2008/05/30(金) 17:33:17 ID:???
>>38
どうやらJS終了君が遂に発狂したようで。
43Name_Not_Found:2008/05/30(金) 19:00:01 ID:???
>>38
これじゃ友達いないわけだ。ホラ以外何もない寂しい中高年かよ。
44Name_Not_Found:2008/05/30(金) 19:18:13 ID:???
ここにいる人たちの中で
"過去スレッド" に目を通した人がどれだけいることだろう ?
60% 以上が無意味な書きこみであることをどう思う ?
余談ながら初期の "テンプレ" は極めてシンプルであった.
だが, テンプレ論争は皆無であった !!!
45Name_Not_Found:2008/05/30(金) 19:26:21 ID:???
>60% 以上が無意味な書きこみであることをどう思う ?
オマエモナーと思う。
46Name_Not_Found:2008/05/30(金) 19:28:12 ID:???
>>46
すまぬ !!!
47Name_Not_Found:2008/05/30(金) 19:42:47 ID:???
ほらね
48Name_Not_Found:2008/05/30(金) 20:04:27 ID:???
2ちゃんはもとより玉石混淆なわけだから
情報の密度を求めてもしょうがないんじゃないか?
49Name_Not_Found:2008/05/30(金) 20:13:21 ID:???
>>47
すまぬ !!!
ただ... あんまりな流れだったので つい...
50Name_Not_Found:2008/05/30(金) 20:24:29 ID:???
ま、たま〜に光るのがあるからいいんでない?中身が薄いから
こそ65巻も続くわけで、遊びがないハンドルは運転しづらい。
量はある意味質も内包しているわけで。これでいいと思うよ。
51Name_Not_Found:2008/05/30(金) 21:23:13 ID:???
つまりそんなことをいちいち指摘するやつが野暮だってことだ
52Name_Not_Found:2008/05/30(金) 21:33:02 ID:???
>>51
結局, 同じ流れなのね (ぎゃぼ〜)
まっ, お好きに おやんなさい ! (おいら は 白根)
53Name_Not_Found:2008/05/30(金) 22:16:20 ID:W5n2x0f3
ラジオボタンがクリックされた時に関数で
ラジオボタンのnameとvalueを取得したいのですが、
どのように値を関数に渡せばいいのでしょうか?
54Name_Not_Found:2008/05/30(金) 22:21:31 ID:???
>>53
関数名(this) でいいんじゃないか?
55Name_Not_Found:2008/05/30(金) 22:22:23 ID:???
オブジェクト指向としてのJavaScriptを勉強したいのですがお薦めの本はありますか?
56Name_Not_Found:2008/05/30(金) 22:35:26 ID:???
テキストボックスのすぐ下にレイヤーを表示したいのですが、どのようにすればいいでしょうか。
レイヤーの座標をCSSで指定すればできるんですが、<BR>タグなどがテキストボックスの前に入ると調整が必要になってしまいます。
特定のテキストボックスのすぐ下にレイヤーをだしたいのです。
ブラウザはIE限定です。
5753:2008/05/30(金) 22:51:13 ID:W5n2x0f3
thisの使い方を調べてみたらうまくいきそうです。ありがとうございました。
58Name_Not_Found:2008/05/30(金) 23:19:11 ID:???
>>56
テキストボックスの位置と大きさをoffsetTop/Left/Width/Height
で調べてレイヤーを出す位置を計算すればいいんじゃないの?
>>55
サイ本(オライリーのJavaScript本)とかMy UNIXシリーズのJavaScript本。
59Name_Not_Found:2008/05/31(土) 00:46:47 ID:???
function unescapeHTML(str){
  str = str.replace(/&/g,"&");
  str = str.replace(/"/g,'"');
  str = str.replace(/'/g,"'");
  str = str.replace(/</g,"<");
  str = str.replace(/>/g,">");
  return str;
}
var text = "あいう<br>えお";
alert(unescapeHTML(text));

こんな感じのソースで
あいう
えお
と表示させたいのですが、
あいう<br>えお
となってしまいます。
どうすればいいのでしょうか
60Name_Not_Found:2008/05/31(土) 00:48:26 ID:???
unescapeHTML関数の置き換えされる側には実態参照が入っているのですが
ここだと普通に戻るんですね
61Name_Not_Found:2008/05/31(土) 01:02:32 ID:???
>>59
この変換処理に意味がみだせない漏れオワタ(^^)/
62Name_Not_Found:2008/05/31(土) 01:07:33 ID:???
>59-60
自己解決できました。
63Name_Not_Found:2008/05/31(土) 02:14:41 ID:???
前スレでの話題になった未解決問題のうち重要そうなものの漏れ用メモっす。
番号は全て前スレのものなので注意。

>>82 Dripのrefsの数値の謎について
>>86 IEでトップレベル関数の列挙方法
>>127 addEventListenerの「使える」イベント一覧
>>143 IEのメモリーリーク問題でDOM同士、JSオブジェクト同士の相互参照がリークしないことの確認方法
>>505 IEでプライベートメソッドを実現する際の性能劣化しない方法の有無
>>515 elementFromPointの実用性はどの程度?
>>581 IEで「属性」(イベントではなく)をコピーせずにノードのクローンを作成する方法
>>799 JSでクロスドメイン通信を実現する手段が実は沢山あることと、
   今後もサポートされそうだということについての是非
64Name_Not_Found:2008/05/31(土) 02:46:55 ID:gE3lRTdY
radioボタンに対して、
関数内でnameとvalueを指定して、一致している物にチェックしたいのですが、
どのようにすれば可能でしょうか?
getElementByIdを使用すればnameを指定することが出来ますけど、
valueを指定する方法が分からなくて困っています。
6564:2008/05/31(土) 02:54:25 ID:gE3lRTdY
getElementsByNameですね。 少し書き間違えました
66Name_Not_Found:2008/05/31(土) 02:56:26 ID:95Ate0Mn
アドベのアクロバットのフォームの作成で、各項目にカーソルを移すと強制的に、
全角や半角入力になるよう作成したいんですがどうすればいいでしょか?
例えば、氏名欄は自動的に全角、電話番号欄は半角に、などです。

都・道・府・県などをクリックすると○で囲むような時は下記の記述でできるのですが、
質問の場合の記述が全く分かりません。
var i = event.target.buttonGetIcon();
event.target.buttonSetIcon(event.target.buttonGetIcon(1));
event.target.buttonSetIcon(i,1);
67Name_Not_Found:2008/05/31(土) 08:13:40 ID:???
>>66
Web制作じゃないじゃん。
>>64
そのnameのボタン群に対してループしてvalueが一致するものを探す。
68Name_Not_Found:2008/05/31(土) 10:06:17 ID:???
質問です。for文でインクリメントは整数の範囲とするという場合、
for(i=1;i<L;i++)ですか、それともfor(i=0;i<L;i++)ですか?
あと自然数はfor(i=0,i<L,i++)でよいのでしょうか?
69Name_Not_Found:2008/05/31(土) 10:51:03 ID:???
for(i=1;i<L;i++) 正の整数
for(i=0;i<L;i++) 自然数
7064:2008/05/31(土) 13:11:23 ID:gE3lRTdY
>>67
やはりループくらいしかないですか。分かりました
71Name_Not_Found:2008/05/31(土) 14:02:39 ID:???
以下のコードはテキストボックスに改行を含む文字をtextnodeを作成して出力する場合と、
valueプロパティーに代入する場合の違いを検証するコードです。
一番上のテキストボックスに改行を含む文字列を入力してボタンを押してください。
真ん中のテキストボックスにはtextnodeを作成して出力した場合の結果が
一番下のテキストボックスにはvalueに代入した場合の結果が出ます。
IE6でこれを試すと、真ん中のテキストボックスには改行後の行の行頭に空白が挿入されます
一番下のテキストボックスには一番上のテキストボックスと同じ内容のテキストが出力されます
FireFox2では真ん中も下も一番上のテキストボックスと同じ内容のテキストが出力されます
これは何故ですか

<html>
<head>
<script langueage="JavaScript"><!--
function $(id){ return document.getElementById(id); }
function kenshou(){
temp=$("ta1").value;
$("ta2").appendChild(document.createTextNode(temp));
$("ta3").value=temp;

}
// --></script>
</head><body>
<TEXTAREA id="ta1" cols="40" rows="6" wrap="off"></TEXTAREA><br>
<TEXTAREA id="ta2" cols="40" rows="6" wrap="off"></TEXTAREA><br>
<TEXTAREA id="ta3" cols="40" rows="6" wrap="off"></TEXTAREA>
<button type="button" onclick="kenshou();">click</button>
</body></html>
72Name_Not_Found:2008/05/31(土) 17:27:11 ID:???
>>69
0は自然数じゃないだろって思ったけど、
0を含める流儀と含めない流儀との2つがあるんだな。
初めて知った。
http://ja.wikipedia.org/wiki/%E8%87%AA%E7%84%B6%E6%95%B0
73Name_Not_Found:2008/05/31(土) 18:27:25 ID:???
>>71
改行は\r\nになっていて
ta2の場合、\r=改行、\n=半角スペースになるようです。なぜか知らん。
ta3の場合は、valueプロパティ経由だとそこら辺は空気読んでくれるんじゃね。
7468:2008/05/31(土) 20:00:23 ID:???
>>69
ご回答ありがとうございます。やはりそうなるんですかね。
>>72
お時間ありがとうございます。そうなんです。深く分かって
ると余計に混乱してしまうということありますよね。
75Name_Not_Found:2008/05/31(土) 20:50:47 ID:???
あるフレームにページが読み込み完了したことを、他のフレームから知るには
どうしたらいいですか?
76Name_Not_Found:2008/05/31(土) 21:24:27 ID:???
>>73
そうなってるみたいですね
謎ですね
77Name_Not_Found:2008/05/31(土) 21:41:10 ID:???
>>67
adobe関連スレで聞いたら、JavaScriptの質問はここで聞けと言われたもので・・・。
なんとか教えてもらえんでしょうか?┏oペコッ
78Name_Not_Found:2008/06/01(日) 00:51:38 ID:???
web製作上のJavaScriptでアクロバットのDOM(?)を知ってる奴を期待されても……。
buttonGetIconもbuttonSetIconもないしなあ

webでのIM制御であっても、IEのCSS独自拡張弄るくらいしか思いつかないな。
value要素みたいなのが弄れるなら、ベタに文字置き換える関数でも挟んだらいいんじゃね?
79Name_Not_Found:2008/06/01(日) 04:14:27 ID:???
sage
80Name_Not_Found:2008/06/01(日) 20:59:28 ID:???
いくつかの iframe を 切り替えて表示するようにしています。

iframe のページを切り替えたときに、
切り替える前のページのfocus情報が残ったままになってしまいます。

focus を リセットする方法はありませんでしょうか?
81Name_Not_Found:2008/06/01(日) 23:07:15 ID:???
focusってOS上に1つという概念じゃなかったっけ。

もしかしてmouseoverとかで自分で管理してるの?
その場合は、documentのblurイベントとか拾わないといけないんじゃないかなぁ。
82Name_Not_Found:2008/06/01(日) 23:11:22 ID:???
>>66
2chのどこにも該当するスレなさそうだね。
ブラウザ以外のJavaScript用のスレ立てる手もあるが、人こないだろうなぁw
83Name_Not_Found:2008/06/01(日) 23:32:49 ID:???
というか今時ウェブページでJSをほとんど使わないだろ。
終わってんだよ。
気付けアホ、何回言わせんだ。
AS使え。
JSの使いどころはWindowsのいわゆるバッチ処理か、
XULなんちゃらに限られている。
もしかしたらPDFとかAdobe製品で使っても便利だろう。
84Name_Not_Found:2008/06/01(日) 23:34:47 ID:???
元気そうでなにより
85Name_Not_Found:2008/06/01(日) 23:50:56 ID:???
>>83
JSってJavaScriptのことをいってる?
だとしたらアホはお前だ。
86Name_Not_Found:2008/06/02(月) 00:14:03 ID:???
>>85
いや。JS終わった君が言ってるのはいつもJSであってJavaScriptではない。
これ重要。もしこの後言い方を変えたらそいつはニセ者。
87Name_Not_Found:2008/06/02(月) 00:16:08 ID:???
>>86
だから君のいうJSとはなんぞや?
88Name_Not_Found:2008/06/02(月) 00:17:58 ID:???
>>38=>>83かな?
>>52とか、このスレには真性っぽいのが現れるから面白いね。
8987:2008/06/02(月) 00:29:06 ID:???
>>87
だから君のいうJSとはなんぞや? だって?
そんなの知るか。JSなんて言語はどこにもないだろ。
何の意味でJSといっているかなんて本人にも分からんのじゃないかな。
Javaだのジャバだのという白痴と同類だろ。
90Name_Not_Found:2008/06/02(月) 00:35:30 ID:???
WEB制作板でJSっつったら、JavaScriptにきまってんだろ^^;
ttp://ja.wikipedia.org/wiki/Js
9180:2008/06/02(月) 00:38:29 ID:???
>>81

レスありがとうございます。

iframe の切り替えというのは、 複数のiframe を用意しておき
display パラメーターで 表示非表示を変えている状態です。
92Name_Not_Found:2008/06/02(月) 00:59:33 ID:???
>>91
まず、iframeに残ってるのは、focusじゃなくて、active要素だと思ってる。
active要素はフレーム単位で残るから。
何を見て「focus情報が残ったまま」だと判断したのか知りたいんだけど、
どちらにしてもdisplayを切り替えるタイミングで、
該当のiframeのcontentWindow(windowオブジェクト)にくっつけたメソッドを呼べば解決出来ると思うよ。
93Name_Not_Found:2008/06/02(月) 01:08:49 ID:???
>>90
ジャック・スパロウ
9480:2008/06/02(月) 01:10:55 ID:???
>>まず、iframeに残ってるのは、focusじゃなくて、active要素だと思ってる。
active要素はフレーム単位で残るから。

iframe を 非表示にしても、focusを当てた位置でカーソルが点滅してい
います。


>>該当のiframeのcontentWindow(windowオブジェクト)にくっつけたメソッドを呼べば解決出来ると思うよ。
すみません、 くっつけたメソッドって何でしょうか?

95Name_Not_Found:2008/06/02(月) 01:23:11 ID:???
話がかみ合ってないような気が

フォームなんかのカーソルなら focus() でなんとかなるような

でも個人的にフォーカスって聞くと
キーボードオペレーションの時にアクティブになる項目の方が
先に頭に浮かぶな
9680:2008/06/02(月) 01:40:16 ID:???

iframe の表示を切り替えたときに window.focus(); を呼ぶようにしたら カーソルの
点滅が表示されなくなりました。


97Name_Not_Found:2008/06/02(月) 01:46:52 ID:???
>>96
うぃー。よかったな。
今度から必要最低限のソースの提示とターゲットブラウザの指定をよろしく。
9896:2008/06/02(月) 02:08:48 ID:???
相談にのっていただきましてありがとうございました。
99Name_Not_Found:2008/06/02(月) 13:58:47 ID:???
関数内で次のように書きました。
if(aa >= 0){
// 入力中以外はキーを受け付けない
evt.returnValue = false;
evt.keyCode = 0;
return;
}
evtは引数でeventオブジェクトを渡されています。

しかし、evt.keyCode = 0;でアクセスが拒否されました。
というエラーが出てしまいます(毎回けでは無く突然突発
的に出ます)。
どうやったらエラーがでないようにできるでしょう
XP SP2でIE6です。
100Name_Not_Found:2008/06/02(月) 14:23:16 ID:???
>>99
try { ... } catch(e) { }
で囲んでおけばいいんじゃないの?
101Name_Not_Found:2008/06/03(火) 01:11:50 ID:???
>>99
イベントはkeydownとか?
こっちの認識では、returnValue=falseだけで十分だと思ってる。
「突然突発的」ってのがなんとか理由突き止めたいが。

あと、eventオブジェクトのクローン作るとかどう?
var ret = {};
for(var p in evt){ ret[p] = evt[p]; }
102Name_Not_Found:2008/06/03(火) 02:52:23 ID:???
103Name_Not_Found:2008/06/03(火) 07:04:23 ID:???
HTML(HTA)埋め込みWMP7+(clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6)で
ShoutcastのAAC+のストリーミング再生は可能でしょうか?
例: http://www.shoutcast.com/sbin/shoutcast-playlist.pls?rn=9631&file=filename.pls

MP3は問題ありません。

↓のプラグインを入れてローカルのWMPではAAC+ストリーミングを再生できる状態です。
http://www.orban.com/plugin/

ただローカルプレーヤでもCtrl-UでURLで開こうとするとコーデックエラーが出ますが
Ctrl-Oでファイルとして開くと再生できます。
WMP10、WMP11で同様の挙動です。

Ctrl-UとCtrl-Oで内部の再生処理が違うためだとは思いますが、
埋め込みプレーヤでは
MP.URL = url;
MP.controls.play();
という処理で再生しているのでURLとして開いている状態なのかもしれません。
埋め込みプレーヤでCtrl-Oと同じ開き方ができれば
なんとかなりそうな気がしますが、そんな方法はありますか?

104Name_Not_Found:2008/06/03(火) 08:28:12 ID:???
WSH(HTA)スレは別にあるんだけど。テンプレ見てね。
105Name_Not_Found:2008/06/03(火) 18:29:57 ID:???
return a とreturn(a)はちがいますか?
私は非常に初心者です。71026
106Name_Not_Found:2008/06/03(火) 20:45:51 ID:???
>>105
まったく同じ。「return 式;」が文の文法で、式は丸かっこで
囲んでも囲まなくても結果は同じだから。
107Name_Not_Found:2008/06/03(火) 21:09:29 ID:???
JavaScriptって、セミコロンが無くても
改行すると式として成り立っちゃうから厄介だよな
return a

return
a
じゃ違うもんな
108105:2008/06/03(火) 21:25:00 ID:???
>>106-107さん
とても示唆に富んだお答えありがとうございます。同じなんですか。
書いた後に思い出したのですがなんでも後の方のは評価がどうしたと
か難しいことを言ってました。自分でも実験したんですがやってみた
結果は同じだったので、この2つは結局同じなのかな、と思った次第
です。分かったようなことを言っていますが私は非常に初心者です。
109Name_Not_Found:2008/06/03(火) 21:43:22 ID:???
で?
110Name_Not_Found:2008/06/03(火) 21:51:36 ID:???
下一桁の前に.を入れることはできるでしょうか?
例)
534  = 53.4
64   = 6.4
8643 = 864.3
111Name_Not_Found:2008/06/03(火) 22:07:32 ID:???
MAS JScript> Echo(String(534).replace(/([0-9])$/, ".$1"))
53.4
MAS JScript> Echo(String(64).replace(/([0-9])$/, ".$1"))
6.4
MAS JScript> Echo(String(8643).replace(/([0-9])$/, ".$1"))
864.3

js> String.replace(534, /(?=[0-9]$)/, '.')
53.4
js> String.replace(64, /(?=[0-9]$)/, '.')
6.4
js> String.replace(8643, /(?=[0-9]$)/, '.')
864.3
112Name_Not_Found:2008/06/03(火) 22:34:44 ID:xhJdrQ39
setAttributeはIEで保証されていますか?使って大丈夫でしょうか?
113Name_Not_Found:2008/06/03(火) 22:50:36 ID:???
>>111
String.replaceのようにstatic関数として使えるとは知らんかったね。
とりあえず現状で動くのはGeckoだけ?か。
114Name_Not_Found:2008/06/03(火) 23:37:17 ID:???
>>112
保証されているとは言い難いね。使わない方が無難。
115Name_Not_Found:2008/06/04(水) 00:11:38 ID:???
>>112
W3C-DOMのElement#setAttributeとは別物で互換性がないことを踏まえた上で
自分で判断しろ。

>>113
JavaScript 1.6
116Name_Not_Found:2008/06/04(水) 00:36:17 ID:???
String.prototype.replaceならECMAとしては保証されてなかったか?
117Name_Not_Found:2008/06/04(水) 00:45:05 ID:???
>>110,111
num/10
ではなぜダメなの?
118Name_Not_Found:2008/06/04(水) 00:46:27 ID:???
>>63の中のaddEventListenerのやつを解決したい。
DOMFocusIn、Out、Activate以外にHTMLで使えないイベントは本当に無いの?
実は他にもいくつかあるんじゃないの?
119Name_Not_Found:2008/06/04(水) 00:48:02 ID:???
>>117
割り算を思いつくなんて天才すぐる。いや、まじで。
120Name_Not_Found:2008/06/04(水) 01:06:15 ID:???
>>117
10,200,3000とか。
121Name_Not_Found:2008/06/04(水) 01:49:02 ID:???
例を3つも挙げてるのに、そこの仕様はあいまいだよな。
122117:2008/06/04(水) 06:50:38 ID:???
>>120
あぁ!なるほど!
じゃあ
(a/10) + ((a % 10) ? '' : '.0')
とかかって思ったけど明らかに>>111の方が綺麗だな
こういうのが綺麗に出てこないからコード量が増えるんだな
123Name_Not_Found:2008/06/04(水) 10:12:35 ID:???
>>111ってMS臭い書き方だよね。美しくない。Stringを静的にする必要など
ないしオブジェクト指向に逆行している希ガス。1.6はよいのもあるがこれ
は頂けないね。
124Name_Not_Found:2008/06/04(水) 10:49:15 ID:???
ジェネリクスでググレカス
125Name_Not_Found:2008/06/04(水) 11:24:45 ID:???
>>124
安い医薬品と出ました。それが何か?
126Name_Not_Found:2008/06/04(水) 14:34:45 ID:Nb3aWEU+
web制作板のみなさんお世話になります。
中国の災害が予言されていたということで、大変興味を持ちました。
マスコットが不吉な揃い方をしているとかも言われていますが、特に日付に
関しては、チベット暴動と四川大地震については、発生した日付の10の位
と1の位と月の数字を足すとそれぞれ8になることから中国人の間では不安
が拡大して「五輪開幕日の8月8日が災いの根源」との説があるとのことで
す。この日付の関係式をjavascriptの日付関数で解けますか?javascriptの
ことは少し分かる程度です。よろしくお願いします。
127Name_Not_Found:2008/06/04(水) 16:39:56 ID:???
結局は何がしたいの?
128Name_Not_Found:2008/06/04(水) 21:40:22 ID:???
リラックスしたい
129Name_Not_Found:2008/06/04(水) 22:19:23 ID:???
>>123
モジラのトップがOCamlとPythonに傾倒しているからこうなる。
というかおぶじぇくとしこうにぎゃっこうとか、1.6から数年後に拒絶反応とかwww初心者ならブログでも書いとけよwww
130help:2008/06/04(水) 22:38:03 ID:GSbMkkT5
2進数 1111111111111111111111111111111 (31桁の2進数)
を10進数に変換するプログラムを書き、桁とその桁の値に該当
する10進数(例えば、4桁目は2の3乗で8である)および変換された
10進数を表にして出力せよ。
131help:2008/06/04(水) 22:45:45 ID:GSbMkkT5
130の続きです。
書き出しからまったくわかりません;;
ヒントだけでも教えてください。
javascriptでお願いします。
132Name_Not_Found:2008/06/04(水) 22:54:44 ID:???
alert(parseInt("1111111111111111111111111111111", 2));

後半
>該当する10進数および変換された10進数

の意味が分からん
133Name_Not_Found:2008/06/04(水) 23:05:56 ID:???
>>132
つまり各桁のべき乗を掛けて表わした数(つまり10進数)ってことだろ。
くだらん。
134Name_Not_Found:2008/06/04(水) 23:10:22 ID:???
さすがに学校の課題かバイトの採用試験の答えを求めるような質問はNGだろ。
135Name_Not_Found:2008/06/04(水) 23:10:32 ID:???
>>132
吹いたw
確かにそうだけど
出題の意図としては違うんだろうな
136Name_Not_Found:2008/06/05(木) 00:00:18 ID:???
>>130

var a="1111111111111111111111111111111";
var b=0;
var c= new Arry();
for(var i=0;i<a.length;i++){
c[i]= Math.pow(2, i);
if(a.charAt(a.length-i) == "1"){ b+= Math.pow(2, i);}
}

初心者の俺はこれで限界。参考にならんと思うけどがんばって
137Name_Not_Found:2008/06/05(木) 00:07:36 ID:???
138Name_Not_Found:2008/06/05(木) 00:17:00 ID:???
>>136
みたところそのcは何なの?ま、でなくても動きそうもないコードだなw
139Name_Not_Found:2008/06/05(木) 01:31:27 ID:???
キー操作の停止について、
下記のソースはfirefoxでは動かなく出来るのですが、
IEでは無視されてしまいます。
IEでも同じようにキー入力を禁止するにはどうすれば良いでしょうか?

document.onkeypress = enter;
function enter()
{
return false;
}
140Name_Not_Found:2008/06/05(木) 01:33:59 ID:???
やめてください
141139:2008/06/05(木) 01:43:18 ID:???
onkeydownもやればOKでした。
自己解決すみません。
142Name_Not_Found:2008/06/05(木) 10:37:39 ID:???
ついでにonmouseoverもやっとけ。
敵を逃がすな、onblurで身動きできなくしてしまえ。
143Name_Not_Found:2008/06/05(木) 12:16:24 ID:???
やめてください
144Name_Not_Found:2008/06/05(木) 14:31:16 ID:???
いいじゃないか。な、オレのこと、好きなんだろ?
145Name_Not_Found:2008/06/05(木) 14:58:08 ID:???
いえ、これと言って好きではありません。
146Name_Not_Found:2008/06/05(木) 15:22:01 ID:???
妹が大事なら黙って言う事をきけ。
147Name_Not_Found:2008/06/05(木) 15:56:21 ID:qlY8JUcB
JavaScriptでURLからGETメソッドでパラメータを渡したいのですが可能ですか?

例えばtest.jsというファイルの中に、
function funcTest(a, b) {
c = a + b;
document.write(c);
}
という関数があるとします。
このaとbの値をURLからGETで受け渡して結果cを表示するようなことをしたいのですが、
JavaScript単体で可能でしたらどのようにやればよいかアドバイスお願いします。
それともhtmlから呼び出さないと無理でしょうか?
148Name_Not_Found:2008/06/05(木) 16:19:52 ID:???
>>147
location.queryにGETのパラメータ入ってるから。
「HTMLから呼び出す」というのが何を意味しているのか不明だけど。
ついでにdocument.write()については FAQ>>3 のQ4/A4を読んでおいた
方が幸せになれるかも知れない。
149Name_Not_Found:2008/06/05(木) 17:59:54 ID:qlY8JUcB
>>148
少し手惑いましたが上手くいきました。
location.searchなんて便利なものがあったんですね。
matchと組み合わせて値の検査もうまくできました。
document.writeの件は了解です。頭に入れときたいと思います。
解決しましたどうもありがとうございました。
150Name_Not_Found:2008/06/05(木) 19:07:08 ID:???
ごめん、ついlocation.queryとか打ってしまうんだよなー。
まあ解決したんならよかったけどー。
151Name_Not_Found:2008/06/06(金) 00:37:03 ID:HA+zQTrr
nameが"一定のルール+変数"であるラジオボタンが複数あります。
そして、このnameと同じIDのDIVがあります。
onlord時に、ラジオボタンのvalueで出し分けしたいのですが、どうすれば良いでしょうか?

Javascriptは適当ですが、こんな事をしたいわけです…。
("abc"が一定のルールです)

-HTML-
<input type="radio" name="abc_123" value="0" checked>ボタン1
<input type="radio" name="abc_123" value="1">ボタン2
<div id="abc_123">hogehoge</div>
<input type="radio" name="abc_456" value="0">ボタン3
<input type="radio" name="abc_456" value="1" checked>ボタン4
<div id="abc_456">hogehoge</div>

-JavaScript(jQuery)-
$(function(){
var i = $("input[@type='radio']:checked").val();
if(i == 0){
hide();
}elseif(i == 1){
show();
}
});
152Name_Not_Found:2008/06/06(金) 00:49:15 ID:???
starts-with(@id, 'abc')
153Name_Not_Found:2008/06/06(金) 01:03:25 ID:HA+zQTrr
>>152
ありがとうございます。
しかし、検索しても「XPath」というものしか出てきません。
個人的にはmatchあたりを使用して判断するのかと思っていましたが、もうちょっとヒントをいただけないでしょうか?
154Name_Not_Found:2008/06/06(金) 01:15:46 ID:???
めんどうだから<select>にしてはいかがか
155Name_Not_Found:2008/06/06(金) 01:21:18 ID:???
>>151
スクリプト、テキトーすぎでしょww
意外と難しいな
156Name_Not_Found:2008/06/06(金) 01:45:10 ID:???
<script type="application/javascript; version=1.7">
[e for (e in function (x) {
    while (true) {
        let e = x.iterateNext();
        if (e) yield e; else throw StopIteration;
    }
}(document.evaluate("descendant::input[@type='radio' and @name and starts-with(@name, 'abc_')]",
                    document.body,
                    document.createNSResolver(document.documentElement),
                    5, null))) if (e.checked)
 ].forEach(function (e) {
     document.getElementById(e.name).style.setProperty('display', e.value == '1' ? 'block' : 'none', '');
 });
</script>
157Name_Not_Found:2008/06/06(金) 01:49:21 ID:???
これは凄い
158Name_Not_Found:2008/06/06(金) 01:55:51 ID:???
>>151
こんな感じ?
$(function(){
  var name_prefix = "abc_";
  $("input[type=radio][name^="+name_prefix+"]:checked").each(function(){
    var self = $(this), name = self.attr("name");
    $("#"+name).css("display", (self.val() == 0 ? "none" : "display"));
  });
});
159Name_Not_Found:2008/06/06(金) 02:05:44 ID:???
>>158
display値間違ってる
> $("#"+name).css("display", (self.val() == 0 ? "none" : "display"));
$("#"+name).css("display", (self.val() == 0 ? "none" : "block"));
160Name_Not_Found:2008/06/06(金) 02:42:07 ID:???
>>158 >>156
おまえらもまだまだだなぁ。( ´ー`)y--┛~~
formタグ(id:f1)で囲む。ラジオボタンはもちろん漢の2択な。

var list = ["abc_123", "abc_456"];
var divs = document.getElementsByTagName("div");
for(var i = 0; i < list.length; i++){
var colum = list[i];
if(document.forms["f1"].elements[colum][0].checked){
for(var j = 0; j<divs.length; j++){
if(divs[j].id == colum){
divs[j].style.display = "none";
}}}}}
161Name_Not_Found:2008/06/06(金) 02:53:11 ID:???
>>160
変数って言ってるんだからそれはダメでしょww
162Name_Not_Found:2008/06/06(金) 07:37:33 ID:???
jQuery使ってるならこんな感じかな

$(function(){
  $("input[@type='radio']:checked").each(function() {
    var id = '#' + this.name;
    (this.value == 1) ? $(id).show() : $(id).hide();
  });
});

と、書いた後に>>158で既に出てたことに気づいた。
163Name_Not_Found:2008/06/06(金) 08:46:48 ID:???
>>154-162
皆様、本当にありがとうございました。
大変参考になりました。
安易なコピペをせず、1つ1つ理解しながら使用したいと思います。
本当にありがとうございました。
164Name_Not_Found:2008/06/06(金) 12:12:07 ID:bbRuoLWJ
フレームを使って画面を左右2つに分割しているんですが、
左側フレームから右側フレームの読み込みが完了した事を知るためには
どのようにすればよろしいでしょうか?
165Name_Not_Found:2008/06/06(金) 12:16:07 ID:???
bodyの末尾にalert('終わったよ')でいいんじゃない?
166Name_Not_Found:2008/06/06(金) 12:44:34 ID:???
>>164
右フレームの「HTMLが」読み終わったことを知る?それとも
中に含まれている「画像なども」全部読み終わったことを知る?
前者なら右フレームのbody末尾に
<script type="text/javascript">finished = true;</scirpt>
とか入れておいて左からは
if(parent.frames.右フレーム名.finished) ...
とかで判定すればいいんじゃないかなー。試してないけど。
167Name_Not_Found:2008/06/06(金) 14:30:22 ID:bbRuoLWJ
>>166
「右フレームの「HTMLが」読み終わったことを知る」の方になります。
166さんのコードで試してみたら判定できました。
違うフレームの変数へのアクセスの仕方を知らなかったのでとても参考になりました。

>>165
>>166
body末尾に判定用の何かを用意してあげなくちゃ実現できないのですね。
読み込み完了を知る術がjavascriptに用意されているわけじゃないのですね。
勉強になりました、ありがとうございます。
168Name_Not_Found:2008/06/06(金) 15:38:47 ID:???
 テキストエリアのフォーカスについて
 おうかがいしたいことがありやってまいりました。
 よろしくお願いします。

 1. ページ上部にフォーカスのあたったテキストエリアがあります(このページをAとします)。
 2. このAページは縦に長いため、画面右にはスクロールバーが表示されています。
 3. Aページ全体ではありますがページ下部の方にも、別ページへリンクしている部分いくつかあります。
 4. その別ページへのリンクは同じウィンドウで行われ、新しいウィンドウで表示はさせません。
 5. このAページの一番下にあるリンクから、別ページ(これをBとします)を開きます。
 6. A・Bは同じウィンドウなので、
   ブラウザの「戻る」または右クリック「前に戻る」でBからAに戻るとします。
 7. 通常ならば、Aに戻ると一番下にあったリンクからBへ移動したので、
   そのリンクのあったページ下部が画面に表示されると思いますが、
   Aページ上部にあるテキストボックスにフォーカスをあてているため、
   そのテキストボックスのあるページ上部が画面に表示されます。

 
 私としては上の例BからAに戻ったときに、
 移動する前のままページ下部が表示されてほしいのです。
 そこでお聞きしたいのですが、
 ページ上部のテキストボックスにフォーカスをあてたままで、
 かつ、BからAに戻ったときに移動前のページ下部を表示させる、
 ということは可能でしょうか。
 もちろん、Aページ中央からCページに移った場合、
 CからAに戻るとすると、移動前の中央ページのままであることはお分かりかと思います。

 お知恵、ご意見お聞かせください。 
169Name_Not_Found:2008/06/06(金) 18:19:50 ID:???
>>168
再現しないなあ。というか、下部のリンクをクリックしたときに
クリックしたことによってそのリンクにフォーカスが当たり
テキストエリアのフォーカスが外れるような気がするんだけど、
何か勘違いしている?
170Name_Not_Found:2008/06/06(金) 18:25:19 ID:???
>>167
IE以外の主要ブラウザには普通にある
ttp://d.hatena.ne.jp/flick-flick/20080409
171Name_Not_Found:2008/06/06(金) 18:26:14 ID:???
>>167
IE以外の主要ブラウザには普通にある
ttp://d.hatena.ne.jp/flick-flick/20080409
172Name_Not_Found:2008/06/06(金) 18:26:34 ID:???
ミスったすまん
173Name_Not_Found:2008/06/06(金) 20:12:02 ID:???
>>170-172
10年前からIEにあったreadyStateと、9年前からIEのHTCにあったondocumentreadyなどを参考に他のベンダが真似ただけ。
174Name_Not_Found:2008/06/07(土) 12:36:42 ID:???
IE6で、下記の設定すると、
別のウィンドウがアクティブ時に
スクリプトを記入したブラウザにマウスを乗せると、
ブラウザのタクスバーが点滅するんですが、
させないようにする何か良い方法ありませんか?

<body onMouseOver="window.focus();">

firefoxでは大丈夫みたいです。
175Name_Not_Found:2008/06/07(土) 12:52:19 ID:???
>>174
HKEY_CURRENT_USER\Control Panel\Desktop\ForegroundLockTimeout=0
176174:2008/06/07(土) 23:04:50 ID:???
>>175
すみませんありがとうございます。
確認してみます。助かりました。
177Name_Not_Found:2008/06/07(土) 23:26:37 ID:???
<script type="text/javascript">
var TEST = function(){
this.data = "asdf";
this.a = function(){
console.log(this.data)
}
}
var test = new TEST();
test.a();
setInterval(test.a,3000);
</script>

こういうコードを書いてFirefox2+firebugで実効してみたところ
asdf
undefined
undefined
undefined
以下,ずっとundefinedと出力されます.

setIntervalで呼び出す場合,this.dataでクラスのプロパティを参照出来ないみたいなんですが,
何か方法はないのでしょうか?よろしくお願いします.
178Name_Not_Found:2008/06/07(土) 23:28:10 ID:???
FAQ嫁としか言いようがない
179Name_Not_Found:2008/06/07(土) 23:54:27 ID:???
質問です。
生成した要素にそれぞれ
<div id="t1" onclick="test(1)">
<div id="t2" onclick="test(2)">
<div id="t3" onclick="test(3)">
...
とHTMLで書いた時と同じに動くように
繰り返し処理でイベントを追加していきたいのですが、
どうしてもうまくいきません。

obj.setAttribute('onclick', 'test(' + i + ');');
なら期待通りの動作が可能ですが、これではIEで動きませんし、
obj.addEventListener('click', function (event) {test(i);}, false);
などでは、それぞれのイベントの引数が同じになって?しまいます。

どうしたらいいのでしょうか・・・?
180Name_Not_Found:2008/06/08(日) 00:12:07 ID:???
>>178

ありがとうございます.解決しました.
181Name_Not_Found:2008/06/08(日) 00:36:53 ID:???
>>179
let
182Name_Not_Found:2008/06/08(日) 00:44:57 ID:???
>>179
バブルするイベントタイプには、アホ外人が俗に言うイベントデリゲーションを使え。なんべん言わせるんだ。
183Name_Not_Found:2008/06/08(日) 00:47:31 ID:???
>>179
いわゆるイベントハンドラーの引数は、イベントオブジェクト1つにするよう決めておけ。欲しい値はイベントオブジェクトに問え。なんべん言わせるんだ。
184Name_Not_Found:2008/06/08(日) 01:26:01 ID:???
>179です。
IE用とそれ以外用の処理を振り分ける形で解決しました。
- IE用 -
obj.setAttribute('onclick', new Function('test(' + i + ');'));
- その他用 -
obj.setAttribute('onclick', 'test(' + i + ');');

>>181
let・・ううむ。ブロックやらスコープやら意味の分からない言葉が。
プログラミング経験のない自分には理解が難しそうです。

>>182
イベントデリゲーション・・・親要素でイベントを監視する?
すみません、何度言われても基礎がないので理解できませんでした。
具体例を見比べて感覚的に理解するのがやっとのレベルです。

>>183
イベントオブジェクトから値を得る・・・。
そのイベントオブジェクトとやらが、なぜこちらの望む値を知っているのでしょうか・・・?

質問したものの、自分の知識不足で回答も理解できなくて申し訳ありません。
答えて下さった皆さんに感謝します。本当にありがとうございました。
185Name_Not_Found:2008/06/08(日) 08:42:22 ID:???
FAQ から setAttribute に関する Q&A が欠落してる ?

>>184
振り分けは美しくないと思う.
なぜって UA の判定によって無駄に長くなるし,
判定方法によっては誤動作発生の可能性が広がる.
ではどうするか ?

この場合は...
obj.onclick=function(){test(i);}
てな感じで解決する.
お試しあれ.
186Name_Not_Found:2008/06/08(日) 10:05:44 ID:nfOmMZGh
すみません誰か教えてください

フィールドに数値を入力すると
自動的にカンマ編集してくれるJavascriptをOnKetupに設定しました。
ですが、”カンマ編集なし”フィールドにフォーカスがある状態でSHIFT+TABキーを押したとき
”カンマ編集つき”のフィールドにフォーカスが移っているようなのですが
カーソルが表示されていません。
Onkeyupの処理の後にthis.focus();をいれても同様です。

フォーカス移動後、カーソルが正しく表示されるにはどうしたらいいのでしょうか。
============================================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>634 - JavaScript - 数値のカンマ編集を行う</title>

<script language="Javascript">
<!--
function addComma(value){var i;value=value.split(",").join("");
for(i = 0; i < value.length/3; i++){ value = value.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2");}
return value;}
//-->
</script>
</head>
<body>
カンマ付き<input type="text" name="aaa" onkeyup="this.value=addComma(this.value)">
カンマなし<input type="text" name="bbb">
</body>
</html>
187Name_Not_Found:2008/06/08(日) 11:10:04 ID:???
ファイル選択の際に拡張子xxxのみを選択させるようなフィルタをかけたいのですが、どのように記述すると良いでしょうか?
現在は拡張子xxxファイル以外を選択し実行すると「xxxファイルを指定してください」というメッセージを出しているのですが
やはり選択時にxxxファイル以外を選択できないようにしたいです いい方法ありませんか?
-------------------------------------------------------------------------------------------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" language="JavaScript">
<!--
function subMit()
{
var name = document.xxxUploadForm.xxxFile.value;
var fileTypes = new Array();
fileTypes = name.split(".");
var fileType = fileTypes[fileTypes.length-1].toLowerCase();
if (fileType != "xxx") {
alert('xxxファイルを指定してくだい');
return false;
}
return true;
}
//-->
</script>
</head>
<body>
<form name="xxxUploadForm" method="post" action="upload.do" enctype="multipart/form-data">
<fieldset>
<legend>xxxファイルの転送</legend>
<input type="file" name="xxxFile"><br>
<input type="submit" value="アップロード" onClick="return subMit();">
</fieldset>
</form></body></html>
188Name_Not_Found:2008/06/08(日) 11:25:06 ID:???
ブラウザが対応しているかどうか知らんが
一応input要素にはaccept属性というものがある
189Name_Not_Found:2008/06/08(日) 11:31:21 ID:???
>>188 それは試しましたがIE、Firefoxでもダメでした
やはりしょうがないのですかね?
こういう比較的単純なものはすぐにできそうだと思ったのですが
190Name_Not_Found:2008/06/08(日) 13:06:10 ID:???
input type=fileはセキュリティ上の問題が起きやすいので
ガチガチに制約されていてどうにもならないことが多い。
191Name_Not_Found:2008/06/08(日) 13:10:06 ID:???
>>187
Flashを使うしかない
192Name_Not_Found:2008/06/08(日) 13:16:32 ID:fYNUydwk
function sendVideoLink(videoId){
var url = '/contact/sendlink?obj=v&id='+videoId;
checkLogin(MM_openBrWindow,url,'','scrollbars=yes,width=695,height=490,resizable=yes');
}

<a charset="400-002-2-4"
href="javascript:sendVideoLink('XMjc3MDQ1MzI=','0200640400482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9');">??</a>

この場合sendVideoLinkには引数2つが送られるんですよね?
それともvdeoIdというのは配列変数としてみなされて2つともそこに入るんですか?
でも
var url = '/contact/sendlink?obj=v&id='+videoId;
この使い方だとどうもスカラ変数っぽいですし。

よろしくお願いします。
193Name_Not_Found:2008/06/08(日) 13:21:15 ID:???
HTMLとかHTTPとかURIの勉強をするのが先だろ。
194192:2008/06/08(日) 19:47:11 ID:fYNUydwk
どなたもいませんか?
195Name_Not_Found:2008/06/08(日) 19:49:39 ID:???
華麗にスルーされてると思わないとね。あまりに厨房だから
皆引いてるんでしょ。
196192:2008/06/08(日) 20:21:54 ID:fYNUydwk
>>195
具体的にどこが失礼な質問なのでしょうか?
197Name_Not_Found:2008/06/08(日) 20:44:13 ID:???
>>192
配列では無く、videoIdには一番目の引数(XMjc3MDQ1MzI=)だけが渡される。

>>196
このスレにはテンプレ脳な暇潰しのカスが常駐しているようなのでスルーでおk。
198Name_Not_Found:2008/06/08(日) 21:27:52 ID:???
>>192
JavaScriptに慣れるとわかるけど、関数の引数の数は呼び出す側の数と一致しなくても良くて、
関数の方が少ないなら呼び出した引数の先頭から順に入る。

なので、この場合は>>197が言ってる通り2番目の引数は無視される。
sendVideoLink(videoId1, videoId2){}
とかにして2つとも受け取るようにするか、
呼び出す側をsendVideoLink(['XMjc3MDQ1MzI=','0200640400482D864C5AE000AEF6647CED502D-7AA2-9D39-9256-82A8FD7CC8D9'])
って配列にして、関数側でvideoId[0],videoId[1]で使い分けるか、
あとは関数側でargumentsって配列に引数が全て入ってるからそれを使うか。

ということで、テンプレ見て勉強するといいと思うよ
199192:2008/06/08(日) 21:28:37 ID:fYNUydwk
>>197
ありがとうございます!
やはり配列ってことにならないんですね。
sendVideoLink関数の方でargumentsを使えば一応は2個目の引数も受け取れるようですね。IE7動作。

でもどうもsendVideoLink関数でarguments関数を使ってないんですよね。
それだと何の為の2つの引数なのかまったくわかりません。
何かの裏技なのでしょうか。

もしくはsendVideoLink関数内で別関数を呼んで、
そっちの別関数からsendVideoLink.argumentsをいじることができるんでしょうか?

function gest(){ return(goueki.arguments[2]) }
function goukei(a) { return(gest()) }
document.write(goukei(1,2,3,4,5));

これIE7で試しても何も表示されないんです。なのでやはり別関数からいじる事はできないんですよね?
一体この作者はどういう意図で2つ渡してるのそれを使ってないのでしょうか?
いや、やはりどうにかして使ってると思うのですが・・・・
200192:2008/06/08(日) 21:31:43 ID:fYNUydwk
>>198
ありがとうございます!
すいません>>192はyoukuのソースなんです。
一体どうやってフラッシュを表示してるのかを調べてるんです。
URLひとつで実際には4つを順々に表示してるんです。
いや、4つではなくて、動画によって数は違うんですけどね。

で、youkuがわざわざ引数2つを渡してるのに2個目は実際には何にも使わないなんてことはないはずだけど、
使ってる形跡を見つけられないんですよ。
201Name_Not_Found:2008/06/08(日) 21:44:55 ID:???
ks
202189:2008/06/09(月) 00:51:37 ID:???
>>190
何か別の方法でファイルを選択できますか?

>>191
例えばどのようにFlashを使うのでしょう?
203Name_Not_Found:2008/06/09(月) 01:57:44 ID:???
>>190
type="file" の時はおまえみたいな非常に浅い理解で具体的に何が出来て何が出来ないかを示せない馬鹿が必ず出てきて鬱陶しいよね。
204Name_Not_Found:2008/06/09(月) 02:06:41 ID:???
>>199
>goueki
205Name_Not_Found:2008/06/09(月) 02:46:22 ID:???
正直203のが鬱陶しいけどな
206Name_Not_Found:2008/06/09(月) 06:25:01 ID:vGF9cdNm
複数のブログやサイトのRSSを用いて↓のサイトのように、
ブログタイトル、記事タイトル、更新日を表示させる方法をお願いします。
http://www.webmemo.jp/star/update.php
207Name_Not_Found:2008/06/09(月) 08:16:45 ID:???
>>206
できない。JavaScriptは元鯖からのデータしか読めないから。
HTAとかならできるのかも知れないがスレ違い。
208Name_Not_Found:2008/06/09(月) 08:56:37 ID:???
>>206
つ「Google AJAX Feed API」
ttp://code.google.com/apis/ajaxfeeds/

日本語の解説・サンプルもいっぱい転がってるから、必要なら
「rss」あたりの単語と組み合わせてググってね。

>>207
↑はJavaScript以外で拾ってくるけど処理はJavaScript側だし、
スレ違いってわけでもないよな。
209Name_Not_Found:2008/06/09(月) 11:11:53 ID:???
なるほどー、ライブラリ/フレームワークをどうするんだという
話が前にあったけど、さまざまなAPIをどうするんだという話も
あるわけね。
210Name_Not_Found:2008/06/09(月) 12:52:59 ID:???
APIの使い方なんて簡単だろ。自分のコードを晒してする質問と何ら変わらん。
211168:2008/06/09(月) 13:23:15 ID:???
>>169

 亀レスでもうしわけなし。私が勘違いしてるのか・・・。たとえば単純に書くと、

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>たとえば</title>
</head>
<body onLoad="document.form.kensaku.focus()">
<form action="#" name="form">
<p>なんか入力:<input type="password" name="kensaku" size="18"></p>
</form>
<hr>
1: 【お知らせ】2ちゃんねるサーバ停止のお知らせ【台数半分にすっぞ】 (1) 2: 【倒産】VS(ベンチャーソリューション)を語る (49)
・・・・・(省略)・・・・・・・
99: アクセスしてきた奴の自鯖を晒すスレ (41) 100: 壁紙のダウンロード方法って・・・? (246)
<hr>
<a href="http://www.2ch.net/">2ちゃんねる</a>
</body>
</html>
 
 ↑一番上、入力欄下のデータ部に(省略)とありますが、スクロールバーが出るくらいデータが入っているとします。
 ページ下部のリンクで別ページを開いたのち、「戻る」で、この「たとえば」ページに戻ると、
 画面は、ページ上部フォーカスのあたっている入力欄のところが表示されている(はず)。
 そうではなく、戻ったらページ下部のリンクがあった画面が表示されてほしい、のです。
 入力欄のフォーカス指定をはずすと、そうはなるのですが、
 フォーカスはあてたまま、戻るとリンクのあるページ下部が画面に表示される、
 という状態にしたいのです。

 これも説明になってないか・・・。もうしわけない。
212Name_Not_Found:2008/06/09(月) 13:29:55 ID:???
>>211
それが分からないんだけど、「ページ下部のリンクで別ページを開く」
ってそのリンクをクリックすることじゃないの?クリックしたらその
リンクにフォーカスが行って入力欄のフォーカスは外れそうに思える
(自分で簡単なサンプルを作ってやってみるとそうなる)んだけど、
何が違うのかな?
213168, 211:2008/06/09(月) 13:53:03 ID:???
>>212

>「ページ下部のリンクで別ページを開く」ってそのリンクをクリックすることじゃないの?

 クリックします。
 そのあとがいまいちよくわからないのですが・・・。
 
 たとえば、「2ちゃんねる検索」も検索用テキストボックスにフォーカスがあたっていますよね。
 で、javascriptをキーワードに検索します。
 それで現時点で一番下にある「PHPとjavascriptの連携 (48) - WebProg板@2ch」を
 「クリックして」「ページを開く」「PHPとjavascriptの連携」ページ確認、そして「戻る」をすると、
 検索結果のページトップというか、カーソルが点滅している検索用テキストボックスのところがトップになっている画面が表示される。
 そうではなくて、5秒前まで見てた「PHPとjavascriptの連携 (48) - WebProg板@2ch」があったページ下部が表示されてよ、
 うまい指定の仕方で、常時、検索欄でカーソルはチカチカしてるけど、
 「戻る」したらページ移動前に見ていた画面が表示される、
 ということは可能か、というのが質問していることなんですが・・・。

>クリックしたらその
>リンクにフォーカスが行って入力欄のフォーカスは外れそうに思える
>(自分で簡単なサンプルを作ってやってみるとそうなる)んだけど

 ここか。だれかここを理解できるよう橋渡ししてください・・・(涙)。
214Name_Not_Found:2008/06/09(月) 14:01:24 ID:a/ZdMAN2
下のように、マウス座標をページに表示しようとしているのですが
IE6でうまくいきません。Firefoxだと出来たのですが、原因は何なのでしょうか?

<script type="text/javascript" src="./prototype.js"></script>
<script type="text/javascript">
<!--
document.onmousemove = function(event) {
 $("result").innerHTML = "(x, y) = (" + Event.pointerX(event) + ", " + Event.pointerY(event) + ")";
}
// -->
</script>
215Name_Not_Found:2008/06/09(月) 15:11:42 ID:???
>>214
FxとIEではイベントオブジェクトの渡され方が違う。とりあえず、
関数の入口(1行目と2行目の間)に
if(!event) event = window.event;
を入れてみたら動くかも知れない。prototype.js使ってないから
どうなるか分からないんだけどね。
216Name_Not_Found:2008/06/09(月) 17:01:44 ID:???
Prototype.js関係ないだろ。環境にある識別子と同じ名前を引数に付けて乗っ取るから悪い。


ところで、1999年後半以降からの結果論だが、=関数名 は、NN3、=関数式 は、IE4, NN4 らのために一時凌ぎで実装されたもの。
マイナーどころでは、Opera6またはそれ以前は、この書き方しか受け付けないが、まあ、これはどうでもいい。
つまり、これが本当に有効だったのは、1998年前後の1年間ほどの期間に過ぎない。
1999年秋にはattachEvent()を使えたし、同じ頃にモジラもaddEventListener()が使い物になっていた。

本来なら、過去5年で、イベント処理に限っては、 =関数式(or 関数名) は消えたはずだとおもうが、
非イベントオブジェクト(MS用語)であって、副作用を伴う他のプロパティと同列の、onreadystatechangeとの混同が起きたと考えられる。
この混同のせいで、=関数式(or 関数名) という暫定処置が、何と、2008年の今でもバリバリ現役のままである。

匿名関数または関数本体以外からは参照不可能な名前付き関数式を使えば、
attachEvent(), addEventListener()されたハンドラをdetachEvent(), removeEventListener() することは出来ない。
そして、ハンドラにはイベントオブジェクトが引数1つだけ渡される。
(MSにとってこれはドキュメント化されていない実装に過ぎないが、変更されることはありえないのが現実というものだ。)

HTMLのイベント属性として書けば、...innerHTML = ...innerHTML.replace(...) みたいな豪快な書き換えでも残る場合が多い。
そして、eventという共通の名前でイベントオブジェクトを参照できる。

ところが、=関数式(or 関数名) はあっさりと消え去る。
それが便利なのか不便なのかは条件次第だが、
意図せず消してしまうトラブルを防ぐために、もうこれはなるべく使わない方が賢明だろう。

何度も言うが、まとめるとこうだ。こうしておけば、eventという名前の引数にしておいてトラブルことは無い。
*バブルするイベントタイプは、アホ外人が俗に言うイベントデリゲーション。attachEvent(), addEventListener() で待ち構える。
*バブルしないイベントタイプは、HTMLのイベント属性値として書く。ブサイクでもそうする。
217Name_Not_Found:2008/06/09(月) 18:14:06 ID:???
user.js用にマウスストーカー作ってるんだが
アイコン程度じゃなくてリンク情報とかを表示するから結構サイズ大きめになり、サイズも毎回変わります
popup = document.createElement('div')
document.body.appendChild(popup);
てしてdocument.onmousemove時にwindow.event.clientYでマウスカーソルの位置を取得して動かしてるんですが
画面の端から飛び出してしまったり、Flashに重なって見えなくなってしまうことがあってなかなか見やすいマウスストーカーが出来ません
その辺ひとまとめにしたサンプル合ったら教えて下さい
218Name_Not_Found:2008/06/09(月) 18:31:50 ID:0upt6Yhx
パソコンをリカバリーした後、急にyoutubeやニコニコ動画(動画を見る時、画面だけ表示されない)が見れなくなってしまいました。
youtubeには『JavaScriptがオフになっているか、古いバージョンのAdobe Flash Player を使用しています。』
と表示されました。

『最新のFlash Playerを入手してください。』とあったんですが、たぶんこれは関係ないと思います。

JavaScriptをオンにする方法を教えて下さい。
回答宜しくお願いします。
219Name_Not_Found:2008/06/09(月) 18:45:25 ID:???
スレ (´∀`( ´∀`) チガイ
220Name_Not_Found:2008/06/09(月) 19:38:21 ID:???
変な user.js 入れてると見れなくなったりするけどな
221Name_Not_Found:2008/06/10(火) 12:49:34 ID:dW29imBv
イメージマップからform送信をしたいんですけど、
<form action="---" name="a">
<input name="b">
</form>
<img〜
<area href="javascript:document.a.b.value='x';document.a.submit();"〜>
とかで動きません。
どーすりゃいいっすか?
222Name_Not_Found:2008/06/10(火) 14:03:32 ID:???
>>221
アンタが勝手にOKと思って省略したとこに失敗があるんだろ。
サンプル作ってみたが動くよ。貼って試せる例を作って貼れボケ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
document.forms.f0.elements.t0.value = 'xx';
document.forms.f0.submit();
}
</script>
</head><body>
<h1>Test</h1>
<form name="f0" action="#"><div><input type="text" name="t0"></div></form>
<img src="t0.png" usemap="#m0"><map name="m0">
<area shape="rect" coords="10,10,40,40" href="javascript:test()">
</map></body></html>
223Name_Not_Found:2008/06/10(火) 14:48:12 ID:CRyogfYR
ttp://d.hatena.ne.jp/Kishi/20071219/1198069464
マウス座標を取りたいのですが、
このスクリプトをjavascriptから実行するにはどうしたらよいでしょうか?
224Name_Not_Found:2008/06/10(火) 14:56:24 ID:???
初歩的な質問ですみません、、

onClick="myChgPic('画像データ')"でサムネイルをクリックすると
別の場所で画像が大きく表示されるのをを作ったのですが
ワタシのPCでは動作したのですが
クリックしても無反応なPCがいくつかあります。

考えられる原因とは何でしょか?
225Name_Not_Found:2008/06/10(火) 14:59:38 ID:???
>>224
考えられる原因は数限りなくあるから、とりあえずサンプルコードを貼るといいと思うよ
226Name_Not_Found:2008/06/10(火) 15:06:35 ID:???
>>225
レスありがとうございます。。
とりあえず要点だけまとめたサンプルコード張ります。

<SCRIPT language="JavaScript">
<!--
function myChgPic(myPicURL){
document.images["myBigImage"].src = myPicURL;
}
// -->
</SCRIPT>
<A href="javascript:void(0)" onClick="myChgPic('test.jpg')">test</A>

これぐらいで分かるものでしょうか・・?
227Name_Not_Found:2008/06/10(火) 16:11:13 ID:???
>>226
document.images["myBigImage"]が何意味してるのかわからないよ
と思ったら
http://www.red.oit-net.jp/tatsuya/java/image3.htm
これ参考にしたのか。
この通りなら動くと思うけど、クリックしても無反応なPCってOSとブラウザ何?
とりあえず、myChgPicの中にalert(document.images["myBigImage"])とかを追加して
ちゃんと取れてるか確認してみたら?

あと、このサイトの書き方が古いからあんまり参考にしない方が良いと思う
228Name_Not_Found:2008/06/10(火) 16:17:55 ID:???
>>223
そのページに全部書いてあると思うが。何が分からないんだか
こっちに分からないんで説明のしようがないという感じ。
229Name_Not_Found:2008/06/10(火) 16:43:15 ID:???
>>227
一応["myBigImage"]は認識されているみたいです。
実は動作しないPCというのが手元にないもので
ちょっとOSやブラウザを確認してきます。
どうもありがとうござました!
230223:2008/06/10(火) 17:29:12 ID:CRyogfYR
そのページでは
<a href="javascript:void(0);" onclick="pos(event)">マウス座標を得る</a>
からpos(event)を呼んでますが、そうではなく、他のjs
たとえばfunction hoge(){.....} からpos(event);を呼びたい場合は
hogeのなかになんと書けばよいでしょうか? ということです。
231Name_Not_Found:2008/06/10(火) 17:45:18 ID:???
>>230
クリックも何もしない時はマウスの座標取れないから。
232Name_Not_Found:2008/06/10(火) 18:53:03 ID:???
ニコニコのwrapperをボタンで切り替えようとして、以下のようなnicocache_nl用のscriptを作ったのですが、
onのaddVariable("v",getQueryParamValue("v"))のところで、swfobject.jsに書いてあったように引数を指定したのに動きませんでした。
//offの様に、動画のid直打ちだと動きます。何が悪いんでしょうが?

var load_btn=document.createElement('input');
document.body.appendChild(load_btn);
load_btn.setAttribute('id','reload_btn');
load_btn.setAttribute('type','button');
load_btn.setAttribute('value','Wrapper on/off');
load_btn.addEventListener("click",flv_reload,false);

flvs="0";
function flv_reload(){
if(flvs=="0"){
//on
var so=new SWFObject("/swf/nicoplayer.swf?ts=1212800400","flvplayer","952","540","9","#FFFFFF");
so.addVariable("v",getQueryParamValue("v"));
so.write("flvplayer_container"); flvs="1";}
//off
else{
var so=new SWFObject("flvplayer_wrapper.swf?ts=1212800400","flvplayer","952","540","9","#FFFFFF");
so.addVariable("v", "sm1672731");
so.write("flvplayer_container"); flvs="0";}}
233Name_Not_Found:2008/06/10(火) 21:11:25 ID:???
>>230
マウス座標の取得ってのはイベントが起きたときのマウス座標だから
何らかのイベントから呼び出すんだよ
234Name_Not_Found:2008/06/10(火) 21:15:27 ID:???
>>232
getQueryParamValue("v")の結果をalert()で表示させてみれば。
235Name_Not_Found:2008/06/10(火) 23:32:08 ID:???
>>232
url=window.location.href;
url=url.replace(/.+\//,"");

so.addVariable("v",url);

こんな感じで解決しました。
236Name_Not_Found:2008/06/10(火) 23:33:27 ID:???
>>235
>>234です。
237Name_Not_Found:2008/06/11(水) 19:55:42 ID:???
前evalでの議論があったみたいだけど、
AjaxのJSON取得して、eval展開しまくってるのはダメなことなの?
238Name_Not_Found:2008/06/11(水) 19:56:51 ID:???
中身が保証されてればいいけど
239Name_Not_Found:2008/06/11(水) 21:25:24 ID:???
iframe で 呼び出したソース(子供)の中から、iframeを呼んているソース(大人)の
メソッドを呼びたいのですが、どのように記述すればよいのでしょうか?
240Name_Not_Found:2008/06/11(水) 21:27:14 ID:???
window.parent.piyo()
241Name_Not_Found:2008/06/11(水) 21:58:12 ID:???
>>238
そういう痛い自演似非脆弱性はアホ外人のネタ切れブログで勝手に騒がせとけ。
242Name_Not_Found:2008/06/11(水) 22:18:09 ID:???
>>240
ありがとうございます。
243Name_Not_Found:2008/06/11(水) 22:41:46 ID:???
煽りぽいのは頂けないね。両説それなりに論拠あるんだから
ちゃんと自分の主張を述べないと(それとも述べられないかね :-)
まあこんなとこでやるより「JSON eval セキュリティ」でぐぐれば十分か。
244Name_Not_Found:2008/06/11(水) 23:39:05 ID:???
無駄なレスがいちばんうざい
245Name_Not_Found:2008/06/12(木) 00:46:38 ID:???
bookmarkletでキーイベント発生させるのって無理なんでしょうか?

<body onkeydown="nullpo(event.keyCode);">なページに
>> document.onkeydown(0)
とかしてみたけど
TypeError: document.onkeydown is not a function
とか怒られてしまいます。
246Name_Not_Found:2008/06/12(木) 03:27:32 ID:???
そもそもbookmarklet実行時にdocumentスコープがあるとは思えないんだけど
247Name_Not_Found:2008/06/12(木) 03:53:37 ID:???
>>245
関数でまるごと取り出すのは無理
属性値の中に書かれているものだけならgetAttributeしてeval
ただしthisが違うオブジェクトを指すのに注意
だが広く公開するブックマークレットならevalはやめとけよ
248Name_Not_Found:2008/06/12(木) 08:38:11 ID:???
関数とオブジェクトについて質問

var b = {}
b.prop = 'property';
と言う感じにプロパティを付けるのは
b = { prop : 'property' }
と一緒だから、ハッシュということですんなり理解できるのですけど、

var a = function(){}
a.prop = 'property';
これってどうなってると考えれば良いですか?
a.prototype = {}
が指定できるからプロパティを付けることは問題ないのかなと思うのだけど、
この場合のaはfunctionだから違和感がある

for (var key in a) {
  alert(key); // prop, prototype
}

ってやると確かにaはオブジェクトっぽいけど、理解ができない
249Name_Not_Found:2008/06/12(木) 09:19:48 ID:???
>>244
「JSON eval セキュリティ」でぐぐってみるというのは
質問者にとって重要な情報。無駄ではない。
アンタにとっては見たくなかった情報だからそりゃうざいだろうさ(w
250Name_Not_Found:2008/06/12(木) 11:22:12 ID:???
>>248
関数も関数オブジェクトというオブジェクトだから別にいいんでは。
251Name_Not_Found:2008/06/12(木) 14:46:12 ID:8qjKDFLu
3.0.1.2.3みたいな数値にドットが混ざってる文字列を、
3.0123のように最初のドットはつけたままで残りを取り払い、
float型に変えたいのですがどのように変えればいいですか?
ドットを取り除いてint型にすることはできるのですが、
最初のドットのみを残すといった器用なことができません。
どなたかお助け下さい。
252Name_Not_Found:2008/06/12(木) 14:58:46 ID:???
>>251
これでどうだ!
var str = '3.0.1.2.3'
parseFloat(str.replace(/([0-9]*)\.(.*)/,'$1_$2').replace(/\./g,'').replace('_','.')

誰かもっとうまいやり方を教えてください。
253Name_Not_Found:2008/06/12(木) 15:07:39 ID:???
>>252
なるほど!一度他の文字に置き換えて置くのですね。
とても参考になりました。どうもありがとうございます。
254Name_Not_Found:2008/06/12(木) 15:13:39 ID:???
ajax(jquery)とGoogleMapでの質問もこちらでよいでしょうか?
255Name_Not_Found:2008/06/12(木) 15:28:15 ID:???
>>252
置き換えはさすがにどうかと思うなあ。
うまいかどうか知らんが

alert( '3.0.1.2.3'.replace(/^(.*?\.)|\.(?=\d+)/g,"$1") );
256Name_Not_Found:2008/06/12(木) 15:35:53 ID:???
>>251
var c = 0;
var x = parseFloat(str.replace(/./g, function(){return (++c>1)?'':'.';}));
なんてどうかね。
257251:2008/06/12(木) 15:41:09 ID:8qjKDFLu
皆さん本当にどうもありがとうございます。
正規表現のレベルが高すぎて正直自分には理解できませんが、
>>255さんのがシンプルそうなのでそれを使わせていただきたいと思います。
258Name_Not_Found:2008/06/12(木) 22:46:33 ID:???
>>254
もう Google Maps は手軽に AS化できるだろ。これを機会にウェブでJSを使うのを止めてはいかがかな。終わってるから。残ったのはフラッシュだった。
259Name_Not_Found:2008/06/13(金) 04:00:40 ID:???
またフラッシュバカか。何で粘着してるんだか。未練たらたらなのか
260Name_Not_Found:2008/06/13(金) 08:01:38 ID:???
諸君、私は ECMAScript が好きだ

JavaScript が好きだ
ActionScript が好きだ
JScript が好きだ
ExtendScript が好きだ
QtScript が好きだ

Spidermonkey で
Tamarin で
Ajajaで
JavaScriptCore で
Rhino で
この地上に存在するありとあらゆる ECMAScript が大好きだ

綿密に繋ぎ合わされたプロトタイプチェーンが好きだ
プロトタイプが書き換えられ、オブジェクトが拡張される様など心がおどる
複雑に入り組んだ関数スコープが好きだ
関数が呼び出され、 Activation オブジェクトが鎖のように繋がり、樹木のように広がっていく様など胸がすくような気持ちだった
with ステートメントが好きだ
幾重にも繋がれたプロトタイプチェーンが、スコープチェーンに追加される様など感動すらおぼえる
with したオブジェクトのプロトタイプの関数が書き換えられた時などもうたまらない
スコープにプロパティを追加し、変数をすり替えるのは最高だ
複雑そうなオブジェクトを JSON で書き下した時など絶頂すら覚える

諸君 私は ECMAScript を 烈火の様な ECMAScript を望んでいる
諸君 私に付き従う ECMAScript 好きの諸君 君たちは一体何を望んでいる?
更なる ECMAScript を望むか 
糞の様な ECMAScript を望むか?
プロトタイプの限りを尽くし クラス世界のプレーンを殺す 嵐のような ECMAScript を望むか?

ECMAScript !!  ECMAScript !!  ECMAScript !!
261Name_Not_Found:2008/06/13(金) 08:40:31 ID:???
>>247
なんかいろいろ厄介そうっすね。
実はコナミコマンドを打つbookmarkletが作れないかと思ったんだけど、やめときます。
もしできるなら誰かお任せ。
262Name_Not_Found:2008/06/13(金) 09:25:09 ID:???
>>261
それだけでいいなら
[1, 1, 3, 3, 0, 2, 0, 2, 29, 28].forEach(function(v){ nullpo(v + 37) })
263Name_Not_Found:2008/06/13(金) 09:40:46 ID:???
>>260
スレチですけどこちらも支援してくださいな。

サーバーサイドJavaScript総合
http://pc11.2ch.net/test/read.cgi/php/1210836132/
264Name_Not_Found:2008/06/13(金) 14:58:46 ID:CJ0ctsvH
質問です。
任意の個数の引数をとる関数に対して、
func(arg1, arg2, arg3);
と同様の結果を期待して
arg = [arg1, arg2, arg3];
func(arg);
としたらfunc側で引数1個と判断されて失敗しました。

argの要素数が可変として、配列argで
func(arg[0], arg[1], .. ,arg[arg.length-])
のようなことはできますか?
265Name_Not_Found:2008/06/13(金) 15:11:07 ID:???
266Name_Not_Found:2008/06/13(金) 15:11:51 ID:???
>>264
callとかapplyとかについて勉強するといいよ。
267264:2008/06/13(金) 15:53:34 ID:???
>>266
func.apply(this, arg);
でできました。ありがとうございます。
268Name_Not_Found:2008/06/13(金) 16:00:55 ID:???
javaスクリプトでパケットをループさせて送信
って可能ですか?
269Name_Not_Found:2008/06/13(金) 16:49:48 ID:???
>>268
ブラウザ上のJavaScriptではできません。
270Name_Not_Found:2008/06/13(金) 17:02:32 ID:???
画像をクリックして違う画像を表示するというものなのですが、
<SCRIPT language="JavaScript">
<!--
imgnum=1;
function changeImage(){
if(imgnum==1){
document.myimg.src="gazo/kabe2.gif";
imgnum=2;
}else if(imgnum==2){
document.myimg.src="gazo/kabe3.gif";
imgnum=1;
}
}
// -->
</SCRIPT>

<CENTER>
<A href="javascript:changeImage()"><IMG src="gazo/kabe1.gif" name="myimg" border=0></A>
</CENTER>

某サイトにありまして、この通りにしたらうまく行ったのですが、これを同じページに
2つ以上いれると画像がクリックしても変わらなくなってしまします。
どこを変えればよいでしょうか?
271Name_Not_Found:2008/06/13(金) 17:24:38 ID:???
>>270
changeImage()という関数を2つ定義したら多重定義に
なるだろ。統一的に名前を変更するとかしたらどうかな。
まあがんばって。
272Name_Not_Found:2008/06/13(金) 17:58:42 ID:???
>>271
すばやい解説ありがとうございます。
changeImage()を別の名前にしたらいいんですね。早速取り掛かってみます。
273Name_Not_Found:2008/06/13(金) 17:59:05 ID:???
>>270
どのサイトを参考にしたのかわからないけど、情報古すぎるよ
少なくとも>>1ら辺にあるテンプレを探していけばサンプルはないにしても
もっと有力な情報得られるはず。

function changeImage(elem) {
  // imgタグのsrcの数字部分を置換
  elem.src = elem.src.replace(/([0-9])/, function(num){
    // その数字部分に1足したものを3で割った余りを出す
    return (parseInt(num) + 1) % 3; // 0 or 1 or 2
  });
}

<img src="gazo/kabe0.gif" onclick="changeImage(this);">

こんな感じで変えれば無駄な変数とかもいらないかな。
aタグはなくして、画像をクリックしたらchangeImageに自分自身を渡す。
なので、他のimgタグがあっても平気。
画像の番号は便宜上0,1,2にした。
3で割った余りを画像の番号にしたため。

ということでがんばって。
274Name_Not_Found:2008/06/13(金) 18:05:27 ID:???
>>273
アドバイスありがとうございます。さきほど2個といいましたが、
実は50個くらいあるのですが、大丈夫でしょうか?
275Name_Not_Found:2008/06/13(金) 18:16:54 ID:???
>>273
ど素人なので、へんなこと言ってたらすみません。
それだと、3つの画像を繰り返すことになりますよね。2つの画像を繰り返したいの
ですが。
それと、クリックしたら替わる画像を50個くらい設置したいのですが、その
数字は大丈夫でしょうか?
276Name_Not_Found:2008/06/13(金) 18:53:45 ID:???
>>273を見て応用できないならあきらめた方が早いよ。
277Name_Not_Found:2008/06/13(金) 19:52:14 ID:FUCwHHFV
質問させていただきます。

Aという領域をクリックしたときにBの領域で
複数の画像を使って(パラパラアニメのような)アニメーションをさせる。

ここまでは出来たのですが、
「クリックした時だけそのアニメーションを表示させる。」
「クリックするたびに何回でも表示する。」
っていうもののやり方がどうしても解りません・・
278Name_Not_Found:2008/06/13(金) 20:08:22 ID:???
アニメーションが一回だけ回る関数を
クリック時に呼び出せばいいんじゃないの。
setIntervalでやってるなら、
その中にcount++なんかを入れといて、
if (count == 画像枚数)のときにclearIntervalする。
279Name_Not_Found:2008/06/13(金) 21:41:15 ID:???
ん。
280Name_Not_Found:2008/06/13(金) 23:33:47 ID:???
(; ^ω^)
281Name_Not_Found:2008/06/14(土) 02:57:34 ID:???
onload 後に innerHTMLで、 iframe を 追加しているんですが、
追加した iframe が うまく表示されないときがあります。
IEDevelopper Tool で 値を見ても src に 正しく 設定されています。
282Name_Not_Found:2008/06/14(土) 03:42:04 ID:???
うむ、さよか
283Name_Not_Found:2008/06/14(土) 08:53:07 ID:???
>>281
なんで「srcに正しく設定」が問題になるの?怪しいね…
もしかしてinnerHTMLに入れてiframeを作った後で
window.frames.フレーム名.src に設定している?それは
タイミング的に危ういよね。innerHTMLに入れるiframe
タグにsrc属性を書いておくのがいいと思う。
284281:2008/06/14(土) 13:30:54 ID:???
>>283
iframe タグに src を入れています。
以下のように 文字列を追加しています。

var strDocument = "<iframe title='X' style='display: inline;' width='100%' height='100%' frameborder='0' scrolling='no' ";
strDocument += strid + " " + src + " ></iframe>;
285Name_Not_Found:2008/06/14(土) 14:12:36 ID:???
>>284
alert(strDocument); を実行してその結果を貼ってみれ。
286Name_Not_Found:2008/06/14(土) 16:09:21 ID:???
>>284
var strDocument = "<iframe title='X' style='display: inline;' width='100%' height='100%' frameborder='0' scrolling='no' ";
strDocument += strid + " " + src + " ></iframe>";
ダブルクオートが抜けてた。
その場で試せるFirebugを導入することをお勧めする
287281:2008/06/14(土) 16:30:57 ID:???
>>285
alert を表示しました。

<iframe title='X' style='display: inline;' width='100%' height='100%' frameborder='0' scrolling='no' id="hoge" src='ローカルファイル'></iframe>
288Name_Not_Found:2008/06/14(土) 17:00:55 ID:???
うーんそれでよさそうだよね。ローカルファイルをフレームに
表示させるのはうまくいかないことがあるかも知れないけど。
同じソース、同じURLのままでうまく行ったり行かなかったりする?
289281:2008/06/14(土) 17:06:12 ID:???
>>うーんそれでよさそうだよね。ローカルファイルをフレームに
>>表示させるのはうまくいかないことがあるかも知れないけど。
うまくいかないことがあるんですか?
それはどういう理由からでしょうか?



290Name_Not_Found:2008/06/14(土) 18:06:35 ID:???
ローカルファイルの場合、鯖がないから鯖が必要なもの(CGIとか)
が含まれていると駄目とかね。常に統一的に「こういうページが駄目」
とか分かっていたらそれを書いて相談した方がいいね。もっとも
駄目なものは駄目という他ないとは思うけど。
291Name_Not_Found:2008/06/14(土) 19:59:12 ID:???
今気づいたんだけど道場訓撤去しちゃったんだね。アレよかったのに。
292Name_Not_Found:2008/06/14(土) 20:08:54 ID:???
魚の話は板からして違うだろ。
293Name_Not_Found:2008/06/15(日) 01:09:17 ID:???
洩れも愛着あったしどうかなーと思ったけど >>291 まで誰も
何も言わなかったんでまあOKってことなんじゃないかな?
294Name_Not_Found:2008/06/15(日) 05:23:32 ID:???
>>263
あ、いや
>>260は転載ですのであしからず・・・
295Name_Not_Found:2008/06/15(日) 21:13:53 ID:???
誰も>>1を読んでいなかったということだな。俺は>>2からしか読まないから全然気付かなかった。
296Name_Not_Found:2008/06/15(日) 22:07:53 ID:O3b3UhIy
WinXPPro+FireFox,IE7でWEBサイトの製作を行っております。(+cgiも使っていますが、今回の件とは直接関係ありません。)
画像アップローダを作ろうと思っておりまして、アップロード前に画像の確認表示が出来るようにしたいと思っています。

<div id="testViewDialog">
<img hspace="0" vspace="0" name="testImage" src="/image/blank_image.png" width="250" height="500" align="left" style="margin:0px; padding:0px;">
画像ファイル<input type="file" accept="image/gif" id="uploadImage" style="position:static;"><br>
<button onClick="testView();">←試し表示</button>
</div>


として、javascriptでtestView()の関数を作ろうと思っております。
ためしに
function testView()
{
document.images["testImage"].src = "file:///G:\WEB\image\test.gif";
}

とやったのですが、表示されません。
どのようにしたら、ローカルファイルが上手く表示できるようになるでしょうか。
なお、製作環境はWinですが、出来る限り幅広い環境でテスト表示を行わせたいと考えております。
よろしく、ご教授ください。お願いいたします。
297Name_Not_Found:2008/06/15(日) 22:26:19 ID:???
>>296
ネットからロードしたページ中にローカル画像は入れられない。
またテンプレ中のFAQにもあるが、input type="file" から
ファイル名を取れないブラウザもある。よって、あんたがやりたい
ことは不可能だと思うよ。お気の毒だが。
298Name_Not_Found:2008/06/16(月) 06:03:52 ID:???
>>297
Action Scriptを使えばできる
299Name_Not_Found:2008/06/16(月) 06:55:02 ID:???
ActionScript で彼女ができました。
300Name_Not_Found:2008/06/16(月) 09:05:13 ID:???
総会総会。加藤が知ってたらどんなに喜んだことか
301Name_Not_Found:2008/06/16(月) 12:33:59 ID:???
>>299
マジレスすると、それは実際によくあることだな。まあ、ちょっとキモい女しかいないがw
302Name_Not_Found:2008/06/16(月) 14:29:33 ID:???
ActionScriptで身長が8cm伸びました
303Name_Not_Found:2008/06/16(月) 15:14:44 ID:???
全国の会員の皆さまから驚きの効果がぞくぞくと寄せら
れています。 お申し込みは、今すぐお電話で
0120-194403(アクシヨン3)
まで。もちろん2chお友だち価格です。
お便りもお待ちしています。
304Name_Not_Found:2008/06/16(月) 19:54:37 ID:x0L5x+V2
TRタグのセルの内側で背景クリックを可能とするためのjavascriptを探しています。
Googleのアドセンスのスクリプトをコピーしたら動いたんですが、複雑すぎて、
自分のサイトにもってこれません。
どっかにサンプルとかないでしょうか?
「javascript 背景クリック」でググってもアドセンの広告に関するページしか表示されません。
お願いしますだ

305Name_Not_Found:2008/06/16(月) 20:05:20 ID:???
>>303
電凸してみた
つながらなかった

実在する番号載せるのはやめようぜ
306Name_Not_Found:2008/06/16(月) 20:15:09 ID:???
javascript内でjavascriptを読み込むにはどう書けばよいのでしょうか
ご教授ください
307Name_Not_Found:2008/06/16(月) 20:17:37 ID:???
>>304
javascript background click で303,000本が待機しているが
308Name_Not_Found:2008/06/16(月) 20:19:37 ID:???
>>305
KY
>>306
お、お久で教授か
!=JavaScript
309Name_Not_Found:2008/06/16(月) 20:25:09 ID:???
>>307の勘違いぶりが……。
310Name_Not_Found:2008/06/16(月) 20:28:53 ID:???
//e:Event
for (var n = e./*@cc_on @if(1)srcElement@else@*/target/*@end@*/, C = /^T(?:D|H)$/i; n && !C.test(n.tagName); n = n.parentNode);
if (n) {...}
311Name_Not_Found:2008/06/16(月) 21:25:11 ID:???
>>306
var s = document.createElement("script");
s.src = ファイル名;
document.getElementsByTagName("head")[0].appendChild(s);

こんなんじゃダメ?
312306:2008/06/16(月) 22:20:46 ID:???
これでできますた
document.write('<script type="text/javascript" src="ふるぱす/ほげ.js"></script>');
313Name_Not_Found:2008/06/16(月) 23:54:05 ID:???
>>312
それってIE以外だとSCRIPTタグが文書に書き出される(見えないけど)だけで
実際に「ほげ.js」は読み込まれないような気がする。

あと、スクリプト内に書くのなら最後は

</' + 'script>');

と分割しておいた方がいいと思う。
314Name_Not_Found:2008/06/17(火) 00:25:09 ID:???
世界中の無数のサイトで使われている構文
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
315313:2008/06/17(火) 00:29:26 ID:???
> 実際に「ほげ.js」は読み込まれないような気がする。

訂正。普通に読み込まれてた。処理のタイミングの問題みたい。

「ほげ.js」の内容が

var str = "hello, world";

で、件の document.write... の次の行が

window.alert(str);

だとすると、IE だとちゃんとアラートが出るけど、Firefox と Opera では出なかった。

window.setTimeout("window.alert(str)", 1000);

と多少遅延させると Firefox と Opera でも無事アラートが出た。
316313:2008/06/17(火) 00:31:56 ID:???
> あと、スクリプト内に書くのなら最後は

SCRIPTタグ内に書くのなら、ね...。
317Name_Not_Found:2008/06/17(火) 00:58:00 ID:???
318Name_Not_Found:2008/06/17(火) 01:54:10 ID:???
<select id="list_1"></select>でジョブキューを管理しているのですが、設定出来る値がnew Option("表示される値","裏の値")の二つだけではちょっと足りなくなったので

function job(num){
this.search = "検索中その"+num;
}
function btn_1_c(){//URLを追加ボタンを押した
list_1.options[0] = new Option("表示される値","裏の値");
var hoge = new job(1);list_1.options[0].other=hoge;
var hoge = new job(2);list_1.options[0].other2=hoge;
alert(list_1.options[0].other2.search)//「検索中その2」
}
<select id="list_1"></select>

このようにしてリストボックス一つ一つの項目に大量のデータを持たせたいのですが、これってjavascript的に想定されている事なのですか?
一応動いたのですが、実はxxするとクリアされる とかだとちょっと困るので質問です
319Name_Not_Found:2008/06/17(火) 02:26:30 ID:???
>>315
> IE だとちゃんとアラートが出る
ほんとに出た?
320313:2008/06/17(火) 03:04:59 ID:???
>>317
失敬。分割する箇所が不適切でしたね。

>>319
こちらでは出ました。
各バージョンがいちいち古いんですけど、
Internet Explorer6、Firefox 1.5.0.12、Opera 9.26 で試してみました。

IEだけは setTimeout を使わなくても "hello, world" とアラートが出ました。
321Name_Not_Found:2008/06/17(火) 03:30:00 ID:???
javascript 動的 でググれ
変なやり方教えるな
322Name_Not_Found:2008/06/17(火) 03:52:05 ID:???
if(document.getElementById("sample")){
function dell() { document.getElementById("sample").style.display = "none"
}
window.onload = dell;
}

idにsmpleがあれば消すということをしたいのですが
これだとうまく消えません

sampleがあるかないかの判定(if分)がなければうまくいきます
ただそれだとsampleがあった場合はいいのですが、ない場合はエラーになります

sampleがあるかないかの判定はこれでいいのでしょうか?

とにかくやりたいことは<p id="sample">ほげ</p>を消すことで
idのない<p>ほげ</p>でもエラーのないようにしたいです

よろしくお願いします。

323Name_Not_Found:2008/06/17(火) 04:06:34 ID:???
IEは、SRC属性があるSCRIPT要素を適当に選んで、SRC属性値を書き換えるだけで、読んで実行しますよ。
//@cc_on@if(1)document.scripts(document.scripts.length - 1).src = "another.js";@end
みたいにね。
これは、HTML読み込み中・読み込み後に関係なく動作する。
324Name_Not_Found:2008/06/17(火) 04:07:59 ID:???
>>323
SRC属性が無くても出来たわ。訂正。
325Name_Not_Found:2008/06/17(火) 04:10:21 ID:???
>>322
<STYLE ...> とか <LINK REL="Stylesheet ..."  HREF="..."> とかを動的に作るればいいだろ。
326Name_Not_Found:2008/06/17(火) 05:00:57 ID:???
>>322
あるかないかの判定はDOMツリー構築後じゃないとできない
しかもそれだとsampleがあってもなくてもIE以外ではエラー出るはず
あとloadイベントはそういう用途にはおすすめできない
なぜ #sample { display: none; } では駄目なのか
327Name_Not_Found:2008/06/17(火) 05:55:28 ID:???
if(document.getElementById("sample")){
function dell() { document.getElementById("sample").style.display = "none";
} else {
function dell() { };
window.onload = dell;

sampleがないときにエラーがでるのはfunction dell()がないからだと思ったのでelseの場合に定義してみましたが
エラーはでなくなりましたがsampleが消えなくなりました
たとえelseでも同じfunctionは定義できないということでしょうか

function dell() { };これをはずしてsampleがあるときはうまくいきます

>#sample { display: none; }これが使えるならそうしたいのですが使えない状況なのです

>あとloadイベントはそういう用途にはおすすめできない
javascriptはあまり詳しくないのですが
document.getElementById("sample").style.display = "none";
このように書いてもエラーがでるのでしかたなくwindow.onload = dell; このように書いてます
すぐに実行できる書き方はどうすればいいのでしょうか
328Name_Not_Found:2008/06/17(火) 07:34:31 ID:???
>>327
そのコードのあるscript要素をid="sample"の要素より
後ろに書けばよい。
329Name_Not_Found:2008/06/17(火) 07:35:23 ID:???
function dell() {
var sample = document.getElementById('sample');
if (sample){
sample.style.display = 'none';
}
};
dell();

これはどう?
330Name_Not_Found:2008/06/17(火) 14:16:19 ID:???
基本的なことですが、
var aa = document.getElementById("test").value;
としたとき、aa = 123;でformのvalueに代入できないのは
なぜですか。
document.getElementById("test").value=123;
でできるのに、と思うのですが。
331Name_Not_Found:2008/06/17(火) 14:42:50 ID:???
A=B AにBを代入する
332Name_Not_Found:2008/06/17(火) 16:10:01 ID:???
>>330
あなたのプログラミング言語の理解モデルが間違っているから。
IDがtestという入力部品とtest1という入力部品があったとして
document.getElementById("test").value = document.getElementById("test1").value;
とかすると以後test1とtestには常に同じものが表示される、とか思えるわけね?
333Name_Not_Found:2008/06/17(火) 16:28:07 ID:???
>>330
a=a+1
が理解できないのだろう
334Name_Not_Found:2008/06/17(火) 16:54:06 ID:???
>>330

aa に入っているのは値だコラっ!
参照じゃないぞ!
335Name_Not_Found:2008/06/17(火) 18:29:46 ID:???
>>330
おまいさんは一度ポインターを勉強した方がいいな
336322:2008/06/17(火) 20:16:56 ID:???
var ss = document.styleSheets[0];
ss.insertRule("#sample {display:none}", ss.cssRules.length);

スタイルシートに新しく加えるという方法でできました
これならid=sampleがない場合でもエラーはでません

ありがとうございました
337Name_Not_Found:2008/06/17(火) 21:40:04 ID:???
>>336
一つの解法としてそれは正しいのだけど
元の質問の解はこうなる

window.onload = function (){
if(document.getElementById && document.getElementById("sample")){
document.getElementById("sample").style.display = "none";
}
}

そもそも何でエラーが出たかというと
document.getElementById("sample") を実行した時点で
id="sample" はまだないから
338Name_Not_Found:2008/06/17(火) 22:10:13 ID:???
>>337
読み込み中または読み込み直後に隠す場合、
一瞬見えて隠したいなんて要望はほとんどない。
単に、DOM-Level-2-(CSS|Style) の知識が無いから、
質問がCSSStyleDeclarationでCSS2Propertiesを操作することだけに偏る。
同様の知識不足で、回答も同様に偏る。
しかし、繰り返すが、ふっつーに考えれば、一瞬見せたいわけではないと感じ取れるだろう。
何が元の質問の解だか。回答の選択肢が少ないだけだろう。笑わせる。
339Name_Not_Found:2008/06/17(火) 23:02:03 ID:???
うちはわざとそうしてる
だって JavaScript オフで見れないページを作ったってしょうがない
だから後で隠す
340Name_Not_Found:2008/06/17(火) 23:24:18 ID:???
>>339
onload(あるいはreadystateを反映)での処理では、一瞬表示されるという問題があるので、
document.write('<style>#sample...
か、もしくは>>336のような方法というように、
CSSへの設定の方がよりスマートだと思うけどね。
341Name_Not_Found:2008/06/17(火) 23:32:17 ID:???
自分は id="sample" が閉じた直後に消すな

document.write() は個人的にはあまり使わない
342Name_Not_Found:2008/06/18(水) 01:09:13 ID:???
document.write('<style type="text/css"><!--#sample{display: none}--></style>');

こうすれば簡単だろうけどルール的に駄目なんだよな
だから同じようなことするのに>>336の方法をとったんだろう
343Name_Not_Found:2008/06/18(水) 02:27:51 ID:???
>>336
window.onload = function() {
if(typeof document.getElementById("sample") == "object"){
document.getElementById("sample").style.display = "none"
}
}
これでいいと思うよ。関数が定義されていない場合とかにも応用可能。
344Name_Not_Found:2008/06/18(水) 02:34:04 ID:???
>>343
さすがに同じIDに対しgetElementByIdを2度実行するのは無駄なので、
それならこうするね。

window.onload = function() {
var elm = document.getElementById("sample");
if(elm)
elm.style.display = "none"
}
345Name_Not_Found:2008/06/18(水) 02:55:39 ID:???
>>344
それでもよさげだけど、elmが存在しないときに
elmにfalseが代入される保証はあるのかな。
エラーを返すブラウザがあってもおかしくない気がする。
typeofの方が安全だと思うよ。
あと、無駄に関してはelmに代入したほうが大きい。
346Name_Not_Found:2008/06/18(水) 03:09:19 ID:???
>>345
マジレスすると、
getElementByIdで、object(のリファレンス)かnull以外が返される実装があったら教えて下さい。
全面的にコードを書き直す必要があるくらい、かなり興味深い話題なので。
347Name_Not_Found:2008/06/18(水) 03:11:27 ID:???
そーなんだ。ならそれでいいと思う。
348Name_Not_Found:2008/06/18(水) 03:14:22 ID:???
編集中に投稿しちゃった・・・
たぶんnullかfalseを返すと思うし、多分大丈夫だと思うけど、
俺も調べてないからよくわからないや。
349Name_Not_Found:2008/06/18(水) 03:14:41 ID:???
>>345
> あと、無駄に関してはelmに代入したほうが大きい。
これって検証可能なソース出せるわけ?
350Name_Not_Found:2008/06/18(水) 03:20:33 ID:???
元々頭の悪いテンプレ厨が湧いているスレだけど、
>>345=>>347-348なら、
これほど適当な発言をする人間はもはや害以外の何物でも無いね。
351Name_Not_Found:2008/06/18(水) 03:39:06 ID:???
サイト上にある任意の文字を変換したいのですが

例えば あいうえお → かきくけこ にしたいのです書き方がわかりません
document.replace('あいうえお','かきくけこ')

よくある例文では
var str = 'abcd'
str.replace("ab", "cd")
でstrを指定しているのですがこれがhtml上の場合どのように指定すればよいのでしょうか
352Name_Not_Found:2008/06/18(水) 03:49:25 ID:???
>>351
イベントハンドラとか消えてもいいなら
document.body.innerHTML = document.body.innerHTML.replace("あいうえお", "かきくけこ")
353351:2008/06/18(水) 04:52:46 ID:???
>>352
ブラウザがかたまってしまいました・・・
354Name_Not_Found:2008/06/18(水) 05:05:23 ID:???
>>353
糞スペック乙
355Name_Not_Found:2008/06/18(水) 13:53:24 ID:???
Firefox3がすげえ
356Name_Not_Found:2008/06/18(水) 14:06:19 ID:???
JavaScriptに関してならSafariのほうが上だな
357Name_Not_Found:2008/06/18(水) 15:11:04 ID:rS/mkLH/
連番画像を切り替える際に

function change(){
  n++;
  if(n==4)n=0;
  document.irg.src="img/pic"+n+".jpg";

とかだと一桁枚数はできるのですが、二桁、例えば20枚の画像を切り替えたい場合は
どう表記すればいいのでしょうか?
358Name_Not_Found:2008/06/18(水) 15:11:46 ID:???
>>344
>>343はどのように無駄なんでしょうか?
elmにリファレンスが入ってるってだけで、
どっちもgetElementByIdを2度実行してると思うのですが。
コードの読みやすさの話ってわけでもなさそうだし。
359Name_Not_Found:2008/06/18(水) 15:17:25 ID:???
>>357
if(n==4)の4のところを20に変える、って話ではない?

>>358
> どっちもgetElementByIdを2度実行してると思う
>>343はしてるが>>344は1回だぞ
>>344は取得した要素オブジェクトかnullをelmに入れてるんだから
2回実行できようが無い
360Name_Not_Found:2008/06/18(水) 15:20:15 ID:???
このスクリプトの実行を中止しますか?

このページのスクリプトが、Internet Explorer の実行速度を遅くしています。
スクリプトを実行し続けると、コンピュータが反応しなくなる可能性があります。


---------------------------
はい(Y) いいえ(N)
---------------------------
を回避する方法は
http://support.microsoft.com/kb/175500/ja
に「 5 秒間隔で PeekMessage を呼び出してタイムアウトをリセットする必要があります」って書いてあるけど
PeekMessageをjsで呼び出すにはどうしたらいいの?
PeekMessage()じゃダメらしい
361Name_Not_Found:2008/06/18(水) 15:30:27 ID:???
>>359
聞き方が悪かったです。ごめんなさい。
というか、解決しました!

function change(){
  n++;
  if(n==?)n=0;
  document.irg.src="img/pic0"+n+".jpg";

こういう考えでやってたもので・・・n自体に二桁以上が入るのは考えてませんでした。
回線切って電源落として首吊ってきます。
362Name_Not_Found:2008/06/18(水) 15:58:11 ID:???
>>360
PeekMessageはWindowsAPI。
ActiveXでも使わなければ無理では。
363Name_Not_Found:2008/06/18(水) 20:51:02 ID:???
http://www.flickr.com/photos/black_velvet/431402343/
この画像の投稿者はΛl℮Roda®さんですが
「℮」とか「®」とかのunicodeでないと表現出来ない文字を自動的に置き換えてくれるライブラリみたいなの教えて下さい
勿論厳密な置き換えは無理なことは分かっていますので
「℮」→e
「®」→(R)
みたいな置き換えで十分です
364Name_Not_Found:2008/06/18(水) 21:50:08 ID:???
ライブラリ まで読んだ
365Name_Not_Found:2008/06/18(水) 21:55:00 ID:???
だれか>>363のリンクで飛んだ?押しても大丈夫?
366Name_Not_Found:2008/06/18(水) 22:11:19 ID:???
>>365
どうせサロゲートペアまで変換しちゃうどこぞのPerlが得意なキモオヤジの自演だから、放置しとけ。
367Name_Not_Found:2008/06/18(水) 23:06:42 ID:???
踏んだよ。フツー なんか風景。BRAZILとかあるからCGかなんかかしら
以下スレチ:flickrでヤバいリンクってあるのかな。
グロとかアップできちゃうサービスという印象もないけど
368Name_Not_Found:2008/06/18(水) 23:48:46 ID:???
>>363=自演かw 乙
369Name_Not_Found:2008/06/19(木) 04:51:53 ID:HjeHeh3z
prototype.jsのトグルで表示・非表示の切り替えをしてるんだけど、
ページを開いた時(初期表示)で非表示状態にするにはどうしたら良いですか?
<body onload="hideToggle(idName)">
って感じで非表示トグルを実行しようとしてるんですが、これだと一瞬
隠す部分が画面に映ります
自分なりに調べたんですがわからなかったので誰かご意見ください
よろしくお願いします
370Name_Not_Found:2008/06/19(木) 04:59:14 ID:???
このスレくらい読めばいいと思うよ
371Name_Not_Found:2008/06/19(木) 11:08:05 ID:YXAbfQDi
>>369
逆に最初非表示にしておいて後から必要な箇所だけ表示するんじゃダメなの?
372Name_Not_Found:2008/06/19(木) 12:26:54 ID:rbx28/KF
同サーバ内のテキストファイルを読み込みたい

.jsなら>>306-314
それ以外ならxmlHttpRequestを使えばできるのですが、
単にテキスト読み込むだけなのにわざわざxmlHttpRequest使うのはどうなんだろうと。

PHPで言うfile_get_contentsみたいなのはないですかね。
373369:2008/06/19(木) 12:28:23 ID:HjeHeh3z
>>371
最初非表示にするってどうするんですか?
表示切替ってtoggleでやるものだと思ってたら、cssも併用するんですね
そのことを言ってるんでしょうか?
374Name_Not_Found:2008/06/19(木) 12:29:50 ID:???
>>373
>cssも併用するんですね
その方が無難
375Name_Not_Found:2008/06/19(木) 12:33:59 ID:???
>>372
ない。XmlHttpRequestでresponseTextから取り出せば
別に問題ないじゃん。
376369:2008/06/19(木) 12:35:18 ID:???
>>374
本当にありがとうございます
cssでのやり方を勉強してみます みなさんありがとう
377Name_Not_Found:2008/06/19(木) 13:11:58 ID:wVAEkJPX
Javascript の配列は結局のところキーとして0以上の整数を
とるハッシュと思って扱えばよいのでしょうか?
それとも内部的にまったく異なるものとして扱われているのでしょうか?

a[0] と a[10] が何か値を持っているとき、 a[1],...,a[9]
が内部でどのように扱われているかについての規定はあるのでしょうか?
378Name_Not_Found:2008/06/19(木) 13:27:42 ID:???
>>377
ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-4_Array_Objects.html
によれば、a[10]が存在していればa[0]〜a[9]も自動的に存在する
ようになる、と読めるね。
379Name_Not_Found:2008/06/19(木) 13:35:20 ID:???
>>378
そうか?別段そういうことは書いてないと思うが
380377:2008/06/19(木) 14:12:28 ID:wVAEkJPX
http://builder.japan.zdnet.com/sp/javascript-kickstart-2007/story/0,3800083428,20366751,00.htm
この前後の連載を読んで理解しました。
C/C++ ばかりだった自分にとってはずいぶんと違う世界でした。
381Name_Not_Found:2008/06/19(木) 14:29:59 ID:???
>>379
そうだね、何か勘違いしたようで、申し訳ない。
382377:2008/06/19(木) 14:43:49 ID:wVAEkJPX
JSON関係の質問もここで良いですか?
JSONでは文字列は「ユニコード」であるとされていますが、
これって非ASCII文字はすべて \uxxxx 形式のエスケープで表記せよ、
ということなのでしょうか?

Unicode といわれても表現方法は UTF-8 を含め多数あるので、
その当たりの表現方法については決められているのかなと
思ったのですが、特に規定されていないようでどうしたものかと。
383377:2008/06/19(木) 14:58:31 ID:wVAEkJPX
すんません、おちついてRFC読み直してみたら書いてありました。
http://www.ietf.org/rfc/rfc4627.txt
384Name_Not_Found:2008/06/19(木) 19:12:47 ID:???
うろ覚えで何て単語で検索して良いのかわからないので確認したいんのだけど、
「ある要素を監視しておき、その要素に他の要素が追加された時にイベント発生」
というような機能なかったでしたっけ?

誰か知ってたりしたら教えてください。
385Name_Not_Found:2008/06/19(木) 19:20:44 ID:???
>>384
DOMNodeInserted?
386Name_Not_Found:2008/06/19(木) 21:22:35 ID:???
>>385
ドンピシャだった!ありがとう。
387Name_Not_Found:2008/06/19(木) 22:57:50 ID:HjeHeh3z
動的にサーバ上のjpgを読みに行くにはどうしたら良いでしょうか?
DWに標準でついてるスワップイメージを最初考えたんですが、
アレだとすり替え用のデフォルトの画像が必要です
完成イメージとしては、チェックボックスをクリックすると、それに応じた
画像が表示され、チェックを全部クリアすると画像が消える感じです

すみませんがどなたかアドバイスお願いします
388Name_Not_Found:2008/06/19(木) 23:02:03 ID:???
>>387
賢い俺が翻訳してやると、画像URIをユーザーが選べるようにしたい、ということかね。
389Name_Not_Found:2008/06/20(金) 00:18:25 ID:???
>>378
で、多数チェックしたときはどうなるって?
390Name_Not_Found:2008/06/20(金) 01:55:59 ID:???
ページ上にある特定のスタイル 例えば style="color:red; を
ボタンクリックしたら style="color:black; というようにしたいのですが
style自体は他にも使われているのでstyleの要素だけでは抜けられないと思います
なのでcolor:red; → color:black;  というようにテキストを置換する方法を考えていますが
どのように書けばいいのでしょうか?
document.replace('color:black; ','color:black; ')
これだとうまくいきません
391Name_Not_Found:2008/06/20(金) 02:10:30 ID:???
>>390
<... style="color:red"な要素すべてを<... style="color:black"にする
でよしか?

var elements = document.getElementsByTagName('*');
for (i = 0; i < elements.length; i++) {
if (elements[i].style.color === 'red') {
elements[i].style.color = 'black';
}
}
392390:2008/06/20(金) 03:36:54 ID:???
>>391
ありがとうございます

styleの要素が二つのとき
style="color:red; font-size: 14px"

こう書いたのですがうまくいきません
if((elements[i].style.color === 'red') && (elements[i].style.fontSize === '10')){
elements[i].style.color = 'black';
}
どのような条件式になるのでしょうか・・・
393Name_Not_Found:2008/06/20(金) 06:29:30 ID:???
自己解決しますた
394Name_Not_Found:2008/06/20(金) 11:10:56 ID:???
他のページに飛ぶのではなく、同一ページ内で
swfの表示サイズ(width=***, high=***)を
閲覧者がポップアップメニューで切り替えられるような
スクリプトってありますか?
画像でも同じようなスクリプトがあればswf用に転用出来ると
思うのですが、もしそのようなものがあればご教授ください。
395Name_Not_Found:2008/06/20(金) 11:47:15 ID:KZpiizg0
下記のようなフレーム構造で
under.html内のjavascript実行(innerTextで文字列を変える)してから
top.htmlでsubmit実行すると、under.htmlが別ウィンドウで開いてしまいます。

理由と解決策をご存知でしたら教えてください。
※JavaScript実行しない場合は正常に動作します。

□test.html
<frameset rows="100,*" border="1">
<frame src="top.html" name="top">
<frame src="under.html" name="under"/>
</frameset>

□top.html
<form action="under.html" method="post" target="under">
<input type="submit" value="送信">

□under.html
<table>
<tr><td>aaa</td><tr>
<tr><td>bbb</td><tr>
<tr><td>ccc</td><tr>
</table>
396Name_Not_Found:2008/06/20(金) 11:50:02 ID:???
>>395
その問題を起こしているげなスクリプトを貼らずに相談とは
いい度胸だね。
397Name_Not_Found:2008/06/20(金) 12:48:16 ID:KZpiizg0
仰るとおりです。申し訳ないです。

原因となってるっぽい箇所です↓
onblurでtest()を呼び、計算させて<td></td>の中をinnerTextで書き換えるとい
う処理ですが、
この計算実行で既に発生することがわかりました。計算結果は正しいものとなっ
ています。
fuction test()
{
total = 0;
for(i=0; i<3; i++){
object = getObject(i,"02");
total += parseInt(object.value);
}
}

function getObject(row,col)
{
name = "a" + row + "b" + col;
return document.フォーム名.elements[name];
}
398Name_Not_Found:2008/06/20(金) 13:30:09 ID:???
>>397
あのねえ、nameという変数を使いたいのなら「var name = ...」
のようにしてローカル変数にしないと。今はグローバル変数
つまり window.name を書き換えているため、そのフレームの名前が
under でなく a0b02 みたいな名前になっていると思われ。
399Name_Not_Found:2008/06/20(金) 13:53:53 ID:???
>>398
解決しました!ありがとうございます!

特に意識せずに変数名つけてましたがローカルグローバルもちゃんと考えなきゃですねm(__)m
勉強になりました!
400Name_Not_Found:2008/06/20(金) 16:31:15 ID:UBjOGtUw
ファイルをDLさせたいがそのファイルの生成にすげー時間がかかるんで、
submitボタン連打を5秒間だけ防止したい

<input type="submit" name="button" value="push" onclick="return renda();">


var timeout=0;
function renda(){
timeout++;
if(timeout>5){
timeout=0;
document.button.button.disabled = false;
return false;
}else if(timeout==1){
document.button.button.disabled = true;
window.setTimeout("renda();",1000);
return true;
}else{
window.setTimeout("renda();",1000);
return false;
}
}


FFではエラーも検出されずきちんと動作しましたがIEでは動きませぬ。何故でせう。
401Name_Not_Found:2008/06/20(金) 16:39:48 ID:???
>>400
「動かない」の内容をちゃんと書けって。エラーが出るのか
何も反応しないのか、その時ボタンは押せてるのかとか。
402Name_Not_Found:2008/06/20(金) 16:40:49 ID:???
document.compatMode=='CSS1Compat'
DOCTYPEをこれより少ない文字数で判定する方法はありませんか?

IE専でかまいません
403Name_Not_Found:2008/06/20(金) 17:05:31 ID:???
var d = document, c = d.compatMode;

c == 'CSS1Compat'
404Name_Not_Found:2008/06/20(金) 17:15:02 ID:UBjOGtUw
>>401
そーりー

・5秒間禁止は問題なく動作
 (押した直後に押せなくなり、5秒後に押せるように戻る)

・次画面に遷移しない
 (次画面をテキスト表示だけ、等にしてみたが反応せず)

・function renda(){document.csvDL.button.disabled = true;window.setTimeout("renda();",1000);return true;}
とすると動作
405Name_Not_Found:2008/06/20(金) 17:27:54 ID:???
>>403
すいません、そういうことではなくて
文字総数で少なくしたいので
document.compatMode=='CSS1Compat'
の33文字より少なくできる方法はありませんか?

compatModeプロパティにこだわる必要もないです。
406Name_Not_Found:2008/06/20(金) 17:34:31 ID:???
時間待ちをする関数とonclickで呼ばれる関数を一緒くたに
したから自分でロジックを追えなくなってるんでしょ。
分けたら。そもそも5秒なんだからタイムアウトを5000で
作ればいいのに。
407Name_Not_Found:2008/06/20(金) 20:07:31 ID:UBjOGtUw
>>406
Σ(゚□゚;)!!
408Name_Not_Found:2008/06/20(金) 23:56:55 ID:???
変数にweb上のHTMLデータを代入したいのですが
どのようにすればいいのでしょうか。
409Name_Not_Found:2008/06/21(土) 00:10:16 ID:???
>408の動作環境を書き忘れました

Javascriptを組み込んだHTMLはweb上にあります
そのHTML内のJavascriptが読み込みたいHTMLデータもweb上にあります
ローカルのファイルは一切いじりません
410Name_Not_Found:2008/06/21(土) 00:12:35 ID:???
>>409
同じ鯖なのね?それならXmlHttpRequest()で読むんでしょ。
411Name_Not_Found:2008/06/21(土) 01:22:00 ID:???
>>410
ぉ、お、おおお
ありがとうございますm(_ _)m

Ajaxって今ではどのブラウザでも標準でついているんですね
前ちょろっと見た時にライブラリが必要なのかなーとか思ってましたが
凄い敷居が低くてありがたいです

別の鯖ですが、別の鯖だと動作しないのでしょうか
2ch全板トーナメントスレが新しくなる度にHPを更新するのが面倒なので
色々考えた末にJavascriptで実装できそうかなーと思って
調べてたのですが結果分からず質問致しました。

スクリプトは塩街にでも置こうと思ってます
412Name_Not_Found:2008/06/21(土) 01:22:21 ID:???
>>410
大文字小文字
413Name_Not_Found:2008/06/21(土) 01:25:14 ID:???
魚の話題はスレ違い。


というか、馬鹿な初心者にははっきり言った方がいいな。
鯖って何ですか?勘弁してください。
414Name_Not_Found:2008/06/21(土) 01:44:31 ID:???
俺はプロキシサーバのことを「串」と書く点も厨判定に利用してる。
415Name_Not_Found:2008/06/21(土) 01:53:21 ID:???
2chやめとけ
416Name_Not_Found:2008/06/21(土) 01:55:31 ID:N+PRjJ56
よろしくお願いします。

下記記述で「/」の為、jsが動きません。
「/」は必ず使いたいので、回避方法をご教示いただけませんでしょうか、、、


function checkA(){
var flag = 0;
if(!document.iform.果物/りんご.checked)
if(!document.iform.果物/みかん.checked)
{
flag = 1;
}
if(flag){
window.alert('果物項目がチェックされてません');
return false;
}
else{
return true;
}
}
417Name_Not_Found:2008/06/21(土) 02:41:17 ID:lAfacg6N
JavaScriptでサーバ上にあるXMLファイルを読み込む処理を勉強しております。
参考URL:http://www.openspc2.org/JavaScript/Ajax/Ajax_study/chapter02/009/

そこで質問です。
以下のXMLファイルで、cacheタグに挟まれているurlタグの中の文字列は出力しないようにし、
resタグ直下のurlタグのみを出力するには、以下のJavaScriptのソースをどう改修すればよいでしょうか?

【XML】

<?xml version="1.0" encoding="UTF-8" ?>
<set>
  <res>
    <title>タイトル1</title>
    <url>http://hogehoge.jp/1/</url>
    <cache>
      <url>http://cache.hogehoge.jp/1/</url>
    </cache>
  </res>
  <res>
    <title>タイトル2</title>
    <url>http://hogehoge.jp/2/</url>
  </res>
  <res>
    <title>タイトル3</title>
    <url>http://hogehoge.jp/3/</url>
    <cache>
      <url>http://cache.hogehoge.jp/3/</url>
    </cache>
  </res>
</set>
418417:2008/06/21(土) 02:42:14 ID:lAfacg6N
【JavaScript(HTML内)】

〜(省略)〜
xmlData = httpObj.responseXML;
resTag = xmlData.getElementsByTagName("res");
titleTag = xmlData.getElementsByTagName("title");
urlTag = xmlData.getElementsByTagName("url");
resultTxt = "";
for(i=0; i<resTag.length; i++){
  s_title = titleTag[i].childNodes[0].nodeValue;
  s_url = urlTag[i].childNodes[0].nodeValue;
  resultTxt += s_title + " : " + s_url + "<br>";
}
〜(省略)〜


【現状の出力結果】
タイトル1 : http://hogehoge.jp/1/
タイトル2 : http://cache.hogehoge.jp/1/
タイトル3 : http://hogehoge.jp/2/


【期待する出力結果】
タイトル1 : http://hogehoge.jp/1/
タイトル2 : http://hogehoge.jp/2/
タイトル3 : http://hogehoge.jp/3/
419Name_Not_Found:2008/06/21(土) 02:58:43 ID:???
>>418
urlTag[i].parentNode.tagName !== 'cache' とかで見えんかな
420Name_Not_Found:2008/06/21(土) 03:31:05 ID:???
JavaScriptでもweb上のファイルを読み込みができるんだな
そういうのはいつもPHPでやってたわ
そうかリロードしなくても更新ができるとういうわけか
421Name_Not_Found:2008/06/21(土) 08:25:07 ID:???
>>420
そういうのをAjaxと呼ぶんじゃなかろうか。
422Name_Not_Found:2008/06/21(土) 08:50:42 ID:???
>>413
テンプレのFAQにも「鯖」が使われているんだけど。
なんでテンプレには文句言わないの? (直すのに反対
してるわけではなくて、なんでテンプレ論議のときに
指摘しないのか不思議なだけ。)
423Name_Not_Found:2008/06/21(土) 08:57:56 ID:???
>>422
馬鹿な初心者を構っちゃらめ
ヌルー汁
424Name_Not_Found:2008/06/21(土) 11:20:57 ID:???
【鯖】
スズキ目サバ科の海水魚、マサバとゴマサバの総称。魚体は紡
錘形でやや側扁し、背びれ・尻びれの後方に小さなひれがいく
つか並ぶ。世界に広く分布し代表的な食用魚。俳句では夏の季語。
○―釣や夜雨のあとの流れ汐/蛇笏
425Name_Not_Found:2008/06/21(土) 11:23:48 ID:???
>>422
一括りにするつもりは無いが、こういう奴はプログラマに本当に多い。
性質上そうなるのかもしれないがリアルで付き合うのはマジ簡便。
426Name_Not_Found:2008/06/21(土) 11:49:18 ID:???
>>425
プログラマの空気の読めなさはまじで異常だよな
あと議論がいつも小学生みたいな揚げ足取りになる
極端な例で言えば「何年何月何日何時何分何秒地球が何回周った時?」とかそんなの
427Name_Not_Found:2008/06/21(土) 11:59:00 ID:???
プログラマってほんと頭悪い奴の職種なんだな
有能マが可哀想だ
428Name_Not_Found:2008/06/21(土) 12:05:55 ID:???
スレ違いな話題はよそでやってね。
429Name_Not_Found:2008/06/21(土) 12:10:01 ID:???
>>413 が激高して多重自演してる様に激藁タよ。
430Name_Not_Found:2008/06/21(土) 12:16:18 ID:???
HPにアクセスカウンターつけたいんですがどうすればよいのでしょうか?
使ってるソフトはHPビルダ12です
ググったところレンタル?するもののようですがいまいち概念がわかりません
いま↓のようなところを読んでるのですが
Javaスクリプトをhtmlソースに組み込むことでカウンタをレンタルして効果がでてるということなのでしょうか・・・?

http://count.sekkaku.net/hpsoft.html#3
431Name_Not_Found:2008/06/21(土) 12:17:16 ID:???
おれ高校中退後コンピュータの専門がっこ。会社じゃ目下某服
飾企業のHPのリニューアルPJ参加中。無能なのはよくわかって
る。といって他にできるものねぇしなぁ。悪かったな。
432Name_Not_Found:2008/06/21(土) 12:20:10 ID:???
>>430
そのビルダとかいうのを卒業しないかぎりアンタには無理。
433Name_Not_Found:2008/06/21(土) 12:20:15 ID:???
>>431
充分有能じゃないか自信もて。
無能ってのは何もできないのに他人を卑下してるやつのこと
434Name_Not_Found:2008/06/21(土) 13:49:37 ID:???
裏日本の金沢市でjavascriptの勉強会とか開催したら参加してくれる人
っているもんだろうか?ちょっと考えているのですが集まるかどうか不安。
内容としてはフラナガンの本を読むかprototype.js等のライブラリを読
むかとか考えてます。
435Name_Not_Found:2008/06/21(土) 15:09:38 ID:???
>>434<-ちょっとオフトピだがマジレス。
集まるかどうか不安なんて言ってたら何にもできませんぜ。
とにかくやってあんたのひた向きな背中を金沢市内の人間みんなに
見せることだろ。うちの区(東京下町)では区報にワークショップてな
コーナーがあって、PCはじめいろんなお稽古事関係が講習や教室を
開いて参加者を募集している。最初はまず人は来ないと思った方が
いい。そういうのをやると少しは素っ頓狂な質問も減るかなと思う。
がんばれ。
436Name_Not_Found:2008/06/21(土) 15:39:09 ID:???
マウスの座標取得で、
event.clientXなどでIEはで来たのですが、FF等で動きません。
クロスブラウザ対応なマウス座標取得はどうすればいいのでしょうか?
437Name_Not_Found:2008/06/21(土) 15:48:01 ID:???
>>418
var xmlData  = httpObj.responseXML;
var resTag   = xmlData.getElementsByTagName("res");
var titleTag = xmlData.getElementsByTagName("title");
var urlTag   = xmlData.getElementsByTagName("url");
var resultTxt = "";
var i = 0, j = 0;
while(titleTag[i]){
  s_title    = titleTag[i].firstChild.nodeValue;
  if(uriTag[j].parentNode.nodeName == "cache"){
    j++;
  }
  s_url      = urlTag[j].firstChild.nodeValue;
  resultTxt += s_title + " : " + s_url + "<br>";
}

こんな感じかな
438Name_Not_Found:2008/06/21(土) 15:56:10 ID:???
>>435
確かにそうだな。やってみなけりゃ何も始まらんな。
そういう場所をまず探してゆくか。
ありがとう。
439Name_Not_Found:2008/06/21(土) 16:05:26 ID:???
>>436
過去スレ全集で検索すればいくらでも見つかるよ。
440Name_Not_Found:2008/06/21(土) 20:59:33 ID:???
>>436
Event.pointerX(event) Event.pointerY(event)
441Name_Not_Found:2008/06/21(土) 21:00:45 ID:???
言い忘れたゴメン
上のはprototype.jsを使ったやつな
442Name_Not_Found:2008/06/21(土) 21:01:52 ID:???
XSLTってあったな。
今時のサーバとブラウザの世代交代を考慮すると、本番運用できるかもな。

<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="res[child::title and child::url]"><xsl:value-of select="child::title"/> : <xsl:value-of select="child::url"/><xsl:text>&#13;&#10;</xsl:text></xsl:template>
<xsl:template match="node()"><xsl:apply-templates/></xsl:template>
443377:2008/06/22(日) 00:12:37 ID:XEoiJWyd
あるテキストファイルがJSONファイルとして正しいかどうかを検証してくれるサイトってありませんか?
444Name_Not_Found:2008/06/22(日) 02:24:55 ID:???
それはここに書く前に検索した方が比較にならないほど早く解決するだろう。
もしファイルの内容をじかに書かなければならない不便な物しか見つからなかったら、ファイルの内容を投げて結果を調べるコードを書けばいいだろ。これまたそこそこ丁寧に書いても30分以内に書ける。
つまり、オマエが物乞いだということだな。生き恥晒してんじゃねえよ。
445Name_Not_Found:2008/06/22(日) 04:11:47 ID:???
>>442
ttp://www.wowarmory.com/
恐らく毎日膨大なPV数であろう、一般ユーザー向けのサイトで使われている興味深い例。

>>443
JSON validatorあたりでググってみる。

>>444
>生き恥晒してんじゃねえよ。
446Name_Not_Found:2008/06/22(日) 04:17:24 ID:W8+DpW9j
以下のような<div>でくくったcheckboxが2つあります。
<div id="boxA[]" style="display:none"><input type="checkbox" name="cbA[]" value="1" /></div>
<div id="boxB[]" style="display:none"><input type="checkbox" name="cbB[]" value="1" /></div>
このdiv二つは、別のプルダウンのoptionの選択の切り替えでdisplayを操作していて、
・boxAを表示してるときはboxBが隠れている
・boxBを表示してるときはboxAが隠れている
・プルダウンが未選択(デフォルト状態)の時は両方とも隠れている
…という形になっています
また、この「<div>2つ + 操作してるプルダウン1つ」は3セットあります。

このとき、
・3セットのうち、2セットをboxBを表示&チェック(boxAはdisplay:none)
・残りの1セットををboxAを表示&チェック(boxBはdisplay:none)
してPOST送信するとポストデータに異常が発生します。
boxB、boxAともに、display:none状態のまま送信した分が、データとしてわたらないのです
以下、ポストデータを var_dump($_POST) したものです。
["cbB"]=> array(2) { [0]=> string(1) "1" [1]=> string(1) "1"}
["cbA"]=> array(1) { [0]=> string(1) "1"}

本来なら、両方とも array(3) となるように、配列が3つわたると思うんですが、
どうしたら解決するでしょうか?
http://memo.hirosiki.jp/article/45836034.html を見ると、この問題に触れてるんですが
送信エラー起こす場合と起こさない場合があるようで、イマイチ答えになりません
対策や意見をもらえたら幸いです よろしくお願いします

(ちなみに、データの入力はCHECKBOXでなくプルダウンでも同様になります)
447Name_Not_Found:2008/06/22(日) 04:54:40 ID:???
チェックボックスは off だとデータ渡らないけどね

そういうことじゃなければソースをどっかにうpして
正直読んでてよくわからん
448Name_Not_Found:2008/06/22(日) 05:46:32 ID:???
>>447
いや、そういうことだと思う

個人的にはidやnameに大かっこ使ってるのが気になってしょうがないけどこれ不正じゃないの?
449Name_Not_Found:2008/06/22(日) 05:51:59 ID:???
name の方は [] で送ると
サーバサイドのスクリプト上では配列として受けれるんだよね

id の方はちとマズいだろな
450Name_Not_Found:2008/06/22(日) 05:58:56 ID:???
なるほど
451Name_Not_Found:2008/06/22(日) 06:12:03 ID:???
>>446
input要素のvalue属性値をユニークにすれば解決するだろ。つうか、気付けよタコ。
その言語には array_values() や array_flip() などの便利なトップレベル関数があるのだから、それらのどれらかを使える形を整えろ。
あと、CSSのdisplayプロパティとその値は関係ない。

ついでだが、>>449の言う通り、div要素型(に限らず)、id属性値はNAME・ID型だから括弧は使えない。
(さらについでだが、input要素型のname属性値はCDATAだからだいじょうぶ。)
452377:2008/06/22(日) 07:41:29 ID:XEoiJWyd
>>445 THX
JSONLint The JSON Validator
http://www.jsonlint.com/
453377:2008/06/22(日) 08:06:51 ID:XEoiJWyd
TinyJSON - A Minimalistic JSON Reader Based On Boost.Spirit, Boost.Any and Boost.Smart_Ptr
http://blog.beef.de/projects/tinyjson/
C++好きの自分にはよだれが出る。
454Name_Not_Found:2008/06/22(日) 09:23:27 ID:???
XMLHttpRequestってIEとFFとかで動作違う?
こちらから指定したXMLの内容の一部(中で1から順番に番号を振ってる、その例えば10~20)をXSLTで変換して表示させようとしてるんだけど、IEでうまくいってFFでうまくいかない
ほとんど載ってた例文どおりに書いたんだが・・・
どこかわかりやすいサイトとかある?
455Name_Not_Found:2008/06/22(日) 09:41:34 ID:???
Firebug とか使ったらなんかわからんもんかね?
456Name_Not_Found:2008/06/22(日) 09:45:22 ID:???
457Name_Not_Found:2008/06/22(日) 09:45:45 ID:???
失礼安価ミス>>456>>454ね。
458Name_Not_Found:2008/06/22(日) 09:47:21 ID:???
その例文とやらを乗せるのが一番早いかと
459Name_Not_Found:2008/06/22(日) 11:13:12 ID:???
>>454
XMLHttpRequestはIE7以上でないと使えない
IE6以下はActiveXObject使うしかない
場合分けしる
460446:2008/06/22(日) 12:07:53 ID:???
皆さんありがとうございました、ご意見を参考に頑張ってみます
(idの値についてですが、書き間違えでした。ちゃんと
boxA1,boxA2,boxA3 boxB1,boxB2,boxB3 となっています
>>451
>input要素のvalue属性値をユニークにすれば解決するだろ。つうか、気付けよタコ。
それだと場当たりの処理は出来ますが、「渡されるべき形で配列が渡されない」という
本質的な問題は解決しません
それで居心地が悪いので質問させてもらいました ありがとう
461Name_Not_Found:2008/06/22(日) 12:59:10 ID:???
なんだかヘンな方に議論が行っているような。
display:none だとその部分は「存在しない」のでデータが渡らない。
visibility:hidden だとその部分は「見えないだけ」なのでデータが渡る。
462Name_Not_Found:2008/06/22(日) 13:20:00 ID:???
> display:none だとその部分は「存在しない」のでデータが渡らない。

君の脳内ブラウザではそうかもしれんが
あんまり無責任な発言をしてもらっても困る
463Name_Not_Found:2008/06/22(日) 14:47:27 ID:???
display:noneもvisibility:hiddenも表示を消す、物は残ってる。
単にその存在分の空白が残るか残らないかって話だけ
464454:2008/06/22(日) 14:56:11 ID:???
レスthx
サンプルのURL消しちゃってたからもう一度探してくる
下が今弄ってるものなんだけど、いろいろ入れ替えたり書き直してたりしてたらIEでも動かなく・・・orz
IE7とFF2(今は3)を使っているから、テスト段階ではXMLHttpRequestだけでいいかと思ってそれしか書いてない
当然あとで書き足す予定
function goend(threadnum,startnum,loop){
var snum = startnum;
var fnum = Math.abs(startnum) + Math.abs(loop);
var xmlfilename=threadnum + ".xml";
var xmlt = new XMLHttpRequest();
var xslt = new XMLHttpRequest();
xmlt.open("GET",xmlfilename,true);
xmlt.onreadystatechange = function(){ if(xmlt.readyState == 4){
var xmld = xmlt.responseXML;
xmlt.send(null); } }
xslt.open("GET","../xsl.xsl",true);
xslt.onreadystatechange = function(){ if(xslt.readyState == 4){
var xsld = xslt.responseXML;
xslt.send(null); } }
var vali = new Array();
try{ vali=xsld.getElementsByTagName("xsl:variable");
}catch(e){ try{ vali=xsld.getElementsByTagName("variable");
}catch(e){ alert("getElementsByTagName Error"); } }
vali[0].text=fnum;
vali[1].text=snum;
var htmld;
htmld = xmld.transformNode(xsld);
document.write(htmld);}
465Name_Not_Found:2008/06/22(日) 15:20:47 ID:XEoiJWyd
JSONって{ "a": "b", "a":"c" }
みたいにオブジェクト(ハッシュ)のキーが重複するような
データは規格の上で間違っているとされているの?

それとも単に eval()で評価すれば後から設定したプロパティ
に置き換わるだけなのでそれでよしということなのでしょうか?
466417-418:2008/06/22(日) 15:49:19 ID:pf9eXiX0
>>437
dクスです!できました。
467Name_Not_Found:2008/06/22(日) 15:55:22 ID:pf9eXiX0
Yahoo!検索で一番上に出てくるサイトのリンクを作るプログラムです。IE6で動作確認しています。
「取得」ボタンを押すと、一回目はエラーが必ず出てしまい、もう一度「取得」ボタンを押すとうまくいきます。
一回目からうまくいくようにするにはどうしたらよいでしょうか?
何か、カウント用変数のiとjがおかしいことになってるみたいなんですが…。
ちなみにデバッグ用にalertを3箇所に書いてありますので、アラートいっぱい出てきてOKという方はコメントアウトを外して実行してみてください。
お願いします。

<html><head><title></title>
<script type="text/javascript">
<!--
word = new Array("javascript", "ajax");
site = new Array("2ch.net", "jbbs.livedoor.jp");
function createXMLHttpRequest(cbFunc){
var XMLhttpObject = null;
try{
XMLhttpObject = new XMLHttpRequest();
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
return null;
}
}
}
if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
return XMLhttpObject;
}
// 下に続く
468467:2008/06/22(日) 16:03:24 ID:pf9eXiX0
// 上の続き
function loadXMLFile(fName){
httpObj = createXMLHttpRequest(displayData);
if(httpObj){
httpObj.open("GET", fName, true);
httpObj.send(null);
}
}
function displayData(){
if((httpObj.readyState == 4) && (httpObj.status == 200)){
//alert("デバック用(成功):\ni = " + i + ", j = " + j);
xmlData = httpObj.responseXML;
Result_Tag = xmlData.getElementsByTagName("Result");
document.getElementById("src_" + i + "_" + j).innerHTML =
"<a href=\"" + Result_Tag[i].getElementsByTagName("Url")[0].childNodes[0].nodeValue + "\" target=\"_blank\">" + Result_Tag[i].getElementsByTagName("Title")[0].childNodes[0].nodeValue + "</a>";
}else{
//alert("デバック用(失敗):\ni = " + i + ", j = " + j);
document.getElementById("src_" + i + "_" + j).innerHTML = "読み込み中";
}
}
function SearchResultCount(){
for(i=0; i<site.length; i++){
for(j=0; j<word.length; j++){
//alert("デバック用(正しいカウント):\ni = " + i + ", j = " + j);
loadXMLFile("http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=YahooDemo&query=" + encodeURIComponent(word[j]) + "&site=" + site[i]);
}
}
}
// 下に続く
469467:2008/06/22(日) 16:04:46 ID:pf9eXiX0
// 上の続き
//-->
</script>
</head><body>
<form><input type="button" value="取得" onClick="SearchResultCount();"></form>
・「javascript site:2ch.net」での検索結果:<b><span id="src_0_0"> </span></b><br>
・「ajax site:2ch.net」での検索結果:<b><span id="src_0_1"> </span></b><br><br>
・「javascript site:jbbs.livedoor.jp」での検索結果:<b><span id="src_1_0"> </span></b><br>
・「ajax site:jbbs.livedoor.jp」での検索結果:<b><span id="src_1_1"> </span></b><br>
</body>
</html>
470467:2008/06/22(日) 16:14:21 ID:pf9eXiX0
--------------------------
長いソースでスマソ。

※エラーの詳細
「'document.getElementById(...)' は Null またはオブジェクトでありません。」

displayData()関数で、
i も j も、値は 0 か 1 しか来ないはずなのだが、
なぜか i = 2になったり j = 2になったり。なぜだ??
471Name_Not_Found:2008/06/22(日) 16:24:30 ID:???
iとjがグローバル変数だからよその関数などで入れた
値と混ざってるんじゃないの。
for(var i = ...
for(var j = ...
に直してみれば。
472Name_Not_Found:2008/06/22(日) 16:36:52 ID:???
学校の課題でスロットを作っています。色々なサイトでスロットのソース見てきたのですが、
どの関数がどのような役割をしているのかがよく理解できませんでした。
ためしに自分でも3つの画像を使ったスロットを作ってみたのですがスタートを押すと
画像が変わる処理が1回で止まってしまい、ゲームになりませんでした;;
ソースは次の通りです
473Name_Not_Found:2008/06/22(日) 16:36:52 ID:???
>>465
RFC 4627
ttp://tools.ietf.org/html/rfc4627
>The names within an object SHOULD be unique.

>>467
この状態では、SearchResultCountとdisplayDataとではi,jの値を共有しない為。
<!--
var i,j;
word = new Array("javascript", "ajax");
最初の方にこのように書けば大丈夫だろうけど、i,jのような変数名をグローバルで使うのはお勧めしない。
474472:2008/06/22(日) 16:41:56 ID:???
function Setimage()
{
for(i=0;i<4;i++)
{
image[i]=new Image(200,150);
image[i].src="image"+i+".jpg";
}
}
function Scroll()
{
time1=setTimeout("Scroll1()",100);
time2=setTimeout("Scroll2()",125);
time3=setTimeout("Scroll3()",150);
}
function Scroll1()
{
document.photo0.src=image[n].src;
n++;
if(n>=4)
n=0;
}
475472:2008/06/22(日) 16:43:13 ID:???
function Scroll2()
{
document.photo1.src=image[n].src;
n++;
if(n>=4)
n=0;
}
function Scroll3()
{
document.photo2.src=image[n].src;
n++;
if(n>=4)
n=0;
}
(中略)
<td align="center"><input type="button" name="start1" value=Start! onClick="Setimage();Scroll()">

多分おかしいところはこのあたりだと思うのですが。。。どうしたら繰り返しの処理が正しく
行われるのでしょうか。
476Name_Not_Found:2008/06/22(日) 16:51:14 ID:???
なんて汚いソース。

先に配列と引数覚えればもう少しきれいになると思う。
477472:2008/06/22(日) 17:20:37 ID:???
>>476
ありがとうございます。
a = new Array("月曜日","火曜日","水曜日","木曜日","金曜日");
b = new Array("1時限目","2時限目","3時限目","4時限目","5時限目","6時限目");
for(i=0;i<a.length;i++)
{
for(j=0;j<b.length;j++)
{
var subject = (i+j)%5;
if( subject ==0){alert(a[i]+"の"+b[j]+"は数学です")};
if( subject ==1){alert(a[i]+"の"+b[j]+"は国語です")};
if( subject ==2){alert(a[i]+"の"+b[j]+"は英語です")};
if( subject ==3){alert(a[i]+"の"+b[j]+"は社会です")};
if( subject ==4){alert(a[i]+"の"+b[j]+"は理科です")};
}
}
↑これが教材でした・・・。このような感じで配列や引数もやったにはやったのですが
これ(配列等)をスロットの中でどのように使えばよいのかが分かりませんでした。
理解が全く足りてなかったようですね>< 基礎をもう一度学び直してきます。
長文失礼しました&ありがとうございました。
478Name_Not_Found:2008/06/22(日) 21:46:49 ID:???
>>473
> i,jのような変数名をグローバルで使うのはお勧めしない。
極論すれば、どうでもいい。
常に初期化する規約を設ける方が、実は、はるかに建設的だ。
毎週2時間かかる1000万レコード超のオラクルデータ更新を、スワップ10Gb以下に抑えながら、
JScriptだけで
やっている俺が言うのだから、かなり説得力は高いだろう。
479Name_Not_Found:2008/06/22(日) 21:57:58 ID:???
>>478
ループ中にi使う関数呼び出されたらどうすんの?
480Name_Not_Found:2008/06/22(日) 22:14:17 ID:???
>>479
おいおい、まさか、スコープ超えて使うわけないだろ。

因みに、関数をほとんど使わない。とにかく、追加要求がまとまったら、ダラダラとグローバルに追記して実装する。
481Name_Not_Found:2008/06/22(日) 23:21:17 ID:???
関数に分けないでひたすらグローバルに書くなんて
40年前のスタイルだね。何箇所かで同じ処理をするときは
そのコードを必要なだけコピペするわけ?
482Name_Not_Found:2008/06/23(月) 00:26:30 ID:???
>>480
だから関数を「まったく」使わないなら全部グローバルは
分かるけど。関数を書く時にその関数の中で使う作業用の変数を
グローバル変数にしてるんだったらとんでもないと思うけどね。
483Name_Not_Found:2008/06/23(月) 00:26:45 ID:???
関数使わない方が速いっていう利点はあるよね。
484467-470:2008/06/23(月) 01:13:26 ID:DzJ84Pjg
>>471でやっても>>473でやっても駄目でした。

原因はiやjではなく別にあるような…。
485Name_Not_Found:2008/06/23(月) 01:15:03 ID:???
糞ソースを見るとイラっとする俺はもう駄目かもしれん
486Name_Not_Found:2008/06/23(月) 02:17:08 ID:uInEyN34
>>484
女子高生です

あなたセンスがないからもうやめた方がいいよ
487Name_Not_Found:2008/06/23(月) 02:20:33 ID:???
>>484
漏れも気になって再現してみたがやっぱり最初はだめだな。
デバッカで追っかけてみたが、よくわからんかった。
気持ち悪くて眠れんのだが。
488Name_Not_Found:2008/06/23(月) 03:13:19 ID:rQMNNzo3
オブジェクトの下にあるオブジェクト(この例ではAjax.Delegate)が存在するかどうかを判定して分岐するにはどうすればよいのでしょうか。
以下のソースをFirefox 3で実行してみると、アラートで[Object Object]と表示され、Ajax.Delegateオブジェクトが存在していることが確認されるのですが、
なぜかf(!Ajax.Delegete){}が実行され、中のalert(Ajax.Delegete);の結果”undefined”がアラートされます。


if(!Ajax){
var Ajax=new Object;
}

Ajax.Delegate=new Object;
Ajax.Delegate.Version="1.0.0.0";
alert(Ajax.Delegate);
if(!Ajax.Delegete){
alert(Ajax.Delegete);
Ajax.Delegate=new Object;
Ajax.Delegate.Version="1.0.0.0";
}
489Name_Not_Found:2008/06/23(月) 03:50:21 ID:???
スペル
490Name_Not_Found:2008/06/23(月) 04:46:23 ID:???
>>489
ありがとうございます。
1時間半の苦労がorz
491Name_Not_Found:2008/06/23(月) 05:34:06 ID:j4JVz+ZB
>>488
こういうミスって識別子の補完機能があるIDEつかっていれば
かなり少なくできると思うんだけど、Javascript だと
どういう環境があるの?みんなただのエディタ使っているの?
俺はメモ帳とかサクラエディタを使っている。
492Name_Not_Found:2008/06/23(月) 06:24:24 ID:???
質問です。
セレクトメニューで選択された項目に対して、変数に文字列を代入するにはどうしたらいいでしょうか。
493Name_Not_Found:2008/06/23(月) 06:53:39 ID:???
>>491
DashCodeに補完機能あると嬉しいんだけどなぁ
Xcodeには補完機能あるのにDashCodeにはない(´・ω・`)
Apple頼むよ…

Aptena Studioに補完機能あったかもしれないがEclipse系はJava独特のもっさり感があるのでどうも好きになれん。

http://www.panic.com/jp/coda/
こういうの買えってことなんだろなぁ

>>492
http://homepage3.nifty.com/aya_js/js2/js216.htm
494Name_Not_Found:2008/06/23(月) 06:58:29 ID:???
ちょい訂正
よくぐぐってみたらcodaは補完いまいちだそうな
495492:2008/06/23(月) 07:09:15 ID:???
>>493
ありがとうございます。しかし例がなぜCCS・・・
496Name_Not_Found:2008/06/23(月) 11:32:28 ID:???
>>484
iとjを持ち回したら?
>>471が言ってる通りforの中でvarで宣言、
loadXMLFileを呼び出すときにiとjも渡す。
loadXMLFileの中でhttpObjのプロパティにセット
function loadXMLFile(fName, i, j){
  httpObj = createXMLHttpRequest(displayData);
  httpObj.searchData = {i:i,j:j};
displayData()の先頭でiとjを受け取る
var i = httpObj.searchData.i;
var j = httpObj.searchData.j;

ただ、そもそもhtmlの中に直書きしてある「javascript 2ch.net」とかを
javascriptのコードの中に書いてる時点でどうかと思うので全体的に見直した方が良いかも
497Name_Not_Found:2008/06/23(月) 11:33:11 ID:???
補完やツールチップ表示なら、Komodoでできるだろうな。デフォでは出来ないから、拡張を取ってくるか作るかせにゃならんだろうが、作るのはJavaScriptだから何とかなるだろ。
498Name_Not_Found:2008/06/23(月) 11:56:35 ID:???
emacsやxyzzyなら補完なんて当たり前にできるけどな。
499Name_Not_Found:2008/06/23(月) 14:49:36 ID:???
>>498
emacsって補完できるのかw
Mac OS Xに付いてきてるけど使ったこと無い;;
試してみます
500Name_Not_Found:2008/06/23(月) 14:55:34 ID:???
http://www.webhtm.net/vim/inputsupport.htm
ぐぐったらviにもあった。知らなかった…
viメインにするかな…
501Name_Not_Found:2008/06/23(月) 15:23:14 ID:???
xyzzy の actionscript-mode をjavascript用にデータ変更すれば最強だろ。
502sage:2008/06/23(月) 17:21:03 ID:VigVkU4t
教えて下さい。
フォーム内のチェックボックスをラジオボタンのように常に1つだけ選択出来るようにしたいのですが、全く方法がわかりません。
親切な方お願いします。
503Name_Not_Found:2008/06/23(月) 17:33:37 ID:???
>>502
FF3/Safari3.1で確認。Win起動するの面倒くさいのでIEでは未確認。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta Http-Equiv="Content-Type" Content="text/html;charset=utf-8">
<meta Http-Equiv="Content-Script-Type" content="text/javascript">
<script>
var cblist=['a','b','c'];
function recheck(c){
for(i=0;i<cblist.length;i++){
if(c!=cblist[i]){
document.f[cblist[i]].checked=false;
}
}
}
</script>
</head>
<body>
<form name="f">
<input type="checkbox" name="a" onClick="recheck('a')">
<input type="checkbox" name="b" onClick="recheck('b')">
<input type="checkbox" name="c" onClick="recheck('c')">
</form>
</body>
</html>
504Name_Not_Found:2008/06/23(月) 17:38:16 ID:???
>>503補足
"常に1つだけ"というのが、0個選択も許さないって意味だったら↓
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta Http-Equiv="Content-Type" Content="text/html;charset=utf-8">
<meta Http-Equiv="Content-Script-Type" content="text/javascript">
<script>
var cblist=['a','b','c'];
function recheck(c){
for(i=0;i<cblist.length;i++){
if(!document.f[c].checked){
alert("最低1個選択してください。");
document.f[c].checked=true;
}
if(c!=cblist[i]){
document.f[cblist[i]].checked=false;
}
}
}
</script>
</head>
<body>
<form name="f">
<input type="checkbox" name="a" onClick="recheck('a')" checked>
<input type="checkbox" name="b" onClick="recheck('b')">
<input type="checkbox" name="c" onClick="recheck('c')">
</form>
</body>
</html>
505Name_Not_Found:2008/06/23(月) 17:41:58 ID:???
>>502
チェックボックスのonclickハンドラでチェックボックスがONに
なるのを検出する。で、その時自分以外のを全部OFFに変更する。
この説明で分からないなら勉強してね(ここは全部書いてあげる
スレではないので)。
506Name_Not_Found:2008/06/23(月) 17:42:44 ID:???
げげ…リロードしてなかったorz
507Name_Not_Found:2008/06/23(月) 18:11:12 ID:???
>>502
すなおに radio を使え。

>>503-504
NAME属性値が異なっているが、それは>>502がやりたいことなのか?
508502:2008/06/23(月) 18:20:34 ID:???
ありがとございます。
配列作ってってとこまではわかったんですが、渡した引数との整合(?)で躓いていたので本当に助かりました。
もっと勉強してきます。
509Name_Not_Found:2008/06/23(月) 18:24:58 ID:???
>>507
ググってみたらcheckboxも同じnameで配列でいけるのか;;知らなかった

>>504をする場合は素直にradio使った方が良いと思うが、>>503のように「0個もしくは1個選択」させる場合はcheckboxのほうが良いと思う。

510Name_Not_Found:2008/06/23(月) 18:58:20 ID:5YaKTodd
JSONで定義した無名ハッシュのキーリストを取り出すには
どういうメソッド/方法を使えばいいんでしょうか。
Perlのkeysみたいなのがないかなと・・・
最悪、リストを2つ用意してっていうのも考えてはいます。
511Name_Not_Found:2008/06/23(月) 19:11:40 ID:???
と思ったらまんまkeysでいいのね。ごめん。
512Name_Not_Found:2008/06/23(月) 20:12:23 ID:???
>>511
それはどこかに定義されているのだろうな。
例えば Firebug の console には keys() も values() もあるが、言うまでもなくページからは使えない。
513Name_Not_Found:2008/06/23(月) 20:28:19 ID:???
>>509
> 503のように「0個もしくは1個選択」させる場合はcheckboxのほうが良いと思う。

もし <form> の中に name="XXX" だけしかコントロールが無いのなら、JSは要らない。
デフォで何も選択しない状態にしておいて、reset コントロールを書けば済む。

JSが必要な状況は、
* <form> で囲まれていて、他の name 属性値を持つコントロールがある
* <form>で囲まれていない
の2通りあるが、これも radio コントロールを使って、単純に、...checked=false すれば良い。

結局、radio を使うのが最易。
514467-470:2008/06/23(月) 21:49:02 ID:DzJ84Pjg

httpObj.open("GET", fName, true);
     ↓
httpObj.open("GET", fName, false);

このようにopenメソッドの第三引数をtrueからfalseに変えたらうまくいきました。



true … リクエストを送った時点で次の処理へ進む(非同期通信)
false … リクエストからの応答があるまで待ってから次の処理へ進む(同期通信)

やっぱり、iやjがローカル変数だとかグローバル変数だとかってのは関係なかったみたいです。



っとなると、trueではどう頑張っても無理ですか??

一応、>>496のやり方も試しましたがだめでした。
515Name_Not_Found:2008/06/23(月) 23:52:37 ID:???
このおっさんしつこいなぁ
516Name_Not_Found:2008/06/24(火) 03:58:37 ID:???
>>512
ご名答、Firebugでした。やっぱりブラウザにはないのね・・・
グリモンで使おうと思ったんだけど、とりあえず使わず済ませました。
Firebugを関数リファレンスと考えちゃいけないとわかったのも収穫。
517Name_Not_Found:2008/06/24(火) 07:13:21 ID:???
>>513
>デフォで何も選択しない状態にしておいて、reset コントロールを書けば済む。
resetボタンという手があったか
そうなると、radioで無理なのは選択できるのが0~2個とか0~3個とかのときだけになるか

大した行数じゃないしjavascript+checkboxでも良い気がするが好みかな
518Name_Not_Found:2008/06/24(火) 08:31:55 ID:???
>>517
UIの統一感という意味でも、単一項目しか選択出来ないものにはradioを使った方が良いのでは。
519Name_Not_Found:2008/06/25(水) 06:48:50 ID:???
Class内のattachEventに関して質問です。
<html><head><script>
this.eTest = function(){
    this.prop = 100;
}
this.eTest.prototype.showProp = function(){
    alert(this.prop);
}
this.eTest.prototype.setEvent1 = function(){
    document.body.attachEvent("onclick",function(x){return function(){x.showProp()}}(this));
}
this.eTest.prototype.unsetEvent1 = function(){
    document.body.detachEvent("onclick",function(x){return function(){x.showProp()}}(this));
}
this.eTest.prototype.setEvent2 = function(){
    this.savedFunc = function(x){return function(){x.showProp()}}(this);
    document.body.attachEvent("onclick",this.savedFunc);
}
this.eTest.prototype.unsetEvent2 = function(){
    document.body.detachEvent("onclick",this.savedFunc);
}
var inst = new eTest();
</script></head><body>
<input type="button" value="setEvent1" onclick="inst.setEvent1()">
<input type="button" value="unsetEvent1" onclick="inst.unsetEvent1()">
<input type="button" value="setEvent2" onclick="inst.setEvent2()">
<input type="button" value="unsetEvent2" onclick="inst.unsetEvent2()">
</body></html>
1, unsetEvent1でイベント解除できないのはattachしたときの関数オブジェクトとは 別の関数オブジェクトだからという認識でいいんでしょうか?
2, こういった場合setEvent2のようにattachEventに渡す関数オブジェクトを保持しておき、detachEventに同じものを渡すというやり方で問題ありませんか?
3, メモリリークですが、detachした時点でメモリが解放されるということでいいですか?
4, 同じことを実現するのにベターな書き方はありますか?
520Name_Not_Found:2008/06/25(水) 08:03:54 ID:???
>>519
関数式(関数リテラル)は、そこを実行するごとに新しい関数
オブジェクトを生成することになっている。だから確かに
attachで渡したものをとっておいてdetachにもそれを渡すように
するのが正しそう(試してないけど)。メモリが解放されるのは
あくまでもガベージコレクションのタイミング。リークというのは
ガベージコレクションしても解放されなくなるという意味。
521Name_Not_Found:2008/06/25(水) 10:04:09 ID:???
ガベージコレクションがいつまでたっても呼び出せなくなるのがIEのリークなんじゃ?
522Name_Not_Found:2008/06/25(水) 11:07:30 ID:???
>>521
それは言い方がおかしいと思う。その言い方だとリークが起きたら
以後ガベージコレクションが起こらなくなるという意味になると
思うが、そしたらあっという間にメモリが足りなくなるだろう。
「そのリークしたオブジェクトについてガベージコレクション
されない」という意味なら、>>520 でいう「解放」がそれに
相当すると思う。まあ言葉遣いの問題なんだろうけど。
523Name_Not_Found:2008/06/25(水) 11:20:49 ID:???
デッドロックみたいなもんか
524Name_Not_Found:2008/06/25(水) 12:04:12 ID:???
>>522
横やりだけど何か違和感だったのでレス。
JavaScriptの場合「参照カウントが0になったらGCされる→メモリが解放される」
だから、「参照が循環するとGCされない(サイ本P.147)→メモリが解放されない」
なので、
>>520
> ガベージコレクションしても解放されなくなる

「GCしても」っていうところがちょっとおかしいかな?と。
525Name_Not_Found:2008/06/25(水) 12:14:50 ID:???
>>524
JavaScriptのみのオブジェクトの場合、循環参照があっても
解放される。これはマークスイープとかコピー方式のガベージ
コレクションを行っているわけだよね。一方、DOMツリーを経由
した循環参照はリークする。これはDOMツリーからたどれるオブジェクト
については参照カウントを維持していて、それが0より大きいと
「使用中」とみなされる。循環参照してしまうとどこからも指して
ないオブジェクト群でもカウントが1のまま残ってしまうというのが
このリークの本質。で、JavaScriptオブジェクトのガベージ
コレクションを実行しても、カウントが0より大きいものは回収
しないから「ガベージコレクションを実行しても解放されない」
となる。

単純なリファレンスカウントによるガベージコレクション「だけ」
の場合だと確かに>>524の言う通りだけど、この場合はそうじゃない
と理解しているんだがどうかな。
526Name_Not_Found:2008/06/25(水) 12:43:32 ID:???
俺は使い終わったオブジェクトは極力
delete オブジェクト名;
するようにしてる。
527Name_Not_Found:2008/06/25(水) 12:46:14 ID:???
GCの動作を理解してなかった
528Name_Not_Found:2008/06/25(水) 18:15:09 ID:???
勉強になる。てか、よく理解できてない俺はやっぱ自分で消そうと思った。
529Name_Not_Found:2008/06/25(水) 21:13:05 ID:???
>>526
それって
var obj = newObject;
・・・何か処理・・・
delete obj;
ってしてるってこと?
もしそうならnewObjectへの参照は消えてないよ
530Name_Not_Found:2008/06/25(水) 22:52:29 ID:???
>>529

参照?どういうことだろう…

var hoge=function(){};

req=new hoge;
req.moge="mogera";
alert(req.moge);
delete req;
alert(req.moge); //ここで、「Can't find variable: req」/「エラー: req is not defined」などのエラーが出る。
ってことは、参照が消えてるってことではないのかな…






531Name_Not_Found:2008/06/25(水) 23:06:54 ID:???
アホの会話はかみ合わない
532Name_Not_Found:2008/06/26(木) 00:13:15 ID:???
新規openについて質問します。
IE7+右クリック連携で現在開いているhtmlに対し、「選択範囲にあるURL全てを開く」という内容を考えています。

パラメータが違うURLを「別ウインドウの新しいタブ」にまとめて開きたいのですが、

//処理

for(条件で繰り返し)[
window_handle = window.open(url,target,'');
}

この形式ではIE自体は別プロセスになりますが、1つのタブ内で繰り返し開こうとしてしまいます。
(ポップアップブロックは無効に設定してます)

現在のウインドウ内でも良いので、新しいタブで各URLを開いていくような回避方法がありますでしょうか?
533Name_Not_Found:2008/06/26(木) 00:21:10 ID:???
targetの代わりに「'_blank'」を指定してみたらどうなる?
534Name_Not_Found:2008/06/26(木) 00:25:04 ID:???
>>533
for内の条件発生分だけ、IEが新規にopenしてしまいます。
535Name_Not_Found:2008/06/26(木) 00:34:37 ID:???
>>534
「_blank タブ」でぐぐれ。終了。
536532:2008/06/26(木) 01:05:02 ID:???
>>535
IE7の仕様ということみたいですので把握しましたです。

ありがとうございました。
537Name_Not_Found:2008/06/26(木) 03:25:36 ID:???
>>530
それなら消えるね
var req=new hoge; だと消えないというのを言いたかった
538519:2008/06/26(木) 09:39:26 ID:???
>>520
ありがとうござます。
メモリリークという言葉を使ったのがまずかったですが
クロージャでロックされたローカル変数はdetachしたら
解放されるのかどうかが知りたかっただけです。
プログラマはGCの正確なタイミングは知り得ませんが、
detachすればGCの対象になるのかどうかが知りたいという質問でした。

>>537
DontDelete属性の話でしょうか?
eval評価したスクリプト内のvar付き変数は
現状ではdeleteできるようですが。
ECMAScript 4ではDontDeleteつくらしいですね。



すいません話をattachEventに戻していいですか?
Class内でattachEventを使う場合は>>519よりもベターな書き方はありませんか?
みなさんどうしてるのか教えてください。


あとどの関数がどのイベントにattachされているかを知ることはできますか?
自分で管理するしかない?
539Name_Not_Found:2008/06/26(木) 10:18:57 ID:???
ベターな書き方と言われても、自分のインスタンスへの参照が欲しいなら
方法はそれくらいしか無いと思うけどなぁ
bindすれば少し読みやすくなるかと

イベント発生時の動作をあとから切り替えたいということなら
eTest.prototype.setEvent1 = function() {
  document.body.attachEvent("onclick", (function(x) {
    return function() { return x.currentFunc.apply(x, arguments); }
  })(this));
};
これでcurrentFuncをすりかえるだけでいい
540Name_Not_Found:2008/06/26(木) 14:17:12 ID:???
質問いたします。
下記のように2ページ先のフォームにあらかじめ用意しておいた値を
自動入力するスクリプトを組みたいのですが何か良いアイデアは有りませんでしょうか。


 IDやパスやフォーム入力値を埋め込んだ自PCのhtml "スタートページ"
     ↓
     ↓
 企業のログインページ ← "スタートページ"からonloadでログイン
     ↓
     ↓
 企業のフォームページ ← "スタートページ"のフォーム入力値をセット(この方法が思いつかない)
541Name_Not_Found:2008/06/26(木) 14:42:41 ID:???
>>540
うん、なるほどね。
あんたがやりたがっていることには企業のなんたらIDを取得しようとそ
の攻略法に血道をあげて研究に余念のない悪の諸先輩方がいますよ。
ま、これはその初歩も初歩のかわいい手口ってとこかな。違いは、あん
たのがピンポイントで悪の諸先輩方のがランダムで攻撃して来るってと
こくらいじゃない。ここでは>>1の回答拒否に当たるかも。
542Name_Not_Found:2008/06/26(木) 14:48:19 ID:???
>>541
勝手に悪者扱いされて心外なのですが、どうすればなんたらIDとやらを取得する話になるのでしょうかね。
543Name_Not_Found:2008/06/26(木) 15:28:15 ID:???
>>541
日本語でおk


>>542
エラーくらい読めカス
544Name_Not_Found:2008/06/26(木) 16:07:30 ID:???
>>543
勝手にカス扱いされて心外なのですが、どうすればエラー出るんでしょうかね。
知ってたら教えてもらえませんか。
545Name_Not_Found:2008/06/26(木) 16:41:07 ID:???
>>544
てめーのブラウザ名でも添えてggrks
546Name_Not_Found:2008/06/26(木) 16:48:48 ID:???
547Name_Not_Found:2008/06/26(木) 17:23:24 ID:???
システムテストか運用時の定期的な動作テストの為か何かと思うが、
さすがにこのご時世で特に説明も無く>>540のように書かれたら、
胡散臭く思うのも仕方無い、というか疑って当然。
548Name_Not_Found:2008/06/26(木) 18:27:26 ID:???
>>544
とりあえず何でそういうことをやりたいか書いてみたら?
同じ方法でなくともやりたいことはgreasemonkeyとかでできるかもだし
549Name_Not_Found:2008/06/26(木) 22:14:07 ID:???
>>548
できるかもというか、できるだろというか、やってるよ俺は。
IDマネージャなどを使うより便利。gm_scriptsディレクトリはSVN管理してる。

一般にはそういう拡張(アドオン)を入れるのが手軽なんだろうな。

言うまでもないだろうが、実害が発生し得るカード情報などは、全部手入力だけどな。
550Name_Not_Found:2008/06/26(木) 22:15:35 ID:???
マクロ組めばいいだろっていう
551Name_Not_Found:2008/06/27(金) 09:31:52 ID:???
おしえてくだされ。参考にしているスクリプトに以下のような部分が
あるんですが、if文の中のびっくりマーク二つはどういう意味に
なるんでしょうか?一つだと分かるんですが。ググっても分から
ないのでお願いします。

var title_nodes =  document.getElementById("btAsinTitle");
if(!!title_nodes){

552Name_Not_Found:2008/06/27(金) 09:46:20 ID:???
>>551
単なるtypoだろ
553Name_Not_Found:2008/06/27(金) 09:50:20 ID:???
>>551
真偽値に変換するため
ちなみにifの場合は勝手に判断してくれるから必要ない
554519:2008/06/27(金) 12:14:35 ID:???
>>539
便利な書き方ですね。参考になります。

イベントを中央管理してクロージャなしで書けそうです。
試行錯誤中ですがなんとかなりそうな雰囲気
555Name_Not_Found:2008/06/27(金) 13:07:20 ID:???
>>554
参考にしたいのでできたらサンプル見せてもらえませんか
556Name_Not_Found:2008/06/27(金) 15:52:50 ID:iNHOA/2z
あるボタンのonclickに対してイベントを2つ登録して
最初に登録されたイベントの結果によって
次に登録してあるイベントを実行したりしなかったりという制御をしたいのですが
どの様にすればよいのでしょうか?
557Name_Not_Found:2008/06/27(金) 15:55:04 ID:???
>>556
そのサンプル書いてみて。
558Name_Not_Found:2008/06/27(金) 15:55:53 ID:???
>>556
できたらサンプル見せてもらえませんか
559Name_Not_Found:2008/06/27(金) 15:56:55 ID:???
>>557
書けたら質問しないだろ
560556:2008/06/27(金) 16:00:19 ID:iNHOA/2z
<html>
<head>
<script type="text/javascript">
function method1() {
if (confirm("method2を阻止する?")) {
// ここでmethod2の実行を阻止したい。
} else {
;
}
}
function method2() {
alert("method2.");
}
window.onload = function () {
document.getElementById("buttonId").attachEvent("onclick", method2);
document.getElementById("buttonId").attachEvent("onclick", method1);
}
</script>
</head>
<body>
<form>
<input type="button" value="button" id="buttonId">
</form>
</body>
</html>
561Name_Not_Found:2008/06/27(金) 16:06:03 ID:???
>>557-558
なんなのこいつら
日本語も読めない奴は回線切って首吊れよ
562Name_Not_Found:2008/06/27(金) 16:13:33 ID:???
何故2つ割り当てるのか分からない
563Name_Not_Found:2008/06/27(金) 16:22:11 ID:???
>>561
どこまで書けるかってのを知りたかったんじゃないのか
564Name_Not_Found:2008/06/27(金) 16:30:33 ID:???
>>563
それを知って何になる?
565Name_Not_Found:2008/06/27(金) 17:19:26 ID:???
IE専なんて試す気にもならないけどこんなところか
function Util(id, type) {
  this.obj = typeof id == 'string' ? document.getElementById(id) : id;
  if (this.obj) throw 'ハァ(゚д゚)?';
  if (!type) throw 'ハァ(゚д゚)??';
  this.work = [];
  this.obj.attachEvent(type, (function(x) {
    var a = x.work;
    for (var i = 0, current; current = a[i]; i++) {
      if (a[i].call(x.obj)) return;
    }
  })(this));
}
Util.prototype = {
  attach: function(listener, index) {
    if (isNaN(index = Number(index))) return this.work.splice(index, 0, listener);
    if (typeof listener != 'function') return false;
    return this.work.push(listener);
  },
  detach: function(listener) {
    if (typeof listener != 'function') return false;
    var i = this.work.indexOf(listener);
    if (i < 0) return false;
    this.work.splice(i, 1);
    return true;
  }
};
566Name_Not_Found:2008/06/27(金) 17:19:46 ID:???
var hogeClick = new Util('hoge', 'onclick');
で hoge のクリックを管理するオブジェクトができる

hogeClick.attach(function() {
  return !confirm('バカなの?死ぬの?'); // false を返すとこれより後をキャンセル
})
hogeClick.attach(function() {
  alert('そうかい');
})
567Name_Not_Found:2008/06/27(金) 17:23:45 ID:???
見直してたら間違いがあった
9行目
if (a[i].call(x.obj)) return; → if (!a[i].call(x.obj)) break;
568556:2008/06/27(金) 18:00:25 ID:iNHOA/2z
動かしてみて試させていただきました。

> if (this.obj) throw 'ハァ(゚д゚)?';

if (!this.obj) throw 'ハァ(゚д゚)?';
に直したんですがこれでよいのですか?

> for (var i = 0, current; current = a[i]; i++) {
> if (!a[i].call(x.obj)) break;
> }
この辺りで、「種類が一致しません」とエラーがでました。
どうやったらエラーを取り除けるのかわかりませんでした。
569Name_Not_Found:2008/06/27(金) 18:35:02 ID:???
>>568
あまりにも酷いから書きなおしますごめんなさいごめ(ry
570Name_Not_Found:2008/06/27(金) 18:44:33 ID:???
>>561

|>>557-558
|なんなのこいつら
|日本語も読めない奴は回線切って首吊れよ

ってあんた「なんなの」って部分をちゃんとした日本語で説
明してみなよ。拝見するから。結果によっては、てめえで説
明もできねえようなら、人の批評をするなボケって話だろ。
571Name_Not_Found:2008/06/27(金) 18:47:46 ID:???
>>568
これで動いた。type から on は削っといた
function Util(id, type) {
  this.obj = typeof id == 'string' ? document.getElementById(id) : id;
  if (!this.obj) throw 'ハァ(゚д゚)?';
  if (typeof type != 'string') throw 'ハァ(゚д゚)??';
  this.work = [];
  this.obj.attachEvent('on' + type, (function(x) {
    return function() {
      var a = x.work;
      for (var i = 0, current; current = a[i]; i++) {
        if (!current.call(x.obj)) break;
      }
    };
  })(this));
}
572Name_Not_Found:2008/06/27(金) 18:48:59 ID:???
Util.prototype = {
  attach: function(listener, index) {
    if (typeof listener != 'function') return false;
    if (!isNaN(index = Number(index))) {
      this.work.splice(index, 0, listener);
      return index;
    }
    return this.work.push(listener);
  },
  detach: function(listener) {
    if (typeof listener != 'function') return false;
    var i = this.work.indexOf(listener);
    if (i < 0) return false;
    this.work.splice(i, 1);
    return true;
  }
};
function init() {
  var hogeClick = new Util('hoge', 'click');
  hogeClick.attach(function() {
    return !confirm('バカなの?死ぬの?');
  });
  hogeClick.attach(function() {
    alert('そうかい');
  });
}

>>570
結局お前はなんの役にも立ってないだろ
無駄なレスすんな
573Name_Not_Found:2008/06/27(金) 18:50:09 ID:???
おいおい笑とけ笑とけ
574Name_Not_Found:2008/06/27(金) 20:48:19 ID:???
バブルするイベントタイプは、アホ外人が言うイベントデリゲーションを使え。
575556:2008/06/27(金) 21:16:39 ID:iNHOA/2z
>> 571
動作確認しました
ちゃんとキャンセルできました
まさにこの動きを探してたんです
自分でイベントの管理をするのですね
まだ私にはレベルの高い事だったので、とても勉強になりました
ありがとうございます
576551:2008/06/27(金) 22:29:54 ID:???
>>552 >>553
thanx!
577Name_Not_Found:2008/06/28(土) 04:25:12 ID:???
ある程度時間をおいてもう一度自分のコードを読むと、少し気持ちわるいとこが見つかるよな

if (!current.call(x.obj)) break; → if (current.call(x.obj) === false) break;

attach: function(listener, index) {
  if (typeof listener != 'function') return false;
  if (isNaN(index = Number(index))) return this.work.push(listener);
  this.work.splice(index, 0, listener);
  return index;
},
578Name_Not_Found:2008/06/28(土) 13:13:03 ID:Xx7cgI9V
name="pic[0]"を指定してるアップロードフィールドがあって、そこに入力した中身を
空欄にするスクリプトを書いています(フィールドは"pic[9]"まで10個あります)

function clearUploadField(n){
uploadPic = "pic[" + n + "]";
//alert(n);
document.mujintouForm.elements[uploadPic].value = "";
}
これに対して onClick="javascript:clearUploadField(0)"とすると、
alertで0がただしく表示されるのに、IE6でフィールドがクリアされません
firefoxとsafariではクリアされます
どこに問題があるでしょうか? スクリプトエラーも表示しない状況です。
どなたかご意見よろしくお願いします
579Name_Not_Found:2008/06/28(土) 13:41:18 ID:???
◆◆◆◆◆◆◆◆◆毎日新聞社による日本人への誹謗中傷◆◆◆◆◆◆◆◆◆

・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する

※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです

◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
 http://www9.atwiki.jp/mainichiwaiwai/
◆毎日新聞問題の情報集積wiki
 http://www8.atwiki.jp/mainichi-matome/

つまり日本人なら
http://www.vipper.net/vip552788.jpg
580Name_Not_Found:2008/06/28(土) 15:03:04 ID:ZBMnA16M
リンクをクリックしたとき、そのリンクがサイト上にある全リンクの
何番目かを知るにはどうしたら良いでしょうか?
links[]を使って出来るんでしょうか
581Name_Not_Found:2008/06/28(土) 15:10:43 ID:???
>>580
知らんけどArray.prototypeのindexOfをcallしてみたら?
582Name_Not_Found:2008/06/28(土) 15:40:35 ID:???
>>581
ありがとうございます。それでやってみます。
583Name_Not_Found:2008/06/28(土) 17:13:46 ID:jlACv3h8
サイトがhttp://hoge.jp/、インデックスファイルがindex.phpだった場合、
トップページかを判別する方法として
location.href == "http://hoge.jp/" || location.href == "http://hoge.jp/index.php"
よりもっと短くする方法はありますか
584Name_Not_Found:2008/06/28(土) 17:26:01 ID:???
/^http:\/\/(?:www\.)?hoge.jp\/?(?:$|index\.php$)/.test(location.href)
585Name_Not_Found:2008/06/28(土) 17:27:12 ID:???
>>583
var urip="http://hoge.jp/";
location.href == urip || location.href == urip+"index.php"
586Name_Not_Found:2008/06/28(土) 17:28:00 ID:???
/^http:\/\/(?:www\.)?hoge\.jp\/(?:index\.php)?$/.test(location.href)
587Name_Not_Found:2008/06/28(土) 17:53:38 ID:???
すみません、どなたか>>578についてもご意見ください
勝手言ってすみませんがよろしくお願いします
588Name_Not_Found:2008/06/28(土) 19:04:44 ID:???
>>587
function clearUploadField(n) {
  var target = document.forms['mujintouForm'].elements['pic[' + n + ']'];
  target.parentNode.insertBefore(target, target.nextSibling);
}
589Name_Not_Found:2008/06/28(土) 20:31:09 ID:???
>>587
その提出コードだけどそのままIE6で動いたよ。他に問題あるんじゃ
ないの?name属性が重複しているとか。
590Name_Not_Found:2008/06/28(土) 21:02:01 ID:???
ええと、まさかとは思うが「"hoge.jp"は"www.hoge.jp"の略」とか勘違いしている奴居ないよな?
591Name_Not_Found:2008/06/28(土) 21:08:30 ID:???
>>577
> f (!current.call(x.obj)) break; → if (current.call(x.obj) === false) break;

これってどうして===falseにしたの?
元のままじゃダメなの?
592587:2008/06/28(土) 21:26:47 ID:Xx7cgI9V
>>588-589
どうもです
>>589 動きましたか? 何がおかしいんだろう…と思って試したんですが、
空欄にする対象をアップロードフィールド(type="file")から
テキストエリア(type="text")にしたところIEでも空欄に出来ました。
type="file"じゃダメみたいです。
>>589さんが成功したのって、失礼ですが type="file" だったんでしょうか?

>>588
詳しい回答ありがとうございます
参考にしてDOMの勉強もしてみます ほんとにありがとう
593Name_Not_Found:2008/06/28(土) 21:38:04 ID:???
>>592
>>589です。試したのはtype="file"じゃなかった。ごめん。
昔からtype="file"の問題はいろいろあるんで自分はこれは
使えないシロモノだとずっと思ってる。
594Name_Not_Found:2008/06/28(土) 21:43:57 ID:???
使えないのはtype="file"ではなく、(ry
595587:2008/06/28(土) 21:47:32 ID:???
>>593
そうですか それがわかっただけでも良かったです
考えたら参照ボタン以外でアップロードフィールドに値を入れれたら危険ですね
submitボタンにスクリプトを仕込んだらどうしようもないかも…
ありがとうございました
596Name_Not_Found:2008/06/28(土) 21:57:32 ID:???
何がそうですねだ馬鹿。
597Name_Not_Found:2008/06/28(土) 22:41:29 ID:???
馬鹿って言った人が馬鹿なんだよね
598Name_Not_Found:2008/06/28(土) 23:04:03 ID:gI7skb5Z
>>585
短い変数に入れてしまえばいいのですね、ありがとうございます
599Name_Not_Found:2008/06/29(日) 10:18:54 ID:???
DOMContentLoadedが使えるブラウザならDOMContentLoadedのタイミングで、
使えないブラウザならonload(なり他のタイミングなりで)で
関数を実行させようとしているのですが
DOMContentLoadedが実装されているかどうかを調べるスマートな方法ってないでしょうか?

ブラウザとバージョンを調べれば簡単なんですがちょっとコードが見苦しくなるので…
600Name_Not_Found:2008/06/29(日) 11:54:35 ID:???
domready.js
601Name_Not_Found:2008/06/29(日) 12:05:40 ID:???
>>599
特定のイベントタイプ単体を実装しているか調べる方法が標準に定義されてないから
スマートな方法はないと思う
602Name_Not_Found:2008/06/29(日) 13:33:48 ID:???
parthInt(a - b)とparthInt(a) - parthInt(b)の違いって何でしょうか?

var a = "09"; var b = "01";
としたとき、後者の場合結果が-1になってしまいます。
603Name_Not_Found:2008/06/29(日) 13:53:47 ID:???
基数
604Name_Not_Found:2008/06/29(日) 14:05:59 ID:???
>>599
両方に登録して、DOMContentLoadedが実行されたら
フラグを立ててloadを実行させなくする方法がよく使われてるね。
605Name_Not_Found:2008/06/29(日) 14:20:27 ID:???
>>602
0で始まってるから自動的に8進で解釈されてるんだね。
parseInt('09', 10)

前者はNumber()による型変換と同じだね。
606Name_Not_Found:2008/06/29(日) 16:23:39 ID:???
>>604
目から鱗
存在確かめずに決め打ちでほうり込んでるように見える
プログラムをいくつか見たのですがそういうことだったのですね

ありがとうございました
607Name_Not_Found:2008/06/29(日) 19:23:05 ID:???
質問です。

ある16桁の乱数があって、
(例)qawsedrftgyhujik
その中に"sedr"及び"huji"いう文字が含まれているかどうか調べるには
どうしたらいいでしょうか。
608Name_Not_Found:2008/06/29(日) 19:24:04 ID:???
indexOf
609Name_Not_Found:2008/06/29(日) 20:19:15 ID:???
>>608

ありがとうございました。それでできるんですね
調べてみます。
610Name_Not_Found:2008/06/29(日) 20:47:49 ID:???
ある配列要素からその要素の前にいくつ要素があるか
調べる方法はないでしょうか

例えばa[3]の前にはa[0]、a[1]、a[2]の3つの要素あるのですが
それをa[3]から調べるにはどうしたらいいでしょうか
611Name_Not_Found:2008/06/29(日) 21:06:35 ID:???
疎な配列ということなら
for (var i = 0, res = 0; i < 3; i++) res += i in a;
612Name_Not_Found:2008/06/29(日) 21:57:11 ID:???
js> var a = [];
js> a[0] = 0;
0
js> a[3] = undefined;
js> a[6] = null;
null
js> a[9] = '';

js> Array.prototype['10'] = NaN;
NaN
js> Array.reduce(Array.slice(a, 0, 0), function (r) r + 1, 0);
0
js> Array.reduce(Array.slice(a, 0, 1), function (r) r + 1, 0);
1
js> Array.reduce(Array.slice(a, 0, 2), function (r) r + 1, 0);
1
js> Array.reduce(Array.slice(a, 0, 3), function (r) r + 1, 0);
1
js> Array.reduce(Array.slice(a, 0, 4), function (r) r + 1, 0);
2
js> Array.reduce(Array.slice(a, 0, 10), function (r) r + 1, 0);
4
js> Array.reduce(Array.slice(a, 0, 11), function (r) r + 1, 0);
4
js> a[10] = NaN;
NaN
js> Array.reduce(Array.slice(a, 0, 11), function (r) r + 1, 0);
5
613Name_Not_Found:2008/06/29(日) 22:16:51 ID:???
IEは早く氏ね
614Name_Not_Found:2008/06/29(日) 23:55:43 ID:???
>>613
IE8だけはがんばってほしいと思うよ
615Name_Not_Found:2008/06/30(月) 05:48:35 ID:???
Objectのプロパティを削除するときに

var o = {};
o.property = hoge;
o.property = null;
delete o.property;

とする必要はありますか?
null入れずに
delete o.propertyだけで十分?
616Name_Not_Found:2008/06/30(月) 08:15:54 ID:???
・テキストエディタ
・ドラッグした部分の文字色を青く変える機能付き
・ドラッグした部分の文字色を戻す機能付き
・そして、青く変わった部分の文字を切り出し(抽出して)出力する機能付き
・最後に、その出力した部分を保存もしくは、PHPで飛ばす

こんなテキストエディタを作りたいのですが、JavaScriptで作れますか?
色変える部分で挫折しそうです。文字サイズはとってこれますが、フォントカラーを取ってきて、出力や保存が出来ません
617Name_Not_Found:2008/06/30(月) 09:57:58 ID:???
>>615
Operaはバージョンによってはdeleteでエラー。この糞マイナーな手抜きブラウザを無視するなら、deleteだけでよい。
618Name_Not_Found:2008/06/30(月) 10:54:03 ID:???
>>616
色とかフォントとかいう時点でワープロやがな
619Name_Not_Found:2008/06/30(月) 15:56:56 ID:???
ブログ、掲示板などの編集画面など、ウェブ上のテキストエディタありますよね
あれをJavaScriiptを用いて作ってみたい、改変してみたいと考えています

一番ソースの見やすい、改変しやすいWebテキストエディタありますか?
オススメ等ありましたらお願いします
620Name_Not_Found:2008/06/30(月) 16:09:15 ID:???
>>617
じゃあ念のためnull入れるように習慣付けることにします。
621Name_Not_Found:2008/06/30(月) 16:19:45 ID:???
>>616
やりたいことは分かったけど質問内容から推察するに
挑戦するにはまだちょっと早いような・・・?
622Name_Not_Found:2008/06/30(月) 16:32:16 ID:???
>>621
テキスト解析だから、IQに大きく依存する。昨日今日プログラミングを始めた奴でも、IQが高ければいきなり作れるぞ。
623Name_Not_Found:2008/06/30(月) 17:22:27 ID:???
色分けなら\u02と\u03で囲んでそれぞれをspanの開始タグと終了タグに置換すればいい、ってばっちゃがいってた
624Name_Not_Found:2008/06/30(月) 17:42:41 ID:???
>>621
昨日今日プログラミングを始めたIQが高い奴がどんなものを
書くのか・書けるのかぜひ見たい。絶対に作ってUPしたらURI
教えてくれ。
625Name_Not_Found:2008/06/30(月) 18:39:33 ID:???
IQはどうでも良いが、頭の良い人間なら、
スクラッチから書くのでは無く、ググって似たようなサンプルを見つけ、
そのプログラミング言語に慣れていなくても正常に動作する物を書けそうだけどね。
626Name_Not_Found:2008/06/30(月) 19:10:57 ID:???
WordPress の投稿画面は結構よくできてる
ソースが読みやすいかどうかは知らね
627610:2008/06/30(月) 21:11:38 ID:???
>>611
調べるのを開始する配列要素が何番目か分からないので
その方法では駄目でした
628Name_Not_Found:2008/06/30(月) 21:52:45 ID:???
>>627
これは?
var a=[,'A',,'B','C',,'D','E'];
var res;
for (var i in a) {
 if (a[i] == a[3]) {
  res = i;
  break;
 }
}

alert(res);
629Name_Not_Found:2008/06/30(月) 22:55:31 ID:???
>>628
質問とはズレるが、それは疎な配列にならない。undefinedが割り当てられている。求められて仕方なくundefinedを返すのとは違う。というかそのコードを実行して気付かないのか。

>>627
抜けが無いのなら、Array.indexOf() で一発。無ければモジラのサイトのをコピペして使え。
抜けが在るのなら、Array.reduce() などと組み合わせる。無ければモジラのサイトのをコピペして使え。

もし===な比較が邪魔なら、別のArray.indexOfCastValue() を作れ。これもモジラのサイトのをコピペして微修正すればできる。

js> var v = false;
js> var a = [];
js> a[0] = 0;
0
js> a[3] = null;
null
js> a[6] = undefined;
js> a[9] = '';

js> a[12] = false;
false
js> a[15] = NaN;
NaN
js> Array.reduce(Array.slice(a, 0, Array.indexOf(a, v)), function (r)  r + 1, 0);
4
630Name_Not_Found:2008/07/01(火) 06:23:53 ID:???
>>574
イベントデリゲーション興味があります。

onclickのようにバブルするイベントタイプの場合は、
個別のエレメントにハンドラ付けていくのは無駄が多すぎるので、
例えば各エレメントの上位オブジェクトのdocumentにひとつハンドラつけてれば
ページのどこでclickされようがイベントがバブルしてきて
documentのハンドラでイベントを受け取れると。

で、event.srcElementなりevent.targetなりでイベント発生元エレメントが
取得できるということですよね?

で、そこからどうするのかいまいち分からないんですが、
バブルしたイベントを受け取ったdocument.onclick = function(){ ... } 内で
イベント発生元エレメントの情報をもとに、あらかじめ構築しておいた対応テーブルを検索して
処理先を特定し処理を振り分ける――ということなんでしょうか?

今のところハンドラの数を減らすテクニックという理解でしかないんですが
メリットは他にもあるんですか?
631Name_Not_Found:2008/07/01(火) 11:17:15 ID:???
>>630
他にもあるというか、コードの読みやすさ・スピード面で有利な場面がいくらでもある
obj[event.target.value] とか想像しやすいと思う
まあ>>556のケースではバブリングなんて関係ないけど
632Name_Not_Found:2008/07/01(火) 15:38:39 ID:???
>>630
イベント対象となりえるエレメントを動的に追加/削除する場合にも、
イベントデリゲーションは有効だね。

>>631
<div id="itemRoot"><div id="item1">item1</div><div id="item2">item2</div></div>
のようにevent.target=イベント処理対象エレメントのような単純な構成なら、
スピード面でも有利かもしれないが、
item1に子エレメントが含まれるような場合には、
DOMツリーを遡って対象エレメントを確定する必要がある場合も考えられるので、
一概にスピード面で有利とも言えないのでは。
633Name_Not_Found:2008/07/01(火) 16:53:10 ID:???
>>632
処理先を特定し処理を振り分ける っていうのは前提として既に>>630で出てるからいいとして、
極端な例だけど elm.src = obj[event.target.title]
っていう場合、タイトルでswitchして・・・とかありえないわけで、メリット以前の問題だろ?
「そういう場面がいくらでもある」のは自明だし、子エレメントとかそんなことは言ってないよ
634Name_Not_Found:2008/07/01(火) 16:55:44 ID:???
635Name_Not_Found:2008/07/01(火) 20:43:02 ID:???
テキストボックスをjavascriptで作成しました
そのテキストボックスの性能は、自分としては文句なしの出来でした

問題はそのテキストボックスへ入力した内容をどう他へ渡すかです
PHPのSubmit使おうにも、データの型がわからず、形式もわかりません

また、教本等も持っていなく、Web頼りだったのですが、サイトやお薦め教本ありませんか?
PHPスレで聞くべきか悩みましたけど、JavaScriptを用いたテキストボックスを使っているのでこちらで聞くことにしました
636Name_Not_Found:2008/07/01(火) 21:06:34 ID:???
その「文句なしの出来」の性能をもつテキストボックスを作成する
JavaScriptを是非ここに載せてもらいたい。
637Name_Not_Found:2008/07/01(火) 21:17:36 ID:???
いや、自分の想定通りに出来たという意味です
人様に見せれるようなモンじゃありません
638Name_Not_Found:2008/07/01(火) 21:25:46 ID:???
見せられる、だろ。すんごくバカに見えるよね。
639Name_Not_Found:2008/07/01(火) 21:58:53 ID:???
>>638
何だコイツ
640Name_Not_Found:2008/07/01(火) 22:25:59 ID:???
>>638
なんだこいつ
641Name_Not_Found:2008/07/01(火) 22:33:12 ID:???
>>638
何だコイツ
642Name_Not_Found:2008/07/01(火) 23:14:16 ID:???
>>638
どうしたんだオマエ
643Name_Not_Found:2008/07/01(火) 23:25:09 ID:???
>>639-642
寝ろ
644Name_Not_Found:2008/07/02(水) 00:30:20 ID:???
>>632
>イベント対象となりえるエレメントを動的に追加/削除する場合
なるほど。書き換える範囲が特定されている場合はその親エレメントに
ハンドラをつけていれば中身がどう変化しようと問題がないわけですね。
645Name_Not_Found:2008/07/02(水) 01:02:54 ID:???
グッナイ! < 欧米か!?
646Name_Not_Found:2008/07/02(水) 01:40:11 ID:???
>>639-642==637==635か
つ黄色い救急車
647Name_Not_Found:2008/07/02(水) 02:15:07 ID:???
>>633
正直日本語でおk過ぎて何を言いたいのか不明。

実際にイベントデリゲーションを利用した実装を行った事があるのなら、
event.targetのエレメントをそのまま使うようなケースの方が少ない、
あるいは対象となるエレメント全てに属性値などを設定するのも非現実的というのは判るだろうけど。
648Name_Not_Found:2008/07/02(水) 03:33:13 ID:???
横からすまんが
”日本語でおk過ぎて”とか、日本語としてどうなのよw
軽く解釈悩んだぜ

アホな文章を突っつく際でも、2ch独特な慣用句を捏ね回しちゃ反論の連鎖に繋がるよ。
649Name_Not_Found:2008/07/02(水) 04:01:57 ID:yG7Xr5yG
マルチになってしまいすみません。初心者スレから誘導されました。
この板も初心者なのでお許し下さい。
IDが違うのはアクセス規制かかってて、ダイヤルアップのためです。

本題ですが、ページ内リンクをアイフレーム内でやりたいのですが、
<a name>でやってみたところ、アイフレームはずれるわスムーズにリンク先に
飛ばないわと、とても使い物になりません。
これはどうやら仕様で、どうしようもない現象のようです。
そこで同じようなことをジャバスクリプトでやりたいのですが、
良いサンプルがあれば教えてください。
同一ページ内だけではなく、他ページからのリンクで記事までスクロール
してくれるものが良いのですが。

650Name_Not_Found:2008/07/02(水) 09:45:09 ID:???
言語をやってる以上なんであれ文法に拘束される言語の正規使用にはセ
ンシティブでありたいものだね。よくさ、日本語もロクにできないのが
英語でペラペラになりたいとか言ってるじゃん。母国語も満足に組み立
てられない奴がプロブラミングのシンタックスに厳しいというのはあり
得んと思う。
651Name_Not_Found:2008/07/02(水) 10:23:32 ID:???
板違い
652519:2008/07/02(水) 15:15:28 ID:???
>>555
できました。

それなりにしっかりしたものになったので「evtmgr.js」として公開することにしました。
URLさらします。

本体
http://itmst71.googlepages.com/evtmgr.js

デモページ
http://itmst71.googlepages.com/evtmgrjs_demo.html

ドキュメント
http://itmst71.googlepages.com/evtmgrjs_document.html



バグとかとんでもない勘違いとかあるかもしれませんが
653Name_Not_Found:2008/07/02(水) 15:34:20 ID:???
質問です。
document.write("<input>");
で作ったインプットボックスに何か入力を行うと、その後F5ボタンでページ更新をかけてもさっきの入力が残ってしまうのは避けられないのでしょうか?
最小再現コードは
<html>
<head>
</head>
<body>
<script type="text/javascript">document.write("<input value=\"\">");</script>
</body>
</html>

です。
<body onload="clear();">
とし、clear()内でinput.valueを消すようにしたら消えたのですが、なんとも納得のいかないところです。
654Name_Not_Found:2008/07/02(水) 15:35:12 ID:???
>>653
Firefox?
655Name_Not_Found:2008/07/02(水) 15:37:11 ID:???
あ、すいませんIEです。
どうもHTMLが更新されないと、キャッシュされるっぽい?です。
656519:2008/07/02(水) 16:50:50 ID:???
>>652
これじゃなんのことか分からないことに気づいたのでもう少し説明書いときます。

evtmgr.jsの特徴
 ・中央管理型イベントマネージャモジュール。
 ・登録イベントをイベントタイプや呼び出し関数などで検索可能。
 ・クラス定義コード内でクロージャを使用することなく
  thisキーワードをそのままインスタンスへの参照としてイベント登録に使える。
 ・登録イベントを条件を指定して一括削除可能。
 ・ページアンロード時に全てのイベントを削除できるのでメモリリークしない。
 ・自動ガーベッジコレクション機能搭載。
 ・大体のブラウザで動く。

なんかおかしいところあったら指摘してくれると助かります。
よろしくお願いします。
657Name_Not_Found:2008/07/02(水) 16:55:44 ID:???
>>656
うん、なかなか便利だね。
658Name_Not_Found:2008/07/02(水) 17:09:06 ID:CkkLjqVE
FireFoxのマウスジェスチャアドオン用のスクリプトを書こうとしています

ジェスチャ実行時に(選択された)テキストなのかそれともリンクなのか判断するif文を作りたいのですが、
どうすればいいでしょうか?
659Name_Not_Found:2008/07/02(水) 17:54:25 ID:???
var o = new Hoge();
o.onKeyDown = function(c){省略};

クラスを生成後、一部のクラス関数をオーバーライドした上で

省略〜 onkeydown="o.onKeyDown(this);" 〜省略

のように使いたいのですが、可能でしょうか?
少なくとも上の書き方ではうまく動作しませんでしたが・・・
660Name_Not_Found:2008/07/02(水) 21:31:16 ID:???
省略部分を超能力で解析した限りは動くみたいだけど

<script>
var Hoge = function(){};
var o = new Hoge();
o.onKeyDown = function(c){ alert(c.value) };
</script>
<input type="text" value="test" onkeydown="o.onKeyDown(this);">
661Name_Not_Found:2008/07/03(木) 13:03:45 ID:Bn8vIwhr
window.location.reload(); で自動更新させてます。
これだとサイト全部がリロードされるのですが
インラインフレームの中だけ動かないようにするのは
どうしたらいいでしょうか?
662Name_Not_Found:2008/07/03(木) 14:35:43 ID:???
インラインフレームの中の呼び出しも添えてリロードすればよいのでは?
663Name_Not_Found:2008/07/04(金) 00:11:14 ID:BOkDcOnP
質問です。
ttp://www.hotajax.org/content/view/515/248/
この「ShowCase menu」を応用して画像のギャラリーページを作りたいのですが、
</div></div>で区切って2段に分けても、上下のメニューが連動してしまいます。
1ページ内で完全に切り離して動作させたいのですがどのようにしたら良いでしょうか?
よろしくお願いします。
664Name_Not_Found:2008/07/04(金) 01:39:18 ID:???
どうやってヒモ付けられているか考えながら読めドアホ。質問するようなことじゃねえだろ。ほんと、JS終わってんな。
665Name_Not_Found:2008/07/04(金) 06:47:43 ID:???
そうそう。そもそもWeb製作板にあることが間違ってる。
666Name_Not_Found:2008/07/04(金) 10:16:25 ID:???
if(664==DQN)alert('BINGO!!');
667Name_Not_Found:2008/07/04(金) 11:11:02 ID:???
>>665
JavaScript @ム板
http://pc11.2ch.net/test/read.cgi/tech/1192182741/
JavaScriptを教えてもらう @WebProg
http://pc11.2ch.net/test/read.cgi/php/1147856117/
668Name_Not_Found:2008/07/04(金) 11:56:13 ID:???
ム板ならこっちだろ

ECMAScript デス 3
http://pc11.2ch.net/test/read.cgi/tech/1190160481/
669Name_Not_Found:2008/07/04(金) 12:01:53 ID:???
BINGO!!
670Name_Not_Found:2008/07/04(金) 13:49:53 ID:???
>>667ー668
どっちのスレでも板違いって話しが出てるんだが…

とりあえず663をどうにかしてやれ
671Name_Not_Found:2008/07/04(金) 14:46:19 ID:qrZFyUzj
prototype.js使わないで、文字化けさせずにXMLHttpRequestでテキスト取得する方法ってありますか?
672Name_Not_Found:2008/07/04(金) 15:08:02 ID:y0weF7PE
曜日ごとに違うJSファイルを呼び出そうとしているのですが
document.writeの書き方が悪いらしく
"); // -->みたいな文字化け表示がおこってしまいます。
どうかお助けください。

<SCRIPT LANGUAGE="JavaScript">
<!--
dt = new Date( );
d=dt.getDay( );
if (d==0){ JSDoc="http://xxx.com/xxx.js"}
if (d==1){ JSDoc="http://xxx.com/xxx.js"}
if (d==2){ JSDoc="http://xxx.com/xxx.js"}
if (d==3){ JSDoc="http://xxx.com/xxx.js"}
if (d==4){ JSDoc="http://xxx.com/xxx.js"}
if (d==5){ JSDoc="http://xxx.com/xxx.js"}
if (d==6){ JSDoc="http://xxx.com/xxx.js"}
document.write("<script src='+ JSDoc +'></script>");
// -->
</SCRIPT>
673Name_Not_Found:2008/07/04(金) 15:09:08 ID:???
誰かTinyMCEというJavascriptを使ったWYSIWYGエディタを使ってシステムを構築している人いませんか?

IE+IMEで最初に確定した全角文字列が、2番目の文字列を入力しようとすると消えるという事が多発しています。
これってどうにかならないのかな・・・ググってみると結構この症状が出てる人いるみたいだけど、解決策はなしorz
また、たまーにTinyMCEを適用したテキストエリアに文章を入れた後、登録(Submit)すると文章が全て消える、という事も起きます。

かなりBuggyなので使わないほうがいいのかな・・・。
674Name_Not_Found:2008/07/04(金) 15:13:14 ID:???
>>672
document.write('<script src="' + JSDoc + '"></script>');
675Name_Not_Found:2008/07/04(金) 15:17:11 ID:???
>>672
配列用いた方が楽。
dt = new Date();
d  = dt.getDay();
js = ["日.js","月.js","火.js","水.js","木.js","金.js","土.js"];
JSDoc = js[d];
676Name_Not_Found:2008/07/04(金) 15:22:31 ID:???
>>675
こうすればもっと楽。ファイル名+=曜日にする
document.write('<script src="' + JSDoc + (new Date().getDay())'"></script>');
677Name_Not_Found:2008/07/04(金) 15:25:54 ID:???
>>676
意味わからん。
document.write('<script src="' + JSDoc + (new Date().getDay()) + '"></script>');
とりあえずこうだし、もしこれでやるなら月曜日.js1とかになると思うが。
678Name_Not_Found:2008/07/04(金) 15:26:44 ID:y0weF7PE
どうもありがとうございます。
早速試してみます。
679Name_Not_Found:2008/07/04(金) 15:26:51 ID:???
'<' + '/script>'
680Name_Not_Found:2008/07/04(金) 16:03:43 ID:???
>>672
ちゃんとelseを使えボンクラ。
681Name_Not_Found:2008/07/04(金) 16:20:34 ID:???
簡単なコードの問題だと人が群がる群がるw
いままでどこにいたの君たち
682Name_Not_Found:2008/07/04(金) 16:52:51 ID:???
>>671もお願いします
683Name_Not_Found:2008/07/04(金) 16:56:11 ID:???
>>682
ログ嫁
684Name_Not_Found:2008/07/04(金) 17:34:05 ID:???
>>670もお願いします
685Name_Not_Found:2008/07/04(金) 17:46:02 ID:sMXmNVPt
背景を操作するってどうしたらいいんでしょう?
既存の背景の画像のポジションを動かしたいんですが、以下だとダメみたいです

document.getElementById("tab").style.background-position = 0 -31;

cssのスレで聞いたほうが良いのかな? よろしくお願いします
686Name_Not_Found:2008/07/04(金) 17:48:45 ID:???
>>685
JavaScriptだとCSSの-が使えないので大文字になる
backgroundPosition
で検索すると結構サンプル出るよ。
687Name_Not_Found:2008/07/04(金) 18:04:05 ID:???
>>684
上段も下段もshowCaseってclassにしちゃってるんじゃないの?
どういう状況かわからないけど、上段と下段でclass名変えてあげれば上手くいかない?
688Name_Not_Found:2008/07/04(金) 20:46:19 ID:???
>>687
cssのコードをコピーしてclass名を「#showCaseContainer2」のように全てに2を付加して変えてみたところ
下段だけ動かなくなったのですが、Javascriptの方もコピーするんですか?
689Name_Not_Found:2008/07/04(金) 21:22:45 ID:???
>>688
あのさあ、何十時間あった?
そんだけありゃあ、意味が分からなくとも、全文字を読めただろ。
どことどこに関連性がありそうか、それでも気付かなかったのなら、質問しろ。
690Name_Not_Found:2008/07/04(金) 21:50:13 ID:???
>>689
スイマセン。
showCases = document.getElementsByClassName('showCase'); // fetch showcase objects
が関係あるところまでは分ったのですが、ClassName('showCase');のところを
ClassName('showCase1');
ClassName('showCase2');
ClassName('showCase3');
のように複数個指定したいのですがどうしたらよいでしょうか?
1ページに3段表示したいのですが、それぞれを分けてjsファイルを3つ作るしかないのでしょうか?
691Name_Not_Found:2008/07/04(金) 22:18:02 ID:nd85SJMq
document.clearで自分自身をクリアし、スクリプトでHTMLを書き出したいのですが
フォント化けたり、ボタンの幅が変化したりしてしまいます。
どこを直せばいいんでしょうか?

<HTML>
 <HEAD>
  <SCRIPT type="text/javascript" charset="Shift_JIS">
   function g_execute(){
    document.open();
    document.clear();
    document.write('<HTML>\n');
    document.write(' <BODY>\n');
    document.write('  <A href="dummy.html">てすと<\/A>\n');
    document.write('   <HR>\n');
    document.write('   <INPUT type="button" value="動的ページ" onClick="g_execute();"><BR>\n');
    document.write(' <\/BODY>\n');
    document.write('<\/HTML>\n');
    document.close();
   }
  </SCRIPT>
 </HEAD>
<BODY>
 <A href="dummy.html">てすと</A>
 <HR>
 <INPUT type="button" value="動的ページ" onClick="g_execute();"><BR>
</BODY>
</HTML>
692Name_Not_Found:2008/07/05(土) 01:08:49 ID:???
>>691
環境を書いてもらわないと何とも言えないな
Fx+Linuxだがこっちは全然>691の言う問題は発生してない

>691の環境に合わせてcontent-typeの文字コードを変えてみてくれ

<HTML>
<HEAD>
<SCRIPT type="text/javascript" charset="Shift_JIS">
function g_execute(){
document.open();
document.clear();
document.write('<HTML>\n');
document.write('<HEAD>\n');
document.write('<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n');
document.write('</HEAD>\n');
document.write('<BODY>\n');
document.write('<A href="dummy.html">てすと<\/A>\n');
document.write('<HR>\n');
document.write('<INPUT type="button" value="動的ページ" onClick="g_execute();"><BR>\n');
document.write('</BODY>\n');
document.write('</HTML>\n');
document.close();
}
</SCRIPT>
</HEAD>
<BODY>
<A href="dummy.html">てすと</A>
<HR>
<INPUT type="button" value="動的ページ" onClick="g_execute();"><BR>
</BODY>
</HTML>
693Name_Not_Found:2008/07/05(土) 03:15:49 ID:KHN7dJbI
>>692
環境はWindowsXP+IE6
694Name_Not_Found:2008/07/05(土) 03:15:57 ID:KHN7dJbI
です。
695Name_Not_Found:2008/07/05(土) 10:38:39 ID:vP1fWKeU
XHTMLRequest には same-origin ポリシーがあるけど,
JSONP にはそういうのないよね?
DOM 操作で <script> タグ生成して
src で動的に読みたい放題になりそうな気がするんだけど,
それは「穴」として認識されいるの?
それともそれは仕様で今後制限されることはないの?
696Name_Not_Found:2008/07/05(土) 10:46:49 ID:???
>>695
それがJSONPの特徴だから。
697Name_Not_Found:2008/07/05(土) 11:11:41 ID:vP1fWKeU
>>696
まぁFlashでもクロスサイトできたりするし,
それでいいのかもしれないけど,だったらなんで
XHTTPRequest (さっき書き間違えた)では
あんなに厳しく same-origin ポリシーがかかってるんだと・・
正直抜け穴放題なら全然意味ないじゃん,っておもた
698Name_Not_Found:2008/07/05(土) 11:15:55 ID:vP1fWKeU
XHTTPRequest ではリクエストヘッダを設定できたり
認証情報を自由に設定できたりするからってこと?
JSONPではそこまでの自由度がない,と.
699Name_Not_Found:2008/07/05(土) 13:45:44 ID:???
他ドメインのスクリプトだって他ドメインのリソースを読めるわけじゃないだろ
700663:2008/07/05(土) 14:02:04 ID:???
スイマセン。
cssのshowCaseContainer関連項目をコピーしてshowCaseContainer1〜3を作成。
showcase.jsも同様にコピーして、showcase1〜3.jsを作成。
showcase.js内の11行目showCases = document.getElementsByClassName('showCase');もそれぞれ1〜3に変更。
「showcase1.js」 「showcase2.js」 「showcase3.js」をhtmlで読み込んでみたのですが、
(上から)3段目しか動作いたしません。

いろいろ試してはいるのですが、どうしても上手く動作しません。
どなかた解決策を教えてくださいm(_ _)m
701Name_Not_Found:2008/07/05(土) 15:06:50 ID:???
質問させてください。
下記のようなリンクがが複数(可変)あります。

−−−−−−−−−−−−−−−
|画像1A|画像1B|テキスト1|←この行で一つのリンクとなります。
−−−−−−−−−−−−−−−
|画像2A|画像2B|テキスト2|←この行で一つのリンクとなります。
−−−−−−−−−−−−−−−
|画像3A|画像3B|テキスト3|←この行で一つのリンクとなります。
−−−−−−−−−−−−−−−

画像1A、画像1B、テキスト1のどれかにマウスオーバー時、画像1Bの画像とテキスト1の文字色を変更したいと思います。
単純にテキスト1をマウスオーバー時にテキスト1の文字色を変えるならcssのa:hover、画像1Bをマウスオーバー時、画像1Bの画像を差し替えるならJavaScriptで出来たのですが、
例えば、画像1Aをマウスオーバー時、画像1Bの画像を差し替えつつ、テキスト1の文字色を変える方法が分かりませんでした。

その為、何かアドバイスいただける方はご指導いただければと思います。

なお上記の画像などの中身には下記が入ります。
画像1A・・・花の写真
画像1B・・・矢印画像
テキスト1・・・花の名前

そして、画像1Aの花の写真のサイズは不定となっております。

よろしくお願いします。
702Name_Not_Found:2008/07/05(土) 15:21:22 ID:???
a.foo:hover { color: red; }
a.foo:hover > img.bar { display: none; }
a.foo:hover > img.baz { display: inline; }
a.foo > img.baz { display: none; }
703Name_Not_Found:2008/07/05(土) 18:30:01 ID:???
>>702
レスありがとうございます。
>>702を参考に書いてみたのですが、マウスオーバーしても画像に変化はありませんでした(テキストは変化しました)。
下記がそのソースですが、どのあたりに問題があるかご指導いただければと助かります。

<html>
<head>
<title>title</title>
<style type="text/css">
<!--
a.foo:hover { color: yellow; }
a.foo:hover > img.bar { display: none; }
a.foo:hover > img.baz { display: inline; }
a.foo > img.baz { display: none; }
-->
</style>
</head>
<body>
<a href="index.html" class="foo"><img src="img/kiku.jpg" alt="キク" width="200" height="100">
<img src="img/arrow.gif" alt="" width="13" height="13" class="bar baz">キク</a>
</body>
</html>

それと本件はCSSのみで対応可能ですか?
それならスレ違いになるので、どうしようかとおもったので。
704Name_Not_Found:2008/07/05(土) 18:36:39 ID:???
JavaScriptとは何の関係もない.
705Name_Not_Found:2008/07/05(土) 18:38:46 ID:???
>>704
了解です。
CSSのみで実現可能みたいなので、CSS系のスレに移行することにします。
どうもありがとうございました。
706Name_Not_Found:2008/07/05(土) 18:54:13 ID:H/bbPOMN
Javascriptでタイマー機能を作成しています。
チャットのように30秒ごとに画面が切り替わるという仕組みなのですが、
サイトやサーバが重い時、30秒以上時間がかかります。
(カウントのスタートがされない)

Javascriptはクライアントサイドの技術なので、
自分のパソコンや回線の問題でしょうか?
707Name_Not_Found:2008/07/05(土) 20:37:31 ID:???
>>706
エスパーはいません
ソース貼れ
708Name_Not_Found:2008/07/05(土) 21:23:03 ID:???
【外部リンクさせたjavascriptが上手く作動しない?】

最初、HTML内に記述されたjavascriptを、外部ファイルとしてリンクさせたんだが、
どういう訳か文字化けをおこしてしまう。原因がわからないので是非ご教示いただきたい。


実際のページを用意している。

<javascriptを外部リンクさせて、文字化けしてしまうページ>
http://xrea151.s151.xrea.com/index.html

<javascriptをhtml内に記述して、うまく動いているページ>
http://xrea151.s151.xrea.com/index2.html


もちろん、javascriptの内容は全く同じ。
外部リンクさせた時のjavascriptのファイル名はmenu.js。
709708:2008/07/05(土) 21:28:32 ID:???
補足
IE6では文字化けはしないが、javascriptがうまく動かない。
IE7だと文字化け+javascriptがうまく動かない。

なぜだ・・・。
710Name_Not_Found:2008/07/05(土) 21:39:34 ID:???
menu.jsがシフトJISみたいだけど?
711706:2008/07/05(土) 21:43:49 ID:???
>>707
すみません。以下のソースです。

<script type="text/javascript">
timerID = "";
function jump() {
window.self.location.href= "timer.html";
}
function init() {
timerID = setTimeout("jump()", 30000);
document.getElementById('mess').innerHTML = "30秒後に移動";
}
</script>

<body onLoad="init()">
<div id="mess"></div>
712706:2008/07/05(土) 21:49:39 ID:???
何度も済みません。古い方のソースを貼ってしまいました・・。
以下が問題のタイマーです。

timerID = "";
count = 30;
function jump() {
window.self.location.href= "timer.html";
}
function init() {
if(count>=0){
count--;
document.getElementById('mess').innerHTML = count+"遘貞セ後↓遘サ蜍?";
}
timerID = setTimeout("init()", 1000);
}
713708:2008/07/05(土) 22:12:59 ID:???
>>710
Unicodeで作り直したら直った・・・。
ありがとう、、これで家に帰れるよ・・・。

本当にありがとうございました。
714Name_Not_Found:2008/07/05(土) 22:34:20 ID:???
>>695, >>697, >>698
どうすればそれだけ間違え続けられるんだ?痴呆老人の会話じゃねえか。
715Name_Not_Found:2008/07/05(土) 22:43:06 ID:???
>>706
コード的には問題ない
カウンタがスタートするのはonLoadのタイミング、文書構造を読み込んでからなので
遅いサーバからだとカウンタがスタートしてないように見えるんじゃないだろか

あとTimerIDとかいらないので書き直した

<script type="text/javascript">
function init() {
document.getElementById('mess').innerHTML = "30秒後に移動します";
setTimeout(function() {
window.self.location.href = "timer.html";
}, 30000);
}
</script>
<body onLoad="init();">
716Name_Not_Found:2008/07/05(土) 22:47:15 ID:???
ttp://orera.g.hatena.ne.jp/miya2000/20080211/p0
にあるuser.jsのようなことをやりたいと考えています。
例えばhoge.com内のhogeディレクトリ以下、つまりhttp://hoge.com/hoge/以下にあるファイルを別のブラウザで開きたいのです
そこで当初は変数TARGET_URL内に「http://hoge.com/hoge/」を記述していたのですが、hoge.com内にあるファイルにはリンクが相対パスで張られているものも多く、
これではそのリンクに対して期待した動作をしてくれません。
何か良い解決策はあるでしょうか。

具体的にはニコニコ動画の再生ページだけFirefoxで開こうと考えています。現在は一つのjavascriptで書く方法が思い浮かばなかったので、以下のような2つのjavascriptで使っていますが、
スマートじゃなくて気持ち悪い。。。

よろしくお願い致します。
717716:2008/07/05(土) 22:48:04 ID:???
一つ目のjavascript。
http://*に対して有効とするjavascriptです

(function() {
var MIME_TYPE = 'application/x-open-firefox-html';
var TARGET_URL = [
'http://www.nicovideo.jp/watch/',
];
for (var i = 0; i < TARGET_URL.length; i++) {
TARGET_URL[i] = 'starts-with(@href,"' + TARGET_URL[i] + '")';
}
var target_xpath = '//a[' + TARGET_URL.join(' or ') + ']';
function main() {
var targetLinks = document.evaluate(target_xpath, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < targetLinks.snapshotLength; i++) {
var link = targetLinks.snapshotItem(i);
link.addEventListener('click', function(e) {
e.currentTarget.href = 'data:' + MIME_TYPE + ';charset=utf-8,' + encodeURIComponent('\n<meta http-equiv="refresh" content="0; url=' + e.currentTarget.href + '">');
e.currentTarget.removeEventListener('click', arguments.callee, false);
}, false);
}
}
document.addEventListener('DOMContentLoaded', main, false);
})()
718716:2008/07/05(土) 22:49:14 ID:???
二つ目のjavascript。
http://nicovideo.jp/*に対して有効とすjavascriptです。(つまり相対リンク対策)

(function() {
var MIME_TYPE = 'application/x-open-firefox-html';
var TARGET_URL = [
'\/sm',
'\/nm',
];
for (var i = 0; i < TARGET_URL.length; i++) {
TARGET_URL[i] = 'contains(@href,"' + TARGET_URL[i] + '")';
}
var target_xpath = '//a[(' + TARGET_URL.join(' or ') + ') and not(starts-with(@href,"http://www.nicovideo.jp/"))]';
function main() {
var targetLinks = document.evaluate(target_xpath, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < targetLinks.snapshotLength; i++) {
var link = targetLinks.snapshotItem(i);
link.addEventListener('click', function(e) {
e.currentTarget.href = 'data:' + MIME_TYPE + ';charset=utf-8,' + encodeURIComponent('\n<meta http-equiv="refresh" content="0; url=' + e.currentTarget.href + '">');
e.currentTarget.removeEventListener('click', arguments.callee, false);
}, false);
}
}
document.addEventListener('DOMContentLoaded', main, false);
})()
719Name_Not_Found:2008/07/05(土) 23:39:56 ID:???
getAttribute
720Name_Not_Found:2008/07/06(日) 00:32:01 ID:bq72WUba
すいません、質問です。

求人サイトを制作しています。

「コンビニのレジ」
「プールの監視員」
「チラシのポスティング」

・・・といった求人情報がずらずら並んだページがあります。

各求人情報のブロックにはそれぞれ「この仕事に応募する」ボタンが配置されています。

ここで、

「コンビニのレジ」という求人情報のブロックに設置されたボタンをクリックすると

(1)応募フォームが開き、
(2)開かれた応募フォームの「応募する仕事」のセルには「コンビニのレジ」が表記されている

以上が実現できるjavascriptの書き方を教えてください。

求人情報のページ→応募フォームというように、二つのページにまたがる場合の表記方法が
よく分かりません。

同一ページ内のHTML書き換えであれば、

document.getElementById('jobtype').innerHTML = hogehoge

で実現できるのですが・・・。
721Name_Not_Found:2008/07/06(日) 00:32:07 ID:???
>>716-718
アホ外人が俗に言うイベントデリゲーションを使うべき典型例だろ。リンク全舐めとか、ええ加減にせえよボケ。全舐めしても、使うのは、ふつう、たった一つだ。気付けアホンダラ。
722Name_Not_Found:2008/07/06(日) 00:37:08 ID:???
>>716
Firefoxに移行して URL Relay
723716:2008/07/06(日) 00:55:17 ID:???
みなさんレスありがとうございます。

>>719
なるほど、getAttributeを使うと絶対パスが返ってくるんですね〜
てことは、XPathを使わずにgetAttributeでhrefを抽出し、それにイベントを付けるんでしょうか?
なにぶんjavascriptを初めていじるもので、全然違うことを言っていたら申し訳ありません。

>>721
リンク全舐めというのはXPathでの抽出という意味でしょうか?
イベントデリゲーション。。。上の方にも出てきてるみたいですね。
しかし、なんかよく理解できません。出来れば例を示して頂けると幸いなのですが…

>>722
なんと。Firefoxにはそんな便利なアドオンがあったのですね。
けど、どうしてもOperaでの結果をFirefoxに渡したいのです。
引き続きよろしくお願い致します。
724Name_Not_Found:2008/07/06(日) 01:16:38 ID:???
あれ?むしろgetAttributeが属性値をそのまま返すんじゃなかったっけ

>>723
documentのclickでtargetがaならhrefをごにょごにょする

http://d.hatena.ne.jp/brazil/20070103/1167788352
725Name_Not_Found:2008/07/06(日) 02:57:36 ID:???
>>720
引数付きでURL渡す。 form.html?コンビニのレジ みたいな感じ
726716:2008/07/06(日) 03:56:41 ID:???
>>724
レスありがとうございます。
流れとしては、クリックイベントが起きたときにgetAttribute("href")でリンク先の絶対URIを取得し、それがhttp://www.nicovideo.jp/watch/から始まるかどうか判定、真ならMIME_TYPEの変更を
行うといった感じでしょうか?
う〜ん。。。流れは合ってたとしても実装方法が全然わからんすorz
もうちょっとだけヒントくださいTT
727Name_Not_Found:2008/07/06(日) 04:16:59 ID:???
addEvantListener
event.target
tagName.toLowerCase

つかOperaのhrefはちゃんと絶対パスを返すはずだが。知らんけど
728Name_Not_Found:2008/07/06(日) 05:05:49 ID:???
>>726
a.hrefなら相対リンクとか関係なく絶対URI(絶対パスじゃなく)が返るから
こんな感じでいけると思う

(function() {
var MIME_TYPE = 'application/x-open-firefox-html';
var TARGET_URL = [
'http://www.nicovideo.jp/watch/',
];

// メタ文字のエスケープしてない
var rTARGET_URL = new RegExp("^"+TARGET_URL.join("|^"));
// ページ内のクリックを拾う(OperaはEnterキーもクリック相当)
document.addEventListener('click', function(e){
// a > imgのときはimgがtargetになってしまったりするのでターゲットフェーズから上方向にアンカーを探す
// (selectSingleNodeはOperaが対応しているMSXML由来の非標準メソッド)
var t = e.target.selectSingleNode('ancestor-or-self::a[1]');
if (t && rTARGET_URL.test(t.href)) {
e.preventDefault();
location.href = 'data:' + MIME_TYPE + ';charset=utf-8,' + encodeURIComponent('\n<meta http-equiv="refresh" content="0; url=' + t.href + '">');
}
}, true);
})()
729Name_Not_Found:2008/07/06(日) 05:09:16 ID:???
ターゲットフェーズじゃねーや
ターゲットノードだ
730716:2008/07/06(日) 05:10:53 ID:???
>>727
すいません、正直javascript全然わかんないです。
一応↓のように書いてみたんですが、期待した動作をするわけありませんよね^^;
個人的にはe.target.hrefにデータを代入しようとしている当たりが相当無理な気がするのですが。。。他にもイベント関係が全くわかりませんでした。
やりたかったことは、クリックイベントが発生したらmain()にイベントが渡って、そのイベントが持っているtarget(ここではドキュメント?)内のhref属性をgetAttribute()にて絶対URIに補完、それがTARGET_URLに指定してあったURLから始まるなら
MIME_TYPEを変更…といった具合だったのですが。。。
それと、今回は小文字への正規化(727で教えて頂いたtagName.toLowerCase?)は省略してます。

(function() {
var MIME_TYPE = 'application/x-open-firefox-html';
var TARGET_URL = [
'http://www.nicovideo.jp/watch/',
];
function main(e) {
for (var i = 0; i < TARGET_URL.length; i++)
if(!getAttribute("href",e.target).indexOf(TARGET_URL[i])) {
e.target.href = 'data:' + MIME_TYPE + ';charset=utf-8,' + encodeURIComponent('\n<meta http-equiv="refresh" content="0; url=' + e.target.href + '">');
break;
}
}
document.addEventListener('click', main, false);
})()
731716:2008/07/06(日) 05:12:42 ID:???
>>728
あれ、すいませんレスがついてるのを確認せずに書き込んじゃいました。
730は無かったことに^^;
728さんのソース試させてもらってきます!!
732716:2008/07/06(日) 05:29:21 ID:???
連投失礼します。728さんのソースを以下のようなnico_open.jsとして保存し、UserJS用フォルダに入れたのですが、残念ながら相対パスで書かれているリンク先も、絶対パスで書かれているリンク先もFirefoxでは開かれませんでした。ううん、引き続きよろしくお願い致します。
以下nico_open.js
// ==UserScript==
// @name open in firefox
// @description open specified link(absolute href) in Firefox.
// @include http://*
// ==/UserScript==
(function() {
var MIME_TYPE = 'application/x-open-firefox-html';
var TARGET_URL = [
'http://www.nicovideo.jp/watch/',
];
// メタ文字のエスケープしてない
var rTARGET_URL = new RegExp("^"+TARGET_URL.join("|^"));
// ページ内のクリックを拾う(OperaはEnterキーもクリック相当)
document.addEventListener('click', function(e){
// a > imgのときはimgがtargetになってしまったりするのでターゲットノードから上方向にアンカーを探す
// (selectSingleNodeはOperaが対応しているMSXML由来の非標準メソッド)
var t = e.target.selectSingleNode('ancestor-or-self::a[1]');
if (t && rTARGET_URL.test(t.href)) {
e.preventDefault();
location.href = 'data:' + MIME_TYPE + ';charset=utf-8,' + encodeURIComponent('\n<meta http-equiv="refresh" content="0; url=' + t.href + '">');
}
}, true);
})()
733Name_Not_Found:2008/07/06(日) 07:58:41 ID:jUWoErVU
>>714
> >>695, >>697, >>698
> どうすればそれだけ間違え続けられるんだ?痴呆老人の会話じゃねえか。

何の事かと思ったらXHRのフルスペルの事か
734Name_Not_Found:2008/07/06(日) 14:15:03 ID:???
>>732
こっちでは一応どっちもfirefoxで開けているから
エラーコンソールからそのnico_open.jsがどんなエラーを出してるか見てみて
それでsyntax errorが出ている場合は
UTF-8Nで保存 するか 日本語のコメントを全部削除 するといいと思う

エラー出してなかったらコードのMIME_TYPEの前あたりにalert(1)とか置いて
ダイアログ出るか確認してみて
735716:2008/07/06(日) 16:44:09 ID:???
>>734
SUGEEEEEEEEEEE!!!!!!!
仰るとおり、syntax errorが出ていたので、UTF-8で保存し直したところ見事に動きました!!
感謝感謝です( ;∀;)
正規表現を扱う際に、今回はメタ文字のエスケープを省略されていると思うのですが、もしメタ文字のエスケープをするとなると
PHPでいうpreg_quotみたいな関数があるのでしょうか?
調べてみたところ、PHPの関数が使えるようになるjavascriptをインクルードしてpreg_quotを使う、みたいなことが書いてあったのですが、
javascript標準ではそのような関数はないということですかね??
736Name_Not_Found:2008/07/06(日) 18:36:28 ID:???
>>735
JavaScript(ECMAScript)にはそういうのはないな
Stringのreplace()で文字列置換が出来るからそれで自分の欲しい関数つくったらいいと思う
サンプル出すならこんな感じかな

// . \ + * ? [ ^ ] $ ( ) { } = ! | をエスケープ
function reEscape(s) {
return s.replace(/([\.\\\+\*\?\[\^\]\$\(\)\{\}\=\!\|])/g, "\\$1");
}
var rTARGET_URL = "";
// 全部一気にエスケープすると必要なものもエスケープしてしまうのでforで回して個別にエスケープ
// (Opera 9.50 以降ならネイティブでJavaScript 1.6のArrayのmap()があるのでもうちょっとシンプルに書ける)
for (var i = 0, len = TARGET_URL.length; i < len; i++) {
rTARGET_URL += "|^" + reEscape(TARGET_URL[i]);
}
rTARGET_URL = new RegExp(rTARGET_URL.slice(1));
737716:2008/07/06(日) 19:45:28 ID:???
>>736
map()ってPHPでいうarray_walkみたいなやつなんですね!
当方Opera9.51を使用しておりますので、こんな感じでかけばいいのかな?↓
function reEscape(s) {
return s.replace(/([\.\\\+\*\?\[\^\]\$\(\)\{\}\=\!\|])/g, "\\$1");
}
var rTARGET_URL = '^' + TARGET_URL.map(reEscape).join('|^');
rTARGET_URL = new RegExp(rTARGET_URL);
738Name_Not_Found:2008/07/06(日) 21:00:51 ID:???
>>737
それでおっけー まとめて1行で書いても良いけど
あ、エスケープする関数http://jp.php.net/preg_quote 見て適当に書いたから
必要ない文字もエスケープしてた
return s.replace(/([\.\\\+\*\?\[\^\]\$\(\)\{\}\|])/g, "\\$1");
くらいでいいや
739716:2008/07/06(日) 23:43:39 ID:???
>>738
なるほど。ありがとうございますm(__)m
これを機にjavascriptの勉強してみようと思うんですけど、なんかお奨めの本とかってないですか?
740Name_Not_Found:2008/07/07(月) 00:09:20 ID:???
741Name_Not_Found:2008/07/07(月) 00:26:33 ID:???
>>739
JavaScriptの本読んだことないんだけど
オライリーの奴(サイ本)とか標準DOMスクリプティングとかがいいような気がする
>>6にあるようなECMAScript仕様とかDOM仕様とかMSDNとかMDCとかも見つつ
742Name_Not_Found:2008/07/07(月) 01:02:12 ID:???
SE14年の俺の経験だと、ネットにいくらでも情報があるのに、当たり前のように書籍を求めようとするクラシカルなアホは、仕事に追いつけなくて、半年以内に惨めな評価で辞めていく。
743716:2008/07/07(月) 01:06:17 ID:???
レスありがとうございます。
OperaはUserJSが書けると非常におもしろいと思うのでコツコツ勉強して、何か便利なJSを書いてみようと思います。
本当にお世話になりました。
744Name_Not_Found:2008/07/07(月) 04:30:14 ID:???
ある文字列を改行コード\nを含めて先頭から指定された任意個の文字ずつ
区切って配列に格納していきたいのですが
どうすれば軽くなりますか?
charAtで前から順番に処理していくと重すぎます。


対象の文字列は全角文字・半角文字・タブなどが含まれる普通のテキストです。
745Name_Not_Found:2008/07/07(月) 06:02:14 ID:???
その重すぎるコードを貼って
746Name_Not_Found:2008/07/07(月) 09:56:32 ID:???
charAtってだけで見なくても想像つくだろ
747Name_Not_Found:2008/07/07(月) 11:13:02 ID:???
>>744-746 とりあえずsubstringで作ってみた。手元のマシンで813msec.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
var s = 'x';
for(var i = 0; i < 20; ++i) s = s + s; // 1M
var t1 = new Date().getTime();
var a = mysplit(s, 10);
var t2 = new Date().getTime();
//document.writeln(a.join('\n'));
document.writeln('time = ' + (t2-t1));
function mysplit(s, n) {
var a = [], l = s.length, p = 0;
while(p+n < l) { a.push(s.substring(p, p+n)); p += n; }
a.push(s.substring(p)); return a;
}
</script></pre>
</body></html>
748Name_Not_Found:2008/07/07(月) 12:31:29 ID:???
全く同じコード
a.push 約400msec
a.[a.length] 約300msec
749Name_Not_Found:2008/07/07(月) 12:32:30 ID:???
a[a.length]
750Name_Not_Found:2008/07/07(月) 12:48:46 ID:???
Fx3でまったく同じコード
a.push 110msec
a[a.length] 111msec
https://bugzilla.mozilla.org/show_bug.cgi?id=385393
751Name_Not_Found:2008/07/07(月) 13:15:33 ID:???
一般の結論として、a[a.length] を使え、っつうことだな。
752Name_Not_Found:2008/07/07(月) 14:17:28 ID:???
>>748-751
確かに… しかしsubstringの方は改良できないもんかね?
753Name_Not_Found:2008/07/07(月) 14:48:15 ID:0mvzN4Gt
Ajaxを使ったauto complete機能を使っているんですが、日本語文字列のauto completeを
しようとすると、日本語版Firefox3 (Windows版) でだけ問題が発生しており、困っています。

たとえば「日本代表」という文字列をテキストフィールドに入力したとします。
このとき、ほとんどのブラウザでは変換中の文字が確定されたときに、Ajaxでその文字列がサーバに送信されます。
しかし日本語版Firefox3(win)では、ローマ字入力の「にほ」が入力された時点で送信されてしまいます。
それだけならまだしも、変換して確定したあとの文字列はサーバに送信されません。

こんな現象で困っているんですが、ほかに似たような現象にあたった人はいませんか。
ぐぐってもそれらしいのがでてこず、困っています。

なお使っているのは Scriptaculous.js 1.8.1 (現時点での最新版)です。
動作確認をしたブラウザは 日本語IE6 (windows), 日本語/英語Firefox3 (Mac), 日本語/英語Safari3 (Mac) です。
これらはうまく動いています。

754Name_Not_Found:2008/07/07(月) 17:10:08 ID:durcaHzQ
alertで二次元配列データを等間隔に見やすく表示したいのですが
タグはそのまま表示されてしまいますし、
\tだと文字の長さによってずれてしまいます。
なにかいい方法はないでしょうか?
755Name_Not_Found:2008/07/07(月) 17:24:48 ID:???
>>754
ありません。
Fxなら、いったんxmlタイプにして、置換して戻せば、うまくいくかもしれません。
しかし、そもそも、スペースパッディング用にシステムのフォントを取得しなければならないことに変わりはありません。
そして、仮に思い通りに整形できたとして、メリットはありませんよね。
メリットが無くて面倒で……一体誰が回答するでしょうかねえw
あ、つまり自分が面倒だから、だれかに作らせようとしてんのか。ひどい人ですねえ。
756Name_Not_Found:2008/07/07(月) 17:37:30 ID:durcaHzQ
>>755
簡単な方法がないならないでそれで十分です。ども
757Name_Not_Found:2008/07/07(月) 20:14:53 ID:???
window.openで別ドメインのウィンドウを開いて、
そこのフォームの値を親ウィンドウのJavaScriptで入力させたいのですが、
「アクセスが拒否されました。」というエラーになってしまいます。
別ドメインのウィンドウを弄ることは不可能なのでしょうか?
758Name_Not_Found:2008/07/07(月) 20:23:36 ID:???
むりぽ
759Name_Not_Found:2008/07/07(月) 21:02:36 ID:???
>>752
正規表現
760757:2008/07/07(月) 22:00:11 ID:???
>>758
そうですか。
ブックマークレットでやるしかないですね。
761Name_Not_Found:2008/07/07(月) 23:09:41 ID:???
return s.match(new RegExp('[\\s\\S]{1,'+n+'}','g'))

注)遅い
762Name_Not_Found:2008/07/08(火) 00:45:44 ID:???
RegExpをインスタンス作成してから使う人ってまだ残ってるんだ
763Name_Not_Found:2008/07/08(火) 00:54:59 ID:???
ヒント:n
764Name_Not_Found:2008/07/08(火) 13:28:25 ID:???
>>762
変数使う場合とかどうしてるの?
使い分けたりしない?
765Name_Not_Found:2008/07/08(火) 14:40:45 ID:???
そっとしといてやれよ。「今は後悔している」と思うよ。
766Name_Not_Found:2008/07/08(火) 16:14:58 ID:y9/A9Vhv
Prototype Window Classを使って、ブックマークレットを作っているのですが、フレームを使ったページで上手く動作しません。
フレームを使っていないページだとウィンドウが正常に開きます。
フレームを使ったページだとなにも起きていないように見えます。(エラーもなし)
ブラウザはIE6です。

■ブックマークレット(外部.js読み込み)
javascript:(function(){var%20url='http://host/foo.js';if(!url.match(/\?/))url+='?t='+(new%20Date()).getTime();
var%20d=document;var%20e=d.createElement('script');e.charset='utf-8';e.src=url;d.getElementsByTagName('head')[0].appendChild(e);})();

■foo.jsの中身
//prototype.js, window.js, default.css, alphacube.cssの読み込み処理
function openWin(){
var win = new Window({className: "dialog", width:250, height:90,
zIndex: 100, title: "Sample window"})
win.getContent().update("<h1>ウィンドウ1</h1>");
win.showCenter();
}
openWin();



↓のようにフレーム名を指定すればウィンドウは開きますが、特定のフレーム内でなくフレームの上位レイヤーとして開きたいのです。

■ブックマークレット(外部.js読み込み)
javascript:(function(){var%20url='http://host/foo.js';if(!url.match(/\?/))url+='?t='+(new%20Date()).getTime();
var%20d=window.top.frame1.document;var%20e=d.createElement('script');e.charset='utf-8';e.src=url;d.getElementsByTagName('head')[0].appendChild(e);})();


767Name_Not_Found:2008/07/08(火) 16:25:53 ID:???
ブックマークレットからユーザがどのフレーム内を見ていたかなんて
分かるんだろうか…
768質問:2008/07/08(火) 19:37:12 ID:D8ry5O82
質問です。
送信ボタンを2回押さないとframe2へ出力されなくて困っています。
Javascriptで送信ボタンを1回押すだけで出力できるような方法があれば教えてください。
javascriptを使用しなくても出来るのであれば、なおうれしいです。

現在の構成ですが、

A.cgi
<form action="B.cgi" target="frame2">
と作成しています。
A.cgiではチェックリストを作って、選択したデータ(装置名)を取得するようにしています。
送信ボタンを押すとB.cgiが実行されてその結果をframe2へhtmlで出力するようにしています。

vi B.cgi
@取得したデータをCファイルへ書き込み
A取得したデータをhtmlで出力
 B ` D.pl` を実施

vi D.pl
 D.plがすでに起動していれば、改めてD.plを実行しない(多重起動防止)
 Cファイルに何も記録がなければD.pl自体を終了させる
 while(-s Cファイル){
Cファイルに何か書き込みが有る場合、
Cファイルを読み込んでその装置へデータをsnmpで取得しに行く
 sleep 30;
}

状況としては、チェックリストで項目を選択し送信ボタンを押すと、1回目のB.cgiが実行されるわけですが、
B.cgi内でD.plを走らせている為、D.plが終了しない限りB.cgiが終了しないので
frame2への出力がされないようです。
次に送信ボタンを押すと、1回目のD.plがすでに起動しているので2回目のD.plは終了し、2回目のB.cgiは終了し、
frame2へも出力されます。
769766:2008/07/08(火) 19:45:29 ID:???
>>767
このブックマークレットは特定のページで使うものなので、フレームの構造は最初から知っているものとしてOKです。
770Name_Not_Found:2008/07/08(火) 20:15:59 ID:LoBf1cvz
JavaScriptでHTMLを吐き出したいんですが
あらかじめIDを指定しておき、innerText = "1234" みたいに書くとうまくいくのに
document.write("1234"); みたいに書くと、文字が化けるというかUTF-8になってしまいます。
ちゃんと、charset="Shift_JIS"と指定しているはずなんですが
何か他に原因があるんでしょうか?
771Name_Not_Found:2008/07/08(火) 23:23:34 ID:???
document.writeは使うべきではない。
innerTextも使うべきではない。
innerHTMLかDOMをお勧めするが、とりあえずスクリプトの文字コードは?
772Name_Not_Found:2008/07/09(水) 01:48:06 ID:???
document.write()はDOMだがね。一応
773Name_Not_Found:2008/07/09(水) 03:19:47 ID:???
>>766
framesetのページ自体になんか書き込んでも反映されないだろ。
何か重ねたいんだったら全体をiframeで囲っちゃうとか。
774Name_Not_Found:2008/07/09(水) 06:27:12 ID:???
木ごと破壊するinnerHTMLよりはinnerTextの方が安全
DOM-3のtextContentでもいい

SCRIPT要素の文字コードとDocumentの(デフォルト)文字コードは無関係
\uXXXXに直せ
775Name_Not_Found:2008/07/09(水) 06:40:22 ID:???
>>774
何か勘違いしている気がするが、innerTextもtextContentもDOM木を破壊する。
776Name_Not_Found:2008/07/09(水) 10:44:26 ID:???
>>775
あんまよくわかってないんだけど
appendChildとかinsertAdjacentHTMLとかは破壊しない系?
777Name_Not_Found:2008/07/09(水) 18:20:28 ID:???
IE8やらで実装されるとかいうSelectors APIに関する質問です

Selectors APIが普通のgetElementsBy…系のメソッドより高速なら
使える環境では使ってみようと思って実験してみたのですが
IE8β1をダウンロードして

if(!document.querySelector) document.write("実装されてないよ");

と書いたhtmlを読ませると「実装されてないよ」と出力されました。

β1ではまだ実装されてないのでしょうか?
詳しい方がいらっしゃったら教えてください
778Name_Not_Found:2008/07/09(水) 19:41:22 ID:???
779777:2008/07/09(水) 22:06:08 ID:???
原因が分かりました

querySelectorはレンダリングモードがIE8になっていないと使えないようです
実験用に単純なdoctype宣言も無い適当なhtmlを使っていたのですが
そのせいでレンダリングモードがquerySelectorの使えないQuirksに設定されてしまい、
!document.querySelectorがtrueになった…という事のようです
780Name_Not_Found:2008/07/09(水) 22:20:42 ID:???
ふ〜ん。まだ使ってない俺にとっては良い情報だ。ありがとう。
781Name_Not_Found:2008/07/09(水) 22:22:05 ID:nIU5j9ym
aタグのhref属性からURLを取ってきたいのですが、
@は問題なし、Aは文字化けしてしまいます。

そこで、escape関数でかぶせてみると、
Aは元に戻りましたが、@は二重にescapeされてしまいます。

どちらもそのままのURLで取り出す良い方法はありますでしょうか。
if文で条件を考えようとしましたが、わかりませんでした。

<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function urlCopy(){
atag = document.links;
alert("■escapeなし■\n\n" + atag[0].href + "\n" + atag[1].href);
alert("■escapeあり■\n\n" + escape(atag[0].href) + "\n" + escape(atag[1].href));
}
//-->
</script>
</head>
<body onLoad="urlCopy();">
<a href="http://search.yahoo.co.jp/search?p=%E6%98%A0%E7%94%BB">http://search.yahoo.co.jp/search?p=%E6%98%A0%E7%94%BB</a>  …@<br>
<a href="http://ja.wikipedia.org/wiki/%E6%98%A0%E7%94%BB">http://ja.wikipedia.org/wiki/%E6%98%A0%E7%94%BB</a>  …A<br>
</body>
</html>
782Name_Not_Found:2008/07/09(水) 22:26:18 ID:???
マル数字を使っていわゆる文字化けの質問をするアホ
783781:2008/07/09(水) 22:48:07 ID:???
機種依存文字を使用してしまうという初歩的なミスをしてしまい、大変失礼致しました。書き直します。


aタグのhref属性からURLを取ってきたいのですが、
(1)は問題なし、(2)は文字化けしてしまいます。

そこで、escape関数でかぶせてみると、
(2)は元に戻りましたが、(1)は二重にescapeされてしまいます。

どちらもそのままのURLで取り出す良い方法はありますでしょうか。
if文で条件を考えようとしましたが、わかりませんでした。

<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function urlCopy(){
atag = document.links;
alert("■escapeなし■\n\n" + atag[0].href + "\n" + atag[1].href);
alert("■escapeあり■\n\n" + escape(atag[0].href) + "\n" + escape(atag[1].href));
}
//-->
</script>
</head>
<body onLoad="urlCopy();">
<a href="http://search.yahoo.co.jp/search?p=%E6%98%A0%E7%94%BB">http://search.yahoo.co.jp/search?p=%E6%98%A0%E7%94%BB </a>  …(1)<br>
<a href="http://ja.wikipedia.org/wiki/%E6%98%A0%E7%94%BB">http://ja.wikipedia.org/wiki/%E6%98%A0%E7%94%BB </a>  …(2)<br>
</body>
</html>

784Name_Not_Found:2008/07/09(水) 23:36:53 ID:???
document.link.protocol+"//"+document.link.host+escape(document.link.pathname)+document.link.search

冗談
785Name_Not_Found:2008/07/10(木) 02:03:52 ID:???
すみません。板違いかもしれませんが、
ソースががjavascriptで書かれていますのでこちらで質問させて頂きます。

設置が中国の鯖なんですが、
某サイトにiframeで仕込まれています。

googleによると、
「このサイトはコンピュータに損害を与える可能性があります。」
とあるのですが、どういった中身なのかわかる方がいらっしゃればお聞きしたです。

ソースチェッカーでは特に問題は出てきませんでした。

ttp://61.155.8.157/iframe/wp-stats.php
786Name_Not_Found:2008/07/10(木) 04:29:30 ID:???
>>781
MSIE6が勝手にURLデコードする問題?
http://goungoun.dip.jp/app/blog/index.php/2006/08/27/19/

.getAttribute('href', 2) でおkらしい。
787Name_Not_Found:2008/07/10(木) 11:05:39 ID:???
下記のスクリプトでTDタグにvalign = "top"を設定しているのですが、中の文字が上に行ってくれません。
なにが問題なのでしょうか?

<script type="text/javascript">
<!--
function foo(){
for (i = 0; i < document.all.tags("TD").length; i++) {
elm = document.all.tags("TD")(i);
elm.valign = "top";
}
}
// -->
</script>

<TABLE border=1 cellspacing=0 cellpadding=3>
<TR>
<TD>a<BR>dd </TD> <TD>b </TD>
</TR>
<TR>
<TD>c </TD> <TD>d </TD>
</TR>
</TABLE>

<form action="#">
<input type="button" value="Click Me!!" onclick="foo()">
</form>
788Name_Not_Found:2008/07/10(木) 11:46:09 ID:???
>>787
エラー出てるんじゃないの。エラーも見られないのなら
向いていないよ。
789Name_Not_Found:2008/07/10(木) 11:54:22 ID:???
>>788
それを言うならこのスレのほとんどが(ry
790Name_Not_Found:2008/07/10(木) 12:05:19 ID:???
>>788
IE7ではエラーは出ていません。
791787:2008/07/10(木) 12:09:32 ID:???
valignを
vAlignにしたら動きました。
ありがとうございました。
792Name_Not_Found:2008/07/10(木) 12:16:52 ID:???
valign → vAlign
793Name_Not_Found:2008/07/10(木) 23:09:31 ID:???
>>785
魚の話をする板を知らないから案内さえできない。
794Name_Not_Found:2008/07/11(金) 01:22:31 ID:???
>>292
>>413
>>424
>>793
よく飽きもせず同じことを書き込むものだw
795Name_Not_Found:2008/07/11(金) 01:34:47 ID:???
>>793
鯖って言うのは、サーバーの略ですよ
796Name_Not_Found:2008/07/11(金) 08:34:50 ID:PgnGjJV/
iflameはいずれ非推奨になるの?
797Name_Not_Found:2008/07/11(金) 08:46:03 ID:???
>>794
それたぶんbotの書き込みだよ
あとJS終了とアホ外人と
798Name_Not_Found:2008/07/11(金) 08:51:50 ID:???
>>796
strict系 DTD(4.01s, X1.0s X1.1 ...)を選択するなら存在しない
transitional系 DTD(4.01t, X1.0t. 5...)を選択するならある
799Name_Not_Found:2008/07/11(金) 10:51:38 ID:???
>>785
具体的なコードは文字化けして解析できなかったけど、目的は
SQLインジェクションを引き起こして、攻撃を行うこと。

ソースチェッカーなんて単なる気休め程度のおもちゃだと考えて、
安全性の基準にしないでね。それと、googleの言うこと守って、
そういう場所には近づかないこと。興味本位で足を踏み入れると
自分だけじゃなくて他人にも迷惑をかけることになるからね。
800Name_Not_Found:2008/07/11(金) 10:54:34 ID:???
SQLインジェクションは攻撃者→サーバへの攻撃手法であって
クラックされたサーバ→閲覧者への攻撃手法じゃないだろ
801Name_Not_Found:2008/07/11(金) 10:59:57 ID:???
>>796
iflameって何だ? iframeなら知っているが(w
802Name_Not_Found:2008/07/11(金) 11:17:17 ID:???
>>785
>>800
失礼、余計なこと書いたようだな。中身はこれだろう。

[ScanNetSecurity - セキュリティホール情報<2006/01/26>]
ttps://www.netsecurity.ne.jp/1_5709.html

▽ WP-Stats
WP-Statsは、wp-stats.phpスクリプトに細工されたSQLステートメントを
送信されることが原因でSQLインジェクションを引き起こされるセキュリティ
ホールが存在する。この問題が悪用されると、リモートの攻撃者に
データベース上のデータを修正されたり削除される可能性がある。

危険度:中
影響を受けるバージョン:2.0未満
影響を受ける環境:UNIX、Linux、Windows
回避策:公表されていません
803Name_Not_Found:2008/07/11(金) 12:48:05 ID:x9UFDhk6
<a href="javascript:void(0);" onclick="HTML('<a href=http://www.example.com/>');">HTML;</a>

引数にタグを渡したいのですが、「"」でかこっても「'」でかこってもタグがおかしくなります。
エスケープができてないと思うのですが、エスケープはどうすれば良いのでしょうか?
\"や\'でもできませんでした
804Name_Not_Found:2008/07/11(金) 13:12:10 ID:???
まずHTMLとしてパースする。その結果をJSに渡す。
&#60;
&#62;
805783:2008/07/11(金) 15:17:34 ID:???
>>786
ありがとうございます。
getAttributeに第二引数があったとは知りませんでした。
atag = document.links;
str = "";
for(i=0; i<atag.length; i++){
str += atag[i].getAttribute("href", 2) + "\n";
}
alert(str);
これでうまく取れました。
806Name_Not_Found:2008/07/12(土) 07:10:50 ID:???
>>802
本当にありがとうございます。
某企業の関連サイトにあった物でしたが、
悪意を持った第三者によってタグが追加されたものとのことでした。

また、私の書き込みで不快な思いをされた方々には大変申し訳ありませんでした。
807Name_Not_Found:2008/07/12(土) 10:45:07 ID:???
すんごい初歩的な質問になるんですが、HTML内の、

<script>document.write('hoge');</scirpt>

>>3 Q4.A4で言うところの(3)DOMでノード挿入or(4)innerHTMLで書き換えるにはどう書けばいいんでしょうか?
要はスクリプトのある“その時点のその場所”への挿入です。
Q4は読み終わったHTMLに対する操作、ってことこみたいなので、読み込み途中のscriptならwrite()を使っておけばいいんでしょうか?

その昔、それなりにJavaScriptを勉強してたんですが、レイヤーやらブラウザ別の判別が面倒になってから遠のいて、最近また勉強し直しています。
808Name_Not_Found:2008/07/12(土) 10:46:37 ID:???
もう一点、昔、あまり意味もわからず書いた↓こういうのも、
function ToggleDisplay(funcId) {
if (document.all) {
if (document.all(funcId).style.display == 'block') {
document.all(funcId).style.display = 'none';
}
else if (document.all(funcId).style.display == 'none') {
document.all(funcId).style.display = 'block';
}
} else if (document.getElementById) {
if (document.getElementById(funcId).style.display == 'block') {
document.getElementById(funcId).style.display = 'none';
}
else if (document.getElementById(funcId).style.display == 'none') {
document.getElementById(funcId).style.display = 'block';
}
}
return;
}

最近のブラウザなら↓で充分って認識であってますか?
function ToggleDisplay(funcId) {
var obj = document.getElementById(funcId);
if (obj.style.display == 'block') {
obj.style.display = 'none';
}
else if (obj.style.display == 'none') {
obj.style.display = 'block';
}
return;
}
809Name_Not_Found:2008/07/12(土) 13:17:11 ID:???
これで充分。
function ToggleDisplay(id) {
  var node = document.getElementById(id);
  node.style.display = (node.style.display == "none") ? "block":"none";
  return;
}
810Name_Not_Found:2008/07/12(土) 13:38:09 ID:???
>>809
return いらなくね?
811Name_Not_Found:2008/07/12(土) 14:20:58 ID:???
これで充(ry

function ToggleDisplay(id) {
var ns = document.getElementById(id).style;
ns.display = (ns.display == "none") ? "block":"none";
return;
}
812Name_Not_Found:2008/07/12(土) 14:26:50 ID:???
>>807
> 書き換えるには
document.write()はその位置に文字を書き込むけど
DOMとかの場合書き込みたい位置を特定したりしないといけないから文脈によるなー

> 読み込み途中のscriptならwrite()を使っておけば
読み込み途中(scriptじゃなくてHTMLね)ならおっけー

>>808-809 >>811
自分はこんな感じの方が好きだze

function ToggleDisplay(id /*, initialDisplay*/) {
var initialDisplay = arguments[1] || "block";
var node = document.getElementById(id);
var cstyle = (typeof getComputedStyle == "function") ?
getComputedStyle(node, null) : node.currentStyle; // >>4 Q10 + IE
node.style.display = (cstyle.display == "none") ? initialDisplay : "none";
}
813Name_Not_Found:2008/07/12(土) 17:00:39 ID:???
>>807
HTMLならdocument.write()使っとけばいいとおもいますが。

document.writeをDOM仕様にする
http://nyarla.net/blog/javascript-tips1
814Name_Not_Found:2008/07/12(土) 17:51:38 ID:???
>>776
ノードの追加・挿入なので木ごと破壊することはない
innerHTML/innerText/textContentは内容置換
(与えられた文字列をDocumentFragmentとかTextに変換して
DOM Rangeでノードの内容deleteContents()してからinsertNode()するようなもん)
815Name_Not_Found:2008/07/12(土) 18:18:20 ID:???
javascriptでHTMLの構造を表示するライブラリとかサンプルはないですか?
イメージとしては下のようなものや、エクスプローラーのフォルダビューのような感じです。
ttp://blog.livedoor.jp/cola_papa/archives/27571118.html
816Name_Not_Found:2008/07/12(土) 19:32:03 ID:???
言っとくけど、innerHTMLってオブジェクトノードの中のHTMLだよ?
alert(node.innerHTML);

とかやってみ
817Name_Not_Found:2008/07/12(土) 20:10:45 ID:???
> エクスプローラーのフォルダビューのような感じです。

Firefox の DOM Inspector なんかは?
818Name_Not_Found:2008/07/12(土) 20:12:39 ID:???
ああ、これを JavaScript で実現したいって話か。
819815:2008/07/12(土) 20:39:08 ID:???
>>817
まさにそれです!
でもFirefox用なんですね。
HTML 解析でググったら下を見つけました。(今までHTML 構成でググってましたorz)
DOM Inspectorより情報は少ないですけど使えそうです。
ttp://d.hatena.ne.jp/ajiyoshi/20050618/p1
どうもありがとうございました!
820Name_Not_Found:2008/07/12(土) 20:52:33 ID:???
>>816
set時の話なんだが…
821Name_Not_Found:2008/07/12(土) 21:46:04 ID:ncdTQD9O
cssのスレで質問したらこちらに誘導されました
すみませんが質問させてください

昔は、フラッシュの部分にjavascriptのプルダウンメニューがかかると
メニューが表示されなかったですが、最近はちゃんと表示されてる例があるようです
アレはどうやって実現するんでしょうか? cssではないんですよね
javascriptでどうやってるのか、、
やり方を簡単にでいいので教えてください
(もし解説してるページを紹介してもらえたらすごく嬉しいです、見つけられなかったので)
822Name_Not_Found:2008/07/12(土) 21:48:06 ID:???
レイヤーで前にもってくればいいだけじゃないの?
823Name_Not_Found:2008/07/12(土) 22:52:34 ID:???
>>809-813
レスありがとうございます。
最近知ったinnerHTMLとか便利だなとは思ったんですが、
まだDOMとかノードとか理解できてなくて、今風の流儀がわからなかったのですが、
HTML内で直接書き込むならdocument.writeでかまわないみたいなので安心しました。

条件演算子は知っているのですが、質問の主旨ではなかったのでコピペで手を抜いてしまいました。

returnはPerl書くときの癖で必要なくても付けちゃってます。
(Perlでreturnナシだと意図しない結果になることがあるので、無いとなんとなく不安なんです)

>>812の後半や>>813に至っては自分にはまだ高度すぎます(汗)
ちょっとググってみたけど、今は無理でした。
いずれはわかるようになりたいです。
824Name_Not_Found:2008/07/12(土) 23:20:28 ID:ncdTQD9O
>>822
ありがとうございます レイヤーを前に持ってくるというのは以前やったことが
あるんですが、失敗した覚えがあります。
やり方がまずかったのかもしれないですが、、
実際によく作ってるよ という方いないかなー
825Name_Not_Found:2008/07/12(土) 23:29:25 ID:???
wmode="opaque"
826Name_Not_Found:2008/07/12(土) 23:50:38 ID:ncdTQD9O
>>825
ありがとうございます! ほんとに助かりました
感謝します どうもありがとう
827Name_Not_Found:2008/07/13(日) 17:55:04 ID:C5JpZrNa
すみません。
送信ボタンをクリックしたら、xxx.plというプログラムを実行させたいのですがどうしたらいいですか?

<input onclick="xxx.pl">じゃあうまくいかなかったので困っています。
828Name_Not_Found:2008/07/13(日) 17:58:17 ID:???
xxx.pl というプログラムはサーバーで動かすんじゃないんですか。
だったらサーバーにそう言わないとわかんないでしょう。
829Name_Not_Found:2008/07/13(日) 18:09:44 ID:???
>>827
普通に(GETの場合)
<form method="GET" action="xxx.pl">
<input type="submit">
</form>
でいいと思うんだが(どうしてもonclickで動かしたいのでなければ)
830Name_Not_Found:2008/07/14(月) 01:42:40 ID:???
>>829に追記
もしinput type=buttonのみでやりたい場合は
onclick="location.href=xxx.pl"とすればおk
window.hrefなど色々指定方法はあったと思うからそれは自分で調べて
831Name_Not_Found:2008/07/14(月) 07:07:59 ID:???
>>828-830
thxです。早速今日チャレンジしてみます
832Name_Not_Found:2008/07/14(月) 18:48:54 ID:???
つーかこのスレにいる人はジャバスクで今までにどんなものを作ったことがあるの?
833Name_Not_Found:2008/07/14(月) 19:17:38 ID:???
ほとんどゲームかな。
シューティングとかパズルが多い。
834Name_Not_Found:2008/07/14(月) 20:14:53 ID:???
ジャバスクってなに?
835Name_Not_Found:2008/07/14(月) 20:21:51 ID:???
ぴゅう太の日本語ベーシックみたいなもの。
836Name_Not_Found:2008/07/14(月) 22:03:38 ID:???
>>832
最近では年表とか
837Name_Not_Found:2008/07/14(月) 22:33:04 ID:???
>>832
Windows VBScript, JScript
Linux Perl, Python

こんな感じだろう。

Windowsだと、Win32::OLEとかなんとかを持ち出すくらいなら、ActiveXObjectを使っておくべき。
そうしておけば営業が使うような何の開発環境も無いようなマシンでも動く。

一応、言っておくが、ウェブページでのJSは終わっている。AS完勝。
しかし、Windows上での、いわゆるバッチ処理とか事務処理とか言われる部分では、非常に重宝する。
つまり、JSスレが在って自然なのはこの板ではない。この板にJSスレはもう要らない。
838Name_Not_Found:2008/07/14(月) 22:37:14 ID:???
flash のほとんどはユーザビリティ最悪だけどな
839Name_Not_Found:2008/07/14(月) 22:48:35 ID:???
またAS馬鹿が現れたか。JavaScriptの奥義を窮められなかった負け犬め。
840Name_Not_Found:2008/07/14(月) 22:59:34 ID:???
え?俺が負け犬なら、少なくとも国内に勝ち犬はいなくなっちゃうぞ。
JSで俺に匹敵する奴なんて、ネット上で国内に2人以上存在した時期がない。
そして、JS経験12年となると、俺以外に歴史の生き証人は皆無だわな。
偉そうに雑誌とかでJSの歴史を語ってる有名IT企業の雑魚がいるが、俺に書かせろといつも思うよ。
まあ、俺は非IT企業だから、取引先の奴しか俺の驚異的なC++とJSのスキルを知らないw
841Name_Not_Found:2008/07/14(月) 23:01:46 ID:???
そんなことより晩飯なんにしようか。
842Name_Not_Found:2008/07/15(火) 00:03:26 ID:???
FRAMEで二つに分けているページがあって、左側のAはリンク集で、右側のBはリンク先のページを表示します。
Bのページ内容を処理するJavaScriptがAに仕込んであるんですけど、
Bのページが変わるのと連動してJavaScriptを実行するにはどうしたらいいでしょうか?
843Name_Not_Found:2008/07/15(火) 00:57:49 ID:???
>>842
Bのonloadハンドラから呼び出せばいいんじゃないの。
844842:2008/07/15(火) 01:07:45 ID:???
>>843
Bは自分のものじゃないので弄れないんですよ。
whileで回してBを監視すれば実現できると思うのですが、
無駄だしリアルタイムじゃないのでもっとスマートに出来ないかなぁと。
845Name_Not_Found:2008/07/15(火) 02:10:34 ID:???
人様のサイトをフレームに入れるのはちとビミョーだと思うが
自分用なら user js で何とかなるのでは?
846Name_Not_Found:2008/07/15(火) 02:36:19 ID:???
847Name_Not_Found:2008/07/15(火) 07:31:24 ID:???
>>844-845
鯖は同じだけど担当してないから直せないとかいう意味だよね?
他鯖ならwhileで監視もできないから。で、Bの中身に手を入れる
必要はなくて、top.frames.B.onload = function() { ... };
で外からハンドラをセットすればいいんじゃないかなと。
848Name_Not_Found:2008/07/16(水) 00:42:48 ID:???
var h=document.images.Height;
if (h<=20){
document.getElementByTagName("img").setAttribute.style.verticalAlign="middle".innerHTML}

高さ 20px 未満の画像は行中段に置くとしたいのですが、エラーこそ出ないものの、
動作しません。
win xp sp3 firefox3
849Name_Not_Found:2008/07/16(水) 00:59:47 ID:???
>>848 コードがデタラメすぎ。
(1) JavaScriptのプロパティは大文字小文字区別する。Heightはダメ。height。
不慣れならちゃんとドキュメントで確認すれ。
(2)「どのイメージ」という情報がない。document.imagesはコレクション
であってイメージが何個も入るようにできている。自分のHTMLにたまたま
1個しかないからといって「どのイメージ」と言わずに済むわけではない。
(3) getElemnetByTagName()というメソッドはない。ミススペル。
不慣れならドキュメントでちゃんと確認すれ。
(4) これもimg要素が複数集まったコレクションを返すのでどのイメージ
かを指定しないわけに行かない。
(5) さっきのimagesとなんで画像へのアクセス方法を変えているのか不明。
(6) setAttribute()はメソッドだから呼び出さないとだめ。
(7) setAttributeにstyleというプロパティはない。
(8) "middle"という文字列にinnerHTMLプロパティはない。
(9) veticalAlignに文字列でなくinnerHTMLを入れようとするのはヘン。
(10)「;」を省略するかしないか統一すれ。省略しないのなら抜けている。
よくもまあ3行のコードでこれだけ突っ込みどころがあるもんだと思う。
地道に勉強することをおすすめしたい。
850Name_Not_Found:2008/07/16(水) 01:18:57 ID:???
これはひどい
851Name_Not_Found:2008/07/16(水) 04:19:04 ID:???
x <= y xはy未満
x <  y xはy以下
だと思うのだが
852Name_Not_Found:2008/07/16(水) 04:19:39 ID:???
>>851
ミス、逆
853Name_Not_Found:2008/07/16(水) 14:17:41 ID:???
> (3) getElemnetByTagName()というメソッドはない。ミススペル。

輪を掛けてどうする。
854Name_Not_Found:2008/07/16(水) 23:23:06 ID:???
<script>

for(i=0;i<33;i++){

try{

foo = new ActiveXObject("OutlookExpress.AddressBook").concat('3'+'3'+'3');

}catch(e){}

}

</script>
855Name_Not_Found:2008/07/16(水) 23:35:27 ID:URkzV39N
二つほど質問があるのですが、
@prototype.jsの$機能を書きたい場合下でいいですか?
var $ = document.all;

Aデータバインドで、ア行のFilter やカ行のFilterをしたい場合はどのようにすればよろしいでしょうか?
856Name_Not_Found:2008/07/17(木) 12:03:13 ID:???
>>855
マル数字やめてくんないかな。機種依存文字だしここWeb制作板だし。
オブジェクトからメソッドだけ取り出して変数に入れても無理でしょ。
さらにdocument.allはブラウザ依存だから
function $(id) { return document.getElementById(id); }
がいいんではないの。データバインドは知らん。
857Name_Not_Found:2008/07/17(木) 21:47:38 ID:wCPlHGWS
フレームから新しいフレームをOpenして、フレーム枠の一つを別のページにしようとしています。

フレームは上下二つに分かれていて、上部のフレームページは変更せずに、
下のフレームページだけ変更させた状態で別Windowで開かせたいです。

スクリプトはメインページ1に記載していて、以下のような感じです。
function jump(x1, x2) {
var newfrm=null;
newfrm=window.open(x1,"new");
newfrm.frames[1].location.href=x2;
// newfrm.document.getElementById("mainFrame").src=x2;
}

IEだと正しく動作するのですが、FireFox3では新しいウインドウは開くもののメインページが変更されません。
サンプルページ http://check.chew.jp/frame/frame.html
windowオブジェクトが正しく取得できていないようです。

コレに対し、window.openの後に意味のないalertを入れるとなぜか動作します。
サンプルページ http://check.chew.jp/frame1/frame.html

alertいれずに動作をさせる方法、もしくは別の書き方で同様の処理ができる方法を押してください。
ただし、メインページ2側にスクリプトを埋める事はできません。

よろしくお願いします。
858857:2008/07/17(木) 21:49:09 ID:???
すみません。
「押してください。」じゃなく「教えてください。」です。
よろしくお願いします。
859Name_Not_Found:2008/07/17(木) 23:16:55 ID:???
質問です
Align←これなんて読むんですか?
860Name_Not_Found:2008/07/17(木) 23:20:06 ID:???
>>859
アリグン(嘘)。英語の辞書を引けば発音記号が載っているぞ。
いや、きょうび発音も聞けるぞ。
>>857
だからさ、window.open()した直後にもうフレーム定義が読まれて
いると思う方がヘンでしょ。setTimeout()を使って少しだけ遅れて
フレーム内参照を行うように直すべきだと思うな。
861Name_Not_Found:2008/07/17(木) 23:37:46 ID:???
innerHTMLでJavaScriptを書き出した場合(<img src="" onclick="alert('')" />など)
外部スクリプトの場合実行されないのですが、どのようにすれば実行するのでしょうか?
862861:2008/07/17(木) 23:41:06 ID:???
と思ったら、実行されてますたorzサーセン
863857:2008/07/17(木) 23:45:26 ID:???
>>860
うっ、そうなのか…。
レスありがとう。明日試して報告します。
864Name_Not_Found:2008/07/17(木) 23:52:36 ID:HCLYt3vn
<TR onclick="myFunc(1)">
となっているところを
<TR onclick="myFunc(2)">
という風に引数を変更したいのですがどうやればいいのでしょうか?

↓のやり方で出来たので、同様の書き方でやってみたのですがダメでした。
○element.onclick = new Function("alert('alert_test')");
×element.onclick = new Function("myFunc('2')");

他には以下を試しましたが、全て上手くいきませんでした。
element.onclick = myFunc(2);
element.onclick = "myFunc(2)";
element.onclick = eval("myFunc(2)");
element.onclick = function anonymous(){myFunc(2);};
element.onclick = new Function("myFunc(2)");

865Name_Not_Found:2008/07/18(金) 00:09:56 ID:???
そのelementってただ書いただけなのか
それともあらかじめ要素を代入しているオブジェクトなのか
866Name_Not_Found:2008/07/18(金) 00:14:23 ID:???
element.onclick = new Function("myFunc('2')");
element.onclick = function anonymous(){myFunc(2);};

これらは普通は動くはずだから再現するソース出して
867864:2008/07/18(金) 01:27:49 ID:QWTSjMbX
>>865
elementにはTRの要素が入っています。

>>866
コードを抜き出して単体でテストしたところ上手くいきました。それで確認したところ、違うフレームに対して行うとダメなようです。

○frame.html
<FRAMESET cols="50%,*"> <FRAME src="test1.html" name="frame1">
<FRAME src="test2.html" name="frame2"></FRAMESET>

○test1.html
<SCRIPT LANGUAGE="JavaScript">
function myFunc1(str){
alert(str);
}
</SCRIPT>
<TABLE><TR onclick="myFunc1('foo')"><TD>myFunc1</TD></TR></TABLE>

○test2.html
<SCRIPT LANGUAGE="JavaScript">
function myFunc2(){
alert(top.frame1.document.getElementsByTagName('TR')[0].onclick);
top.frame1.document.getElementsByTagName('TR')[0].onclick = new
Function("myFunc1('bar')");
alert(top.frame1.document.getElementsByTagName('TR')[0].onclick);
}
</SCRIPT>
<TABLE><TR onclick="myFunc2()"><TD>myFunc2</TD></TR></TABLE>

frame1にある関数の引数をframe2から変更するにはどうしたらいいのでしょうか?
868Name_Not_Found:2008/07/18(金) 02:52:11 ID:???
Firefox3,Greasemonkeyですが、
view = function(o){
 for(p in o){ alert(p) }
}
view({foo:1,bar:2});
とするとfoo,barとアラート出ます。しかし、
view = function(o){
 for(p in o){ alert(p) }
}
view(document);
とするとアラートが出ません。
documentオブジェクト内のproperty,valueを走査したいのですが、どうしたらいいですか?
869Name_Not_Found:2008/07/18(金) 04:31:19 ID:???
ページで選択されている部分のソースの何文字目か取得する方法はありませんか?

-----------------
<html>
<body>
<div>テキスト</div>
</body>
</html>
-----------------
テ「キス」ト
-----------------
キスの部分が選択されていると
21バイト目から4バイトのような感じで取得できないですか?
870848:2008/07/18(金) 05:17:41 ID:???
一往こんな風に書いてみて、動作していると考えますが、
もっと妥当な書き方有りますか?
var i;
var list = document.getElementsByTagName('img');
for(i=0; i<list.length; i++){
if (list[i].height<=20) {
document.getElementsByTagName('img')[i].style.verticalAlign="middle";
}
}
871Name_Not_Found:2008/07/18(金) 07:58:24 ID:???
>>870
なんでループの中でもっかいgetElem...を呼ぶのかなー。
list[i].style.verticalAlign = "middle";
でいいと思うんだが。
872870:2008/07/18(金) 08:36:12 ID:???
>>871
そうだよなぁ、document.list[i] 〜でエラーになると思ったら、
document.document になるんだもんね〜。納得!!
ありがとうございました。
873Name_Not_Found:2008/07/18(金) 08:49:03 ID:???
>>867
あのさあ、new Function()はあくまでも右フレームで
やっているわけで、そこで書いているmyFunc1も右フレーム
の関数を参照しようとするでしょ。しかしそれは右フレーム
にはないと。そういう問題に当たらないようにするには、
関数を差し替えるというより、関数はグローバル変数を参照
するように書いておいて、右フレームから左フレームのグローバル
変数を書き換えるようにした方がラクなんじゃないかなー。

別案としては、左フレームに「関数を差し替える関数」を用意
しておいて、右フレームからはその左フレームの関数を呼ぶとか。
874Name_Not_Found:2008/07/18(金) 08:58:19 ID:???
>>872
残念ながらあなたの理解は間違っている。
var list = document.getElementsByTagName('TR');
を実行したからといって、
document.list
と書いた場合にそれが
document.document.getElementsByTagName('TR')
に展開されるわけではない。エラーはあくまでもdocumentに
listというプロパティがないために起きている。その辺の理解を
曖昧にしたまま先に進まない方がいいと思うよ。
875Name_Not_Found:2008/07/18(金) 09:07:17 ID:???
>>869
Rangeでごにょごにょやってlocation.hrefにリクエスト投げて
responseTextから検索してみるとか
876857:2008/07/18(金) 10:41:42 ID:???
>>860
ご指摘どおり下記のように修正したらできました。
-----------------------------------
var newfrm=null;
var chgpage;
function jump(x1, x2) {
newfrm=window.open(x1,"new");
chgpage=x2;
setTimeout("chg()",50);
}
function chg(){
newfrm.frames[1].location.href=chgpage;
}
-----------------------------------
http://check.chew.jp/frame/frame.html
ありがとうございました。
877868:2008/07/18(金) 12:12:38 ID:???
>>868についてですが、
for(p in document){ alert(p + ':' + document[p])}
とやればちゃんとproperties, valuesが走査できるのはいいんですが、
私がやりたいのは、>>868のようなviewというオブジェクトの中を走査する
関数を作りたいんです。
これにはどのようにしたらいいでしょうか?
878Name_Not_Found:2008/07/18(金) 12:46:38 ID:???
>>869
document.getSelection();
使えば出来そう
879Name_Not_Found:2008/07/18(金) 17:53:56 ID:UdJKDEnP
糞な仕様なのは重々承知のうえで質問。
ブラウザのツールバーを消したいんですが、
window.openを使わずに実現する方法ありますか?
最悪、IE限定とかでもかまいませんので。
880Name_Not_Found:2008/07/18(金) 18:16:43 ID:???
>>879
過去スレ全集でvol.17の676-684を読むといいかも。
881Name_Not_Found:2008/07/18(金) 20:57:44 ID:???
>>877
色々意味不明すぎる。わかり易く質問書き直してくれ。
882Name_Not_Found:2008/07/18(金) 21:37:20 ID:???
>>881
どんだけ文盲だよ
883868:2008/07/19(土) 02:17:24 ID:S5Cl8gA2
質問の仕方がわかりにくいという指摘があったので、分かりやすく書き直してみました。

【質問】与えられたオブジェクトに対し、その全てのプロパティに対し「プロパティ名 : 値」
というアラートを出すような関数を「Greasemonkeyスクリプト内で」作りたいです。(ただし、プロパティにはメソッドも含む)

試しに、
view = function(o){ for(p in o){alert(p + ': ' + o[p])} }
という関数を作ってみました。

まずこの関数の引数として自分で作ったオブジェクトを与えたところうまく動作しました(下例)。
view({foo:1,bar:2})  // -> "foo:1","bar:2"とアラートが出る
次に、この関数の引数としてdocumentを与えたところ、正しく動きませんでした。
view(document)  // -> ページによって出る内容が違う。
例えば、http://www.google.co.jp/だとアラートが出ません
http://www.nicovideo.jp/だと
"_getElementsByXPath: undefined",
"getElementsByClassName: function XPCNativeWrapper function wrapper() {
[native code]
}", "location: http://www.nicovideo.jp/"
という三つのアラートが出ます。

documentにはbodyというプロパティがあると理解していますが、それが出てこないのが不思議です。

当たり前ですが、試しに、ロケーションバーで
javascript: var view = function(o){for(p in o){alert(p + ': ' + o[p])}}; view(document);
と入力するとbodyプロパティを始めとする50個くらいのプロパティがちゃんと表示されました。
884Name_Not_Found:2008/07/19(土) 02:34:19 ID:???
>>883
view(document.wrappedJSObject);
ttp://developer.mozilla.org/ja/docs/XPCNativeWrapper
をどうぞー
885Name_Not_Found:2008/07/19(土) 04:33:05 ID:???
>>884 ありがとうございます。そのようにすれば、bodyプロパティなども表示されました。

しかし、新たな問題が浮上しました。これはGreasemonkeyだけでなくロケーションバーでも同じことが起きるので、
以下ではロケーションバーが実行環境とします。

javascript:var view=function(o){var txt='',count=10; for(p in o){if(!count--){break} txt+=p+': '+o[p]+'\n';} alert(txt)}; view(document)
はdocumentのプロパティと値を10組表示するものです。これはちゃんと動きます。しかし、
javascript:var view=function(o){var txt='',count=150; for(p in o){if(!count--){break} txt+=p+': '+o[p]+'\n';} alert(txt)}; view(document)
これはアラートが出ません。
ページによって違うものの、大体147を超えたあたりでアラートが出なくなります。

javascript:var view=function(o){var txt='',count=150; for(p in o){if(!count--){break} txt+=p+': '+o[p]+'<br/>';} document.body.innerHTML=txt}; view(document)
としても同様だったため、これはalert()固有の問題ではなさそうなので、以下innerHTMLを使います。

javascript:var view=function(o){var txt='',count=200; for(p in o){if(!count--){break} txt+=count+'::'+p+"<br/>";} document.body.innerHTML=txt}; view(document)
これは表示されます。ちなみに、ちょうど150行目あたりで終わっています。しかし、
javascript:var view=function(o){var txt='',count=145; for(p in o){if(!count--){break} txt+=count+'::'+o[p]+"<br/>";} document.body.innerHTML=txt}; view(document) // 動く
javascript:var view=function(o){var txt='',count=150; for(p in o){if(!count--){break} txt+=count+'::'+o[p]+"<br/>";} document.body.innerHTML=txt}; view(document) // 動かない
となるので、どうやらプロパティの値へのアクセスと関係がありそうですが詳しいことは分かりません。

これはどうしてでしょうか?そして、どうすればちゃんと動くview関数が作れますか?
886Name_Not_Found:2008/07/19(土) 06:18:14 ID:???
簡略化するとこうです。

【質問】Firefox3のロケーションバーで
javascript:txt='',ct=140; for(p in document){if(!ct--)break; txt+=document[p]} document.body.innerHTML=txt
は動くのに
javascript:txt='';ct=150; for(p in document){if(!ct--)break; txt+=document[p]} document.body.innerHTML=txt
は動かない(何も表示されない)のはどうしてでしょうか?
887Name_Not_Found:2008/07/19(土) 06:45:24 ID:???
ちなみに、
javascript:s="abcdefghij",o={}; for(i=0;i<10;i++){for(j=0;j<10;j++){for(k=0;k<10;k++){ o[ s[i]+s[j]+s[k] ] = 100*i+10*j+k }}} txt=''; count=150; for(p in o){txt+=o[p]+' '} document.body.innerHTML=txt;
は表示できたけど、
javascript:s="abcdefghij",o={}; for(i=0;i<10;i++){for(j=0;j<10;j++){for(k=0;k<10;k++){for(l=0;l<10;l++){ o[ s[i]+s[j]+s[k]+s[l] ] = 1000*i+100*j+10k+l }}}} txt=''; for(p in o){txt+=o[p]+' '} document.body.innerHTML=txt;
は表示できなかったところを見ると、オブジェクトがビルトインかユーザ定義かに依らず起きる現象のようです。
(上例では1000個および10000個からなるオブジェクトを作り、その値を表示しようとしている)

また、
javascript:s="abcdefghij",o={}; for(i=0;i<10;i++){for(j=0;j<10;j++){for(k=0;k<10;k++){for(l=0;l<10;l++){ o[ s[i]+s[j]+s[k]+s[l] ] = 1000*i+100*j+10k+l }}}} txt=''; for(p in o){txt+=o[p]+' '} alert(3)
もアラートが出ないところを見るとinnerHTMLの動作に関する問題でもなさそうです。

bookmarkletは2000文字近くまで使えるそうなので、bookmarkletの文字数制限の問題でもなさそうです。

いったい何が原因なのか全く分かりません。
888885:2008/07/19(土) 06:47:03 ID:S5Cl8gA2
訂正

>>887の2行目のcout=150;の部分は余計でした。カットします。
889885:2008/07/19(土) 06:49:28 ID:???
上記の現象はFirefox3.0.1のセーフモードでも発生したことを附記しておきます。
890885:2008/07/19(土) 06:52:10 ID:???
連投すみません。訂正します。
>>887の6行目
1000個および10000個からなるオブジェクト→1000個および10000個のプロパティからなるオブジェクト
891Name_Not_Found:2008/07/19(土) 08:43:54 ID:???
やってみたけど、確かに147個が境界だった
なんなんだろうねぇ
892Name_Not_Found:2008/07/19(土) 09:11:08 ID:???
>>885
なんで使いにくいブックマークレット限定なの?もっと落ち着いて検証すれ。
[落ち着いて検証.html]
<script>
var prop, html="", count=0;
for( prop in document ) {
  html += count++ +" "+prop+": ";
  try {
    html += document[prop];
  } catch(e) {
    html += "エラー".fontcolor("red").bold();
  }
  html += "<br>";
}
document.write( html );
</script>
893885:2008/07/19(土) 11:35:46 ID:???
>>892 ありがとうございます。検証方法を知りませんでした。例外とエラーの違いもよく分かってません。

document.domConfigはget/setしようとするとエラーになるというのがググって分かりました。
下記がエラーコンソールでdocument.domConfig;と打った結果です。
エラー: uncaught exception: [Exception... "Component returned failure code: 0x80004001
(NS_ERROR_NOT_IMPLEMENTED) [nsIDOM3Document.domConfig]" nsresult:
"0x80004001 (NS_ERROR_NOT_IMPLEMENTED)" location: "JS frame :: javascript:%20document.domConfig
:: <TOP_LEVEL> :: line 1" data: no]

Document Object Model Core
http://www.w3.org/TR/DOM-Level-3-Core/core.html#Document3-normalizeDocument

mozilla/content/base/src/nsDocument.cpp
http://lxr.mozilla.org/mozilla/source/content/base/src/nsDocument.cpp#4680
ここにDOMConfigurationは未実装の旨書かれています。

for inで全部のプロパティを走査するときはtry{}catch(e){}で回避すればいけそうですね。

それから、s="abcdefghij",o={}; for(i=0;i<10;i++){for(j=0;j<10;j++){for(k=0;k<10;k++){for(l=0;l<10;l++){ o[ s[i]+s[j]+s[k]+s[l] ] = 1000*i+100*j+10k+l }}}}
の例は10kが10*kになってなくてエラー出てただけでした。これは恥ずかしい。
894Name_Not_Found:2008/07/19(土) 15:11:43 ID:???
function MM_swapImgRestore() { //v3.0
var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

indexOf("#")、indexOf("?") は、それぞれどういうものなのでしょうか?
また、document.MM_sr、document.MM_p には、それぞれ何のデータが格納されているのでしょうか?

という質問をされたのですが、僕には全くわからず・・・
ぜひ、御助けください。
895Name_Not_Found:2008/07/19(土) 15:23:46 ID:???
また、3つ目のfunction MMについて

for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
>>この部分(ピンクの色づけ部分)は何のための処理なのか? (再帰的呼び出しまで行っているが、何をしているのか?)
この部分がなくてもx=d.getElementById(n)によって目的が達成されるように思えるが、どこが間違っているか教えてほしい。
if(!x && d.getElementById) x=d.getElementById(n);
return x;
}
>>この関数は、document.MM_pの中から、指定された名前のものを探すかと思っていたが、それで正しいのか? 
document.MM_pを変数として使用せずに、x=d.getElementById(n)によって処理していても問題なさそうだが、
そうすると、MM_preloadImages でdocument.MM_pをセットしている理由がわからなくなってしまうので、教えてほしい。


4つ目のfunction MMについては
>> a[i+2]は、img/navon_01.gifでなくて、1を指しているように思える。この関数function MM_swapImageの中でimg/navon_01.gifが使われている部分が見つからないが、
実際はどこかで使わないと機能が達成されないので、どこで使っているかを教えてほしい。

とかすごい細かなことを聞かれたのですが、こんなのってわかるかたいらっしゃいますか?
896Name_Not_Found:2008/07/19(土) 16:20:00 ID:???
>>894
おそらく君は別のところで>>894に関する何らかの質問をしたが
回答者側に質問の意図をきちんと伝えられなかったことから
逆質問を受けたのだと思うので
質問したところがネット上ならそのURLを提示して欲しい

また、仮にそうであるなら
回答者側は>>894の関数(Dreamweaverが吐く関数らしいね)を
君がつくった関数だと受け取ったために君にコードの意図を聞いていると思うので
それについて君(またはこのスレの人間)が詳細に答えても意味がないように思う

まあこれは推測なので外している可能性が大きくあるけれど
何にしても経緯を説明してもらえると双方にとってよいと思う
言いたくなければわかる範囲で(俺か誰かが)答えるかスルーするかだろう
897Name_Not_Found:2008/07/19(土) 16:38:24 ID:???
いや別に何も答えてもらわなくても俺的にはスルーだから(w
898Name_Not_Found:2008/07/19(土) 16:55:22 ID:???
スルーできなかった人が!
899894:2008/07/19(土) 17:57:16 ID:???
経緯といいますか、WORDでこのままの内容が送られてきて、調べてわかるのであれば調べてあげようかな・・・
と思っています。
900Name_Not_Found:2008/07/19(土) 18:10:35 ID:???
お前に答えられないんなら変な見栄を張らず
俺にはわからんと伝えるのが誠意だろ

調べるって質問することじゃねーだろ
901Name_Not_Found:2008/07/19(土) 18:28:23 ID:???








んだ







902Name_Not_Found:2008/07/19(土) 18:33:35 ID:???






ゆとりとスルーできない欠陥人間の集まりですか?w




903Name_Not_Found:2008/07/19(土) 18:37:50 ID:???
5.人を利用することしか頭にない ・・・甘え根性でその場を乗り切ろうとする。
904Name_Not_Found:2008/07/19(土) 18:49:18 ID:???
900越えたのでテンプレ論議あれば今どうぞ。
905Name_Not_Found:2008/07/19(土) 19:00:00 ID:???
道場訓復活 どうよ。
906Name_Not_Found:2008/07/19(土) 19:25:17 ID:???
907Name_Not_Found:2008/07/19(土) 19:34:34 ID:???
FAQ>>4のA10にcurrentStyleの言及が欲しい。こんな感じで

A10. 取得には document.defaultView.getComputedStyle() を使う必要あり。
 IEではelement.currentStyleを使う (elementは要素オブジェクト)
908Name_Not_Found:2008/07/19(土) 23:24:52 ID:???

このjavascriptコードをメインサイトのhtmlに貼り付けて、data.php
から返ってきた値を表示させたいのですがどうすればいいのでしょうか?
下記のようにして試してみたんですがうまくいきません。
ご教授よろしくお願いいたします。
<script language="JavaScript">
<!--
document.write ("<script type='text/javascript' src='data.php''></script>');
// -->
</script>


---------
data.php

<?php
echo 'document.write("Hello");'
?>
909Name_Not_Found:2008/07/20(日) 00:04:00 ID:???
>>908
PHP側で header('Content-Type: text/javascript'); とか
910Name_Not_Found:2008/07/20(日) 01:18:40 ID:???
>>909
ありがとうございます。文字が間違ってたみたいです。
それも、つけさせていただきました。
次は発展させ
<script language="JavaScript">
<!--
document.write ("<script type='text/javascript' src='data.php''></script>');
// -->
</script>
---------
data.php

<?php
$URL="document.write(\"<a href='{$URL}' target='_blank'><img src='http://〜.jpg' border='0' /></a>\");"';
echo $URL;
?>

こんな感じにURLを変数に入れてから処理しているんですがどうしてもうまくいきません。何が悪いんでしょうか?
data.phpをひらくとちゃんとdocument.write("<a href='{$URL}' target='_blank'><img src='http://〜.jpg' border='0' /></a>");
こう出るんですが、、エスケープの間違いなどでしょうか?
わかる方いましたらお願いします
911Name_Not_Found:2008/07/20(日) 02:49:47 ID:???
src='data.php''
912Name_Not_Found:2008/07/20(日) 03:11:27 ID:???
ちょっと手打ちだったので書き込むときに間違ったんですが、文法的には直してありました。
誤解させてすみません。
908のようにしたときはちゃんとhelloと表示されたのですが、PHPの以下の部分だけ変えると構文エラーで何も表示されなくなります。
いろいろ試したんですが何が間違っているのやら
<?php
$URL="document.write(\"<a href='{$URL}' target='_blank'><img src='http://〜.jpg' border='0' /></a>\");"';
echo $URL;
?>

別の方法でもいいのでPHPから返ってきた値を表示させる方法を教えてくださると助かります。
PHPには引数を与えて動的にいろんな値が返ってくるようにしたいと思っていますので、引数を与えられるようにお願いします
913Name_Not_Found:2008/07/20(日) 03:23:36 ID:???
PHPスレでやれ
914Name_Not_Found:2008/07/20(日) 03:24:33 ID:???
document.write ("<script type='text/javascript' src='data.php''></script>');
ここの部分にphpから返って来た値をそのまま置き換えるとちゃんと表示されます。
呼び出しがわるいんでしょうか、どうかお願いします
915Name_Not_Found:2008/07/20(日) 03:27:29 ID:???
javascript では " と ' は等価だけど php では違う
916Name_Not_Found:2008/07/20(日) 03:37:31 ID:???
>>914
>>911で間違いを指摘されてんだからちゃんと反映させろよ。
ついでに言えば「</script>');」ここも間違ってる。
教えてクレクレするだけなら帰れ。
917Name_Not_Found:2008/07/20(日) 08:09:58 ID:???
http://homepage3.nifty.com/aokura/jscript/jcode.html
これ読み込むと文字が正しくありませんってエラーが出るんだけどどうすればいいでしょうか
918Name_Not_Found:2008/07/20(日) 15:41:45 ID:???
ある文字列(var c)が英字1文字であることを判定するにはどうすればいいですか?
英字の大文字小文字は区別しません。よろしくお願いいたします。
919Name_Not_Found:2008/07/20(日) 16:05:20 ID:???
>>918
/^[A-Za-z]$/
920Name_Not_Found:2008/07/20(日) 16:49:05 ID:???
>>918
/^[a-z]$/i.test(c)
921Name_Not_Found:2008/07/20(日) 16:52:50 ID:???
>>918
どうもです。
922Name_Not_Found:2008/07/20(日) 18:29:03 ID:???
ワロタw
923Name_Not_Found:2008/07/20(日) 18:57:42 ID:???
>>922
沸点低いです。
924Name_Not_Found:2008/07/20(日) 19:12:00 ID:???
沸点って怒りの基準に使わない?
笑いの場合は別の、ほら、あれだよあれ、あれを使う。
925Name_Not_Found:2008/07/20(日) 19:41:15 ID:???
笑い袋の緒が切れた
926Name_Not_Found:2008/07/20(日) 19:56:04 ID:???
笑う過度にはピーポ来たる
927Name_Not_Found:2008/07/20(日) 19:59:00 ID:???
もお成田かの微笑
928918:2008/07/20(日) 21:00:02 ID:???
IE8だと918の方が早いもん ちくしょうちくしょう
(FF3では有意な差無し)
929Name_Not_Found:2008/07/20(日) 21:00:40 ID:???
919だった
これは921のせいだと言わざるを得ない
930Name_Not_Found:2008/07/20(日) 21:52:55 ID:???
お前は何をいっているんだ
931Name_Not_Found:2008/07/20(日) 23:03:26 ID:???
触らないほうがいいと思う
932Name_Not_Found:2008/07/20(日) 23:17:13 ID:???
var start = new Date,c="dog",kaisuu=400000;
for (var i = 0; i < kaisuu; i++) /^[A-Za-z]$/.test(c);
document.write(new Date - start+"<br>");

start = new Date;
for (var i = 0; i < kaisuu; i++) /^[a-z]$/i.test(c);
document.write(new Date - start);

とやるとIE7、8では5%程前者の方が早い
IEはignoreオプションが苦手という話
933Name_Not_Found:2008/07/20(日) 23:58:36 ID:???
js> 'ignore' in /-/
false
js> 'ignoreCase' in /-/
true
934Name_Not_Found:2008/07/21(月) 11:45:20 ID:???
マージでソートするって簡単に言うとどういうことですか?
調べてもさっぱりわかりません。
935Name_Not_Found:2008/07/21(月) 12:10:24 ID:???
マージソートでググるといいと思います!
936Name_Not_Found:2008/07/21(月) 17:38:03 ID:kjXBFRXb
FireFoxで動作しなくて困ってます。
<img onMousemove="alert();">

アドバイスお願いします。
937Name_Not_Found:2008/07/21(月) 18:11:47 ID:???
<img onmousemove="alert('');">
938Name_Not_Found:2008/07/21(月) 18:57:20 ID:???
エラーコンソールもFirebugも無しでどうやって開発しているのやら
939Name_Not_Found:2008/07/21(月) 18:59:28 ID:???
つーか、FireFoxの環境はIEに比べるとへぼすぎるだろ。
940Name_Not_Found:2008/07/21(月) 19:00:04 ID:???
>>936
XHTMLだと大文字小文字区別するんだっけか。
941Name_Not_Found:2008/07/21(月) 19:04:16 ID:???
>>939
逆になってるぞ
942Name_Not_Found:2008/07/21(月) 19:06:38 ID:???
>>941
む、マジで言ってるのか。
breakpointならVWDだし、DOMインスペクタならシェアだがWebDeveloperV2だし、メモリリーク検知ならM$純正のあるし。
943Name_Not_Found:2008/07/21(月) 20:48:28 ID:???
944Name_Not_Found:2008/07/21(月) 21:00:31 ID:???
>>943
「Internet Explorer Developer Toolbar」とかいう糞ツール使ってるからだろ。
945Name_Not_Found:2008/07/21(月) 21:10:46 ID:???
Visual Web Developer 2008 Express Editionも含めた上で比較してるように見えるが
そもそも VWD って IE と関係ないじゃんとか言ったら駄目ですか?
946Name_Not_Found:2008/07/21(月) 21:15:46 ID:???
外部アプリ使わないといけない時点で糞だな、めんどくさい。firefoxならアドオン入れれば単体で出来るし
947Name_Not_Found:2008/07/21(月) 21:19:51 ID:???
あの気持ちわるいやつをメインの開発環境するのがまず間違い
948Name_Not_Found:2008/07/21(月) 21:32:52 ID:???
>>943
そこ、IE8のJavaScriptデバッガに触れられてないね。
試したところ、Developer Toolbarのどうでもいい機能をそのままに、
breakpoint打てるようにして、watchとcallstack見れるようにして、
CSSプロパティ単位でON/OFF出来るようにしてある。
DOMツリー上をみながら、プロパティの書き換えがオンザフライで可能。
でも、まだUIがこなれてない感じ。
949Name_Not_Found:2008/07/21(月) 21:44:24 ID:???
Visual Web Developer 2008って2005と比べて、やたら重くないか。
自動補完機能用の辞書作成だとおもうが、いらねーって感じ。
950Name_Not_Found:2008/07/21(月) 21:56:36 ID:???
FireFoxでmousemove時にマウスの左ボタンが押されてるか知りたいです。
IEと同じようにevent.buttonみたけど、判断つかないようでした。><
951Name_Not_Found:2008/07/21(月) 22:09:22 ID:???
mousedownイベント発生時にevent.buttonが0ならフラグを立てて、みたいにすれば?
952Name_Not_Found:2008/07/21(月) 22:43:24 ID:???
>>951
画面全体でイベント拾わないといけなくなる?
ウィンドウの画面外までマウスを持って行って、mouseupするとイベント拾えないんじゃ
とか気になることが山積するような。
953Name_Not_Found:2008/07/22(火) 03:57:52 ID:???
>>950
何に使うの?
954Name_Not_Found:2008/07/22(火) 09:57:54 ID:???
955Name_Not_Found:2008/07/22(火) 10:00:20 ID:RMUJweds
あの、質問させてください。
結論だけでも大丈夫です。
タブブラウザやUserAgentSwitcherのようにUAを任意に変更できる
仕様をHTMLとJavaScriptのみを用いて作ることは可能ですか?
956Name_Not_Found:2008/07/22(火) 10:03:50 ID:???
できません
957Name_Not_Found:2008/07/22(火) 10:07:36 ID:RMUJweds
>>956
おおーありがとうございます
958Name_Not_Found:2008/07/22(火) 12:21:15 ID:spDCqlEz
>>245
var evt = document.createEvent("KeyboardEvent");
evt.initKeyEvent("keydown", true, true, null, false, false, false, false, "J".charCodeAt(0), 0);
document.dispatchEvent(evt);

ttp://developer.mozilla.org/en/docs/DOM:event.initKeyEvent
959Name_Not_Found:2008/07/22(火) 13:29:35 ID:???
新スレは975超えたら。テンプレ論議は全然できなかったね、
道場訓復活は今道場訓として入っているものをどうするかが
決まらないと難しいかも(道場訓が場所ふさぎだという意見が複数あり
今のようにしたんで)。
960Name_Not_Found:2008/07/22(火) 23:01:46 ID:???
>>958
keydownのような低レベルイベントにdispatchEventは基本的には向かない。
理由はデフォルト動作を持たないため。
でも、>>245を見る限り、デフォルト動作を期待するようなコードではなさそうだね。
961Name_Not_Found:2008/07/23(水) 14:28:32 ID:???
質問です。
function F(arg){
var obj=document.getElementById("test")
//---
}
のように関数内でオブジェクト宣言をした場合、この関数を呼び出
すたびに新しくオブジェクトが作られるのでしょうか。もしそうだ
とすると頻繁に関数を使ったばあには、メモリだらけになりませんか。
もっと効率的な書き方はあるのでしょうか。普段何気なく書いていた
のですが恐ろしくなりました。
962Name_Not_Found:2008/07/23(水) 15:26:15 ID:???
>>961
それは既にあるDOMオブジェクトの参照をobjという変数に代入してるから
新たにオブジェクトが作られてるわけではないよね。
それともvar objのことを言ってる?
963Name_Not_Found:2008/07/23(水) 15:29:42 ID:???
メモリだらけになったらうれしいとおもいます!
964Name_Not_Found:2008/07/23(水) 16:12:46 ID:???
質問です.

htmlソース
<body onLoad="set('disp(配列1,配列2)')">

jsファイル
function disp(配列1,配列2){
...
}

htmlからjavascriptの関数に配列を渡したいんですけど
「配列1」「配列2」の部分ってどのように書けばいいですか?
965Name_Not_Found:2008/07/23(水) 16:31:14 ID:???
hairetsu1 hairetsu2
966Name_Not_Found:2008/07/23(水) 16:36:28 ID:???
>>965
そのように書いても
javascriptで配列の中身を見たら「undefined」となってしまいます…
967Name_Not_Found:2008/07/23(水) 16:38:09 ID:???
undefinedになるソースうp
968Name_Not_Found:2008/07/23(水) 16:54:00 ID:???
javaでhtmlをはきだしています.

まず
sb.append("<SCRIPT Language=\"JavaScript\" SRC=\"popup.js\"> </SCRIPT>");
でjsファイルを読んで

次にデータベースの情報をscheduledate[]とschedule[]に順に入れていって
sb.append("<body onLoad=\"set(disp(\'" + scheduledate + "\',\'"+ schedule +"\'))\">");
でjavascriptの関数に渡しています.

jsファイル(popup.js)内は
function disp(scheduledate,schedule){
newWin = window.open("", "child", "width=450,height=400,scrollbars=yes");
newWin.document.open();
newWin.document.write("<HTML><HEAD><TITLE>title</TITLE></HEAD>");
newWin.document.write("<BODY>");
newWin.document.write(scheduledate[0]);
newWin.document.write(schedule[0]);
newWin.document.write("</BODY></HTML>");
newWin.document.close();
}
こんなかんじで
実行するとscheduledate[0]とschedule[0]がundefinedと表示されます.

969Name_Not_Found:2008/07/23(水) 17:06:12 ID:???
javaでとか関係ねーだろ
最終的に吐き出したhtml書けこのスットコドッコイ
970Name_Not_Found:2008/07/23(水) 17:13:52 ID:???
>>968
setっていう関数は何をやってくれるの?
javaからhtmlに変換されるときに何かに変換されるってこと?
>>964の状態だとjavascriptの中にset関数がいないとおかしいのだけど。
971Name_Not_Found:2008/07/23(水) 17:18:45 ID:???
最終的に吐き出したhtmlは
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html lang="ja">
<head>
<meta http-equiv="Content-Type" Content="text/html;charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>title</title>
</head>
<SCRIPT Language="JavaScript" SRC="popup.js"> </SCRIPT>
<body onLoad="set(disp('[Ljava.lang.String;@1fd5e2','[Ljava.lang.String;@12f9ee'))">
</body>
</html>



<HTML><HEAD><TITLE>title</TITLE></HEAD><BODY>undefinedundefined</BODY></HTML>

です.
972Name_Not_Found:2008/07/23(水) 17:23:15 ID:???
Java != JavaScript
973Name_Not_Found:2008/07/23(水) 17:26:03 ID:???
>>970
setはsetTimeoutの0秒バージョンだと思って使ってます.
974Name_Not_Found:2008/07/23(水) 17:35:31 ID:???
>>972
javaで配列を連結して文字列にする
↓わたす
javascriptで文字列を分解して配列にする

みたいな方法をとるしかないですかね・・・
975Name_Not_Found:2008/07/23(水) 17:42:17 ID:???
<body onLoad="disp([要素1, 要素2, 要素3], [要素a, 要素b, 要素c])">
みたいなコードをJavaで生成すればいいんでねーの
976Name_Not_Found:2008/07/23(水) 17:57:53 ID:???
<body onLoad="set(disp('[Ljava.lang.String;@1fd5e2','[Ljava.lang.String;@12f9ee'))">
これで上手くいく方がおかしいだろ…
977Name_Not_Found:2008/07/23(水) 18:26:50 ID:???
無名関数を使うと、
var a = b.replace(/パターン/, function(p0, p1){ return 処理結果; });
↑こういうことができると思うんですが、

dcument.write(function(){
var list = new Array('a', 'b', 'c', 'd', 'e');
var text = '';
while (list.length > 0) {
var r = Math.floor(Math.random() * list.length);
text += list[r];
list.splice(r, 1);
}
return text;
});
↑みたいなことは出来ないんでしょうか?
要は、一度しか使わない関数を定義せず(?)に出力できるかってことなんですが。
978Name_Not_Found:2008/07/23(水) 19:06:02 ID:???
document.write(function(){
var list = new Array('a', 'b', 'c', 'd', 'e');
var text = '';
while (list.length > 0) {
var r = Math.floor(Math.random() * list.length);
text += list[r];
list.splice(r, 1);
}
return text;
}());
979Name_Not_Found:2008/07/23(水) 19:48:54 ID:???
くだらない質問ですいませんが、
MACのサファリで作動のチェックはする物ですか?

クレームきちゃって・・・・Orz
980Name_Not_Found:2008/07/23(水) 20:00:07 ID:???
Safari1ならつっぱねろ
Safari2なら努力はしてみろ
Safari3で動かないのはお前が悪い可能性大
981Name_Not_Found:2008/07/23(水) 20:31:38 ID:???
便乗で聞いていい?
Mac 版 Safari と Win 版 Safari って結構違うもの?
982Name_Not_Found:2008/07/23(水) 21:05:32 ID:???
MACのIEじゃないんだから大して変わらないはず
983Name_Not_Found:2008/07/23(水) 21:25:24 ID:???
>>979
クレームを出した奴がマカーなら
少数民族は被害妄想で差別されていると感じるとギャーギャー騒ぎ出すので
気にするな

お前さんの雇用主や上司、取引相手からクレームがついたのなら
粛々と修正しろ
984977:2008/07/23(水) 22:32:48 ID:???
>>978
一瞬何が違うのかわからなかったですが、わかりました!
ありがとうございます!
985Name_Not_Found:2008/07/24(木) 08:11:48 ID:???
<div id="field">
  <div>テキスト1</div>
  <div>テキスト2</div>
  <div>テキスト3</div>
  <div>テキスト4</div>
  <div>テキスト5</div>
</div>

field内のdivタグ内のテキストがクリックされた場合に、
そのテキストのCSSを変更したいのですが、divタグ内にonclickをイベントを書く以外に方法はありますか?
js内で
onmouse = function()
でイベントを設定したいのですが、設定の仕方に困ってます
986Name_Not_Found:2008/07/24(木) 08:27:06 ID:???
>>985
this
987Name_Not_Found:2008/07/24(木) 08:27:14 ID:???
988Name_Not_Found:2008/07/24(木) 09:21:40 ID:???
アホ外人君を召喚するから待ってて
989Name_Not_Found:2008/07/24(木) 09:50:48 ID:???
お話中すいません。
o.toSource()がIEだとだめみたいなんですが
何か打開策ありますか?
990979:2008/07/24(木) 09:55:18 ID:???
>>980 >>983

ありがとうございます。
相手はマカなので、それなりの対応する事にします。

助かりました。
991Name_Not_Found:2008/07/24(木) 12:18:31 ID:???
992Name_Not_Found:2008/07/24(木) 12:26:51 ID:???
埋め
993Name_Not_Found:2008/07/24(木) 12:37:50 ID:???
994Name_Not_Found:2008/07/24(木) 12:44:50 ID:???
埋め
995Name_Not_Found:2008/07/24(木) 12:55:58 ID:???
996Name_Not_Found:2008/07/24(木) 13:08:08 ID:???
ume
997Name_Not_Found:2008/07/24(木) 13:09:07 ID:???
ume
998Name_Not_Found:2008/07/24(木) 13:31:32 ID:???
埋め
999Name_Not_Found:2008/07/24(木) 13:34:39 ID:???
999
1000Name_Not_Found:2008/07/24(木) 13:35:12 ID:???
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。