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

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

【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。
(以下は精選すべきとの議論あるが進んでいないので玉石混淆)
MetaGraphic Cell
http://www2u.biglobe.ne.jp/~oz-07ams/prog/
どら猫本舗のリファレンスカウンター
http://www.doraneko.org/
はぎさんちのページ Mozilla's DOM Sample Project
http://cgi.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/mds.cgi
一撃必殺javascript
http://www.openspc2.org/JavaScript/
【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!
Webサイト制作初心者用質問スレ Part 211
http://pc11.2ch.net/test/read.cgi/hp/1246347425/l50
CSS/DHTMLバグ辞典スレッド【第5版】
http://pc11.2ch.net/test/read.cgi/hp/1144494359/l50
役に立つ書籍は? 4冊目
http://pc11.2ch.net/test/read.cgi/hp/1172823674/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:2009/07/18(土) 19:16:57 ID:???
おわり
>>1-7
9Name_Not_Found:2009/07/19(日) 00:50:09 ID:HgmPgDOx
あげ
10Name_Not_Found:2009/07/19(日) 09:25:08 ID:???
「クッキーはセキュリティのため、発行したドメインに対してしか
読み取りできません」

って教科書に書いてあるのに、なんで、
XSSを使うと、アタッカーのサーバーにクッキー情報が
送信されてしまうの?
11Name_Not_Found:2009/07/19(日) 09:47:28 ID:???
そういうお勉強はそういうことの解説サイトでも読め。
JavaScriptを使う開発者は熟知していないといけないことだから頑張って。
12Name_Not_Found:2009/07/19(日) 12:34:36 ID:???
>>10-11
こーいう発言見てるとどこまで本気でどこから釣りなのか判断な難しいよね
13Name_Not_Found:2009/07/19(日) 13:12:38 ID:bKwQLBDx
>>10 は全スレのラストの人かね。
Post自体は、投げたい値をGETパラメータの形にして、
XmlHttpRequest.send(値)でOK。
14Name_Not_Found:2009/07/19(日) 13:29:08 ID:???
何言ってんだか
15Name_Not_Found:2009/07/19(日) 15:22:33 ID:bKwQLBDx
勘違いだったらすみません。
16Name_Not_Found:2009/07/19(日) 15:40:29 ID:???
他のドメインに送りたいんだからxmlhttprequestじゃ無理でしょう
17Name_Not_Found:2009/07/20(月) 00:38:45 ID:???
既存で複雑なJSを利用したサイトではIE8対策のために、EmulateIE7としている
と思います。
EmulateIE7時はJSエンジンもCSSもIE7相当で動作します。
http://blogs.msdn.com/jpwin/archive/2009/04/03/ie8-jscript.aspx
例えば、getElementByIdが大文字小文字区別するようになりましたが、
EmulateIE7を付けると、IE8で大文字小文字区別しません。(標準モードであっても)

しかしAJAXやDOM構造など変更しているため、無理が出ている場所があるのでは
ないかと考えています。
ここが怪しそう!とか思いつくものを上げられますか?
例えば、セキュリティ設定はEmulateIE7でもIE8の設定で動作せざるおえないため、
その辺で矛盾している箇所があったりしそうと思っています。
18Name_Not_Found:2009/07/20(月) 04:37:59 ID:???
「ABORT : これは画像の読み込みが中断されたときに発動します」

これって、どういうこと?
19Name_Not_Found:2009/07/20(月) 09:20:40 ID:???
>>13-16
GETでもPOSTでも他のドメインに「送ること」自体はできるのでは。
できないのは他のドメインから送られて来た内容にアクセスすること。
20Name_Not_Found:2009/07/20(月) 09:38:48 ID:???
>>19
他ドメインへのPOSTは画面変移なしという条件を満たせない
21Name_Not_Found:2009/07/20(月) 10:04:28 ID:???
ヒント: 204 No Response
22Name_Not_Found:2009/07/20(月) 10:15:50 ID:???
応答いじれるならcookieもiframeとlocation.hashでいける
23Name_Not_Found:2009/07/20(月) 11:59:05 ID:???
>>18
そのまんま
画像の読み込みが中断されたときに発動する
24Name_Not_Found:2009/07/20(月) 14:17:41 ID:???
>>20
そーいう嘘はいかんよ
25Name_Not_Found:2009/07/22(水) 00:37:09 ID:???
--------------------
//初期状態
[タブ1][タブ2]...
タブ1の内容

(リンク1)
(リンク2)
--------------------
//リンク1選択後
[タブ1][タブ2]...
リンク1に設定された外部ファイル
リンク1に設定されたタブ内容

(リンク1)
(リンク2)
--------------------

リンク1をクリックしたら、
 a.リンク1に設定された外部ファイルを読み込んで表示
 b.リンク1に設定された内容を表示(同じHTMLファイルに記述してある内容を表示)
この2つを実現したいと思っています。

aは、
http://www.dynamicdrive.com/dynamicindex17/ajaxtabscontent/
のDemo #2を見てできたのですが、bを実現することができません。

実現したいことをまとめると、「外部ファイルからの内容」と「内部ファイルの内容」を一つのタブに表示したい、ということです。
実現できそうなライブラリなどがあれば教えていただけないでしょうか?
26Name_Not_Found:2009/07/22(水) 00:43:18 ID:???
>>25
その説明では分からないな
言葉の意味してる対象が不明
27Name_Not_Found:2009/07/22(水) 01:05:37 ID:???
>>26
説明が足らず、すみません。

まず作りたいと思っているのは、画面遷移をしないタブメニューです。
通常であれば、[タブ1]や[タブ2]を選択して、タブに設定されたdisplay:blockなどを変更すると思います。
それを、<a>タグなどのリンクで変更したいと思っています。

さらに、リンク1を選択した時、
 ・リンク1に設定された外部ファイル
 ・HTMLに記述してある一部をdisplay:inline
を同時に実現したいと考えています。

外部ファイルは読み込みに多少時間がかかるため、内部ファイルに記述するのがは困難であり、
HTMLに記述してある内容は、textareaなどのフォームであるため、他のリンクを選択したときでも値を保持したいと思っています。
28Name_Not_Found:2009/07/22(水) 01:21:35 ID:???
>>27
さらに追記です。

タブは2つで固定と考えています。
また、これはかなり難しい気もするのですが、
リンク1を選択した時、
 ・タブ1に外部ファイルの内容+HTMLに記述してある一部をdisplay:inline → 表示
 ・タブ2に外部ファイルの内容+HTMLに記述してある一部をdisplay:inline → タブ2が選択されたときに表示
ということもできたら完璧です。
29Name_Not_Found:2009/07/22(水) 01:24:54 ID:???
ここは
(自らが組み立てた) Javascriptの (部分的に分からない事を) 質問するスレッドですよ。
30Name_Not_Found:2009/07/22(水) 01:35:53 ID:0B12FuM1
>>28
タブの切り替えと内容のロードは別物として考えた方がいいと思う。

>>27の「HTMLに記述してある一部」が何を指すのかが
いまいち分からないんだけど、

予め「HTMLに記述してある一部」にアクセスしておいて、
parentNode.removeChildするなりcloneNodeするなりして
キープしておいて、

リンクをクリック→/complete|loaded/.test(readyState)
→ロードした内容とキープしておいたノードを
 タブ内容ブロックにappendChild

っていう流れでどうでしょうかね。
31Name_Not_Found:2009/07/22(水) 02:09:56 ID:???
>>29
すみませんでした。
Javascriptに詳しい方が多いと思ったので、他のライブラリや機能変更なども教えていただけると思っていました…。

>>30
ありがとうございます。

>>HTMLに記述してある一部
これは、タブを選択した時に展開される、<div>タグなどで囲まれた内容のことを指しています。
ほとんどのタブ切り替えライブラリは、getElementByIdなどで、その内容をdisplay:inline/blockしていました。
説明が足りず、すみませんでした。

アドバイスは物凄く良く分かりました、ありがとうございます。
つまり、getElementByIdなどで内容を取得する→タブ内容にappendする…ということですね。
助言を元に、
http://www.dynamicdrive.com/dynamicindex17/ajaxtabscontent/
のライブラリをいじってみようと思ったのですが、知識が乏しいため、どこを変更すれば良いか分かりませんでした。
もう少し勉強してみようと思います。
32Name_Not_Found:2009/07/22(水) 02:37:40 ID:0B12FuM1
>>31
> >>HTMLに記述してある一部
> これは、タブを選択した時に展開される、<div>タグなどで囲まれた内容

あー。だったら>>30のは少し的外れでした。まず、タブ自体を、
<a href="#tab1">タブ1</a><a href="">タブ2</a>…

それに呼応するブロックを、
<div id="tab1">ブロック1</div><div id="tab2">ブロック2</div>…

タブ自体がクリックされたら、呼応するブロックをdisplay:block、
他のタブに呼応するブロックをdisplay:none、とする(HTMLは例です)。
ここで、ブロックの表示非表示は関数化しておく。

「リンクをクリックしてブロックの中身を書き換える」は、全く別機能として考える。

タブ2が表示されている時に、リンク1をクリックしたら、Ajaxしてリンク先のデータを取得し、
タブ1を表示(先述の関数を使うと便利)して、ブロック1の中身を取得したデータで書き換える。

ですかね。
たぶんタブ・ブロック・リンクをまとめてクラスにした方が簡単だけど。
33Name_Not_Found:2009/07/22(水) 02:53:06 ID:???
>>32
重ね重ねありがとうございます。

また説明不足でした…すみません。
タブの数と<div>タグで囲まれた内容の数は全く違っています。
タブの数は前に書いたとおり2つなのですが、<div>タグの数は30個以上あります。
できればその<div>全てをタブ化したいのですが、あまりに多いため、リンクからタブに内容を読み込もうと思っています。
 ・リンク1をクリックしたら、リンク1に設定された外部ファイルと<div>内容をタブ1に読み込む
 ・...
 ・リンク30をクリックしたら、リンク30に設定された外部ファイルと<div>内容をタブ1に読み込む
という様な感じで考えていました。
34Nanashi:2009/07/22(水) 03:33:39 ID:???
それって>>30で書いたのじゃだめかな?
35Name_Not_Found:2009/07/22(水) 04:01:02 ID:???
>>34
>>30で書いたのでいけそうですね。
色々調べて実現したいと思います。
ありがとうございました。
36Name_Not_Found:2009/07/22(水) 17:36:18 ID:???
【質問内容】
関数に送った単語と同じ名前の配列内から単語を取り出したいのですが、何か方法はありませんか?

下記のように配列を準備しています。

CE = new Array();
CE[0] = new Array(りんご,赤い,つるつる);
CE[1] = new Array(ぱいなっぷる,黄色い,とげとげ);

VE = new Array();
VE[0] = new Array(はちみつ,茶色,ぬるぬる);
VE[1] = new Array(砂糖,白い,こな);

この配列を利用し、関数に送った文字列で配列から取得する方法はないでしょうか?

function toridasi(rule, i){
var chk = "" ;
chk = rule[1][i] ; // ← ここで、送られてきた文字列での配列から検索したい
return(chk);
}

//↓本処理
var rule = "VE";
var i = 0 ;

kekka = toridasi(rule, i) ;

if (kekka == "ぱいなっぷる") {
document.write("YES");
}
>>36
37Name_Not_Found:2009/07/22(水) 18:10:57 ID:???
文字列"VE"で変数VEにアクセスしたいってこと?
eval("VE");とか、グローバル変数ならwindow["VE"]でできるけと根本的にお勧めできない

var E = {};
E["CE"] = CE;
E["VE"] = VE;
alert(E["VE"][0][1]); // はちみつ
38Name_Not_Found:2009/07/22(水) 18:22:11 ID:???
switch 文でもよさげだけど、砂糖って粉かな?
39Name_Not_Found:2009/07/22(水) 18:50:25 ID:???
>>37
ありがとうございます。
言葉足らずですいませんでした。

E["VE"] = VE; とすると、VEの配列内を取得できました。
そのような方法でも取得できるのだということがわかりました。

ですが、
kekka = toridasi(rule, i) ;
のruleに入る文字列はその遣い所で変化します。
VEだったりCEだったりします。

ですのでレスの内容ですと、最終的に E["rule"][0][0] とし、その上で配列から文字を取得したいのです。
汎用的に、配列と同じ名前の文字列を関数に送り、その文字列と同じ配列から文字列を取得したいのです。
40Name_Not_Found:2009/07/22(水) 18:51:39 ID:???
>>39
E[rule][0][0]
41Name_Not_Found:2009/07/22(水) 18:56:43 ID:???
>>39
つ JavaScript rule
42Name_Not_Found:2009/07/22(水) 18:59:41 ID:???
>>40,37
ありがとうございます!
できました!

>>41
検索してもよくわかりませんでした。
ruleは使うのは望ましくないということですか?
他のに変えておきます。
ありがとうございます。
43Name_Not_Found:2009/07/22(水) 21:51:37 ID:???
<form>
<input type="submit" name="submit" />
</form>

のform.submit()を実行する方法ってある?
44Name_Not_Found:2009/07/22(水) 21:57:38 ID:???
ある
45Name_Not_Found:2009/07/22(水) 22:24:14 ID:???
こう?
document.form.constructor.prototype.submit.call(document.form)
46Name_Not_Found:2009/07/22(水) 22:52:48 ID:???
document.getElementsByTagName("form")[0].submit
47Name_Not_Found:2009/07/23(木) 01:31:12 ID:???
document.forms[0].submit()
48Name_Not_Found:2009/07/23(木) 06:43:57 ID:???
>>46-47の方法だと、<input>にアクセスするから無理
49Name_Not_Found:2009/07/23(木) 07:16:41 ID:???
name 属性の値を "submit" にしてるからだな。
submitボタンの click()メソッドならいけたかな。
50Name_Not_Found:2009/07/23(木) 07:19:45 ID:???
nameにヘンなものをつける奴が糞
51Name_Not_Found:2009/07/23(木) 07:29:43 ID:???
Infoseekメールでも name 属性に "submit" 使ってるし。
元々あの糞重さからして、やる気ないんだろうけど。
52Name_Not_Found:2009/07/23(木) 08:08:47 ID:???
type="submit"のvalueを送りたくないってことなのか?
それならname属性削除してsubmitしたらいいじゃん
〜.removeAttribute("name")
53Name_Not_Found:2009/07/23(木) 13:04:25 ID:???
javascriptも、ちゃんと動くようになるとおもしろいよね。
54Name_Not_Found:2009/07/23(木) 13:12:01 ID:???
<SCRIPT type="text/javascript">
<!--

window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");
window.open("","","width=300,height=200");



//-->
</SCRIPT>


いま、練習用にちょっと書いてみたコードなんだけど、
これをforループで書き直すと、どうなる?
55Name_Not_Found:2009/07/23(木) 13:14:57 ID:???
<SCRIPT type="text/javascript">
<!--
for(i=1;i<=25;i++){
window.open("","","width=300,height=200");
}


//-->
</SCRIPT>

でけた。
実行すると、非常にウザイことになる。
56Name_Not_Found:2009/07/23(木) 14:05:24 ID:???
>>55
見ただけでウザさがわかるだろ
57Name_Not_Found:2009/07/23(木) 14:09:55 ID:???
<SCRIPT type="text/javascript">
<!--
for(i=1;i<=25;i++){
window.open("","","width=i*2,height=i*2");
}


//-->
</SCRIPT>


これを実行すると、
大きなウインドウになってしまうのですが、
なぜですか?
58Name_Not_Found:2009/07/23(木) 14:20:46 ID:???
> 一、ユーザに迷惑となるスクリプトを書かない者
実験とはいえ、別の例なら答えるよ
59Name_Not_Found:2009/07/23(木) 14:30:09 ID:???
<BODY>
<div
onMouseOver="this.style.fontSize='70px'"
onMouseOut="this.style.fontSize='1px'"

>
aaaaa

</div>
</BODY>

おもろいスクリプトができた
60Name_Not_Found:2009/07/23(木) 14:30:53 ID:???
専用ブラウザの機能とかで、
ウザイやつの書き込みを1pxにする
機能とかって思いついたんだけど、どないだ?
61Name_Not_Found:2009/07/23(木) 14:50:47 ID:???
>>60
どの専用ブラウザで使えるのか、また、どのようにウザイレスを判定させているのか書かない事には。
62Name_Not_Found:2009/07/23(木) 14:54:15 ID:???
>>61
V2C

たくさんの人から
「ウザイ」認定されると、その
情報がXMLとかで伝わってきて、
自動で反映される。
63Name_Not_Found:2009/07/23(木) 15:08:42 ID:???
>>62
V2C便利だな・・・

1pxだけじゃなくて派生も産まれそうだから公開してもよいかもしれない。
64Name_Not_Found:2009/07/24(金) 13:44:49 ID:???
誘導されてきました。
javascriptのマウスオーバーについてです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>----</title>
<link rel="stylesheet" type="text/css" href="---.css" />
<script type="text/javascript">
<!--
function naka(){
document.test.src="neko2.jpg";
}
function soto(){
document.test.src="neko.jpg";
{
// -->
</script>

<div>
<img src="neko.jpg" name="test" alt="pic"
onMouseOver="soto()"
onMouseOut="naka()">
</div>


下のbodyの文が違うようで、形式チェックに通りません。
どう改変したらいいのでしょうか?
根本的に間違ってますか?初歩ですいません
65Name_Not_Found:2009/07/24(金) 14:17:08 ID:???
なんで XPathResult に __iterator__ 実装されてないの・・・
66Name_Not_Found:2009/07/24(金) 14:24:17 ID:yRksX0HW
>>64
body文と形式チェックが何を指すのかはさておき。
ただ直すだけなら、こう。

function naka(element){ element.src = "neko2.jpg" };
function soto(element){ element.src = "neko.jpg" };

<img src="neko.jpg" id="test" alt="pic" onmouseover="naka(this)" onmouseout="soto(this)">


neko2.jpgをキャッシュしておくなら、コレを追加。
var neko2 = document.createEleme(img);
neko2.src = "neko2.jpg";

始めたばっかりっぽいけど、いろいろがんばれ。
6766:2009/07/24(金) 14:30:21 ID:yRksX0HW
>>64
書き忘れたw

このままだと、idがあまり意味ない。idを活かすなら

var neko2 = document.createElement("img");
neko2.src = "neko2.src";
window.onload = function(){
    var img = document.getElementById("test");
    var p_src = img.src;
    test.onmouseover = function(){ img.src = neko2.src; };
    test.onmouseout = function(){ img.src = p_src; };
}

で、ここからさらに、これを一般化してみたりとか、addEventListenerとattachEventを使ってみたりとか、
いろいろ夢がひろがりんぐ。
6867=66:2009/07/24(金) 14:32:12 ID:yRksX0HW
>>64
書きまちがえたw

このままだと、idがあまり意味ない。idを活かすなら

var neko2 = document.createElement("img");
neko2.src = "neko2.src";
window.onload = function(){
����var img = document.getElementById("test");
����var p_src = img.src;
����img.onmouseover = function(){ this.src = neko2.src; };
����img.onmouseout = function(){ this.src = p_src; };
}
69Name_Not_Found:2009/07/24(金) 14:33:28 ID:???
>>64
どこから誘導されたのか知らないけど、(x)htmlの質問にしか見えない
70Name_Not_Found:2009/07/24(金) 14:45:23 ID:yRksX0HW
>>69
夏休みの宿題かと思った。
71Name_Not_Found:2009/07/24(金) 17:33:28 ID:CwgWMJEK
安易な気持ちでIE8をインストールしたら、自分のHTMLファイルがぜんぶ
大崩れになってます。どこが責任とってくれますか?JavaScriptも変な
感じでうまく動きません。
72Name_Not_Found:2009/07/24(金) 18:02:51 ID:???
>>71
安易な気持ちで入れた自分で責任を取るべきなのと、スレ違い
73Name_Not_Found:2009/07/24(金) 18:06:21 ID:???
安易な気持ちで・・セキニン・・><
7471:2009/07/24(金) 18:23:52 ID:CwgWMJEK
安易な気持ちというのは、更新の準備ができましたって言われてついその
気になってしまったからです。IE5のものをちゃんとフォローして正常に
表示してくれるのがベンダーの責任ではないのでしょうか。これでは、と
てもJavaScriptにクロスなんかできません。IE6を再インスコできるので
しょうか。
75Name_Not_Found:2009/07/24(金) 18:33:15 ID:???
>>74
今までのIEの表示がおかしかったのです。

また、javascriptに限りませんが、IE6,7,8では挙動が変わります。
かなり有名な話なので「知らなかった」では仕事だとしたら通りません。
また私事での事でしたら情報不足です。

あと、あなたはこれから安易に責任という言葉を使わないようにしたほうがいいでしょう。
自己責任という言葉を噛みしめてください。

#親切心で付け加えると、互換モードがあります。
#情報を集めてください。 そうすれば理解できます。
76Name_Not_Found:2009/07/24(金) 18:35:19 ID:???
>>74
>フォローして
フォローされてる。
>>75の言うとおり自分で調べてこい。

これは煽りではない。
繰り返す。これは煽りではない。
77Name_Not_Found:2009/07/24(金) 19:38:08 ID:???
78Name_Not_Found:2009/07/24(金) 22:08:32 ID:???
これがゆとりのへいが(ry
79Name_Not_Found:2009/07/24(金) 22:42:27 ID:???
ガチクレイマーw
80Name_Not_Found:2009/07/25(土) 01:23:30 ID:???
>>70
質問者はHTML/CSSから誘導されてここにきた学生だよ
お察しのとおり課題らしい
81Name_Not_Found:2009/07/25(土) 01:25:18 ID:???
 一.正しい(validな)HTMLとは何か知っており書ける者
8280:2009/07/25(土) 01:34:54 ID:O2EE4vTk
>>80
> >>70
> 質問者はHTML/CSSから誘導されてここにきた学生だよ

何も知らないのにフレームワークに手を出してここに来る
輩に、個人的に飽きていたので、なんかはしゃいでいっぱい書いちゃった。

さらに当事者が現れないのが恥の上塗り。
8370:2009/07/25(土) 01:37:00 ID:O2EE4vTk
名前間違えた。>>70です。
84Name_Not_Found:2009/07/25(土) 02:52:44 ID:???
>>64 は XHTML で書いてるから script タグの指定方法が違うとか、
img タグの書き方が違うとか、結局そんなことなんじゃね、まさか。
85Name_Not_Found:2009/07/25(土) 03:08:28 ID:7UvtytO+
いずれにせよ、今年の夏休み第1号っぽいし、生暖かく
見守りたいです、俺は。
86Name_Not_Found:2009/07/25(土) 03:11:30 ID:7UvtytO+
>>84
> >>64 は XHTML で書いてる

よく見たらstrictなんだね(・∀・)
87Name_Not_Found:2009/07/25(土) 03:16:47 ID:???
ギリギリ派だった俺には、夏休みの宿題に早々と取り組む態度は見習うべきかもしれん。
88Name_Not_Found:2009/07/25(土) 04:26:34 ID:???
能力しだいでは今はじめるのが既にギリギリ
89Name_Not_Found:2009/07/25(土) 10:39:00 ID:???
日本の教育はまず最初に、自分で調べる方法を教えるべきだと思うんだ。
理解できてないことを復習しなきゃならん奴が
自分で「適切に」調べることを知らないから、人に聞くなどという愚を犯す。
90Name_Not_Found:2009/07/25(土) 12:27:09 ID:???
まさにそれが教えるべきことを3割削減して子供から考える力を
奪ってしまった「ゆとり教育」そのもの。
91Name_Not_Found:2009/07/25(土) 12:53:15 ID:???
それやっちゃうと情弱を誘導できなくなって支配構造が崩れない?
4年前の郵政選挙も今回の民主ブームも意図して作り出されたものでしょ。
92Name_Not_Found:2009/07/25(土) 13:14:29 ID:???
(キリッ
93Name_Not_Found:2009/07/25(土) 13:31:20 ID:???
はいはいスレチスレチ。

javascriptの話以外はそれ以上盛り上がらないように。
94Name_Not_Found:2009/07/25(土) 15:41:56 ID:???
夏だねえ…
95Name_Not_Found:2009/07/25(土) 17:08:53 ID:IydX7OFj
質問です。alertというのはOS系メソッドですよね。だとするとどう
して記述のとき、windowオブジェクト配下なのでしょうか。alertの
テキストスペースにアペンドできるのも不思議でなりません。何か
設計上混乱しているのではないでしょうか。
96Name_Not_Found:2009/07/25(土) 17:20:20 ID:???
>alertというのはOS系メソッド
alertウィンドウを表示させるwindow系メソッド
97Name_Not_Found:2009/07/25(土) 17:37:54 ID:???
混乱しているのはあなたではないでしょうか。
98Name_Not_Found:2009/07/25(土) 17:42:57 ID:???
class属性にnumを含めると+-で 数字をインクリメント(デクリメント)する機能を作成しています。
この動作で通常の入力のようにchangeイベントを発生させることはできないのでしょうか?

<html>
<head>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script>
$(function(){
function changeValue(val, inc){
if(/(-|\+)?\d+/.test(val)){
val = parseInt(val);
val+=inc;
}
return val;
}
$("input.num").live("keypress",function(evt){
var c=evt.charCode;
switch(c){
case 43: this.value=changeValue(this.value,1); return false;
case 45: this.value=changeValue(this.value,-1); return false;
}
}).live("change",function(){
alert(this.value);//test用
});
});
</script>
<body>
<ul>
<li><input type="text" class="num" /></li><li><input type="text" class="num" /></li><li><input type="text" class="num" /></li></ul>
</body>
</html>
99Name_Not_Found:2009/07/25(土) 18:19:57 ID:???
jquery使うほどの物じゃない
100Name_Not_Found:2009/07/25(土) 18:24:21 ID:???
>>98
そのままでは発生しない
jQueryにイベントをfireする関数があったような
101Name_Not_Found:2009/07/25(土) 19:16:09 ID:???
>>100
んと、発生自体は、$(this).change()で起こせるのすが、
+-以外の入力があるときは、普通に発生しますので
+-だけでいじったときにだけblurのタイミングで発生させることになると思います。
それを実装する方法がぴんとこなくて聞いたしだいです。
102Name_Not_Found:2009/07/25(土) 19:31:00 ID:???
>>101
case 43: this.value=changeValue(this.value,1); return false;
case 45: this.value=changeValue(this.value,-1); return false;
よくわからんけどここに書いたらあかんの?
103Name_Not_Found:2009/07/25(土) 19:49:39 ID:???
>>102
press に 書くと +-を押す度に発生してしまうからです。
普通に編集した場合と同じように、
フォーカスを失なったときに change を発生させたいのです。

classに .num を 追加するだけで上記機能が得られ、
他のイベントも問題無く発生するように作成したいです。
104Name_Not_Found:2009/07/25(土) 19:51:21 ID:???
>>103
なるほど、それならフラグ立てて、フォーカス失った時にフラグ倒しつつfire
105Name_Not_Found:2009/07/25(土) 19:53:47 ID:???
ん・・・?すまんたぶん変なこと言ってるw

setTimeoutで1秒後とかにfireさせればいいのかな
もちろん重複しないよう、setTimeoutするときに前回のtimeridはキャンセルしとく
106Name_Not_Found:2009/07/25(土) 20:07:24 ID:???
focus でキャッシュ、blur で同一チェック・発火
107Name_Not_Found:2009/07/25(土) 22:58:00 ID:???
ありがとうございました
以下で意図通りになりました

var callChange,src;
$("input.num").live("keypress",function(evt){
var c=evt.charCode;
switch(c){
case 43: this.value=changeValue(this.value,1); return false;
case 45: this.value=changeValue(this.value,-1); return false;
if(callChange) callChange=false;
}
}).live("change",function(){
alert(this.value);
}).focus(function(){
src = this.value;
callChange = true;
}).blur(function(){
if(callChange && (src!=this.value)){
$(this).change();
}
});
108Name_Not_Found:2009/07/26(日) 01:21:38 ID:Bt8nhPkz
ttp://www.made-in-mode.net/products/detail.php?product_id=286

このサイトにあるような、画像の一部分を拡大表示させるのって
どのようにすればよいのでしょうか?
何かAjaxとかですかね…
109Name_Not_Found:2009/07/26(日) 01:37:39 ID:???
拡大版画像は元から用意してる気がする
たぶんしてることは、大きい画像からマウスの部分の切り出しだけ
画像表示用の枠を用意しておいて、切り出し元の画像の座標をいじるだけじゃないか?
110Name_Not_Found:2009/07/26(日) 12:54:51 ID:GOjyU0kF
javascriptで用意されている関数を使う場合にどういう時に
try〜catchをつけるのかが分かりません。
javaではメソッドに対してどういう、例外が起こるのかが
記載されているが、javascriptの関数には例外がどういう場合に
起こるのかが記載されていません。javascriptで用意されている関数はどういう
基準でtry〜catchをつけるんでしょうか?
111Name_Not_Found:2009/07/26(日) 13:24:35 ID:???
処理が止まりそうな時
普通はつけない、つけなきゃ困ると言えるときにつける
112Name_Not_Found:2009/07/26(日) 13:32:46 ID:???
XMLHttpRequestなオブジェクトを作るときに使うな。
  var req = null;
    try{
      req = new XMLHttpRequest();
    }catch(e){
      try{
        req = new ActiveXObject("Msxml2.XMLHTTP");
      }catch(e){
        try{
          req = new ActiveXObject("Microsoft.XMLHTTP");
        }catch(e){
        }
      }
    }
  }
113Name_Not_Found:2009/07/26(日) 15:56:35 ID:???
Iteratorで使う
function g() {
 for(var i = 0; i < 3; i++)
  yield i;
}

var it = g();
try {
 while(true)
 alert(g.next());
} catch(e if e instanceof StopIteration) {
alert('end');
}
114Name_Not_Found:2009/07/26(日) 16:34:00 ID:???
yield…
115Name_Not_Found:2009/07/26(日) 16:36:14 ID:???
2.0厨がくるぞ
116Name_Not_Found:2009/07/26(日) 17:50:15 ID:???
>>110
日用品を揃えに買い物に出かけるとするじゃない?(関数呼び出し)
途中、道端に落ちてるう○こを拾って食べるんだけど(関数内定型処理)、
普段平気なのに、そのときの体調によってはお腹を壊すかもしれないでしょ?(例外発生)
こんなとき、うんこを食べる直前に try をかけておけば、ダッシュでトイレに駆け込めるの(catch)。
ここで外出前にも try をかけてあれば、汚れたパンツを着替える為に家に帰ることも出来るわ(throw)。
最後に finally を用意しておけば、仮に家に帰ることになってもコンビニで万引きはしていけるの。
また、お腹を壊さなくても、財布を忘れたことに気付いたときに家に帰っても良いわ(throw)。

こんな説明で分かって頂けるかしら。
117Name_Not_Found:2009/07/26(日) 18:23:42 ID:???
function 買い物() {
 try {
  家を出る();
  try {
   う○こを食べる();
   if(お腹壊した)
    throw new お腹壊した();
   買い物をする();
   if(財布忘れた)
    throw new 財布忘れた();
  } catch (e if e instanceof お腹壊した) {
   トイレに駆け込む();
  }
 } catch(e if e instanceof 財布忘れた) {
 } finally {
  家に帰る();
 }
}
118Name_Not_Found:2009/07/26(日) 23:47:34 ID:GOjyU0kF
110です。皆様回答ありがとうございます。
なんとなく基準がわかりました。
基準は、処理が止まりそうな時ですね。
こういう場合が考えられるじゃん的な時につける。
119Name_Not_Found:2009/07/26(日) 23:53:29 ID:???
実行してエラーが出るとき。
ただし、たいがいメソッドがないとか、nullに対してメソッドを呼び出そうとしたとか、
メソッドの引数があり得ない型のものを入れたときぐらいで、
事前にチェックすればほとんど回避できる。

実際使うのは一部のブラウザ依存コードを書くときぐらいかな。
上記のXMLHttpRequest以外だとこんなのとか。

var input = null;
try{
input = document.createElement('<input type="checkbox" name="check1">');
} catch(e){
input = document.createElement('input');
input.setAttribute('type', 'checkbox');
input.setAttribute('name', 'check1');
}

あとは、自作メソッドでnew Error()を投げてその捕捉用とか。
120Name_Not_Found:2009/07/27(月) 00:12:19 ID:???
そういえばDOMだと例外を投げる属性だのメソッドだのは多かったな。
121Name_Not_Found:2009/07/27(月) 02:57:28 ID:???
検証はIE8にて
以下のコードにて関数内のthisが常にwindowを指している気がするのですが勘違いでしょうか
<html><head>
<script type="text/javascript">
window.onload = function() {
var ts = document.getElementsByTagName('span');
for(var i = 0, l = ts.length; i < l; ++i) {
(function(n) {
ts[n].attachEvent('onclick', function(e) {
alert(this); //IEだと[Object Window] Firefoxだと[Object HTMLSpanElement]
this.close(); //IEだとウィンドウが閉じられる Firefoxだとエラー
});
})(i);
}
}
</script>
</head>
<body>
<span>あ</span><span>い</span><span>う</span><span>え</span><span>お</span>
</body></html>
FirefoxではaddEventListenerに変えてください
IEって元々こんな仕様でしたっけ?
122121:2009/07/27(月) 02:59:08 ID:fOplKBoa
ごめんなさい sage外し忘れてました
123Name_Not_Found:2009/07/27(月) 03:31:53 ID:GOsWrdK9
イベントターゲットとなるオブジェクトが別途わたされいるよ。
thisがグロスコなのはJScriptだから。
124Name_Not_Found:2009/07/27(月) 03:36:22 ID:GOsWrdK9
途中で送信しちゃった。
attacheventに渡した関数の中で
argumentsの中身を確認してみ。
125Name_Not_Found:2009/07/27(月) 09:07:24 ID:PUM6N5J4
Firefoxで、その要素がswfかどうかを判別するには、
objectやembedの属性に書かれている値で判断するしかないかな?
126Name_Not_Found:2009/07/27(月) 14:53:23 ID:???
目視。
127Name_Not_Found:2009/07/27(月) 15:01:16 ID:???
Firefoxなら俺も目視だわw
128Name_Not_Found:2009/07/27(月) 16:30:45 ID:VhD30XeU
popupblockがかかっているブラウザで、自分の作ったwindow.open(....)の
リンクを例外化してポップアップさせる方法はありますか。何かおまじない
のような設定があるのでしょうか?よろしくお願いします。
129Name_Not_Found:2009/07/27(月) 17:17:12 ID:tdsia8Z3
質問です。

///////////////////////////ここから
var hoge = {
foo: function(){
alert("foo!");
}
///////////////////////////ここまで

上記「ここから」〜「ここまで」に全く手を加えずに、
hoge.foo()を実行した際
alert("foo!")の処理の後に別の処理が走るように追加したいのですが
どのように書けばよいのでしょうか?
130129:2009/07/27(月) 17:27:51 ID:???
要jQueryの書き方でも大丈夫です。
131Name_Not_Found:2009/07/27(月) 17:43:18 ID:PUM6N5J4
var _foo = hoge.foo;
hoge.foo = function(){
    _foo();
    alert("ちょっとは考えろよ");
}
132Name_Not_Found:2009/07/27(月) 17:46:36 ID:???
すみませんどこで質問すればよいかわからなかったので・・・。

A.html, B.html, C.htmlの3つのページがあって、
それぞれのページに同じナビゲーション部(N.html)を表示したいのです。

A.html, B.html, C.htmlのそれぞれから、
SSIの<!--#exec cgi...を使って、N.htmlを読み込む(cgiはperl使用)のと、
AjaxでN.htmlを読み込むのとでは、どちらが実行速度が速い(ユーザーに不快感を与えない)
のでしょうか?

実際は、htmlは、ABCの3つでなく40ページほどあり、それぞれがN.htmlを読み込んでいます。
また、ナビゲーション部だけでなく、ヘッダーフッターあたりも共通化したいのです。

よろしくお願いします。
133Name_Not_Found:2009/07/27(月) 17:47:37 ID:???
サーバーサイドで出来るならそれがいい
134132:2009/07/27(月) 18:24:48 ID:???
>>133
ありがとうございます
Ajaxより軽いですよね・・?なんとなく体感で
135Name_Not_Found:2009/07/27(月) 18:39:25 ID:PUM6N5J4
>>134
体感速度は圧倒的じゃないか?
Ajaxするってことは、自前でDOMにぶら下げなきゃならない、
つまり、本体のDOMContentLoadedを待たなきゃならないわけだから。

軽い(とユーザが感じる)かどうかはモジュール部のプログラム次第。
本体部分のロード時間に対して、十分に短い時間の処理で済むのなら、
サーバ側で処理してしまった方がいい。

けど、本体ロードが重いと感じるほど処理時間がかかるのなら、
先に本体をロードして、モジュール部は非同期通信して後からぶら下げた方が
ユーザフレンドリーだろうし。
136Name_Not_Found:2009/07/27(月) 19:03:55 ID:???
なんで#includeではなく#exec?
137121:2009/07/27(月) 19:06:15 ID:fOplKBoa
>123-124
どうもありがとうございました
で ちょっと別のコード書いてみました
(window.Tags = function(){this.initialize.apply(this, arguments)}).prototype = {
initialize: function() {
alert("in initialize");
alert(window == this); //false
test(); //true
var span = document.getElementsByTagName('span');
for(var i = 0; i < span.length; i++) {
(function(n) {
span[n].attachEvent("onclick", function() {
alert("in onclick function");
alert(window == this); //true
});
})(i);
}
}
};
function test() {
alert("in test function");
alert(window == this);
}
window.onload = function() {
new Tags();
}
どうやら常にthisがwindowを指してるわけじゃないみたいですね
なまじメソッド内だとちゃんとJavaScriptと同じ動作するので今まで気づかなかったです
138Name_Not_Found:2009/07/27(月) 19:23:40 ID:???
>>136
includeでもできました
知らなかったありがとうございます
139Name_Not_Found:2009/07/27(月) 19:24:48 ID:???
>>137
単にthisについて分かってないだけじゃないか?

callやapplyなどで明示的に指定されたときを除いてobj.method()の形でコールされればthis == obj
コールバックなどで関数が直接呼ばれるとthisはグローバルオブジェクトになる
というのがJavaScriptの仕様
140Name_Not_Found:2009/07/27(月) 19:26:36 ID:PUM6N5J4
>>137
>>123はちょっと間違ってたごめん。

element.attachEvent("イベントタイプ",function(){ /* やりたい事 */ });

第二引数の関数でのelement(イベントターゲット)への参照はevent.srcElementです。
いつも自前の関数でaddEventListenerと統合しちゃってるから勘違いした。
ごめんなさいごめんなさい。
141Name_Not_Found:2009/07/27(月) 19:28:03 ID:PUM6N5J4
>>139
たぶん、addEventListenerだと

element.addEventListener("click",function(){ alert(this); });

で、elementが参照できるから、その辺で混乱したのだと思う。
142Name_Not_Found:2009/07/27(月) 19:34:58 ID:???
>>141
そのへん盛り込もうとしたのに盛り込めてなかった・・・

callなどで呼び出し側が気を利かせた場合を除いて
143Name_Not_Found:2009/07/27(月) 19:42:23 ID:PUM6N5J4
>>142
自分も普段は
element.addEventListener("click",function(){ alert(element); });

ってお気軽に書いてて、>>123で適当な事書いてしまったので…
144Name_Not_Found:2009/07/27(月) 21:48:05 ID:PUM6N5J4
有名な話かもしれないけど、はまったんで書いてみる。

IEでURLのスキームがhttpsなページで、背景画像が貼ってある
要素をremoveChildすると、セキュリティの警告が出る。

var div = document.createElement("div");
div.style.backgroundImage = "url(foo/var/etc.jpg)";
document.body.appendChild(div);
div.parentNode.removeChild(div); // ←ここで警告が出る

対処法はremoveChildしないで

div.outerHTML = "";


わかんねーよそんなの…
http://support.microsoft.com/kb/925014/ja
145129:2009/07/28(火) 02:53:05 ID:???
>>131
遅くなりましたが、有難うございました。
alertwww
146Name_Not_Found:2009/07/28(火) 23:32:52 ID:???
Ajaxって、どうやってサーバーに
データーを送信してるの?
147Name_Not_Found:2009/07/28(火) 23:42:29 ID:???
req.open("POST","example.php",false);
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
req.send("example="+encodeURIComponent("ググれカス"));
148Name_Not_Found:2009/07/29(水) 15:35:17 ID:???
「要素が何のイベントハンドラを持っているか」という情報って取得する方法ありますか?

やりたいことは、
1.divにdblclickが設定されている
2.そのdivの中にspanがあり、clickが設定されている
3.spanをclickする速度を上げるとdivのdblclickが反応してしまう

この3番目を反応しないようにしたいのです。
stopPropagationを考えたのですけど、dblclickでイベントが発生しているspanのclickでstopPropagationを実行しても意味がなく。

eventのtargetでイベント発生要素を確認し、その要素がclickイベントを処理する要素ならdblclickを処理しない
ということができないかなと考えてます。

良い方法ないですかね?
149Name_Not_Found:2009/07/29(水) 16:44:45 ID:woN9Mic2
>>148
typeof element.ondblclick == "function"
typeof element.onclick == "function"

とかで条件分岐は駄目かね?
150Name_Not_Found:2009/07/29(水) 17:14:21 ID:???
ちったあ確認して書けよ
151Name_Not_Found:2009/07/29(水) 17:34:25 ID:???
>>149
試してみたのだけど、addEventListenerでイベント紐づけると判断できないみたい。
greasemonkeyのscriptということもあってaddEventListenerでbindしてるのです。
152Name_Not_Found:2009/07/29(水) 17:59:40 ID:???
click 時に dblclick を stopPropagation するリスナを登録
そのリスナで自分を解除
153Name_Not_Found:2009/07/29(水) 18:59:47 ID:???
>>152
直観的にかくと、
elem.addEventListener('click', function(e) {
 var stopPropagation = function(e) {
  e.stopPropagation();
 }
 this.addEventListener('dblclick', stopPropagation, false);
 this.removeEventListener('dblclick', stopPropagation, false);

 // 本来やりたい処理
}, false);

という感じであってます?
154Name_Not_Found:2009/07/29(水) 19:11:06 ID:???
ttps://developer.mozilla.org/ja/Gecko_DOM_Reference/Examples#Example_5:_Event_Propagation
>例 5: イベント伝播 (propagation)

elem.addEventListener('click', function(e) { やりたい処理 }, false);
elem.addEventListener('dblclick', function(e) { e.stopPropagation(); }, false);
で十分な気がする
155Name_Not_Found:2009/07/29(水) 19:34:52 ID:???
>>153
こういうこと
span.addEventListener('click' function(event) {
if (!とめたい) return;
this.addEventListener('dblclick', function(event) {
event.stopPropagation();
this.removeEventListener('dblclick', arguments.callee, false);
}, false);
}, false);


>>154
> 要素がclickイベントを処理する要素ならdblclickを処理しない
156Name_Not_Found:2009/07/29(水) 19:38:15 ID:???
>>148
<div>
<span>なかみ</span>
</div>

っていう文書構造なんでしょ?
これ、span 要素の dblclick イベントに stopPropagation 設定すればいいんじゃないか?

それでダメなら、あとは div 要素の dblclick イベントに if (span.isSameNode(event.target)) { return; } みたいなコードを仕込むとか
157Name_Not_Found:2009/07/29(水) 19:39:08 ID:???
>>154 言いたいことが重複した…スマソ
158Name_Not_Found:2009/07/29(水) 20:34:27 ID:???
> greasemonkeyのscript


文盲増えたね
159Name_Not_Found:2009/07/29(水) 23:11:49 ID:???
>>148
spanのタブルクリックで空のイベントリスナーを登録

spanのタブルクリックでストッププロパゲーションでどうかな?
160Name_Not_Found:2009/07/30(木) 10:12:24 ID:???
>>155
あ。そっか。dblclick発生した時にremoveしないとaddした意味ないか。
ありがとうございます。

>>155みたいにするか、元からspanのdblclickに設定しておくかくらいのパターンなんですね。
class付けて判断とかも考えたけど、無駄にclass付けるのも気持ち悪いし、
spanにdblclickのaddEventListener付けて判断しようと思います。
みなさんどうもです。

>>158
> > greasemonkeyのscript
言い方おかしかったですかね?あんまりgreasemonkey scriptって言わないのかな。
161Name_Not_Found:2009/07/30(木) 10:12:40 ID:vzhXmUUE
ブラウザの表示領域のみを取得したいのですが
opera,IE,Fx,safari対応のコードを紹介しているブログか講座サイトご存じありませんか?
162Name_Not_Found:2009/07/30(木) 10:58:36 ID:???
163161:2009/07/30(木) 11:01:52 ID:???
4つの主要ブラウザに対応するためにttp://d.hatena.ne.jp/onozaty/20060802/p1を見ると

document.body.clientWidth
document.body.clientHeight
document.documentElement.clientWidth
document.documentElement.clientHeight
window.innerWidth
window.innerHeight

↑を全部書いておけばいいってことでしょうか?
164Name_Not_Found:2009/07/30(木) 11:04:30 ID:ff8NQ+7S
>>163
一例。
//document.body.clientWidthが存在するならtrue
if(document.body.clientWidth)
screenWidth = document.body.clientWidth;
165Name_Not_Found:2009/07/30(木) 11:07:43 ID:???
それは0の場合どうなるん
166Name_Not_Found:2009/07/30(木) 11:14:53 ID:???
>>164
document.body.clientWidthで取得しても
document.documentElement.clientWidthやらwindow.innerWidthで上書きされることを前提にしてないよお前
167Name_Not_Found:2009/07/30(木) 13:38:11 ID:???
>>160
いやいや、人のレスを読まない頓珍漢なレスが何個もあって
それは全部同一人物のものだと分かりきってるんだけど
あえて複数人いるかのように安価をつけず叩くという嫌味だったんだけど
気を悪くさせてすまん
168Name_Not_Found:2009/07/30(木) 13:39:22 ID:nvOyVcaT
質問です。

javascriptでリファラーをとる場合document.referrerで取りますが、
そのリファラーのドメインを取得する方法はどのようなものがありますでしょうか?
169Name_Not_Found:2009/07/30(木) 13:56:38 ID:???
>>167
同一人物かどうかなんて運営でもない限りわからないのに
お花畑でも見えてる人?
170Name_Not_Found:2009/07/30(木) 13:58:47 ID:???
  ┏┳┳┓     ハイ.     ┏┳┳┓
┏┫┃┃┃     雑談は   ┃┃┃┣┓
┃┃┃┃┣┓   ここまで ┏┫┃┃┃┃
┃      ┃┃┏━━━┓┃┃      ┃
┃ 雑談   ┣┫ . ・∀・ ┣┫. STOP!┃
┗━━━━┛┗┳━┳┛┗━━━━┛
            ┏┻┓┃
        ┏━┛  ┣┻┓
        ┗━━━┫  ┗━┓
.             ┗━━━┛
171Name_Not_Found:2009/07/30(木) 13:58:56 ID:???
夏だな
172Name_Not_Found:2009/07/30(木) 14:08:40 ID:???
>>168
document.referrer.match(/http:\/\/(.+?)\//)[1]
173Name_Not_Found:2009/07/30(木) 14:14:48 ID:???
>>172
ありがとうございます。
174Name_Not_Found:2009/07/31(金) 15:19:40 ID:???
このスレはいつから宿題を手伝うスレになったんだよ
175Name_Not_Found:2009/07/31(金) 15:33:59 ID:???
7/16頃からだよ
176Name_Not_Found:2009/07/31(金) 15:43:13 ID:???
Javaスクリブトを最近習い始めたんだが、ちょっと疑問。
これっていわゆるブラウザ上で色んなことをするやつだけど、
あるボタンを押す→ボタンの下あたりに適当なデータぶちこんだテーブルを表示する
とかっていうのも出来るの?できたとしてもやっぱりテーブルのデータはあらかじめどっかに書いて
おかなきゃ駄目だよな。DBとかから引きずってきて表示、なんてハイレベルなこと
できそうなかんじじゃないし。

一応調べたらなんか<div>タグにid=名前ってつけてやって何かするって奴が
近いようだが…。
177Name_Not_Found:2009/07/31(金) 15:49:57 ID:???
明らかに間違ったことを書いてツッコミから情報を引き出すメソッドですね
178Name_Not_Found:2009/07/31(金) 16:36:15 ID:???
>>176
JavaScriptはボタンを押されたらXMLHttpRequestでウェブサーバにデータを要求 →
ウェブサーバがDBにアクセスして整形してクライアントに返す →
JavaScriptがデータをレンダリング

という感じ。
179Name_Not_Found:2009/07/31(金) 17:53:00 ID:???
>>177
頭悪くて悪かったな。
そんな腹の黒いことするか。

>>178
なんとなく動きは分かるような気がする。が、やっぱ明確には分からんのでちょっと出直してくる。
180Name_Not_Found:2009/07/31(金) 18:52:03 ID:???
夏休みだ!
181Name_Not_Found:2009/07/31(金) 19:05:51 ID:???
そんなんじゃ幸せにはなれないよ。
182Name_Not_Found:2009/07/31(金) 21:07:42 ID:???
Javaスクリブト
の時点で釣りだと判断した。
183Name_Not_Found:2009/07/31(金) 21:42:47 ID:I+xBasH7
Google様がOS事業に参入しWeb上の覇権を握る戦略上、次期バージョンで
のJavaScript規格策定で敗れはしたものの、ECMA会議で発言力を高めて行
くるとかつてのネスケvsIE陣営の主導権争いは一気にGoogleのデファクト
S化で決着がつきますか?
184Name_Not_Found:2009/07/31(金) 22:05:32 ID:Nr9zI3bt
      ____
     /      \     3階層の重なり有りでドロップダウン作ろうと
   /  _ノ  ヽ、_  \   a:hoverにもz-indexつけたいのに
  /  o゚⌒   ⌒゚o  \  IE6だとめり込むお…
  |     (__人__)    |  もう3日はまってるお…
  \     ` ⌒´     /
185Name_Not_Found:2009/07/31(金) 23:14:54 ID:bqggOh5s
ajaxで通信する機能のみのライブラリを探しているのですが
何かご存知のものございませんか?
186Name_Not_Found:2009/07/31(金) 23:15:59 ID:???
>>183
ググル様のOSは広告付くんだよ
いくら無料でもさすがに広告は見たくない
187Name_Not_Found:2009/07/31(金) 23:19:42 ID:???
>>176
アフォのくせに生意気な口調だな。
自分で勉強しろ。
188Name_Not_Found:2009/07/31(金) 23:21:09 ID:???
どこ情報だよw
189Name_Not_Found:2009/07/31(金) 23:38:07 ID:???
>>187
179に出直す、とあるからきっと今頃勉強してると思うよ。
190Name_Not_Found:2009/08/01(土) 00:49:38 ID:???
Javascript でグリッド(表)を作るのですが、表示件数が15万件と多く、一度に表示しきれません。
ページャをそのまま使うのではなく、スクロールバーの上下でページ移動ができるようにしたいです。
また、スピードを重視するため、表示する分+α程度のデータだけを AJAX で取ってきます。

ページャのページ指定をスクロールバーにバインドできるのか?

というのが今考えていることです。

191Name_Not_Found:2009/08/01(土) 01:02:02 ID:???
>>190
真面目な話
Javascriptでなければいけない理由が最大の要求でないかぎり
他当たった方が生産性高いと思うよ
192Name_Not_Found:2009/08/01(土) 06:57:43 ID:???
>>190-191
それってズームしないGoogle Mapsのようなもんだよね。
スクロールバーをできあいのものを使おうとせずに自前で
作れば、位置の移動が把握できるから、Ajaxで周辺を先読み
もできるでしょ。
193Name_Not_Found:2009/08/01(土) 09:29:19 ID:???
IE死ね
194Name_Not_Found:2009/08/01(土) 10:06:11 ID:???
>>191
DoJoで実装することが決まっているので、javascript で実装しないといけないです。。

>>192
そっか。スクロールバーを自前で作ればいいのか。それは思いつかなかったです。
で、スクロールバーって自前で作れるものなの?
195Name_Not_Found:2009/08/01(土) 10:22:37 ID:???
>>194
なんでできないと思う?
196194:2009/08/01(土) 10:25:58 ID:???
>>195
作ったこと無いからです。
197Name_Not_Found:2009/08/01(土) 10:28:06 ID:???
できないことだらけじゃねーかw
198Name_Not_Found:2009/08/01(土) 12:36:57 ID:???
>>193
IEに対応できない奴は素人〜初心者までが許される
199Name_Not_Found:2009/08/01(土) 13:50:11 ID:???
うーん。それはいえる。IEに悪態つくのは勝手だが
避けて通れないのも現実。
200Name_Not_Found:2009/08/01(土) 15:17:49 ID:???
sagoolの実装を読むと参考になるかも
201Name_Not_Found:2009/08/01(土) 16:21:50 ID:???
IE愛してる

sagool重いお…
202Name_Not_Found:2009/08/01(土) 16:22:42 ID:???
sagoolの検索ページ、永久スクロールになってるじゃん
203Name_Not_Found:2009/08/01(土) 16:40:39 ID:???
>>190
15万件もあったら、スクロールバー1ドット動かしたら100〜200件くらい動かないか?
204Name_Not_Found:2009/08/01(土) 17:35:48 ID:???
IEさえなければWebアプリケーションの開発効率が倍以上になる
IE対応だけに何日も費やすのはきつい
205Name_Not_Found:2009/08/01(土) 17:56:33 ID:???
IEが滅ばぬ限りゲッタも分割代入もジェネレータ式もletもWorkerも使えねー
206190:2009/08/01(土) 18:07:19 ID:???
>>203
そうなんですよ。
それと、スクロールバーを一気に動かしたときにどうなるか?とかいろいろ考えることが多くて。。
207Name_Not_Found:2009/08/01(土) 18:29:50 ID:???
IE8でマシになったんじゃないの?
後は、MSがIE6、7を切り捨ててくれればいいだけで
208Name_Not_Found:2009/08/01(土) 19:23:36 ID:???
<BODY id=InPrivate>
<DIV id=titleHeader class=title>InPrivate は有効です</DIV>
<DIV id=contentContainer class=mainContent>
<DIV class=column1>
<DIV class=tasksection>
<DIV id=contentHeader class=tasks>InPrivate ブラウズが有効になっている場合は、このインジケーターが表示されます </DIV>
<P><IMG id=inPrivateImage alt="アドレス バーの InPrivate" src="inprivate.png"></P><SPAN id=recentlyClosedTabsDescription class=description>
<P> </P>
<P id=contentLine1><I>InPrivate ブラウズ</I>は、Internet Explorer が閲覧セッションに関するry</P>
<P id=contentLine2>InPrivate ブラウズを無効にするには、このウィンドウを閉じます。</P></SPAN></DIV></DIV></DIV>
<DIV class=footer>
<HR>

内部でこんなめちゃくちゃな展開されるブラウザがマシとな
209Name_Not_Found:2009/08/01(土) 21:06:08 ID:???
15万件のデータがあって
スクロールするたびに ajax で読みに行くなんて
とても現実的じゃないと思う
ajax にこだわる理由は何?
210Name_Not_Found:2009/08/01(土) 21:24:46 ID:???
ヒント
>190
というのが今考えていることです。
        ~~~~~~~~~
211Name_Not_Found:2009/08/01(土) 21:30:23 ID:???
>>209
逆でしょ。ちょっとスクロールしたら隣接してるキャッシュ
された情報を表示し、たくさんスクロールしたらその表示部分を
取って来るまでちょっと待たせる。Ajaxしかないじゃん。
>>206
洩れなら15万件を2次元に並べて2次元スクロールする。
水平に100件、縦に1500件なら無問題。
212Name_Not_Found:2009/08/01(土) 21:56:20 ID:???
さいてーのユーザ体験だなw
213Name_Not_Found:2009/08/01(土) 22:32:47 ID:???
スクロールバーをちょろっと動かしたら 5000 件くらい飛んじゃいそう。
レコード数が一桁少なかったらありかもしれないが。

自分だったら 15 万件って時点で行単位のスクロールは無いな。
1ページ 1000 件 150 ページ。
「1000 件目と 1001 件目にも関連性がある」ってんなら無理だけど。

どんなデータか知らないが
ページ 1000 件も
150 ページも
人の限界を超えてると思うけどね。
214Name_Not_Found:2009/08/01(土) 22:45:17 ID:???
Googleの検索結果○○○○○件が1ページに全部表示されるようなものだな
215Name_Not_Found:2009/08/01(土) 23:38:47 ID:???
53件 × 53件 × 53件 ≒ 150,000件


3次元なら現実的。
216Name_Not_Found:2009/08/02(日) 00:48:10 ID:???
真面目な話、時間を四次元目要素に追加するんだよ
217Name_Not_Found:2009/08/02(日) 02:08:00 ID:???
時間の経過と共に勝手にスクロールするってかw

普通に空間n次元でいいだろw
218Name_Not_Found:2009/08/02(日) 05:27:37 ID:???
15万件くらいなら日常的にベタな<table>で表示させている。というか昨日もちょうどそのくらいの数を表示させた。
この行数だとエクセルでは表示できないから、HTMLが重宝する。

レンダリング完了してしまえば、Ctrl+f でサクサクと検索できるし、確かに便利なものだ。

人が使う上で重要なのは、
1. 余計なこと(スクロールでHTTPリクエストなんて愚の骨頂だわw)を絶対にしないこと、
2. しかし、<thead>にクリックしてソートする仕組みを必ずつけること。
219184:2009/08/02(日) 10:03:16 ID:???
       ____
     /⌒  ⌒\
   /( ●)  (●)\
  /::::::⌒(__人__)⌒::::: \ IE6でも正しく重ね表示できるようになったお!!
  |     |r┬-|     | z-indexはどれが親要素をよく見ることが大事だお
  \      `ー'´     /  下から順番に設定してから削りまくるといいお!!
220Name_Not_Found:2009/08/02(日) 12:03:56 ID:???
それがジャヴァスクリプトと何の関係があるんだお
221Name_Not_Found:2009/08/02(日) 15:22:54 ID:???
JavaScriptでCSVを読み込んで配列にするのってどんな手がある?
Ajax無しで。
222Name_Not_Found:2009/08/02(日) 15:25:17 ID:???
textareaに貼り付けてパース
223Name_Not_Found:2009/08/02(日) 15:45:31 ID:???
同期通信で読み込んでパース
224Name_Not_Found:2009/08/02(日) 17:58:04 ID:???
サーバにパースさせてJSONPでも単なるjsでも
CSVだろうがなんだろうが読み込む手段自体が限られるわな
225Name_Not_Found:2009/08/02(日) 18:05:24 ID:???
phpでjson_encode()かけて外部jsとして読み込めば
226Name_Not_Found:2009/08/02(日) 20:52:12 ID:???
iframeから読むとか
227Name_Not_Found:2009/08/03(月) 02:00:35 ID:???
HTML中のhttp://で始まる文字列をリンクに置換するスクリプトを書いています
var http = /(https?:\/\/[-_.!~*()a-zA-Z0-9;/?:@&=+$,%#]+)/ig;
document.body.innerHTML = document.body.innerHTML.replace( http, "<a href=$1>$1</a>" );
でリンク化はできたんですが、元々リンクだった所のリンクがおかしくなります。
元々<a href=''>内に入っている文字列を除外する方法を日曜一日潰して考えましたができませんでした。何か手はないでしょうか。
228Name_Not_Found:2009/08/03(月) 02:22:31 ID:wge5fR1W
>>227
一番楽なのはhref=がURLの前に来ちゃダメってことで、
[^(?:href=")]
を/と(の間に入れることだと思うけどそれじゃダメなの?
229Name_Not_Found:2009/08/03(月) 03:06:21 ID:???
>>228
dです。やってみたけど、動きませんでした。
あと、"JavaScript 正規表現"とかでぐぐってみてるんですが、そういう使い方が出てなくて意味も理解できません。
どこかオススメのページないですかね。
230Name_Not_Found:2009/08/03(月) 04:11:55 ID:???
正規表現だろ、javascript関係無い
コピペしか出来ないなら正規表現勉強するべきだと思うが
231Name_Not_Found:2009/08/03(月) 04:12:08 ID:???
アンカー以外も属性に URL を含み得るんだから、引用符で囲まれてる URL を対象外にすれば?
後方に引用符がこない場合の指定。


var http = /(https?:\/\/[-_.!~*()a-zA-Z0-9;/?:@&=+$,%#]+)(?!\s*["'])/ig;
232Name_Not_Found:2009/08/03(月) 12:51:16 ID:dH5LxOP7
>>229
innerHTML全てを相手にしないで、
textNodeだけを相手にやった方が良くない?
(function(node){
    if(node.nodeType == 3){
        //リンクに変換する処理
    }
    else if(node.nodeType == 1 && node.childNodes.length > 0){
        var cn = node.childNodes;
        for(var i=0 , l=cn.length ; i<l ; i++){
            arguments.callee(cn[i]);
        }
    }
})(document.body)

※適当に書いた。
233Name_Not_Found:2009/08/03(月) 13:41:26 ID:???
JavaScript & Ajax プロが教える“本当の使い方”ていう本
mdnがだしてるけどこれは使えるね
234Name_Not_Found:2009/08/03(月) 14:12:54 ID:???
mdnって?
235Name_Not_Found:2009/08/03(月) 17:42:04 ID:2sB0edpV
>>233と推測してみる
236Name_Not_Found:2009/08/03(月) 20:01:28 ID:???
>>233
ttp://direct.ips.co.jp/book/Template/Goods/go_Bookstempmdn.cfm?GM_ID=6059&SPM_ID=2&CM_ID=004053034&PM_No=&PM_Class=&HN_NO=00405
コレ?
中身howto本みたいだけど・・・
読んだ人いたら、ぶっちゃけどーなのかききたい
237Name_Not_Found:2009/08/03(月) 20:26:57 ID:???
くせー!くせー臭いがするぜ。
238Name_Not_Found:2009/08/03(月) 23:55:02 ID:???
Web上のオープンソース解読だけで十分
239Name_Not_Found:2009/08/04(火) 10:31:30 ID:???
JSって基本的にどんなのでもソース読めるからいいよな。企業にとっては逆に悪いばっかりだろうが。
せいぜい難読化ぐらいだからなあ。
240Name_Not_Found:2009/08/04(火) 10:56:42 ID:???
>>239
みんなが色んなソース見てレベル上がればいいんじゃないのかね。
オープンソースのものはみんな見れるけど、脆弱性つつかれてもそれによって性能は上がる気がする
241Name_Not_Found:2009/08/04(火) 12:45:54 ID:???
phpみたいにクラスのときはclass ○○{}みたいに定義できたらいいのに・・
242Name_Not_Found:2009/08/04(火) 15:15:31 ID:???
現在の言語仕様にクラスなんて無いんだから仕方ない
243Name_Not_Found:2009/08/04(火) 15:26:18 ID:???
ニコ動のアカウントもってない友人にどうにか
ニコ動の動画を見せられないものかと考えて
閲覧ページを作っている者です。

http://pixiv.cc/ytt/?sm7812526

最初からちゃんとHTMLにスクリプトタグが
書かれていればIEでも見られるのですが
後からスクリプトタグを追加する方法だと
さっぱり動いてくれません。
ちなみにFireFoxでは見られるっぽいです。

上記のページのスクリプトで動かない理由が
わかる方は是非とも教えて下さい。
244Name_Not_Found:2009/08/04(火) 16:04:43 ID:???
>>243
このスレでこんなこと言うのもなんだけど
一部のブログやはてなブックマークが外部プレイヤーに対応していて
貼り付けられた/ブックマークされた動画はアカウント無しでも見れるよ
245Name_Not_Found:2009/08/04(火) 16:25:20 ID:???
ありがとうございました。ググれば一発でした

つーかフツーにdocument.writeでスクリプトタグを
吐きだしたらIEでも動いてくれました

(function(){})の中身をどうやって実行させるか
長時間悩んでいた自分が馬鹿みたいです
246Name_Not_Found:2009/08/04(火) 18:26:26 ID:5ejlW5sr
クラス指定の際、従来はどこかで見たこんな感じで各ブラウザに対応してました。
var cls = (window.addEventListener) ? "class" : "className";
document.getElementById("hoge").setAttribute(cls, "somestyle");

これでIEではclassNameが選ばれるわけですが、IE8では標準化されてclassで指定するため
classNameが選ばれたのでは動作しません(エラーにはならない)。
IE7以前と8の振り分け小技的なのって、もう出てますか?

ブラウザ名とバージョンで判別すれば確実なんだろうけど・・・
247Name_Not_Found:2009/08/04(火) 19:10:06 ID:???
setAttributeを使ってわざわざ面倒にしているだけ。

document.getElementById('hoge').className = 'somestyle';

これでMozも新旧IEも動くから。setAttributeを一切使わないのが吉。
248Name_Not_Found:2009/08/04(火) 19:19:20 ID:???
>>246
好き嫌いはあるかも知れないが
IE なら「条件分岐コメント」というものがある
249246:2009/08/04(火) 19:37:07 ID:???
>>247-248
ありがとうございます。>>247確認できました。
そういえば確かに、以前setAttributeにこだわって>>246を書いたような、淡い記憶が・・・
IEの条件分岐コメント、初めて知りました。
こちらは機会があったら試してみたいと思います。
250Name_Not_Found:2009/08/04(火) 20:17:00 ID:???
IE8ってまだaddEventListener対応してないんだ…
251Name_Not_Found:2009/08/04(火) 21:09:20 ID:???
a=10;
b=new Array(1,2);
document.write('a='+a+'<br>')
document.write('b='+b+'<br>')
func1(a,b);
document.write('a='+a+'<br>')
document.write('b='+b+'<br>')
function func1(c,d){
var c,d;
c=20;
d[0]=30;
d[1]=40;
}

この結果が
a=10
b=1,2
a=10
b=30,40
となります

aとbはvarで宣言してないのでグローバル変数、cとdは関数内部でvarで宣言してるのでローカル変数

なので、ローカル変数のc=20がaに影響しないというのは理解できるのですが、
ローカル変数のはずのdがbに影響してしまうのがよく分かりません
252Name_Not_Found:2009/08/04(火) 21:19:44 ID:???
変数っていうのは荷札みたいなもので、

b=new Array(1,2);
Arrayというオブジェクトにbという荷札を付ける

func1(a,b);
bの荷札のついたオブジェクトを二番目の引数としてfunc1に渡す

function func1(c,d){
二番目の引数に、関数内のみで通用するdという荷札をつける

d[0]=30;
dの荷札のついたオブジェクト(つまりb=new Array(1,2);)を操作する

という流れで、bのオブジェクト本体が書き換わる
余談だけど仮引数をvar宣言しても無意味
253Name_Not_Found:2009/08/04(火) 21:21:57 ID:???
大事なことを言うの忘れてた

function func1(c,d){
 d=10
}
と変数自体を操作した場合は、「dの荷札を付け替える」になるからbはなんら変わらない

d[0]=30;は変数の中身に対する操作だからbまで影響を受ける
254Name_Not_Found:2009/08/05(水) 02:27:18 ID:v3FToA9J
Javascript初心者です。至らないところも多々あるかと存じますがよろしくお願いします。ブラウザはIE7を使用しています。

当初以下のようなコードを動作させようとしたところ、
for(h = 1;h < 3;h++){
※1
var mzu= "menu" + h;
var kami = document.getElementById(mzu).childNodes;
for(var x =0;x<5;x++){
var jiu = "suichi" + h;
var sai = document.getElementById(jiu).offsetHeight;
※2
☆kami[x].style.top = (sai*(x+1));☆
}
}
※☆は後の説明用に付加しているだけで実際のコードにはありません

続きます
255Name_Not_Found:2009/08/05(水) 02:28:08 ID:v3FToA9J
IDが"menu1"の要素については期待したような結果が得られたのですが、IDが"menu2"の要素について期待したような結果が得られなかったため、alert()を用いて原因を探ることにしました。
具体的には※1の部分にalert(h);を、※2の部分にalert(kami[x].style.position);を入れてみて、動作確認をしてみました。

私が期待しているようなメッセージの出る順番というのは
「1」が表示される→4回"kami[x].style.position"の中身が表示される(ちなみにabsolute)(★)→「2」が表示される→再び4回"kami[x].style.position"の中身が表示される
というものですが、実際には★の部分までしか期待されたメッセージが表示されなかったため、forループ(一つ目の)が一回のみで終了してしまったのだと判断しました。
そこでひとつひとつの行を削除したり再び加えたりしながらforループ
を一回目で止めてしまっている原因を探ってみたところ、
※2(kami[x].style.position);の行と☆〜☆の行を削除した場合は
メッセージが1→2と表示される、すなわちひとつめのforループがしっかりと機能していることから、おそらく原因は※2の行や☆〜☆の行で
DOM要素にアクセスしていることだと思うのですが、どうも原因がわかりません。
もちろん元のコードでもエラーは出ていません。

詳しい方、どうぞお力添えいただけないでしょうか
256Name_Not_Found:2009/08/05(水) 02:46:35 ID:???
2個目の for ループは 5周(0 から 4 まで)するんだけど、

document.getElementById("menu1").childNodes[4]

はあんの?
そもそもエラー出てないなら、ループは止まらないと思うけど。
257Name_Not_Found:2009/08/05(水) 03:08:57 ID:v3FToA9J
>>256
ズバリでした。
なんというケアレスミス…orz

258Name_Not_Found:2009/08/05(水) 09:08:41 ID:???
>>246
亀レススマソだが

多少面倒だが、setAttributeNodeでもいけるはず。

var classAttr = document.createAttribute('class');
classAttr.value = 'somestyle';
document.getElementById('hoge').setAttributeNode(classAttr);
259Name_Not_Found:2009/08/05(水) 12:36:36 ID:AMzVKnOk
Yoshimune.parentNode.parentNode.parentNode.innerText;
家康頼宣光貞
      ____
     /      \
   /  _ノ  ヽ、_  \
  /  o゚⌒   ⌒゚o  \  家康の名前だけ取得したいのに
  |     (__人__)    |  他もお邪魔してくるお…
  \     ` ⌒´     /
260Name_Not_Found:2009/08/05(水) 12:42:32 ID:???
夏だ寝。
261Name_Not_Found:2009/08/05(水) 12:45:34 ID:???
innerText はすべての子ノードの連結した値でした。
262Name_Not_Found:2009/08/05(水) 13:58:48 ID:???
innerText(失笑)
263Name_Not_Found:2009/08/06(木) 12:01:36 ID:8wr3Kt8v
Cのポインタのように変数に他の変数を参照させる方法はありますか?
264Name_Not_Found:2009/08/06(木) 12:17:17 ID:???
できないけど、Objectかぶせればだいたい事足りる
265Name_Not_Found:2009/08/06(木) 18:40:12 ID:MAVolJmo
プログラミング初心者です。
かなり初歩的な理解の間違いをしているかもですが、その都度指摘していただけたら幸いです。

ふとHTMLのdocumentを構成している全ノードの情報(具体的にはinnerHTMLとノード名について)を表示させようと思い、次のようなコードを書きました。

function getElementsinfo(anode){
if ((anode.childNodes.length) == 0){
alert(anode.innerHTML);
alert(anode.nodeName);
alert("最下層ノードです");
}else{
nagasa = anode.childNodes.length;
for(j=0;j<nagasa;j++){
alert(anode.childNodes[j].innerHTML);
alert(anode.childNodes[j].nodeName);
getElementsinfo(anode.childNodes[j]);
}
}
return 0;
}
getElementsByinfo(document.body);
266Name_Not_Found:2009/08/06(木) 18:41:37 ID:MAVolJmo

私の意図するところとしては、最下位のノード(子ノードが存在しないノード)までたどり着いた場合に、forループを利用してnextSiblingにあたるノードの情報を表示できるようにしたかったのですが、
どうも最下位のノードまでたどり着いたところで関数の実行が終了してしまうようなのです。

つまり、ノードが
1
|_____
| | |
11 12 13
|_______
|  |   |
111 112 113
のような構造をしている場合
1→11→111→112→113→12→121→122…のようにノードの情報を表示させたかったのですが
1→11→111まで表示してプログラムの実行が止まってしまっています。
この問題に対し貴重なご意見をいただきたく存じます。

現状の私の理解では解決策を思いつかず、投稿させていただきました。
質問のわかりにくい点については随時補足させていただきます。
267Name_Not_Found:2009/08/06(木) 19:00:57 ID:???
いや、非常に明快な質問だと思うよ。原因は変数が全部グローバルだから。
nagasa=... → var nagasa=...
for(j=... → for(var j=...
としてみたらどうかな。
268Name_Not_Found:2009/08/06(木) 20:28:18 ID:???
本来なら15万行あるのに、レンダリング時間を短縮するために、AJAXをつかって例えば100件ずつ表示
するようにしたいのです。
つまり、スクロールボックスの値の個数は100件程度です。
このような状態で、15万件スクロールできるような領域をもつスクロールバーを作ることはできるんでしょうか?
269Name_Not_Found:2009/08/06(木) 21:00:31 ID:???
268=190?
270Name_Not_Found:2009/08/06(木) 21:00:47 ID:???
デジャヴ・・?
271Name_Not_Found:2009/08/06(木) 21:33:50 ID:E76SDfGK
>>268
一応出来るだろうけど、UIとしては使い物にならない気がする。
仮にスクロールバーの幅が1000pxだったとしても、
1px動かすと150行も飛んじゃうのって、使いづらくない?

もしホントにやるんだったら、スクロールバーは純正ではなく
手づくりする必要がある。純正のは「表示領域」のスクロールだから。

何百行も一気に移動する為の補助的UIとしてなら、やってみる価値は
あるかもしれないね。
272Name_Not_Found:2009/08/06(木) 21:43:30 ID:???
>>190
191 192 >>194 203 >>206 209 211 213 214 215 216 218

   5日後...

>>268 271

どうみても夏です。本当にありがとうございました。
273Name_Not_Found:2009/08/07(金) 02:40:44 ID:r+8nSQLn
なんだこりゃ。
こんなことも出来ねーのか、おまいら使えねーなプゲラ、
とでも言いたかったのだろうか。
274Name_Not_Found:2009/08/07(金) 09:14:54 ID:???
>>258
ありがとうございます。確認してみたところ、IE6-8その他で同じ動作を確認できました。
ちなみにremoveAttributeNode("class")の方はIE8ではおkでしたが6-7ではダメだったようです。

removeの方の話題になってしまうのですが、いろいろ試していたら
removeAttributeの戻り値がIEとその他で違うことに気づきました。
IEだとブール値、他のブラウザではundefined(戻り値なし)になるようです。

document.getElementById("hoge").removeAttrubute("class");
 =>IE8だと成功するのでtrue, IE6-7ではfalse, FireFoxなどではundefined
※そもそも削除対象の属性がなかった場合はIE6-7でもtrueが返る
ということでこう書ける様子です↓

if (document.getElementById("hoge").removeAttribute("class") == false) {
 document.getElementById("hoge").removeAttribute("className"); /*IE6-7*/
}

setAttributeの戻り値も一瞬期待したんだけど、こちらはすべてundefinedでした。
既知かもしれないけど小ネタということで。
275274:2009/08/07(金) 10:28:33 ID:???
ゴメリ。上の2行目、removeAttributeNode(classAttr)でした。
276Name_Not_Found:2009/08/07(金) 18:41:51 ID:???
javascript:showModel('A')

顔だろw
277Name_Not_Found:2009/08/07(金) 20:27:55 ID:???
HTMLスレから誘導されてきました。先輩方、どうかご教授を。

<object>タグの中身が全て読み込まれた時にしたい処理があるのだけれども、onLoadで拾ってくれないんです。
<object>の中で何をしてるかと言いますと、外部csv(Shift_JISのテキスト)をデータバインドでobjectに突っ込んで
これをJavaScript側で受け取って、と言う事をしようとしています。

どうすれば良いのでしょうか。
278Name_Not_Found:2009/08/07(金) 20:36:25 ID:???
15万件のcsvデータで
とか言いだしそうな予感
279Name_Not_Found:2009/08/07(金) 21:02:01 ID:???
いやいやせいぜい300件程度ですわご安心を
280Name_Not_Found:2009/08/07(金) 22:05:02 ID:r+342Vb4
>>277
readyStateを見張ってもだめかね。
あ、そもそもobjectにreadyStateがあるかどうかわからんけど。
281Name_Not_Found:2009/08/07(金) 22:11:13 ID:???
>>277
objectがflashコンテンツならSWFObjectというライブラリを使うのも
282Name_Not_Found:2009/08/07(金) 22:21:55 ID:???
既に表示されてるテーブルに対して"昇順" "降順" ボタンを作って
ボタン押したらテーブルがソートされる動きをjavascriptで実現させ
たいんですけど、良い方法はないでしょうか。
283Name_Not_Found:2009/08/07(金) 22:28:15 ID:???
284Name_Not_Found:2009/08/07(金) 22:36:34 ID:KaIlfn+p
>>282
jquery の tablesorter を使えば一発で解決
http://tablesorter.com/

<script type="text/javascript>
$(document).ready(function()
{
$("#myTable").tablesorter();
}
);
</script>

<body>
<table id="myTable">
・・・略
</tbody>
</table>
</body>
285Name_Not_Found:2009/08/07(金) 22:41:55 ID:???
>>271
UIとして使い物にならないだろう、ということは、お客さんもわかっているようです。
単に全体を1ページで見たい、とのご要望でした。
286Name_Not_Found:2009/08/07(金) 22:42:15 ID:???
>>280 >>281
レスありがとう。まず、objectはFlashじゃないのでダメなんです。Flashだったら色々とらくちんらしいですね。
次に readyStateは見張ろうとしたんですが
IEで、こんなコードを書いちゃって無限ループさせてしまい放置してました。
確認したのはIE6、明日にでもIE7, IE8でも試そうと思っています。


function sleep( time ) {
var time1 = new Date().getTime();
var time2 = new Date().getTime();

while( time2 < time1 + time )
time2=new Date().getTime();
return;
}

while( !(document.getElementById( objectName ).readyState == 4) )
sleep(300);

どうにも上手くいかないので、JavaScript側では無く 他の方法で
<object> のロード時イベントを取れればと思った次第です。見落とし等あったらぜひ教えて下さい。

上記のWhile()を通さないでいたら、IEに「 [Object Error] 」と怒られました。
// 何故か <object> 生成後に alert('test'); と書くとクッションになるのか上手く処理が流れたのですが…何故なのでしょう。
287Name_Not_Found:2009/08/07(金) 23:01:20 ID:ZLTflHOM
すいません、このようなスクリプトはないでしょうか?

例えば7月10日(2008)から
今日まで何日経過したとかわかるサイトありませんでしょうか?
javascritpのサンプルであると思い検索しても中々ありません。
知っている方いましたら教えて下さい
288Name_Not_Found:2009/08/07(金) 23:04:58 ID:???
>>283-284
tablesorter.jsのダウンロードをしてはいけないと言われる可能性があるので
できれば直接javascriptを組みたいのですが、そうなると相当難しいんでしょうか。
289Name_Not_Found:2009/08/07(金) 23:12:18 ID:???
>>287
var now = new Date(); //今の時間
var xday = new Date(2008,6,10)//2008年7月10日(月は0から始まるので1つ小さくなる)

var count = Match.ceil( ( now.getTime() - xday.getTime() ) / ( 24*60*60*1000 ) );

alert(count+"日経ったよ!!111");
290Name_Not_Found:2009/08/07(金) 23:13:38 ID:???
>>286
> while( time2 < time1 + time )
> time2=new Date().getTime();

javascript でこれはやってはいけません

>>287
Dateオブジェクト

>>288
ソース読めばよくね?
個人的には再発明しても無駄だと思うけど
291Name_Not_Found:2009/08/07(金) 23:17:51 ID:???
>>288
ここであえてとほほ
ttp://www.tohoho-web.com/wwwxx038.htm
292Name_Not_Found:2009/08/07(金) 23:18:51 ID:???
>>288
<td>の数を数えて配列に入れてうだうだするしかないかなあ
293286:2009/08/07(金) 23:56:13 ID:???
>>290
何がダメなんでしょう?
while()function(); って大括弧を省く記述がダメなのかな。
294Name_Not_Found:2009/08/08(土) 00:23:01 ID:???
>>293
実行スレッドと UI スレッドが共通だから
295286:2009/08/08(土) 00:31:05 ID:???
>>294
ぐぐって色々読んできました。そこそこ長い間JavaScript触ってたのに全然知らなかった。
勉強し直してきます。ありがとう!
296Name_Not_Found:2009/08/08(土) 01:40:32 ID:???
横レスだけど、どうゆうことか分かんね。
ループしてる間に描画が進まないってこと?
297Name_Not_Found:2009/08/08(土) 02:35:22 ID:???
試してみれば分かるだろ
298Name_Not_Found:2009/08/08(土) 02:52:10 ID:3ZhTtLft
>>286
イベントドリブンに書こうよ。

var o = objectElement;
if(!o.readyState){ /* そもそもreadyStateがない */ }
else{
    o.onreadystatechange = function(){
        if(/complete|loaded/.test(o.readyState)){
            // ロード完了
        }
    }
}

こんなかんじで。
IEは一度キャッシュしちゃうと、readyStateが変わらなくなったりするから、
先にチェックしとくといいかも。
299Name_Not_Found:2009/08/08(土) 11:31:06 ID:YRrBCxcg
クリックするとビロンチョと開くヤツの作り方が判らん、
300Name_Not_Found:2009/08/08(土) 11:59:11 ID:???
>>298
いちいちゴミ書き込むなよ
それで何かしたつもりか
301Name_Not_Found:2009/08/08(土) 13:08:29 ID:2vZBY5wT
クリックしてビロリンチョはCSSでやれるのか
302Name_Not_Found:2009/08/08(土) 13:10:08 ID:+8gAJ8+Q
JavaScriptとJavaの違いを教えてください
303Name_Not_Found:2009/08/08(土) 14:09:49 ID:???
304Name_Not_Found:2009/08/08(土) 14:10:55 ID:???
はじめの4文字は同じ
305Name_Not_Found:2009/08/08(土) 14:29:44 ID:???
>>302
あの、Googleなどで検索はされたでしょうか。JavaScriptはプログ
ラムを組めるほどの人でも勘違いしている人が大変多いので、ネット
では解説があると思います。もし探しても、どうしてもないというの
であれば、そのときはその旨を明記して再度ご質問された方がよろし
のではないかと思います。
306Name_Not_Found:2009/08/08(土) 14:38:10 ID:???
>302
グレープとグレープフルーツみたいなもの。
307Name_Not_Found:2009/08/08(土) 14:42:55 ID:???
>>302
レモンティーとレモンみたいなもの
308302:2009/08/08(土) 16:00:56 ID:p74pcunQ
なんだ誰も答えられないのか
309Name_Not_Found:2009/08/08(土) 16:11:36 ID:???
CとC++とC#の関係に近い
310Name_Not_Found:2009/08/08(土) 16:24:28 ID:SlBV2tO3
質問です。JavaScriptをどの程度できたらGoogleに入社できますか?
311Name_Not_Found:2009/08/08(土) 16:27:56 ID:???
>>310
Googleの面接試験の問題
1.スクールバスにゴルフボールは何個入るか?
2.あなたは5セントコインほどのサイズに縮んでしまう。現在のあなたの身体の密度を保ったまま、身長に比例して質量は小さくなる。
 そしてあなたはガラスのミキサーに投げ込まれる。ミキサーの刃は60秒で動き出す。さぁ、あなたはどうする?
3.シアトルのすべての窓ガラスを洗浄するとして、あなたはいくら請求しますか?
4.マシンのスタックがメモリ内で増えるか減るかしているのをどのようにして見つけ出しますか?
5.あなたの8歳の甥にデータベースについて3つの文で説明しなさい
6.時計の長針と短針は一日に何回重なりますか?
7.あなたはA地点からB地点に行かなくてはならない。そこに到着できるかどうかは知りません。どうしますか?
8.シャツでいっぱいの戸棚があるとします。特定のシャツを見つけるのは非常に難しいです。簡単にシャツを見つけるためにどのように整理しますか?
ttp://gigazine.net/index.php?/news/comments/20070909_google_job_interview/
312Name_Not_Found:2009/08/08(土) 17:17:29 ID:???
身長に比例でいいのかいね。ふつー半分のサイズなら質量1/8でね?
313Name_Not_Found:2009/08/08(土) 17:47:37 ID:???
まさかのマジ回答
314Name_Not_Found:2009/08/08(土) 21:54:40 ID:???
Googleの社内でプロダクトを作るために使われている言語は4つ。
JavaScriptはそのうちのひとつなので、方向性としては間違ってない。

どの位できたら、ってのは難しいな。
JavaScriptでJavaScriptインタプリタ実装できるレベルなら二次面接くらいにはいけるんじゃないか?
315Name_Not_Found:2009/08/08(土) 23:10:20 ID:???
>>296
JavaScriptは厳密な意味でシングルスレッドで動いているので
時間を測定してループして回しても、
処理A:「今、時間を測定してループさせている処理」
処理B:「一定時間が経過するまで待ちたい(データバインド objectのロード完了待ちとか)処理」
処理C:「処理Bが待っている、何らかの処理(外部からcsvを読み込んでデータバインドするobjectの生成とか)」

処理Aが動いている間、他の処理は、処理Aが完了するまで一切動かない。
処理Aが終わるまで他の処理が一切動かないから、処理Aでどれだけの時間をかけてループで待ってみても
処理Bが待ちたい処理Cは処理A(を含めた、処理Cより前にスケジュールされている処理全て)が終わるまでは実行されない。

つまり、どれだけ緻密に時間を計測しても無駄であり
  while( !(objDataBind.readyState == 4) ) sleep(500);
などと書いてもwhileループ脱出条件が満たされる事は無いので永久ループになる。


…っていう風に自分は解釈しました。合ってるかな?
316Name_Not_Found:2009/08/09(日) 00:18:36 ID:???
試してみれば永久ループになるかどうかはわかるはずだが
なぜ試さないのかしら
317Name_Not_Found:2009/08/09(日) 00:34:43 ID:???
すまん>>315 = >>286です。書いときゃよかったですね。
318Name_Not_Found:2009/08/09(日) 01:22:48 ID:???
>>286
sleep(3000);
とでも単独で実行してみればわかると思うけど、三秒間フリーズした後開放される。
で、なんでダメなのかはCPU使用率を見てればわかると思う。
319Name_Not_Found:2009/08/09(日) 02:37:25 ID:???
sleepじゃなくてstopだな
320Name_Not_Found:2009/08/09(日) 02:44:03 ID:???
(function(){
 try{
  オブジェクト要素.recordset.MoveLast();
  オブジェクト要素.recordset.MoveFirst();
 } catch(e){
  setTimeout(arguments.callee, 10);
  return;
 }
 //オンロード処理
})();

readyState対応してない場合はこんな感じでいけるだろ
321Name_Not_Found:2009/08/09(日) 14:12:44 ID:uu3aZGA1 BE:3443523697-2BP(0)
HTMLを作らずに、javascriptだけで空の新規ページを作って、
document.writeでそのページに文章を書きたいんですが、
そういうことってできますか?
322Name_Not_Found:2009/08/09(日) 14:30:27 ID:???
>>321
中身がjavascriptだけのhtmlファイルを作ることは可能
javascriptだけで空のhtmlファイルを作ることは不可能
323Name_Not_Found:2009/08/09(日) 14:31:47 ID:???
適当な名前でwindow.open()して中身書き換えれば、出来るんじゃないか

と思ったけど【HTMLを作らずに】【javascriptだけで】【新規ページ】ってムリじゃない?
phpやperlみたいなサーバ側の言語使うかサーバ設定いじれるならともかくも。
324Name_Not_Found:2009/08/09(日) 14:48:35 ID:???
>>323のせいでつまらなくなった
325Name_Not_Found:2009/08/09(日) 15:13:12 ID:??? BE:546591252-2BP(0)
>>322
>>323
どうもありがとう。

window.open()のurlにnullを入れてみたんですが、
ページが見つかりません。になってしまいました。
javascriptで新規ページを作るのは無理っぽいです。
326Name_Not_Found:2009/08/09(日) 15:14:08 ID:???
Fx3でwindow.open("");とやったらabout:blankになった
他は知らない
327Name_Not_Found:2009/08/09(日) 15:24:54 ID:??? BE:437273524-2BP(0)
>>326
IEでもできました。すげえ!ありがとう!
こんな感じです。
var pop = window.open("", 'popup', null);
pop.document.write("テスト");
328Name_Not_Found:2009/08/09(日) 15:30:34 ID:???
うざいからやめて
329Name_Not_Found:2009/08/09(日) 15:38:23 ID:???
なんか、すごいなぁ最近
330Name_Not_Found:2009/08/09(日) 16:48:53 ID:???
すごいでしょー。
331Name_Not_Found:2009/08/09(日) 17:06:00 ID:???
夏だから仕方ないよ。
332Name_Not_Found:2009/08/09(日) 17:37:09 ID:???
API を使ってHPをつくろうと思っています。

サーバ側から渡されるデータはもともとJavaScriptを出力するものなのですが、
それを PHP で受けとって利用しようと思っています。

ここで問題が・・・。
サーバから受けとったデータが \u****\u****\u**** … という感じなのですが、
これはどういうデコード処理がされているのでしようか?
JavaScript で UTF-8 をあつかうためにエンコードされたものなのかな・・・?
とか予想しているのですが、この文字列をどのようにデコード処理をしたらいいのかわかりません。

詳しい方アドバイスをいただけると助かります。
333Name_Not_Found:2009/08/09(日) 18:43:54 ID:+FviLVtY
>>332
たぶん想像している通りユニコード。
334Name_Not_Found:2009/08/09(日) 18:48:24 ID:???
別にデコードとかしなくていい
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/Unicode#section_3


たぶんとか言うならレスしなきゃいいのに
335Name_Not_Found:2009/08/09(日) 19:57:46 ID:???
いや、揺れてる!
336Name_Not_Found:2009/08/09(日) 22:28:43 ID:???
ありがとうございます!!
337Name_Not_Found:2009/08/10(月) 11:51:20 ID:???
utf-8からsjisに変換するには
338Name_Not_Found:2009/08/10(月) 12:06:32 ID:???
すべての文字のマップを作ればおk
339Name_Not_Found:2009/08/10(月) 12:35:05 ID:???
ページやスクリプトにしっかり文字コード指定してあれば
ブラウザがよろしくやってくれないか?
340337:2009/08/10(月) 12:42:54 ID:???
いつの間にか直りました。
答えていただいた方ありがとうございます
341Name_Not_Found:2009/08/10(月) 12:57:45 ID:TseukA0S
httpoj.send( data )

このdataの中身はどのように書けばいいんですか?
教えてください
342Name_Not_Found:2009/08/10(月) 13:13:30 ID:???
>>341
XMLHttpRequestでggr
343Name_Not_Found:2009/08/10(月) 13:39:34 ID:NR0uOyEj
>>341
変数名=値&変数名=値&…
値はエンコード。
344Name_Not_Found:2009/08/10(月) 14:59:25 ID:???
なんでも送れるが
345Name_Not_Found:2009/08/10(月) 15:22:14 ID:???
JavaScriptって call by name なの?
346Name_Not_Found:2009/08/10(月) 15:29:16 ID:???
定期乙
347Name_Not_Found:2009/08/10(月) 17:09:23 ID:???
そして参照の値渡しがうんたらかんたら・・・・
348Name_Not_Found:2009/08/10(月) 18:07:46 ID:???
引数渡しについては「Javaと同じ」でいいじゃん。
349Name_Not_Found:2009/08/10(月) 18:12:34 ID:NR0uOyEj
>>345
そうだ(と思ってますが言い切っていいのか不安)。

基本的に関数スコープだし(ブロックスコープが無い)、今のスコープより外のスコープは
直接参照できるから、参照渡ししないで、渡す側が関数で渡したりするよね。
例えばsetIntervalとか、

var a = 0;
setInterval(function(){
    a++;
} , 1000);

これだけで十分だと思ってしまうのは、JavaScriptに慣れてるからなのかな…
350Name_Not_Found:2009/08/10(月) 22:38:00 ID:h+AHNmLv
1から100の間の数で、7の倍数のみを表示する
コーディングを教えてください!!
351Name_Not_Found:2009/08/10(月) 22:40:06 ID:???
for (i=1,n=i*7;n<=100;i++)
352Name_Not_Found:2009/08/11(火) 00:22:50 ID:???
>>351
( ^ω^)超初心者か?
353Name_Not_Found:2009/08/11(火) 00:31:27 ID:???
>352
>352
>352
354Name_Not_Found:2009/08/11(火) 00:38:23 ID:???
for(i=1;i<=100;i++){
  i%7==0 ? alert("7の倍数") : "";
}
355Name_Not_Found:2009/08/11(火) 01:31:50 ID:???
>>354
( ^ω^)超初心者w
356Name_Not_Found:2009/08/11(火) 01:34:30 ID:???
7の倍数の証明は難しいよ。
357Name_Not_Found:2009/08/11(火) 01:59:51 ID:???
>>350
w = [0,1,2,3,4,5,6,7,8,9];
x = [w[0],w[1],w[2],w[3],w[4],w[5],w[6],w[7],w[8],w[9],w[1]];
while(1){
  x[10] = x[10] + x[w[1]];
  switch(x[10]){
    default:
      i = (x[10]++)-w[1];
    break;
  }
  if((x[10] /x[w[7]])==0 || (x[10] % w[7])==0){
    if(x[10] < x[0]){
      continue;
    }else{
      alert("7の倍数!");
    }
  }
}

7の倍数の証明は非常に難しい
358Name_Not_Found:2009/08/11(火) 08:24:38 ID:???
最初から7の倍数の集合だけを扱えば簡単だろって話じゃないのか?
そうじゃなければ、正数で縛ればmod7が0なら倍数だろ
359ベテラン:2009/08/11(火) 08:53:28 ID:???
そう。

var arr = [7, 14, 21, 28, 35, 42, 49, 56, 63, 70, 77, 84, 91, 98];
for (var i = 0, len = arr.length; i < len; i++)
alert(arr[i]);

これが正解。
360Name_Not_Found:2009/08/11(火) 09:08:35 ID:???
var a=0;
do{
a+=7;
alert(a);
}while(a < 100);
361Name_Not_Found:2009/08/11(火) 10:41:49 ID:???
for (var i = 0; i <= 100; i += 7) {
alert(i);
}
362Name_Not_Found:2009/08/11(火) 10:45:34 ID:???
>>361
おしかったな。
363Name_Not_Found:2009/08/11(火) 10:48:10 ID:???
わざと微妙な回答をする流れだろ
364350:2009/08/11(火) 17:14:35 ID:Cw5Tk3aC
みなさん教えてくださってありがとうございます!!
365Name_Not_Found:2009/08/11(火) 18:53:34 ID:???
正しい結果を表示するのは >>359>>360 だけ。
366Name_Not_Found:2009/08/11(火) 19:50:09 ID:???
比較するときにparseIntしたらいいんじゃね
367Name_Not_Found:2009/08/11(火) 19:55:07 ID:???
>>366
それだ!!1
368Name_Not_Found:2009/08/12(水) 00:04:41 ID:???
ある会社の採用面接。
まず数学者が面接室に呼ばれた。
面接官「1+1はいくつですか?」
数学者「1+1は2に決まっています」
面接官「ほう、きっかり2なんですか?」
数学者「…そうです。ぴったり2です。間違いありません」
次は統計学者が面接室に入った。
面接官「1+1はいくつでしょうか?」
統計学者「おおよそ2になります」
面接官「およそ?ぴったり2ではないのですか?」
統計学者「平均して2。誤差率10%の範囲ですが、およそ2ということができます」
最後は会計士が面接を受けた。
面接官「1+1はいくつですか?」
会計士はゆっくりと立ち上がり、ドアの鍵とカーテンを閉めて面接官の隣に座った。
そして面接官の耳元でこっそり囁いた。
会計士「1+1をいくつにしたいんです?」
369Name_Not_Found:2009/08/12(水) 00:44:15 ID:???
つまらな過ぎてワラタw
370Name_Not_Found:2009/08/12(水) 01:29:54 ID:???
その数学者は偽物だな
371Name_Not_Found:2009/08/12(水) 01:37:21 ID:???
プログラマーが面接室に入った
面接官「1+1はいくつですか?」
グラマ「1+1はたぶん2です」
面接官「たぶん?きっかり2じゃないんですか?」
グラマ「int型で計算すると2ですがfloatで計算すると2.00000000でstringだと11でry」
372Name_Not_Found:2009/08/12(水) 04:22:46 ID:???
マジレスすると正解は 200 。
373Name_Not_Found:2009/08/12(水) 07:02:12 ID:???
小学生『1+1=たんぼの田』
374Name_Not_Found:2009/08/12(水) 08:02:26 ID:???
マなら10じゃね?
375Name_Not_Found:2009/08/12(水) 08:25:01 ID:???
>>374
"1"+"1"="11"

プログラマが全て脳内で二進数計算してたらビックリだぜ
376Name_Not_Found:2009/08/12(水) 09:39:32 ID:???
ペアノの公理系によれば、
1. 先頭元0が存在する。
2. 任意の自然数 a にはその後者 suc(a) が存在する。

ここで,定数記号を定義する。(公理における具体的な定数記
号は 0 だけ)
suc(0)=1, (1は suc(0) の略記)
suc(1)=suc(suc(0))=2, (2は suc(suc(0)) の略記)
1+1=2 は足し算なので,それを示すには数学的帰納法を使って和が
定義され,これは次の定理を満たすことが証明される。
定理 単位元 a+0=0+a=a
定理 suc(a)+b=a+suc(b)=suc(a+b)
定理1 suc(a)=a+1
証明 suc(a)=suc(a+0)=a+suc(0)=a+1
定理2 1+1=2 である。
証明
定理1 でa=1 とすると suc(1)=1+1 である。
1=suc(0)であるから suc(1)=suc(suc(0)) である。
suc(suc(0)) の略記は 2 であるから
1+1=2 である。
377Name_Not_Found:2009/08/12(水) 14:40:41 ID:???
>>376
次 10000 + 10000 = 20000 の証明をお願いします。
378Name_Not_Found:2009/08/12(水) 15:05:09 ID:???
有限群{0,1}では1+1=0
379Name_Not_Found:2009/08/12(水) 15:35:19 ID:???
>>378
1 + 1 = 1
1 + 0 = 0
0 + 1 = 0
0 + 0 = 1

であるような群も構成できるだろうが
380Name_Not_Found:2009/08/12(水) 16:03:07 ID:???
だから政治と宗教と野球の話は取引先でしてはいけないと言っただろう…
381Name_Not_Found:2009/08/12(水) 16:32:35 ID:???
>>379
それは + を再定義したか、0 と 1 のラベルを張り替えただけ。

それをやりだすともう Romantic が止まらない。
382Name_Not_Found:2009/08/12(水) 16:34:31 ID:???
あれ?何か違う・・・
383Name_Not_Found:2009/08/12(水) 16:34:58 ID:???
1+1 は 1+1 ではない
384Name_Not_Found:2009/08/12(水) 17:20:50 ID:???
流れぶった切って

var a = new Array();
a[ 1000000 ] = "test";

var b = new Array();
b[0] = "test";

ここで a と b が、それぞれ、どれだけのメモリを食ってるかを調べるにはどうすれば良いんだろう
385Name_Not_Found:2009/08/12(水) 17:26:46 ID:???
サイ本 p.115
JavaScriptは、配列の中で実際に格納する要素だけにメモリを割り当てる
(値を初期化していないインデックスに対応する要素にはメモリを割り当てない)。
386Name_Not_Found:2009/08/12(水) 18:11:49 ID:???
んじゃ
>>384の例で言う a について、
alert( a.length ); の結果が 1000001 だとしても、使ってるメモリは a も b も同じって事かい?
387Name_Not_Found:2009/08/12(水) 18:18:52 ID:???
配列のlengthプロパティは配列のインデックスの最大値より1つ大きい値になる
(配列に格納している要素の個数とは限らない)。
配列に新しい要素が追加されるたびにlengthプロパティも自動的に更新される。

それ以外はシラネ。
388Name_Not_Found:2009/08/12(水) 19:33:16 ID:???
Undefineだっけか?
添字1000000に代入した後1000001までチェックして、未初期化ならメモリには存在しないって事だろ
389Name_Not_Found:2009/08/12(水) 19:45:59 ID:???
ttp://www.dotup.org/uploda/www.dotup.org27598.png
a[100]=1はaの中に名前が100のが1つだと思ったら101個あるのか
390Name_Not_Found:2009/08/12(水) 20:08:36 ID:???
「初心者歓迎」は質問者にだけ許されるんだぜ?
391Name_Not_Found:2009/08/12(水) 20:18:12 ID:???
PHPとかいじってるとよくごっちゃになってしまうから困るArrayをarrayとしたりa['example'] = 1とか書いたり
392Name_Not_Found:2009/08/12(水) 20:23:56 ID:???
>>384はデータ構造としてはこんな感じ
var a = { 1000000: "test", length: 1000001 };
var b = { 0: "test", length: 1};
>>387の言うような仕掛けとかないから等価ではないけどね
393Name_Not_Found:2009/08/12(水) 20:31:30 ID:???
undefinedって奥が深いよね
nullみたいに予約後じゃないからundefined = trueみたいに出来ちゃうし
394Name_Not_Found:2009/08/12(水) 20:44:39 ID:???
>>393
undefinedなんていう変数が存在も予約もされてないだけだぞ?
Undefined型というのが存在するし、言うなればobject = trueしてObject書き換えたと言ってるようなもん
395Name_Not_Found:2009/08/12(水) 22:37:27 ID:???
>>393
まあそのへんは ECMAScript 5 で修正されてるから、そのうち各実装が対応はじめるでしょ

・・・と思いたい
396Name_Not_Found:2009/08/13(木) 18:07:36 ID:???
undefinedって名前の変数定義できたのか。
初めて知った
397Name_Not_Found:2009/08/13(木) 18:20:20 ID:???
小飼さんがいろいろ試してた
398Name_Not_Found:2009/08/13(木) 20:07:29 ID:???
NaNとInfinityもなのか。感想は…小飼さんと同じだなあ。
399Name_Not_Found:2009/08/13(木) 20:45:47 ID:???
そこら辺はGoodPartsにも書かれてましたね
400Name_Not_Found:2009/08/13(木) 21:12:58 ID:???
プライベート変数のあるクラスを作りたい時ってどっちの方がいい?

var hoge1 = function(){
 var private;
 this.getPrivate = function(){
  return private;
 };
};

var hoge2 = (function(){
 var private;
 var func = function(){};
 func.prototype.getPrivate = function(){
  return private;
 };
 return func;
})();
401Name_Not_Found:2009/08/13(木) 21:30:54 ID:???
>>400
クロージャによるプライベート変数は継承でハマる

var hoge1 = function(){
 var private;
 this.getPrivate = function(){ return private; };
 this.setPrivate = function(x){ private = x; };
};

var hoge2 = function(){};
hoge2.prototype = new hoge1();

var a = new hoge2(); b = new hoge2();
a.setPrivate("a");
alert( b.getPrivate() );
402Name_Not_Found:2009/08/13(木) 21:47:49 ID:???
>>400
後者はプライベート変数でもなんでもないぜ
403Name_Not_Found:2009/08/13(木) 21:48:07 ID:???
シングルトンになっちゃうのか…
404Name_Not_Found:2009/08/13(木) 22:13:13 ID:???
命名規則で対処するのが現実的
あとは使えるならgetter/setterを使って隠蔽するとか
405Name_Not_Found:2009/08/14(金) 00:00:09 ID:???
後者は継承しなくてもハマるよな
406Name_Not_Found:2009/08/14(金) 00:20:35 ID:???
シングルトンってこう作るのか…
407Name_Not_Found:2009/08/14(金) 00:28:38 ID:uv8YKQM0
便乗質問です。
上記のような事態を避けるために、クラスの中では
使い捨て変数以外は盲目的にそのクラスのプロパティに
してるんですが、何か弊害になるようなケースが
ありますでしょうか。
408Name_Not_Found:2009/08/14(金) 00:41:06 ID:???
>>401
こうやって継承すれば解決する

var hoge3 = function(){hoge1.apply(this);};

var c = new hoge3(); d = new hoge3();
c.setPrivate("c");
alert( d.getPrivate() );
409Name_Not_Found:2009/08/14(金) 00:45:15 ID:xiqVZsxU
質問失礼します。

firefoxで任意のサイト上でテキストの部分だけを置換したいです。

しかし、document.body.innerHTMLで置換しようとすると問題ありです。
たとえば、"a"という文字列を<b></b>で囲もうとすると
document.body.innerHTML=document.body.innerHTML.replace(/(a)/g, "<b>$1</b>");

■置換前
<a href="yahoo.co.jp">a</a>
■期待する動作
<a href="yahoo.co.jp"><b>a</b></a>
■実際の動作
<<b>a</b> href="y<b>a</b>hoo.co.jp"><b>a</b></<b>a</b>>

となってしまいます。

ノードで辿っていくとかいろいろやったのですが、
やるたんびに新たな問題が出てきます。

IEなら
var rng = document.body.createTextRange();
rng.findText("a", 1, 0));
rng.execCommand("bold", false, null);
rng.moveStart("character");
のようにcreatetextrange関数とexecCommand関数で簡単にできるのですが、
Firefoxではcreatetextrange関数が用意されてないのでエラーになります。
何か簡単な方法は無いのでしょうか?

よろしくお願いします。
410Name_Not_Found:2009/08/14(金) 00:56:45 ID:???
>>408
それじゃ継承はしてないぞ。
411Name_Not_Found:2009/08/14(金) 01:16:56 ID:???
>>409
具体的に何がやりたいか分からないから、もっと簡単な方法があるかもだけど、
childNodes をルート(body) から再帰的に取得して、各要素の nodeType を調べてから置換しては?
412Name_Not_Found:2009/08/14(金) 01:39:50 ID:???
>>409
xpath でやるしかないかな?
document.evaluate('//text()[contains(.,' + 'a' + ')]', document, null, 6, null);
413412:2009/08/14(金) 01:53:46 ID:???
>>409
誤爆先で回答もらえててワロタ
確かに TreeWalker のほうがいいかも
414Name_Not_Found:2009/08/14(金) 01:55:10 ID:???
FF限定ってことはグリモンか何か?
jQueryあたり使うのが一番お手軽なんじゃないのか、とスレ違いのことを言ってみる
415Name_Not_Found:2009/08/14(金) 03:06:55 ID:???
グリモンでjQuery使うやつは死んでいいよ
416Name_Not_Found:2009/08/14(金) 04:38:10 ID:???
Firefox4.0にはprototype.jsが内部で組み込まれるらしいが…
417Name_Not_Found:2009/08/14(金) 04:46:21 ID:???
勘違いだjQueryとProtovisがThunderbird3に組み込まれるんだった
ttp://d.hatena.ne.jp/Rockridge/20090605/1244190022
418Name_Not_Found:2009/08/14(金) 09:19:15 ID:???
Fx3.7でJetPackが統合されたらjQueryも組み込まれることになる
419Name_Not_Found:2009/08/14(金) 11:31:08 ID:???
>>409
誤爆(?)先に回答書いた者だけどタグを使いたいというのを見落としてた。あれではテキストしか入れられないからダメ。
修正版↓
function replaceTextNodeWithHtml(textNode, regExp, repHtml){
if(regExp.test(textNode.nodeValue)){
var box = document.createElement('div');
box.innerHTML = textNode.nodeValue.replace(regExp, repHtml);
var newNode = document.createDocumentFragment();
for(var i = 0; i < box.childNodes.length; i++) newNode.appendChild(box.childNodes[i].cloneNode(true));
textNode.parentNode.replaceChild(newNode, textNode);
}
}
function getTextNodes(node){
var result = [];
var nodes = document.evaluate('.//text()', node, null, 7, null);
for(var i = 0; i < nodes.snapshotLength; i++) result.push(nodes.snapshotItem(i));
return result;
}
420Name_Not_Found:2009/08/14(金) 11:33:25 ID:???
使い方
getTextNodes(document).forEach(function(node){
replaceTextNodeWithHtml(node, /(a)/g, '<b>$1</b>');
});
421Name_Not_Found:2009/08/14(金) 14:41:52 ID:???
javascriptで比較演算子のほうが厳密比較演算子より速く動作するのはなぜですか
型変換がない厳密比較のほうが早いと思うのですが
422Name_Not_Found:2009/08/14(金) 15:37:45 ID:???
>>421
最適化のせいじゃないの?
423Name_Not_Found:2009/08/14(金) 16:06:33 ID:???
ですよね。
424Name_Not_Found:2009/08/14(金) 16:31:15 ID:ME+bLNwd
初めまして。javascritp初心者です。失礼ながら質問があります。ここでやりたいことは、10x10のセルをつくり、個々のセルをクリックできるようにします。 そして、クリックをすると、そのセルの背景色が変わるということです。
どうぞよろしくお願いします。
<title>10X10</title> <script type="text/javascript">
//<![CDATA[
function bgSwap(TD) {
if (TO.style && TD.style.backgroundColor)
TD.style.backgroundColor = 'pink';
else
TD.style.backgroundColor='#ff0000';
}
function gridtable(){
var table = document.createElement('table');
var tbody = document.createElement('tbody');
table.style.border = "0";
for(var i = 1 ; i <= 10; i ++ ){
var tr = document.createElement('tr');
for(var j = 1 ; j <= 10; j ++ ){
var td = document.createElement('td');
td.style.border = "0";
td.style.width = "30";
td.style.height = "30";
td.style.textAlign = "center";
window.event.onclick = bgSwap(td);
tr.appendChild(td);
}
tbody.appendChild(tr);
}
table.appendChild (tbody);
document.getElementById("T").appendChild(table);
}
//]]> </script> </head> <body onload="gridtable()" bgcolor = "aqua"> <div id="T" ></div>
425Name_Not_Found:2009/08/14(金) 17:20:50 ID:???
マルチ

[JavaScript]プログラム作成します
http://pc11.2ch.net/test/read.cgi/hp/1212582365/252
426Name_Not_Found:2009/08/14(金) 21:06:25 ID:???
>>416-417
上と下で全然違うじゃねえかw
427Name_Not_Found:2009/08/14(金) 22:00:12 ID:???
文字が書き換えられたことを知りたいのですが、以下では動作しません。
何か良い方法があれば、ご教示ねがいます。

<span id="id1" onchange="javascript:alert()">aaaa</span>
<input type="button" onclick="javascript:document.getElementById('id1').innerHTML='bbbb'">
428Name_Not_Found:2009/08/14(金) 22:06:25 ID:???
span に onchange なんてねえ
429427:2009/08/14(金) 22:26:02 ID:PI4AdmN+
>>428
そうでしたか...ありがとうございました。
430Name_Not_Found:2009/08/14(金) 22:30:06 ID:???
setIntervalで監視するとか
431Name_Not_Found:2009/08/14(金) 22:33:32 ID:???
(function (){
  element = document.getElementById("id").childNodes;
  if(typeof(tree) == "undefined"){
    var tree = element;
  }else{
    if(tree === element){
      setTimeout(function(){arguments.callee();},100);
    }else{
      alert("変更されたよ!!!1");
      tree = element;
    }
  }
})();

100msごとに監視して変更されたら停止する

まだ動かしてない妄想を書いただけだから分からない
432Name_Not_Found:2009/08/14(金) 22:43:18 ID:xWuX7R6p
質問いたします。
以下のコードを実行すると期待した「test」ではなく undefined と表示されます。

function Test(arg) {
this.arg = arg;
}

Test.prototype.a = function() {
(function() {
alert(this.arg);
})();
};

var obj = new Test('test');
obj.a();


後学のため、メソッド内の関数の中で this が使えない理由が知りたいです。
何卒よろしくお願いします。
433Name_Not_Found:2009/08/14(金) 23:03:35 ID:AiYF2i84
>>432
function(){}はグローバルに属すからthisが変わっちゃうな。
Firebug使って、
console.log('out',this);     // thisはTest
(function() {
console.log('in',this); // thisはwindowsオブジェクト

で、もし(function(){})()を使いたいなら
(function() {
  alert(this.arg);
}).call(this);
こう書き換えればthisが引き継がれる。普通やらないけど。
みたいに中と外でthisを表示してみればわかる。
434432:2009/08/14(金) 23:10:28 ID:???
>>433

即レスありがとうございます。とても勉強になりました!
435Name_Not_Found:2009/08/14(金) 23:40:06 ID:???
>>431
onchangeイベントを発生させるようにした。いろいろ面白いことが出来るな

function DOMonchange(e){
  if((typeof(e)=="object")&&(e!=null)){
    if(typeof(e.DOMloging)=="undefined"){
      e.DOMloging = e.innerHTML;
    }
    if(e.DOMloging === e.innerHTML){
      setTimeout(function(){DOMonchange(e);},10);
    }else{
      e.DOMloging = e.innerHTML;
      e.onchange();//ここでonchange
    }
  }
};
window.onload = function(){
  DOMonchange(document.getElementById("id"));//DOMonchange(element)な感じで呼び出す

  document.getElementById("main").onchange = function(){ //onchangeイベントが呼ばれたらダイアログ
    alert("onchangeイベントが発生したよ!");
  }
};
436Name_Not_Found:2009/08/15(土) 01:12:19 ID:???
ウィンドウを開く↓のjavascript

window.open("./hoge.html", "", "width=500,height=400,top=200,left=200,status=yes,resizable=yes,scrollbars=yes");

で、サイズを示すパラメータwidth,heightを変数で渡したい

ex) //こんな感じにしたい
function fn_open(w,h){
window.open("./window.html", "", "width=w,height=h,top=200,left=200,status=yes,resizable=yes,scrollbars=yes");
}

んだけれども、どうもうまくいかない〜〜orz

どなたかご存知の人いたら、教えてください。
437Name_Not_Found:2009/08/15(土) 01:16:46 ID:???
"width=500,height=400,top=200,left=200,status=yes,resizable=yes,scrollbars=yes"
の部分はただの文字列
"width="+w+",height="+h+",top=200,left=200,status=yes,resizable=yes,scrollbars=yes"
438436:2009/08/15(土) 01:21:09 ID:???
>>437
>の部分はただの文字列
おお〜〜、知らなかったです。
ありがとうございました!!
439Name_Not_Found:2009/08/15(土) 09:54:10 ID:2/WTGaYk
サンプルコードにむやみに無名関数やクロージャ使った解説サイトや解説ブログがいくらか見るのですが
それぞれのコストや速度を通常の関数と比較したサイトはありませんか?
440Name_Not_Found:2009/08/15(土) 12:21:21 ID:???
>>439
さも無名関数(JavaScript用語では関数式)やクロージャが遅いと
言わせたいみたいな書きぶりに見えるのは気のせいかな? ちょっと
計ってみたが、手元では関数: 1360、関数式: 1357 クロージャ: 1162
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var x = 1, y = 1;
function f1() { return ++x; }
var f2 = function() { return ++y; }
function f3gen() { var z = 1; return function() { return ++z; } }
var f3 = f3gen();
var t0 = new Date().getTime();
var count = 1000000;
while(f1() < count) ;
var t1 = new Date().getTime();
while(f2() < count) ;
var t2 = new Date().getTime();
while(f3() < count) ;
var t3 = new Date().getTime();
document.write("f1: " + (t1-t0) + " f2: " + (t2-t1) + " f3: " + (t3-t2));
</script>
</body></html>
441Name_Not_Found:2009/08/15(土) 13:14:52 ID:???
理論上はfunction文定義の関数の呼び出しにも無名関数呼び出しやクロージャと同じようなことが行われてるしなぁ
>>421-422みたいなパターンもあるから測ってみないとなんともだけど

>>440でクロージャが速い結果になったのは、唯一変数を参照しているからだと想像
xとyはwindowのプロパティだし(トップレベルでのvar宣言は無意味)

という仮説の元で、手元のWinXP Fx3.5.2において改めて
>>440のcount = 500000に変えて実行した結果がf1: 4155 f2: 1638 f3: 1434 --(1)
さらに全体を(function(){ 〜 })();で括るとf1: 10 f2: 10 f3: 1090 --(2)
・・・あれ、おかしいなw

最後の状態に以下のf4を追加するとf1: 9 f2: 10 f3: 1069 f4: 69 --(3)
function f4gen() { var o = {count: 1}; return function() { return ++o.count; } }
var f4 = f4gen();

(1)と(2)の差はwindowへのプロパティアクセスによるものかと思ったけど
(3)からしてドット演算子が極端に遅いわけでもないのか
(1)のf1とf2の差も理解できない、Fx3.5でずいぶん意外な結果が出てしまった
442Name_Not_Found:2009/08/15(土) 15:48:52 ID:???
>>441
Fx 3.5 は TraceMonkey の JIT コンパイラが動作してるから
Fx 3.0 でも測定してみることをオススメしたい
443Name_Not_Found:2009/08/15(土) 18:25:04 ID:???
<tag>
 <tag id="x">X</tag>
 <tag>Y</tag>
</tag>
という木に
<tag>
 <tag id="x">X</tag>
 <add>追加されたノード</add>
 <tag>Y</tag>
</tag>
このようにノードを追加するにはどうしたらいいですか
444Name_Not_Found:2009/08/15(土) 21:05:35 ID:???
idがxのtagの後ろに追加すればおk
445Name_Not_Found:2009/08/16(日) 00:59:55 ID:???
無理なのですね。わかりました
446Name_Not_Found:2009/08/16(日) 01:20:17 ID:4hgBZPkk
誰だかわかんねーよw
無理だって言ってる回答が見当たらない
447Name_Not_Found:2009/08/16(日) 01:22:14 ID:???
事故解決しました

var add=document.createElement("add");
add.appendChild(document.createTextNode("追加されたノード"));
document.getElementById("x").parentNode.insertBefore(add,document.getElementById("x").nextSibling);
448Name_Not_Found:2009/08/16(日) 10:17:17 ID:xkMGy7Ub
てすと
449Name_Not_Found:2009/08/17(月) 09:10:22 ID:dbbQhvjx
最近のwebニュースみてると
prototype.jsよりjqueryのほうが主流みたいだけど
やっぱりjqueryのほうが扱いやすいからなんですかね?

両方できることは同じような気がしますが
450Name_Not_Found:2009/08/17(月) 10:35:37 ID:???
どちらも一時の流行りでしょ。自分で組めることが大切です。
451Name_Not_Found:2009/08/17(月) 13:02:36 ID:???
>>449
速度面でprototype.jsは劣るからね
一番の問題はそこだと思う
まぁ使いやすいほう使うのがいいと思うよ
自分はjQueryの書き方がなじめないのでもっぱらprototype.jsだけどね
.NET開発でたとえるならjQueryがVBでprototype.jsがC#って感じだな
452Name_Not_Found:2009/08/17(月) 14:37:28 ID:???
jQueryはかゆいところにまったく手が届かないし
毎度毎度セレクタ経由でアクセスしなきゃならない設計はクソ
あれで喜んでるのって非プログラマだけだろ
453Name_Not_Found:2009/08/17(月) 15:03:41 ID:???
無理にメソッドチェーンしなくたっていいんだぞ?
454Name_Not_Found:2009/08/17(月) 15:12:17 ID:???
jQueryとprototype.jsの違いをまとめてくれ
455:2009/08/17(月) 15:30:16 ID:whZHAZj1
JavaScript初心者です。
質問させていただきます。

先に
DM+="<td><select id='N"+i+"'>"+OP
とforとinnerHTMLの組み合わせのような形で画面上にN1、N2、N3...といったidをもつ<select>をたくさん作ります。
そして後から
document.all.("N"+j).selectedIndex=H3
とforの組み合わせのような形で選択された項目を読み込もうとするものなのですが、
docomo、ソフバンのフルブラウザ機能では問題なく見られます。
ところがau、PC(IE?)ではおそらく.("N"+j).の辺りがエラーになるようです。
説明不足で申し訳ありません。
どうか改善策をよろしくお願いします。

ちなみに僕はパソコンを所持しておらず、携帯でプログラムを書いています。

ちなみにページはこれです。
ttp://indexroom-id.hp.infoseek.co.jp/test/JSgazoushokunin.html

456Name_Not_Found:2009/08/17(月) 15:35:52 ID:???
パソコンを買ってください
457Name_Not_Found:2009/08/17(月) 15:44:56 ID:???
document.all.("N"+j)

document.forms[?].elements["N"+j]

?は適宜変更
458Name_Not_Found:2009/08/17(月) 16:37:31 ID:???
>>457
formの中にselectがあるとどこに書いてあるんだ?
459Name_Not_Found:2009/08/17(月) 16:45:38 ID:???
           __
        , ‐' ´   ``‐、             / ̄:三}
.     /,. -─‐- 、.   ヽ        /   ,.=j
 _,.:_'______ヽ、 .!       ./   _,ノ
  `‐、{ へ  '゙⌒ `!~ヽ. !     /{.  /
    `! し゚  ( ゚j `v‐冫   , '::::::::ヽ、/     無けりゃ加えようぜ!
.    {.l   '⌒      ゙ 6',!   / :::::::::::::::/ __
.     〈  < ´ ̄,フ  .ノー'_ , ‐'´::::::::::::::;/ (_ノ)‐-、
.      ヽ.、 ` ‐", ‐´‐:ラ ':::::::::::::::: ;∠.   ヽ_}  ゙ヽ
        ,.r` "´  /:::::::::::::::::::ィ´  `ゝ  !、  /
     /       / :::::::::::::::: ; '´   /´\ /   r'\
.     i      ! ::::::::::::::/    | .!::::::::/ヽ、.._!ヽ. ヽ、
     {      {:::::::::::;:イ /   ‖i:::::::/:::::::::::::/  \
.      ヽ       ヽ,.ァ‐'´ /ヽ 二 ,/`ヽ、::::::::: /
460Name_Not_Found:2009/08/17(月) 18:14:49 ID:???
>>440
>>441
テストサンクス!
自分でもやってみてもかなり値のばらつきがあって
その原因もイマイチよく理解できないので、もうしばらく調べてみます。
ありがとー
461Name_Not_Found:2009/08/17(月) 19:09:18 ID:???
PrototypeはRoR好きのJS初心者がRubyっぽく使うために作った玩具
jQueryはCSSとSQLしか知らないデザイナーのためにJS初心者が作った玩具
462Name_Not_Found:2009/08/17(月) 19:30:58 ID:???
>>461
CSSとSQL知ってるデザイナーってレベル高いな
463Name_Not_Found:2009/08/17(月) 19:36:57 ID:???
俺ってレベル高かったのか
464Name_Not_Found:2009/08/17(月) 19:39:43 ID:???
>>462
いやいやいやいや
465Name_Not_Found:2009/08/17(月) 20:06:18 ID:???
jQueryはほぼ名前空間を汚さないのがいいな
466Name_Not_Found:2009/08/17(月) 20:22:59 ID:???
jQueryの名前空間を汚すプラグインは山ほどあるがな
467Name_Not_Found:2009/08/17(月) 21:00:39 ID:???
>>452
DOM や DOMの配列 に対して利用できるけど 他にどういう風に使いたいの?
あと、かゆいとこって どんな使い方?
468Name_Not_Found:2009/08/17(月) 21:53:46 ID:???
名前からしてJSONを操作できなければ嘘だな
jQueryのDOM操作なんて所詮ショートカット集
状況に応じたチューニングが必要な場面も多い
469Name_Not_Found:2009/08/17(月) 22:20:16 ID:???
あ、宗教論争始まった?
470Name_Not_Found:2009/08/17(月) 22:43:14 ID:???
宗教論争ということにしたいのですね:-)
471Name_Not_Found:2009/08/17(月) 23:16:46 ID:???
本人達は宗教論争だとも気付かない・・・
472Name_Not_Found:2009/08/17(月) 23:17:01 ID:???
>468
> 状況に応じたチューニングが必要な場面も多い
多くねぇよ糞が。

チューニングが必要な局面は絶対に存在するが、多くは無い。
世の中のJSのユースケースの8割-9割はjQueryで10行以内に収まる。
動作速度よりも、作業速度やド低能でもいじれる事のほうが求められる局面の方が圧倒的に多い。
473Name_Not_Found:2009/08/17(月) 23:27:07 ID:???
>ド低能でもいじれる事
>ド低能でもいじれる事
>ド低能でもいじれる事
474Name_Not_Found:2009/08/17(月) 23:32:39 ID:???
そうやってムキになってレスをする事が、例え荒そうとしたレスでなくとも
結果的に煽られたり荒らしを呼ぶ事に繋がり、荒れる事になる。
475Name_Not_Found:2009/08/17(月) 23:33:18 ID:???
>>472
jQueryで10行以内に収まるような作業しかしたことないん?
476462:2009/08/18(火) 00:17:39 ID:bTSq2J+z
えぇ!普通のデザイナーってCSSもSQLもできるの?
SQLとかマジで教えて欲しいわ。MySQLのパフォーマンスあげるのに苦しみまくり。
フロントエンドとバッグエンドできるなんて最強じゃないか
477Name_Not_Found:2009/08/18(火) 00:21:11 ID:???
デザイナだけど応用もってます
478Name_Not_Found:2009/08/18(火) 01:36:21 ID:???
うんこだけど、汲み取り持ってます
479Name_Not_Found:2009/08/18(火) 02:56:36 ID:SKw/oRRH
両方読み込んでおけばええやん
480Name_Not_Found:2009/08/18(火) 03:42:51 ID:???
IE8で
<input type="password" value="">
<input type="password" value="">
なフォームに
document.getElementsByTagName("input")[0].type = document.getElementsByTagName("input")[1].type = "text";
でtype属性の値が両方変化しない。Firefoxではちゃんと動作する、しかしこうしたら出来る。
document.getElementsByTagName("input")[0].type = "text";
document.getElementsByTagName("input")[1].type = "text";
でも
document.getElementsByTagName("input")[0].value = document.getElementsByTagName("input")[1].value = "example";
は出来る。
なぜだろう
481Name_Not_Found:2009/08/18(火) 12:46:27 ID:???
>>480
document.getElementsByTagName("input")[0].type に代入される値を
チェックすれ。つまり、下記を実行してみるべき。
alert(document.getElementsByTagName("input")[1].type = "text")
482Name_Not_Found:2009/08/18(火) 14:02:09 ID:???
間違ってループ処理の中にalertを入れたときほど悲しいことはない
483Name_Not_Found:2009/08/18(火) 14:16:18 ID:???
よくある
484Name_Not_Found:2009/08/18(火) 15:24:18 ID:???
>>481
ありがとうございます
setAttribute("type","text")で変えてみましたがエラーになりremoveAttribute("type")で削除しても変化なし(両方ともFirefoxだと変わる)
IEでinput要素のtypeを変えるのは無理なようです
485Name_Not_Found:2009/08/18(火) 16:18:04 ID:???
あるある。計測で2万回まわした結果をalertさせようとしたらスコープ
に入っていた。コピペでそれを4個作ってたので大泣きした。
486Name_Not_Found:2009/08/18(火) 17:40:04 ID:???
プロセス落とすしかないからな
487Name_Not_Found:2009/08/18(火) 18:03:01 ID:???
スクリプトを停止できるOperaの勝ち
488Name_Not_Found:2009/08/18(火) 18:20:13 ID:???
innerHTMLで書き出せばいいやん
489Name_Not_Found:2009/08/18(火) 18:21:32 ID:???
DOMスキーな俺は.appendChild(document.createTextNode(""));
490Name_Not_Found:2009/08/18(火) 18:24:20 ID:???
>>484
IEの実装上の制限で、たしか一度でも他要素の子要素になったinputはtypeが変えられなかったような気がする。

>>485
ESCキー上に物置いて放置ならよくやる
491Name_Not_Found:2009/08/18(火) 19:05:53 ID:NHDHlzf4
2つのスクリプトを同時に使いたいのですが
設定するとどちらか一方しか動作しません(後に読み込んだほうが動作)

調べたら関数とかがかぶってるかもしれないと書いてあってそれは分かったのですが
スクリプトがややこしくて気が遠くなってきちゃいます(><)
うまく探すコツみたいなのを教えてください

jQureyとmootoolsを同時に使いたいの
492Name_Not_Found:2009/08/18(火) 19:18:25 ID:???
地道に全部読んで必要なものだけミックスしろ
493Name_Not_Found:2009/08/18(火) 19:26:30 ID:???
console.logで十分…IEは知らん
494Name_Not_Found:2009/08/18(火) 23:30:59 ID:???
フレームワークはソースを読んでから使えよ。
495Name_Not_Found:2009/08/18(火) 23:55:37 ID:X46q9WC9
質問です。
objA = { "aaa": 1, "bbb":2 };
objB = { "ccc": 3, "ddd":4 };

上の2つをあわせて

objA = { "aaa": 1, "bbb":2, "ccc": 3, "ddd":4 };


という形にしたい時には

for (var propName in objB) {
objA[propName] = objB[propName];
}

と上記のような for in で代入していく以外に効率の良い方法ありますか?
496Name_Not_Found:2009/08/19(水) 00:54:46 ID:???
stringでつなげていってevaうわなにをs
497Name_Not_Found:2009/08/19(水) 01:32:05 ID:???
JavaScript にはないね。

実際何をやっているかによっては他の方法もあるかもだけど。
498Name_Not_Found:2009/08/19(水) 01:49:09 ID:nZKu/0El
499Name_Not_Found:2009/08/19(水) 09:45:46 ID:???
prototype.jsやjQuery入れてextend
500495:2009/08/19(水) 14:40:13 ID:???
>>496-497

ありがとうございました。方法が無いと分かっただけでも安心です。
501Name_Not_Found:2009/08/19(水) 17:41:42 ID:N7bYxvhg
>491です

みなさんありがとうございます

でも・・・

http://blog.chibatch.jp/javascript/mootoolsjquery.html
ここに書いてあることを試したのですがうまくいきません(><)
「$」も「jQuery」に書き換えたのですが・・・

このjQueryと(画像をカテゴライズして表示)
http://solidstate.jp/ImageDisplay/gallery/script_77.html
このmootools(画像、web、ムービーをポップアップ表示)
http://solidstate.jp/ImageDisplay/popupMedia/script_72.html

この2つを同時に動かしたいんですぅ(><)
どなたかお願いしますぅぅ(>人<)
502Name_Not_Found:2009/08/19(水) 18:37:16 ID:???
$は自分で作るという方法も
$=function(e){
  return document.getElementById(e);
}
503Name_Not_Found:2009/08/19(水) 18:42:39 ID:???
$は機械生成コード何たら
504Name_Not_Found:2009/08/19(水) 19:00:50 ID:???
jsって記号も変数にできるのか
なんか気持ち悪いね
505Name_Not_Found:2009/08/19(水) 20:13:24 ID:???
記号というかECMAScript3rdならUTF8での変数名が許可されているので、
var 小飼 = 'n00b';
console.log( 小飼 );
のような変態変数名も可能。
506Name_Not_Found:2009/08/19(水) 20:22:48 ID:???
UTF8??
507Name_Not_Found:2009/08/19(水) 20:24:37 ID:???
くぁwせdrftgyふじこlp;@「={
  x : "ふじこ",
}
SyntaxError: illegal character
( ・ω・)
508Name_Not_Found:2009/08/19(水) 21:01:39 ID:???
じゃあ他で訊いてくださいね
さようならノシ
509Name_Not_Found:2009/08/19(水) 21:04:48 ID:???
>>507
それは最後の,のせいじゃね?
510Name_Not_Found:2009/08/19(水) 23:38:58 ID:nZKu/0El
てすと
511Name_Not_Found:2009/08/19(水) 23:52:34 ID:???
テストは他所でやれ。
512Name_Not_Found:2009/08/20(木) 02:31:49 ID:???
ごめんボットネットのテストしてた
513Name_Not_Found:2009/08/20(木) 10:21:56 ID:uT5ZAQvg
宇宙に統一原理があるとすれば、JavaScriptと同じものを異星エイリアン
が開発している可能性はありますか?もっとすごいものでしょうか?
IE124くらいのバージョン?教えてください。
514Name_Not_Found:2009/08/20(木) 11:19:57 ID:???
君テレビの見すぎだよ
515Name_Not_Found:2009/08/20(木) 12:00:35 ID:???
ver1.41じゃなかった?
516Name_Not_Found:2009/08/20(木) 15:58:08 ID:x1Pa5yS5
var cup = ['AAA', 'AA', 'A', 'B', 'C', D', 'E', '巨'];
var size = cup;
alert(size[1] + 'カップ');

// 配列のコピーは参照型で、1つのメモリアドレスに対して変数を増やすことができますが

var AAA = 5;
var size = AAA;
alert(size + 'cm');

// このような値のコピーのときに値そのものを格納せず
// 配列と同じように参照型として代入する方法はありませんか?
517Name_Not_Found:2009/08/20(木) 16:12:51 ID:???
ありません
以下のコードは的外れだけど、実際の設計はほとんどこうなるんじゃない?

var obj = {
  AAA: 5
};
var size = obj;
alert(size.AAA + 'cm');
518Name_Not_Found:2009/08/20(木) 16:25:28 ID:???
javascriptだとArrayやObjectはいわゆる破壊的な書き換えが可能だけど
NumberやStringはそれができない
だから表面的にコピーと参照の区別はない

内部的にはNumberは常にコピー、Stringは常に参照(同じ文字列は同じオブジェクト)だったはず
519Name_Not_Found:2009/08/20(木) 16:46:37 ID:x1Pa5yS5
>>517,518
var msg = ['%E3%80%80%E3%80%80%20%E2%88%A7%EF%BC%BF%E2%88%A7%E3%80%80%E3%80%80',
'%EF%BC%8F%EF%BF%A3%EF%BF%A3%EF%BF%A3%EF%BF%A3%EF%BF%A3%EF%BF%A3%EF%BF%A3%EF%B',
'F%A3%0A%E3%80%80%E3%80%80%EF%BC%88%E3%80%80%C2%B4%E2%88%80%EF%BD%80%EF%BC%89%',
'EF%BC%9C%E3%80%80%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%83%A2%E3%83',
'%8A%E3%83%BC%0A%E3%80%80%E3%80%80%EF%BC%88%E3%80%80%E3%80%80%E3%80%80%E3%80%8',
'0%EF%BC%89%20%E3%80%80%EF%BC%BC%EF%BC%BF%EF%BC%BF%EF%BC%BF%EF%BC%BF%EF%BC%BF%',
'EF%BC%BF%EF%BC%BF%EF%BC%BF%0A%E3%80%80%E3%80%80%EF%BD%9C%20%EF%BD%9C%E3%80%80',
'%7C%0A%E3%80%80%E3%80%80%EF%BC%88_%EF%BC%BF%EF%BC%89%EF%BC%BF%EF%BC%89'
];
alert(decodeURI(msg.join('')));
520Name_Not_Found:2009/08/20(木) 16:50:16 ID:???
   ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ( ´∀`)< ありがとうモナー
  (    )  \________
  | | |
  (__)_)
521Name_Not_Found:2009/08/20(木) 18:43:37 ID:sra+GjLX
javascript で使用できるメモリ量を増やすことは可能ですか?
java の -Xmx<size> オプションみたいなのがあればうれしいのですが。。
522Name_Not_Found:2009/08/20(木) 19:14:46 ID:???
>>521
out of memory起こしてから考えろ
523Name_Not_Found:2009/08/20(木) 22:23:42 ID:???
すんません、ASP.NETのページで下のスクリプトを実装したんですがtextbox1上でOnChangeが発生するとparentElemは定義されていないというエラーが出ます。

var a;
function registerOnControl(parentID) {
var parentElem = $get(parentID); // ASPのツールキットについてるスクリプト
parentElem.onchange = function () {
a = parentElem.value;
};
}

registerOnControl("textbox1");

ASPで下手なクロージャはしない方が良いのでしょうか?
524Name_Not_Found:2009/08/20(木) 22:48:24 ID:uPhUfsFn
>>523
parentElem.onchange = function () {
a = this.value;
};

ではいかんの?
525Name_Not_Found:2009/08/20(木) 23:37:17 ID:???
「webクリエイティブのためのDOM Scriptong」
ぜんぜんわからない
526Name_Not_Found:2009/08/20(木) 23:46:15 ID:???
スクリプd…
527Name_Not_Found:2009/08/21(金) 03:38:28 ID:6xvT0S6R
>>518
numberってコピーなのか
528Name_Not_Found:2009/08/21(金) 04:04:59 ID:???
new すればよくね
BK 臭プンプンだけどw
529Name_Not_Found:2009/08/21(金) 09:18:31 ID:???
僕の中から赤ちゃんが生まれたようだ
530Name_Not_Found:2009/08/21(金) 09:21:28 ID:???
Ajaxやprototypeなどのライブラリ集を学べるいい書籍何か無いでしょうか?
進化が早いせいもあるでしょうが、どれも今の時代では古い内容だとか書かれまくっててどんなのがいいのかなと思いまして。
531Name_Not_Found:2009/08/21(金) 09:30:24 ID:???
公式のドキュメント。
532523:2009/08/21(金) 09:35:17 ID:???
>>524
行けました!!!

多謝!!
533Name_Not_Found:2009/08/21(金) 10:36:46 ID:???
コールバックでのthisはブラウザ依存あったような・・・
534Name_Not_Found:2009/08/21(金) 10:50:08 ID:???
document.styleSheets.item(0)と言うのは、<head>部で定義した、別ファイルの一番上の(最初の)スタイルシートの事なのでしょうか?
例えば、最初に<link rel="stylesheet" type="text/css" href="main.css">としていればこの外部ファイルの事なのでしょうか?
535Name_Not_Found:2009/08/21(金) 10:52:09 ID:???
>>533
>>524のやり方だと大丈夫じゃない?
536Name_Not_Found:2009/08/21(金) 10:55:04 ID:???
>>534
その前に<style>がなければそうなるはず

>>535
thisは関数呼び出し時点で定義されるからクロージャ対象じゃない
537Name_Not_Found:2009/08/21(金) 11:03:33 ID:???
>>530
prototypeはオライリー本で大丈夫だよ
「Prototype & script.aculo.us JavaScriptライブラリによるAjaxアプリケーション開発」
春ぐらいに学んだけど問題無かった
最新バージョンもIE8やchrome対応が主で外見は変わってない
自分でリファレンス作ってPDF化したら結構覚えられた
538Name_Not_Found:2009/08/21(金) 11:59:31 ID:lv+izhl0
すみません。質問します。まずはソースから。

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
<!--
function test(){
alert("■val()の中身■\n\n" + $("#comment").val()); // (1)
alert("■text()の中身■\n\n" + $("#comment").text()); // (2)
alert("■html()の中身■\n\n" + $("#comment").html()); // (3)

if($("#comment").val() == "ああ\nいい") alert("valでtrue"); // (4)
if($("#comment").text() == "ああ\nいい") alert("textでtrue"); // (5)
if($("#comment").html() == "ああ\nいい") alert("htmlでtrue"); // (6)
}
//-->
</script>
</head>
<body>
<form>
<textarea id="comment">ああ
いい</textarea>
<input type="button" value="テスト" onClick="test();">
</form>
</body>
</html>
539538:2009/08/21(金) 12:05:26 ID:lv+izhl0
条件と質問内容。
・textareaタグの中には改行が入っています。
・この場合のjqueryのval()とtext()とhtml()での出力の違いを調べています。
・(1)(2)(3)はアラートで出力されるのは同じように見えます。
------------
ああ
いい
------------
・(4)(5)(6)では、(4)しかtrueになりません。
・(5)(6)でtrueになるには、"ああ\nいい"ではなく、どう書けばよいでしょうか?
540Name_Not_Found:2009/08/21(金) 12:25:34 ID:???
Fxでalert($("#comment").val().toSource());とやるとどうなる?
541Name_Not_Found:2009/08/21(金) 12:31:02 ID:???
typeof($("#comment").val())で何が帰ってくるか見てみたらいいと思うよ
542538-539:2009/08/21(金) 12:42:08 ID:lv+izhl0
>>540
FFで$("#comment").val().toSource()はエラー出ました。



ってかFFで538を実行したら(4)も(5)もtrueになりました。
IEでは、"ああ\nいい"ではなく一体何が入っているのでしょう?
543538-539:2009/08/21(金) 12:44:14 ID:lv+izhl0
>>541
IEでもFFでも、
typeof($("#comment").val())
typeof($("#comment").text())
typeof($("#comment").html())
全てstringが返ってきました。

でもこの情報からは解決に至りません。
544Name_Not_Found:2009/08/21(金) 13:05:21 ID:???
IEのみっていうのがめんどくさくて自分で試す気になれないw

(6)がfalseならたぶんこれもfalseだと思う
document.getElementById("comment").innerHTML == "ああ\nいい"

スペースが混入してるとかの些細な違いだと思うんだよなぁ
IEでの出力方法もよくわからんし、いっそエンコードして見比べてみるか?
alert(encodeURIComponent("ああ\nいい") + "\n" + encodeURIComponent(document.getElementById("comment").innerHTML));
545Name_Not_Found:2009/08/21(金) 13:10:16 ID:WrPwJJEm
¥rも挟まってたりしてな。
546Name_Not_Found:2009/08/21(金) 13:15:07 ID:???
>>545
目に浮かんだw
元のHTMLが\r\n保存で、IEのinnerHTMLやtextnodeでは\nに正規化してくれずに
そのまま吐き出してるのかねぇ
547Name_Not_Found:2009/08/21(金) 13:24:40 ID:???
IEのnode周りはスペース混入しやすい

とメモってた。
548Name_Not_Found:2009/08/21(金) 13:30:11 ID:???
たぶん関係ないと思うけどIEは内部(innerHTMLとか)でタグを大文字で属性の値をくくる”をとってしまうから注意だな
<p style="xxxx">ほげ</p>が<P style=xxxx>ほげ</P>に展開される
549Name_Not_Found:2009/08/21(金) 16:08:30 ID:???
俺さ、まぁそこそこJavaScript出来るんだけどさ、昔から思ってるんだけど『サイ本』って難解じゃない?
良く、サイ本読めとか、サイ本薦める人がいるけれど、JavaScript始める人間に俺は到底薦められないな
分かりやすい事も難解に書かれていると思うし、例文も「何じゃこりゃ?」と思うような例文ばかりだし
確かにある程度のレベルになれば為にはなるし、ある部分では他の本に満足出来なくなったりもするけれど
Perlとか他の言語も含めて、皆本当にオライリー本をメインで学習したの?
550Name_Not_Found:2009/08/21(金) 16:21:29 ID:???
良書だとは言われても入門書として評価してる人はいないかと
とはいえ他に入門書としての良書があるわけでもなく・・・

プログラム初心者が基礎力を学ぶにはjavascriptは学習環境悪いよ
言語やその環境自体は悪くないのにね

他で身につけた人ならjs初心者だろうとサイ本でおk
551Name_Not_Found:2009/08/21(金) 16:29:30 ID:???
>>536
それが定義されるかどうかっていう話なんだけど・・・w
552538-539:2009/08/21(金) 17:37:50 ID:lv+izhl0
\nのとこを\rとか\r\nとかに変えて全ての場合について確認したところ、
何が入っているか判明しました。


【まとめ】
<textarea id="comment">ああ
いい</textarea>
というテキストエリアの、val()とtext()とhtml()の違い。

IEの場合
$("#comment").val() → "ああ\nいい"
$("#comment").text() → "ああ\rいい"
$("#comment").html() → "ああ\r\nいい"

FFの場合
$("#comment").val() → "ああ\nいい"
$("#comment").text() → "ああ\nいい"
$("#comment").html() → "ああ\nいい"


という結果でした。何が入っているかが判明したので質問としては解決なのですが、
IEでは
val()が\n
text()が\r
html()が\r\n
となる理由を解説できる方がいらっしゃったら嬉しいです。
553Name_Not_Found:2009/08/21(金) 17:53:54 ID:???
改行コードは
UNIX,Linux がLF (\n)
Mac がCR (\r)
Windows がCR+LF (\r\n)
554Name_Not_Found:2009/08/21(金) 18:09:16 ID:???
>>553
3つの関数で\n、\r、\r\nという違いが出る理由を
555Name_Not_Found:2009/08/21(金) 18:10:21 ID:???
IEだから
これに行き着くだろう
Fxだと全部おなじなんだから
556Name_Not_Found:2009/08/21(金) 22:24:04 ID:6xvT0S6R
サイ本は個人的には読みにくかった
557Name_Not_Found:2009/08/21(金) 22:35:09 ID:???
オライリーは中級者以上向け
558Name_Not_Found:2009/08/21(金) 22:47:09 ID:???
>>557
ある程度のプログラミング経験があって、なおかつ javascript もそこそこ理解している人向け。
要するに、ある程度解ってから読む本。入門書ではないと思ったほうが良い。
が、他にまともな本もないから、サイ本に行き着く。
559Name_Not_Found:2009/08/22(土) 00:15:59 ID:???
オライリーの本に共通する特徴として、
・手取り足取り冗長なサンプル満載なHOWTO本では無い
・読み物というより、仕様についての解説が書かれたリファレンスとして使うのが良い
・基礎を学んで、それらをベースとした応用力を付ける用途に最適
良くも悪くもこんな感じなので、デザイナが片手間にプログラミングをする時の本としては向かないが、
プログラマ的には良書揃い。
js-users.jpとか立ち上げてヒャッホイしていた素人さん方にも是非読んでもらいたいね。
560Name_Not_Found:2009/08/22(土) 00:20:38 ID:???
それでも初心者に勧めてる光景をよく目にするよね
561Name_Not_Found:2009/08/22(土) 00:27:55 ID:???
で、買って呼んではみたものの早々に挫折ってパターンが多い
562Name_Not_Found:2009/08/22(土) 01:23:18 ID:???
俺なんかプログラミング始めた当初はCもJavaも意味不明でとほほのJSだけが理解できたからJSを始めたんだが
その後気合いでDOMを習得してからはJSのスキルアップも他言語の習得も早かった

というのは非常にイレギュラーなんだろうなあ
563537だけど:2009/08/22(土) 01:39:52 ID:???
マイコミのJSマスターブックは良かったよ。
Cの経験あったけど、9年ぶりのプログラミングでもおkだった。
その後、オライリーJS&DHTMLクックブックを全部解析してたたき込めた(と思う)
まだ始めて1年経ってないけど。
サイ本は高くて買えなかった。
564Name_Not_Found:2009/08/22(土) 02:58:09 ID:???
何であんなリアルな動物の絵ばっかなんだよ。
565Name_Not_Found:2009/08/22(土) 03:35:34 ID:???
かわいい動物の絵だと買いにくいだろ
566Name_Not_Found:2009/08/22(土) 03:43:00 ID:???
最初はDOM操作?何それおいしいの?innerHTML最高ーだったな
567Name_Not_Found:2009/08/22(土) 07:58:54 ID:Nmbh4Dgf
オライリー本は
デスクに何冊かインテリアとしておいておくと
出来る人っぽくみえる。
568Name_Not_Found:2009/08/22(土) 09:36:15 ID:???
形から入るのは重要だな
569Name_Not_Found:2009/08/22(土) 10:04:28 ID:???
>>562
同じくJSから入った口
ネット上のサンプルプログラムを切り貼りしただけでそれなりのものが作れてしまうJSは
入門用言語としてはいいものだと思う
570Name_Not_Found:2009/08/22(土) 10:19:39 ID:???
コンパイラが要らないのが大きいわな。
セミコロン、型変換、数値、この辺りの理解を前提としなければ
本当に初めての人にはちょっと薦めたくはない。
571Name_Not_Found:2009/08/22(土) 10:57:02 ID:???
これほど美しい言語はないと思ってる
572Name_Not_Found:2009/08/22(土) 11:42:10 ID:???
俺もJSからだった
573Name_Not_Found:2009/08/22(土) 11:50:20 ID:???
webってのは
jsにはじまりjsに終わるって
じっちゃんが言ってた
574Name_Not_Found:2009/08/22(土) 12:11:40 ID:???
95年までのwebを知らないとは、お前のじいちゃん若いな。
575Name_Not_Found:2009/08/22(土) 13:04:03 ID:???
スニーカーネットな時代もあったんだぜ
576Name_Not_Found:2009/08/22(土) 18:06:45 ID:???
質問ですが、
以下のようなメタリフレッシュをJavaScriptから変更もしくは停止する方法があれば教えてください
<meta http-equiv="refresh" content="30" />
577Name_Not_Found:2009/08/22(土) 18:31:29 ID:???
それが出来たらメタじゃなくね?
578Name_Not_Found:2009/08/22(土) 18:44:43 ID:???
>>576
なにを試したかとかは書いてほしかったな
まあHTTPヘッダ代替というhttp-equivの特性上、文章レベルでどうこうするのは難しいと思う

実際、Fx3.5でmetaをremoveChildしても、下記の無効なrefreshを足して上書きを期待しても無駄だった
var meta = document.createElement("meta");
meta.setAttribute("http-equiv", "refresh");
meta.setAttribute("content", "a");
579Name_Not_Found:2009/08/22(土) 18:55:41 ID:???
30秒経つ前に JavaScript でリロードしちゃえばいいんですyo!
580Name_Not_Found:2009/08/22(土) 19:31:20 ID:???
innerHTMLを正規表現でmetaとってdocument.write()したらいいとおもうよ!1
581Name_Not_Found:2009/08/23(日) 01:31:19 ID:???
HTML内に、
<input type="hidden" name="hogehoge" value="ageage">
というタグがあったとします。(id=〜やclass=〜は無いものとします)

このタグにjqueryのセレクタでアクセスするのに、
$("[name='hogehoge']")
↑これはOK
$("input[name='hogehoge']")
↑これもOK
$("[type='hidden'][name='hogehoge']")
↑これもOK

$("form:hidden[name='hogehoge']")
↑これが×
なんですが、この4つ目のように
Form要素系と[attribute=value]系を組み合わせることは
できないんでしょうか?
582Name_Not_Found:2009/08/23(日) 02:19:15 ID:???
$("form[type='hidden'][name='hogehoge']")では?
583Name_Not_Found:2009/08/23(日) 03:06:03 ID:???
それをいうなら
$("input:hidden[name='hogehoge']")
584581:2009/08/23(日) 06:26:19 ID:???
>>583
そちらでできました!
ありがとうございました。
585教えてください  ◆wSaCDPDEl2 :2009/08/23(日) 08:48:00 ID:???
var w =null ;

function closeWindow() {
if (w) { w.close(); w =null ; }
}


これって、wがnull値なら、windowを閉めて、null値を代入しろっていう意味でしょうか?

586Name_Not_Found:2009/08/23(日) 09:31:00 ID:???
サンプルを信じるな
587Name_Not_Found:2009/08/23(日) 09:36:54 ID:???
なんのサンプルだ
588Name_Not_Found:2009/08/23(日) 09:50:43 ID:???
>>585
逆だ
589Name_Not_Found:2009/08/23(日) 10:19:11 ID:oxPs9IUf
>>584
追記すると
formタグについてる属性じゃないからね、name="hogehoge"
590Name_Not_Found:2009/08/23(日) 11:37:19 ID:???
>>582wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
591Name_Not_Found:2009/08/23(日) 13:42:38 ID:???
^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)(^o^)
hiddenはプロパでしゅ。
592Name_Not_Found:2009/08/23(日) 16:47:25 ID:???
Firefoxで自作のJavaScriptのプログラムを動作させてみたところ、
if(NN6){
ここにsyntax errorが出てしまうのですが、

if(NN6){
document.getElementById(lyr).style.left=x;
document.getElementById(lyr).style.top=y;
}

これのどこかに構文の誤りがあるのでしょうか?
593Name_Not_Found:2009/08/23(日) 16:53:45 ID:7uy9EibQ
なぜmsnのサイトは揃いもそろってみんなあんなに重いのでしょうか?よく
は分からないですが、javascriptの組み方が冗長で解析に時間がかかって
いるような気がしてなりません。ご存知の方、真実を明らかにして下さい。
594Name_Not_Found:2009/08/23(日) 16:56:09 ID:???
>>596
その前の行はどうなってる?
595Name_Not_Found:2009/08/23(日) 17:01:18 ID:???
>>596
早く、答えてください(ヽ´ω`)
596Name_Not_Found:2009/08/23(日) 17:17:08 ID:???
>>592
lyrを””でくくれ。
597Name_Not_Found:2009/08/23(日) 17:51:14 ID:???
>>592
x と y は数値じゃなく、単位 ゙px゙ まで含んだ文字列を代入してるか?
598592:2009/08/23(日) 18:14:49 ID:???
自己解決しました。

function lyrSetPos( lyr , x , y ) {
if ( NN6 ) {
document.getElementById( lyr ).style.left = x;
document.getElementById( lyr ).style.top = y;
}
if ( IE5 ) {
document.getElementById( lyr ).style.pixelLeft = x;
document.getElementById( lyr ).style.pixelTop = y;
}
}

このように変えれば、うまく行くみたいです・・・なんでかはわかりませんがorz
599Name_Not_Found:2009/08/23(日) 19:05:20 ID:oxPs9IUf
>>593
MSNのソース確認したら
確かにJSファイルが大量に書いてあった。

ただ内部の処理が分からんからなんともいえぬ
600Name_Not_Found:2009/08/23(日) 19:10:05 ID:???
なら全部読んでからレスしろよ。
601Name_Not_Found:2009/08/23(日) 19:56:45 ID:???
質問です。環境はWinXp/IE8/JS1.3です。
form.text.valueの内容を、
何らかの手段でCR(\r)を削除したテキスト(最終的にはCSV作成の為のスクリプトにするので)
を書き出したいのですが、
試しにdocument.openとwriteによって別窓にテキストのみ出力したけれども、
そのドキュメントをShift_JIS形式のテキスト(.txt)で保存すると
日本語が&#〜;という(すみません。正式名は分かりませんが)文字に置き換えられていました。
保存前のドキュメントの文字コードがEUCで灰色で選択されており固定だった事もあるのかと思いましたが、
ググってみるとcharsetで文字コードを指定しているという事が分かりました。
しかし、余計なタグは省きたいため、innerHTMLにタグを挿入してcharset="shift_jis"を埋め込む方法は避けたいのです。
文字コードの設定等、或いは間接的に\rを除外してファイルに持っていく方法がありましたら、教えてください。
お願いします。
602601:2009/08/23(日) 20:18:22 ID:???
ごめんなさい。
多分無理かもしれません。text.valueの時点で\r入ってるかもorz
603Name_Not_Found:2009/08/24(月) 08:50:15 ID:???
> form.text.valueの内容を、何らかの手段でCR(\r)を削除したテキスト
String.prototype.delcr = function() {
    this.replace(/\r+/g, '');
};
alert(form.text.value.delcr());
604Name_Not_Found:2009/08/24(月) 08:57:19 ID:???
603のレスをコピーすると
&#160;
という文字が4つ並んでいる。
パワーソフト・HTML特殊文字一覧
http://www.pst.co.jp/powersoft/html/htmlChar.htm

PCのブラウザならば変換されて表示。
携帯では変換されないことが多い。
605Name_Not_Found:2009/08/24(月) 09:43:25 ID:???
JavaScriptってさ、言語としては難しくないけれど、Ajaxを利用しHTTPの知識も入ってくると、とたんに難しくならない?
606Name_Not_Found:2009/08/24(月) 11:43:00 ID:YFztsAu+
StaticなNodeはOnLoadされたときにまとめてキャッシュしておきたいのですが
何度もOnClickで呼び出す関数から参照する場合は
どうやってキャッシュすれば速くなるのですか?
607Name_Not_Found:2009/08/24(月) 12:55:28 ID:???
>>605
逆だ、おまえさんがJSを使って難しいことに挑戦してるだけ
非同期は一筋縄じゃいかない、それでもスレッドがないだけマシ
608Name_Not_Found:2009/08/24(月) 14:37:24 ID:???
ライブラリ出てだいぶ楽になったけどね。
prototype.jsとかjQueryとか
609Name_Not_Found:2009/08/24(月) 15:03:51 ID:???
GUIやらイベントやらが絡んでもシングルスレッドってのがJSを簡単にしてるよな
610Name_Not_Found:2009/08/24(月) 16:14:20 ID:???
Ajaxって言っても結局ほとんどはresponseTextかresponseXMLを取るだけでそれ以上はCGI側の問題だし、
ライブラリ使わなくても同等なものの実装はたかが数十行だし。
それ以上のことをしようとしてるなら難しいけどさ
611Name_Not_Found:2009/08/24(月) 17:56:12 ID:???
>>610
それはAjaxではない。Ajax言いたいだけ
612Name_Not_Found:2009/08/24(月) 18:20:23 ID:???
mixiアプリってHTMLとJavaScriptとXMLから構成されると説明されてるけど
mixiアプリのグラディウスとかってあれメインはJavaScriptで作られてるの?
だとしたらJavaScriptすげえね
613Name_Not_Found:2009/08/24(月) 21:00:24 ID:???
じゃあ>>611の言うAjaxは何なんだと
614Name_Not_Found:2009/08/24(月) 21:38:12 ID:???
Firefoxのwindow.innerHeightと同じ値をIEで取るようにするにはどうしたらいいですか

今はdiv要素をappendChildしてスタイルをposition:absolute;bottom:0px;したものをoffsetTopで取っています
615Name_Not_Found:2009/08/24(月) 22:24:13 ID:???
616Name_Not_Found:2009/08/24(月) 23:16:49 ID:???
>>613
Web2.0(笑)じゃないの
617Name_Not_Found:2009/08/24(月) 23:17:22 ID:???
http://d.hatena.ne.jp/gyuque/20090211
これやってみたいけど俺文系でさー
数学は行列とかやってないんだよね(やってても忘れてるだろうけどw)
こういう3Dがらみになるとプログラムって急にむずかしくなるよね
ということでこういうのをやってみたいんだけど
何を勉強したらよいですか?
618Name_Not_Found:2009/08/24(月) 23:37:45 ID:???
>>617 「実例で学ぶゲーム3D数学」
619Name_Not_Found:2009/08/24(月) 23:43:22 ID:???
>>617
そのページがJS使ってるだけで、まったくもってスレチな質問だなw
ム板の画像処理スレあたりか?

基礎として二次元平面、特に三角関数は必須だけど
その辺押さえていればあと習うより慣れろでなんとかなるんじゃね
620Name_Not_Found:2009/08/25(火) 00:01:35 ID:???
ajaxって言う割にはxmlはあんまり使われてないよな…
621Name_Not_Found:2009/08/25(火) 00:15:00 ID:???
>>618-619
ありがとう
この本調べてみたけどよさそうだね
C++なのがちょっと不安だけど
二次元平面・・・三角関数・・・
聞いたこと歩けどどんなのだっけってかんじのものばかりだわ
頑張って勉強してみる
622Name_Not_Found:2009/08/25(火) 00:20:06 ID:???
非同期にデータを読み込んでおくので
ユーザーアクションと表示のタイムラグが小さいのがAjax

ユーザーアクションと同時に非同期にデータを読み込むので
表示までのタイムラグが大きいのが似非Ajax
623Name_Not_Found:2009/08/25(火) 06:49:59 ID:???
>>622
それはオレオレ定義だな。

極めて単純に、当時の実装であった Msxml2.XMLHTTP.3.0 を初めて見た馬鹿外人が感動をすなおに書き記したら、意外にも殆どの人間が知らなかった、というだけ。Mozillaの猿真似も含めて、そのバズワードで呼ぶようになった。
それ以前に、Msxml.DOMDocument のload()メソッドがよりポピュラーであり、何が便利だったかと言えば、非同期ではなく、同期できることだった。イベントドリブンなコードを書く必要がなくなったのは一部の非プログラマな人々には密かに好まれた。
624Name_Not_Found:2009/08/25(火) 07:05:37 ID:???
>>620
実際のところ、その言葉が出た頃には、サーバーのスペックが過剰な傾向に進む兆しがあったわけで、馬鹿外人がその簡易クライアント作成APIに気づくのが遅すぎた感がある。
あるいは、IE5が出た瞬間から知っていた俺なんかが使って示してやれば、当時(1999年)はまだ有意義だったかもしれない。ちなみにその頃は一般にウェブオートメーションと呼んでいて、それで会話は成立していた。

今となっては、本当に必要としているサイトは極めて、本当に極めて、稀である。何故なら、全てをサーバーでやっても全く困らないほど、サーバーマシンのスペックは上がったからだ。
同時に、日本のサイトでケータイが主流になってきた時期とも重なる。日本の特殊事情から、ケータイサイト向けの処理命令は全てサーバーで行わなければならない(ならなかった)。従って、日本での使用はどれもが不要な遊びの域を出ていない。

もし現在でも有意義な使い方があるとすれば、responseBodyプロパティと ADODB.Stream の組み合わせによるファイルのやり取りだと、俺個人は思っている。
ローカルのデータで外に出して構わない物をやり取りする時に使える。この使用だと、時々ファイルサイズが巨大になるが、俺の狭い経験だけで言わせてもらえば、処理を完遂できなかった事は無い。
625Name_Not_Found:2009/08/25(火) 13:58:04 ID:k9KZbshE
テーブルにマウスオーバーするとセルの色が変わるものを作っています。
ライブラリが結構ありますが、自作したいと思い、以下のようにしました。

<tr onMouseOver="this.style.backgroundColor='#CCCCCC'" onMouseOut="this.style.backgroundColor='#ffffff'">

これでセルがハイライトされるのですが、関数にまとめる方法がわかりません。
どうすればいいのでしょうか?
626Name_Not_Found:2009/08/25(火) 14:08:19 ID:???
<head>
<script type="text/javascript>
window.onload = function(){
  for(i=0;i<document.getElementsByTagName("tr").length;i++){
    document.getElementsByTagName("tr")[i].onmouseover = function(){
      this.style.backgroundColor = "#cccccc";
    }
    document.getElementsByTagName("tr")[i].onmouseout = function(){
      this.style.backgroundColor = "#ffffff";
    }
  }
}
</script>
</head>
627Name_Not_Found:2009/08/25(火) 14:17:55 ID:???
こういうこと?いろいろ手抜きしてるのでそのへんは脳内補完よろ

window.onload = function(){
 var tr = document.getElementsByTagName('tr');
 for(var i=0, n=tr.length; i<n; i++){
  tr[i].onmouseover = function(){this.style.backgroundColor='#CCCCCC'}
  tr[i].onmouseout = function(){this.style.backgroundColor='#ffffff'}
 }
}
628625:2009/08/25(火) 14:33:07 ID:k9KZbshE
>>626-627
ありがとうございます。

window.onloadをしないといけないのでしょうか?
ページによっては他で使っている場合があるので
windows.onloadをしない方法があればと思っていたのですが・・。

仕様的にwindow.onloadを使わないと関数としてまとめられない場合は
違う方法を考えてみます。
629Name_Not_Found:2009/08/25(火) 14:56:53 ID:???
>>628
document.addEventListener / attatchEvent を使うか
<script>をbodyの最後に書けばOK
630Name_Not_Found:2009/08/25(火) 15:36:22 ID:???
>>628
まだ読み込まれてない要素を参照するのは不可能。
1行目しか読み込まれてないのに2行目にあるものを知ることは出来ないといえば分かるだろうか
>>629のようにしたらいい
631Name_Not_Found:2009/08/25(火) 16:16:39 ID:q0HS8nzR
あげ
632Name_Not_Found:2009/08/25(火) 17:37:41 ID:???
<tr onmouseover="onmouse(this, true);" onmouseout="onmouse(this, false);">

function onmouse(elm, mouseover){
 elm.style.backgroundColor= mouseover ? '#cccccc' : '#ffffff';
}

とか?処理本体をHTML内に書かないという意味では若干良くなってるかと
633Name_Not_Found:2009/08/25(火) 17:51:50 ID:???
未だにonclickとかをHTMLに書く人っているのか
634Name_Not_Found:2009/08/25(火) 18:24:10 ID:???
俺かくよ
<div id="a" onclick="hoge('a')"></div>
<div id="b" onclick="hoge('b')"></div>
こういう複数ある状況なら
ていうか書き方知らないだけなんだけど
js内にかくときって
document.onclick=function(){
}
ってかんじだっけ?
635Name_Not_Found:2009/08/25(火) 18:32:51 ID:???
未だにonclickプロパティとかを書く人っているのか
636Name_Not_Found:2009/08/25(火) 18:55:01 ID:???
未だにonmouseoverとonmouseoutをセットで書く人っていたのか
637Name_Not_Found:2009/08/25(火) 19:27:36 ID:???
>>635-636
今時の書き方おしえて
638Name_Not_Found:2009/08/25(火) 19:47:09 ID:???
addEventListenerじゃないの
まぁクロスブラウザで楽にしたいならjQueryのbind使えば
639Name_Not_Found:2009/08/25(火) 19:58:43 ID:???
>>638
thx
しらべてみるお
640Name_Not_Found:2009/08/25(火) 19:59:13 ID:???
bindってある意味レガシーの極みだよな…
641Name_Not_Found:2009/08/25(火) 20:20:52 ID:???
>>638
今時っていうか前世紀からある方法なんだが
イベントのバブリングを利用すれば
あるノード(currentTarget,this)以下で発生したイベント(target,srcElement)は全て拾える
mouseoverとmouseoutはどっちでイベントが発生したかの違いに過ぎないので、
どっちかだけ監視しておけばrelatedTarget(fromElement,toElement)で両方分かる

イベントリスナーはcloneNodeとかinnerHTMLへの追記とかであっさり消えるので
できるだけ遠くから監視するのが無難
あるいはHTMLのイベント属性として書いておけば生き残る可能性が高い
状況によってはonclickプロパティよりもonclick属性をHTMLに書いた方がまし

この辺はライブラリの使用に関係なく
イベントモデルを知らないとどうにもならない
642Name_Not_Found:2009/08/25(火) 20:46:05 ID:???
jsありきの文章(ウェブアプリとか)だったらonclick属性とか使うのもありだと思う
643Name_Not_Found:2009/08/25(火) 20:47:28 ID:???
そもそもなんでそんな敬遠するのさ
644Name_Not_Found:2009/08/25(火) 20:58:10 ID:???
流行り廃りが好きな人なんじゃね
645Name_Not_Found:2009/08/25(火) 21:09:46 ID:???
>>643
ライブラリとかだとhtmlの記述から独立してる方が再利用性高いとかそんな感じ
646625:2009/08/25(火) 22:20:29 ID:k9KZbshE
>>632
この方法が一番良いですね。わかりやすいと思うし。
みなさん、ありがとうございました。
647Name_Not_Found:2009/08/25(火) 22:34:40 ID:???
個人的にはロジック部分をひとまとめに書きたいから避けてる
再利用とかは余り考えてないけど、点在すると追うのがめんどい

CSSでstyle属性よりもstyle要素でid指定のほうが主流なのと似たようなもんじゃないかと
648Name_Not_Found:2009/08/25(火) 22:45:32 ID:???
>>633
>>635
トラッキング用のコードを埋めるためにa要素なんかにonclick属性ベタ書きさせる奴とかいるぜ
649Name_Not_Found:2009/08/26(水) 02:25:37 ID:???
var class = {
    add: function(){
        return a+b;
    },
    sub: function(){
        return a-b;
    }
}
alert(class.add + class.sub);

a,bをclassのメンバ変数として宣言したいとき
var class = {
    var a = 1;
    var b = 7;
    add: function(){
とするとエラーになりますが、
    a: 1,
    b: 7,
    add: function(){
        return class.a-class.b;
とはせずに、add,subから参照できるa,bはどうやって宣言すれば良いでしょうか?
650Name_Not_Found:2009/08/26(水) 02:26:46 ID:zUQPewIy
    ∧_∧  / ̄ ̄ ̄ ̄
  ∧( ´∀`)< あげ
 ( ⊂    ⊃ \____
 ( つ ノ ノ
 |(__)_)
 (__)_)
651Name_Not_Found:2009/08/26(水) 02:56:47 ID:???
var class = (function (){
 var a = 1, b = 2;
 return class = {
  add: function(){
   return a+b;
  },
  sub: function(){
   return a-b;
  }
 }
})();
652Name_Not_Found:2009/08/26(水) 03:00:48 ID:???
あなるほど、ありがとうございます。
653Name_Not_Found:2009/08/26(水) 03:24:56 ID:???
return周りをミスったけど察して
654Name_Not_Found:2009/08/26(水) 10:01:47 ID:???
Ajax(HTTP非同期通信)ってどういうところに使われているのですか?
パッと見た感じ有名なGoogleMapとかしか使われていないような気がするのですが・・・
それほど主流じゃないのでしょうか?
655Name_Not_Found:2009/08/26(水) 10:06:05 ID:???
>>654
パッと見ただけgooglemapsにたどり着いたのがむしろすごいわ
むしろ最近ならgooglemaps以外の方が目立つだろ
656Name_Not_Found:2009/08/26(水) 10:13:14 ID:???
>>655

このサイトではだいぶAjaxが使われているようですが、どの辺なのでしょうか?
http://www.nasa.gov/home/index.html
657Name_Not_Found:2009/08/26(水) 10:15:30 ID:???
>>654
YahooかGoogle開いて、適当なキーワード打ってみ
658Name_Not_Found:2009/08/26(水) 10:23:19 ID:???
>>657

ごめんなさい、言っている意味が分からないのですが
659Name_Not_Found:2009/08/26(水) 10:38:53 ID:???
>>658
まずやってみろ、文句はそれから言え
JSが無効ってオチはなしな
660Name_Not_Found:2009/08/26(水) 10:44:50 ID:???
Googleに関していえばGoogleMapだけじゃなくあらゆるところで使ってるよ
GmailやGoogleドキュメントなんかのMap以外のWebアプリケーションにも使われてるし
普段よく使うものでは検索ボックスに途中まで入力したら候補がでてくるやつもそう
Ajaxが使われるWebアプリケーションで代表的なのはチャット
リッチ性を追求したEコマースアプリケーションでも使われる
http://examples.adobe.com/flex3app/flex15/flexstore/flexstore.mxml
これはFlexの例だけどこれをAjaxに置き換えることも可能(購入情報の通信なんかで使う)
AjaxはPOST,GETメソッド等は使うがページ遷移を行いたくない
Webアプリケーションなんかを扱うときによく使われる
661Name_Not_Found:2009/08/26(水) 10:50:20 ID:???
>>659は結局Ajaxの事は何も知らないヤシとみたwww
662Name_Not_Found:2009/08/26(水) 11:01:36 ID:???
>>660

ありがとうございます
663Name_Not_Found:2009/08/26(水) 11:17:57 ID:???
659が言ってるのは検索候補表示のことでしょ
たしかに一番身近なよい例だと思うけど
逆に身近すぎて初心者にはわかりにくいのかも
664Name_Not_Found:2009/08/26(水) 11:29:09 ID:???
む、検索候補表示って言い方は無いか
GoogleでいうSuggestの事ね
665Name_Not_Found:2009/08/26(水) 17:39:46 ID:???
皆はライブラリは何使ってるの?
俺は基本のprototype・・・
666Name_Not_Found:2009/08/26(水) 20:15:43 ID:???
中級者はオレオレライブラリをどんどん書いて黒歴史にしていけ
667Name_Not_Found:2009/08/26(水) 20:23:37 ID:???
だいたい似たような機能はあるんだよな、オレオレライブラリ。
addEventListerとか、getElementsBySelectorとか、Array.eachとか。

はじめはよく使う関数をいくつかまとめただけだったのに、
いつのまにやらプクプクとふくれて…
668Name_Not_Found:2009/08/26(水) 21:37:04 ID:???
去年getElementsByClassNameがほしいなとおもってたけど
HTML5から標準実装だってな!
BANZAI!IEは氏ね
669Name_Not_Found:2009/08/26(水) 21:52:12 ID:???
document.querySelectorで全部できるようになるんだろ

昔作ったオレオレライブラリは見たくもない
670Name_Not_Found:2009/08/26(水) 22:02:06 ID:???
問題はいまだに古いブラウザ使ってる阿呆が多いことだな
PC初心者とかほどがあるだろ
671Name_Not_Found:2009/08/26(水) 22:24:23 ID:???
getElementsByClassNameはふつーの感覚なら最初から候補に
なってるでしょ。CSSとの連動思想が弱いんですよ。
672Name_Not_Found:2009/08/26(水) 23:02:45 ID:???
ByNameはあるのにByClassNameが無いのはおかしいニダ
673Name_Not_Found:2009/08/26(水) 23:04:24 ID:???
document.querySelector
これいいね感動した
674Name_Not_Found:2009/08/27(木) 00:12:38 ID:???
getElementsByClassNameは俺も作ったことあるけど、

Util.getElementsByClassName = function(parentNode, className){}

とかいう格好悪い定義になったり、
使いまくると速度的にボトルネックになったり、地雷すぎたなあ。

querySelectorに期待だが、いつから解禁したものか。
俺の感覚だと非対応ブラウザのシェアが多くても5%未満にならないと使っちゃいけない気がするしな
675Name_Not_Found:2009/08/27(木) 00:49:24 ID:???
>>674
querySelector実装したライブラリ使えばいいんじゃね
676Name_Not_Found:2009/08/27(木) 01:19:34 ID:???
だから速度をどうするのかとw
ページ内にノードが1000ぐらいあって、しかも1000周ぐらいするループ中でうっかり使ってみろ、目も当てられない
677Name_Not_Found:2009/08/27(木) 01:25:19 ID:???
ライブラリでClassNameみたいなの実装すると必然的にノードを何周も駆け回る事になるから遅くなるね
678Name_Not_Found:2009/08/27(木) 01:38:24 ID:???
へぇ、さすが。勉強になるわ(^。^)
679Name_Not_Found:2009/08/27(木) 01:39:43 ID:???
対応ブラウザでもループ内では使わないわ
680Name_Not_Found:2009/08/27(木) 03:15:11 ID:???
だがjqueryでは普通に見る罠
681Name_Not_Found:2009/08/27(木) 04:30:33 ID:???
ブログ等で動画を貼ってあるのもAjax?
682Name_Not_Found:2009/08/27(木) 04:32:19 ID:???
あれはただの埋め込み(embed)だろ
683Name_Not_Found:2009/08/27(木) 08:59:46 ID:???
jqueryとprototypeはどっちが人気があって使いやすいのですか?
一応どっちも軽くはやったのですが、現場などで使うような場合は他ライブラリなどとの干渉問題などもあるのかもしれませんし
そこら辺が分からないもので・・・

dojoにすればいいのでしょうが、巨大化するのもあまり好ましくないのかなとも思ったりするもので

684Name_Not_Found:2009/08/27(木) 15:08:51 ID:???
example = {
   example : function(){
    /*expression*/
  }
}
example = function(){
   example.example : function(){
    /*expression*/
  }
}

example.example()を呼び出すときはどっちが早い?
685Name_Not_Found:2009/08/27(木) 15:15:17 ID:???
JavaScriptでおk
686Name_Not_Found:2009/08/27(木) 15:15:47 ID:???
>>684
前者は "example" : function(){} って書かないとエラらない?
後者は文法的に駄目じゃない?

ためしてないけど。
687Name_Not_Found:2009/08/27(木) 15:22:11 ID:???
example.example = function(){
でしたミスです
688Name_Not_Found:2009/08/27(木) 15:50:07 ID:???
>>684,687
後者はexample()を一度実行しないとexample.exampleが定義されないから
クロージャ不要なら無駄手間

example = function(){};
example.example = function(){};
と前者の勝負だとわからんけどおそらく誤差

>>686
変数名として使える文字列ならダブルクォートいらん
689Name_Not_Found:2009/08/27(木) 15:54:41 ID:???
誤差かー。どちらにしろ大きく変わりそうもないから見やすい前者がいいかな
ありがとう
690Name_Not_Found:2009/08/27(木) 17:40:18 ID:JAMXpo8a
>>688
>変数名として使える文字列ならダブルクォートいらん

むう、そうか。
既出のexampleとかぶるかと思っちゃった。
691Name_Not_Found:2009/08/27(木) 18:39:36 ID:???
>>690
左辺は評価されないから変数展開とかもない
どうしても動的に定義したいなら
example = {};
v = "dynamic";
example[v] = function(){};
692Name_Not_Found:2009/08/27(木) 19:32:36 ID:???
連想配列定義する時に、キーを""で囲む囲まないでパフォーマンスは変わる?
693Name_Not_Found:2009/08/27(木) 20:57:19 ID:???
>>692
仕様上は変わらん、実装の都合はしらん

つーかお前らそんな細かいところで気になるならベンチとれ
694Name_Not_Found:2009/08/27(木) 23:08:44 ID:???
window.onmousemoveとかって例えば<div id='test'></div>があったとき、
1.testの範囲だけ(から)の値を取得できないの?
layerXで取れるけど、<div id=〜〜が一杯あるとき、別のdivにまで反応してしまうのです。
2.あと、windows2000、firefox3でやってるんだけど、
 onMouseMoveだと上手く行かなくてonmousemoveだと上手く行く、
 おそらく他のも同じなんだけどこれはどうしてなんでしょうか。
よろしくおねがいします
695Name_Not_Found:2009/08/28(金) 09:22:52 ID:???
>>694
最小限でいいから再現できる実際のコードを
696Name_Not_Found:2009/08/28(金) 10:04:18 ID:evFFHIQO
すみません、javascriptでラジオボタンの選択をさせるのはどうすればいいのかお教えください。
PHPで作成しています。ソースは

<script type="text/javascript">
<!--
function sentid(param){
var tid = param.id;
document.getElementById(tid).checked = true;
}
//-->
</script>

中略

<? for($i=1;$i<5;$i++){ ?>
<input id="radio<?= $i ?>" type="radio" name="radio" value="<?= $i ?>" style="width: 25px;" onclick="sentid(this);return false;" />ラジオ<?= $i ?>
<? } ?>

中略

これでは作動しませんでした。javascript使わなくても選択できるのはわかってるんですけど、
onclickで選んだら下に次の選択肢が出るようにもしているので、onclickで選択できるようにしたいのですが・・。
習い始めなのでソースもおかしいとは思いますが、よろしくお願いいたします。


697Name_Not_Found:2009/08/28(金) 10:38:14 ID:???
><? for($i=1;$i<5;$i++){ ?>

PHP疎いからなんだけど、これほんとにPHPか?
ブラウザで受信したHTMLのソースはちゃんと整形されてた?
698Name_Not_Found:2009/08/28(金) 10:40:47 ID:???
<? 〜 ?>
も存在はするのか、すまん
でもオプショナルらしいけど、そのサーバで使えることは確認した?
699Name_Not_Found:2009/08/28(金) 10:44:10 ID:???
>>696
・onclickが呼ばれた時点で対象radioは既に選択状態
・return falseすると「クリックしなかった」ことになる
・onclickのparamはradioを指してるんだから、敢えてgetElementByIdをするのは無駄

んだから↓でいいんじゃないの?つかこれくらい自分でデバッグしろよ

<script type="text/javascript">
<!--
function sentid(param){
alert(param.checked);
}
//-->
</script>

<? for($i=1;$i<5;$i++){ ?>
<input id="radio<?= $i ?>" type="radio" name="radio" value="<?= $i ?>" style="width: 25px;" onclick="sentid(this);return true;" />ラジオ<?= $i ?>
<? } ?>
700Name_Not_Found:2009/08/28(金) 10:55:10 ID:???
>>697-698
一応これで形成されます。きれいな書き方かどうかは別ですが。

>>699
ありがとうございます。javascript習いだして数日なもので・・・。それでデバッグして見ます。
701Name_Not_Found:2009/08/28(金) 11:19:38 ID:???
>>899
ほんとだreturn falseした瞬間にcheckedが戻ってるw
その後の処理を止めるだけだと思ってたけど、UNDO的なこともするんだな
702Name_Not_Found:2009/08/28(金) 17:15:14 ID:DGjLKm19
>>696
チェックボックスのチェックon/offは全く考えずに、
イベント→チェックボックスのクリック
実行内容→チェック状態を見て、onなら次の選択肢表示、offなら非表示

とするのが正解かと。
703Name_Not_Found:2009/08/28(金) 20:18:55 ID:onBpXNIA
質問します。

以下のスクリプトを実行し、画像が読み込まれたら「hoge」と
alert で表示させたい場合、Test.prototype.func2 の中の
loadSuccess はどのように記述すればいいのでしょうか?
何卒よろしくご教示ください。

function Test() { this.a = 'hoge'; }

var Test.prototype.func1 = function() { alert(this.a); };

var Test.prototype.func2 = function() {

var loadSuccess = function() { // 画像読み込み後に実行する処理
func1(); // ここで Test.prototype.func1 を実行させたい
};

var loadImg = new Image();
loadImg.addEventListener('load', loadSuccess, false)
loadImg.src = '123.jpg';
};

var test = new Test();
test.func2();
704Name_Not_Found:2009/08/28(金) 20:39:59 ID:???
こういうことか?
var self = this;
var loadSuccess = function() {
self.func1();
};

どうでもいいけどプロパティは変数じゃないからvarいらない
var Test.prototype.func2 = function() {
705703:2009/08/28(金) 20:57:55 ID:???
>>704

プロパティの件も含めて、ありがとうございました。
706703:2009/08/28(金) 22:09:44 ID:onBpXNIA
また重ねて質問します。今度はIEのattachEvent関連についてです。
以下のスクリプトをIE5.5以上で実行した時に
loadSuccess 内で画像の情報を取得する方法はありますでしょうか?
onclick や onkeyup などのイベント時には window.event.srcElement で
イベント発生元の要素が取得できましたが、onload の時は srcElement は null になってしまいます。
また、window.event.type のみ「load」と取得できます。
ちなみに FirefoxやOperaなどでは target で取得することが可能でした。
連続質問ですが、よろしくお願いします。

loadSuccess = function() {
// ここで読み込んだ画像の幅などを取得したい
};

var loadImg = new Image();
loadImg.attachEvent('onload', loadSuccess)
loadImg.src = '123.jpg';
707Name_Not_Found:2009/08/28(金) 22:20:16 ID:???
善意のスレを踏み荒らす様な奴だな
708703:2009/08/28(金) 22:59:16 ID:???
>>707
調子に乗って連続して質問してしまった失礼をお詫びします。
申し訳ありませんでした。
>>706 の質問は撤回いたします。スレ汚し失礼いたしました。
709Name_Not_Found:2009/08/29(土) 01:34:33 ID:???
javascriptの
document.writeされた部分だけかすめ取って取得する方法ありませんでしょうか?
hoge = getDocumentWrite("test.js");
とかそんなかんじで取得したいです。
phpのhttp_clientやperlのlwpみたいな感じです。
710Name_Not_Found:2009/08/29(土) 01:38:11 ID:???
>>706
Imageオブジェクトからとれたよね?

var loadImg = new Image();
loadSuccess = function() {
// ここで読み込んだ画像の幅などをloadImgから取得
};

>>709
document.write()されるまえにdocument.writeを書き換えとけ
711Name_Not_Found:2009/08/29(土) 08:38:04 ID:MPg+6ZpD
初心者質問です。java scriptってどうしていくつも書き方があるの
ですか。正解を教えてください。「JAVAスクリプト」ですか?
712Name_Not_Found:2009/08/29(土) 09:44:54 ID:???
>>711
スレタイ嫁
713Name_Not_Found:2009/08/29(土) 11:22:48 ID:???
あぁ、サーバ構築の大変さに死にたくなってきた・・・
714Name_Not_Found:2009/08/29(土) 12:23:38 ID:RKb20JxY
>>711
つれますか?
715Name_Not_Found:2009/08/29(土) 16:31:52 ID:???
ageてまで釣られんなアホ
やりたいこと:ボタンを押してframesetのframeを動的に増やしたい。
top.html
<html lang="ja">
<frameset cols="*,*">
<frame src="memo.htm" name="f1">
<frame src="memo.htm" name="f2">
</frameset>
</html>
memo.htm
<html lang="ja">
<script type="text/javascript">
<!--
function frameadd(){
var w = parent.document.getElementsByTagName("frameset")[0];
w.cols+=',*';
var element = document.createElement("frame");
element.src = "memo.htm";
w.appendChild(element); //引数が無効エラー
}
//-->
</script>
<body>
<input type=button name=add value="枠増" onclick="frameadd()">
</body>
</html>

frame自体を増やすことには成功しましたが、黒い枠のまま。
location.hrefもダメでした。うまく行く方法を教えてください。
717Name_Not_Found:2009/08/30(日) 02:42:05 ID:MGLsKUuH
frame.contentWindow.location.href
でもだめかね。
718Name_Not_Found:2009/08/30(日) 02:48:11 ID:???
frameはhtml5でもxhtml1.1でもサポートされてないし動作を期待しない方が良いよ
719名無しさん@そうだ選挙に行こう:2009/08/30(日) 07:05:37 ID:???
innerHTMLでも無理?
720名無しさん@そうだ選挙に行こう:2009/08/30(日) 09:13:14 ID:???
phpのクラスだとセッタとかゲッタをいちいち作ってるけど
もしかしてプロトタイプベースのjavascriptはいらない感じ?
721名無しさん@そうだ選挙に行こう:2009/08/30(日) 09:18:51 ID:???
そもそも古いブラウザで未対応
722名無しさん@そうだ選挙に行こう:2009/08/30(日) 11:29:43 ID:???
参考書等のセミコロンを付けてる部分と
つけない部分の違いが解りません!
723名無しさん@そうだ選挙に行こう:2009/08/30(日) 12:24:27 ID:???
調べずテキトーに言うと、function文や制御文の{ }の終わりには要らない(ブロック付きの「文」の末尾)
{ }でもfunction式とObjectリテラルには必要(文じゃないから)

function f () {
 var v;
 v = { num: 1 };
 if (flag) {
  v.method = function() { alert('test'); };
 }
}

まあ良くも悪くも、多少間違っててもセミコロン自動補完がなんとかしてくれる
724名無しさん@そうだ選挙に行こう:2009/08/30(日) 12:26:50 ID:???
>722
「文」の終わりにはつけるのが基本。
JavaScriptの場合、セミコロンを省略しても、実行時に改行の位置に適当にセミコロンを補ってくれる。
たまに意図した場所とは違う場所にセミコロンが入る事があるので、文の途中で改行する際には注意が必要。
>>717
見かけ上,枠が見えてても、3番目のframeが未定義のため、設定できませんでした。また
var w = parent.document.getElementsByTagName("frame");
alert(w[2].contentWindow.location.href); ←未定義のエラー

>>719
topのframesetをinnerHTMLで書き換えようとすると、エラーで何もない画面に。
innerHTMLでの書き換え自身がエラーになる様子;
w.innerHTML +="<frame src='memo.htm' name='f3'>" //未定義のエラー
726名無しさん@そうだ選挙に行こう:2009/08/30(日) 12:45:55 ID:???
フレーム関係はセキュリティも絡むからちゃんと実行環境を書かないと適切な答えは帰ってこないと思うよ
727716:2009/08/30(日) 13:02:57 ID:???
環境はIE6、FIERFOX3、OPERA9.6です。
FIERFOX3は716で動作確認が出来たのですが、
IE6・OPERA9.6で動かない状態です。
728名無しさん@そうだ選挙に行こう:2009/08/30(日) 13:13:00 ID:???
outerHTMLはどうなん?
729名無しさん@そうだ選挙に行こう:2009/08/30(日) 15:05:38 ID:???
>>723-724
ありがとうございます!
730名無しさん@そうだ選挙に行こう:2009/08/30(日) 15:12:20 ID:???
JavaScript勉強し始めてprototype.jsを落としてみたが……
うわぁ……これを理解して、使いこなせる先人の
代わりに職に就くとか出来そうにないわ……orz
731名無しさん@そうだ選挙に行こう:2009/08/30(日) 15:19:52 ID:???
特定要素に指定されたスタイルを無効、もしくは削除するにはどういうやればいいんでしょうか?

<p>リンゴは<em>赤い</em></p>
でem要素に指定されているスタイルだけ無効にしたい、という風な感じです。
732名無しさん@そうだ選挙に行こう:2009/08/30(日) 16:12:16 ID:???
>>730
理解しなくても使い方をバカの一つ覚えすればヨロシ
733名無しさん@そうだ選挙に行こう:2009/08/30(日) 16:16:00 ID:jP2ecCRi
>>731
それならclassなりid付けてcssで操作した方が楽ですよ。
[html]
<p>リンゴは<em id="none_style">赤い</em></p>
[css]
#none_style {無効にする設定}

jsでやるにしてもclassかidが付いていた方が楽ですね。
[html]
<p>リンゴは<em id="none_style">赤い</em></p>
[js]
document.getElementById('none_style').style[PROPERTY] = VALUE;
734名無しさん@そうだ選挙に行こう:2009/08/30(日) 16:20:43 ID:jP2ecCRi
>>733の補足
jsでやる場合ドキュメントをロードしてからやること!!
方法はいくつかあるしイベント(この場合ロードしましたよって状態のこと)
を操作するとなるとブラウザに依っても若干変わってくるので。

window.onload = function()
{
document.getElementById('none_style').style[PROPERTY] = VALUE;
}

とかね。大抵のブラウザは大丈夫な書き方だけどこれだと1つの関数しか登録できないけど
回避方法は思いつくだけでもいくつかあるから良かったらやってみて。
735名無しさん@そうだ選挙に行こう:2009/08/30(日) 16:57:45 ID:???
>>730
コード量に引いてるんだったら根気出せ
分かってみると、結構大したこと書いてないぞ
736名無しさん@そうだ選挙に行こう:2009/08/30(日) 16:59:33 ID:???
Gin.jsはお手本にしてる
737名無しさん@そうだ選挙に行こう:2009/08/30(日) 18:05:22 ID:???
>>734
横レスしますが、すばらしい!
えらい勉強になりました♪
ありがとうございます\(^。^)
738名無しさん@そうだ選挙に行こう:2009/08/30(日) 18:28:44 ID:???
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Sample</title>
<link rel="stylesheet" href="css/main.css" type="text/css" media="all">
<script type="text/javascript" src="js/prototype.js" charset="shift_jis"></script>
<script type="text/javascript"><!--
Event.observe(window, "load", function(){
Event.observe($("area1"), "click", function(evt){
$("result").innerHTML += "Area 1,";
}, false);
Event.observe($("area2"), "click", function(evt){
$("result").innerHTML += "Area 2,";
}, false);
Event.observe($("area3"), "click", function(evt){
$("result").innerHTML += "Area 3,";
}, false);
}, false);
// --></script>

(下に続きます)
739名無しさん@そうだ選挙に行こう:2009/08/30(日) 18:30:05 ID:???
(上からの続き)

</head>
<body>
<h1>イベントの伝達を停止する</h1>
<div id="result">...</div>
<div id="area1">Area 1
<div id="area2">Area 2
<div id="area3">Area 3</div>
</div>
</div>
</body>
</html>

コレを起動し、例えばarea3の部分をクリックすると、「Area3,Area2,Area1」と表示されますが、まぁ、コレはバブルアップで伝達されているのだと思います
では、コレを「Area1,Area2,Area3」のように順番を逆に表示させる事は出来ないのでしょうか?
自分はuseCaptureをtrueにすればいいのかと思っていたのですが、そうなりません
で、この動作からどうも自分は、キャプチャーの事を勘違いしていたように思えます
すみませんがこの伝達部分の事教えていただきたいと思うのですが
長文、ごめんなさい
740名無しさん@そうだ選挙に行こう:2009/08/30(日) 19:12:03 ID:???
以下の記述で、フレーム越しにテキストボックスに自動入力する値を受け渡したいのですが
Firefox3.0.13、3.5.2では機能しません。Opera9.64、Safari4.0.3、IE6、7、8では機能します。OSはXP SP3です
なぜFirefoxでは機能しないのでしょうか? Firefoxでも機能させるための対処法があれば御願い致します

frameset.html ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<title>フレーム越しにテキストを入力</title>
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
</head>
<frameset rows="60,*" title="親フレーム">
<frame src="frame_a.html" id="frame_a" title="フレームA" />
<frame src="frame_b.html" id="frame_b" title="フレームB" />
<noframes>
<body>
<ul>
<li><a href="./frame_a.html">フレームA</a></li>
<li><a href="./frame_b.html">フレームB</a></li>
</ul>
</body>
</noframes>
</frameset>
</html>
741‌740:2009/08/30(日) 19:12:47 ID:???
frame_a.html  ■■■■■■■■■■■■■■■■■■■■■■■■■

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<title>フレームA</title>
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
</head><body>

<form action="#" id="myform"><p><input type="text" id="txt" value="" /></p></form>

</body></html>

frame_b.html  ■■■■■■■■■■■■■■■■■■■■■■■■■

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<title>フレームB</title>
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
</head><body>

<div><span style="cursor:pointer;" onclick="parent.frames['frame_a'].document.forms('myform').elements('txt').value='文字列';">文字列</span></div>

</body></html>
742Name_Not_Found:2009/08/30(日) 20:14:08 ID:???
>>738
trueで逆になるだろ?Area3クリックしたときに1,2,3の順。
743Name_Not_Found:2009/08/30(日) 20:19:12 ID:???
IE使ってるんじゃない?
とりあえずライブラリ使うのやめてみるといい
744Name_Not_Found:2009/08/30(日) 22:39:08 ID:???
http://www2.asahi.com/senkyo2009/
朝日の選挙速報のサイトなんだけど、
この右の表ってsetTimeoutで定期的にAjaxでXMLとってきてるんですかね?
745Name_Not_Found:2009/08/31(月) 02:30:30 ID:???
<meta http-equiv="refresh" content="60" />
746Name_Not_Found:2009/08/31(月) 02:36:23 ID:???
うそつけ
747Name_Not_Found:2009/08/31(月) 03:31:16 ID:???
javascriptのソースを保護することってやっぱ難しいんだな
748Name_Not_Found:2009/08/31(月) 08:10:35 ID:???
>>742
それが逆にならないのです
自分も、trueで解決するものだと思って変えてみたのですが、変わらず、自分のキャプチャーの考え方が間違っていたのかと思い質問させて頂きました

>>743
FireFoxを使っています
749Name_Not_Found:2009/08/31(月) 09:43:32 ID:???
ieの場合を考えないといけないのが非常にわずらわしい・・
750Name_Not_Found:2009/08/31(月) 13:36:30 ID:???
>>748
prototype-1.5.1.2.js でやってみて
751Name_Not_Found:2009/08/31(月) 14:07:18 ID:???
>>750
アレッ?
出来ました・・・
何でver1.6では出来ないのに、ver1.5では出来たのでしょうか???
何かバージョンアップして変わったのでしょうか???
752Name_Not_Found:2009/08/31(月) 14:36:23 ID:???
<script type="text/javascript"><!--
Event.observe(window, "load", function(){
var total = 0;
(10).times(function(value){
total = total + value;
});
$("test").innerHTML = total;
}, false);
// --></script>

結果、45が表示されるのですが、この関数はどういう事なのでしょうか?
valueは処理の回数にでもなっているのでしょうか?
ちょっと混乱しています、お助けを
753740:2009/08/31(月) 14:39:12 ID:???
申し訳御座いません。記述が間違っていたみたいで、自己解決しました

まずframe要素のname属性を、a要素などに指定するname属性と混同してid属性にしてしまっていました
name属性に修正後、onclick属性値の( )となっている部分を[ ]に替えることで、無事Firefoxで機能しました
大変失礼致しました
754Name_Not_Found:2009/08/31(月) 14:46:12 ID:gRrSq2Z+
>>752
0+1+2+3+4+5+6+7+8+9
755Name_Not_Found:2009/08/31(月) 14:52:53 ID:???
>>754
この場合、valueは何を意味しているのでしょうか?
例えば、
for(var i=0; i<10; i++){}
のような形だと変数i が数字だとすぐに分かるのですが、times()には現在繰り返されている値が渡されるという事らしいのですが、
そもそもこの上記のコードの場合、渡されている値というもの自体が自分には分かりません
0 : 0 + value
1 : value + value
で、いったいどこでvalueが数字の0から始まるよう指定されているのでしょうか?
756Name_Not_Found:2009/08/31(月) 14:57:11 ID:???
ライブラリの質問なら使ってるライブラリの名前とバージョンぐらい書いたらどうだ

>いったいどこでvalueが数字の0から始まるよう指定されているのでしょうか?
timesの関数を読め
757Name_Not_Found:2009/08/31(月) 15:02:34 ID:xbe+ENJQ
>>754
0+1+2+3+4+5+6+7+8+9 これって45ですよね。
今すごいこと発見しちゃいました。
758Name_Not_Found:2009/08/31(月) 15:05:29 ID:???
>>756
ごめんなさい、prototype.jsでした
バージョンは1.5以降です

う〜ん、関数のどこを読めばいいのでしょうか?
感覚的には結果は分かるのですが、実際何が起こっているのかという所までは理解できないでいます
ネットでtimes()の事も良く調べたのですが、良く分かりませんでした
759Name_Not_Found:2009/08/31(月) 15:16:17 ID:???
>>758
times: function(iterator) {
  $R(0, this, true).each(iterator);
  return this;
}
$Rで0からthisまでのObjectRangeを作ってる
760Name_Not_Found:2009/08/31(月) 15:21:36 ID:gRrSq2Z+
>>758
件のtimesもそうだし、JQueryのeachとか、
動作内容をコールバック渡しするタイプのループ関数は大抵、
その周回のインデックスが引数としてコールバックに渡されるもんなんだぜ。

じゃないと使い物にならないだろう。
761Name_Not_Found:2009/08/31(月) 15:24:00 ID:???
>>758
今回はあんまり関係ないけど、二度手間になることがあるから
「以降」とか「最新版」とかではなく正確なバージョン書いてくれ

times: function(iterator, context) {
 $R(0, this, true).each(iterator, context);
  return this;
},
思いっきり0って書いてあるじゃん
$R()がどんなものかは自分で調べてくれ

もしかしてNumber.prototype.timesではなくString.prototype.times見てたりしないか?
762Name_Not_Found:2009/08/31(月) 15:35:18 ID:???
>>759-761
まことにもうしわけありませんでした
理解できました
また、こういう場合、ググってばっかだったのですが、prototype.jsの中身自体を調べた方がいいのですね
そういう事は一度もしていませんでした
お答え頂きありがとうございました
763Name_Not_Found:2009/08/31(月) 17:39:31 ID:???
なぁ、俺に彼女が出来る関数を誰か作ってくれよ!
764Name_Not_Found:2009/08/31(月) 18:02:58 ID:???
>>763
これでいい?

function kanojo(){
 return false;
}
765Name_Not_Found:2009/08/31(月) 18:04:56 ID:???
そこはreturn nullで
766Name_Not_Found:2009/08/31(月) 18:08:10 ID:???
いやいやそこはreturn TDN;ですよ
767Name_Not_Found:2009/08/31(月) 18:13:46 ID:???
つ addEventListener(Event.KISEKI, mkGirlfriend);
768Name_Not_Found:2009/08/31(月) 18:26:25 ID:???
あ、すまんJSのスレだった;
ore.addEventListener( 'kiseki', mkGirlfriend, false);
769Name_Not_Found:2009/08/31(月) 23:54:16 ID:9xLj5Ma2
if (kanojo != 3d)
 throw new Error("まて、それは妄想だ")

上のようにErrorを投げた場合、firebugで
エラー: uncaught exception: undefined
となるのですが、try catchを書かずErrorを投げる方法はどうやれば良いのでしょうか?
770Name_Not_Found:2009/09/01(火) 00:20:54 ID:???
変数名や関数名に複数の英単語を使うとき、
先頭の単語だけ頭文字を小文字にする文化、
例えば iWasGay() みたいな。
あの慣習は一体なんですか?キモいです。どういう理由があるんですか?偏狭なナショナリズムですか?
771Name_Not_Found:2009/09/01(火) 00:45:13 ID:???
>>770
ム板の雑談スレか質問スレに行ってくれ
772Name_Not_Found:2009/09/01(火) 01:06:15 ID:???
>>769
何このとんちクイズ。
773Name_Not_Found:2009/09/01(火) 01:14:08 ID:???
>>769
エラー投げてるんだから
uncaught exception:
が出るのは正常
774Name_Not_Found:2009/09/01(火) 02:30:42 ID:???
<img src="blue.gif" onmouseover="this.src='red.gif'">

これを外部ファイルtest.jsでprototypeで動かすにはどうしたらよいでしょうか。
一応自分でやったのは、
【test.html】
<img src="blue.gif" id="c_img">

【test.js】
var modelImg_change = function(){
}
modelImg_change.prototype ={
chTest: function(){
alert("ok");
this.src="red.gif";
},
addTest: function(elem, eventType, func, cap){
btn = document.getElementById("c_img");
btn.addEventListener('mouseover', this.chTest, false);
}
};
var mmc = new modelImg_change();
mmc.addTest("", "", "", false);
↑引数指定してもうまく受け取ってくれなかったのでaddTest("", "", "", false)にして、
とりあえずテストのために関数の中で直接値を放り込んだのですが
alertしてみたのですが、chTestを実行してくれませんでした。(addTestは実行できました。)
(prototypeではなく、普通にfunctionを何個か作ってaddEventListenerする方法だと成功しました。)
よろしくお願いします
775774:2009/09/01(火) 05:12:53 ID:???
windowでloadするの忘れていたので、loadして
さらにthis.chTestをmmcにしたらできました。
776Name_Not_Found:2009/09/01(火) 08:23:02 ID:???
>>770
あたま大丈夫?
777Name_Not_Found:2009/09/01(火) 11:26:46 ID:???
js初心者です。
変数の前に何か記号が欲しいです・・
#abcとか$abcとかなんでもいいです
見失いそうになります・・
778Name_Not_Found:2009/09/01(火) 11:29:02 ID:???
着色できるエディタ使え
779Name_Not_Found:2009/09/01(火) 12:17:35 ID:???
>>776
質問に答えてみ。
780Name_Not_Found:2009/09/01(火) 13:05:53 ID:???
>>777
コーディングルール自分で決めて好きに付けたらいい

>>779
>>776はつっこんでくれたけどスルーされた原因考えろよ
ローワーキャメルケース自体の話をしてるのかよくわからんし、そもそもスレチ
781Name_Not_Found:2009/09/01(火) 13:07:23 ID:???
>>779
なんで偉そうなの?
782Name_Not_Found:2009/09/01(火) 13:10:37 ID:???
ソースの改行を置換で消して一行にするとエラーになります。なぜでしょう?
783Name_Not_Found:2009/09/01(火) 13:12:33 ID:???
>>782
サンプルコードください。セミコロンなかったり、スペースまで消しちゃって意味変わったりしてない?
784Name_Not_Found:2009/09/01(火) 14:08:36 ID:???
コメントアウトってオチじゃねぇだろうな
785Name_Not_Found:2009/09/01(火) 14:21:14 ID:???
すみません、script.aculo.usのSound.play()とTransform.play()の.play()というメソッドの事調べているのですが出てきません
コレはいったい何なのでしょうか?
prototype.jsに組み込まれている関数なのでしょうか?
感覚的には簡単に分かるのですが、どこから来たのかが分からなくて
786Name_Not_Found:2009/09/01(火) 14:29:49 ID:???
>>782
サンプルいらん
エラーコンソール読め
787Name_Not_Found:2009/09/01(火) 15:02:25 ID:???
>>785
だからソース読めっての
sound.js
effects.js
788Name_Not_Found:2009/09/01(火) 15:13:42 ID:???
>>785
おまえは>>752-762でなにを学んだんだw
789Name_Not_Found:2009/09/01(火) 15:20:29 ID:???
ここで質問しておけば自分で考えなくても回答されることを学びました
790Name_Not_Found:2009/09/01(火) 15:45:02 ID:???
質問です。
Selectメニューでvalueの値を複数種類セットで指定したい時はどうすればいいですか?
<OPTION value1="0",value2="3">0と3</OPTION>
のようなことがしたいのですが・・
791Name_Not_Found:2009/09/01(火) 15:46:28 ID:???
ねぇ、やっぱ皆自分達で関数作って、script.aculo.usなんかのようなコード作れるんですか?
基礎を習得してから数ヶ月なんですが、未だに自分でとなると難しいのは出来ないです
やっぱ色んなソースを見て自分で作っていって勉強されたのでしょうか?
792Name_Not_Found:2009/09/01(火) 16:26:29 ID:???
仕事でやれば嫌でも覚える
793Name_Not_Found:2009/09/01(火) 16:35:17 ID:???
>>790
指定できるvalueは1つだけだから、0と3を "0,3" みたいに
くっつけた文字列を指定して自分で分離して好きな方を取り出す。
または、valueには0から始まる連番を指定してvalue1やvalue2の
値は内部で持っておき連番に対応させて取り出す。何がやりたいか
に応じて適切な方法を選ぶべき。
794Name_Not_Found:2009/09/01(火) 17:15:37 ID:???
visualEffect()って何ですかね?
何かライブラリに入ってるんでしょうか?
一応自分でソースや書籍で調べてみても出てきませんでした
それに、ググっても出てこないのですが
例えばこの様に使われています
$("sTrack").visualEffect("Appear", { to:0.5, duration : 0.1 });
誰か教えていただければと思います

795Name_Not_Found:2009/09/01(火) 17:19:05 ID:???
>>794
それはどこで見たんだよw
その呼び出しの前にあるライブラリに入ってるものでしょ
796Name_Not_Found:2009/09/01(火) 17:21:26 ID:???
794です

あぁ、effect.jsに入ってました
797Name_Not_Found:2009/09/01(火) 17:39:50 ID:???
おならが臭いと大腸癌のおそれ有りだってよ
お前らやばいな!
798Name_Not_Found:2009/09/01(火) 17:54:55 ID:???
ブックマークレットについて教えて下さい
アドレスバーが例えばhttp://aaa.comになっている状態でブックマークレットひとつクリックでhttps://aaa.comをロードしたいのです
難しいと思いますが教えて下さい
799Name_Not_Found:2009/09/01(火) 18:09:18 ID:???
https絡むならセキュリティ的に試してみないとわからんけど
location.hrefいじればできるんじゃないの?

自分で作る気ないならスレチ
800Name_Not_Found:2009/09/01(火) 18:34:07 ID:FioYiHFw
>>798
普通にlocation.hrefをreplaceしたものに入れ替えればok
ウェブ開発で、ローカル/テスト/本番の切り替え用によく使う。
801Name_Not_Found:2009/09/01(火) 19:04:11 ID:???
>>794
ハァ?script.aculo.us visualEffectでググればいくらでも出てくるだろ。ご丁寧にソースの解説記事まであるってのに
リファレンス → http://wiki.github.com/madrobby/scriptaculous/effect-methods
解説記事 → http://gihyo.jp/dev/feature/01/scriptaculous/0006?page=9

とりあえずお前は安易に他人or他人のライブラリに頼りすぎ。もっと自分の頭と手を使ってコードを書け
そうやって最低限「どこを読めばいいか・どこを調べればいいか」が分かるようになるまで戻ってくるな
802Name_Not_Found:2009/09/01(火) 20:52:11 ID:???
その話はもう終わったよ
803Name_Not_Found:2009/09/01(火) 21:19:31 ID:???
idは、参照できないんですか?
804Name_Not_Found:2009/09/01(火) 21:43:14 ID:???
>>803
document.getElementById(id)
805Name_Not_Found:2009/09/01(火) 22:30:59 ID:???
【.html側】
<input type="text" name="txtA" id="txtA">

【.js側】
onload = init
function init(){
  $("txtA").onfocus = function (){Focus(this);}
}
function Focus(obj){
obj.style.backgroundColor = "#ffff00";
}

この場合のFocusの値、objは何の役割がありますか?
806Name_Not_Found:2009/09/01(火) 22:51:08 ID:???
ひきすう
807Name_Not_Found:2009/09/01(火) 22:53:04 ID:???
>>805
その場合、obj=this
808Name_Not_Found:2009/09/01(火) 23:15:56 ID:???
どうもです。
thisじゃ駄目なんでしょうか?
809Name_Not_Found:2009/09/01(火) 23:18:37 ID:???
thisは予約語
810Name_Not_Found:2009/09/02(水) 00:04:52 ID:???
何が疑問なのかまったく分からねえ
811Name_Not_Found:2009/09/02(水) 00:19:49 ID:???
>>810
独学だから仕組みを理解したい

ってあたりじゃないか?
812Name_Not_Found:2009/09/02(水) 01:18:56 ID:???
prototype.js勉強できる良いサイトおしえて
ぐぐったらいっぱいでてきてどれみていいかわからんくなった
813Name_Not_Found:2009/09/02(水) 01:35:20 ID:???
どれでも一緒
814Name_Not_Found:2009/09/02(水) 01:35:55 ID:???
815Name_Not_Found:2009/09/02(水) 02:17:58 ID:???
>>813
厳密には、どれでも一緒ってことはないと思います。
>>814
やはり一般的には、自国の言語で勉強したほうが
一番理解し易いのではないでしょうか。
一度、日本語で解釈されたサイトをご覧になってはいかかでしょう。
816Name_Not_Found:2009/09/02(水) 02:39:59 ID:???
$一文字の関数が許されるんだから$から始まる変数名も
普通に考えたら許される気がする。
817Name_Not_Found:2009/09/02(水) 05:01:49 ID:???
おい、prototype.jsなにこれ・・
便利すぎるだろ・・
今までのコードが半分になった・・
818Name_Not_Found:2009/09/02(水) 07:05:46 ID:???
127KBもあんのか
819Name_Not_Found:2009/09/02(水) 09:17:34 ID:???
objが、どういう時に使うかって事?
820Name_Not_Found:2009/09/02(水) 09:47:01 ID:???
>>805
「objは何の役割」の質問の意味がよくわからないけど、それを作った人が
・Focus関数はstyleを変更したい要素のDOMオブジェクトを引数に取る
と決めてあるので、この場合は無名関数を使って引数thisをFocusに渡せばうまくいく
くらいの理解でいいんじゃないかね。
onload = initみたいに$("txtA").onfocus = Focusとして、
Focusの中でイベントのtargetかsrcElementでobjを取得する方法もあるからthisがどうのとか考えなくていい気がする

$("txtA").onfocus = Focus;

function Focus(evt){
  var obj = (evt) ? evt.target : event.srcElement;
  obj.style.backgroundColor = "#ffff00";
}
821Name_Not_Found:2009/09/02(水) 09:58:04 ID:???
prototype.jsがまた流行ってきてるの?それかどこかで取り上げられた?
イメージとしてはもう枯れてきたものな感じなのに最近prototype.jsの話題が多すぎる気がする

あと、質問のレベルはどうでもいいけど、質問者の質問の意味がわからないのが多い
822Name_Not_Found:2009/09/02(水) 10:16:45 ID:???
>>805,808
何故 this ではなく obj なのか、不満なら書き換えまくって試せ。

function Focus(obj){}、Focus が関数名、obj が変数名。
obj にはこの関数の呼び出し元の引数、呼び出し元の this が格納される。
このときの this は呼び出し元のオブジェクト。
this は予約語であり
 http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html#section-7.5.1
 > 次のトークンは ECMAScript キーワードであり、 ECMAScript プログラム中で識別子に使うことはできない。
変数名や関数名として使うことはできない。

//元コード
function init(){ $("txtA").onfocus = function (){Focus(this);} }
function Focus(obj){ alert(obj); //→何がalertされるのか確認
obj.style.backgroundColor = "#ffff00";}
//変数名をthisに
function init(){ $("txtA").onfocus = function (){Focus(this);} }
function Focus(this){ alert(this); //→何がalertされるのか確認
this.style.backgroundColor = "#ffff00";}
//定義時変数名を空に
function init(){ $("txtA").onfocus = function (){Focus(this);} }
function Focus(){ alert(this); //→何がalertされるのか確認
this.style.backgroundColor = "#ffff00";}

呼び出し元 function (){Focus(this);} も書き換えて試せ。
823Name_Not_Found:2009/09/02(水) 12:05:29 ID:8OBjdakU
>>816
PHPと平行開発していた時に、普通に$_GETとかいう変数作ったりした。
俺頭いい(キリッ)とか思ってたけど、普通に混乱してやめた。
824Name_Not_Found:2009/09/02(水) 12:12:05 ID:???
>>821
枯れてきた・・・ってじゃぁ今はライブラリは何がいいの?
825Name_Not_Found:2009/09/02(水) 12:22:08 ID:???
>>821の意図は知らないけど技術に「枯れる」と言ったら安定・定番・大衆化あたりの意味だぞ
ttp://ja.wikipedia.org/wiki/%E6%A8%AA%E4%BA%95%E8%BB%8D%E5%B9%B3#.E6.9E.AF.E3.82.8C.E3.81.9F.E6.8A.80.E8.A1.93.E3.81.AE.E6.B0.B4.E5.B9.B3.E6.80.9D.E8.80.83
826821:2009/09/02(水) 13:13:56 ID:???
>>824
>>825の意味ね。最近prototype.jsの問題を聞かなくなったなってこと
827Name_Not_Found:2009/09/02(水) 18:14:35 ID:???
誰もが知ってるから話題性に欠ける
828Name_Not_Found:2009/09/02(水) 19:52:05 ID:G5mS7NTD
各ブラウザ提供先のJavaScriptリファレンスってIEのMSDN LibraryとFxのMDC以外に
Opera、safari、chromeからは出てないんですか?
829Name_Not_Found:2009/09/02(水) 19:55:56 ID:???
http://msdn.microsoft.com/ja-jp/library/cc392307.aspx
msdnのリファレンス消されてるね
830790:2009/09/02(水) 22:23:23 ID:???
>>793
ありがとうございます。後半のやり方ですが、
value0="0" value1="3"
value 0="0" value 2="3"
value.0="0" value.3="3"
といろいろ試しましたがうまくいきません。
具体的な書式を教えていただけないでしょうか。
831Name_Not_Found:2009/09/02(水) 22:43:22 ID:???
何がやりたいのか分からんが、

option要素.setAttribute("value0","0")

じゃダメなの?
832Name_Not_Found:2009/09/02(水) 23:23:11 ID:???
勝手にHTMLの文法を変えるなよ
value="value1=1,value2=2"とかにしてsplitやmatchで取り出せってことだろ
833Name_Not_Found:2009/09/02(水) 23:30:07 ID:???
なにそのきめえコード
834790:2009/09/02(水) 23:51:12 ID:???
できましたーありがとうございます!
835Name_Not_Found:2009/09/03(木) 06:31:43 ID:M4DdH0ys
ブラウザを閉じる際に確認alertを出したいのですが、どうすればいいでしょうか?
onbeforeunload()がそれに近いのですが、ページ移動やPOSTの時は表示させたくありません。
純粋に閉じる時だけ確認を必要としています。

どうかお知恵をおかしください
836Name_Not_Found:2009/09/03(木) 07:58:17 ID:???
無理
837Name_Not_Found:2009/09/03(木) 08:02:45 ID:???
IEならActiveX使えば可能だったような
838Name_Not_Found:2009/09/03(木) 08:04:11 ID:???
onclick(もしくはonsubmit) -> onbeforeunloadの順に発生するとしたらonclick(もしくはonsubmit)でなにかしたらいいんじゃないかな
839Name_Not_Found:2009/09/03(木) 08:38:13 ID:???
単にあるdiv要素内でのマウスの座標を取得したいだけなのに
なんでこんな処理がめんどくさいんだ
840Name_Not_Found:2009/09/03(木) 08:40:29 ID:???
なぁ、最近JavaScriptで目新しいものって無いの?
841Name_Not_Found:2009/09/03(木) 10:52:03 ID:???
俺今PHPの勉強してるんだけど、駄目だコレ
どうもJavaScriptから習得した自分には面白くない
それに、変数をvarで宣言するのが身体に染み付いているので、$で宣言ってのがまた・・・
prototype.jsとも違うし
PHPってあんま面白くないね
俺はJavaScriptの方が遥かに楽しいと思うよ
Cなんかは勉強した事無いんだけど、やっぱCにはPHPの方が近いのかな?
842Name_Not_Found:2009/09/03(木) 11:30:50 ID:???
つーかJavaScriptが比較的異端な部類
JavaScriptの特徴的な部分を揃えてるのって、類似用途のLuaぐらいしか思いつかない
言語の総合的な評価、特に「楽しい」なんてものは人それぞれだからいろいろやってみれ

ちなみにprototype.jsはRubyを模したものという印象
Railsに同梱なのは、卵が先か鶏が先かどうか知らないけど
843Name_Not_Found:2009/09/03(木) 11:44:05 ID:???
楽しいっていうか、PHPはだれでも簡単に覚えられるようにしたスクリプト言語なのでは
844Name_Not_Found:2009/09/03(木) 11:48:49 ID:B+4knO73
colorというユーザー関数を定義して使うとError: color is not a functionというエラーが起きます
これをcolor1とかcoloraと名前を変えると正常でした
colorは予約語なんでしょうか?
845Name_Not_Found:2009/09/03(木) 11:55:47 ID:???
んなこたーない
エラーを再現できる最小のコード作ってみてくれ
それができなきゃ自分のコードが悪い
846Name_Not_Found:2009/09/03(木) 11:56:43 ID:B+4knO73
847Name_Not_Found:2009/09/03(木) 12:00:43 ID:???
解決してよかったね
次からは書きこむ前にググろうか
848Name_Not_Found:2009/09/03(木) 12:04:44 ID:???
なぁ、本音言うとIE6が憎いんだろ?
849Name_Not_Found:2009/09/03(木) 12:06:53 ID:???
>>846
Mozilla 1.0.0って・・・ブラウザなに使ってるの?
Fx3.5じゃ再現しないんだけど
850Name_Not_Found:2009/09/03(木) 12:07:21 ID:???
getElementsByTagName には、$() みたいな奴は用意されてないの。
851Name_Not_Found:2009/09/03(木) 12:34:07 ID:???
>>847
なんだ、何も知らないだけか
852Name_Not_Found:2009/09/03(木) 12:35:51 ID:???
$$
853Name_Not_Found:2009/09/03(木) 13:41:38 ID:ecpHy9yC
>>844
エラーは起きませんでしたよ。
同空間内に同名の変数がないか確認を。
854Name_Not_Found:2009/09/03(木) 13:45:21 ID:ecpHy9yC
>>841
PHPで何がしたいの?ってか何したの?
855Name_Not_Found:2009/09/03(木) 14:19:36 ID:???
>>853-854
(・∀・)カエレ!!
856Name_Not_Found:2009/09/03(木) 14:41:35 ID:???
皆さん、OSはWindows、Linuxどっちですか?
857Name_Not_Found:2009/09/03(木) 16:12:12 ID:???
以下、マカー出入り禁止
858Name_Not_Found:2009/09/03(木) 16:46:42 ID:fWpUouD6
>>857
そんなあ。
859Name_Not_Found:2009/09/03(木) 16:54:12 ID:???
Macは、windowsの値上げを防ぐ為のかませ。
860Name_Not_Found:2009/09/03(木) 18:09:20 ID:???
Macはハードが高すぎるからだめだな
861Name_Not_Found:2009/09/03(木) 18:47:49 ID:???
Macのハードルが高いとか
862Name_Not_Found:2009/09/03(木) 18:52:01 ID:fWpUouD6
フォトショとイラレとオヒスが動いて、
使いやすいデスクトップ環境があるunixっつーことで、
愛用しとります…
863Name_Not_Found:2009/09/03(木) 19:02:23 ID:???
Macは他社製PCと同性能でも価格が2倍高いからな
ボッタクリもいいところだぜ・・・
OSとハードのセット販売じゃないとMSに対抗できないのがなんとも悲しい
864Name_Not_Found:2009/09/03(木) 21:46:45 ID:???
>>844
Firefoxでname = {}でオブジェクトを代入した結果エラーだったもの
break   = unlabeled break must be inside loop or switch
case   = syntax error
catch   = catch without try
const   = missing variable name
continue = continue must be inside loop
debugger = missing ; before statement
default  = invalid default XML namespace
delete   = syntax error
do    = syntax error
else   = syntax error
false    = invalid assignment left-hand side
finally   = finally without try
for     = missing ( after for
function = syntax error
if       = missing ( before condition
switch   = missing ( before switch expression
this    = invalid assignment left-hand side
throw    = syntax error
true     = invalid assignment left-hand side
try     = missing { before try block
typeof    = syntax error
以下略
865Name_Not_Found:2009/09/04(金) 01:19:45 ID:???
undefinedには代入できるワナ
866Name_Not_Found:2009/09/04(金) 01:25:37 ID:???
勘違いしてる人多いけど、undefinedは予約語でもなんでもなく
たまたま未定義だからUndefined型が返ってくるだけだしなぁ

ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/7_Lexical_Conventions.html
null/true/falseにはNullLiteralとBooleanLiteralとしてちゃんと定義も予約もある
undefinedにはそれがない
867Name_Not_Found:2009/09/04(金) 01:47:51 ID:???
> たまたま未定義

未定義じゃないよー
undefinedはグローバル変数として定義されてる。その変数の初期値が未定義値なだけでw
868Name_Not_Found:2009/09/04(金) 02:03:15 ID:???
ttp://www.benjoffe.com/code/demos/canvascape/
javascriptでこんなことが可能なのか・・
すごいな・・
869Name_Not_Found:2009/09/04(金) 02:54:53 ID:???
>>898
すごいな('-^*)ノ
870Name_Not_Found:2009/09/04(金) 03:10:19 ID:???
>>898
すげええええ
871Name_Not_Found:2009/09/04(金) 03:55:56 ID:???
http://www.chromeexperiments.com/

Chrome Experimentsで扱ってるのはやばいのばっかだぜ
872Name_Not_Found:2009/09/04(金) 12:16:58 ID:???
JavaScriptだけじゃないじゃん。
CanvasあってのJSじゃん。
勘違いするな!!
873Name_Not_Found:2009/09/04(金) 12:29:04 ID:???
>>868
今更こんなの出されても
既出だし
874Name_Not_Found:2009/09/04(金) 13:03:16 ID:???
さっそく既出厨きました
875Name_Not_Found:2009/09/04(金) 15:43:31 ID:???
jsonで、
a = {"test1":"a1","test2":"a2"};
の(a1やa2ではなく)test1やtest2の文字を取り出したいんですけど
どうすればよいでしょうか。
876Name_Not_Found:2009/09/04(金) 15:49:13 ID:cp0cAsgZ
>>875
for(var i in a) alert(i);

こんなかんじで。
877Name_Not_Found:2009/09/04(金) 16:13:08 ID:???
>>876
できました、dクスです。
878Name_Not_Found:2009/09/04(金) 19:39:23 ID:???
addEventListenerっていつから登場しました?
昔自分でfunction作ってた気がしますが
昔からネイティブで実装されてたのでしょうか?
879Name_Not_Found:2009/09/04(金) 19:57:28 ID:???
ちょっと HTML を書くことになって、スレを通りすがりなんだが・・・
JavaScript はハンパなオブジェクト指向だと思っていたんだけど、
様子が変わっているのか。

>>878
>addEventListenerっていつから登場しました?

なにそれ。
Java 1.0 以降の Delegation Event Model かよ。
880Name_Not_Found:2009/09/04(金) 20:15:36 ID:???
>>872
処理をJavaScriptで書くということはJavaScriptプログラムということなんだよ
881Name_Not_Found:2009/09/04(金) 20:30:21 ID:???
>ハンパなオブジェクト指向
俺もお前も見る目がなかっただけ
2000年から言語仕様はほとんど変わってない

DOMやDOM Eventも2000年には発表されてる

とはいえ、2000年代初頭は90年代終わりのブラウザ戦争のせいで
JavaScriptは焼け野原にしか見えなかったから仕方ないと言えば仕方ない・・・
882Name_Not_Found:2009/09/04(金) 20:47:05 ID:???
DOMは言語仕様じゃなくてライブラリの仕様だけどな

>>879
addEventListenerは引数でハンドラ関数だけじゃなくてリスナオブジェクトも渡すことができる
その辺はJavaとかそういう関数オブジェクトの存在しない言語を想定しているんだろうね
883879:2009/09/04(金) 21:06:30 ID:???
てゆーか、名前空間はどうなった?
884Name_Not_Found:2009/09/04(金) 21:27:21 ID:???
>>882
ライブラリがオブジェクト指向じゃないとOOPに見えない人もいるだろうと思ったから挙げた
Javaだって言語仕様よりも標準ライブラリのほうが目に付くし
現実問題としてモダンJavaScriptを学ぶ上ではDOMは切り離せない存在だろう

>>883
スコープに関しては静的スコープぐらいなもんで基本的に寛容
まあスクリプト言語だし、Javaなんかのようなお役所的な言語思想ではなくもっとルーズ
885879:2009/09/04(金) 21:32:38 ID:???
ググったら、namespace.js とか見つけた

ttp://d.hatena.ne.jp/nully/20090302
// include com/example/RemoteClass.js
Namespace.include('com.example.RemoteClass');
var obj3 = new com.example.RemoteClass();

これイイじゃね
886Name_Not_Found:2009/09/04(金) 22:09:22 ID:???
E4XのNamespaceとバッティングする
887Name_Not_Found:2009/09/04(金) 22:15:59 ID:???
<a>に対してのclick()メソッドってない?
888Name_Not_Found:2009/09/05(土) 00:24:29 ID:???
aEventTarget#dispatchEvent(aEvent)
889Name_Not_Found:2009/09/05(土) 01:04:52 ID:???
Gecko でイベントオブジェクトに設定される isTrusted をクロスブラウザで使いたいんだけど
なんとか見わける方法ないかな
890Name_Not_Found:2009/09/05(土) 03:43:51 ID:3YiyMv6U
htmlstring += "<script language='JavaScript' type='text/javascript'>\n";
htmlstring += "<!--\n";
htmlstring += "//-->\n";
htmlstring += "</script>\n";

すみません
この記述って間違ってますか?
動かなくて困ってます
891Name_Not_Found:2009/09/05(土) 03:48:45 ID:???
>>890
その部分だけ見れば間違ってる

htmlstring = "";
htmlstring += "<script language='JavaScript' type='text/javascript'>\n";
htmlstring += "<!--\n";
htmlstring += "//-->\n";
htmlstring += "</script>\n";
element.innerHTML = htmlstring;
だったとしても、innerHTMLに<script>書いても動かないのは仕様
createElementでおk
892Name_Not_Found:2009/09/05(土) 04:16:51 ID:3YiyMv6U
>>891
ありがとうございます
createElementですか
ググッテ見ましたが難しそうですね
893Name_Not_Found:2009/09/05(土) 04:40:04 ID:3YiyMv6U
defer属性ってのは関係あるんですかねやっちゃいけないっぽい感じのコードっぽいですが
ググッテるんですがcreateElementでの記述方法がわかりません
894Name_Not_Found:2009/09/05(土) 04:49:41 ID:H9ujyZJA
mixiアプリでユーザー情報を取得するクラスを作成したいのですが、

UserData.prototype={
type : "UserData Object",
nickname : "名無し",
id : null,
getUserInfo : function(IdSpec){
var req = opensocial.newDataRequest();
req.add(req.newFetchPersonRequest(IdSpec), "user");
req.send(function(data) {
var item = data.get("user");
var user = item.getData();//ここまではエラーはありませんでした
this.nickname = user.getDisplayName();//うまくthis.nicknameを参照できない
this.id = user.getId();//
});
}
};

このようにしても、メソッドの中でコールバック関数を呼び出す部分があり、その中でthisを使ってプロパティにアクセスできなくて困っています。どなたかよろしくお願いします。
895Name_Not_Found:2009/09/05(土) 05:03:23 ID:???
非ユーザー定義オブジェクトでnewしなきゃいけないのってDateだけ?
896Name_Not_Found:2009/09/05(土) 06:44:09 ID:???
空白ノードがブラウザで挙動違うのがうざいな
897Name_Not_Found:2009/09/05(土) 06:56:46 ID:???
initメソッドってJavaのメインメソッド(public static void main(String[] args){})のようなものでしょうか?
898Name_Not_Found:2009/09/05(土) 06:58:43 ID:???
スクリプトが動いているのにコメントアウトまでdocument.writeする男の人って・・
899897:2009/09/05(土) 07:00:05 ID:???
よくよく考えてみたら初期化ということはコンストラクタのようなものですかね
900Name_Not_Found:2009/09/05(土) 08:33:45 ID:???
public static void mainに対応するのはあえて言うなら
window.onloadとかjQuery(document).readyかと

>>894
たぶんthisが期待してるものと違うはず
期待するthisがとれるところで、
var self = this;
とか書いておいて、そこではself.nicknameとかする
901Name_Not_Found:2009/09/05(土) 08:53:56 ID:???
>>894
thisの代わりにUserData.prototype
902Name_Not_Found:2009/09/05(土) 09:15:17 ID:???
ふと疑問に思ったんだけど、1次元配列の中に何個要素が入ってるかって
どうやって調べればいい?lengthでやてたんだけどこれでいいのか不安になってきた。
903Name_Not_Found:2009/09/05(土) 09:55:50 ID:bLL6/xF0
>>902
いいよそれで。
904Name_Not_Found:2009/09/05(土) 09:58:26 ID:???
var ary = [];
ary[10] = "hoge";
alert(ary.length); //11

このalertで1と出したいんであれば、配列の中身を全部チェックしてundefinedでないものを数えるしかない
905Name_Not_Found:2009/09/05(土) 10:10:16 ID:???
ary = [0,1,2]; // = { 0:0 , 1:1 , 2:2 , length:3 }
ary.length = 5; // = { 0:0 , 1:1 , 2:2 , 3:undefined , 4:undefined , length:5 }
ary.length = 1: // = { 0:0 , length:1 }

ふしぎ!
906Name_Not_Found:2009/09/05(土) 10:40:49 ID:???
900超えたので、テンプレ論議があれば今どうぞ。
907Name_Not_Found:2009/09/05(土) 11:14:38 ID:???
>>891
//
</
908Name_Not_Found:2009/09/05(土) 11:25:21 ID:???
>>907
alert("//abc");
909Name_Not_Found:2009/09/05(土) 11:58:23 ID:???
JSONってジェイソンでいいの?(赤面しながら
910Name_Not_Found:2009/09/05(土) 12:01:36 ID:???
よく使うデータフォーマット(JSONとか)とかの紹介もテンプレに入れてほしいです
911Name_Not_Found:2009/09/05(土) 12:02:31 ID:???
>>6のMSDNのリンク先から情報が消えてます
912Name_Not_Found:2009/09/05(土) 12:15:35 ID:???
三項演算子ってifでいいんじゃないの?・・
なんであるの・・
913Name_Not_Found:2009/09/05(土) 12:19:52 ID:???
可読性を悪くするため
難解=良 と勘違いしている人はいっぱいいる
914Name_Not_Found:2009/09/05(土) 12:21:02 ID:???
>>893
ttp://d.hatena.ne.jp/secondlife/20050503/1115085179
bookmarkletの話だけど、DOMへの継ぎ足し方は同じ
でもインラインのコードは動かなかったような気もする

deferでどうにかなるのはIEだけだったはず

>>895
Dateもnewできる
というかECMA完全準拠だとnew Date()以外に現在時刻を得る方法がない

>>905
ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-4_Array_Objects.html
の冒頭部分
仮想的にはこういうこと
var ary[3], ary[4]
delete ary[1], ary[2], ary[3], ary[4]

>>910
JSONはネイティブ対応しはじめてるし入れていいかもね
ttp://www.json.org/json-ja.html
JavaScriptからの扱い方について、どこかいいリンク先ある?

>>912
var x = flag ? a : b;
if (flag) var x = a; else var x = b;

インクリメントの存在意義について問われたような気分
915894:2009/09/05(土) 12:39:24 ID:H9ujyZJA
>>900,901
それでプロパティにはアクセスできましたが、書き換えても呼び出しもとに反映されなません。
ブロックの外で、

var self = this;

getUserInfoメソッドの中を

self.nickname = user.getDisplayName();

となおしました。

これで、

usr = new UserData();
usr.getUserInfo(opensocial.IdSpec.PersonId.OWNER);
alert(usr.nickname);

としても「名無し」と出てしまいます。
916Name_Not_Found:2009/09/05(土) 12:43:42 ID:???
iepngfixというスクリプトを使ってるサイトがあるのですが
最近になってスクリプトが上手く働かなくなりました。

画像が表示されないマーク(×)が出た裏に画像が表示されている状態になります。

スクリプトの製作者のサイトはリンク切れで、どういうことなのかさっぱり分からず困っています。
ソース内にblank.gifというファイルのURLが書かれてるのですがこれもリンク切れで、このせいかとも思ってるのですが…
とにかくとっかかりが掴めずどうしていいかわかりません。
どなたか検索のヒントだけでも教えていただけないでしょうか。
917Name_Not_Found:2009/09/05(土) 15:49:30 ID:???
>>915
>var self = this;
これはgetUserInfoの中で宣言するんだお
918Name_Not_Found:2009/09/05(土) 16:16:50 ID:???
919Name_Not_Found:2009/09/05(土) 17:19:11 ID:TC8NxZAn
ttp://loadinfo.net/
このサイトでgifをダウンロードできるのですが
自分の好きな色と背景色を選ぶことが可能です
こんなことはスクリプトで可能でしょうか?
どのようなプログラムを作るとできるのでしょうか?
920Name_Not_Found:2009/09/05(土) 17:23:36 ID:???
JavaScriptでやるのは難しいが
16進数でGIFのデータを生成 -> base64でエンコード -> dataURLスキーム形式で読み込み で出来ると思う
921Name_Not_Found:2009/09/05(土) 17:26:40 ID:???
<hoge:fuga>というタグのXMLをパースしたくて、jqueryのfindメソッドを使っています。
しかし、ダブルコロンが曲者で
(xml).find("hoge\\:fuga").each( function(){
 なんらかの処理
}
という風に、\マークによるエスケープでIE,Firefoxでは目的が達成できたのですが
Operaで上手くパースすることができません。(\なしの記述も試しましたがだめでした。)
ダブルコロンの処理方法について知っている方がいれば、教えていただけるとありがたいです。
922Name_Not_Found:2009/09/05(土) 17:37:32 ID:???
iframe で読み込んだリンクを制御することってできるのでしょうか?

具体的にいうと、iframe内で読み込んだ外部ページのリンクがクリックされた場合、
リンク先URLの一部を書き換えてジャンプさせる…ということをしたいのです。
そのようなことはできるのでしょうか…?
923Name_Not_Found:2009/09/05(土) 17:52:03 ID:???
なにそれこわい
924Name_Not_Found:2009/09/05(土) 18:12:26 ID:???
>>922
PHP使え。スレ違い
925Name_Not_Found:2009/09/05(土) 18:16:55 ID:???
>>918
ありがとうございます

どうも元になったものはそれみたいなんですが、うちにあるのはソース見ると作った人の名前が日本人なんです。
ただ原理は一緒ぽい?それを参考にして作った?みたいなのでちょっと色々やってみます。
ありがとうございます。
926Name_Not_Found:2009/09/05(土) 18:52:27 ID:???
>>922
jsでやろうとすると、iframeで読み込んだリンクが同一ドメインの必要がある
927Name_Not_Found:2009/09/05(土) 19:02:33 ID:???
アドバイスありがとうございます!

>>926
同一ドメインの場合、やる方法があるのですね!
よろしければヒントをいただけないでしょうか。
928Name_Not_Found:2009/09/05(土) 19:46:56 ID:???
>>927
やってみろよ

ここは"やり方を教える"スレじゃないよ
929Name_Not_Found:2009/09/05(土) 19:52:35 ID:06CVr2gZ
null、true、falseは予約語ではなくリテラルというのでしょうか?
930Name_Not_Found:2009/09/05(土) 19:52:54 ID:???
>>929
両方
931Name_Not_Found:2009/09/05(土) 20:00:39 ID:???
予約語=リテラル?
932Name_Not_Found:2009/09/05(土) 20:03:40 ID:06CVr2gZ
JavaScriptの解説サイトではnull,true,falseを予約語として紹介しているのを見かけます
MDCには以下のように書いてありました

>さらに、null は Null リテラル として ECMAScript の仕様で予約されており、true と false は Boolean リテラルとして ECMAScript の仕様で予約されています。
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Reserved_Words

933Name_Not_Found:2009/09/05(土) 20:09:13 ID:06CVr2gZ
ここに書いてあったんですけど
safariではshortとcharを変数名として利用できないと書いてありますが、IEやFxでは動くと書いてあります
でもshortとcharはECMAで決められてる予約語ですよね?

ttp://www.kawa.net/works/js/tips/future-reserved-words.html
934Name_Not_Found:2009/09/05(土) 20:17:11 ID:???
char型とか何年経っても実装されないとおもう
935Name_Not_Found:2009/09/05(土) 20:37:10 ID:???
>>931
予約語≠リテラルだけど予約語かつリテラル

>>933
厳密にはダメだし無理に使う理由もない
使えるのは場当たり的な独自拡張だと思っておけばいいんじゃない?
936Name_Not_Found:2009/09/05(土) 20:41:15 ID:???
>>934
JavaScript 2.0をdisってんのか
937Name_Not_Found:2009/09/05(土) 21:16:17 ID:???
>>928
やり方が全然想像つかないので、ヒントだけでもいただけないでしょうか?><
938Name_Not_Found:2009/09/05(土) 21:26:31 ID:???
>>937
コピペスレ行けって言ってんの
939921:2009/09/05(土) 22:28:23 ID:???
自己解決しました。ありがとうございました。
940Name_Not_Found:2009/09/05(土) 23:14:54 ID:???
このスレ感じ悪いな
941Name_Not_Found:2009/09/05(土) 23:17:34 ID:???
>>940
変なの沸いてるだけ
942916=918:2009/09/06(日) 00:01:21 ID:???
>>916です。
>>918のサイトより、blank.gifを貰って来て自サーバにアップして、
スクリプトのソース中のリンクを自サーバのgifにすることで解決しました。
今まで知らなかったこととは言え、他人のサーバに直リンしてたようで、申し訳ない…。
取り急ぎ報告&改めて>>918に感謝。ありがとうございました。
943Name_Not_Found:2009/09/06(日) 00:22:01 ID:???
今までクライアント側の情報を横流ししていたわけだな
944Name_Not_Found:2009/09/06(日) 02:27:55 ID:???
>>920
ありがとうございます
javaスクリプトしか知らない自分にはちんぷんかんぷんですが
勉強する道をみつけました
945Name_Not_Found:2009/09/06(日) 05:35:07 ID:FE6pRMVX
初歩的な質問ですみません。
よくライブラリコードやサンプルコードを見ていると$で始めているところがありますが、これは何を指しているのでしょうか。
またコメントの中で@paramとなっているのも散見しますがこれもどういう意味を持っているのでしょうか。
946Name_Not_Found:2009/09/06(日) 09:22:24 ID:???
>>945
$は、目立つから。
@は、インスタンスメソッドのつもり。
947Name_Not_Found:2009/09/06(日) 10:23:15 ID:???
XP上のIE8とIETESTER6、7の現象ですが、
スタイルでboldをかけている英数字に
jQueryのfadeToを使用するとフォントが汚くなるのですが、
これは仕様ですか?

/*--------------------
javascript
--------------------*/

$("#execute").toggle(
function(){
$("#jqTest").fadeTo("slow", 0);
},
function(){
$("#jqTest").fadeTo("slow", 1);
}
);


/*--------------------
HTML
--------------------*/
<input type="button" value="fadeTo" id="execute" />
<div id="jqTest">
<p style="color:#666; font-weight:bold;">あいうえお<br />ABCDE<br />01234</p>
</div>
948Name_Not_Found:2009/09/06(日) 10:43:53 ID:???
>>945
$付きは動作が変わるといった特殊な効果はない
ライブラリ読み込み元と競合しにくくする狙いもあるんじゃないかと思う

後者はJSDoc形式のドキュメント

>>946
JavaDocも知らんのかw
949Name_Not_Found:2009/09/06(日) 11:26:36 ID:???
たまに、vart test = {name:"名前",old:"年齢"};というような記述を
オブジェクトとしてみることがあるのですが、これはジェイソンなのでしょうか?
ジェイソンだとnameもoldもクォーテーションで囲まないといけなかった?はずなのですが。
950Name_Not_Found:2009/09/06(日) 11:32:11 ID:???
ただのObjectリテラル

JSONはObjectリテラルとしても解釈できる文字列
951Name_Not_Found:2009/09/06(日) 11:42:14 ID:???
JavaScriptはbreak 2;のようなことはできますでしょうか?
ラベル指定のみですかね?
952Name_Not_Found:2009/09/06(日) 11:43:27 ID:???
>>950
なるほど文字列、わかりました。ありがとうございます。
953Name_Not_Found:2009/09/06(日) 14:23:17 ID:???
>>951
言語仕様を読めば分かることだけど、ラベル指定のみですね。
954Name_Not_Found:2009/09/06(日) 16:49:17 ID:???
最近訪れたサイトを表示するってやつなんですが
http://whattheinternetknowsaboutyou.com/
これは javascript で処理してますよね。

このリンクの既読、未読のデータは
サーバ側の管理人が受け取れるデータなのでしょうか?

基本的に許可されてない情報だと覚えてるのですが。
955Name_Not_Found:2009/09/06(日) 17:15:28 ID:???
訪れた覚えの無いサイトも表示されてる
956Name_Not_Found:2009/09/06(日) 18:03:30 ID:???
957Name_Not_Found:2009/09/06(日) 18:46:44 ID:???
>>956
ありがとうございます。取れてしまうんですね。
958Name_Not_Found:2009/09/06(日) 19:03:32 ID:???
次スレは975越えたら。MSDNは直すとして、データフォーマット
の紹介はどうする?何を入れるかとか議論してないので持ち越しかな。
959Name_Not_Found:2009/09/06(日) 21:50:15 ID:???
>>945
ECMA262-3では、$は機械生成コードであることを意味する
テンプレートから動的生成とかドキュメント生成など
だがこの規約を守っているライブラリはほとんどないので
ECMAScript5でこの規約は削除された
960Name_Not_Found:2009/09/06(日) 23:08:03 ID:???
よし!
961Name_Not_Found:2009/09/07(月) 14:50:15 ID:???
slice,substring,substrメソッドの違いがわからん
962Name_Not_Found:2009/09/07(月) 15:14:28 ID:???
負数指定で比較してみれ。
IE6はどれか対応してない。
963Name_Not_Found:2009/09/07(月) 15:14:59 ID:???
substrは非公式だから忘れていい
substringは負数が扱えない代わりに、引数の大小を問わない
alert("JavaScript".slice(0,-6)); // "Java"
alert("JavaScript".substring(0,-6)); // ""
alert("JavaScript".slice(4,0)); // ""
alert("JavaScript".substring(4,0)); // "Java"
964Name_Not_Found:2009/09/07(月) 16:06:34 ID:pNchJXM4
>>963
>substrは非公式だから忘れていい

substrが非公式だってことはよく忘れるw
965Name_Not_Found:2009/09/07(月) 17:45:58 ID:???
どちらも意外と遅いんだよなぁ
ループするならexecでpushした方が良いんじゃねーかってくらいに。
966Name_Not_Found:2009/09/08(火) 01:26:19 ID:???
iFrameのスクロール情報って親ページからは取得できないんですか?
イメージとしては<iframe onscroll="***">みたいのを実現したいのですが。
967Name_Not_Found:2009/09/08(火) 01:28:12 ID:3eviFrTF
>>963
>substrは非公式だから忘れていい

substrは非公式だが忘れられない
968Name_Not_Found:2009/09/08(火) 02:00:17 ID:???
非同期処理を同期させる方法を調べていたら、以下の様なコードを見つけたのですが、
(たぶんshindigのコードだと思います。)

callAsyncAndJoin=function(funcs, cont, opt_this) {
var pending = funcs.length;
var results = [];
for (var i = 0; i < funcs.length; i++) {
var wrapper = function(index) {
funcs[index].call(opt_this, function(result) {
results[index] = result;
if (--pending === 0) cont(results);
});
};
wrapper(i);
}
};

funcsに同期させたい関数の配列を代入すると処理完了時にcontを実行するというようなことが説明に書いてありました。
しかしこれを使おうとしても、firebugで funcs[index].call is not a function と言われてしまいます。どなたか使い方が分かる人もしくは非同期処理をうまいこと同期処理っぽくする方法がありましたら教えてください。
969Name_Not_Found:2009/09/08(火) 02:25:38 ID:???
>>968
エラー通りfuncsの中身がおかしいんだと思うけど
funcsの由来(callAsyncAndJoin呼び出ししてる部分等)がないからわからん
firebugでfuncsをウォッチしてみたら?
970Name_Not_Found:2009/09/08(火) 04:13:58 ID:21pQrGfX
>>969
ありがとうございます。
初心者なものでJSのfunctionの使い方があんまりよく分かってないんですけど、
funcs[index].call()というのは、引数で与えた関数を順番に実行してる部分ですかね?
そうすると、.call()というのはメソッドになるのかな?ということは、引数として要求するfuncには特別な仕様が求められているんでしょうか。

firebugで監視しながらもうちょっと弄ってみます。
971Name_Not_Found:2009/09/08(火) 05:51:14 ID:???
★index.html
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/index.js" type="text/javascript"></script>

<h2 id="content_swf">ここに出したい</h2>

★indez.js
onload = init;
function init() {
swfLoad();
}
function swfLoad(){
$("content_swf").innerHTML = '<img src="../images/top_image01.jpg">';
}

index.htmlが読み込まれた時に指定の場所にタグを書き出したいんですが
上手くいきません。良い方法はありますか。
972971:2009/09/08(火) 05:52:25 ID:???
★indez.js → ★index.js です。
973Name_Not_Found:2009/09/08(火) 07:08:17 ID:???
コンストラクタ関数はおいといて、
関数ってmath関数だけ?
ほとんどメソッドとプロパティ形式で呼び出すのかな。
974Name_Not_Found:2009/09/08(火) 07:42:34 ID:21pQrGfX
>>971
別にそれでうまく読み込めるけど
prototype.jsのパス、画像のパスが間違ってないか確認したら?
975Name_Not_Found:2009/09/08(火) 09:35:07 ID:Qhjga5vA
無視
976Name_Not_Found:2009/09/08(火) 12:28:16 ID:QElxcOuO
substrみたいに非公式のものをまとめたサイトってありませんか?
977Name_Not_Found:2009/09/08(火) 12:58:53 ID:???
当たり前に使っているwindowさえ非公式じゃなかったっけ?
HTML5が確定すればだいぶマシになるんだろうけど。
978Name_Not_Found:2009/09/08(火) 16:09:10 ID:???
Canvasってこれからも進化していくのか、
新しい規格が誕生してしまうのか微妙なところだな
979Name_Not_Found:2009/09/08(火) 16:59:33 ID:???
prototype.jsとか使っていて、CSS上のidが複数あっても内容書き換え(innerHTML)とかでちゃんと動くけど。
やっぱりCSSのidが同じものが複数あるのはまずい?

もちろんCSS的にまずいことは分かってるけど、楽ちん出来るんだよね・・。
980Name_Not_Found:2009/09/08(火) 17:52:57 ID:???
>>970
functionは全てFunctionオブジェクトのインスタンスで
Function.prototype.callが存在するから、なにもしなくてもcallはある

つーかそのぐらいは単純な例を書いて試しせばいいんだよ
var x = [ function () { alert("foo"); } ];
x[1] = function () { alert("bar"); };
function baz() { alert("baz"); }
x[2] = baz;
for (var i = 0, l = x.length; i < l; i++) { x[i].call(); }

だから呼び出し側の凡ミスだろうけど晒してくれないんじゃわからん

>>973
コンストラクタのプロパティ(クラスベースでいうクラスメソッド)は
StringやらDateやらにもある

>メソッドとプロパティ形式で呼び出す
グローバルは全てグローバルオブジェクトに格納されるから
厳密には、いわゆる「関数」は存在しない(例えばalertもwindow.alertの省略形)
せいぜいローカル変数にいれたfunctionぐらい

>>976
標準であるECMAやDOMを調べた方が早い

>>979
HTML的にダメ、つーかスレチ
 
981979:2009/09/08(火) 17:56:09 ID:???
>>980
レスありがとう。
xhtml+css的に問題あるのは分かるけど、JS的にはどうなのかなぁと思って。
動けばいいってもんじゃねぇって答えは大体分かってるんだけどねw
982Name_Not_Found:2009/09/08(火) 17:59:01 ID:???
HTMLのidはIdentificationの略だから

Identification
━━ n. 同一であるとすること, 同一性の確認; (死体, 罪人などの)身元確認; 身分証明(となるもの); 識別; 一体化, 同一化 ((with)).
983Name_Not_Found:2009/09/08(火) 18:13:14 ID:???
>>981
それは無知初心者が書いたページ用の、ブラウザによる寛容動作だろ
984Name_Not_Found:2009/09/08(火) 18:15:01 ID:???
>>981
既に存在していると上書きされるから最後に読み込まれたものが選択されるんじゃないかな
985Name_Not_Found:2009/09/08(火) 18:17:21 ID:???
HTMLでダメならそれに基づいたDOMもダメで、DOMを使ってアクセスしてるJSもダメ

XHTMLとは違ってHTMLは緩いからエラーでないだろうけど
どの要素を受け取れるかすら保証はされない
実装の都合で、どうやってアクセスしても最初の要素しか出てこないとか
アクセスするたびに別の要素が出てくるといったことが起きても不思議はない
986Name_Not_Found:2009/09/08(火) 18:42:01 ID:???
987Name_Not_Found:2009/09/08(火) 20:32:13 ID:???
>>985
> XHTMLとは違ってHTMLは緩いからエラーでないだろうけど
JavaScript 側ではどっちでもエラーは出ないが
XHTML/HTML どちらでも Validator ではエラー
つまり
> HTMLでダメならそれに基づいたDOMもダメで、DOMを使ってアクセスしてるJSもダメ
に引っかかるからそもそもダメ
988Name_Not_Found:2009/09/08(火) 20:58:29 ID:???
DOMとvalidatorは関係ない
木構築にDTD/Schemaが必要となればSGMLに逆戻り
HTML5はエラー対策のために敢えて逆戻りしているが
989Name_Not_Found:2009/09/08(火) 22:03:33 ID:???
validでないHTMLだとDOMツリーが定義できるかどうか
分からないじゃん。だから動作するとしても「たまたま」
「次のバージョンのブラウザではどうなるか分からない」
というしかないよね。
990Name_Not_Found:2009/09/08(火) 22:05:39 ID:???
991Name_Not_Found:2009/09/08(火) 23:18:43 ID:???
l50くらい取ってもいい気がします
992Name_Not_Found:2009/09/09(水) 05:08:15 ID:???
>>982
うん、どう見てもそれは知った上で言ってるでしょ・・
993Name_Not_Found:2009/09/09(水) 14:45:17 ID:???
window.onload=test();
みたいに、なんで()つけちゃいかんの?・・
994Name_Not_Found:2009/09/09(水) 14:49:56 ID:???
>>993
()を付けたらtest関数を実行した戻り値を代入することになるから
995Name_Not_Found:2009/09/09(水) 14:57:53 ID:???
>>994
なるほどとんくす
996Name_Not_Found:2009/09/09(水) 18:50:45 ID:???
埋め
997Name_Not_Found:2009/09/09(水) 18:51:26 ID:???
埋め
998Name_Not_Found:2009/09/09(水) 18:52:07 ID:???
埋め
999Name_Not_Found:2009/09/09(水) 18:52:56 ID:???
次スレ
+ JavaScript の質問用スレッド vol.73 +
http://pc11.2ch.net/test/read.cgi/hp/1252401448/l50
1000Name_Not_Found:2009/09/09(水) 18:53:38 ID:???
このスレは1000の風になりました
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。