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

1 名前:まず >>2-3 読め! 続いて過去スレ全集を検索! 投稿日:2006/10/21(土) 18:26:32 ID:???
━━━━━JavaScript質問スレ道場訓━━━━━
 一、礼節を重んじ常に努力精進すること
 一、ブラクラに打ち勝つ精神力を持つこと
 一、心身の優れたJavaScriptを学ぶこと
 一、雑草の如く生涯JavaScriptを貫くこと
 一、感謝と反省を忘れないこと
 以上
━━━━━━━━━━━━━━━━━━━━━━

このスレに書き込むことが許されるものは以下のとおり
・テンプレ/FAQ/過去ログ/関連資料を読める者。とくに>>2-10は必須!!!
・JavaScriptとJavaの違いを理解する者
・スクリプトを組むための最低限のHTML・CSSを理解する者
・ユーザーに迷惑となるスクリプトを書かない者
・「初心者です」を振りかざさず、質問を分かる日本語で説明できる者
・対象環境や使用技術は質問者の裁量であることを理解する者
 (質問/回答時はなるべく環境明記。WinIE5.5/N6未満と希少ブラウザは必須!)

[必読]過去スレ全集 http://user.ftth100.com/mirrorhenkan/javascript/
前スレ http://pc8.2ch.net/test/read.cgi/hp/1158468856/l50
まとめサイト http://web2ch.s31.xrea.com/?JS
FAQ・注意・過去ログ・関連資料・関連スレ>>1-10またはまとめサイト


2 名前:まず >>2-3 読め! 続いて過去スレ全集を検索! 投稿日:2006/10/21(土) 18:27:42 ID:???
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
 長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
 ただ「動きません」「エラーです」は何も情報がないため嫌われる。
 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!!
 OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度
 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8)
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
7)質問はまっとうな(他人に理解できる)日本語で。
 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄


3 名前:まず >>2-3 読め! 続いて過去スレ全集を検索! 投稿日:2006/10/21(土) 18:28:24 ID:???
【FAQその1】
Q1. 開いた別窓/フレームの内容にアクセスできないのですが…
A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。
Q2. JavaScriptでローカルファイルを読み/書きたいのですが…
A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに…
A3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが…
A3. セミコロンで複数の文を区切られます。onclick="foo();bar();"としましょう。
Q4. document.write(...)でページ内容を追加したいのですが…
A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。
 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、
 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。
 innerHTMLは非標準ですがIE、Opera、Gecko(N6/N7/Firefox等)で対応済。
Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが…
A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか
 <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。
Q6. DOMでtable要素にtr要素を追加しても表示されないのですが…
A6. IEではtbody要素にtr要素を追加する必要があります。
 tbody要素はtbodyタグを書いていなくても自動的に作成されます。
 またはtable.insertRow()/tbody.insertRow()を使いましょう。
Q7. Aタグのonclickで動作指定してるのですが時々動きません…
A7. 「onclick="...;return false"」としないとページ移動しちゃうから。
Q8. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが…
A8. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。


4 名前:まず >>2-3 読め! 続いて過去スレ全集を検索! 投稿日:2006/10/21(土) 18:29:04 ID:???
【FAQその2】
Q9. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A9. 「document.forms.myform.elements[変数名].value」でどぞ。
 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
 例:「obj.p0=obj.p1=...=obj.p8=0;」⇔「for(i=0;i<9;i++) obj['p'+i]=0;」。
Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A10. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。
Q11. 100*1.15の結果が114.999…998となってしまうのですが…
A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。
Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが…
A12. Geckoのnew XMLHttpRequest()、IEのnew ActiveXObject("Microsoft.XMLHTTP")
 を使えばできる。古いブラウザだと隠しフレームに読むなどのワザが必要。
Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどうぞ。
 複数の関数を呼びたいときは obj.onclick=function(){foo();bar();};
 という風に無名関数を作りましょう。中に書かれたコードが実行されます。
Q14. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが…
A14. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。
 正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。
 各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、
 offsetがマッチした位置、sが置き換え前の文字列全体になります。


5 名前:まず >>2-3 読め! 続いて過去スレ全集を検索! 投稿日:2006/10/21(土) 18:29:35 ID:???
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと
 は無視」は不毛。質問者が分かって選択していれば尊重する。無知か
 らIE専なのは指摘してあげると親切。
・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される
 可能性大。非標準機能も損得を分かった上で使うならよい。
・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、
 そこだけ見ているとIE専になる。あとは上2件と同様。
・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当
 な理由があることも。尋ねて分かってないようなら煽っても可(w
・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選
 択するべき。一概にどちらは駄目、とは言えない。
・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性
 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。


6 名前:まず >>2-3 読め! 続いて過去スレ全集を検索! 投稿日:2006/10/21(土) 18:30:07 ID:???
【標準規格・リファレンス】
規格を読まずにどうなってるか分からんとか質問しないこと!

まとめサイト
http://web2ch.s31.xrea.com/?JS

ECMA-262
http://www.ecma-international.org/publications/standards/ECMA-262.HTM
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (和訳)

W3C Document Object Model Technical Reports
http://www.w3.org/DOM/DOMTR

E4X (ECMAScript for XML)
http://141.30.92.52/cubetto/download/ECMA-357.pdf

MSDN Library JScript / DHTML (現在日本語版は古杉)
http://www.microsoft.com/japan/msdn/library/ja/script56/html/js56jsoriJScript.asp
http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp

Mozilla Gecko DOM, Netscape devedge
http://www.mozilla.org/docs/dom/domref/
http://www.mozilla-japan.org/docs/dom/domref/ (和訳)
http://web.archive.org/web/20040822074426/devedge.netscape.com/central/javascript/


7 名前:まず >>2-3 読め! 続いて過去スレ全集を検索! 投稿日:2006/10/21(土) 18:45:31 ID:???
【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。

ECMAScriptチュートリアル (アクセスできないとの説あり)
http://www.axis.t.u-tokyo.ac.jp/~shunak/ecmascript/

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

Dynamic Scripting
http://www.interq.or.jp/student/exeal/dss/

JavaScript深層
http://www.hawk.34sp.com/


8 名前:まず >>2-3 読め! 続いて過去スレ全集を検索! 投稿日:2006/10/21(土) 18:46:07 ID:???
【検索】
キーワード『…』で検索しろ」「ぐぐれ」と言われた場合はこちらへ
http://www.google.co.jp/

【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!

Webサイト制作初心者用スレ Part 172
http://pc8.2ch.net/test/read.cgi/hp/1157790159/l50

CSS /* CSS・スタイルシート質問スレッド【60th】 */
http://pc8.2ch.net/test/read.cgi/hp/1157985465/l50

CSS/DHTMLバグ辞典スレッド 【第5版】
http://pc8.2ch.net/test/read.cgi/hp/1144494359/l50

役に立つ書籍は? 3冊目
http://pc8.2ch.net/test/read.cgi/hp/1142829968/l50


9 名前:Name_Not_Found 投稿日:2006/10/22(日) 00:12:31 ID:PS8ars4f
( ゚д゚) オッツー♪

10 名前:Name_Not_Found 投稿日:2006/10/22(日) 13:53:54 ID:???
前スレでかきこしたものですがDat落ちしたみたいなので
一応前スレで書きこしたないようをここに書き込んでおきます

>>974
失礼しました。
修正版をアップしてくれてたんですね
なかなかいいですね
打った瞬間スローになるところも
ありがとうございます

このあとは、それぞれとんだ方向のGIFに切り替わりホームランかどうかランダム?
に判定してその結果をGIFに反映させるという感じです。
あとは、ポール際のシーンもあって、ファールかホームランかの微妙なGIFも使いたいと思っています
そのシーンのGIFはまったく作ってないですが

>>991
ってことで>>947さんが修正してくれた感じでいいと思います

11 名前:Name_Not_Found 投稿日:2006/10/22(日) 13:57:35 ID:ijZGjqF8
JavaScriptでクラスを定義する時って
色々な書き方がありますが、どんな書き方がスタンダードですか?

僕は↓に習ってますが
ttp://www.morijp.com/masarl/homepage3.nifty.com/masarl/article/js-oop.html#class-canonical-form

12 名前:Name_Not_Found 投稿日:2006/10/22(日) 13:58:21 ID:???
>>10
打つ瞬間とまっているの古い機種だったからなんですね
新し眼の機種でやったらスムーズにいきました


13 名前:Name_Not_Found 投稿日:2006/10/22(日) 16:23:18 ID:???
全スレの986です。

992,993さんの通りにやってみましたが
オブジェクトを指定してくださいとエラーが
でてきてしまいました。
どうしてなのでしょうか??
よろしくお願いします。

14 名前:Name_Not_Found 投稿日:2006/10/22(日) 16:52:02 ID:???
>>13
関数Aの中で定義された関数Bは通常関数Aの中でしか使えない。

15 名前:Name_Not_Found 投稿日:2006/10/22(日) 22:45:32 ID:???
すれ違いかもしれませんが、

youtubeの動画を見ようとすると
JavaScriptをoffにしてるか
flash playerの最新版が入っていないため
見られないといわれました

flash playerは入れましたが、まだ見られませんでした。
JavaScriptはインターネットオプション→セキュリティ→レベルのカスタマイズ
を開いてスクリプトの項目を全て有効にしてみました。
それでもやっぱり見られません。
youtubeだけでなくflashを使ったページは皆見られないようです。

ブラウザはIEエンジンのsleipnirを使ってます。
(ただのIEでもダメでした。)

どうしたらいいでしょうか?


16 名前:Name_Not_Found 投稿日:2006/10/22(日) 22:57:22 ID:???
>>15
Flashの問題、どっかに不具合修正するパッチがあったはず
よく覚えてないのでここ以外のスレで聞いた方がよろし。

17 名前:Name_Not_Found 投稿日:2006/10/22(日) 22:58:22 ID:???
スレ違いだね。初心者スレに逝くのがいいんじゃないの。
ここは自分でJavaScriptコード書く人のためのスレ。

18 名前:13 投稿日:2006/10/22(日) 23:03:47 ID:???
>>14
自分頭悪いので言っている意味は分かっていても
それからどうしたらよいか分かりません。
ご迷惑をおかけしますので手取り足取りスレに行ってきます。

ありがとうございました。

19 名前:948 投稿日:2006/10/22(日) 23:35:52 ID:???
前スレの948です。いろいろやってるんですが、解決しないのでもう一度質問してみます。

基本的にはブラウザを閉じた場合や他のページに移動した場合、タブを閉じた場合などに
その情報をXMLHttpRequestでサーバ側に伝えたいということなのですが。。。

前スレで教えて頂いたOnBeforeUnloadだとダイアログ出すことは出来ますが、
そのままブラウザ閉じられた場合に関数を実行できません。
window.addEventListener('beforeunload', '関数名', true)
のようにしてもそのまま閉じられた場合はFirefoxではアクションを検知しません。
何か対策などはありますでしょうか・・・。

20 名前:Name_Not_Found 投稿日:2006/10/22(日) 23:37:05 ID:???
>>16 ありがとうございます!
flashplayerのスレ行ったら、
やっぱり同じ問題になってたらしく、
プレーヤーをダウングレードしてみました!
見事見ることができました。

21 名前:Name_Not_Found 投稿日:2006/10/23(月) 00:15:24 ID:???
>>19
結局閉じる時に確実に何かをするというのは難しいと思うよ。
むしろXMLHttpRequestを使って定期的にサーバ側に「開いている」
と伝え、サーバ側で一定時間報告がなければ閉じたと思うのが素直かと。

22 名前:948 投稿日:2006/10/23(月) 09:37:29 ID:???
>>21
やはりそうですか・・・。
サーバ側で監視スレッドを立てるなどの方法も以前から検討はしてましたが、
これできっぱり諦めがついたのでそのように実装しようと思います。
ありがとうございました。

23 名前:Name_Not_Found 投稿日:2006/10/23(月) 16:44:11 ID:???
ロードが終了したiframeの高さが知りたいんですが、
どうしたらいいのでしょうか?

alert(myiframe.document.body.scrollHeight);
alert(myiframe.document.body.clientHeight);
alert(myiframe.document.body.scrollTop);
alert(myiframe.document.documentElement.scrollTop);
alert(myiframe.document.body.offsetHeight);

これだとできませんでした。

24 名前:Name_Not_Found 投稿日:2006/10/23(月) 17:12:42 ID:???
>>23 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var w = frames.f0, h = 0;
if(w.document.documentElement && w.document.documentElement.clientHeight) {
h = w.document.documentElement.clientHeight;
} else if(w.document.body && w.document.body.clientHeight) {
h = w.document.body.clientHeight;
} else if(w.innerHeight) {
h = w.innerHeight;
}
alert(h);
}
</script>
</head><body onload="test()">
<iframe name="f0" src="t2.html"></iframe>
</body></html>

25 名前:Name_Not_Found 投稿日:2006/10/23(月) 17:24:06 ID:???
>>24
ありがとうございます。

すいません、質問の仕方が悪かったんですが、現在のサイズではなく、
表示されている中身がスクロールバーなしで済むときの最小サイズが知りたい
のです。当然サイトによって値は変わるものになると思います。

わかりましたらお願いします。

26 名前:Name_Not_Found 投稿日:2006/10/23(月) 17:27:35 ID:???
>>25
中身が別鯖上なら無理

27 名前:Name_Not_Found 投稿日:2006/10/23(月) 17:32:00 ID:???
>>26
ありがとうございます。別さばではないです。

28 名前:Name_Not_Found 投稿日:2006/10/23(月) 18:08:38 ID:???
<html><head>
<script type="text/javascript">
function t() {
var w=document.getElementById("i"),d=(w.contentDocument?w.contentDocument:w.Document).getElementsByTagName("body")[0];
var o="OH: "+d.offsetHeight+"<br/>SH: "+d.scrollHeight+"<br/>CH: "+d.clientHeight+"<br/><br/>";
document.getElementById("o").innerHTML=o;document.getElementById("ta").value=d.innerHTML;
w.height=d.scrollHeight;
}
</script>
</head>
<body onload="t()">
<iframe id="i" src="t2.html"></iframe><br/>
<textarea id="ta" rows="10" cols="80"></textarea>
<div id="o"></div>
</body></html>


29 名前:Name_Not_Found 投稿日:2006/10/23(月) 19:15:53 ID:???
>>28
できました!
ありがとうございます。

30 名前:Name_Not_Found 投稿日:2006/10/23(月) 20:01:34 ID:???
>>28
一応、まだIE5.5は残ってるだろ。しょうもないことすんな。

>>29
>>24が書いてるみたいに、frames.f0 のように書かないと、
一部の訪問者から、ウイルスの警告が、とかなんとか苦情くるかもなw

31 名前:Name_Not_Found 投稿日:2006/10/23(月) 20:16:19 ID:???
>>30
IE5.5についてkwsk

32 名前:Name_Not_Found 投稿日:2006/10/23(月) 20:41:31 ID:D5lf7eS7
「JavaScript コーディング規約」でググると
http://c2.com/cgi/wiki?JavaScriptCodingStandard
↑が出てくるんですけど、

/*-------------------------------------------------------------------------
* Gui framework classes for the Web Client are stored in this file.
*
* DEPENDENCIES
* - Data.js
* - Utils.js
*-------------------------------------------------------------------------/

これってコメントとして間違ってません?

33 名前:Name_Not_Found 投稿日:2006/10/24(火) 03:19:43 ID:???
フォーム内の要素にチェックが幾つ入っているか(あるいは入ってるか否か)を判断する
メソッドか何かはありますか?
必須入力項目のチェックに使いたいのですが、forで繰り返してelemtent.checkedを一つずつ
チェックするしか方法はないでしょうか?

ちなみに
http://www.tohoho-web.com/js/form.htm
ここを参考にしています。

34 名前:Name_Not_Found 投稿日:2006/10/24(火) 03:20:31 ID:???
ない

35 名前:Name_Not_Found 投稿日:2006/10/24(火) 06:57:07 ID:???
function checkVaildness(form){
    var s ='';
    var name, id;
    var eles = new Array();
    for(i = 0; i < form.elements.length; i++){
        name = form.elements[i].name;
        id = form.elements[i].id;
        eles[name]++;
    }
    for(var k in eles){
        s += k + ' = ' + eles[k] + ', ';
    }
    alert(s);
    return false;
}

nameをインデックスにしてその個数を数えたいのですが
値がNaNになってしまうのはなぜですか?

36 名前:Name_Not_Found 投稿日:2006/10/24(火) 08:56:42 ID:???
>>35
初期値を入れないとundefinedでそれに1足そうとしたらNaN

37 名前:Name_Not_Found 投稿日:2006/10/24(火) 09:23:07 ID:???
var a="", b="", c="";
みたいな書き方ができるって、知らない人が意外に多いのよね。
たいてい
var a = "";
var b, c;
って使い分けたような書き方をしてある。

38 名前:Name_Not_Found 投稿日:2006/10/24(火) 09:37:54 ID:???
var a = b = c = "";

39 名前:Name_Not_Found 投稿日:2006/10/24(火) 09:58:12 ID:???
>>37
普通、初期値がある変数宣言と、ない変数宣言は分けて書くだろ。
そうしないと、後でデバグする時に、見づらくてかなわん。

40 名前:Name_Not_Found 投稿日:2006/10/24(火) 10:05:54 ID:???
>>39
あ、例が悪かった。dも用意して、
var a = "";
var b = "";
var c, d;
かな?初期値を入れる時にvarを連呼。

41 名前:Name_Not_Found 投稿日:2006/10/24(火) 12:02:22 ID:kD8fEPK8
このCGI
http://www.futomi.com/library/accs.html

を使って、htmlにJavaScript

<SCRIPT Language="JavaScript">
<!--
document.write("<img src='http://www.hoge.com/foo/acc/acclog.cgi?");
document.write("referrer="+document.referrer+"&");
document.write("width="+screen.width+"&");
document.write("height="+screen.height+"&");
document.write("color="+screen.colorDepth+"'>");
// -->
</SCRIPT>

を記述したところ…
IEで見ると、JavaScriptを書いた部分に20pxほどの余白が出来てしまいます。

fifefoxだと出てこないのですが…。

余白が出てこないようにするには、
どうすれば良いのでしょうか?

お分かりになる方がいらっしゃいましたら、
よろしくお願いします。

ちなみに、jsを外部に書き出してもダメでした。


42 名前:Name_Not_Found 投稿日:2006/10/24(火) 12:21:14 ID:???
>>38
それだとbとcがグローバルになるぞ。

43 名前:Name_Not_Found 投稿日:2006/10/24(火) 13:01:41 ID:e8blj3V0
このサイト↓
http://update.microsoft.com/microsoftupdate/v6/default.aspx?ln=ja

ページ開くと、「高速」のところにフォーカスがあるじゃあ〜りませんか。

これを応用して、ページを開いた時に、自動的に特定のテキスト文字へフォーカスを当てることは、
JavaScriptオンリーできますか?

44 名前:Name_Not_Found 投稿日:2006/10/24(火) 14:19:15 ID:???
>>43
そのテキスト文字というのがリンクならできる。
リンクじゃなくてもブラウザによってはできる。

45 名前:Name_Not_Found 投稿日:2006/10/24(火) 17:27:47 ID:aajciZSx
var o = {o:42};
というのはどういうことなのでしょうか。「o」が「o」 を持つことは
あり得ないと思うのですが。

46 名前:Name_Not_Found 投稿日:2006/10/24(火) 17:50:26 ID:???
alert(o.o);//42
有り得てる。

47 名前:Name_Not_Found 投稿日:2006/10/24(火) 18:27:50 ID:???
new Array()のコールのときに
まとめて連想配列を宣言するにはどうすればいいですか?

48 名前:Name_Not_Found 投稿日:2006/10/24(火) 18:39:07 ID:???
>>47
>>45


49 名前:Name_Not_Found 投稿日:2006/10/24(火) 18:49:56 ID:???
>>47
function ObjectArray() {
var a = new Array(),i;
if (typeof arguments[0] == "object") for (i in arguments[0]) a[i] = arguments[0][i];
for (i=1; i<arguments.length; i++) a[i-1] = arguments[i];
return a;
}
var myArray = ObjectArray({apple:"りんご",banana:"バナナ"},"あ","い","う","え");
for(var i in myArray) document.write(i+"="+myArray[i]+"<br>");


50 名前:Name_Not_Found 投稿日:2006/10/24(火) 18:55:12 ID:???
>>49
知識ないのに回答するな

51 名前:49 投稿日:2006/10/24(火) 19:02:22 ID:???
通常の配列に更に数字以外のプロパティを付けるっていう理解だったんだけど

52 名前:Name_Not_Found 投稿日:2006/10/24(火) 19:03:06 ID:???
ふつーにありえる。

53 名前:Name_Not_Found 投稿日:2006/10/24(火) 19:10:28 ID:???
>>48
それだとnewコールしてからさらに45を記述しないといけないようですが。
デフォではできないということでいいんでしょうか?

54 名前:45 投稿日:2006/10/24(火) 19:21:53 ID:???
>>46
ありがとうございます。それは私も確認しています。
分からないのはJavaScriptは参照渡しですよね。とすると「o.o」は
中でどのような処理になっているのでしょうか?

55 名前:Name_Not_Found 投稿日:2006/10/24(火) 19:30:49 ID:???
>>53
var o = new Array()
o = {o:42};
みたいにしたいって事?

var o = {o:42};
だけでいいよ。


>>54
var o = {o:42};

var o = {"o":42};
とまったく同じ。

56 名前:Name_Not_Found 投稿日:2006/10/24(火) 20:01:45 ID:kV9tQzGr
Drag and Drop で、
ウィンドウを越えて Drag and Drop したいんだけど、ムリ?

DIV+Position:absolute とかで作った擬似ウィンドウ(と呼ぶのか?)
の間でDnDをするのはカンタン。
でも、Window.open()とかで作った、ホントの別ウィンドウの間で
DnDって可能?


57 名前:Name_Not_Found 投稿日:2006/10/24(火) 20:27:02 ID:???
>>57
できたらキモイ

58 名前:Name_Not_Found 投稿日:2006/10/24(火) 20:35:37 ID:???
>>56
可能。おわり。参考)GoogleMap

59 名前:Name_Not_Found 投稿日:2006/10/24(火) 20:40:32 ID:???
>>55
var o = new Array( {o:42} );
みたいのはできないんですかね?

60 名前:Name_Not_Found 投稿日:2006/10/24(火) 20:58:01 ID:???
>>59
alert(o[0].o)

61 名前:Name_Not_Found 投稿日:2006/10/24(火) 22:32:00 ID:???
>>60
どーゆーことですか?

62 名前:56 投稿日:2006/10/24(火) 22:46:02 ID:kV9tQzGr
>>58

え?マジ?
やり方まで教えて!とは言わないんで、
Googleマップのどこがヒントになってるかだけでも教えてくださいな。
いまやってみたけど、どっこもDrag and Drop対応なんてしてないっぽいよ。
どこでDnDできるんですかね。


63 名前:Name_Not_Found 投稿日:2006/10/24(火) 23:39:44 ID:???
>>62
できたらキモイっつの
Firefoxなら拡張機能ごりごり書けば何とかなるかもしれんが、それはもうjavascriptとは無関係の世界

>>58はGoogleマップのぐりぐり感をD&Dだとおもってるんジャマイカ?
よくわからんけど

ごりごりぐりぐり

64 名前:Name_Not_Found 投稿日:2006/10/25(水) 01:00:44 ID:???
IE限定のキモイやつ
<html><head><script>
var x,y,list;
function getList(){return list;}
function init(){
list = (window.opener ? window.opener.getList() : []);
list.push(moveIcon);}
function mouseDown(){
x = event.screenX - window.screenLeft - obj.offsetLeft;
y = event.screenY - window.screenTop - obj.offsetTop;
obj.onmousemove = mouseMove;
obj.onmouseup = mouseUp;
obj.setCapture();}
function mouseMove() {for (var f in list) list[f](event.screenX - x, event.screenY - y);}
function moveIcon(x, y) {
obj.style.left = x - window.screenLeft;
obj.style.top = y - window.screenTop;
pos.innerHTML = x + ", " + y;}
function mouseUp() {
obj.releaseCapture();
obj.onmousemove = null;
obj.onmouseup = null;}
</script>
<body scroll=no onload="init()">
<button id="btn" onclick="window.open(document.location.href)">Window OPEN</button><span id=pos></span>
<div id="obj" onmousedown="mouseDown()" style="position:absolute;top:100;left:100;width:50;height:50;background:blue;"></div>
</body>

65 名前:Name_Not_Found 投稿日:2006/10/25(水) 01:06:31 ID:???
うはキモス
Opera でも動作した

66 名前:Name_Not_Found 投稿日:2006/10/25(水) 02:27:33 ID:LjM9N1Tt
JavaScriptでwaitってどうすればいいですか?

67 名前:Name_Not_Found 投稿日:2006/10/25(水) 05:00:52 ID:???
<img src="server1.com/img.jpg">
<img src="server2.com/img.jpg">
みたいに、同じイメージなんですが、
生きてるサーバが見つかるまで順繰りに
トライしたいのですが、どーしましょう。
XmlHTTPRequestですと、ドメインの制限に引っかかります・・・。


68 名前:Name_Not_Found 投稿日:2006/10/25(水) 07:38:53 ID:???
img.onerror とか img.onload とか img.complete とかチェックしたら?

69 名前:Name_Not_Found 投稿日:2006/10/25(水) 07:43:21 ID:???
>>66
そういや、前どっかのWeb屋が作ったサイトで

処理
var limit = new Date() + 10 * 1000;
while (new Date() + 0 < limit);
処理

みたいなことが書いてあるのがあって、かなり死んだ。 むしろ死ねばいいのに。

70 名前:Name_Not_Found 投稿日:2006/10/25(水) 08:23:04 ID:???
>>66
setTimeout()で代替できるように書く。それができない奴は
JavaScriptやってはいけないと思う。>>69 みたいなのは最低だから。

71 名前:Name_Not_Found 投稿日:2006/10/25(水) 09:15:43 ID:???
>>69
それじゃあ文字列の連結だろ。そして>>70は気づけよ。

72 名前:Name_Not_Found 投稿日:2006/10/25(水) 09:21:02 ID:???
デバッグ中なら見逃しちゃまずいけど、デバッグしてるわけじゃないし…。

73 名前:Name_Not_Found 投稿日:2006/10/25(水) 14:37:39 ID:???
>>57

74 名前:Name_Not_Found 投稿日:2006/10/25(水) 22:51:23 ID:Q+/qR7Wt
質問です。
JavaScript間もないのでガベジとかよく分かっていません。
初期化だけで使うような関数はdeleteしておいたほうがよいでしょうか?

75 名前:Name_Not_Found 投稿日:2006/10/25(水) 23:08:37 ID:???
>>74
そんなもんのメモリが問題になることは絶対にないね。それとも
初期化に使う関数が何万行もあるのかね。

76 名前:Name_Not_Found 投稿日:2006/10/26(木) 00:32:31 ID:???
タイマーを作る時にボタンを押す前はstart押した後はstop
しstopになるとstartになると同時にカウントが0になるように
したいのですが、停止の欄にどのように0になるプログラムを
組んだらよいのでしょうか?

77 名前:Name_Not_Found 投稿日:2006/10/26(木) 00:35:51 ID:???
76さん、がっこうのせんせえにきいてみてください

78 名前:74 投稿日:2006/10/26(木) 00:57:30 ID:???
>>75
いや。たったの1行です。実は、ここ
ttp://www.graviness.com/virgo/javascript/d010823.html
読ませてもらっていて、不安になったものですから。そんな
ばかなとは思いましたが、なんかもしや真実かもとか考えて
しまって。ここの人も分からないとは書いてますが、大嘘で
すか?

79 名前:Name_Not_Found 投稿日:2006/10/26(木) 03:38:54 ID:???
2001年とは微妙に古い

80 名前:Name_Not_Found 投稿日:2006/10/26(木) 08:38:34 ID:???
>>78
1行だったらそんなものほっとくべきだよ。
>>76
<button onclick="this.innerHTML=(this.innerHTML=='start')?'stop'(count=0,'start')">start</button>
とかかな。試してない。そもそも読解の困難な日本語だし。

81 名前:Name_Not_Found 投稿日:2006/10/26(木) 14:55:33 ID:6eSTBhJ1
こんにちは。
var a=new obj();
のような書き方は正しいですか?

82 名前:Name_Not_Found 投稿日:2006/10/26(木) 15:09:41 ID:???
>>81
正しい。というか他にどういう書き方すんねん?

83 名前:81 投稿日:2006/10/26(木) 17:50:13 ID:???
>>82さん
というと、オブジェクトにvarをつけても別に問題ないですか?
変数はオブジェクトなんでしょうか。

84 名前:Name_Not_Found 投稿日:2006/10/26(木) 18:00:08 ID:???
>>83
日本語を話せ

85 名前:81 投稿日:2006/10/26(木) 18:17:36 ID:???
わかりました。

86 名前:Name_Not_Found 投稿日:2006/10/26(木) 20:46:08 ID:???
>>83
var はすべての変数につける。JavaScriptでは変数は入れるもの
の種別と関係なくすべて一緒だから、 数だろうが文字列だろうが
オブジェクトだろうが何でも入れていい。変数はオブジェクトでは
なく「オブジェクトや値を入れる(指す)ことができるいれもの」かな。

87 名前:Name_Not_Found 投稿日:2006/10/27(金) 04:21:13 ID:???
CPUになるべく負荷を掛けずにwaitする良い方法ないですかね。

88 名前:Name_Not_Found 投稿日:2006/10/27(金) 04:51:28 ID:???
>>87
setTimeout

89 名前:Name_Not_Found 投稿日:2006/10/27(金) 05:01:50 ID:???
もちろんsetTimeoutで考えてるんですけど
その場で処理をとどめて置くことってできますかね?
考えつかない・・・

90 名前:Name_Not_Found 投稿日:2006/10/27(金) 05:04:10 ID:???
実現が相当厳しい気がするのですが、皆さんのアイデアをお貸しください。

JavaScriptでプログラムを書いていると、ページ遷移はあまりしない方向になりますよね。
しかし、処理の一部一部をブラウザ上でブックマークなどをさせてあげたいと思ったとき、
どうやって実現すればいいのかさっぱりわからなくなってしまいました。

具体的には、ページ遷移を起こさずにアドレスバーの文字を変えることが出来ればいいのですが、
実験してみたところ出来ませんでした。直感的にはセキュリティ上絶対に出来ない気がしています。
ハッシュ(abc.html#hash)を利用してブックマークさせる方法も考えたのですが、
ブックマークはいいのですが掲示板などで自動的に#以降が無視されることもありますし、
google等のキャッシュに残らないという問題もあります(個々のページは残したいと思っています)

かといって、そこそこ大きな規模になれば、画面の描画や内部データもそこそこの量になり、
出来ればページ遷移によってユーザに無為な時間を取らせたくないと思っています。
(しかし最終的に実現できない時は、ページ遷移でユーザがブックマーク可能にする事を考えています)

こういう問題の解決方法はあるのでしょうか?
どうかご意見アイデア等あればお聞かせください。よろしくお願いします。

91 名前:Name_Not_Found 投稿日:2006/10/27(金) 05:04:57 ID:???
>>89
その場にとどまることは出来ないので、プログラムの構造をそれにあわせて変えるのが普通です

92 名前:Name_Not_Found 投稿日:2006/10/27(金) 05:11:41 ID:???
>>90
>ハッシュ(abc.html#hash)を利用してブックマークさせる方法も考えたのですが、
画面遷移無しでhtmlに値を渡す、且つブックマークできる方法としては
これしかないと思うんだけど。

>ブックマークはいいのですが掲示板などで自動的に#以降が無視されることもありますし、 ・・
これ意味分からない。どういうこと?

93 名前:92 投稿日:2006/10/27(金) 05:22:57 ID:???
あ、つまり掲示板などでURLを書き込んだ時に#以降が無視されることがあると。
まぁ俺から言わせてもらうと#以降を無視するような作りになってる
掲示板の方が直すべきだと思うけどね。



>ブックマークはいいのですが掲示板などで自動的に#以降が無視されることもありますし、 ・・
これ意味分からない。どういうこと?

94 名前:92 投稿日:2006/10/27(金) 05:24:03 ID:???
あ、誤爆。
ちなみにテスト
http://hogehoge.com/index.html#foo=aaa&bar=bbb

95 名前:Name_Not_Found 投稿日:2006/10/27(金) 05:51:24 ID:???
>>93
そう、まさにその通りです。
メーラーなどでは結構頻繁にありますよね。

例えばblogのページなどを個別のURLで表せればいいなと思っているのですが、
友人にメールしたら見られないなんていう悲劇を考えると、画面遷移した方がマシですよね。

私もハッシュしかないのではと思っていますが、もしかしたら何か方法があるかもと思って質問しました。

96 名前:Name_Not_Found 投稿日:2006/10/27(金) 06:15:18 ID:???
>>95
「abc.html#hash」も「abc.html?query」も両方受け取れるようにしておけば?
で、掲示板などに張る場合はqueryにして、それ以降はhashにするとか。

97 名前:Name_Not_Found 投稿日:2006/10/27(金) 06:22:56 ID:???
横槍だが、blogのページが
http://blog.hoge.com/#username
とかだと萎えるな

98 名前:Name_Not_Found 投稿日:2006/10/27(金) 06:28:43 ID:???
ここで紹介されてるね。
ttp://la.ma.la/blog/diary_200502270128.htm


99 名前:Name_Not_Found 投稿日:2006/10/27(金) 07:22:55 ID:???
HASHを使った方法はかなり一般的だからね

100 名前:Name_Not_Found 投稿日:2006/10/27(金) 07:52:05 ID:???
>>96
なるほど…それは妙案ですね
ベストは97さんの言うように、なんとかURLを変更することですが、
別ウィンドウを使ったりしない限り無理そうですね…

101 名前:Name_Not_Found 投稿日:2006/10/27(金) 08:54:46 ID:???
別窓を作ってそこに自分の内容をそっくりコピーして放り込み、
ページ遷移してその冒頭で別窓があればその別窓からそっくり
持って来て終わるようにするとか。ただし、最初からページ
内容をほとんどJavaScriptで生成するように書く必要があるな。

102 名前:Name_Not_Found 投稿日:2006/10/27(金) 09:06:43 ID:???
>>101
別ウィンドウがが見えなければ完璧なのですが、それは出来ませんよね。
内容をほとんどJavaScriptでやるのは問題ありません。

ちなみにチラシの裏ですが、documentが違うとelementの移動等は出来ません

103 名前:Name_Not_Found 投稿日:2006/10/27(金) 09:20:16 ID:???
>>102
それはこのスレでガイシュツで、elementは移動できないので全部innerHTML
にしてどっかんと移すという荒技をやるという…

104 名前:Name_Not_Found 投稿日:2006/10/27(金) 11:40:30 ID:CmYtaVPN
えっと、よくわかんないんでお願いします。
インターネットがクラスだとして、インスタンスが「2ch」なら、
インターネットのプロトタイプは何ですか?

105 名前:Name_Not_Found 投稿日:2006/10/27(金) 12:02:59 ID:???
って、インスタンスが「2ch」っておかしい様な。
インスタンスはプロバイダあたりでいんじゃないの。

106 名前:Name_Not_Found 投稿日:2006/10/27(金) 13:10:19 ID:???
>>104
なんでクラス方式とプロトタイプ方式が混ざっているのさ。

107 名前:Name_Not_Found 投稿日:2006/10/27(金) 14:43:50 ID:???
>>102
>ちなみにチラシの裏ですが、documentが違うとelementの移動等は出来ません

本題と関係ない話にレスするのもあれだが、何を言っているのかね。
移動も出来るし、Node#importNode() でコピーもできる。

108 名前:Name_Not_Found 投稿日:2006/10/27(金) 14:46:45 ID:???
>>104
そういうわけのわからんオブジェクト指向はPerlスレでやってくれよ。

109 名前:Name_Not_Found 投稿日:2006/10/27(金) 15:20:27 ID:63qNFSgF
質問です。
JavaScriptでオブジェクトを日付型に変えるにはどういう操作をすればよいのでしょうか?

110 名前:Name_Not_Found 投稿日:2006/10/27(金) 15:26:35 ID:???
>>108
オブジェクト指向じゃなくてプロトタイプ指向だろ。文句言う代わりに
一言答えてやればいいじゃん。当人は分からなくて質問してるんだから。

111 名前:Name_Not_Found 投稿日:2006/10/27(金) 16:11:41 ID:???
>>110
オマエモナー
>>109
JavaScriptには日付型というものはないけど。

112 名前:Name_Not_Found 投稿日:2006/10/27(金) 16:18:52 ID:???
>>109
var obj = new Object();
obj = new Date();

113 名前:Name_Not_Found 投稿日:2006/10/27(金) 16:26:52 ID:???
>>107
いやいやIEでは出来ないぞ、確か

114 名前:109 投稿日:2006/10/27(金) 18:23:41 ID:???
>>112さん ありがとうございました。
それでやってたんですが、場所が悪かったみたいですorz

115 名前:Name_Not_Found 投稿日:2006/10/27(金) 19:27:42 ID:lw83x0CO
ttp://musyoku.com/talkxp2/chat.php
↑みたいなチャットのページって
javascriptだけでは作成できないのでしょうか?
参考になるようなサイトが有りましたら
教えて頂きたいのですが・・・
宜しくお願いします。

116 名前:Name_Not_Found 投稿日:2006/10/27(金) 19:41:28 ID:???
>>115
http://www.geocities.jp/mirrorhenkan/chat/

117 名前:Name_Not_Found 投稿日:2006/10/27(金) 22:31:22 ID:???
DOM や オブジェクト指向に詳しい
JavaScript の本ってどんなのがありますか?

118 名前:Name_Not_Found 投稿日:2006/10/27(金) 23:12:00 ID:???
>>115
JavaScriptだけでできることというのは、そのブラウザ上だけで
動くようなものだからね。アンタと彼女が同じパソコンのキーボード
を交互に打つようなチャットならできるけどそういうのが作りたい?
>>117
サイ本かMy UNIXだろ、何回もガイシュツだけど。役に立つ書籍スレ
へ逝って見れば。

119 名前:Name_Not_Found 投稿日:2006/10/28(土) 14:21:11 ID:???
>>115
確かJavaScriptはセキュリティーか何かでファイルへの書き込みは不可能(独自拡張は例外)だったと思う。
つまり、橋渡しが出来ない。JavaScriptエンジン→別のマシンのJavaScriptエンジンの通信も確か出来ないし。
Ajaxって呼ばれているものもサーバで何か動いているから出来る訳だし。
もちろん、クライアントをJavaScriptで組むのは可能(やってる所あるし)。

結論として、「JavaScriptだけで」は現時点では無理。

120 名前:Name_Not_Found 投稿日:2006/10/28(土) 14:56:10 ID:???
なんて論理的なんだろう

121 名前:Name_Not_Found 投稿日:2006/10/28(土) 17:39:22 ID:iKdzUyPZ
質問です、よろしくおねがいします

画像をマウスオーバーさせると、指定した文字列の色を変える方法を知りたいです

■■■■
■画像■ ←マウスオーバーすると
■■■■

指定した文字列 ←この文字列だけの色が変わる

JavaScriptは難しいですね。他の方のスクリプトを閲覧してそれを理解するのは何とかできるのですが、
自分でスクリプトを書くとなると、どうにもこうにも、どうしようも出来ない…

122 名前:Name_Not_Found 投稿日:2006/10/28(土) 17:50:57 ID:???
どうしようもないなら、あきらめたほうがいいよ。

123 名前:Name_Not_Found 投稿日:2006/10/28(土) 18:04:19 ID:???
>>119
javascriptだけでも可能。

124 名前:Name_Not_Found 投稿日:2006/10/28(土) 18:48:35 ID:???
<script type="text/javascript">
function add(){
var li = document.createElement("li"), txt = document.getElementById("txt");
li.appendChild(document.createTextNode(txt.value));
document.getElementById("log").insertAdjacentElement('AfterBegin',li);
txt.value = "";txt.focus();
}
</script>
<form action="#" onsubmit="return false">
<input type="text" id="txt" size="48" value="" />
<input type="submit" value="送信" onclick="add()" />
</form>
<ul id="log"></ul>

125 名前:Name_Not_Found 投稿日:2006/10/28(土) 20:23:11 ID:???
フレームに関する質問です、お願いします。(初心者)

index.htmlで上下分割フレームを2つ開いています。(上がtb、下がd)
tbフレームとindex.htmlは同じ鯖でdフレームは別鯖です。
tbフレームのリンクをクリックするとtbフレームを閉じ、dフレームで現在開いているページ
を表示するようにしたいのですが、どのようにすれば良いのでしょう?

126 名前:115 投稿日:2006/10/28(土) 21:05:12 ID:pXtM+sBi
>>118,119
早速のご回答有難う御座いました。
javascriptという物を正確に理解していないので
私の質問の仕方が悪かったようです。
115で貼ったリンク先のように、文字を動かしたり
出来るようなチャットを作る事はかなり難しいのでしょうか?
ここのチャットもタイムリーに自動更新されないところを
見るとcgiチャットと変わらない気もしたのですが、画面上で
文字を上下左右に動かしたりという小細工が出来るようなものを
自分のHPに設置したいと思いまして。。。

自作にこだわっている訳ではないので(自信もありません)何処か
でこのようなチャットをレンタル(もしくはスクリプトの配布)
しているところがあれば素直にそれを利用したいのですが。

結果的にスレ違いになってしまっているかもしれませんが
よろしかったらアドバイスをお願い致します。

127 名前:Name_Not_Found 投稿日:2006/10/28(土) 21:11:08 ID:???
>>123
mjd?

128 名前:Name_Not_Found 投稿日:2006/10/28(土) 21:38:28 ID:???
>>121

「指定した文字列」 ってのが id などで特定できるなら

<img src="画像" onmouseover="document.getElementById('STRINGS').style.color='#ff0000';" />
<span id="STRINGS">指定した文字列</span>



「指定した文字列」 ってのを、ページ内の 「任意の文字列」 で捜したいなら、
http://pc8.2ch.net/test/read.cgi/hp/1066750037/293-294
を参考にする。

129 名前:Name_Not_Found 投稿日:2006/10/28(土) 21:52:36 ID:???
>>127
kitty-guy wo aite ni suru na!

130 名前:Name_Not_Found 投稿日:2006/10/28(土) 22:44:07 ID:???
>>126
文字を動かしたりはできるけどサーバに保存できないよ。
だから複数のマシンで情報を交換するチャットは不可能。
あのサンプルは相手方の応答をその場でランダムにでっち
あげているだけだからどこにも保存しない。

131 名前:Name_Not_Found 投稿日:2006/10/28(土) 22:56:24 ID:???
>>128
getElementByIdがポイントですね。覚えます。
ありがとうございました。

132 名前:Name_Not_Found 投稿日:2006/10/29(日) 00:24:57 ID:dY06jQVU
<HTML>
<HEAD><SCRIPT>
function f(x) { x.style="display:none"; }
</SCRIPT></HEAD>

<BODY>
<P onDblClick='f(this)'>paragraph 1
<P onDblClick='f(this)'>paragraph 2
<P onDblClick='f(this)'>paragraph 3

ダブルクリックすると消えてしまう要素(上の例ではP要素)を作り
たいのですが可能でしょうか? 上のソースではうまくいきません。

133 名前:Name_Not_Found 投稿日:2006/10/29(日) 00:27:08 ID:???
x.style.display="none";

134 名前:132 投稿日:2006/10/29(日) 00:31:44 ID:???
>>133
できました! ありがとうございます。

135 名前:Name_Not_Found 投稿日:2006/10/29(日) 00:38:45 ID:???
>>127>>129
あんたらがパールやらルビーやらスキーマやらで書く部分をjavascriptで書いてやればjavascriptだけでできるだろーが

136 名前:Name_Not_Found 投稿日:2006/10/29(日) 02:38:54 ID:???
(;;^ω^)

137 名前:Name_Not_Found 投稿日:2006/10/29(日) 02:46:40 ID:???
>>135
質問者の立場で考えたらかなり不親切なアドバイスだよな。
あんたは誰にそれを主張したいんだ?
んなこたぁー誰だって分かってんだよ。
具体的にそれをどうやって実装すんだよ。めんどくせーだろーが。
普通に役立つこと言えや!事実なんてどーでもいーんだよ。
これだからセオリストは嫌いなんだよ。アホばっか。

138 名前:Name_Not_Found 投稿日:2006/10/29(日) 04:02:57 ID:???
>>137
まーあんたには一生かかっても解らないだろうな
エンジョイだよ、エンジョイ

これだから余裕ない奴は嫌いなんだよ。
(;;^ω^)

139 名前:Name_Not_Found 投稿日:2006/10/29(日) 05:16:11 ID:???
まさかログを全部クッキーに…

140 名前:Name_Not_Found 投稿日:2006/10/29(日) 09:53:25 ID:???
>>135
サーバサイドのJavaScriptエンジンがあれば>>139が言うみたいにcookieにログ書き込んで、
その実体にあたるファイルをサーバの公開されてるディレクトリ内にcookie.txtとして保存する実装なら、
それをAjaxとほぼ同じ手法で読み込んで出来るはず。

という訳で、サーバサイドJavaScriptエンジン(JavaScript1.7)を>>135がサラッと作れば解決。
実現すれば結構便利かも。

141 名前: ◆.PT9876/4U 投稿日:2006/10/29(日) 10:32:19 ID:???
cookie に log 記録だぁ ?
なんと言う不毛な議論を !!!
ここが本スレだぁ ?
へそが茶を沸かすわ !

142 名前:Name_Not_Found 投稿日:2006/10/29(日) 10:43:31 ID:???
>>140
最近ではサーバに保存したデータもcookieって呼ぶのか?

143 名前:Name_Not_Found 投稿日:2006/10/29(日) 11:58:54 ID:???
てかすでにJavaScriptの範疇じゃねーだろw
普通にサーバーサイド使ったほうが早い

144 名前:Name_Not_Found 投稿日:2006/10/29(日) 12:52:00 ID:???
>>135
「JavaScriptだけで」 = 「クライアントだけで」

145 名前:Name_Not_Found 投稿日:2006/10/29(日) 15:43:46 ID:???
>>121の質問ってさ、もしかして<a><img><br>テキスト</a>でCSSでいいんじゃねーの?
画像のすぐ下に文字あるんなら a:hover とかで設定したほうがイイよ >>121

146 名前:Name_Not_Found 投稿日:2006/10/29(日) 17:00:04 ID:7X66k1Mh
タブ切替えのスクリプト(http://www.scbr.com/docs/products/dhtmlxTabbar/)を使用したページの、
タブ内にImage Thumbnail Viewer(http://www.dynamicdrive.com/dynamicindex4/thumbnail2.htm)を
使いたいのですが、Thumbnail Viewerが
いちばん最初に表示されているタブだけしか動作しません。

この2つを同時に使う事は出来ないのでしょうか・・・

147 名前:Name_Not_Found 投稿日:2006/10/29(日) 17:14:43 ID:???
応援依頼です。

<meta http-equiv="content-type" content="text/html; charset=shift_jis">
                                        ~~~~~~~
                                          ↑

shift_jisは小文字で書くと間違い?
答えがでてません。

web初心者スレ
http://pc8.2ch.net/test/read.cgi/hp/1160325838/l50

148 名前:Name_Not_Found 投稿日:2006/10/29(日) 19:18:53 ID:???
>>146
普通に考えて両方組み合わせるような改造が必要だと思われ。
勉強するなら質問は歓迎するよ。全部書いてくれとかなら断るけど。

149 名前:Name_Not_Found 投稿日:2006/10/30(月) 00:21:29 ID:???
教えてください。フレーム内に読み込んだ他サイトのページに
“ステータスバーを流れるメッセージ”のスクリプトがあり、それが
親フレームのステータスバーに作用してしまって困っています。
これを止める手立てはありますでしょうか? ソースを見ると
以下のような記述がありました。

stcnt=0; msg="ほにゃらら  "
blnk = " "
str=blnk+blnk+blnk+msg;
timeID=10;
function scroller(){
status=str.substring(stcnt++,str.length+1);
if (stcnt>str.length) stcnt=0;
clearTimeout(timeID);timeID = setTimeout("scroller()",100);}

他サイトをフレーム内に読み込んでいるのは先方も了解済みで、
同好サイトのリンク集みたいなことをやっています。

150 名前:Name_Not_Found 投稿日:2006/10/30(月) 00:23:27 ID:???
test1.style.backgroundColor = "#ffffff";
test2.style.backgroundColor = "#ffffff";
test3.style.backgroundColor = "#ffffff";
これを簡単にしようと思い、ウェブを参考に
for ( i = 1 ; i < 4 ; i++ ) ["test"+i].style.backgroundColor = "#ffffff";
と記述してみたのですが、
styleはNullまたはオブジェクトではありません。
とエラーが出てしまいました。
一行目から三行目までをまとめた構文にするにはどうすれば良いのでしょうか。

151 名前:Name_Not_Found 投稿日:2006/10/30(月) 00:33:15 ID:???
for ( i = 1 ; i < 4 ; i++ ) window["test"+i].style.backgroundColor = "#ffffff";

152 名前:Name_Not_Found 投稿日:2006/10/30(月) 00:41:17 ID:hsJikv4k
Firefoxでこのページと同じことをしたいのですが、
どうすればいいのでしょうか?
ttp://www.ilovex.co.jp/Division/SRD/archives/2004/12/file_1.html

153 名前:Name_Not_Found 投稿日:2006/10/30(月) 00:43:08 ID:???
>>151
ありがとうございます。無事出来ました。

154 名前:Name_Not_Found 投稿日:2006/10/30(月) 01:34:59 ID:???
>>152
なにしたいんだよっつつつ


155 名前:152 投稿日:2006/10/30(月) 01:43:28 ID:hsJikv4k
>>154
Enterキーを押したとき、TABキーを押したことにしたいのです。
具体的には、Enterを押したときにTABと同じように次の入力フィールドに
フォーカスを当てたいのですが

156 名前:Name_Not_Found 投稿日:2006/10/30(月) 02:14:45 ID:EF7xbHF2
YouTubeの動画を、JSで動的に埋め込みたいのですが、innerHTMLでもDOMでもうまくいきません。
静的なHTMLを埋め込めばもちろん普通に表示できるのですが、AJAXと連動したものを作っているので、できればJSで操作して埋め込みたいのです。

・innerHTMLの場合
targetDiv.innerHTML = '<object 〜><param 〜></param><param 〜></param><embed 〜></embed></object>';
// YouTubeのサイトのEmbedというところに書いてあるHTMLのvideo_idとwidthとheightだけ変更したもの

・DOMの場合
var object = document.createElement('OBJECT');
object.width = width; object.height = height;
var param1 = document.createElement('PARAM');
param1.name = 'movie'; param1.value = 'http://www.youtube.com/v/' + videoId;
// 似たようなcreateElementの処理で、上記HTMLと同じ構造を作る
object.appendChild(param1);
object.appendChild(param2);
object.appendChild(embed);
targetDiv.appendChild(object);

処理前と処理後のinnerHTMLを見てみましたが、<object>タグがまったく追加されていません。
何か良い方法がありましたら、よろしくお願いします。
(今のところIE6で実験しています。後々時間が許せばFireFox等にも対応したいと考えています)

157 名前:156 投稿日:2006/10/30(月) 02:26:05 ID:EF7xbHF2
できるかぎり直接objectタグを埋め込みたいのですが、代替案としてiframeを使う方法も考えています。
targetDiv.innerHTML = '<iframe src="http://www.youtube.com/v/' + videoId + '" width=・・・ />'
といった感じです。
これならまあまあうまくいくのですが、どうしてもiframeの「枠」が出てきてしまいます。
たしか、この枠は
iframe.contentWindow.document.body.style.border = 'none';
みたいに消すしかなかったと思うのですが、如何せんiframeのsrcがswfファイルなので、「アクセスが拒否されました」とか訳のわからないことを言われてしまいます。

iframeのsrcに自分のサイトのHTMLを指定して、そのHTML内にobjectタグを書く方法もやってみましたが、どうもうまくいかない部分が出てきてしまいます。
bodyのmarginをゼロにしてborderをnoneにした上で、objectのwidthとheightに100%を指定しているのに、なぜかembedに妙な余白ができてしまい、(他との兼ね合いで)レイアウトに食い違いがでてきてしまいます。

なんとか上手くいく方法はないものでしょうか・・・?
長文失礼しました。

158 名前:Name_Not_Found 投稿日:2006/10/30(月) 13:26:25 ID:???
()で括った文字以外の文字を数えることってできますか?

159 名前:Name_Not_Found 投稿日:2006/10/30(月) 14:14:15 ID:???
>>158
str.replace(/\([^\)]*\)/g, '').length()
試してないけど。

160 名前:Name_Not_Found 投稿日:2006/10/30(月) 19:01:57 ID:???
あざ〜す

161 名前:Name_Not_Found 投稿日:2006/10/30(月) 19:12:29 ID:???
html内で変数を共有化することは出来ないのでしょうか?
こういう感じです↓
一度閉じるとダメなのでしょうか?

<script type="text/javascript">
b = "Hello World" ;
</script>

<script type="text/javascript">
document.write(b) ;
</script>


162 名前:Name_Not_Found 投稿日:2006/10/30(月) 19:15:30 ID:???
>>161
同じ文書内でその順番で書かれていれば
当然意図したとおりにできるはずだが?

163 名前:Name_Not_Found 投稿日:2006/10/30(月) 20:04:47 ID:???
あれ、まとめサイトって最近の過去ログとかなかったっけ?

164 名前:Name_Not_Found 投稿日:2006/10/30(月) 20:12:36 ID:???
「過去スレ全集」へ逝け。

165 名前:Name_Not_Found 投稿日:2006/10/30(月) 20:32:21 ID:M4X0bzKT
http://sorgalla.com/projects/jcarousel/example_dynamic_ajax.html
↑このスクリプトを使用して、画像のパスとリンクを別々に設定したいのですが、
その場合どのようにスクリプトを加工したら良いでしょうか?

初心者ですが、勉強したいので、どこをどのように改変すべきか
どなたかご教示いただけると嬉しいです。

http://sorgalla.com/jcarousel/

166 名前:Name_Not_Found 投稿日:2006/10/30(月) 20:43:51 ID:c50N9/Oa
画像を一覧表示してあるアルバムのページで、ウィンドウサイズに応じて
innerHTMLで動的にソースの画像を変えようと思ったのですが、どこから
手をつけていいかわかりません。

お助けおねがいします。




167 名前:Name_Not_Found 投稿日:2006/10/30(月) 21:03:31 ID:???
説明してあげようと思ったのですが、どこから
教えてあげればいいかわかりません。

お手上げです。

168 名前:Name_Not_Found 投稿日:2006/10/30(月) 22:03:35 ID:tQ5XQETF
IE5.0/5.5/6.0
のjavascriptの違いをまとめたサイトってない?

いきなり5.0で動かないっていわれたんだけど、そんなもん持ってねぇよw

169 名前:Name_Not_Found 投稿日:2006/10/30(月) 22:04:57 ID:???
>>156-157
ただコピペするだけでできるだろ。間違えようがないなw

170 名前:Name_Not_Found 投稿日:2006/10/30(月) 22:05:53 ID:???
>>168
VMware がフリーになったから
そこに 98SE か 2000 を入れる

もしくは
スタンドアローン版の IE がどこかに落ちてる

171 名前:Name_Not_Found 投稿日:2006/10/30(月) 22:11:19 ID:???
>>168
http://msdn2.microsoft.com/ja-jp/library/2z6exc9e.aspx

ブラウザ側はしらね。

172 名前:Name_Not_Found 投稿日:2006/10/30(月) 22:25:55 ID:???
ttp://browsers.evolt.org/?ie/32bit/standalone

173 名前:Name_Not_Found 投稿日:2006/10/30(月) 22:37:38 ID:???
>>156-157
<P>とか<DIV>とかで囲んだ形で丸ごと書き出してないんだろ。

174 名前:Name_Not_Found 投稿日:2006/10/30(月) 22:39:24 ID:???
>>170-172
thx!
自分で入れてやってみるしかないみたいね

よく覚えてないけど、
<a href="#" onClick="foo();">...</a>

foo() {
form.submit();
}

くらいの簡単なものだったような希ガス
明日いろいろやってみるわ

175 名前:Name_Not_Found 投稿日:2006/10/30(月) 23:31:39 ID:Jfof7G3e
<script type="text/javascript"><!--
document.write(aaa);
...
src="test.js"
...
</script>
のように、外部ファイルをincludeする方法はありますでしょうか?

176 名前:146 投稿日:2006/10/30(月) 23:31:57 ID:???
>>148さん
なぜ両方組み合わせるような改造が必要なのかも
理解できてない初心者ですが勉強しますのでお願いします!

177 名前:Name_Not_Found 投稿日:2006/10/30(月) 23:35:13 ID:???
>>175
ttp://q.hatena.ne.jp/1161158347

178 名前:Name_Not_Found 投稿日:2006/10/30(月) 23:59:48 ID:???
>>176
洩れもソースは読んでないんだけど、タブで前面に出ているものに
対してのみビュアが動作するということは、ビュアが動作を張り付ける
時に探す対象が前面に出ているものだけになってしまってるということでしょ。
だから前面に出ていないものに対しても同様の処理が行えるようにするという
ことじゃないの。

まあ、ちゃんとソース読んで検討しなよ。読めないなら読めるようになる
まで自力で勉強してね。入門書なんかもあるしさ。

179 名前:175 投稿日:2006/10/31(火) 00:09:01 ID:???
>177
ありがとう!

180 名前:156 投稿日:2006/10/31(火) 00:20:35 ID:???
レスどうもです。

>>169
コピペするだけというのは、YouTubeのビデオの右側にあるEmbedという欄の<object 〜>タグのことでしょうか?
たしかにHTMLファイルにそのままコピペすればビデオを表示できるのですが、できればページのロード後にユーザーからの操作を通じてJavaScriptで動的に埋め込みたいと考えています。

>>173
すみません、<P>とか<DIV>というのは何のことでしょうか?
いちおう自分の用意した<div id="targetDiv">の中にJavaScriptで埋め込もうとしています。
(156-157で書いた文章は長文な上にわかりづらくて、すみません)

そのまま素直にinnerHTMLに、YouTubeのサイトで表示される埋め込み用のobjectタグをコピペしたものを文字列として代入しても、なぜかその結果が反映されないのです。
もしさらに良い知恵があったら、よろしくお願いします。

181 名前:Name_Not_Found 投稿日:2006/10/31(火) 00:42:58 ID:???
>>180
色々確認してみたいんだけど、

if (document.all) {
document.getElementById('targetDIV').innerHTML = '<embed src="http://www.youtube.com/v/1Fp870UGG7s" type="application/x-shockwave-flash" width="425" height="350"></embed>';
}
else {
document.getElementById('targetDIV').innerHTML = '<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/1Fp870UGG7s"></param></object>';
}

は動く?

182 名前:Name_Not_Found 投稿日:2006/10/31(火) 01:02:45 ID:???
読み込む外部jsを変数によって変えたいのです。

<script type="text/javascript">
<!--
if (flag == "a") {
<script type="text/javascript" src="a.js"></script>
} else if ( flag == b ) {
<script type="text/javascript" src="b.js"></script>
}

上のようなことをするにはどうすればいいのでしょうか?

183 名前:Name_Not_Found 投稿日:2006/10/31(火) 01:04:47 ID:???
>>182
>>177


184 名前:Name_Not_Found 投稿日:2006/10/31(火) 07:42:13 ID:???
この質問多すぎるからFAQに入れるかね?そしたら罵倒すれば済むし(w

185 名前:156 投稿日:2006/10/31(火) 09:51:44 ID:???
>>181
なんと!できました!
IEではobjectを使わずに、embedでやるとできるのですね。勉強になりました。
Firefoxでは上下どちらとも動かないようですが、また後ほど色々考えてみようと思います。
どうもありがとうございました!!

186 名前:Name_Not_Found 投稿日:2006/10/31(火) 10:37:56 ID:???
...innerHTML = '<div ...>' + ( YouTube Embed をコピーペーストするだけ ) + '<\/div>';
で、どちらもできるだろうに……。

187 名前:Name_Not_Found 投稿日:2006/10/31(火) 11:01:37 ID:???
TEST_WINDOW = window.open("test.html" ,"testwin","width=210,height=160,resizable=no")
で開いたウィンドウの中身が全部読み込まれた時のイベントはどう記述すれば良いのでしょうか。
TEST_WINDOW.onload()では駄目でした。
出来ればIE6に対応した形式でお願いします。

188 名前:Name_Not_Found 投稿日:2006/10/31(火) 12:01:49 ID:???
>>187
TEST_WINDOW.onload = function() { 動作…; } ;
JavaScriptの文法を勉強しろボケ!

189 名前:Name_Not_Found 投稿日:2006/10/31(火) 12:05:07 ID:???
>>188
ありがとう。ごめんなさい。
改変は出来ても真っ向から学習する時間が取れんので。。。

190 名前:Name_Not_Found 投稿日:2006/10/31(火) 12:12:28 ID:???
>>188
文法的にはそれでいいけど、それでは動かないような気が・・・

191 名前:Name_Not_Found 投稿日:2006/10/31(火) 16:46:16 ID:???
そうだな。過去にも何度か出てきたが、IE6 なら、attachEvent を使う。
もっと言えば、最初はURI引数を空にして、イベント処理を与えてから、
TEST_WINDOW.location.href = "..."; でロードさせた方が確実だろうな。

というか、別窓を開くの、かったるくないか?
もうすぐ2007年だぞ。<IFRAME>が登場して10年近い。
どうしても別文書を開きたいなら、<IFRAME>でいいんじゃないか?
(<IFRAME>要素オブジェクト).onload = function () {...}
みたいな書き方なら、期待通りに実行されるだろ。

192 名前:Name_Not_Found 投稿日:2006/10/31(火) 17:40:38 ID:???
>>191

193 名前:Name_Not_Found 投稿日:2006/10/31(火) 18:24:26 ID:???
javascriptでCGIからの戻り値を得ることはできますか?



背景

大容量ファイルをアップロードし処理するサービスを作りたい。
サーバはファイル名により処理をするかどうかの判断をする。

大容量ファイルをフォームからアップロードしてからサーバで「ファイル名により処理しない」と判断される場合、転送時間が非常に無駄です。

そこで、フォームのサブミットボタンを押しアップロードが始まる前に、javascriptでファイル名だけ取得し、サーバ側に問い合わせ、処理しないのであればアップロードをしないといった操作を行いたい。

ファイル名により処理するかどうか判断するcgiは既にあるものとします。

194 名前:Name_Not_Found 投稿日:2006/10/31(火) 18:25:46 ID:???
なんだか偉そうな文体になってしまい失礼しました。
どなたかご教授お願いいたします。

195 名前:Name_Not_Found 投稿日:2006/10/31(火) 18:44:53 ID:???
>>193
できます

196 名前:Name_Not_Found 投稿日:2006/10/31(火) 19:03:14 ID:???
>>194にNGワード発見w

197 名前:Name_Not_Found 投稿日:2006/10/31(火) 19:07:58 ID:???
>>193
> javascriptでファイル名だけ取得し

この部分はブラウザの実装依存じゃないかしら

198 名前:Name_Not_Found 投稿日:2006/10/31(火) 19:08:49 ID:???
>>197
ファイル名だけならOperaでも可能

199 名前:193 投稿日:2006/10/31(火) 19:35:48 ID:???
>>195
方法を教えていただけないでしょうか。

>>196
失礼いたしました。ご教示お願いしますm(__)m

>>197
対象はIEのみなのでOKです

200 名前:Name_Not_Found 投稿日:2006/10/31(火) 20:14:05 ID:???
>>199に教授すると
html

<script>
function f(){
var xhr=null;
if (window.XMLHttpRequest)xhr=new XMLHttpRequest();
else if(window.ActiveXObject)
try {xhr=new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){xhr=new ActiveXObject("Microsoft.XMLHTTP");}
xhr.open("GET","http://hogehoge.com/tmp.cgi?"+document.getElementById('f').value.replace(/^.*[\/\\]/,""),false);xhr.send("");
if(xhr.responseText=="t"){alert("up");}else{alert("not up");}
}
</script>
<input type="file" id="f"/><button onclick="f()">!</button>

cgi

#!/bin/sh
FN=`env | grep QUERY_STRING | sed 's/[^=]*=//'`
echo "Content-type:text/html
"
if [ $FN = hoge ] ; then
echo -n t
else
echo -n f
fi

201 名前:Name_Not_Found 投稿日:2006/10/31(火) 20:51:57 ID:???
>>200
http://www.ietf.org/rfc/rfc2606.txt
ttp://blogs.msdn.com/xmlteam/archive/2006/10/23/using-the-right-version-of-msxml-in-internet-explorer.aspx

あと、HTMLのID属性を追記するわけないだろ。
必ずあるNAME属性を利用するに決まってる。

202 名前:193 投稿日:2006/10/31(火) 22:40:59 ID:???
>>200
遅くなりましたが、ありがとうございます!
これからちょっとやってみたいと思います。

>>201
えっと・・・、低レベルな私にはちょっと難しくてよく分かりませんが、
メモしておきます!
何か問題が起これば参考にさせていただきます。
ありがとうございます。

203 名前:Name_Not_Found 投稿日:2006/10/31(火) 22:57:24 ID:???
>>202
>>201は低脳のデシャバリなだけなので気にしないほうが吉
2個目のリンクだけはちょっとだけ役立つけど

204 名前:Name_Not_Found 投稿日:2006/10/31(火) 23:38:09 ID:QQwuJrHr
台形公式による円周率の近似値の計算(分割数は1000)を完成させなさい,
という問題を教えていただけませんか?


205 名前:193 投稿日:2006/11/01(水) 00:11:13 ID:???
>>200
無事やりたいことができました。
私の頭では最初「これは何の処理だろう?」と思っていましたが
ファイル名だけを取り出すところまでやってくださり
本当にありがとうございました!


206 名前:Name_Not_Found 投稿日:2006/11/01(水) 00:12:11 ID:???
>>204
javascript:for(a=0,x=0;x<1000-1;(a+=(Math.sqrt(1000*1000-x*x)+Math.sqrt(1000*1000-(x+1)*(x+1)))/2),++x);alert(a*4/(1000*1000));
というブックマークレット

207 名前:Name_Not_Found 投稿日:2006/11/01(水) 00:15:35 ID:???
間違えた。
for(a=0,x=0;x<1000;(a+=(Math.sqrt(1000*1000-x*x)+Math.sqrt(1000*1000-(x+1)*(x+1)))/2),++x);alert(a*4/(1000*1000));
でいいのか

208 名前:Name_Not_Found 投稿日:2006/11/01(水) 09:11:01 ID:5iKQ/IIq
<span id=a><span id=b onClick=f()></span></span>
<script>
function f(){
alert(?????????) // 1つ外のタグという命令でaを取得し表示できませんか?
}
</script>

209 名前:Name_Not_Found 投稿日:2006/11/01(水) 09:28:58 ID:???
汚いHTML書く奴だな

this.parentNode.id

210 名前:Name_Not_Found 投稿日:2006/11/01(水) 09:29:18 ID:???
>>208
parentNodeのこと?

211 名前:Name_Not_Found 投稿日:2006/11/01(水) 10:08:10 ID:ZJU7qN9t
JSってWebProg板じゃないの?そろそろ移動したら?

212 名前:Name_Not_Found 投稿日:2006/11/01(水) 12:08:05 ID:???
>>211
WebProg板のローカルルール
「* JavaScript、VBScript等クライアントサイドの話題はWeb製作板へ」
これを直す気があるなら頑張ってね。



213 名前:Name_Not_Found 投稿日:2006/11/01(水) 20:07:11 ID:???
↓の記事で、
http://itpro.nikkeibp.co.jp/article/COLUMN/20061026/251846/?ST=develop&P=4
http://itpro.nikkeibp.co.jp/article/COLUMN/20061026/251846/zu04.jpg

B.prototype = new A();
は、prototypeプロパティのコピーって説明されてますよね?

でも、
function A() {
this.x = 'hogehoge';
}
function B() {}
B.prototype = new A();
var p = new B();
とした場合。

aleart(p.x); //hogehoge
で、アクセスできますよね?

Aのprototypeのコピーじゃなくて、
B.prototypeが new A()を参照して、チェーンしてるだけですよね?

214 名前:Name_Not_Found 投稿日:2006/11/01(水) 20:16:14 ID:???
そういうふざけた記事を見ると、著者に仕様書よめ、と言ってしまいたい

prototypeプロパティのコピー って意味不明すぎてなんともコメントつけようがありません

215 名前:Name_Not_Found 投稿日:2006/11/01(水) 20:36:10 ID:???
javascriptで、selectタグ中のoption項目の数を増減させるにはどうすればいいですか?

216 名前:Name_Not_Found 投稿日:2006/11/01(水) 21:08:34 ID:???
動的にoptionエレメントを生成してselectエレメントの子要素にすればいい

217 名前:Name_Not_Found 投稿日:2006/11/01(水) 21:48:15 ID:???
>>215
Optionコンストラクタっていうものがある。

218 名前:Name_Not_Found 投稿日:2006/11/01(水) 22:22:53 ID:???
>>216-217
new option()でoptionオブジェクトが作れるんですね〜!
念入りに調べてみたらちゃんと解説してるサイトが見つかりました。
ありがとうございました〜。

219 名前:Name_Not_Found 投稿日:2006/11/01(水) 22:39:26 ID:???
自分で調べたのは実に偉い

220 名前:Name_Not_Found 投稿日:2006/11/01(水) 23:40:56 ID:???
>>213
最近,Webプログラミングの世界で静かなブームになっている言語があり
ます。何を隠そうJavaScriptです。

だとさw このあたりから中身を見抜いたほうがいい。
しかし、NIKKEIのサイトはイラつく。高が一度の閲覧のためにバカでかい
flashと重い画像をしこたまキャッシュに入れられてページがでるのに
10分くらいかかる。もう二度とご免だ。行かない。

221 名前:Name_Not_Found 投稿日:2006/11/01(水) 23:43:39 ID:???
>>218
たしか、new Optionは廃止になるんじゃなかったか?

222 名前:Name_Not_Found 投稿日:2006/11/02(木) 00:05:57 ID:???
10分てwどんだけ細い回線使ってんだよ

223 名前:Name_Not_Found 投稿日:2006/11/02(木) 00:32:06 ID:???
var hoge;
if (!hoge = false) {
alert('hoge is not false.');
}

↑は構文エラーになるのですが、JavaScriptの仕様はそういうもんでしょうか?
Cでもこういう書き方はエラーになりますか?PHPだと大丈夫なんですが。

224 名前:Name_Not_Found 投稿日:2006/11/02(木) 00:33:52 ID:???
==

225 名前:Name_Not_Found 投稿日:2006/11/02(木) 00:35:37 ID:???
>>223
そういう意味ではなくて、代入した値に対して反転評価してます。
意図としては、つまり、
if (!false) {
}
と同義です。
(hoge is not false.と書いたのはなんか意味が変なので、気にしないで下さい)

226 名前:Name_Not_Found 投稿日:2006/11/02(木) 00:36:34 ID:???
>>223
Cでも構文エラー。
PHPは特別な構文として許しているだけ。
「左辺値」でぐぐれ。
というかECMAScriptの仕様書漁れ。

227 名前:Name_Not_Found 投稿日:2006/11/02(木) 00:41:37 ID:???
>>226
了解です、ありがとうー

228 名前:Name_Not_Found 投稿日:2006/11/02(木) 01:58:52 ID:???
if(!(hoge = false))

229 名前:Name_Not_Found 投稿日:2006/11/02(木) 13:47:49 ID:???
問題があってここに来ましたが、
過去ログを調べて解決できました。
このスレの神々と住人に感謝、です。

230 名前:Name_Not_Found 投稿日:2006/11/02(木) 14:14:23 ID:???
いろいろと調べていましたが、検索に限界を感じてしまったので、
どうか質問させてください。
function output(num){
switch(num){
case 1:
n = (jumpArray[1][document.form.jump1_1.selectedIndex]+jumpArray[1][document.form.jump1_2.selectedIndex]);
if(document.form.seq1.checked == true && document.form.mul1.checked == true) {
n = n * 88 / 10000; document.form.point1.value = n;
break;}
case 2:
n = (jumpArray[1][document.form.jump2_1.selectedIndex]+jumpArray[1][document.form.jump2_2.selectedIndex]);
if(document.form.seq2.checked == true && document.form.mul2.checked == true) {
n = n * 88 / 10000; document.form.point2.value = n;
break;}
}
以上のように全く同じ処理を、場所のみ変えて行うのですが、
現在はswitch文を使って、onClickイベントから数字だけを返して分岐させています。
ただこれが延々と30くらい続く予定でして、さすがにそれは大き過ぎると感じ、
この処理を分岐させずに、すっきりと行える方法はないか、と考えています。
フォームの名前は数字だけを変えて統一させているので、
これを使って何か良い方法はありませんでしょうか?
どのように検索すればよいかわからなくなってしまったので、
こちらに質問させて頂きました。
スレ汚し、本当に申し訳ありませんが、何卒お願いいたします・・・

231 名前:Name_Not_Found 投稿日:2006/11/02(木) 14:32:08 ID:???
FAQは見たか?
>>3-4

232 名前:Name_Not_Found 投稿日:2006/11/02(木) 19:17:42 ID:3N+shCWj
勉強をかねてGETをパースするスクリプトを書いてるんですが。
idx[id[0]] = id[1];
のように配列のキー(?)に変数を指定する方法が分かりません。
それともこのスクリプトにはほかの問題があるんでしょうか?
秀丸で書いて、IEで表示させてるだけなのでデバッグにてこずっています。

-------------------以下ソース-----------
arr = location.search.substr(1).split("&");

idx = new Array(2);
for(i in arr){
echo(i + ":");
echo(arr[i] + "<br>");
id = arr[i].split("=");
echo("!" + id[0] + ":" + id[1]);

idx[id[0]] = id[1];
}
echo("safe");
echo("!" + idx[test1]);

233 名前:Name_Not_Found 投稿日:2006/11/02(木) 19:24:42 ID:???
>>232
そのtest1というのは何? 'test1' じゃなくて?


234 名前:232 投稿日:2006/11/02(木) 19:35:16 ID:3N+shCWj
>233
ありがとうございました。
俺だめじゃん・・ orz

235 名前:232 投稿日:2006/11/02(木) 19:39:30 ID:3N+shCWj
ついでに聞いてよろしいでしょうか?
idx[id[0]] = id[1];
ではなく
id[0]内の文字列で変数を作って、 id[1] を代入する方法がありましたらお願いいたします。

GETが test1=1 だとしたら。
document.write(test1);
で 1 が表示されるといった感じにしたいのです。

236 名前:Name_Not_Found 投稿日:2006/11/02(木) 19:59:18 ID:???
eval すればいんじゃね?

237 名前:Name_Not_Found 投稿日:2006/11/02(木) 20:04:37 ID:???
>>235
FAQ読もうな。>>3とか。

238 名前:Name_Not_Found 投稿日:2006/11/02(木) 20:12:52 ID:???
>>236 ボケ!そんなもんにeval使うな。

239 名前:Name_Not_Found 投稿日:2006/11/02(木) 20:38:40 ID:???
>>235
それはやらない方がいいよ! 重要な変数「x」があったとして
「?x=0」とかつけられたトタンにそのxが書き換えられてしまうだろ。
PHPとかでそういうのが問題になったことがあるんだよな。

240 名前:Name_Not_Found 投稿日:2006/11/02(木) 21:07:30 ID:???
>>239
その無理解・混乱ぶりの方がこええよwww

241 名前:Name_Not_Found 投稿日:2006/11/02(木) 21:26:25 ID:???
>>231
遅くなってすみません。
FAQは読んだつもりではいましたが、
よく見ると似たような質問がありました。
ご指摘、ありがとうございます。
しかし・・・こちらの問題に適用しようとしたのですが、
どうもうまくいきません・・・
そのままではダメなのでしょうか。

242 名前:Name_Not_Found 投稿日:2006/11/02(木) 21:38:54 ID:???
もちろん、理解してちゃんと使えばできるだろ。
理解できないのなら自力で勉強すれ。

243 名前:Name_Not_Found 投稿日:2006/11/02(木) 21:49:38 ID:4jAW24LM
Dateオブジェクトを使って桁数補正ができるのはどういう理屈ですか?

244 名前:Name_Not_Found 投稿日:2006/11/02(木) 22:20:42 ID:???
>>243
桁数補正とは何かね。

245 名前:Name_Not_Found 投稿日:2006/11/02(木) 22:48:20 ID:???
つ sprintf

246 名前:Name_Not_Found 投稿日:2006/11/02(木) 22:48:53 ID:???
あ、ここJavaScriptのスレだった

247 名前:Name_Not_Found 投稿日:2006/11/02(木) 23:01:49 ID:???
>>242
あなたの叱咤のおかげで、自力で解決にこぎつけました。
いや、自力といっても結局は過去の回答のおかげです。
function output(num){
switch(num){
default:
n = (jumpArray[1][document.form["jump"+num+"_1"].selectedIndex]
+jumpArray[1][document.form["jump"+num+"_2"].selectedIndex]);
このような感じにしたら、どの列でも処理をしてくれるようになりました。
ただ、switch文は必要がないはずなのに、
これをはずすと動きません・・・
最初からdefaultにすれば動くので、問題がないといえばないのですが、
気になるところではあります・・・

何にせよ、ご誘導とご叱咤、本当にありがとうございました。

248 名前:Name_Not_Found 投稿日:2006/11/02(木) 23:56:18 ID:???
×ご叱咤  ○叱咤
美しい日本の美しい日本語では「ご叱咤」とは言わない。
「叱咤激励」参照。「ご激励」と言わないのと同じ。


249 名前:Name_Not_Found 投稿日:2006/11/03(金) 00:19:58 ID:???
>>248
迷いましたが、つけてしまいました・・・
ご指摘、ありがとうございます。
・・・この「ご」はOKですよね。

250 名前:Name_Not_Found 投稿日:2006/11/03(金) 00:32:43 ID:???
>>249
OK。自分で勉強したのは偉い

251 名前:Name_Not_Found 投稿日:2006/11/03(金) 20:52:58 ID:5Ec3jjaU
IE7に変えてから2ちぁんねるブラウザ(かちゅーしゃ)でランタイムエラーが出るようになった。
一行目で文字が正しくありません、っていうもの。

不思議なのはhoge.htmlとしてローカルでIEで読み込ませると正常。
問題のスクリプトは外部スクリプトで読み込ませているんだけど、これを外部でなく
普通(内部)に記述すると正常に動作する。
外部スクリプトを複数記述しているので、IE7になって、外部スクリプトの読込数とか
バッファに制限ができたのだろうか?

なにかヒントはないでしょうか。

252 名前:Name_Not_Found 投稿日:2006/11/03(金) 20:54:54 ID:???
ヒント:板違い

253 名前:Name_Not_Found 投稿日:2006/11/03(金) 23:15:23 ID:???
ヒント:IE6

254 名前:Name_Not_Found 投稿日:2006/11/04(土) 03:16:26 ID:???
一行目で文字が正しくありません

255 名前:Name_Not_Found 投稿日:2006/11/04(土) 10:43:50 ID:???
var tmpAtagObj = document.createElement("A");
var tmpString = document.createTextNode("New Document");
tmpAtagObj.appendChild(tmpString);
tmpAtagObj.href = "#";

こんな感じでオブジェクトどこかのHTMLに突っ込んだ場合
ダブルクリックされた時にhogeという関数を動かしたいのですが
tmpAtagObj.ondblclick = "hoge()";
じゃ無理でした
ダブルクリックされた時動かすにはどうすればいいのでしょうか?

256 名前:255 投稿日:2006/11/04(土) 11:10:25 ID:???
すいません自己解決しました・・・


257 名前:255 投稿日:2006/11/04(土) 14:32:33 ID:???
やっぱり解決してませんでした。

258 名前:Name_Not_Found 投稿日:2006/11/04(土) 14:34:21 ID:???
>>255
FAQ読んでから質問しろよクズ

259 名前:255 投稿日:2006/11/04(土) 14:58:37 ID:???
クズと言う奴がクズです。

260 名前:Name_Not_Found 投稿日:2006/11/04(土) 15:02:34 ID:hd7d6HKw
>>251です w
いやね、その外部ファイルに var a; とかwindow.alert(1); とか単純なコードだけ書いても
同じなんだよね。スクリプトエラーなら直せばいいんだけどさ w
いや、まいったまいった。


261 名前:Name_Not_Found 投稿日:2006/11/04(土) 15:12:04 ID:???
>>260
>>252

262 名前:Name_Not_Found 投稿日:2006/11/04(土) 16:16:39 ID:QQPq62PT
BMIの計算を作りたいんですが画面に何も表示されません。どこが間違ってますか?

function bmi(){
var taijyu=61; // kg
var shincyou=1.75; // m
var kekka=Math.round(taijyu / (shincyou*shincyou)
);//四捨五入
var hyouka;

if(kekka<18){hyouka="やせ";}
else if(kekka<25){hyouka="標準";}
else{hyouka="肥満"}

document.write("あなたのBMI指数は、"+kekkka+"です。
<br>体系の評価は、\""+hyouka+"\"です。");
}


【html】
<html>
<head>
<title>BMI計算</title>
<Meta http-equiv="content-script-type" content="text/javascript">
<script src="javascript1.js" type="text/javascript"></script>
</head>
<body onload="bmi()">

</body>
</html

263 名前:Name_Not_Found 投稿日:2006/11/04(土) 16:22:39 ID:???
試してないが
<body>
<script type="text/javascript">bmi();</script>
</body>

264 名前:Name_Not_Found 投稿日:2006/11/04(土) 16:27:40 ID:???
>>262
kekkka

265 名前:Name_Not_Found 投稿日:2006/11/04(土) 17:37:30 ID:???
>>259
FAQ読まない奴のがクズに決まってるさ。2度と来るな。

266 名前:Name_Not_Found 投稿日:2006/11/04(土) 23:29:49 ID:R9NdBAoW
htmlとcss勉強してきたんだけどjavascriptってかなりムずくね?
とりあえず自分で名前つけられるのが変数なのか?

267 名前:Name_Not_Found 投稿日:2006/11/05(日) 01:01:16 ID:???
>>266
エラーの分かりやすいPHPとかjavaとかの基礎をやってから戻ってくると逆に近道かもね。
プログラムっぽいのが初めてなら。

268 名前:Name_Not_Found 投稿日:2006/11/05(日) 01:31:42 ID:???
JavaScriptは癖あるよ。ブラウザ依存とか変なとこでひっかかったりする。

269 名前:Name_Not_Found 投稿日:2006/11/05(日) 01:49:07 ID:???
でも美しい言語の一つでもある。

270 名前:Name_Not_Found 投稿日:2006/11/05(日) 03:29:45 ID:???
確かにJSは美しい、いまだにPerlとかPHPの変数に$付ける仕様に慣れない・・・

271 名前:Name_Not_Found 投稿日:2006/11/05(日) 03:47:29 ID:???
付いてないとどれが変数でどれが構文でどれが関数か分かりづらいんだよ

272 名前:Name_Not_Found 投稿日:2006/11/05(日) 03:50:24 ID:???
JavaScript美しいかぁ。
実際利用するにはHTMLと組み合わせないといけないからな。。

273 名前:Name_Not_Found 投稿日:2006/11/05(日) 04:25:33 ID:???
JavaScriptっていうかECMAScriptの美しさは、クロージャや無名関数、関数オブジェクト、みたいな関数型言語由来の機能を残しつつ、ナチュラルな構文で書けることかなーとか思う。
なじみやすい中置記法とか、ドットによるオブジェクトのメンバアクセスとか、C由来の構文とか。
メソッドのレシーバ(this)が動的に変化するポリモーフィズムは、強力すぎてやや複雑すぎる感じもあるけど、個人的には好みだな。
もちろん細かい不満はたくさんあるけど、根底にあるモデルがすごくしっかりしていると思う。

欠点としてはモジュール化・パッケージ化がしづらい、書き方に個人個人の癖が露骨に出る、ブラウザに乗っかったJSのオブジェクトモデルは何だか知らんがグジャグジャ、などなど。
実用性の面では最悪レベルの言語かもしれん。
まあ要はオナニー言語ってことだな。

274 名前:Name_Not_Found 投稿日:2006/11/05(日) 06:27:30 ID:???
だいたい同意。

275 名前: ◆.PT9876/4U 投稿日:2006/11/05(日) 07:44:29 ID:???
JavaScript に慣れてしまうと他の script 言語がキモく思えてしまう.
たとえば AppleScript も OOP の仲間だけど激しくキモい.
perl に至ってはじんましんがぁ〜〜〜〜.
でも, 場合によっては使わざるを得ないのが鬱だぁ.

276 名前:Name_Not_Found 投稿日:2006/11/05(日) 07:59:32 ID:???
変数に$がついてないと書けないなんて、スクリプト言語「しか」
書けないヤツということになるわけだが…

277 名前:Name_Not_Found 投稿日:2006/11/05(日) 11:13:57 ID:???
以下のソースのようにスクロールを作った

<html>
<head>
<title>
Javascriptスクロール
</title>
<script language=Javascript>
<!--
msg="文章";
function scroll(){
msg=msg.substring(1,msg.length)+msg.substring(0,1);
document.myform.mytext.value=msg;
setTimeout("scroll()",300);
}
//-->
</script>
</head>

<body onload=scroll();>
<form name=myform><input size=60 name=mytext></form>
</body></html>

同ページに別文章で同じようなスクロールをもう一個作るにはどうすればよいのでしょうか

278 名前:Name_Not_Found 投稿日:2006/11/05(日) 11:22:58 ID:???
>>255
tmpAtagObj.ondblclick = hoge;

279 名前:Name_Not_Found 投稿日:2006/11/05(日) 11:29:40 ID:???
>>262
onloadにdocument.writeを書いても反映されないよ。
もしonloadに入れたいんだったら
document.getElementById("bmitext").innerHTML = "結果文字列";
とかやって、<body>〜</body>内に
<div id="bmitext"></div>
とか入れるといいんじゃない?

280 名前:Name_Not_Found 投稿日:2006/11/05(日) 17:22:12 ID:???
すいません、質問よろしいでしょうか?

表示するページをJSPで生成してtableを表示する際
classファイルの方でSQLを流し、tableに表示するデータを取得しています。

tableの一列目にチェックボックスがあり、ページの中のボタンを押すと
チェックされた行の別の列のvalue(bool)を見て、正しい行のみ
classファイルへ飛ばそうとしています。

チェックボックスのon/offをチェックし、
同じ行の他の値を調べるJavaScriptの記述方法を教えて頂けないでしょうか


よろしくお願い致します。

281 名前:266 投稿日:2006/11/05(日) 21:33:37 ID:2yd5nNuL
function question(){
  alert('これからいくつか質問します。');

  name=prompt('あなたの名前は?','中田ヒデ');

eat=prompt('好きな食べ物は?','うめぼし');

  sport=prompt('好きなスポーツは何ですか?','サッカー');

if(confirm(Jリーグは好きですか?)){j='好き';}
  else{j='嫌い';}

  alert(name'さん、あなたは、'+eat+'が好きですね。スポーツは'+sport+'が好きですね。\n
Jリーグは'+j+'ですね。'

282 名前:266 投稿日:2006/11/05(日) 21:39:31 ID:2yd5nNuL
↑すいません!

がんばってjavascriptを勉強しようと思ってるのですがつまづいた・・。
上の函数を作ってみたんですが全然作動しません。
一番最後のalert(name〜);のとこを入れないとダイアログなどが出て正常に動作します。
なので、この部分がエラーだと思うんですが、どこがおかしいんですか?
alert(aa);みたくシンプルにやっても駄目でした。ヒヨッコに力を貸してください!

283 名前:Name_Not_Found 投稿日:2006/11/05(日) 21:50:23 ID:???
>>281
http://www.tohoho-web.com/js/form.htm
>>282
とりあえず変数nameが文字列と連結されてない

284 名前:Name_Not_Found 投稿日:2006/11/05(日) 21:50:38 ID:???
>>282
「(」と同じ数だけ「)」が必要だとか文字列の途中で行変えちゃ
いけないとか。エラーのときは「何行目の何文字目でエラーか」
出るんで、それを見て自分で直せるようになるべきだな。

285 名前:Name_Not_Found 投稿日:2006/11/05(日) 21:52:40 ID:???
>>283>>281>>280宛ね

286 名前:Name_Not_Found 投稿日:2006/11/05(日) 21:53:25 ID:???
<script type="text/javascript">
<!--
function question(){
alert('これからいくつか質問します。');
var name=prompt('あなたの名前は?','中田ヒデ'),eat=prompt('好きな食べ物は?','うめぼし'),sport=prompt('好きなスポーツは何ですか?','サッカー'),j=confirm('Jリーグは好きですか?')?'好き':'嫌い';
alert((name?name+'さん、\n':'')+(eat?'あなたは、'+eat+'が好きですね。\n':'')+(sport?'スポーツは'+sport+'が好きですね。\n':'')+(j?'Jリーグは'+j+'ですね。\n':''));
}
// -->
</script>
<input type="button" value="問い" onclick="question()">


287 名前:Name_Not_Found 投稿日:2006/11/05(日) 21:54:11 ID:???
>>280
ハア? 正しいとかチェックするとか喪前の脳内にしかない
定義だらけでまったく内容が理解できないよな。
>>1 「質問を分かる日本語で説明できる者 」



288 名前:Name_Not_Found 投稿日:2006/11/05(日) 22:23:05 ID:???
恐ろしく亀だが、>>140のサーバサイドJavaScript実装(っぽいもの)のプロジェクトがあった。なんかMozilla系の実装を利用するっぽい。

ttp://ajaja.alphageek.jp/
既出?

289 名前:Name_Not_Found 投稿日:2006/11/06(月) 00:36:55 ID:066RjT9g
きんもー☆

290 名前:Name_Not_Found 投稿日:2006/11/06(月) 15:11:56 ID:db0xree1
>>284
>エラーのときは「何行目の何文字目でエラーか」 出るんで

どこに出るの?


291 名前:Name_Not_Found 投稿日:2006/11/06(月) 15:23:12 ID:???
>>290
テンプレを嫁。ブラウザをそのように設定するか
警告の「!」アイコンをクリックする。

292 名前:Name_Not_Found 投稿日:2006/11/06(月) 15:38:03 ID:066RjT9g
嫁だってプププきんもー☆

293 名前:Name_Not_Found 投稿日:2006/11/06(月) 16:02:40 ID:???
別に煽ったっていいけど何も出ないよ。まあがんばって虫取りしたまへ。

294 名前:Name_Not_Found 投稿日:2006/11/06(月) 16:16:32 ID:???
Javascriptにバイナリデータを吐かせて、それをブラウザに画像データとして解釈させることってできますか?
<img src="img.js">みたいなことを考えているんですが。

画像としてのコンテントタイプが送れなそうだし無理ですかねえ

295 名前:Name_Not_Found 投稿日:2006/11/06(月) 16:18:36 ID:066RjT9g
>>293は腐女子だから気をつけろ

296 名前:Name_Not_Found 投稿日:2006/11/06(月) 16:55:36 ID:???
>>294
mime type を送るのは鯖のお仕事

297 名前:Name_Not_Found 投稿日:2006/11/06(月) 18:32:46 ID:qJQq6gTf
javascriptの勉強をはじめました。
どうでもいい疑問なのですが、なぜjavascriptの変数やfunction名は大文字と小文字が入り混じっているのですか?
また、大文字を使う場合の規則性などあるのでしょうか?

298 名前:Name_Not_Found 投稿日:2006/11/06(月) 18:44:02 ID:???
>>297
You is a big fool manという変数を作りたいときに単語の頭を大文字にして
youIsABigFoolManと表す

299 名前:Name_Not_Found 投稿日:2006/11/06(月) 19:13:09 ID:???
>>296
知ったか発見

300 名前:Name_Not_Found 投稿日:2006/11/06(月) 19:30:44 ID:???
>>297
"camel casing"でググると吉。

規則は>>298の言うとおりで、その大文字がラクダのコブを
連想させるところから命名された。

301 名前:Name_Not_Found 投稿日:2006/11/06(月) 20:07:58 ID:qJQq6gTf
>298,300
camel casing参考になりました。ありがとうございます。
javascriptの命名規則はcamel casingが基本ということでOKでしょうか。
もう少しググってみます。

302 名前:Name_Not_Found 投稿日:2006/11/06(月) 21:24:29 ID:LOA4ezJF
javascriptのエラーが出るブラウザの設定ってどうやんの?ムズいの?
誰か暇人の教えたがり君設定方法を書いてくれ

303 名前:Name_Not_Found 投稿日:2006/11/06(月) 21:35:42 ID:???
>>302
まずブラウザ。

304 名前:Name_Not_Found 投稿日:2006/11/06(月) 21:40:10 ID:???
camel casing は読みづらいのでうちはラクダ本派だけどアンダースコア派。

305 名前:Name_Not_Found 投稿日:2006/11/06(月) 21:44:04 ID:???
Javascriptは書くが、Java厨ではないのでアンダースコア派。
もしくは全部小文字で日が経つとなんだかわからなくなる派。

306 名前:Name_Not_Found 投稿日:2006/11/06(月) 21:58:01 ID:LOA4ezJF
>>303
インターネットエクスプローラー6


307 名前:Name_Not_Found 投稿日:2006/11/06(月) 22:02:27 ID:???
>>306
インターネットオプションの詳細設定を総なめしてみれ

308 名前:Name_Not_Found 投稿日:2006/11/06(月) 22:06:04 ID:???
>>306
まず、絶対にエラーを起こすようなスクリプト(関数閉じてないとか)を含むHTMLを読ませたら、左下に黄色いマークが出るはずだから、それをダブルクリックする。
で、「ページにエラーがあるときは、このメッセージをいつも表示する」にチェック。あと、「詳細を表示」にしておく。

まさか釣りじゃないよね?

309 名前:Name_Not_Found 投稿日:2006/11/06(月) 22:12:07 ID:???
釣りだよバカ死んで

310 名前:Name_Not_Found 投稿日:2006/11/06(月) 22:13:52 ID:???
最初の単語も大文字なのはそのcamel casingってのに入るの?
それとも、そんな変わった書き方してるの俺だけか……。

311 名前:Name_Not_Found 投稿日:2006/11/06(月) 22:20:32 ID:???
どっちもキャメルケース。
大文字始まりをアッパーキャメルケース、
小文字始まりをローワーキャメルケースというんだと。

俺の場合JavaScriptでは基本的にローワーキャメルケースで
コンストラクタとして使う関数名にはアッパーキャメルケースを使う。

312 名前:Name_Not_Found 投稿日:2006/11/06(月) 22:22:35 ID:???
確か過去スレに、Sunの出しているJava Coding Standardに従うのがいいんじゃね?というスレ的推奨があったよね

313 名前:Name_Not_Found 投稿日:2006/11/06(月) 23:19:08 ID:???
>>304-305
きみらが初心者か、または、入門時にまがい物を見て影響されちゃっただけだよ。

例えば、RubyやPerlの関数名や変数名をキャメルにしたら間違いなく誰かに突っ込まれる。
逆も然り。要するに、言語の慣例に倣うのが基本だな。
JSでアンダースコア使うなら、それなりに意味のある使い方にした方が良いだろうね。

>>305
スレチガイだが、厨じゃなくても、Javaはキャメルで書くよね?馬鹿?

314 名前:Name_Not_Found 投稿日:2006/11/06(月) 23:19:17 ID:???
>>307-308
おお、センキュウ〜
こんな便利が昨日があったとは・・

315 名前:302 投稿日:2006/11/06(月) 23:31:08 ID:???
あ、↑の日本語がおかしいや。すみません。
あとjavascriptもスタイルシートみたく外部ファイルにしたほうがいいの?

316 名前:Name_Not_Found 投稿日:2006/11/06(月) 23:34:50 ID:???
ケースバイケースとしか言いようがない

317 名前:302 投稿日:2006/11/06(月) 23:56:51 ID:???
ふーん。じゃあ馴れるまで外部は止めとくよ。サンクス。

318 名前:Name_Not_Found 投稿日:2006/11/07(火) 00:55:42 ID:???
>>316
彼は大谷晃。決定打発言乙。まあ晃は晃でも谷本のウザさは異常

319 名前:Name_Not_Found 投稿日:2006/11/07(火) 06:21:45 ID:???
"追加"ボタンを押すと、入力欄とそれに対応する"クリア"ボタンが追加されるようなことがしたいと思い、
入力欄と"クリア"ボタンの追加はできたのですが、
"クリア"ボタンにonclick="clearInput(id)"のような指定をしても思ったような動作が得られませんでした。
onclick="clearInput(2)"とか定数にするとクリアが機能するんですが、クリアされる入力欄が固定になってしまって...

onclickの指定は、〜.setAttribute('onclick', new Function("clearInput(id);"));のようにしています。

間違っている点やおすすめの方法などありましたらご指導お願いいたします。

320 名前:Name_Not_Found 投稿日:2006/11/07(火) 08:18:11 ID:???
>>319
FAQをよく読めボケ!

321 名前:Name_Not_Found 投稿日:2006/11/07(火) 09:14:51 ID:???
orz

322 名前:Name_Not_Found 投稿日:2006/11/07(火) 09:20:55 ID:FWl9XYc3
質問です。
for(var i=0;i<5;i++){
document.getElementById('tf'+i). ...
}
のようにしてIDを設定しようとしたのですが、オブジェクトがnullだと叱ら
れました。こういう書き方だとgetElementById('tf'1).のように設定される
からでしょうか。getElementById('tf1').にするにはどう書けばよいかご教
示ください。

323 名前:Name_Not_Found 投稿日:2006/11/07(火) 09:26:38 ID:???
>>322
tf0がないってオチはないだろうな?

324 名前:322 投稿日:2006/11/07(火) 09:36:27 ID:???
ありがとうございます。それはないです。

325 名前:Name_Not_Found 投稿日:2006/11/07(火) 13:58:29 ID:???
それなら>>322で取得できるはずだべ
そうなると...の部分が怪しいがまずは一時変数に格納するとかして問題を切り分けたらどうよ?

326 名前:Name_Not_Found 投稿日:2006/11/07(火) 14:22:05 ID:???
お願いです。。。。。どう検索しても出てこない質問です。もし奇跡的にもここで分かる方がいたらぜひ教えていただきたいです。わらにもすがる思いでここにきました。
質問は、""(ダブルクオーテーション)の中には''(シングルクオーテーション)が入りますよね?そのシングルクオーテーションのさらに中に同じことをしたい場合、どうすればいいのでしょうか?というものです。
そもそも3つの入れ子は無理なんでしょうか。。。。お願いです!助けてください!!!!!!!

327 名前:Name_Not_Found 投稿日:2006/11/07(火) 14:23:26 ID:???
>>322
Firefoxを入れる。
ttp://www.mozilla-japan.org/

FireBug extention を入れる。
ttps://addons.mozilla.org/firefox/1843/

debug している url を Firefox で表示する。

右下のステータスバーにある、緑のチェックマーク、若しくは、エラー表示をクリックして、Firebug を表示する。
左側のLine number をクリックすると、そこで実行が停止するように設定できる。
設定したら、再表示。

うまくいくと、設定した場所で実行が止まり、右側に変数の内容を表示する。
左下にある、曲がった矢印の2番目の奴で、以降一行ずつ実行。

結果、ここで同じ様な質問をしなくて済むようになる。めでたし。

328 名前:Name_Not_Found 投稿日:2006/11/07(火) 14:25:21 ID:???
>>326
back slash (日本語windowsなら \ マーク)で、エスケープ。
" ' \"\" ' " こんな感じ。

329 名前:Name_Not_Found 投稿日:2006/11/07(火) 14:27:57 ID:???
>>328
うわ〜〜〜〜〜〜〜〜!!!!!!!本当にありがとうございます!!!
信じられません。グーグルで二日間探しまくったのに、全く出ていませんでした。
あなたは神です!!!!ありがとうございました!!!!!

330 名前:Name_Not_Found 投稿日:2006/11/07(火) 15:53:24 ID:???
具体的にどういうキーワードで探したら二日間もかけながら見つけられなかったのか興味がある。

331 名前:Name_Not_Found 投稿日:2006/11/07(火) 16:01:09 ID:???
でもエスケープという単語を知らずにどうやって調べればいいのかもよくわからんな

332 名前:Name_Not_Found 投稿日:2006/11/07(火) 16:12:50 ID:???
むしろ、最初に言語リファレンスを読まないのが問題なわけで…

333 名前:Name_Not_Found 投稿日:2006/11/07(火) 16:16:24 ID:???
記号の検索は名称でないと難しいからなあ
まあでも>>332が全てだな

334 名前:Name_Not_Found 投稿日:2006/11/07(火) 16:33:42 ID:???
んなこたあない。Googleの検索方法の書籍を読めば出ている。

335 名前:Name_Not_Found 投稿日:2006/11/07(火) 16:48:38 ID:qLdbpDQe
引数に0から始まる数、例えば0123を渡したところ83という数に変わっちゃったんですが
0から始まる数字は渡せない仕様ですか?

336 名前:Name_Not_Found 投稿日:2006/11/07(火) 16:51:12 ID:???
>>335
8進数として解釈されてる、というか、0から始めるのは8進数の書き方だから。

337 名前:Name_Not_Found 投稿日:2006/11/07(火) 22:15:09 ID:???
JavaScript始めたばかりなんですが、驚きの連続ですw
で質問なんですが、この言語って、インスタンス生成時点でクラスの
型は自動的に決めてくれるんですか?prototypeに配列を代入する
と配列になるとか。

338 名前:Name_Not_Found 投稿日:2006/11/08(水) 00:03:44 ID:???
>>337
たぶんJavaから入ったのかな?
そうなら、変数の型は全てObjectだと思えばおk。
実体となるオブジェクトの型やプロパティの有無に関するチェックは全て実行時。

339 名前:Name_Not_Found 投稿日:2006/11/08(水) 02:59:41 ID:???
>>337
まずクラスだのいう考え方をきれいさっぱり捨てる。
次にスコープとスコープチェーンを理解する。

340 名前:Name_Not_Found 投稿日:2006/11/08(水) 10:36:54 ID:???
特定のクラス名を操作したい場合はどうすればいいの?
idだとgetElementByIdでいけるんだが、
getElementByClassnameってのも無いみたいだし、全く分からん。


341 名前:Name_Not_Found 投稿日:2006/11/08(水) 10:55:22 ID:???
>>340
全部のエレメントを検索してgetAttribute等でクラスを識別するのが普通
API一つでどうこうなったりはしない

342 名前:Name_Not_Found 投稿日:2006/11/08(水) 11:48:31 ID:???
>>340
まあ本来はclassNameって、JSで一括操作するためのものじゃなくて、CSSで一括指定するためのものだしな。
JSで一括操作するならclassNameに頼らず、HTMLやXMLレベルでDOMの構造をうまく作っとくほうが得策かとは思う。
何か理由があってどうしても必要なら、>>341の言うとおりに自分で実装したらいいと思う。
もしくは、諸悪の根源prototype.jsを使うかw

343 名前:340 投稿日:2006/11/08(水) 12:26:36 ID:???
prototype.jsの関数を使ってみたがどうも上手く行かない。

http://www.devpro.it/bytefx/index.php
このスクリプトを使って、特定のクラスを付けたメニューのhover時に色をフェードさせるように
したいんだがダメだ。

function fade(){
bytefx.color(document.getElementsByClassName("classname"), "backgroundColor", "#000", "#fff", 1);
}
これで黒から白に変わると思うんだが、どこがダメなのかさっぱり(メインのソースは省略)。

344 名前:Name_Not_Found 投稿日:2006/11/08(水) 13:00:29 ID:???
>>343
ライブラリの使用に困るような初心者は、
手取り足取りスレやWebProg板のAjax語るスレに行けよ。

>>341
XMLなら、メジャーな言語・パーサーのどれでも、XPathを使うに決まってる。

>>340
DOM-level-3-XPathまたはDOM-level-2-Traversalを使えるなら、それを使う。
IEは、存在しないプロパティを持つCSS規則を作って抽出してCSS規則を削除する。
どれも無理なら、DOM-CoreとDOM-HTMLで書くしかないが、
CSSセレクタに使える文字とHTMLのCLASS属性値で使える文字にギャップがあるから、
正規表現を使わずに文字列操作だけで実装するよう注意する。

345 名前:Name_Not_Found 投稿日:2006/11/08(水) 13:34:43 ID:???
あるidを持つタグの子ノードをするにはどうすればいい?

document.getElementById("id").childNodes.setAttribute("-","-")

こんな書式じゃダメみたいなんだが、色々調べてもやり方が分からん。

346 名前:Name_Not_Found 投稿日:2006/11/08(水) 13:35:25 ID:???
×あるidを持つタグの子ノードをするにはどうすればいい?
○あるidを持つタグの子ノードを操作するにはどうすればいい?

347 名前:Name_Not_Found 投稿日:2006/11/08(水) 15:21:48 ID:???
>>345
childNodes の最後の s は、複数形の s です。
ですから、複数の Node が、配列で返ってきます。

故に、ある特定の childNode を操作しようと思うなら、
….childNodes[x].… とすべきでしょう。

348 名前:345 投稿日:2006/11/08(水) 16:05:49 ID:???
>>347
ありがとう。

しかし上手く行かない。
idにlistを付けたulの子要素であるliタグにclass名を付けたいんだが

document.getElementById("list").childNode.setAttribute("class","class名");

どこが間違ってる?

349 名前:Name_Not_Found 投稿日:2006/11/08(水) 16:16:12 ID:???
>>348
日本語くらいちゃんと読めよw

350 名前:345 投稿日:2006/11/08(水) 16:29:33 ID:???
>>349
ありゃ、俺はどこを読んでたんだorz
んー、でも動かん。
エラーは出なくなったがclass名が付加されない。
諦めますた。

351 名前:Name_Not_Found 投稿日:2006/11/08(水) 16:34:25 ID:???
>>350
setAttributeでclassをいじる事に関してはFAQを読もう
ま、諦めたならいいけど

352 名前:Name_Not_Found 投稿日:2006/11/08(水) 18:07:50 ID:???
そういや予約語の class っていつ使うん?

353 名前:Name_Not_Found 投稿日:2006/11/08(水) 18:10:14 ID:???
仕様が確定して処理系が実装されたとき

354 名前:Name_Not_Found 投稿日:2006/11/08(水) 18:42:43 ID:OgbcvSB/
classと暮らす

355 名前:Name_Not_Found 投稿日:2006/11/08(水) 18:43:27 ID:OgbcvSB/
>>354
テラワロスwww

356 名前: ◆q7u/null4U 投稿日:2006/11/08(水) 18:58:46 ID:???
>>355
こんばんは〜
荒らしに来ますたぁ〜
さいきん, ろくな ねたが ないのねぇ〜.
もしかして れべる ていか ??? (ぐゎ〜はっはっは)

357 名前:Name_Not_Found 投稿日:2006/11/08(水) 19:03:06 ID:???
>>354-356
自演乙。去れ。

358 名前:Name_Not_Found 投稿日:2006/11/08(水) 19:28:53 ID:f2tI0r0j
http://www.oricon.co.jp/news/rankmusic/

359 名前:Name_Not_Found 投稿日:2006/11/09(木) 00:17:23 ID:???
hahaha

360 名前:Name_Not_Found 投稿日:2006/11/09(木) 00:34:59 ID:???
>>353
先行予約しすぎだろw

361 名前:Name_Not_Found 投稿日:2006/11/09(木) 12:03:16 ID:Pwc8M6LU
すいません。
もしAが数字じゃなかったらという条件式を次のように書いたのですがうまく行きません。
if(A!=/[0-9]/)
どう書けばよいのでしょうか?

362 名前:361 投稿日:2006/11/09(木) 12:18:28 ID:Pwc8M6LU
事故解決しました。お騒がせしました。

363 名前:Name_Not_Found 投稿日:2006/11/09(木) 13:10:10 ID:???
689 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2006/10/28(土) 20:48:29 ID:3XbZPdPf0
> 自己解決しました
近頃この手の素っ気ないレスが多いが、たとえ自分で解決したとしても、
その手法をレスすれば、他の困った人々の手助けになるとは考えられないだろうか。

364 名前:Name_Not_Found 投稿日:2006/11/09(木) 13:11:03 ID:???
はい、考えられません。

365 名前:Name_Not_Found 投稿日:2006/11/09(木) 13:19:10 ID:???
isNaN()

366 名前:Name_Not_Found 投稿日:2006/11/09(木) 14:23:27 ID:???
質問です。
生成されたオブジェクトのコンストラクタをとると、{}の中に
[native code]と出ますが、この[native code]ってどういう意味
なんでしょうか。お教えください。

367 名前:Name_Not_Found 投稿日:2006/11/09(木) 14:29:54 ID:???
nativeのcodeという意味

368 名前:366 投稿日:2006/11/09(木) 14:36:16 ID:???
>>367
早速の的確なお答えありがとうございました。勉強になりました。

369 名前:Name_Not_Found 投稿日:2006/11/09(木) 14:36:53 ID:???
>>366
「マシン語のコード」

370 名前:Name_Not_Found 投稿日:2006/11/09(木) 15:12:29 ID:???
function unko(){
var setlist = document.getElementById("list");

for (var i=0; i<setlist.length; i++) {
if (i%2) {
setlist.childNodes[i].setAttribute("title","unko");
}
}
}

listと言うidを持つulタグの子要素であるliタグの中で、偶数版目のものだけにtitle="unko"を
付けたいがどこが間違ってるのか分からん。
知っている人がいたら教えてください。

371 名前:Name_Not_Found 投稿日:2006/11/09(木) 15:18:20 ID:???
IEはsetAttribute()が効かないが

372 名前:370 投稿日:2006/11/09(木) 15:22:12 ID:???
>>371
一応Firefoxで確認しています。

<ul id="list">
<li>リスト1</li>
<li>リスト2</li>
<li>リスト3</li>
<li>リスト4</li>
<li>リスト5</li>
</ul>

こう言う並列なリストがあって、liタグ全てにclassを付加したいんですが、どうも上手く行きません。

373 名前:Name_Not_Found 投稿日:2006/11/09(木) 15:44:25 ID:???
よくわからんが372だけを見て書いてみた

var items = document.getElementById("list").getElementsByTagName("li");
for(var i=0; i<items.length; i++) { items[i].setAttribute("class(Name)","適当な名前"; }

動くがどうかはしらない。またclass(Name)についてはFAQ参照

374 名前:Name_Not_Found 投稿日:2006/11/09(木) 16:51:26 ID:???
>>370
setlist.length を setlist.childNodes.length に変えるだけだろ

375 名前:Name_Not_Found 投稿日:2006/11/09(木) 18:22:08 ID:???
すいません、質問です。

CSSでイメージのロールオーバー設定すると、画像を先行取得していないので、
マウスオーバー時に読み込みマークでるじゃないですか・・・。

イメージを先行取得させるjavascriptを教えていただけないでしょうか?

376 名前:Name_Not_Found 投稿日:2006/11/09(木) 18:30:53 ID:???
http://www.google.com/search?hl=ja&q=javascript+%E7%94%BB%E5%83%8F+%E5%85%88%E8%AA%AD%E3%81%BF

377 名前: ◆.PT9876/4U 投稿日:2006/11/09(木) 18:34:43 ID:???
image preload に JavaScript 使うまでもなんじゃない ?
僕なら普通に html 記述して display:none にしておく.
ただし, 数が多くなると読込時間が長くなる.
この辺の兼ね合いが大切だ.

378 名前:Name_Not_Found 投稿日:2006/11/09(木) 18:35:09 ID:???
>>376

あざーす!

379 名前:Name_Not_Found 投稿日:2006/11/09(木) 18:36:34 ID:???
>>377

なるほど、バランスを見て色々やってみます。
ありがとうございます。

380 名前:Name_Not_Found 投稿日:2006/11/09(木) 18:47:59 ID:???
ロールオーバーされそうなイメージだけ先読みしとくとかね。

381 名前:Name_Not_Found 投稿日:2006/11/09(木) 18:56:22 ID:???
携帯から失礼します。

IE5or6限定での質問です

つい先ほど知ったのですが、ユニークなIDが振られたタグを参照する場合、document.all. を省略できるんですが、これってIEの仕様(正式にサポートされている)ですか?

MSDNを小一時間見渡してみたのですが(英語力のなさもありますが)こういう参照方法についての記述は見当たりませんでした。


それから、BODYのonloadで呼んでいる関数内で、そのBODY内のDIVを上記方法で参照すると、エラー(定義されていません)になる可能性はありますか?


よろしくお願いします

382 名前:Name_Not_Found 投稿日:2006/11/09(木) 19:17:00 ID:???
>>381
8年前、IE4時代の記事。
http://msdn.microsoft.com/library/en-us/dhtmltechcol/cols/dndude/dude081798.asp

383 名前:372 投稿日:2006/11/09(木) 19:38:49 ID:???
>>373
おかげ様で出来ました
感謝してます!!

384 名前:Name_Not_Found 投稿日:2006/11/09(木) 20:20:12 ID:???
>>377
クソだな

385 名前:381 投稿日:2006/11/09(木) 20:49:21 ID:???
>>382
ありがとうございます。
なるほど、その当時は仕様だったんですかね。今もそれは変わってないんでしょう…。


それから、二つ目の質問で追記(すいません)なんですが、実際にそういうエラーが出る場合があるらしいのです(自分の環境では再現しない)

で、色々考えて、onloadイベントは、readystateがloadedの時点で発生して、でも参照時にはcompleat(スペル違う?)ではないからかな、とか考えたんですが…。違いますかね?

386 名前:Name_Not_Found 投稿日:2006/11/09(木) 21:58:02 ID:???
要素の参照はdocument.getElementById()を使う。それが一番無問題。
IE専のしかも現在公式サポートでない機能のことなど知らんし、
何がどう実装されてるかも不明。
だからそれで相談されても何のアドバイスもないね。

387 名前:Name_Not_Found 投稿日:2006/11/10(金) 00:13:23 ID:???
>>386
お前アホかwwアドバイスできないなら偉そうにレスするなよw

388 名前:381 投稿日:2006/11/10(金) 00:32:45 ID:???
>>386
ま、確かにその通り。

では、二つ目の質問をちょっと変えます。
bodyのonloadイベントは、そのbody内のエレメントはすべて準備が調ってから(readyStateがcompleteになってから)発生するのでしょうか?それとも(あくまで可能性の話として)タイミングに寄ってはエレメントを参照するとエラーになることはあるのでしょうか?
MSDNでは、全てLoadしたら、という書き方をしていて、それってどっちなのかぁ?と思いまして…

389 名前:Name_Not_Found 投稿日:2006/11/10(金) 01:05:50 ID:???
readyStateってDOMに対して定義されてないだろ

390 名前:381 投稿日:2006/11/10(金) 01:34:22 ID:???
あ、そうなんですか。すいません。勉強不足でした。
ということは、bodyのonloadイベントで実行しておけば、そのbody内はどれも参照可能ってことですか?

391 名前:Name_Not_Found 投稿日:2006/11/10(金) 03:41:50 ID:???
>>390
>bodyのonloadイベントで実行しておけば
自分で試せ屑。

HTMLのBODY要素のONLOAD属性値に書くことが即ち実行とは言えない。

HTMLのイベント属性値にはreturn文が書けることからも
想像できるように、匿名の関数が作られている。
その匿名関数がイベント発生時に実行されるから、
HTMLのイベント属性値として書いたスクリプトもその時に実行される。
試しに、onload="alert(arguments.callee)" してみればよい。

HTMLのイベント属性値に限らず、例えばIEなら、
<script type="text/javascript" event="onclick()" for="EYED">alert(arguments.callee);</script>
<p id="EYED">hoge</p>
のように、SCRIPT要素の内容が匿名関数本体になる。
(つまり、これはクリックするまでは実行されない。)

ところで、開始タグ直後に「普通の」SCRIPT要素を書けば、
DOM構築及びレンダリングと同期して処理がされる。
また、DOMNodeInsertedイベントタイプを利用すれば、
DOM構築及びレンダリングと非同期で処理がされる。

392 名前:Name_Not_Found 投稿日:2006/11/10(金) 04:30:40 ID:???
>>391 何を演説してるのか分からんね。
>>390
HTML 4.01ではonloadは次のように規定されている。

The onload event occurs when the user agent finishes loading
a window or all frames within a FRAMESET. This attribute may
be used with BODY and FRAMESET elements.

だからonloadイベントハンドラの中でgetElementById()で取るなら
どの要素も既に読まれていて取れるものと理解される。取れないなら
仕様に合わないブラウザが悪い。

IE専の機能の場合、そのふるまいがどうであろうと「そういうもんだ」
とIEが言うならそれであきらめるしかない。

393 名前:Name_Not_Found 投稿日:2006/11/10(金) 08:28:33 ID:???
一言多いな

394 名前:Name_Not_Found 投稿日:2006/11/10(金) 08:39:09 ID:7JkVi2iI
質問です。
プロトタイプ継承問題なのですが、英語圏のサイトでincapsulatedという
単語で説明されている意味がよくわかりません。おわかりの方、ご教示
ください。

395 名前:Name_Not_Found 投稿日:2006/11/10(金) 08:54:39 ID:???
encapsulateのことを時々incapsulateって言うこともあるから、たぶんencapsulatedのことだと思うけど、日本語で言うと「カプセル化」。
普通にオブジェクト指向でいう、内部仕様の隠蔽の意味かと。

396 名前:381 投稿日:2006/11/10(金) 09:06:29 ID:???
みなさん、いろいろありがとうございました。
とても勉強になりました。

397 名前:Name_Not_Found 投稿日:2006/11/10(金) 12:40:20 ID:???
var items = document.getElementById(idname).getElementsByTagName(tagname);

for (var i=0; i<items.length; i++) {
var number = i+1;

setlist[i].setAttribute("onmouseover","function(){kansu"+number+"();}");

任意のidを含むリストの子要素を取得して、そこのmouseover時に動的な名前の?関数を割り当てたいんだが、
上手く行かない。
firefoxは別の設定でいけるんだが、IEでは全然ダメ。

多分上の設定では以下のようになってきちんと動くと思うんだが、どこが悪いのでしょうか?
<ul id="id">
<li onmouseover="function(){kansu1();">リスト1</li>
<li onmouseover="function(){kansu2();">リスト2</li>
<li onmouseover="function(){kansu3();">リスト3</li>
<li onmouseover="function(){kansu4();">リスト4</li>
<li onmouseover="function(){kansu5();">リスト5</li>
</ul>



398 名前:Name_Not_Found 投稿日:2006/11/10(金) 12:40:47 ID:dpeaFFek
ど素人なのですが 色々調べてもわからなかったので質問させてください

下のような感じで 選択肢が2つあるラジオボタンと、それに属する2つの
プルダウンメニューを設定しています
       ┌─────┬─┐
◎Tシャツ│menu1    │▼│
       └─────┴─┘
       ┌─────┬─┐
◎ズボン │menu2    │▼│
       └─────┴─┘
menu1のプルダウンをクリックすると「Tシャツ」のラジオボタンが
menu2のプルダウンをクリックすると「ズボン」のラジオボタンが
onになるようなスクリプトを作りたいのですが 上手くいきません


html(実際はphpファイルですが)には
<form action="***.php" method="POST">
(中略)
<input type="radio" name="type" value="1">Tシャツ。
<select name="group_id1" onFocus="changeCheckedA()">
<option value="hansode" selected="selected">半袖</option>
<option value="nagasode">長袖</option>
(中略)
</select><BR>
<input type="radio" name="type" value="2">ズボン
<select name="group_id2" onFocus="changeCheckedB()">
<option value="jeans" selected="selected">ジーパン</option>
<option value="chino">チノパン</option>
(中略)
</select>
</form>

399 名前:398 投稿日:2006/11/10(金) 12:41:43 ID:dpeaFFek
<続きです>
jsファイルに
function changeCheckedA() {
document.forms[0].radio.value[1].checked = true ;
}
function changeCheckedB() {
document.forms[0].radio.value[2].checked = true ;
}

とやっています

ネットで調べて表記方法を細かく変えてみたのですが 一向にラジオ
ボタンはonになりません
何かとてつもなく根本的な勘違いをしてるんだと思いますが わかり
ませんでした

何かアドバイスをいただけるとうれしいです
よろしくお願いいたします

400 名前:Name_Not_Found 投稿日:2006/11/10(金) 12:46:33 ID:???
>>397
いろいろだめだ

401 名前:Name_Not_Found 投稿日:2006/11/10(金) 12:56:22 ID:???
>>399
フォームに名前を付けちまった方が手っ取り早いと思うがどうよ。
あと、セレクトメニューの名前が同じなのはわかりにくいが。

402 名前:Name_Not_Found 投稿日:2006/11/10(金) 13:05:25 ID:???
>>397
setlist[i].setAttribute("onmouseover","kansu"+number+"();");
でどうよ?

>>399
function changeCheckedA() {
document.forms[0].type["0"].checked = "on";
}
function changeCheckedB() {
document.forms[0].type["1"].checked = "on";
}
にしてみ。

403 名前:397 投稿日:2006/11/10(金) 13:17:12 ID:???
>>402

それだとIEが動かないんですよorz
多分setAttributeうんぬんの問題だと思います。
代わりにfunctionを挟めば良いらしいんですが、+で結合している形なので"function(){kansu"が
文字列と判断されて動かないみたいで…。

上手い事やる方法は無いのかなぁ。

今更ですが>>397のsetlist[i]はitems[i]の間違いです。

404 名前:Name_Not_Found 投稿日:2006/11/10(金) 13:49:01 ID:???
>>397
文字列ではなく関数オブジェクトを渡す。
items[i].setAttribute("onmouseover",window["kansu"+number]);
または
items[i].setAttribute("onmouseover",new Function("kansu"+number+"();");

405 名前:Name_Not_Found 投稿日:2006/11/10(金) 13:54:23 ID:???
>>403
setAttributeを使うという考えが諸悪の根源。
items[i].onmousemove = window['kansuu' + i];

406 名前:397 投稿日:2006/11/10(金) 14:06:16 ID:???
>>404 >>405
やっと出来たー。
お二人には感謝!!
10時間以上かかってようやくここまでこぎつけたorz

ほんとうに感謝です。

407 名前:398=399 投稿日:2006/11/10(金) 14:35:10 ID:???
>>401
ホント汚いコードですいません

>>402
確かにvalueは数値ではなく文字列として考えるべきですね!!

でも変えてみましたがダメでしたorz もちろんhtmlのvalueも変えたの
ですが…("1"と"2"だったので"0"と"1"に)

他にどこがダメなんでしょうか…

408 名前:402 投稿日:2006/11/10(金) 14:55:13 ID:???
>>407
ごめん、ちょっと勘違いしてたので訂正。
↓をそのままおれのとこのIEで動かしたら、おそらく意図したとおりに動いたよ。

<script type="text/javascript">
function changeCheckedA() {
document.forms[0].type[0].checked = "on";
}
function changeCheckedB() {
document.forms[0].type[1].checked = "on";
}
</script>

<form action="***.php" method="POST">
<input type="radio" name="type" value="1">Tシャツ。
<select name="group_id1" onfocus="changeCheckedA()">
<option value="hansode" selected="selected">半袖</option>
<option value="nagasode">長袖</option>
</select><BR>
<input type="radio" name="type" value="2">ズボン
<select name="group_id2" onfocus="changeCheckedB()">
<option value="jeans" selected="selected">ジーパン</option>
<option value="chino">チノパン</option>
</select>
</form>

409 名前:Name_Not_Found 投稿日:2006/11/10(金) 15:06:57 ID:???
何をメチャクチャ書いているんだか…
document.forms[0].elements.ラジオボタン名[番号].checked = true;
だ! デタラメなアドバイスする奴は去れ!!


410 名前:398=399 投稿日:2006/11/10(金) 15:08:56 ID:???
>>408
いけました!! ありがとうございます!!
本当にありがとうございました!!!

しかしname="type"ってのはややこしいですね 反省です

411 名前:Name_Not_Found 投稿日:2006/11/10(金) 19:28:17 ID:???
setAttributeの引数はどっちもDOMStringだろ。
setAttribute("onmouseover",new Function("kansu")みたいな馬鹿な書き方は
誰が言い出したんだろ。

412 名前:Name_Not_Found 投稿日:2006/11/10(金) 21:53:31 ID:???
ひとつ質問です。
オブジェクトのリテラルでキーはクォーテーションで囲むのが正しいですか?

413 名前:Name_Not_Found 投稿日:2006/11/10(金) 23:30:44 ID:???
>>412
囲んでも囲まなくても正しい

414 名前:Name_Not_Found 投稿日:2006/11/11(土) 00:06:32 ID:???
>>411
馬鹿IEの実装はそうなってないんだよ。

415 名前:412 投稿日:2006/11/11(土) 00:43:09 ID:???
>>413 ありがとうございました。


416 名前:Name_Not_Found 投稿日:2006/11/11(土) 01:57:32 ID:???
setAttribute使う奴は皆stringでいいと勘違いする。
だから漏れはsetAttributeを罵倒することにしてる。

417 名前:Name_Not_Found 投稿日:2006/11/11(土) 08:03:59 ID:1yRkwZv6
IE6以上限定でもいいのですが、
input-buttonの絶対位置を調べる方法はないでしょうか。
ボタンはスタイルシートで絶対位置指定してるものではなくて、
描写位置を知りたいです。

input-button要素に限ったことじゃないと思いますが
調べる方法を教えて下さい。

418 名前:Name_Not_Found 投稿日:2006/11/11(土) 08:08:31 ID:???
>>416
setAttributeを使わないと指定できないものもあるんじゃないのかな。
それと、setAttribute自体の引数は両方Stringだよ

>>417
offsetLeftあたりでぐぐってみて

419 名前:417 投稿日:2006/11/11(土) 08:12:46 ID:???
>>418
ありがとう。

420 名前:417 投稿日:2006/11/11(土) 08:31:55 ID:???
すいません。
解決できたと思い込んでいたのですが、
思っていたのと違うみたいです。
offsetLeftは、ウィンドウを基準にした場合の要素の左の座標
だと思うのですが、
取得できた値がかなり小さいです。
なぜでしょうか。

421 名前:Name_Not_Found 投稿日:2006/11/11(土) 08:44:03 ID:???
>>420
自分で調べろ。最終ヒント:msdn measuring でぐぐれ

422 名前:Name_Not_Found 投稿日:2006/11/11(土) 12:59:43 ID:???
>>418
setAttribute()でないと指定できないものの具体例、キボン。

423 名前:Name_Not_Found 投稿日:2006/11/11(土) 13:01:22 ID:???
langとか

424 名前:Name_Not_Found 投稿日:2006/11/11(土) 13:12:22 ID:???
>>423
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-59132807

425 名前:417 投稿日:2006/11/11(土) 21:11:38 ID:???
つまり、合計して求めるしかないってことですね。
ありがとうございました。

426 名前:Name_Not_Found 投稿日:2006/11/12(日) 20:47:22 ID:CHxJOLXJ
onClickやonKeyPressに複数イベントを設定することはできるでしょうか。
たとえば、ボタンを押したらfunction aaaとfunction bbbを両方実行させたいのですが

427 名前:Name_Not_Found 投稿日:2006/11/12(日) 20:56:01 ID:???
>>426
function ccc(){
aaa();
bbb();
}
という風に纏めた関数を作って、function cccを呼び出せばいい

428 名前:426 投稿日:2006/11/12(日) 21:02:53 ID:CHxJOLXJ
>>427
やはりその方法しかないでしょうか。
各イベントには1つづつしか設定できないでしょうか

429 名前:Name_Not_Found 投稿日:2006/11/12(日) 21:03:13 ID:CxalWhpn
選択値によってスタイルのクラス名を指定し、visibilityをhidden/visibleをボタン一括して切り替えています。
このとき、クラスが設定されているタグの種類はいろいろ(少なくともspanとdiv)です。
 例:選択値='typeA' … 対象クラス名='classA'
    選択値='typeC' … 対象クラス名='classA','classB','classC'

document.all[i].className、document.all[i]..style.visibilityを使用して
IEでは何とか動くようにできましたが、他のブラウザ(NN7、FireFox、OP9)では全く動いていません。
document.all[i]ではなくdocument.getElementsById['id_str']または
document.getElementsByTagName('tag_str')というサンプルは多くありましたが、
クラスが設定されているタグはページ内に複数あり、IDは設定していませんし、タグも1種類ではありません。
どうすれば、ページ内のクラス名を参照し、visibilityを変更することができますか?

430 名前:Name_Not_Found 投稿日:2006/11/12(日) 21:07:22 ID:???
>>428
onclick="aaa();bbb();"

431 名前:426 投稿日:2006/11/12(日) 21:08:24 ID:CHxJOLXJ
>>430
ありがとうございます。

432 名前:Name_Not_Found 投稿日:2006/11/12(日) 21:08:54 ID:???
>>429
必要なタグを全部見る

433 名前: ◆.PT9876/4U 投稿日:2006/11/12(日) 21:17:30 ID:???
>>429
HTML の構造を工夫して,
document.getElementsByTagName('hx');
を活用すれば id を振らなくてもうまくいく.
んで, IE を基準に考えて script を書くのはお薦めしない.

434 名前:429 投稿日:2006/11/12(日) 23:10:03 ID:???
>>432>>433
ありがとうございます。
全てを対象にするものが無いようなので、spanとdivのみを使用するようにして
この2種類のTagNameを調べるようにしてみます。

435 名前:Name_Not_Found 投稿日:2006/11/13(月) 01:41:44 ID:???
>>428
テンプレは読んだのかね。addEventListener/addHandlerを使えば
いくつでも追加していいける。ただしブラウザ振り分け必要。
>>429
document.allを使った時点でクロスブラウザは捨ててると思うべき。
他のブラウザで動かないとか言い出すのならDOM標準準拠で書け。
どっちでも自分の好きな方でいいが目指す方向と違う方を選んで
おいて相談されてもやる気にならんから。

436 名前:Name_Not_Found 投稿日:2006/11/13(月) 03:53:33 ID:MO7+AKoX
IE7で、下のような確認させる表示をつけたときだけ、そのボタンをクリックしても実行されません。
<input type='submit' name='delete' value='チェックした写真削除' onclick='return confirm("本当に削除してもいいですか?")' />
IE6やFxでは動きます。どうすればいいのでしょうか?

437 名前:Name_Not_Found 投稿日:2006/11/13(月) 04:33:30 ID:???
>>436
7.0.5728.16387
7.0.5744.16384
では問題なかった。

438 名前:Name_Not_Found 投稿日:2006/11/13(月) 11:09:55 ID:MO7+AKoX
>>437
申し訳なかったです。
下記のIE7のスタンドアローンのやつだと、無理だっただけっぽいです。
http://www.koikikukan.com/archives/2006/11/08-005050.php

439 名前:Name_Not_Found 投稿日:2006/11/13(月) 11:10:47 ID:MO7+AKoX
>>437
申し訳なかったです。
下記のIE7のスタンドアローンのやつだと、無理だっただけっぽいです。
http://www.koikikukan.com/archives/2006/11/08-005050.php

440 名前:Name_Not_Found 投稿日:2006/11/13(月) 12:02:09 ID:???
>>435
addHandlerとは?

441 名前:Name_Not_Found 投稿日:2006/11/13(月) 12:15:02 ID:???
>>434
IE  addRule(),  removeRule()
W3  insertRule(),  deleteRule()
すればいいだけのような気がするが……。

442 名前:Name_Not_Found 投稿日:2006/11/13(月) 12:23:58 ID:???
>>434
もし、どーしてもHTMLのclass属性値で自力抽出したいなら、DOM-XPathを使えって。
FxやOpera9相手なんだろ?これら今時のUA相手に、DOM-Coreや
DOM-HTMLを使って全部回すなんて、頭おかしいと思われるよwww

443 名前:Name_Not_Found 投稿日:2006/11/13(月) 21:40:03 ID:1wA5wtPJ
FAQ かなと思ったけどうまく調べられないのでお願いします。
script src で読み込まれた js 内で、自身のパスを参照するにはどうすればよいでしょう?
img を吐くようなスクリプトで、script src 自体はどこに貼られてもよいようにしたいわけですが。
できそうな気はするんだけど…。ってか、一応以下でできたんですがもうちょっときちんとした方法は無いものかと。

document.write('<span id="xxxxxx" />');
var e = document.getElementById("xxxxxx");
var basePath = e.previousSibling.src; // script src
basePath = basePath.substring(0, basePath.lastIndexOf('/') + 1);

444 名前:Name_Not_Found 投稿日:2006/11/14(火) 04:24:00 ID:???
/

445 名前:Name_Not_Found 投稿日:2006/11/14(火) 10:47:58 ID:???
ノシ

446 名前:Name_Not_Found 投稿日:2006/11/14(火) 12:24:54 ID:???
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}

上記で、document.write(xmlhttp.readyState);を行うとどうしても4でなくて
0となってしまいます。
処理自体はxmlhttp = new XMLHttpRequest();の方が走っているのですが…
エスパーの方、いらっしゃいましたらお願いします。

447 名前:Name_Not_Found 投稿日:2006/11/14(火) 13:12:18 ID:???
>>443
過去ログにもあるがちょうど最近似たような話題を見たな。
ttp://ajaxian.com/archives/documentwrite-and-xhtml
というわけで
var e = document.documentElement;
while (e.tagName.toLowerCase() != "script") e = e.lastChild;
var beginPath = e.src;
でどうよ?

448 名前:Name_Not_Found 投稿日:2006/11/14(火) 13:55:16 ID:???
thx

449 名前:Name_Not_Found 投稿日:2006/11/14(火) 14:13:16 ID:???
>>446
document.write()使ってるという時点で皆ドン引きかと思われ。
過去ログ読みまくればreadyState論議が見つかると思うけどね。

450 名前:Name_Not_Found 投稿日:2006/11/14(火) 15:43:55 ID:???
質問です
javaスクリプトを用いて
ページ自体を更新することなく
部分的にCGIの実行結果を表示したいのですが
これは可能でしょうか
(perlでサーバー上のファイルサイズ取得、これをスクリプトでリアルタイムに表示)
おねがいします

451 名前:Name_Not_Found 投稿日:2006/11/14(火) 16:04:16 ID:L1yQOXOr
質問です。
フォームのイベントでoptionのvalueに値を代入すると、その値の
optionのtextがselectの窓に見えるようになるというのは、どういう
理屈からですか。いくら考えてもわかりません。IE専の仕様ですか?

452 名前:Name_Not_Found 投稿日:2006/11/14(火) 17:14:56 ID:???
>>450
まさにそういうことを目的とするのが
今流行のAJAXというものらしいです
ぐぐれば死ぬほど出てきます

>>451
サンプルが無いと意味がよくわからんです。

453 名前:Name_Not_Found 投稿日:2006/11/14(火) 17:47:24 ID:???
>>451
value of type DOMString
The current form control value (i.e. the value of the
currently selected option), if multiple options are
selected this is the value of the first selected option.

とあるから、そしてreadonlyではないから、ここに書き込むと
それが選択された値であるように選択項目が切り替えられる
ようになっている、という風に読んでもいいんじゃないの。
必ずそうなっているべきかどうかは疑問だけどさ。

454 名前:451 投稿日:2006/11/14(火) 18:57:30 ID:???
>>453
なるほど選択されたという認識ですね。私はindexでするようにして
いたのですが、確かに依存なしかというと安心できないかもです。
ありがとうございました。

455 名前: ◆.PT9876/4U 投稿日:2006/11/14(火) 18:59:23 ID:???
>>450
"CGI の実行結果" というのが
"CGI によって記録されたファイル" なら,
XMLHttpRequest が使える.
ただし, 使えない server があることに注意.

それと XMLHttpRequest は確かに魅力的だけど,
UA を選ばざるを得ない結果になりがちだし,
返される文字コードが utf-8 デフォなので
かなり使いにくい...

456 名前:450 投稿日:2006/11/14(火) 19:40:30 ID:???
>>452
下らない質問ですんませんでした^
おかげさまで解決しました
>>455
AJAXでCGI直で実行結果をリアルタイム表示に成功しています
これをうまいこと数値として扱えれば最高なんですが
この辺の可能性は勝手に探してみます

ありがとうございました

457 名前:Name_Not_Found 投稿日:2006/11/14(火) 19:40:47 ID:???
>>450
ajaxでもいいけど面倒なのでiframeにでも読ませるのが簡単かもよ。
とにかくアンタが詳しい処理内容を説明しないから誰も回答しようが
ないんだよ。質問するならするでちゃんと説明しなよ。

458 名前:Name_Not_Found 投稿日:2006/11/15(水) 11:56:24 ID:xnA96xtJ
質問です。
appendChildするのではなくて、オブジェクトそのものをHTMLとし
て生成する方法はありますか。あれば、やり方教えてください。

459 名前:Name_Not_Found 投稿日:2006/11/15(水) 12:23:14 ID:???
>>458
HTMLとして とはどのような形を言うのでしょうか。

460 名前:Name_Not_Found 投稿日:2006/11/15(水) 12:55:37 ID:???
>>458
もしかして 「要素オブジェクト.innerHTML = 'HTML文字列'」
のことかね?もしそうなら,,,

過去スレくらい読めボケ!!! 2度と来るな!!!

461 名前:Name_Not_Found 投稿日:2006/11/15(水) 12:58:39 ID:rd3mTVtq
>>458
文字列としてのhtmlをどこかのinnerHTMLにつっこめば、
それはDOMオブジェクトとしても扱えるよ。
そういうことを言っているんじゃないのかな?

私的最近のやりかたは、javascriptでcreateTag,appendChild等でタグを生成する
ようなことはめんどうなのでほとんどせずに、テンプレートから文字列として作った
html(の部分)をinnerHTMLにつっこんで画面を構成する、というようにしてます。


462 名前:458 投稿日:2006/11/15(水) 15:37:58 ID:???
>>461
たいへん参考になりました。ありがとうございました。

463 名前:Name_Not_Found 投稿日:2006/11/15(水) 15:58:51 ID:???
形の上で罵倒だろうが >>460 もちゃんと教えているということが
コイツには理解できないようだな。2度と来ないで欲しいね。

464 名前:Name_Not_Found 投稿日:2006/11/15(水) 16:01:40 ID:???
warota

465 名前:Name_Not_Found 投稿日:2006/11/15(水) 16:22:49 ID:???
>>463
おまえバカだろ

466 名前:Name_Not_Found 投稿日:2006/11/15(水) 16:39:45 ID:???
460==463 //true
自業自得 プ

467 名前:Name_Not_Found 投稿日:2006/11/15(水) 17:07:59 ID:???
こういう時は罵倒も含めてレスくれた人全員にアンカーするのが
波風立てない大人の生き方。これ最強。

華麗にスルーされて少し傷ついた>>459の意見オワリ。

タグ直書きでappendChildみたいな事がやりたいなら、
insertAdjacentHTMLというものもありますよ。

468 名前:Name_Not_Found 投稿日:2006/11/15(水) 17:15:30 ID:???
>>1-467
ありがとうございます

469 名前:Name_Not_Found 投稿日:2006/11/15(水) 17:39:17 ID:???
>>468
このレスにはレスが貰えなくて傷つきますた

470 名前:Name_Not_Found 投稿日:2006/11/15(水) 22:53:24 ID:???
前スレまでしかレスしてない人が傷つきますた

471 名前:Name_Not_Found 投稿日:2006/11/15(水) 23:04:57 ID:1zeY9G6T
質問です。
コンストラクタ内の「this.getMonth()+1」が「101」と連結になってしまう
のですが、どうすれば加算になりますか。「Number(this.getMonth())+1」とか
でもだめでどうやってもうまく行かないです。

472 名前:Name_Not_Found 投稿日:2006/11/15(水) 23:13:35 ID:???
ソース書けと。

473 名前:Name_Not_Found 投稿日:2006/11/15(水) 23:17:48 ID:???
個人的にJavaScriptの+演算子が文字列連結の機能を持ってしまっているのは
言語設計上のミスなんじゃないかと思うわけだが。

>>471 parseIntでぐぐれ

474 名前:Name_Not_Found 投稿日:2006/11/15(水) 23:37:20 ID:???
>>471
Number()やっても駄目というのはげせないね。ソース貼ってみ。
>>473
Number()やって駄目ならparseInt()だって変わらんだろ?
変わるという目算があるのなら伺いたいところ。

475 名前:Name_Not_Found 投稿日:2006/11/16(木) 01:30:20 ID:???
文字列+this.getMonth()+1 とかやってるんじゃないかと

476 名前:Name_Not_Found 投稿日:2006/11/16(木) 01:43:38 ID:???
(this.getMonth()+1) で普通はおkだと思いますが、
もしgetMonthが自作メソッドならそっちの問題かも知れませんね。

477 名前:Name_Not_Found 投稿日:2006/11/16(木) 10:19:13 ID:???
this.getMonth()-0+1
これだ

478 名前:Name_Not_Found 投稿日:2006/11/16(木) 10:32:35 ID:???
>>477
なるほど。意図がわかりづらいがなるほど。趣味のソースで今度使おう

479 名前:Name_Not_Found 投稿日:2006/11/16(木) 11:28:45 ID:???
>>趣味のソースで今度使おう
プププ

480 名前:Name_Not_Found 投稿日:2006/11/16(木) 15:04:42 ID:???
来週11月23日(木) 趣味のソース会 開催
  〜晩秋の採れ立て素材で旬を味わおう〜

481 名前:Name_Not_Found 投稿日:2006/11/17(金) 09:32:21 ID:n96t71hZ
初歩的なことですいません。
function f(){}
からfを取り出すにはどうかけばよいのでしょうか。

482 名前:Name_Not_Found 投稿日:2006/11/17(金) 10:14:20 ID:???
f取り出すと何が起こるの?

483 名前:Name_Not_Found 投稿日:2006/11/17(金) 10:16:19 ID:???
unction (){}

484 名前:Name_Not_Found 投稿日:2006/11/17(金) 11:52:39 ID:1+UyILB0
pop関数アルゴリズムを考えると、どうしても配列のlengthに値を代入し
なければなりませんよね。しかし、それはreadonlyなので、そこでアル
ゴリズムが止まってしまいます。ブラックボックスの中はどうなってい
るのでしょうか。ご教示ください。

485 名前:Name_Not_Found 投稿日:2006/11/17(金) 12:09:45 ID:???
>>483
ちがう



f f

486 名前:Name_Not_Found 投稿日:2006/11/17(金) 12:32:57 ID:???
>>481
高度すぎてわかりません
>>484
それJavaScriptの質問なの?
function pop() {
[native code]
}


487 名前:Name_Not_Found 投稿日:2006/11/17(金) 12:37:13 ID:???
>>484
ってlengthはreadonlyではないんだけど。
>>481
toString()で文字列にしてfunctionの次にある名前を取り出せば?

488 名前:Name_Not_Found 投稿日:2006/11/17(金) 12:37:59 ID:???
ちなみに配列のlengthはreadonly属性がついていない
ついているのは文字列

489 名前:Name_Not_Found 投稿日:2006/11/17(金) 14:15:25 ID:???
>>481 >>484
目的を教えてくれんと返答のしようがないよ。

490 名前:Name_Not_Found 投稿日:2006/11/17(金) 18:20:33 ID:???
>>487
こういうこと?

var f_str = (f+'').replace(/^functions+([^(]+)[x00-xff]+/,'$1');

491 名前:Name_Not_Found 投稿日:2006/11/17(金) 18:59:52 ID:???
function Class1() { this.a = 1; }
function Class2() { this.a = 2; }
Class2.prototype = new Class1();
var test = new Class1();

この時、Class1のaを3にしたい場合は
test.prototype.a = 3;
で良いのでしょうか?

492 名前:Name_Not_Found 投稿日:2006/11/17(金) 19:01:17 ID:???
491はミスです。全文書き直させてください

function Class1() { this.a = 1; }
function Class2() { this.a = 2; }
Class2.prototype = new Class1();
var test = new Class2();

この時、Class2のprototypeに設定されているClass1インスタンスのaを3にしたい場合は
test.prototype.a = 3;
で良いのでしょうか?

493 名前:Name_Not_Found 投稿日:2006/11/17(金) 19:15:28 ID:???
>>492
test.constructor.prototype.a = 3; かな。

494 名前:Name_Not_Found 投稿日:2006/11/17(金) 19:19:08 ID:vIQbSHCH
function Class1() { this.a = 1; }
function Class2() { this.a = 2; }
Class2.prototype = new Class1();
var test = new Class2();

Class2.prototype.a = 3;

かな?
インスタンス側に.prototypeは無い・・・と思います。


495 名前:Name_Not_Found 投稿日:2006/11/17(金) 19:21:20 ID:vIQbSHCH
>>493

testのconstructorはClass1になってるんじゃないかな?

496 名前:Name_Not_Found 投稿日:2006/11/17(金) 20:18:44 ID:???
>>492
でも無事に Class2のprototypeに設定されているClass1インスタンスのaを3に にしても
その内容ではどこにも影響を及ぼさないと思いますよ。

497 名前:Name_Not_Found 投稿日:2006/11/17(金) 20:38:34 ID:???
>>496
あ?アホかお前?知識無いのにレスするなよ。
新しいClass2を作ったら影響するに決まってんだろクズ

498 名前:Name_Not_Found 投稿日:2006/11/17(金) 20:49:05 ID:???
>>497
しないってw

499 名前:Name_Not_Found 投稿日:2006/11/17(金) 20:58:28 ID:???
>>491-498
結局prototypeのaをぶじ変更してもClass2()のコンストラクタで
aを書き換えてしまうからね。名前が違えばちゃんと影響が見えるが。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
function Class1() { this.a = 1; }
function Class2() { this.a = 2; }
Class2.prototype = new Class1();
var test = new Class2();
test.constructor.prototype.a = 3;
test.constructor.prototype.b = 4;
var test1 = new Class2();
document.writeln('a = ' + test1.a + ', b = ' + test1.b); // 2と4を表示
</script></pre>
</body></html>


500 名前:Name_Not_Found 投稿日:2006/11/17(金) 23:37:34 ID:LQk52tt8
質問です。
javascriptをMAC版のIEだけ読み込ませない方法はありますか?
よろしくお願いします。

501 名前:Name_Not_Found 投稿日:2006/11/17(金) 23:39:04 ID:???
普通のブラウザ判別でしょ。検索したら。

502 名前:Name_Not_Found 投稿日:2006/11/18(土) 00:05:13 ID:???
>>484
function POP()
{
var pp = this[--this.length];
return pp;
}
でいいのじゃないか?

503 名前:Name_Not_Found 投稿日:2006/11/18(土) 00:44:30 ID:???
>>502 それはマズいでしょ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
var a = [1,2,3,4,5];
a.pop = function() { var pp = this[--this.length]; return pp; }
document.writeln('[' + a.pop() + ']');
</script></pre>
</body></html>

504 名前:Name_Not_Found 投稿日:2006/11/18(土) 01:21:10 ID:???
質問者がみんな音信不通な件について

505 名前:Name_Not_Found 投稿日:2006/11/18(土) 08:42:49 ID:???
指定したい時間だけまってくれるようなプログラムを教えてください。

勝手な想像

Wait(30)

ってやると30秒たつまで何もできないような感じで
よろしくお願いします

506 名前:Name_Not_Found 投稿日:2006/11/18(土) 10:08:30 ID:???
>>505
JavaScriptにはそれは存在しません。30秒後以降にやりたい
動作を別の関数にしてsetTimeout()で登録すれ。そのように
コードを直せない奴はJavaScriptプログラミングをしてはいけない。

507 名前:Name_Not_Found 投稿日:2006/11/18(土) 10:37:30 ID:???
リンクをクリックして背景色や背景画像を閲覧者が変更できるようにしたいのですが、
AAA
BCD
EEE
というテーブル内で、D内にあるリンクを押すとCの背景が、
B内にあるリンクを押すとテーブル全体の背景が変更できるようにしたいのです。

同セル内にあるリンクで同セル内の背景変更などのスクリプトは
検索してあったので分かるのですが、
指定した範囲のみを変更するってことはできるのでしょうか。

508 名前:Name_Not_Found 投稿日:2006/11/18(土) 10:42:50 ID:???
>>507
テーブルだろうがセルだろうが、「要素」 なのはかわらんわけで、
idつけて要素を特定してやればいいだけでしょ。
わざわざテーブルとかで検索するからややこしくなる。DIVのスタイル変更もTABLEのスタイル変更も一緒。

509 名前:Name_Not_Found 投稿日:2006/11/18(土) 11:03:42 ID:hgxLMoRd
質問です。
Arr=[1,2,3,4,5]という配列を出力するときに通常だと、
1,2,3,4,5
ですが、これを各要素ごとに改行させて
1
2
3
4
5
としたいのですが、Arrにどういう変更を加えたらいいのでしょうか。
よろしくお願いします。

510 名前:509 投稿日:2006/11/18(土) 11:07:38 ID:hgxLMoRd
自己努力により解決してしまいました。
スレ汚しすいません。

511 名前:Name_Not_Found 投稿日:2006/11/18(土) 12:37:10 ID:???
>>507
セル再現して書くのめんどい。
テーブルのサンプル貼れば
それを暇人が勝手に改造してくれるよ。たぶん


512 名前:Name_Not_Found 投稿日:2006/11/18(土) 13:12:04 ID:???
>>507
function getCellBefore(cell) {
  var i = cell.cellIndex - 1;
  return i == -1 ? null : cell.parentNode.cells.item(i);
}
function getAncestorTableOf(node) {
  var TABLE_TAG_NAME;
  if (node) {
    TABLE_TAG_NAME =
      node.ownerDocument.documentElement.tagName == 'HTML'
        ? 'TABLE' : 'table';
    while (node.nodeName != TABLE_TAG_NAME) {
      if (!(node = node.parentNode)) {
        return null;
      }
    }
    return node;
  }
  return null;
}

513 名前:Name_Not_Found 投稿日:2006/11/18(土) 13:14:03 ID:???
>>508さん>>511さんレスありがとうございます。
以下をやってみたのですが動きません。

head内に
<script type="text/javascript">
<!--
function bgc01(#000000){
document.getElementById("lf").bgColor=#000000;
}
//-->
</script>を、
背景を変更したい<table>内にid="lf"を、
>>507のD内の変更を実行するリンク<a>に
href="#" onClick="javascript:bgc01(#000000);"を書きました。
良ければどなたか添削していただけないでしょうか…

514 名前:507 投稿日:2006/11/18(土) 13:38:11 ID:???
>>513名前入れ忘れました>>507です
>>512さんありがとうございます
正直自分のレベルだと何が何だかよく分からないのですが
>>512さんのタグを元に検索してまた勉強してこようと思います
せっかく書いて頂いたのにすみません…
スレ汚し失礼しました

515 名前:Name_Not_Found 投稿日:2006/11/18(土) 13:43:00 ID:???
>>512
わざと難しく書くなよw

>>513
512のスクリプトをheadに置いて、

テーブル全体の場合
<td onclick="getAncestorTableOf(this).style.backgroundImage='url(画像.jpg)'">

左のセルの場合
<td onclick="getCellBefore(this).style.backgroundImage='url(画像.jpg)'">

こんな感じに使えるよ。

516 名前:Name_Not_Found 投稿日:2006/11/18(土) 13:58:19 ID:???
>>513
<html>
<head>
<script type="text/javascript">
<!--
function bgc01(id,color){
document.getElementById(id).style.backgroundColor=color;
}
//-->
</script>
</head>
<body>
<table id="lf">
<tr><td>A</td><td>A</td><td>A</td></tr>
<tr><td><a href="javascript:bgc01('lf','#FF0000')">B</a></td>
<td id="lf2">C</td>
<td><a href="javascript:bgc01('lf2','#0000FF')">D</a></td></tr>
<tr><td>E</td><td>E</td><td>E</td></tr>
</table>
</body>
</html>

517 名前:Name_Not_Found 投稿日:2006/11/18(土) 18:58:26 ID:7bXBMwc3
prototypeはプロパティですかorオブジェクトですか?

518 名前:Name_Not_Found 投稿日:2006/11/18(土) 19:02:27 ID:???
なぜorで結ぶ

519 名前:Name_Not_Found 投稿日:2006/11/18(土) 19:06:37 ID:INXyAdGj
javaでポップアップメニューを出したのですが、
body部分の表のしたに隠れてしまってみえないのです。
どうすれば、表の上にポップアップが来るのか教えてください

520 名前:Name_Not_Found 投稿日:2006/11/18(土) 19:11:26 ID:???
志村!スレタイ!スレタイ!

521 名前:Name_Not_Found 投稿日:2006/11/18(土) 19:13:04 ID:???
div z-index 1

522 名前:Name_Not_Found 投稿日:2006/11/18(土) 20:32:34 ID:???
>>518
Is prototype a property _or_ an object?

523 名前:507 投稿日:2006/11/19(日) 05:09:57 ID:???
>>516さんが書いて頂いた通りにしたところ無事動きました!
画像変更や他のやりたいことも時間掛かりましたができるようになりました。
>>515さんも有難うございます。参考にさせて頂きました。

JavaScript苦手だったんですけど検索中に良いサイトがたくさん見つかったので
もう少し勉強してみようと思います。皆さんありがとうございました。

524 名前:Name_Not_Found 投稿日:2006/11/19(日) 13:15:10 ID:lBivMJf2
Formの要素の何かに対して操作をするFormのプロトタイプを
作ろうとしているのですがうまくいきません。

例えばFormのnameを設定するfunctionを次のように書いてみました。
setNameでformの名前を設定させ、alertでセットした名前を確認する動きをさせたいものです。
うまく動かない原因を教えていただけないでしょうか。

Form.prototype.setName = function(val) {
this.name = val;
}
function test() {
var f = document.forms[0];
f.setName("aaa");
alert(f.name);
}


525 名前:Name_Not_Found 投稿日:2006/11/19(日) 13:28:18 ID:???
>>497-498

ちょっと噴いた

526 名前:Name_Not_Found 投稿日:2006/11/19(日) 14:02:36 ID:???
>>524
Formがコンストラクタじゃないからじゃね?
常識的に考えて…

527 名前:524 投稿日:2006/11/19(日) 14:10:15 ID:lBivMJf2
>>526
そうだったのですか。
勉強不足でした。出直してきます。

528 名前:Name_Not_Found 投稿日:2006/11/19(日) 15:00:32 ID:???
ならこうしてしまえばどうよ
function Form(){/*.......*/}
Form.prototype.setName = function(val) {
this.name = val;
}

529 名前:Name_Not_Found 投稿日:2006/11/19(日) 17:10:40 ID:???
質問です。
画像をアップロードする掲示板CGIで、
投稿ボタンを押したときに通常の投稿動作に加え、
別の掲示板CGIにも同一の内容を投稿したい(POSTで同一のフォーム内容を送信、ポップアップ等でも可)のですが、
このようなことは可能でしょうか
もし可能なようでしたらヒントいただけると嬉しいです。

530 名前:Name_Not_Found 投稿日:2006/11/19(日) 17:25:18 ID:???
>>529
xmlhttp

531 名前:Name_Not_Found 投稿日:2006/11/19(日) 17:53:14 ID:???
>>524
HTMLFormElement.prototype.setName = function(val) {
this.name = val;
}
IEはDOM系のクラスオブジェクト組み込まれてないから無理だよ

>>528
form要素のオブジェクトが確実にその>>528のつくったやつの子孫ならいいけどねえ

532 名前:531 投稿日:2006/11/19(日) 18:03:16 ID:???
クラス「っぽい」オブジェクトってつけるの忘れた

533 名前:Name_Not_Found 投稿日:2006/11/19(日) 19:30:08 ID:???
>>529
サーバ側でその別の掲示板にpostし直すようにしたほうが簡単かと。


534 名前:529 投稿日:2006/11/19(日) 20:04:32 ID:???
レスありがとうございます
サーバー側からですと
ユーザーのほうでポップアップさせることが出来ないので
そちらも含めて方法を考えております
何か方法ありましたらよろしくお願いいたします。

535 名前:Name_Not_Found 投稿日:2006/11/20(月) 02:01:09 ID:???
どーでもいいが、NN4とNN3の場合、Formオブジェクトも、Form.prototypeも、存在する。
しかし、nameプロパティ(HTMLのNAME属性)を変更できない。

ついでに、どーでもいいが、NN4とNN3の場合、Inputオブジェクトも、Input.prototypeも、存在する。
nameプロパティ(HTMLのNAME属性)を変更できる。

他にも、衝突させそうな名前として、Urlオブジェクトなんてのも思い浮かぶ。
まあ、NN4以前の話だから、どーでもいいがな。

536 名前:Name_Not_Found 投稿日:2006/11/20(月) 03:36:21 ID:???
へえ〜へえ〜

537 名前:Name_Not_Found 投稿日:2006/11/20(月) 04:28:58 ID:???
あれ、IEでは name 値って変更できなくなかったっけ?

538 名前:Name_Not_Found 投稿日:2006/11/20(月) 04:32:36 ID:???
>>534
テキトーにいうけど、
onsubmit で フォームの action と target を一時的に変更して submit() して、action と target 戻して普通に送信すればいくんじゃね?

539 名前:Name_Not_Found 投稿日:2006/11/20(月) 08:45:12 ID:???
>>538
submitした結果が戻って来て別のページに遷移してしまうと現在の
ページのスクリプトはそこであぼーんになるから、それを避ける方法
まで含めて考えれ。

540 名前:Name_Not_Found 投稿日:2006/11/20(月) 09:40:20 ID:???
>>539
ごめん、何言ってるか解らない。

541 名前:Name_Not_Found 投稿日:2006/11/20(月) 09:47:53 ID:???
フォーム送信するとページが切り替わるでしょ。見た目が今
いるページと同じだとしてもさ。それを避けるにはiframeの
中とか別窓から送信するとか、targetでそれらを指定とか。
まあ別に洩れが作るわけじゃないから判らないならそれでいいよ。
忘れてくれ。

542 名前:Name_Not_Found 投稿日:2006/11/20(月) 09:48:04 ID:???
539ではないが、スクリプトはページが切り替わるとメモリから削除されて
しまうのでもう呼び出せないということだ。

543 名前:Name_Not_Found 投稿日:2006/11/20(月) 11:05:24 ID:???
「すごいサイト」を教えて下さい
お願いします

544 名前:Name_Not_Found 投稿日:2006/11/20(月) 11:09:40 ID:???
ttp://www.aiseikai.or.jp/

545 名前:Name_Not_Found 投稿日:2006/11/20(月) 11:15:56 ID:???
>>544
それは頻出なんで他のを

546 名前:Name_Not_Found 投稿日:2006/11/20(月) 11:21:44 ID:EkzDVg3W
テーブルのTRをrowspan="2"にして反映させたいのですが、

やっている事はTDの中身が<の時に<のTDエレメントを潰してrowspanをかけることです。
setAttributeもrowSpan=2もouterHTMLをアラートすると確かに書き加えられているのですが
画面に反映しません。

document.getElementsByClassName("maintablecolor2").each(function(e){
if(e.innerHTML && e.innerHTML.match("<")) {
mark=e;
target=e.parentElement.previousSibling;
}});
target.rowSpan=2;
mark.parentElement.removeChild(mark);

<table border="0" cellspacing="1" cellpadding="5" class="maintableborder">
<tr valign=top align=left>
<td style="" class="maintablecolor2">テキスト1</td>
<td style="" class="maintablecolor2">テキスト2</td>
</tr><tr valign=top align=left>
<td style="" class="maintablecolor2"><</td>
<td style="" class="maintablecolor2">テキスト3</td>
</tr></table>

1回新しくTRエレメントを作って現存のTRの書かれてる属性をどうにか取得してrowspanと一緒にsetAttriubuteし直して
(それかtr rowspan="2"というエレメントを作るか)子ノードのクローンをつけて、親ノードに付け直すしかないのでしょうか?
スマートなやり方があれば教えて下さい。

547 名前:Name_Not_Found 投稿日:2006/11/20(月) 11:41:06 ID:???
>>546
そもそもtr要素にrowspan属性など存在しない。
大体getElementsByClassNameとかeachとかは何だ。
もしPrototype.jsとかを使ってるんだったらその旨ちゃんと書け。
あとparentElementはIE専だぞ。

548 名前:Name_Not_Found 投稿日:2006/11/20(月) 11:49:05 ID:???
>>546 td要素のrowSpanの書き換えはちゃんと動作するよ(IE,Gecko)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<table border="2" summary="test"><tbody>
<tr><td onclick="this.rowSpan=2">X</td><td onclick="this.rowSpan=2">X</td></tr>
<tr><td onclick="this.rowSpan=2">X</td><td onclick="this.rowSpan=2">X</td></tr>
<tr><td onclick="this.rowSpan=2">X</td><td onclick="this.rowSpan=2">X</td></tr>
</tbody></table>
</body></html>
だからアンタは他のところで失敗してるわけ。ちゃんと問題を
切り分けて追求しろって。

549 名前:Name_Not_Found 投稿日:2006/11/20(月) 11:50:52 ID:???
>>541-542
ん、だから、onsubmit されたときに、

form.target = "_blank";
form.action = "second.cgi";
form.submit();

form.target = "_self";
form.action = "first.cgi";
form.submit();

return false;

とかやればいく気がしね? って >>538 で言ったんだけど。
なんで別のページに遷移して戻ってきたときのことのメモリのことまで考えなければいけないのかワカンネ (´・ω・`)

550 名前:Name_Not_Found 投稿日:2006/11/20(月) 12:10:24 ID:???
>>549
1回目に送信したらしたらよそのページへ行ってしまって
続きが実行されない。「戻って」なんて来られない。
やってみれば分かるだろ。

onsubmitの中にsubmit()入れるとかいうヘンな技はさておいて。

551 名前:Name_Not_Found 投稿日:2006/11/20(月) 12:37:09 ID:???
test

552 名前:Name_Not_Found 投稿日:2006/11/20(月) 12:38:26 ID:???
<form>><input>... のあたりで、
入力欄に何か入力されたら、それをイベントとして捕らえるのは、
どうやってしましょうか?
<input oninput="func_handler(this.form)">
見たいな事がやりたいわけですが、誰か教えていただければ。


553 名前:Name_Not_Found 投稿日:2006/11/20(月) 13:26:32 ID:???
>>550
当たり前のこと言ってもなあ。

>>552
onchange とか onkeydown とか?

554 名前:Name_Not_Found 投稿日:2006/11/20(月) 13:31:28 ID:???
>>552-553
onkeyupが吉という説もある。

555 名前:Name_Not_Found 投稿日:2006/11/20(月) 13:34:19 ID:???
>>554
あぁ、そうだね。

556 名前:Name_Not_Found 投稿日:2006/11/20(月) 15:15:20 ID:???
>>552
onchange のことかな。
でもこれはフォーカス外れないと起きないよ。

557 名前:Name_Not_Found 投稿日:2006/11/20(月) 15:16:06 ID:???
あれ、ごめん。
リロードしたつもりだったけど、できてなかった。


558 名前:Name_Not_Found 投稿日:2006/11/20(月) 15:20:00 ID:???
チームで作ってる他人の関数名を拾って、削除したり追加したりしたいのですが…
追加削除に関しては、prototype.jsで出来る事が判明したのですが、関数名を指定しないといけない…
functionの関数名をどうにか拾えないものでしょうか?

559 名前:Name_Not_Found 投稿日:2006/11/20(月) 15:21:03 ID:UzUK8x4v
質問です。
次のコードで文字補充を試みたのですが、thisに割り当て
られませんと叱られます。どこがいけないのでしょうか。
String.prototype.add=function(n) {
for(i=0; i<n; i++){
this += 'a';
}
return this;
}
alert('x'.add(3));

560 名前:Name_Not_Found 投稿日:2006/11/20(月) 15:25:48 ID:???
>>559
thisを変数にすればいいんじゃね
普通に動くようになる気がするが、違うんだ?

561 名前:588 投稿日:2006/11/20(月) 15:45:26 ID:???
少しだけ前進…
Fxでは最高の結果だが… IE6は駄目過ぎ;;
ブラウザの違いは、いつも泣きそう;;

<script>
function hogehoge(){
var func_name = document.getElementById('hoge').getAttribute('onclick');
alert (func_name);
}
</script>
<input type="button" id="hoge" value="IEとFxの違いがあるような無いようなw" onclick="hogehoge()">

562 名前:Name_Not_Found 投稿日:2006/11/20(月) 15:48:21 ID:???
>>558
それって必要あるの?

563 名前:588 投稿日:2006/11/20(月) 15:55:37 ID:???
権限系の一括モジュールなんすよ。追加削除は、必須らしいんで…
>>562
もし知っていたら、本当によろしくお願いします;;;;

564 名前:Name_Not_Found 投稿日:2006/11/20(月) 16:17:15 ID:???
>>559

String.prototype.add=function(n) {
var r = this;
for(i=0; i<n; i++){
r += 'a';
}
return r;
}

こんな感じでよろしくおねがいします。

565 名前:Name_Not_Found 投稿日:2006/11/20(月) 16:24:36 ID:???
iにもvar付けろよ

566 名前:Name_Not_Found 投稿日:2006/11/20(月) 16:26:04 ID:???
>>559
それってどう動作して欲しいわけさ。まさかこれを実行した
後はプログラム中の 'x' と書いてあるところが全部 'xaaaaaa'
と書いてあるかのように動作して欲しいっていうわけ?
そんなことできるわけがない。質問を分かる日本語でちゃんと書け。

567 名前:559 投稿日:2006/11/20(月) 16:30:02 ID:???
>>560さん,>>564さん
うまく行きました。多謝。

568 名前:546 投稿日:2006/11/20(月) 17:55:02 ID:???
>>547-548
Oops久々だったんでそんなチョンボとはorz...

target=e.parentNode.previousSibling.firstChild;
でOK?

あと必ずしも先頭に"<"があるわけじゃないので、"<"が親エレメントの何番目にあるか保持したいのですが
var cnt=0;
while(e.previousSibling){e=e.previousSibling;cnt++;}
とかでOK?ほか何かDOMのメソッドとかあります?

569 名前:Name_Not_Found 投稿日:2006/11/20(月) 18:05:36 ID:???
>>568
Geckoとかは終了タグと開始タグの間の改行とかも
テキストノードとして保存するんで、テーブルを使うのなら
cellIndex、rowIndex、cells、rowsあたりを使ったほうが確実。


570 名前:Name_Not_Found 投稿日:2006/11/20(月) 19:01:59 ID:???
こういうふうに元のArrayクラスをオーバーライドするんでなく
MyArrayみたいに独自のArrayクラスを作ってこれにArrayクラスを継承させるにはどう書いたらいいのですか?

<script>
Array.prototype.even_join = function(){
var str = '';
for(var i=0; i<this.length; i+=2){
str += this[i];
}

return str;
}
Array.prototype.odd_join = function(){
var str = '';
for(var i=1; i<this.length; i+=2){
str += this[i];
}

return str;
}
var x = ['チ','ク','ン','ラ','コ','ラ'];
document.write(x.odd_join(),'がたった!<br>');
document.write(x.even_join(),'がたった!<br>');
</script>

571 名前:Name_Not_Found 投稿日:2006/11/20(月) 19:07:10 ID:???
>>570
普通にAを継承したクラスBを作るのと同じ。
function B(){}
B.prototype = new A;
BがMyArray、AがArrayになるだけ。
ただしlengthプロパティやtoStringの扱いには気をつけろ。

572 名前:Name_Not_Found 投稿日:2006/11/20(月) 19:26:15 ID:???
>>571
レスありがとうございます。
コストラクタはどのように書けばいいのでしょうか?

573 名前:Name_Not_Found 投稿日:2006/11/20(月) 19:44:24 ID:???
もしかしてArrayとStringみたいなネイティブクラスって継承してもメソッドはthis自体を操作するようになっているから
自分でプロパティを操作するように再実装しないといけないんですかね?

574 名前:Name_Not_Found 投稿日:2006/11/20(月) 20:09:37 ID:???
>>571
>ただしlengthプロパティやtoStringの扱いには気をつけろ。

この意味がやっとわかりますた。
コンストラクタで要素をセットするときに自分でlenngthメッソドをインクリメントしなきゃいけなかったわけですね。
なんてこったい...orz

575 名前:Name_Not_Found 投稿日:2006/11/20(月) 20:12:29 ID:???
>>570 >>572-574は全部私です、お騒がせしますた。

576 名前:Name_Not_Found 投稿日:2006/11/21(火) 09:14:39 ID:???
ちと教えてください。
JavaScriptは型変換がないとのことですが、たとえば、
String.prototype.met=function(){
return this.replace(/,/g, '-');}
var n=[1,2,3,4,5];
だと、n.met()はunsupported objectエラーになります。
こんなときはどう書けばいいんでしょうか。

577 名前:Name_Not_Found 投稿日:2006/11/21(火) 09:33:17 ID:???
>>576
どこでそんなでたらめを習ったんだ。
JavaScriptには型も型変換も存在するぞ。
変数が型に縛られていないだけだ。
それからそのコード、Stringに設定した
メソッドをArrayが使えるわけないだろ。

578 名前:Name_Not_Found 投稿日:2006/11/21(火) 09:42:27 ID:???
>>576
標準オブジェクトのprototypeに変な関数を設定しないでください><

579 名前:Name_Not_Found 投稿日:2006/11/21(火) 09:48:52 ID:???
>>578
くだらねえ。困るのは歴3日くらいの超初心者だけだろ。


>>576
n.toString().met();// 1-2-3
String(n).met();// 1-2-3

しかし、慎重な人はこう書く。
String.prototype.met = function () {
  return String.prototype.replace.call(this, /,/g, '-');
}
String.prototype.met.call(n);// 1-2-3

580 名前:Name_Not_Found 投稿日:2006/11/21(火) 09:50:30 ID:???
>>579
お前が初心者だということはよくわかった

581 名前:Name_Not_Found 投稿日:2006/11/21(火) 10:41:49 ID:???
慎重な人ワロタ

582 名前:576 投稿日:2006/11/21(火) 11:51:35 ID:???
>>577,>>579
thx. なるほど。
JavaScriptって最も誤解されている言語どころか、うそとデマだ
らけの言語だということがわかりました。Oreilly買うべきかな。

583 名前:Name_Not_Found 投稿日:2006/11/21(火) 12:24:37 ID:???
慎重とかそういう問題じゃなくて、
同時に読み込まれる他のプログラムに影響を与えるのが問題だけどな
C言語で #define printf puts とかされるのと同じ

この話題は過去レスにも沢山出ているが、
hasOwnPropertyが動かないブラウザがある以上拡張すべきではない気がする

584 名前:Name_Not_Found 投稿日:2006/11/21(火) 12:48:00 ID:qH3ppM+r
スクリプトを途中で終了させたいのですが

if (str == "") exit(); //空ならここで終了
以下blabla..

のような事がしたいのですがどのようにすればいいでしょう?

やはり if (str != "") で { }.でくくるしかないでしょうか?


585 名前:Name_Not_Found 投稿日:2006/11/21(火) 13:24:34 ID:???
>>584
関数化してreturnしる!

586 名前:Name_Not_Found 投稿日:2006/11/21(火) 13:43:28 ID:???
(function() {
...
if(str == "") return;
...
})();
みたいな感じかね

587 名前:Name_Not_Found 投稿日:2006/11/21(火) 14:00:48 ID:???
>>582
ネスケのリファレンスとガイド読めば、書いてあるんだけどさ…。
…… 誰も、読みやしねー ……

588 名前:Name_Not_Found 投稿日:2006/11/21(火) 14:02:26 ID:???
エラー出せば止まるお

589 名前:Name_Not_Found 投稿日:2006/11/21(火) 15:28:53 ID:???
【閑話休題】
IsArray()はいかにもキモイ書き方だ。isArray()としてほしい。

590 名前:Name_Not_Found 投稿日:2006/11/21(火) 15:54:07 ID:???
閑話休題って、無駄話を止めて、本題に戻ります。って意味だって知ってた?

591 名前:584 投稿日:2006/11/21(火) 16:17:36 ID:???
>585-586
d
やっぱそういう方法になるかぁ
おとなしくおっぱいカッコ使っときます

592 名前:Name_Not_Found 投稿日:2006/11/21(火) 16:50:13 ID:???
質問させてください。
下記のようにして
CGIの出力を定期的に表示するスクリプトを組んだのですが
最初の一回以降httpObj.responseTextの内容が更新されません
(counter.cgiに直接アクセスしてカウントアップしても数値に変化無し)
どのようにすれば解決できるでしょうか
おねがいします

function loadHTTP(){
 $("view").innerHTML = httpObj.responseText;
 httpObj = createXMLHttpRequest(displayData);
 httpObj.open("GET",counter.cgi,true);
 httpObj.send(null);
 setTimeout("loadHTTP()", 5000);}

593 名前:592 投稿日:2006/11/21(火) 18:22:12 ID:???
自己レスです
うまく省略したつもりがいろいろ足りてなかったことに気付いたので
訂正させてください
下記が正しいプログラムです
改めて、分かるかたいらっしゃいましたらよろしくお願いいたします

function loadHTMLFile()
{ httpObj = createXMLHttpRequest(displayData);
 httpObj.open("GET",'counter.cgi',true);
 httpObj.send(null);
 setTimeout("loadHTMLFile()", 5000);}

function displayData()
{ $("result").innerHTML = httpObj.responseText; }

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

594 名前:Name_Not_Found 投稿日:2006/11/21(火) 19:18:49 ID:???
>>593
function displayData() {
if(httpObj.readyState==4&&httpObj.status==200)$("result").innerHTML = httpObj.responseText;
}


595 名前:10 投稿日:2006/11/21(火) 20:24:24 ID:???
以前、野球のJavaScriptを公開したものです
あれからさらに改造したのですが以下の2点がうまくいきません
誰かご教授をお願いします

http://antiasterisk.neconet.net:40080/up/upload.cgi?mode=dl&file=2517
key=saito2

・スローボールを追加したのですがタイミングがよくわかりません
 前スレ>>974さんが改造してくれたものをさらに改造しているので・・・
ソースの300行あたりの値を変更すればいいと思いますがよくわかりません^^;

・IEだと左上の文字が黒ぬき黄色で表示されるのですがFirfoxだと
 全部黒になってしまいます。どうすればいいでしょうか?
 17、21,25行目です

よろしくお願いいたします

596 名前:Name_Not_Found 投稿日:2006/11/21(火) 21:29:42 ID:???
教授は禁句。回答意欲の低下を招くことも考えられます。

597 名前:Name_Not_Found 投稿日:2006/11/21(火) 21:35:45 ID:???
教授に過剰反応しすぎだろ毎回毎回w

598 名前:592 投稿日:2006/11/21(火) 22:02:56 ID:???
>594
レスありがとうございました
元々そのように記述しておりましたが
検証のため外しておりました。
そのとおりの記述に変更してみましたが結果は変わりませんでした。

カウンターCGIではなくhtmlファイルを読み込む場合に
実行中、ftpから該当のhtmlファイルを消去してみたところ
変化無く処理が続きました。
また、ループの検証のために時計と交互に表示するように改変しましたが、
きちんとループしておりました。
引き続き解決方法わかるかた居ましたらおねがいいたします。

599 名前:Name_Not_Found 投稿日:2006/11/21(火) 22:08:49 ID:???
女教授ください。

600 名前:Name_Not_Found 投稿日:2006/11/21(火) 22:19:56 ID:???
ご教示ひとつくださーい

601 名前:Name_Not_Found 投稿日:2006/11/21(火) 22:46:37 ID:???
ご凶事ください

602 名前:Name_Not_Found 投稿日:2006/11/21(火) 23:40:27 ID:???
>>598
Firefoxを入れる。
ttp://www.mozilla-japan.org/

FireBug extention を入れる。
ttps://addons.mozilla.org/firefox/1843/

右下のステータスバーにある、緑のチェックマーク、若しくは、エラー表示をクリックして、Firebug を表示する。
Option を変更して、Show XMLHttpRequests を有効にする。
Console を表示させる。

Respons と Headers を見てみる。

結果、ここで同じ様な質問をしなくて済むようになる。めでたし。

(Header がおかしいんじゃねーの?)

603 名前:Name_Not_Found 投稿日:2006/11/21(火) 23:42:52 ID:???
女講師ください

604 名前:Name_Not_Found 投稿日:2006/11/22(水) 00:06:40 ID:???
>>598
間にproxyが挟まってる場合とかキャッシュされちゃって同じのが帰って
きたりすることがある。
リクエストに乱数のダミー変数とかをつけて見るとかしてみたらどうかな?


605 名前:Name_Not_Found 投稿日:2006/11/22(水) 00:22:32 ID:???
>>604
いや、普通にブラウザがキャッシュ使うから、header でちゃんと指定してやんないと、変更が反映されない。
ブラウザによって挙動が違ったりするから、自前で指定してやんないとはまる事がある。

606 名前:Name_Not_Found 投稿日:2006/11/22(水) 00:31:50 ID:???
>>584
do{
hogehoge;
if(hoge)break;
babibabi;
}
while(false)

607 名前:Name_Not_Found 投稿日:2006/11/22(水) 02:28:53 ID:VDmUjIsh
リストボックスで、複数の半角数字を入力してリストを選択する方法を教えて下さい。
下記のようなリストの場合、「12345」または「123」を押すと(その後にEnterキーがあってもいい)
「12345」が選択されるようなイメージです。

<select>
<option>12345</option>
<option>13579</option>
<option>23456</option>
<option>24680</option>
<option>99999</option>
</select>

下記のサイトでイメージに近いものがありましたが
マウスでリストの選択ができない、
キーを入力した後、マウスでブラウザをクリックしなければならない、
というところが違います。
http://okwave.jp/qa1492903.html

どうかよろしくお願い致します。

608 名前:Name_Not_Found 投稿日:2006/11/22(水) 03:37:57 ID:???
>>607
自分で書いたスクリプトは?

609 名前:Name_Not_Found 投稿日:2006/11/22(水) 04:19:31 ID:???
○投げなんでは?

禁断のエスパになってみるw
5桁だから5回キー叩いて失敗したらまた待ちか?
入力内容は過程を確認しながらか?
入力途中のキャンセルは要るのか?

ま、がんばって探せばあるかもなw


610 名前:592 投稿日:2006/11/22(水) 08:10:54 ID:???
レスを参考に
httpObj.open("GET",'counter.cgi',true);
httpObj.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1990 00:00:00 GMT");
httpObj.send(null);
上記のように変更したところ想定どおりの動作になりました。
レス頂いた方々、ありがとうございました。

611 名前:Name_Not_Found 投稿日:2006/11/22(水) 08:40:02 ID:???
あのさ、arguments.callee は使わないほうがいいの?

612 名前:Name_Not_Found 投稿日:2006/11/22(水) 08:59:28 ID:???
>>611
なんで?ECMAで規定されていて普通のブラウザでは実装済みだろ。
>>607 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var sel, a = new Array();
function init() {
sel = document.getElementById('s0');
for(var i = 0; i < sel.options.length; ++i) a.push(sel.options[i].value);
document.getElementById('t0').focus();
}
function chg(s) {
var n = -1; if(s == '') return;
for(var i = 0; i < a.length; ++i) { if(n < 0 && a[i].indexOf(s) == 0) n = i; }
if(n >= 0) sel.selectedIndex = n;
}
</script>
</head><body onload="init()">
<div><input id="t0" type="text" onkeyup="chg(this.value)"><br>
<select id="s0"><option>12345</option><option>13579</option>
<option>23456</option><option>24680</option><option>99999</option>
</select></div></body></html>

613 名前:Name_Not_Found 投稿日:2006/11/22(水) 10:11:48 ID:???
過去ログでどう検索して良いかわからなかったので質問させてください。
(「background」とかの単語では一通り検索してみました。)

CSSにbackgrund-positionやbackground-imageで指定している値を取得したいのですが、
setAttributeやstyle.〜では取れないのです。(タグのところでstyle指定してないから当たり前?)
やりたいことはその値を取得し、それを元にgetAttributeなどで再設定をしたいのですが、
良い方法はありますか?

614 名前:Name_Not_Found 投稿日:2006/11/22(水) 10:17:07 ID:???
なぜ過去ログが検索できてテンプレが読めない

615 名前:613 投稿日:2006/11/22(水) 10:43:24 ID:???
>>614
ごめんなさい。すっかりテンプレ目を通した気でいました。
> Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
> A10. IEではe.currentStyle、Geckoではwindow.getComputedStyle()を使います。
これと同じってことですよね?

調べたらmozillaで載っていました。FireBugで試してみたら何とかいけそうです。
なぜかbackground-positionが取れないけど、background-imageは取れたので。
http://www.mozilla-japan.org/docs/dom/domref/examples7.html

ありがとうございました。

616 名前:Name_Not_Found 投稿日:2006/11/22(水) 11:38:05 ID:???
>>612
a.push(sel.options[i].value);

IEだとここがだめっぽい

617 名前:Name_Not_Found 投稿日:2006/11/22(水) 13:34:43 ID:???
下の領域にイベントを伝播させる方法は?

たとえば、DIV A の上に重ねた形で DIV Bがある。
重ねる方法は position:absolute z-index ・・・みたいな感じ。
で、DIV A/B それぞれ、onmousemove/onmouseup/onclick ... と全部設定されている。
これ、DIV Bの上で、たとえば onmousemove しても、DIV Aではトラップできないんだよね。
DIV Bの領域外でかつ DIV Aの領域内の部分でならトラップできるんだけど・・・。
上に覆いかぶさった DIV Bにより見えなくなっている DIV Aの部分に対しても、
イベントを伝播させたいんだけど、どーするの?


618 名前:Name_Not_Found 投稿日:2006/11/22(水) 14:01:20 ID:???
>>616
げげっ! スマソ、 .innerHTML にでもしといて。
>>617
試してないけど DIV BをDIV Aの中に入れてイベントを
バブルさせたらどうかな。

619 名前:Name_Not_Found 投稿日:2006/11/22(水) 14:01:23 ID:???
>617
要素をネストしろ。スタイルシートは関係ない。

620 名前:617 投稿日:2006/11/22(水) 14:09:09 ID:???
>>618,619
それ考えたんだけど、ダメ。
というのは、617の説明じゃわかりにくかったけど、
ある種のゲームのようなものを作っている。

1、ドラッグして動かせるDIVが複数個ある。
2、ドラッグ中のDIVのDocument Orderは最優先(手前)になっている。
3、ドラッグされていないDIVは、上にほかのDIVがドラッグされていると、イベントが起こる。

イメージとしては、キャラが複数個浮いているウィンドウがあって、
あるキャラをほかのキャラの上にドラッグすると、
「踏み潰すな!ふんぎゃぁ!」とか鳴いたりする、って感じ。

・・・何が問題かというと、それぞれのキャラのDIVは対等な関係なので、
入れ子つくってバブリングすることはできない。
この場合、キャラの間に上下関係を作らないとだめでしょ。
ドラッグできる(手前に表示)のキャラと、できない(奥に表示)のキャラとか。


621 名前:Name_Not_Found 投稿日:2006/11/22(水) 14:10:30 ID:???
>>617
イベントのバブリングって、DOMツリーで、枝から幹の方向に伝達される。(順番変えられるけど…)
だから、兄弟関係にある枝には、伝わらない。

で、私は、自前でユーザーイベントツリーとバブリングやらを実装して、それ使ってる。

622 名前:621 投稿日:2006/11/22(水) 14:20:07 ID:???
>>620
最初にやったのは、親があって、それに全ての子を管理させる、つまり、子から親にネイティブのイベントバブルで伝えて、
親から全ての子へブロードキャスト。

なんか、いろいろやってる内に、これが複雑になったんで、DOMのイベントモデルを模したのを作った。
こっちのアイデアは、インターネットで探して見つけたんで、多分、探せばあるぞ。

というか、検索したらすぐ出てきた。これを参考にして、自分で必要な機能を拡張したのを作った。
ttp://www.fladdict.net/blog-jp/archives/2005/06/javascript.php

たしか、YUI にも、似たような機能があると思う。

623 名前:Name_Not_Found 投稿日:2006/11/22(水) 15:59:48 ID:???
>>620
キャラの上に透明セルを貼って二重にしといて、
ドラッグ中は他のキャラの透明セルが最前面にくるようにすれば
たぶん「ふんぎゃぁ!」くらいはできる



かもしれない。

624 名前:Name_Not_Found 投稿日:2006/11/22(水) 18:12:08 ID:zovBDBh/
質問です。
テキストフィールドに「blue」などのHTMLで許容される色名を入れて
動作させるスクリプトを組んだのですが、たとえば「plue」などを入
れると、「無効なプロパティ」としてエラーになってしまいます。
条件でこれを排除するにはどうすればよいのでしょうか。
まさか、全部の色名を用意するわけにも行きません。ご教示ください。

625 名前:Name_Not_Found 投稿日:2006/11/22(水) 18:29:24 ID:???
>>624
try

626 名前:Name_Not_Found 投稿日:2006/11/22(水) 18:40:29 ID:???
そのまさかです。

627 名前:Name_Not_Found 投稿日:2006/11/22(水) 18:51:06 ID:???
16進数にしたら良いじゃない

628 名前:624 投稿日:2006/11/22(水) 18:57:24 ID:???
>>625-627
そうですかぁ。try-catch tryしてみます。ありがとうございました。

629 名前:Name_Not_Found 投稿日:2006/11/22(水) 22:35:58 ID:???
>>624
CSSで許される色名はたったこれだけでしょ。なんで全部持たない?

The list of keyword color names is: aqua, black, blue, fuchsia,
gray, green, lime, maroon, navy, olive, purple, red, silver,
teal, white, and yellow.

630 名前:Name_Not_Found 投稿日:2006/11/22(水) 22:47:53 ID:???
>>629
それはちがうだろ。もっと勉強汁。
あんたが色の見え具合を気にするかどうかなんてどうでもいい。


631 名前:Name_Not_Found 投稿日:2006/11/22(水) 23:01:11 ID:???
>>630
1. HTML4.01によって定義される色名は16種類のみ
2. CSS2の色名はHTML4.01によって定義される色名と同じ
3. >>624 「HTMLで許容される色名を入れて」

で「色の見え具合」って何だよ

632 名前:Name_Not_Found 投稿日:2006/11/22(水) 23:03:13 ID:???
ユーザスタイルシート使う人の事だろ

633 名前:Name_Not_Found 投稿日:2006/11/22(水) 23:23:09 ID:???
何でユーザスタイルシートが出てくるんだ?

634 名前:Name_Not_Found 投稿日:2006/11/22(水) 23:28:17 ID:???
ユーザスタイルシートで文字色とか背景色とか変えてるから

635 名前:Name_Not_Found 投稿日:2006/11/22(水) 23:58:14 ID:???
>>629はCSS2(2.1)の仕様の4.3.6引用して
16種類しかないんだから
配列かなんかで色名全部持って比較しろって言ってるだけだろ

>>629が色の見え具合を気にしているように読めるのが意味不明だし
ユーザスタイルシートなんて内容と全然関係ないだろ

636 名前:Name_Not_Found 投稿日:2006/11/23(木) 00:01:22 ID:???
CSS 2.1の色名は+orangeで17種類だぞ

637 名前:Name_Not_Found 投稿日:2006/11/23(木) 00:07:36 ID:???
silverがあってgoldはないってもなぁ。体系的に思想がない。
個人的にはsalmonなんかもほしいところだ。

638 名前:Name_Not_Found 投稿日:2006/11/23(木) 05:33:08 ID:ku55vcuz
タグのclassを動的に切り替えたいのですが
どうやればいいですか?
getElementById('hoge').class = 'name'
のようにしてみたのですがエラーになりました。

639 名前:Name_Not_Found 投稿日:2006/11/23(木) 05:38:26 ID:???
classNameですた

640 名前:Name_Not_Found 投稿日:2006/11/23(木) 09:41:56 ID:???
>>637
それこそ自分で色名からRGB値へのデータベースを作って
持たせろ。何百個でも名前使えるようになるから。

641 名前:Name_Not_Found 投稿日:2006/11/23(木) 09:48:44 ID:???
「メソッド」を中国語でいうと?

642 名前:Name_Not_Found 投稿日:2006/11/23(木) 10:32:22 ID:???
>>624
手書きしようとするから面倒なんじゃないかな。

MAS JScript> var uri = "http://msdn.microsoft.com/workshop/author/dhtml/reference/colors/colors_name.asp";
MAS JScript> var r = new ActiveXObject("Msxml2.XMLHTTP.3.0");
MAS JScript> var a = [];
MAS JScript> var p = />(\w+)<\/TD>\s*<TD>(#[A-Z0-9]{6})/g;
MAS JScript> r.open("GET", uri, false);r.send("");
MAS JScript> while (c = p.exec(r.responseText)) {a[a.length] = ''.concat('"', c[1], '":"', c[2], '"');}
MAS JScript> Echo('var h6Of = {');Echo(a.join(',\n'));Echo('};');

出力結果
var h6Of = {
"AliceBlue":"#F0F8FF",
"AntiqueWhite":"#FAEBD7",
"Aqua":"#00FFFF",
"Aquamarine":"#7FFFD4",
(中略)
"Yellow":"#FFFF00",
"YellowGreen":"#9ACD32"
};

643 名前:Name_Not_Found 投稿日:2006/11/23(木) 10:43:33 ID:???
c[1].toLowerCase()
した方が使い易かったな。

644 名前:Name_Not_Found 投稿日:2006/11/23(木) 11:14:39 ID:dxxapunO
ランダムリンクを使う場合に、いちいちリンクURLを追加しなくても
特定のフォルダ内のファイル全てにリンクさせるにはどうすればいい?

645 名前:Name_Not_Found 投稿日:2006/11/23(木) 11:43:13 ID:???
>>641
カンサムニダ

646 名前:Name_Not_Found 投稿日:2006/11/23(木) 12:28:29 ID:???
OS:WindowsXP SP2
ブラウザ:IE6

<html>
<body>
<A href="#" onClick="window.external.AddFavorite(location.href,document.title)">お気に入りに追加</A>
</body>
</html>

このスクリプト、サーバ上だと動くのだが、ローカル(C直下)に持ってくると、
クリックしても何もアクションが無くなる。
(アクティブスクリプト関連の設定は許可してあります)
ローカルだと使えないのでしょうか?


647 名前:Name_Not_Found 投稿日:2006/11/23(木) 12:30:27 ID:???
>>644
フォルダ内のファイルを連番にすりゃできる

648 名前:Name_Not_Found 投稿日:2006/11/23(木) 13:36:54 ID:???
>>646
隠しのマイコンピュータゾーンで実行することになるから、マイコンピュータゾーンで
使用を許可しておく必要がある。

649 名前:Name_Not_Found 投稿日:2006/11/23(木) 14:10:20 ID:o8siasPS
prototype.jsのeach()ってgetElementsByTagNameじゃ使えないの?

$("hoge").each(function(e){
document.getElementsByClassName("hoge").each(function(e){
はいいのに
なぜ
document.getElementsByTagName("hoge").each(function(e){
だけエラー?

ちなみにprototype.jsのソースが見れるサイトも教えてホスイ


650 名前:Name_Not_Found 投稿日:2006/11/23(木) 14:28:36 ID:???
>>649
getElementsByClassNameはprototype.jsがつくったもの(返ってくるのはArray。死んだリスト)
getElementsByTagNameはDOM(返ってくるのはNodeList。生きたリスト)

prototype.jsのeachはArray用だからNodeListで使うとエラーになる
prototype.jsは紛らわしい名前つけるのやめればいいのに

651 名前:Name_Not_Found 投稿日:2006/11/23(木) 14:33:20 ID:???
test

652 名前:Name_Not_Found 投稿日:2006/11/23(木) 14:35:36 ID:???
あるDIVに、ローカルな変数エリアをつくれないか?
スレッドにおける、スレッドローカルストレージみたいなの。
具体的には、
document.getElementById("myid").var1 = "enabled";
みたいな感じで・・・。


653 名前:Name_Not_Found 投稿日:2006/11/23(木) 14:46:13 ID:???
その例えばをやってみた?

654 名前:Name_Not_Found 投稿日:2006/11/23(木) 14:49:12 ID:???
>>649
$A(document.getElementsByTagName("hoge")).each(function(e){
こうすれば動く。

ソースはどこで見れるもなにも配布元から取得してくればいいじゃん。


>>652
試せ

655 名前:652 投稿日:2006/11/23(木) 15:41:22 ID:???
<html>
<div id="tls1">Trial code for TLS alike vars.</div>
<script>
document.getElementById("tls1").var1 = "you see this var?";
</script>
</html>

---
DOM Inspector でみる限り、ダメっぽい・・・。
どこにも、var1 っつー項目は現れない・・・。


656 名前:Name_Not_Found 投稿日:2006/11/23(木) 15:43:55 ID:???
>>655
<html>
<div id="tls1">Trial code for TLS alike vars.</div>
<script>
document.getElementById("tls1").var1 = "you see this var?";
alert(document.getElementById("tls1").var1);
</script>
</html>

657 名前:Name_Not_Found 投稿日:2006/11/23(木) 15:51:52 ID:jHv+ZNd/
質問です。
ラジオボタンで、項目名とVALUE値が同じ場合に二度書きしたくないので、
項目名からVALUE値を求めるようなやりかたはありますか?
<input type="radio" name="tori">ハト
<input type="radio" name="tori">カラス
<input type="radio" name="tori">スズメ
でobj.tori[1].valueとやると「カラス」が出るようにしたいです。

658 名前:652 投稿日:2006/11/23(木) 16:04:01 ID:???
>>656

ウォ!!すげぇ。
動いてるじゃん。THANX!!!!。

でも、なんで、DOM Inspector には現れないんだ??????

DOM Inspector -> 「正規DOM規格範囲内Element専用」ってこと?


659 名前:Name_Not_Found 投稿日:2006/11/23(木) 16:05:12 ID:???
>>657
無意味な横着しないでください ><
どうせスクリプト有効にしないと動作しないんだから、
inputタグそのものをスクリプトで出力したらどうですか?


660 名前:Name_Not_Found 投稿日:2006/11/23(木) 21:52:15 ID:???
>>658
DOM Node
Javascript Object

661 名前:Name_Not_Found 投稿日:2006/11/23(木) 23:04:21 ID:PB+Gjo+R
親ページ(フォーム入力ページ)から子ページ(確認ページ)を開き、
親ページのフォーム入力データを子ページに書き込むために以下のように
したのですが、全角文字が文字化けしてしまいうまく表示されません。
何かいい改善策があればよろしくお願いします。

test.html
<html><head><title>test</title></head><body>
<form action="./test1.html" method="get">
<input type="text" name="encode">
<input type="submit" value="submit">
</form></body> </html>

test1.html
<html><head><title>**</title></head><body>
<script type="text/javascript">
url=window.location+""
if(url.indexOf("?") != -1){
v=url.split("?")[1].split("=")[1]
document.write(v)
}
</script></body> </html>


662 名前:649 投稿日:2006/11/23(木) 23:33:10 ID:dcdLVN8P
>>650
THANX

じゃあ、いつものようにforかwhileでカコワルク回せでFA?

あとだれかprototype.jsのまともな解説サイト知らない?

663 名前:Name_Not_Found 投稿日:2006/11/23(木) 23:36:41 ID:???
>>662
prototype.js自体まともじゃないから
まともな解説を書けるわけが無い

664 名前:Name_Not_Found 投稿日:2006/11/24(金) 00:23:24 ID:???
>>652-658
DOMとは無関係のJavaScript Objectの仕様だから。
つか、ノードに変なプロパティ付けるくらいなら
DOM3のNode#setUserData()使え。ブラウザ実装は皆無だけどな。

665 名前:Name_Not_Found 投稿日:2006/11/24(金) 02:42:51 ID:???
>>661
つunescape

666 名前:Name_Not_Found 投稿日:2006/11/24(金) 10:10:41 ID:???
getElementById()ってよく使うのに長すぎね?
gEBI()とかにすればいいじゃんって感じ

667 名前:Name_Not_Found 投稿日:2006/11/24(金) 10:31:55 ID:e8lpFdAW
<head>
<script language="JavaScript">
<!--
function gazo(mysrc) {
document.img.src=mysrc;
}
-->
</script>
</head>
<body>
<input type="button" value="画像B" onclick="gazo(画像B.gif')">
<img src="画像A.gif" alt="" name="img">
</body>

最初に表示されてる画像がボタンをクリックしたら別の画像に変わり、
変更後の画像(または画像の下に文字列を付け加えてリンク)をクリックしたら
別の画面に飛ぶってスクリプトを作りたいんですが、
どのようにすればいいか教えていただけますか。

668 名前:Name_Not_Found 投稿日:2006/11/24(金) 10:32:57 ID:???
>>666
確かに長い。
でも、prototype.js使ってるから、あんまり気にならない。

669 名前:Name_Not_Found 投稿日:2006/11/24(金) 10:35:20 ID:???
>667
setAttributeを使う方法を、ぱっと思い浮かんだが、素人にはお勧め出来ないな

670 名前:Name_Not_Found 投稿日:2006/11/24(金) 11:42:28 ID:???
>>666 自分でそういう関数を1行で定義して使うのはいいんじゃねの?
>>669 setAttributeダサイ!
>>667 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var elt = document.getElementById('i0');
elt.src = 't2.png';
elt.onclick = function() { location.href = 't2.html'; }
}
</script>
</head><body>
<div><img id="i0" src="t1.png"></div>
<div><button onclick="test()">Test</button></div>
</body></html>

671 名前:Name_Not_Found 投稿日:2006/11/24(金) 11:51:23 ID:???
>>667
その前に、なんだそのコーディングは?そんなんじゃ画像表示も怪しいだろ。

672 名前:Name_Not_Found 投稿日:2006/11/24(金) 11:55:59 ID:???
JavascriptでURLデコードする方法を教えてください
文字コードはShift_JISです。

673 名前:Name_Not_Found 投稿日:2006/11/24(金) 12:25:57 ID:???
>>671
ぜひスバラシイコードを貼ってください。よろしこ。
>>672
JavaScriptではできません。SJISコード表を全部持てば
できるけど非現実的だよね。VBScriptかActiveXでできる
んだったっけ、過去スレのどっかにある。

674 名前:Name_Not_Found 投稿日:2006/11/24(金) 12:27:22 ID:???
>>670
またもろにメモリーリークパターンか。ほんと使えんやっちゃな。おまえかなり高齢だろ?

675 名前:Name_Not_Found 投稿日:2006/11/24(金) 12:30:43 ID:???
>>673
回答ありがとうございます
encodeURIで我慢します。

676 名前:Name_Not_Found 投稿日:2006/11/24(金) 12:33:45 ID:???
>>674
どこでどういう風にメモリリークするのか解説してよ
初心者向けスレなんだから

677 名前:Name_Not_Found 投稿日:2006/11/24(金) 12:46:57 ID:???
ホレ氏は素人だから、メモリリークが起こっただけで低脳呼ばわりするのは可哀想だが…
674に代わって解説すると、

function test() {
var elt = document.getElementById('i0');
elt.src = 't2.png';
elt.onclick = function() { location.href = 't2.html'; }
}

上のコードでtestの中のスコープがeltへの参照を保持していて、
eltのonclickには、クロージャへの参照を保持している。
そしてクロージャの特性上、クロージャがtestスコープへの参照を保持する訳で、
ここで循環参照が発生してメモリリークが発生している、
これは、まっとうなJavaScriptプログラマなら必ず避けなければいけないコードの典型的な例。

正直ホレ氏のコードは問題が多くて初心者向きではないと思うので、それを踏まえて利用してください。

678 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:18:21 ID:???
> eltのonclickには、クロージャへの参照を保持している。
「には」?

> クロージャがtestスコープへの参照を保持する
どのクロージャ?

> ここで循環参照が発生して
何がどう「ここで」なの?

正直677氏の日本語は問題が多くて初心者向きではないと思うので、それを踏まえて利用してください。

679 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:34:56 ID:???
>>677
問題になるのは循環参照を持った大きいデータが次々にゴミになる場合。
ここでは本来クロージャは不要だから処理系がまともなら何も作らない。
馬鹿な処理系が毎回クロージャ作るとしてもeltという変数1個。
で、次のように変えて
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var elt = document.getElementById('i0');
elt.src = 't2.png';
elt.onclick = function() { location.href = 't2.html'; }
}
</script>
</head><body>
<div><img id="i0" src="t1.png"></div>
<div><button onclick="setInterval(test,100)">Test</button></div>
</body></html>
すごい勢いでtest()を呼んでみたけどメモリ使用量は増えてるかどうか
分からない程度の変動(UNIX/Gecko, WIN/IE6)。他の人も実験してみそ。
少なくとも人間がボタン押す程度で問題になるもんじゃないだろ。
で、アンタの正しいコードを貼ってくれよ。

680 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:35:24 ID:???
揚げ足取り必死だな低脳w

681 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:38:27 ID:???
で、アンタの正しいコードを貼ってくれよ。せいぜいvar elt
の宣言を外側に出す程度?そうやってグローバル汚染するのと
どっちがいいかという程度の選択だろ。

682 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:40:21 ID:???
>>679
> ここでは本来クロージャは不要だから処理系がまともなら何も作らない。
Firefoxのシェアを馬鹿にするな

ちょっと変更してみた
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var dummy = [];
for(var i=0;i<100000;i++) { dummy[i] = i; }
var elt = document.getElementById('i0');
elt.src = 't2.png';
elt.onclick = function() { location.href = 't2.html'; }
}
</script>
</head><body>
<div><img id="i0" src="t1.png"></div>
<div><button onclick="setInterval(test,1000)">Test</button></div>
</body></html>
物凄い勢いでリークしていた

683 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:41:09 ID:???
だから人間が押すボタンなんだろ。

684 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:42:11 ID:???
>>679
メモリリークってのは、何度も呼び出したからリークするんじゃなくて、
ブラウザを閉じるまで別のページに行ってもメモリが解放されない問題なんだよ
intervalで呼び出すことになんら意味は無いよ
本当にホレ氏は素人なんだな

それと、
> で、アンタの正しいコードを貼ってくれよ。
かっこ悪すぎるw

685 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:45:12 ID:???
>684が正解
手っ取り早くメモリリークを起こすコードを書くと、

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var dummy = [];
for(var i=0;i<1000000;i++) { dummy[i] = i; }
var elt = document.getElementById('i0');
elt.src = 't2.png';
elt.onclick = function() { location.href = 't2.html'; }
}
</script>
</head><body>
<div><img id="i0" src="t1.png"></div>
<div><button onclick="test()">Test</button></div>
</body></html>

これを表示してtestを押し、別のページに移動→メモリ開放されてない
確認して無いけどたぶん動くはず。仕事中にて失礼

686 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:50:41 ID:???
わざわざ巨大な環境作って持たせたり何万回も呼べば
そりゃそうなるけど。みんなそんな何日もブラウザ
あげっぱなしなもんなのかね?

687 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:53:05 ID:???
ついに負け犬の遠吠えモードになりました…

688 名前:Name_Not_Found 投稿日:2006/11/24(金) 13:57:11 ID:???
リークじゃなくてヒストリーのキャッシュなんじゃね?

689 名前:Name_Not_Found 投稿日:2006/11/24(金) 14:00:04 ID:???
>>686
256Mのノートパソコンで見ている人がメモリリークの問題のあるページを
2〜3経由するだけで、「メモリが不足しています」と表示されるんじゃないかな

690 名前:Name_Not_Found 投稿日:2006/11/24(金) 14:01:57 ID:???
>>689
分かりました、謙虚になります ^_^;;
それで謙虚に質問なんですが、この問題の場合リークのない
コードって皆さんどういう風に書いてますか?マジに質問です。
勉強しますので。

691 名前:Name_Not_Found 投稿日:2006/11/24(金) 14:07:53 ID:???
関係ないが勉強になった。偉いぞおまいら。

692 名前:Name_Not_Found 投稿日:2006/11/24(金) 14:16:28 ID:???
クロージャ周りのメモリリークはIE7/Fx2では修正されてるけどね。
今回の場合はIE6でも最後eltにnull代入すればリークしないし。

function test() {
var elt = document.getElementById('i0');
elt.src = 't2.png';
elt.onclick = function() { location.href = 't2.html'; }
elt = null;
}

693 名前:Name_Not_Found 投稿日:2006/11/24(金) 14:16:39 ID:???
>>690
あなたが誰か知らないけれど、
リークの仕組みを理解していれば回避は結構簡単です。

リークが発生するのはDOMの循環リンク管理とScriptの循環リンク管理を
ブラウザで別システムで扱ってしまっているため、システムを超えて参照すると
それがリークとして残ってしまうことが原因です。

一番簡単なのが使い終わったイベントハンドラをスクリプトで外すことです。
ただ、removeEventListener は昔のFirefoxで正常に動かない問題があったりするので
確実な方法ではありません(ちなみに循環参照のメモリリークはFirefox1.5でも発生します)

確実なのはクロージャを使わず、クロージャを実行する関数を別に作って
それに実行させることです。
その場合はDOMに割り当てられるのは関数のみになるので循環参照は起こりません。

クロージャが1個でも循環参照していると、そのスコープ全てがリークするので
メモリリークはそこそこ気を遣う価値のある問題だと思います。
最も今回の発端になったコードくらいだったらリークしてもいいじゃん、と思うけどw

694 名前:Name_Not_Found 投稿日:2006/11/24(金) 14:25:41 ID:???
>>693
ありがとうございます。「クロージャを実行する関数を別に」
ってたとえばこういうことですよね。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function handle() { location.href = 't2.html'; }
function test() {
var elt = document.getElementById('i0');
elt.src = 't2.png'; elt.onclick = handle;
}
function test1() {
for(var i = 0; i < 10000; ++i) test();
}
</script>
</head><body>
<div><img id="i0" src="t1.png"></div>
<div><button onclick="test1()">Test</button></div>
</body></html>
でもこれだとGeckoですごい勢いでメモリ消費してるよう
なんですけど…何か間違ってます?他の人がどう書いてるのか
教えて欲しいのでよろしくお願いします…

695 名前:Name_Not_Found 投稿日:2006/11/24(金) 14:31:48 ID:???
>>692
なるほど! eltにnullを代入すると確かに大丈夫になります。
なんですが、一般にはクロージャに取り込む変数に全部null
を入れるわけに行かないですよね。結局どういう指針で
コーディングすればいいんでしょう。 >>694 が間違ってる
のならどう違うのか知りたいですけど…

696 名前:Name_Not_Found 投稿日:2006/11/24(金) 15:04:15 ID:???
質問なのですが

var text = "AAA<div>BBB\nCCC</div>";
var result = text.match(/<div>.+?<\/div>/im);
alert(result);

このように検索対象に改行が入ってると取得できないのです
改行に拘らずマッチさせたいのですが、お知恵をお貸し下さい(-人-)

697 名前:Name_Not_Found 投稿日:2006/11/24(金) 15:06:17 ID:???
>>694をFirefox1.0にてメモリリーク確認。でも原因さっぱりわからん。

698 名前:Name_Not_Found 投稿日:2006/11/24(金) 15:10:02 ID:???
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var elt = document.getElementById('i0');
elt.src = 't2.png'; elt = null;
}
function test1() {
for(var i = 0; i < 10000; ++i) test();
}
</script>
</head><body>
<div><img id="i0" src="t1.png"></div>
<div><button onclick="test1()">Test</button></div>
</body></html>

Firefox1.0だとこれでメモリリークが起こる。
もうわけわからんが、クロージャの問題でないことは間違いないな。

699 名前:Name_Not_Found 投稿日:2006/11/24(金) 15:17:47 ID:???
>>696
それさあ、「.」には改行はマッチしてくれないんだよ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var text = "AAA<div>BBB\nCCC</div>";
var result = text.match(/<div>[\u0000-\uffff]+?<\/div>/im);
alert(result);
</script>
</body></html>
>>697
確認ありがとうございます。やっぱり謎ですよね?となると、
eltにnullを入れるとかいうヒューリスティックしかないの?

700 名前:Name_Not_Found 投稿日:2006/11/24(金) 15:20:44 ID:???
>>698
ヒント:GC

701 名前:Name_Not_Found 投稿日:2006/11/24(金) 15:24:50 ID:???
それで結局どういうコード書くのが正しいのか誰か
教えてくれませんか…

702 名前:Name_Not_Found 投稿日:2006/11/24(金) 15:25:47 ID:???
>>694
そのやり方でもメモリリークは防げるが、クロージャ使ったときのように
test内の変数をイベントハンドラ内で使うことができなくなる。
多分>>693が言いたかったのはこんな感じ。

function createLeakFreeClosure(closure) {
var count = createLeakFreeClosure.count++;
createLeakFreeClosure[count] = closure;
closure = null;
return function() { return createLeakFreeClosure[count].apply(this, arguments); };
}
createLeakFreeClosure.count = 0;

function test() {
var elt = document.getElementById('i0');
elt.src = 't2.png';
elt.onclick = createLeakFreeClosure(function() { location.href = 't2.html'; });
}

>>695
大雑把に言えばDOM周りのオブジェクトへの参照を切っとけばOK。
例えば>>685のdummyはDOMとは関係ないJavaScriptの配列なので
nullを代入して参照を切る必要はない。ただ、参照を切るやり方だと
クロージャ内でeltを使いたいとかいったときに困るから、
そうした場合は↑の方法のほうがいいと思う。

それからFirefox/Geckoでリークしてるという人、何を根拠にそう判断した?
Mozillaの中の人の非公式な弁明は見たか?
ttp://www.d-toybox.com/studio/weblog/show.php?mode=single&id=2004120603

703 名前:696 投稿日:2006/11/24(金) 15:26:14 ID:???
>>699
おお、どうもです。

704 名前:Name_Not_Found 投稿日:2006/11/24(金) 15:31:05 ID:???
>>702
> それからFirefox/Geckoでリークしてるという人、何を根拠にそう判断した?

"calling addEventListener with a closure holding a content node leaks the document"
https://bugzilla.mozilla.org/show_bug.cgi?id=241518

1.5には反映されて無い

705 名前:702 投稿日:2006/11/24(金) 15:39:05 ID:???
>>704
すまんね、702の最後は主に>>694の「Geckoですごい勢いで
メモリ消費してるようなんですけど」と>>698に向けた言葉だった。
確かにFirefox 1.5でもクロージャを直接イベントハンドラに
設定したときのメモリリークは起きる。Firefox 2では修正されてるけど。

706 名前:Name_Not_Found 投稿日:2006/11/24(金) 15:43:51 ID:???
IEも7では修正されているんだっけ。
そろそろまともにクロージャが使えるようになって欲しいよ。

707 名前:Name_Not_Found 投稿日:2006/11/24(金) 16:00:11 ID:???
>>705
はい、おっしゃる意味は分かりますけど、実行によってプロセスの
使用する記憶領域(実記憶、仮想記憶)が「ものすごく増えたまま」
になるのはGCが効果をもたらしてない可能性が高いという意味で
「怪しい」んじゃないですかね。厳密には分からないというのは
そうですけど…

まあ、回避方法としてはJavaScript側のどこかにクロージャを
持たせてそれを環境を持たない関数で呼び出すということですね。

ところで >>702 だと大量にクロージャ生成してそれ使ったとき
全部配列に並べて持ったままになると思うけどそれはそういう
ものだということ?

708 名前:Name_Not_Found 投稿日:2006/11/24(金) 16:18:29 ID:K9HYMeVb
登録フォームなどにある、住所コピーをJavascriptでやりたいと思っています。
単にテキストボックスに入力した内容を下のテキストボックスにコピーするには
<input name="address" type="text" onchange="form1.sub_address.value = this.value;">
<input name="sub_address" type="text" >

などで出来るのですが、「住所をコピー」などの文字をクリックするとコピーされる
ようにする方法がわかりません。どうすればいいのでしょうか?

709 名前:Name_Not_Found 投稿日:2006/11/24(金) 16:32:43 ID:???
住所をコピー,ってゆう文字列はどこにあんのさ?関係ないコードは貼らなくていいから.

710 名前:Name_Not_Found 投稿日:2006/11/24(金) 16:49:35 ID:???
<input type="text" name="address" value=""
/><input type="button" value="Copy to " onclick="this.nextSibling.value=this.previousSibling.value"
/><input type="text" name="sub_address" value="" />

711 名前:Name_Not_Found 投稿日:2006/11/24(金) 17:30:40 ID:???
異や。ちがうんじゃない?

712 名前:Name_Not_Found 投稿日:2006/11/24(金) 22:55:15 ID:???
Javascriptの文法を学びたいんですが、分かりやすい本はありませんか?
いくつか挙げてくだされ。

713 名前:Name_Not_Found 投稿日:2006/11/24(金) 23:28:15 ID:???
文法を学べる本というと、サイ本しか浮かばない…

714 名前:Name_Not_Found 投稿日:2006/11/24(金) 23:42:11 ID:???
俺はこのスレッドと、ECMAの仕様書を印刷してわからないところを調べる形だけど…

仕様書を読みなれていない人だと厳しいだろうし、ECMA全部印刷するのに数千円かかるし、
あまりお勧めできる方法ではないか

715 名前:Name_Not_Found 投稿日:2006/11/24(金) 23:47:54 ID:???
フォームのエレメント追加(inputタグを増やす)ってやっぱりcreateElement?
動的にナレッジベース作りたい気がするんだけど、
なんか、テキストもチェックボックスも追加上手くいかないんだがなー



716 名前:Name_Not_Found 投稿日:2006/11/24(金) 23:52:58 ID:???
innerHTML

717 名前:Name_Not_Found 投稿日:2006/11/25(土) 00:45:18 ID:???
>>712
ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference
ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide

この2つ読め。(つか、いつになったらテンプレに入れるんだ?)

718 名前:Name_Not_Found 投稿日:2006/11/25(土) 06:54:19 ID:???
>>702 ってクロージャリークを回避してるの?
うへー、なんでそれで回避になるのかわかんねw
function内で変数つくって function作った時点でクロージャなるんじゃないんだ?

719 名前:Name_Not_Found 投稿日:2006/11/25(土) 08:00:36 ID:???
変数作らなくてもargumentsとかは存在してるからなー。

720 名前:Name_Not_Found 投稿日:2006/11/25(土) 09:17:06 ID:???
>>718
elt.onclickに関連付けられている関数自体がtestスコープに参照を持ってないのに注目
この場合、ブラウザの実装として、内部で関数呼び出しを単純なハッシュテーブルのインデックスで扱うので
DOMシステムとスクリプトシステムをまたいだ循環参照にならない。

循環参照をJavaScriptの中に閉じ込めてしまっているのがポイント

721 名前:Name_Not_Found 投稿日:2006/11/25(土) 11:17:48 ID:???
>>720
elt.onclickに関連づけられる関数(クロージャ)はargumentsへの
参照を持っていて、argumentsは引数への参照を持っていて、引数
は外側のクロージャを持っていて、外側のクロージャはtestスコープ
の参照を持っているけど、それでいいの?

722 名前:Name_Not_Found 投稿日:2006/11/25(土) 11:30:27 ID:???
>>721
なんかよくわからん文章だな。解読するとこんな感じか?

elt.onclickに関連づけられる関数(クロージャ)
【=createLeakFreeClosureのreturn文で返されるクロージャ】は
【createLeakFreeClosureの】argumentsへの参照を持っていて、
【createLeakFreeClosureの】argumentsは【createLeakFreeClosureの】
引数【であるclosure】への参照を持っていて、引数【closure】
は外側のクロージャ【=test内でcreateLeakFreeClosureの
呼び出し時に引数として渡されたクロージャ】を持っていて、
外側のクロージャ【=test内で作られたクロージャ】は
testスコープの参照を持っているけど、それでいいの?

だとしたら「引数は外側のクロージャを持っていて」が間違い。
createLeakFreeClosure内でclosureにnullを代入して参照を切ってるだろ。

723 名前:Name_Not_Found 投稿日:2006/11/25(土) 11:31:19 ID:???
>>721
> elt.onclickに関連づけられる関数(クロージャ)はargumentsへの
> 参照を持っていて
持っていないんじゃない?
自分自身のargumentsの参照を持つという意味なら当然持ってるけど、
そのargumentsは外側のクロージャを参照していないし。

724 名前:Name_Not_Found 投稿日:2006/11/25(土) 12:16:08 ID:+kpQ1nc2
何気に濃い―議論してるし、ガンガレ。
ホレ氏がやり込められるの久々に見たなw
あとで誰かまとめとけよ。

725 名前:Name_Not_Found 投稿日:2006/11/25(土) 12:35:39 ID:???
>>723-724
なるほど。勝ち負けは別にどうでもいいんだけど、まとめなら洩れも
欲しい。結局どう書けばいいのかまだ分からん。>>702 みたいに使ってる
ものもいないものもクロージャ全部抱えておいても、別のページに
移動すれば解放されるからそれでいいってこと?そして >>698 みたいに
null入れるだけでもメモリ圧迫されるのは処理系のバグなの?

726 名前:Name_Not_Found 投稿日:2006/11/25(土) 12:43:41 ID:???
>>720
createLeakFreeClosureは渡されるクロージャーへの参照を持っているので
createLeakFreeClosureを通して参照関係は残ってるんじゃないの?

727 名前:Name_Not_Found 投稿日:2006/11/25(土) 12:45:09 ID:???
で、たとえば最初のコードでeltにnull入れて消せばいいんでしょうか。
それでいいならこの場合一番ラクちんだと思うけど。真面目に質問なので
教えてください。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
function test() {
var elt = document.getElementById('i0');
elt.src = 't2.png';
elt.onclick = function() { location.href = 't2.html'; }
elt = null;
}
</script>
</head><body>
<div><img id="i0" src="t1.png"></div>
<div><button onclick="test()">Test</button></div>
</body></html>

728 名前:Name_Not_Found 投稿日:2006/11/25(土) 12:46:37 ID:???
>>725
そもそも循環参照リークだって処理系のバグみたいなもの。

729 名前:Name_Not_Found 投稿日:2006/11/25(土) 12:48:11 ID:???
スクリプト言語でこんな心配しなきゃならんのか

730 名前:Name_Not_Found 投稿日:2006/11/25(土) 12:53:17 ID:???
>>720
解説ありがとう。
うー、でもまだイマイチわからない・・・。
> http://www.microsoft.com/japan/msdn/ie/general/ie_leak_patterns.aspx
ここに

実際 >>702 試したらそのように動いたのは面白かった。

>>727
実際試してみればわかるけど、最初のコードで言えばそれでもいいんじゃね。
ってか2行くらいだったらそもそも elt を作らなくてもいいし、それでもいいかも。

731 名前:730 投稿日:2006/11/25(土) 12:57:43 ID:???
間違って途中で送ってもうたw
> http://www.microsoft.com/japan/msdn/ie/general/ie_leak_patterns.aspx
ここに
> 要素がクロージャーを参照し、クロージャは親関数パラメータへのスコープ参照を保持します。ここでリークします。
ってあるんだけど、
>>726 もいってるように、>>702 で動くのがちょっと不思議。
もう 1時間くらい悩んでくる ノシ

732 名前:Name_Not_Found 投稿日:2006/11/25(土) 13:13:37 ID:???
>>726
createLeakFreeClosureはいわばグローバル変数であり、
test内で作られるクロージャもcreateLeakFreeClosure内で作られる
クロージャもcreateLeakFreeClosureへの参照は持っていない。
クロージャがもつのは親関数の引数及び変数への参照ね。

733 名前:730 投稿日:2006/11/25(土) 14:55:28 ID:???
えーと、
・elt.onclick が呼び出そうとする関数が、クロージャの関数そのもの。
→ リークする

・elt.onclick が呼び出そうとする関数が、普通の関数の場合
→ リークしない

・elt.onclick が呼び出そうとする関数が、普通の関数で、
  クロージャの関数を別の(グローバルな)場所に退避させておき、その関数の中からそれを直接呼び出す場合
→ リークしない

ですかね?
>>702 はそれを動的に作っている感じか。

最初のコードの場合、↓みたいに簡単に変更すれば、クロージャも利きつつ、リークもしなくなるっぽい。(IE6)
----------------------------------
function test() {
    var dummy = [];
    for(var i=0;i<200000;i++) { dummy[i] = i; }

    var elt = document.getElementById('i0');
    elt.src = 't2.png';
    elt.onclick = test.run;
    test.func = function () { alert(elt && elt.src); alert(dummy.length); };
}
test.run = function () { test.func && test.func(); };
----------------------------------
// test.func → test.run.func に変更するとリークしたりして (そりゃそうだわ)、いろいろ試してて勉強になった。

734 名前:Name_Not_Found 投稿日:2006/11/25(土) 15:15:09 ID:???
>>733
なるほど分かりやすいまとめですね。外側で1個関数
作らないといけないのがあんまり嬉しくない感じは
するけどそれはもうしょうがないのかな。

735 名前:Name_Not_Found 投稿日:2006/11/25(土) 15:15:10 ID:???
ちょちょちょっとわけわかな俺様はどうも「クロージャ」の定義がわかってないようだ。

736 名前:Name_Not_Found 投稿日:2006/11/25(土) 15:20:01 ID:???
new Function(...)を使ってクロージャにならない関数を定義とかどうよ。

737 名前:Name_Not_Found 投稿日:2006/11/25(土) 15:56:18 ID:???
うう・・・
>>702 のやり方だと、Fx1.5 で、
elt.onclick = createLeakFreeClosure(func);
はいくのだが、
elt.addEventListener('click', createLeakFreeClosure(func);, false);
だとリークしてしまう・・・。

>>733 みたいな感じだと大丈夫。
どうすればいいんだろ・・・。

738 名前:737 投稿日:2006/11/25(土) 16:16:22 ID:???
とか言いつつ、やってみたら、二重にするだけだったようです。
無駄レス申し訳ない。

739 名前:Name_Not_Found 投稿日:2006/11/25(土) 16:39:19 ID:???
>>736
本末転倒

>>735
そもそもクロージャによる循環参照でメモリリークが起きるのはブラウザのバグ


740 名前:Name_Not_Found 投稿日:2006/11/25(土) 17:04:34 ID:???
クロージャと関数オブジェクトと無名関数をごっちゃに使ってるやつが多いな。

741 名前:Name_Not_Found 投稿日:2006/11/25(土) 17:09:02 ID:???
日常会話なんてニュアンスがわかれば充分だし。

742 名前:Name_Not_Found 投稿日:2006/11/25(土) 17:09:45 ID:???
まあIE7でもFirefox2でも修正されてるし、ブラウザが
クラッシュしたりXSSを引き起こしたりする問題でもないんだから、
気にしないって選択肢もありだとは思うがね。
あと7年もすれば気にしない派が大勢を占めてると思うよ。

743 名前:Name_Not_Found 投稿日:2006/11/25(土) 17:28:58 ID:???
7年…ネットではかなり長い時間だね。

744 名前:Name_Not_Found 投稿日:2006/11/25(土) 17:31:45 ID:???
elt=nullで防げるメカニズムがよくわからん。

745 名前:Name_Not_Found 投稿日:2006/11/25(土) 17:37:04 ID:???
>>744
あの場合の循環参照は DOMノードのonclickが関数クロージャを差し、関数
クロージャが変数eltへの参照を保持し、eltにはDOMノードが入っている、
というもの。事後にでも変数eltをnullにすればもはやDOMノードを指さなく
なるので循環参照でなくなる。

746 名前:Name_Not_Found 投稿日:2006/11/25(土) 17:37:49 ID:???
防げるっていうか、elt の値がクロージャされなくなるだけかと。

747 名前:Name_Not_Found 投稿日:2006/11/25(土) 17:42:37 ID:???
その表現はちょっと。「クロージャされる」ってどういう動詞よ ^_^;

748 名前:Name_Not_Found 投稿日:2006/11/25(土) 18:07:07 ID:???
だめかw 「クロージャ機能を使ってスコープ内の変数を参照する」 とか言うのだるくてw

749 名前:Name_Not_Found 投稿日:2006/11/25(土) 18:41:29 ID:???
だって後からnull入れたって変数elt自体は参照できるじゃん。
ただ参照したときの値がnullだっていうだけで。

750 名前:Name_Not_Found 投稿日:2006/11/25(土) 19:07:05 ID:75riOexU
>749
よくわかんねえけど、参照されるデータが山ほど、作られている場合は、nullで統一、一括うまぁw
ってことじゃねぇの?

751 名前:Name_Not_Found 投稿日:2006/11/25(土) 19:09:51 ID:???
sage忘れた…
んじゃ、ネタ投下。
ttp://blog55.fc2.com/l/leahdizoma/file/1115bookbooks16.jpg
可愛いよ、リア可愛いよw

752 名前:Name_Not_Found 投稿日:2006/11/25(土) 19:14:15 ID:???
>>749
循環参照はされなくなるっ初夜

753 名前:Name_Not_Found 投稿日:2006/11/25(土) 19:20:27 ID:???
- DOMノードはonclickを持ってる
- onclick は function() {}
- function(){} は「test() 実行時に確保された変数領域」を参照している(*)
- 「test() 実行時の変数領域」には var elt があり、DOMを指している

DOMノードを開放しようとしたとき、
- onclickの開放が必要
- onclickの開放には「test()実行時に確保された変数領域」の開放が必要
- var eltの開放が必要
- そのときeltがDOMノードを指してると循環でヴァー

なので、どこでもいつでもいいからeltがDOMを指してるのをやめればいいのか。

で、(*)のfunctionと変数領域の組がクロージャなんだと理解したんだけどあってる?

754 名前:Name_Not_Found 投稿日:2006/11/25(土) 20:13:05 ID:???
document.links[1].href
で<a herf="ここ">は取得出来るけど
<a herf="http://www.google.co.jp/">ここ</a>はどうやって取得するの?

755 名前:Name_Not_Found 投稿日:2006/11/25(土) 20:30:38 ID:???
document.links[1].firstChild.nodeValue

756 名前:Name_Not_Found 投稿日:2006/11/25(土) 20:36:25 ID:???
おー出来ました
ありがとうございました

ココ、ID出ないのね

757 名前:Name_Not_Found 投稿日:2006/11/25(土) 21:00:13 ID:???
>>753
だいたい合ってんじゃないかなー。
仕組みについては、だいたい >>693, >>720, あとは >>730 のMSへのリンクに書いてる感じだと思う。
後半の循環の仕組みは自分ははっきりとはわからないけど、↑の解説みてて受けた印象はそれとはちょっと違ったかも。

しかし、クロージャ、昨日までは、クロージャのなかで使ってる変数だけ選りすぐって都合よく参照するもんだと思ってた。
親関数内で function 作ったら、その親関数内部の変数まるごと参照しちゃうんだねえ・・・。


758 名前:Name_Not_Found 投稿日:2006/11/25(土) 21:28:14 ID:???
>>730
>ってか2行くらいだったらそもそも elt を作らなくてもいいし、それでもいいかも。

この問題>>730がいうように、domをスクリプトの変数に保持する必要がなければ敢えて変数保持するなってことで解決したりしないの?
function test(){
$('i0').src='t2.png';
$('i0').onclik=function(){location.href = 't2.html';};
}


759 名前:Name_Not_Found 投稿日:2006/11/25(土) 21:45:24 ID:???
replace(/あ/gi,'い') で、半角スラッシュ「/」を変換するにはどうしたらいいの?
replace(///gi,'い')もreplace(/"/"/gi,'い')もダメだった

760 名前:Name_Not_Found 投稿日:2006/11/25(土) 21:46:44 ID:???
replace(/\//gi,'い')

761 名前:Name_Not_Found 投稿日:2006/11/25(土) 21:48:23 ID:???
エスケープの存在をすっかり忘れてた…

762 名前:Name_Not_Found 投稿日:2006/11/25(土) 22:25:08 ID:???
>>758
いいだろうけど2回getElementById()なりを呼ぶことになるわけで…

763 名前:Name_Not_Found 投稿日:2006/11/25(土) 22:37:34 ID:???
>>753
クロージャとかの理解はいいと思うけど、そうやって再帰的に
たどりながら領域解放するという理解は違っているよ。だって
それじゃよそからも指されているところを解放してしまって破滅
するじゃん。Wikipediaでまず「ガベージコレクション」を読んで
それから「参照カウント」を読むことをすすめる。

764 名前:Name_Not_Found 投稿日:2006/11/25(土) 23:34:26 ID:???
改行ってどうやって指定するの?

765 名前:Name_Not_Found 投稿日:2006/11/25(土) 23:41:12 ID:???
自己解決
&#13;&#10;か

766 名前:Name_Not_Found 投稿日:2006/11/26(日) 00:11:38 ID:???
\r\n

767 名前:Name_Not_Found 投稿日:2006/11/26(日) 01:03:56 ID:???
>>766
それじゃ出来なかったのよ

768 名前:Name_Not_Found 投稿日:2006/11/26(日) 01:35:57 ID:???
実は長いJavaScript質問スレの中で、初めてのメモリリークについての議論だったわけだが
俺を含めて多数の人が理解できたみたいで非常に素晴らしい

769 名前:607 投稿日:2006/11/26(日) 01:57:45 ID:???
遅くなりましたが、ありがとうございました。

770 名前:Name_Not_Found 投稿日:2006/11/26(日) 02:12:39 ID:???
まあ三年くらいで完全なムダ知識と化すわけだが

771 名前:Name_Not_Found 投稿日:2006/11/26(日) 02:52:45 ID:???
>>757
おれもれも。なんでfunction(){}は上の何も見てないのに〜とか混乱してた。

>>763
あー、参照カウント側から攻めたらわけわからんようになりそうだったので。
「Aの開放=Aへの参照が0になるためには」と読みかえればいいだけかな。

>>768
ついでにやっとクロージャも理解できた。

>>770
3年で陳腐化する知識を拒んでたらどうにも…

772 名前:Name_Not_Found 投稿日:2006/11/26(日) 05:22:40 ID:???
>>768
そうか?俺vol3〜40前後の間にお世話になって、このスレの後半からまた見だしたものだが、
そん時同じくクロージャのことでメモリリークするからって>>702チックな書き方のコード見たことあるぞい。
記憶違いだったかな。

>>762
function test(){
with($('i0')){
src='t2.png';
onclik=function(){location.href = 't2.html';};
}}

773 名前:Name_Not_Found 投稿日:2006/11/26(日) 05:59:57 ID:???
>>1 のカコスレ全集で簡単に検索してみたけど、
メモリリークについては、今回ほどまとまって議論?はされてないような気がするね。
リークすんだろボケ! 的なのは何回もあったがw
>>702 みたいなコードまではでてないような?

>>772 のコード
おお! まじで!
・・・って思ったけど、めちゃめちゃリークされるやん、このウスラトンカチw

774 名前:Name_Not_Found 投稿日:2006/11/26(日) 06:34:30 ID:???
しかし、Ajax で
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
  if (req.readyState != 4 || req.status != 200) return;
  // なんたらかんたら
};
ってコードがよくサンプルで乗ってるけど、
これも地味にメモリリークしちゃうのな。怖いねえ・・・。

775 名前:Name_Not_Found 投稿日:2006/11/26(日) 06:53:45 ID:???
あれ。試してないけどprototype通してるからとかじゃなくて?
with(document.getElementById('i0')){
ならどうよ。>>730の論理はそういうことだと思われ。

776 名前:Name_Not_Found 投稿日:2006/11/26(日) 06:57:35 ID:???
>>775
や、それでいかんねん。やってみ?

777 名前:Name_Not_Found 投稿日:2006/11/26(日) 07:19:26 ID:???
>>774
グローバルスコープの変数なら違うだろ。曲解すんな。

778 名前:Name_Not_Found 投稿日:2006/11/26(日) 07:32:08 ID:???
>>772
var src = "global";
function test() {
with ($('i0')) {
src = 't2.png';
onclick = function() { alert(src); };
}
}
とすると「global」ではなく「.../t2.png」と表示される。
これはクロージャが要素i0への参照を持っているから。
function test() {
var handler = function() { location.href = 't2.html'; };
with($('i0')){
src = 't2.png';
onclick = handler;
}
}
ならリークしない。

779 名前:Name_Not_Found 投稿日:2006/11/26(日) 07:46:08 ID:???
フォローdクス。
要は、クロージャ―をDOMに直張りすんなってこと?

780 名前:Name_Not_Found 投稿日:2006/11/26(日) 08:03:42 ID:???
>>777
グローバルの話なんかしてないしw
まあ>>774の省略コードじゃそうとられるかもしれんがw function 内に書いてるんだよ。

781 名前:Name_Not_Found 投稿日:2006/11/26(日) 08:22:52 ID:???
>>780
ふ〜んw

782 名前:Name_Not_Found 投稿日:2006/11/26(日) 09:15:19 ID:E2tsrllS
初心者スレ荒れ荒れなのでここですみません。

livedoor wikiのフリーエリアでDOMを使ってwiki本文を弄くっているのですが
適用範囲を独自に指定できるように、コメントタグで<!--hoge--><!/--hoge-->を挿入しようとしたのですが
どうやらwiki編集画面で入力したコメント//hogeはHTMLに変換されない仕様のようです。
なのでコメントタグをWikiに投稿する事で作成できません。

以上のような状況で、どうやって適用範囲を指定しようか悩んでいます。
カッコ悪くてもロードまで見えていても構いません。
ただ勝手に仕様を決めるわけでwikiなので他の方も使うので、一般的に人が書きそうな文字列と重複したくはありません。
例えば-//hogeとして、リストのテキストで//hogeと表示させたとしても、
誰かしらが例えばJavaScriptのコメントをリスト指定しない保証はないわけだし
かといって∈みたいな変な記号使っても指定しづらいとかいわれそうで悩んでます。

皆さんでしたら、どんな目印記号を使いますか。
まとまってなくてスミマセン。

783 名前:Name_Not_Found 投稿日:2006/11/26(日) 09:26:31 ID:???
>>777
ていうか、グローバルな変数に req を設定すれば、今度は Fx がリークする・・・、
っていうか、Fx だとページ移動しても元のページのJSの実行結果もキャッシュするみたいで、
つまりグローバルな変数の中身を保持し続けるから、更新しない限りページ移動してもメモリ減らないぞ。

まあ、走らせた後 req を null にすればいいんだけどさ。

784 名前:Name_Not_Found 投稿日:2006/11/26(日) 09:28:57 ID:???
>>782
javascriptと関係あるのか?w
違うとこいったほうがいいよー

785 名前:782 投稿日:2006/11/26(日) 09:45:06 ID:???
どこで聞けばいいですか?ム板の質問スレだとこっちに戻されそう。
初心者スレ機能してないし...
どっか人がいていいとこ誘導して下さい。

786 名前:Name_Not_Found 投稿日:2006/11/26(日) 09:58:22 ID:???
wikiのことはwikiで聞けば?

【BLOG】CMS総合スレ2【Wiki,XOOPS】
http://pc8.2ch.net/test/read.cgi/hp/1162287963/

787 名前:Name_Not_Found 投稿日:2006/11/26(日) 12:06:33 ID:???
原理はよくわかってないんだけど、
>>702のコードを使用すればIE6とFirefox1.5でメモリリークの問題が起こらない
という認識に間違いはないよね?

788 名前:Name_Not_Found 投稿日:2006/11/26(日) 13:23:17 ID:???
>>787
クロージャとDOMでのリークについてはそれでいいかと。
あと >>702 のコード、2つに分けたほうがいいかもしれない。 (addEventListener に対応するため)

789 名前:Name_Not_Found 投稿日:2006/11/26(日) 13:44:46 ID:???
>>783
FefoxやOperaが戻る進むの高速化のためにページの内容
(ソースではなく)をキャッシュしてるのとメモリリークを混同するなよ。

というかLeak Monitorで見る限り、Firefox 1.5はloadやunloadといった
特定のイベント以外は、普通の関数かクロージャかに関係なく
removeEventListenerしないとリークするような気がする。
詳しくは試してないし勘違いかもしれないけど。

790 名前:Name_Not_Found 投稿日:2006/11/26(日) 14:19:58 ID:i463hyl7
質問です
o={'a':'x','b':'y','c':'z'}
から、bを取り出すにはどう書けばよいですか?

791 名前:Name_Not_Found 投稿日:2006/11/26(日) 14:23:43 ID:???
>790
for(var i in o) { if(i=='b') alert("b"); }

792 名前:790 投稿日:2006/11/26(日) 15:00:13 ID:???
>>791 Thank you.


793 名前:790 投稿日:2006/11/26(日) 15:02:35 ID:???
?? alert("b") ??

794 名前:Name_Not_Found 投稿日:2006/11/26(日) 15:39:33 ID:???
http://www.gac.jp/article/index.php?stats=question&category=&id=17404&command=msg
これと同じ事象で解決された方いませんか?

ポップアップ(文字)が縦表示になっておかしいです・・・
タグか何かを修正すればなおるのでしょうか?

795 名前:Name_Not_Found 投稿日:2006/11/26(日) 19:06:19 ID:???
文字列の置き換えで、.replace(/</gi,'<')を使わない方法ってありませんか?
あんま正規表現つかいたくないんですよ

796 名前:Name_Not_Found 投稿日:2006/11/26(日) 19:07:53 ID:???
jsファイル読み込みでファイル名を書かずに
「(同じ階層に有る)jsファイル全部読み込む」みたいな記述はできないんでしょうか。
もしいい方法があったら教えてください。

797 名前:Name_Not_Found 投稿日:2006/11/26(日) 19:15:26 ID:???
>>796
copy /A *.js all.js

798 名前:Name_Not_Found 投稿日:2006/11/26(日) 19:18:29 ID:???
>>796
できない。サーバにあるファイルの一覧を取得みたいな手段が
ないから。CGIなりでファイルの一覧を生成して送るしかない。
>>795
全部自分でループすればどうにでもできるっしょ。
var i, result = '';
while((i = str.indexOf('<')) >= 0) {
result += str.substring(0, i) + '<';
str = str.substring(i+1);
}
result += str;
試してないけどね。

799 名前:Name_Not_Found 投稿日:2006/11/26(日) 23:51:19 ID:???
くだ質だけど
lightboxみたいにrelationから外部スクリプトを呼び出す仕組み
ってどっかに仕様書ある?ググったけど見つからないわ。

800 名前:Name_Not_Found 投稿日:2006/11/26(日) 23:53:38 ID:???
relationってnanだ?

801 名前:Name_Not_Found 投稿日:2006/11/27(月) 05:57:17 ID:???
>>799
仕様は無い。
それの初心者コードを我慢して読め。
function initLightbox というメモリーリークな処理がある。そこに書いてある。

802 名前:Name_Not_Found 投稿日:2006/11/27(月) 05:59:58 ID:???
>>798
ふつう、str.split('<').join('<') だろ。

803 名前:Name_Not_Found 投稿日:2006/11/27(月) 06:26:40 ID:???
splitの引数って正規表現じゃなかったっけ?

804 名前:Name_Not_Found 投稿日:2006/11/27(月) 06:37:41 ID:???
型変換か何かでうまく動くんだから、文字列のままでいいんじゃねーの?

805 名前:Name_Not_Found 投稿日:2006/11/27(月) 09:29:22 ID:???
ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-5_String_Objects.html#section-15.5.4.14


806 名前:Name_Not_Found 投稿日:2006/11/27(月) 12:19:51 ID:???
<div id="hoge"><a href="*">aaa</a></div>

この hoge の中の a タグの色だけ動的に赤にしたりしたいのですが、
どうやって書いたら良いのでしょうか

807 名前:Name_Not_Found 投稿日:2006/11/27(月) 12:27:43 ID:???
>>806
1:aエレメントのDOMオブジェクトを取得する
2:そのオブジェクトのstyleプロパティのcolor属性を望む色に変える

808 名前:Name_Not_Found 投稿日:2006/11/27(月) 12:30:56 ID:???
>>807
ありがとうございますたー!

links = getElementById("hoge").getElementsByTagName("a");
for(i = 0; links.length; i++){
links[i].style.color = 'red';
}

こんな感じで出来ますた!

809 名前:Name_Not_Found 投稿日:2006/11/27(月) 12:36:40 ID:???
>>808 うむ、偉い

810 名前:Name_Not_Found 投稿日:2006/11/27(月) 13:13:01 ID:???
>>802=804?
それだったらstr.replace('<', '<')でいいんじゃね?
まあそもそも元質問の795で、正規表現を使いたくないという意味がわからんわけだが。

811 名前:810 投稿日:2006/11/27(月) 13:14:16 ID:???
ミスったorz
× str.replace('<', '<')
○ str.replace('<', '<')

812 名前:Name_Not_Found 投稿日:2006/11/27(月) 13:14:57 ID:???
>>810
replaceの場合はgフラグつけないと駄目ぽ。

813 名前:Name_Not_Found 投稿日:2006/11/27(月) 13:16:22 ID:???
あーそりゃそうか

814 名前:Name_Not_Found 投稿日:2006/11/27(月) 14:59:14 ID:???
( )内のvalueを使わずに、イベントが起こったエレメントのvalueって取れないんでしょうか?

<script>
function hoge(value){
var game = value;
alert (game);
}
</script>
<input type="button" value="PSP" onclick="hoge(value)">

815 名前:Name_Not_Found 投稿日:2006/11/27(月) 15:07:24 ID:rBYSfLHi
質問です。
setTimeout()で毎秒毎にカウントさせるスクリプトの件なのですが、
このくるくる回る数字に3桁カンマをつけることはできるのでしょうか。
一度文字列に戻してまた戻してと、普通に考えますが、相手は動いている
し。処理時間にしたら毎秒のスパンは十分な余裕があるようにも思えた
り。12,345 ---> 12,346 ---> 12,347のようにしたいのですが、アドバイスを。

816 名前:Name_Not_Found 投稿日:2006/11/27(月) 16:59:55 ID:???
>>815
num = String(num).split("").reverse().join("").replace(/(.{3})(?=\d)/g,"$1,").split("").reverse().join("");

817 名前:Name_Not_Found 投稿日:2006/11/27(月) 18:15:57 ID:???
別に「String(num).replace(/^(.*)(...)$/, '$1,$2')」くらいでいいんじゃ…

818 名前:Name_Not_Found 投稿日:2006/11/27(月) 19:31:59 ID:???
7桁とか、小数点入りとか、符号入りとか。

819 名前:Name_Not_Found 投稿日:2006/11/27(月) 19:45:29 ID:???
別に「String(num).replace(/(\d{1,3})(?=(?:\d{3})+(?:\D|$))/g, "$1,");」くらいでいいんじゃ…
小数部が4桁以上になるとあれだけど

820 名前:Name_Not_Found 投稿日:2006/11/27(月) 19:51:27 ID:???
正規表現使わずに書いたほうが読みやすくていいな

821 名前:Name_Not_Found 投稿日:2006/11/27(月) 20:38:49 ID:???
Webサイト制作初心者用質問スレ Part 173
http://pc8.2ch.net/test/read.cgi/hp/1158777988/606

822 名前:Name_Not_Found 投稿日:2006/11/27(月) 22:08:44 ID:???
http://javascriptist.net/
これいいな

823 名前:Name_Not_Found 投稿日:2006/11/27(月) 22:18:32 ID:???
>>815はカウントだから、小数や負数はとりあえず除外しておけばOK

824 名前:Name_Not_Found 投稿日:2006/11/27(月) 23:11:55 ID:???
しょうもない質問で申し訳ありません。
JavaScript初心者です。

DOMオブジェクトのエレメントオブジェクトから、多言語でいうところの派生をさせて拡張させたいと考えていまがうまく出来ません。。
具体的に試してみたのは以下のようなものです。

Test = { }
Test.TestLib = { }
Test.TestLib.TableEx = { }
Test.TestLib.TableEx = function()
{ }
Test.TestLib.TableEx.prototype = document.createElement("TABLE");
var objTableEx = new Test.TestLib.TableEx;
    //↑ document.createElement("TABLE");と同等の使用が出来るようにしたい。

見よう見まねで上記のようなコードを書いてみたのですが、うまくいかないようで
objTableEx.appendChild( [別エレメント])
等が動作しません。

TABLE等タグエレメントオブジェクト(?)から派生オブジェクトを作る方法はあるのでしょうか?

825 名前:Name_Not_Found 投稿日:2006/11/27(月) 23:46:59 ID:???
Test.TestLib.TableEx = document.createElement("TABLE");
のようにtableのオブジェクトは内部に保持しておくしかないかと

826 名前:Name_Not_Found 投稿日:2006/11/28(火) 00:20:56 ID:???
window.document.foo = "bar"
のようにDOMに対して独自のプロパティ(?)を追加することはできないのでしょうか?

827 名前:Name_Not_Found 投稿日:2006/11/28(火) 00:39:46 ID:???
試せ。過去ログ嫁。検索しろ。

828 名前:Name_Not_Found 投稿日:2006/11/28(火) 00:44:15 ID:???
試したらできないようでした。なぜですか?

829 名前:Name_Not_Found 投稿日:2006/11/28(火) 01:37:45 ID:???
Object型じゃないからじゃない?

830 名前:Name_Not_Found 投稿日:2006/11/28(火) 05:38:40 ID:???
たまたま読取専用だったんだろ。

831 名前:Name_Not_Found 投稿日:2006/11/28(火) 08:41:11 ID:EumE01lt
表示するフラッシュの縦横サイズを、window.innerWidthを取得してから画面横幅にピッタリ合わせ、元フラッシュの縦横比を維持したまま表示させたいのですが
「document.getElementById()はNullまたオブジェクトではありません」というエラーが出てしまいます。

<script language="javascript" type="text/javascript">
<!--
var swfWidth = window.innerWidth;
var swfHeight = Math.floor(swfWidth/2.14);
document.getElementById('flash').width = swfWidth;
document.all('flash').width = swfWidth;
document.getElementById('top').width = swfWidth;
document.all('top').width = swfWidth;
document.getElementByid('top').height = swfHeight;
document.all('top').height = swfHeight;
document.getElementById('flash').height = swfHeight;
document.all('flash').height = swfHeight;
//-->
</script>

<object classid=〜 width="100%" height="100%" id="top" align="middle">

<embed 〜 width="100%" height="100%" name="top" id="flash"/ >
</object>

↑のスクリプトだとどこがおかしいですか?よろしくお願いします。

832 名前:Name_Not_Found 投稿日:2006/11/28(火) 08:58:49 ID:???
>>831
objectとembedに同じidつけたらまずいんじゃないの。不精せずに
別のものをつけて、objectのidでうまく操作できかったらembedのidで
やる、とかしてみたらどうかな。そもそもdocument.getElementById()と
document.all()を混在させる理由ってなにさ。

833 名前:831 投稿日:2006/11/28(火) 09:05:34 ID:EumE01lt
>>832
objectには「top」でembedには「flash」で別のidつけてますよ?

document.getElementById()とdocument.all()を同時に使ってるのは、
一応持ってるjavascriptの本でそういう風に記述してるんで、
両方記述した方がいいのかな、と思ってやってました。

834 名前:Name_Not_Found 投稿日:2006/11/28(火) 10:37:21 ID:???
イベントのatachとdetachについです。

javascriptの本とかweb上にあるサンプルを見ると
addEventListenerやatachEventを使った後に
removeEventListenerやdetachEventを使っていないのをよく見るのですが、
どういうときにremoveやdetachを行って、どういうときは行わないで良いのですか?

今までaddEventListenerなどで登録したままで終わりだったんですけど、
それだとメモリーリークが発生する恐れがあると言われたので。

基本的にdetachするのが当たり前ですかね?

835 名前:Name_Not_Found 投稿日:2006/11/28(火) 10:46:17 ID:???
>>831
IEで試したらこんなかんじでした
1 onloadしてから実行するか<object>より下にスクリプトを置く ←今ココ
2 window.innerWidthはIEにない
3 .getElementByid('top') 志村〜ById!


836 名前:Name_Not_Found 投稿日:2006/11/28(火) 11:56:27 ID:1JJwcgN6
すいません英語の問題です。
if (null == 'test') // with casting
というとき、JavaScriptで意味する「cast」とはどういうことなのでしょうか。
辞書を引くと「計算する」という意味があるのですがピンと来ないのです。

837 名前:Name_Not_Found 投稿日:2006/11/28(火) 12:02:21 ID:???
>>836
cast=型変換

838 名前:Name_Not_Found 投稿日:2006/11/28(火) 12:04:30 ID:???
>>833
> 一応持ってるjavascriptの本でそういう風に記述してる
kwsk

839 名前:Name_Not_Found 投稿日:2006/11/28(火) 12:12:25 ID:???
>>834
メモリリークについては丁度このスレで話されてたとこだから、
>>670 あたりから読みつつ、「循環参照 メモリリーク javascript」 でぐぐっとけばいいと思うよ。

840 名前:834 投稿日:2006/11/28(火) 13:24:46 ID:???
>>839
そうです。この話を追っていて、そういえばって思い出し、
http://www.microsoft.com/japan/msdn/ie/general/ie_leak_patterns.aspx
のページを見たんだけど、
「じゃあ何で本やサンプルではそういうコーディングになってなく、説明もないのかな?」
と思ったわけです。

過去ログでもメモリリークの話は出てるけど、detachとかと絡めた話にはなってないなぁと。

841 名前:Name_Not_Found 投稿日:2006/11/28(火) 13:36:01 ID:???
>>840
本の著者がそういう知識を持ってないからじゃないのかな

日本語でまともな本は皆無

842 名前:Name_Not_Found 投稿日:2006/11/28(火) 14:26:46 ID:???
>>840
実用上問題視されないから。

最近は、同一ページで作業する時間が長いアプリケーションとか増えてきたから、そういうアプリが気にする様な話だ。

843 名前:Name_Not_Found 投稿日:2006/11/28(火) 15:00:35 ID:???
実際それなりにJS書いてる人でも知らない人のが多かったんじゃないかなー。

844 名前:Name_Not_Found 投稿日:2006/11/28(火) 15:39:49 ID:???
リークが存在することは知っていても、なぜ起こるのかのメカニズムを
きちんと理解している人は相当少なかったと思うよ

845 名前:Name_Not_Found 投稿日:2006/11/28(火) 15:44:11 ID:???
>>841
オライリーのjavascript&DHTMLクックブックも同じ感じだったんですよね。
情報が古いから仕方ない?

>>842
ってことはページが切り替われば問題なくなるということですか?
unloadする時に全部detachした方が良いと言うのを最近の本で見たのですけど、
どうなのでしょう?

846 名前:Name_Not_Found 投稿日:2006/11/28(火) 15:59:00 ID:???
>>845
ほんとにこのスレの流れ読んだのかいなw

・循環参照にならないように気をつける (ならないのなら以下の対策はいらない)
・別の関数をつかう (クロージャは使えない)
>>702 みたいにクッションを置く
・unload時に remove する

選択肢はこんなか?

847 名前:Liu X 投稿日:2006/11/28(火) 18:13:44 ID:DTm7YDJ5
大家好。
How do you know if there is something different between these
two arrays contents ? Please give me your solutions on that.Say,

var p=['a','b','c','d','e','f'];
var q=['a','d','o','b','e','t'];

Thaks in advance.

848 名前:Liu X 投稿日:2006/11/28(火) 18:29:07 ID:DTm7YDJ5
大家好。我自己明白了!

849 名前:Name_Not_Found 投稿日:2006/11/28(火) 18:40:36 ID:???
>>847
if(p.join(',') == q.join(',')) ...

850 名前:Name_Not_Found 投稿日:2006/11/28(火) 22:41:58 ID:???
>>797-798
トンクスです。

851 名前:828 投稿日:2006/11/28(火) 23:16:45 ID:???
>>829
「typeof window.document」で「object」と表示されました。型はobjectだと思います。
>>830
Firefoxのエラーコンソールで「document.documentElement.style = true;」などと無茶を
しようとすると、確かに「エラー: setting a property that has only a getter」と
怒られますが、「document = true;」などとしても何も表示されません。
本当に読み取り専用(ゲッターのみ?)ということなんでしょうか?

852 名前:Name_Not_Found 投稿日:2006/11/28(火) 23:44:56 ID:???
お前まず何に入れようとしたのか書けよ
document なのか?
なんで document = true とかする必要あるのかわからんが・・・

853 名前:Name_Not_Found 投稿日:2006/11/28(火) 23:47:41 ID:???
>>851
typeofがtypeを返すわけではない。仕様書の11.4.3、P47参照。

可能性としてはhost-objectで、typeofでobjectと返し、
[[PUT]]を独自に実装している、という風に考えておけばいい。

あとdocument.documentElement.styleとdocumentとは全然違う

854 名前:828 投稿日:2006/11/28(火) 23:59:52 ID:???
すみません、本題に戻るとdocument.foo = "bar";とできるかどうか、ということですが、
今やったらできました。

855 名前:Name_Not_Found 投稿日:2006/11/29(水) 00:14:06 ID:???
特定の<TD>の背景画像をランダム表示にしたいんだけどどうすれば?

856 名前:Name_Not_Found 投稿日:2006/11/29(水) 00:37:22 ID:???
>>855
(1)そのTDにIDを振る。
(2)背景画像ファイル名の配列を用意する。
var files = ['a.gif','b.gif','c.gif'];
(3)bodyのonloadで背景設定する関数を呼ぶ。中身は
dobument.getElementById('TDのID名').style.backgroundImage
= files[Math.floor(Math.random()*files.length)];

857 名前:Name_Not_Found 投稿日:2006/11/29(水) 02:56:03 ID:???
>>856
url( )

858 名前:Name_Not_Found 投稿日:2006/11/29(水) 05:04:11 ID:29C0Qgou
スクリプトの実行ってドキュメントロード・画像ロードというが完了してからonloadが発生するようですけど、

画像読みこみを始める前にコードを実行したいのですが完結でいい方法ありませんか?


ttp://d.hatena.ne.jp/brazil/20060105/1136404226
これを見つけましたが、なんか色々小細工しなきゃいけないようでもっとスっきりできるメソッドとかないのでしょうか?
ttp://user.ftth100.com/mirrorhenkan/javascript/read.php/1117009013/792-797
過去ログもこの程度しかわかりませんでした。

やりたいのは、大量にある画像をロードするのですがロード前に.target='_blank'を仕込みたいのと
(仕込まないと画像ダウンロードのと中に踏まれた場合別窓指定が適用されない)
HTMLにスクリプト実行上の記号が入っているのでそれをできればHTMLを表示する前に処理を先にして
DOMで取り除いておきたい事です。

最初からタグに入れとけ、コメントアウトしろ、でできるのは重々承知ですが
wiki本文を処理していまして、その辺の指定が制約でできません。宜しくお願いします。
尚wikiなのでサーバーサイド処理は完全にタッチできませんのであしからず。

859 名前:Name_Not_Found 投稿日:2006/11/29(水) 05:28:32 ID:???
ふとスレを見返してみると。。。
>808
links = getElementById("hoge").getElementsByTagName("a");
このgetElementを二つ重ねる書き方始めてみた…
いつもこのスレは勉強になりますなぁ

色々と試したけど、onclickみたいなAttributeは無理だった
残念w

860 名前:Name_Not_Found 投稿日:2006/11/29(水) 06:17:29 ID:???
.getElementById("hoge")は、getElementById("hoge")の返り値[oblect(DOMエレメント)]の参照だから
ver hoge= document.getElementById("hoge");でhogeに参照が入る
変数を作らずにその返り値にgetElementsByTagName("a")を適用してるだけだけど。

document.getElementById("hoge").getElementsByTagName("a")[0].target='_blank';
とかもできるよ。(IDがhogeのタグの中のAタグの一番目のターゲットを_blankに)

861 名前:Name_Not_Found 投稿日:2006/11/29(水) 08:06:55 ID:???
>>858
画像を読み込む前に実行したいのなら冒頭で<script>...</script>の
中に直接動作を書くことになるよね。しかしその時点では<img>がまだ
読み込まれてないから参照できない。だからtargetなんかも仕込めない。
どっちかというと画像をロードし終わったらaタグを挿入する方向に
した方がいいのでは。それならロード中にクリックしても何も起きない。

862 名前:Name_Not_Found 投稿日:2006/11/29(水) 09:47:03 ID:???
>>858
setTimeout で 100ミリ秒ごとにでも指定して、
bodyの中の最後のほうに書かれている特定の要素 (<div id="footer"> とか <address> とか)
が現れた時点で処理を開始、というようにすればどうかね。

function run () { if (run.flag) return; run.flag = true; alert('run'); };
run.flag = false;

function ready () {
    if (document.getElementById('footer')) return run();
    if (!run.flag) setTimeout(test, 100);
}
ready();

とか。
window.onload = run;

863 名前:858 投稿日:2006/11/29(水) 15:18:06 ID:???
>>861
>冒頭で
ってのはheaderでってことでしょうかね。>>858にも書きましたがwikiなので
headerに自作スクリプトを仕込めないのですけど...
ちなみにHTML構造はフリーエリアのついてる適当なwikiのソースを見てくれれば分かると思うのですが
HTML形式で書きこみが解放されてるのはbodyのdiv内の一定領域だけです。

>画像をロードし終わったらaタグを挿入する方向にした方がいいのでは
これも、wiki書式に則って書いていて自分でaタグを仕込んでいるわけでなくCMSの方でアンカーに変換されます。

>>862
onloadイベントが発生する前の話です。
スクリプトの実行は、ドキュメント(HTML)ロード・画像ロードが完了してからonloadイベントが発生します。

864 名前:Name_Not_Found 投稿日:2006/11/29(水) 15:26:00 ID:???
>>863
・・・ああ、>>858
> (小細工すれば可能だけど) 色々小細工しなきゃいけないようでもっとスっきりできるメソッドとかないのでしょうか?
って質問だったのね。
じゃあ 「ねーよ」 ってことでいいかな。

865 名前:858 投稿日:2006/11/29(水) 16:24:59 ID:???
>>864
それならそれでいいけど。

自己レスでスマソだが、色々やってみたらwin+IEな環境ですが、
グローバル領域でメソッド呼べばドキュメントロード後画像ロード前(中?)に
処理されました。deferがないと処理されるけど(alertはでた)画像ロードまで反映されないみたいですね。
<div><script defer type="text/javascript">
window.onload = piyo;
hoge();
function hoge(){document.getElementById("hoge").getElementsByTagName("a")[0].target='_blank';}
function piyo(){document.getElementById("hoge").getElementsByTagName("a")[1].target='_blank';}
</script></div>



866 名前:Name_Not_Found 投稿日:2006/11/29(水) 16:37:37 ID:X9AOfnuC
皆様お願いします。
ページが読み込まれるときにウインドウのスクロールバーやロケーションが消えるようにしたいのです。
お願いします。
新規ウインドウを開くときは以下のスクリプトでやってます。
<SCRIPT language="JavaScript">
<!--
function OpenWin(url){
win=window.open(url,"new","location=no,scrollbars=yes");
}
// -->
これは親ウインドウからの操作が必要ですのでどのページから開いてもこういうように
なるように子ウインドウ側を操作したいのです。
説明下手ですみません。

867 名前:Name_Not_Found 投稿日:2006/11/29(水) 17:08:20 ID:???
>>866
できません。そんな迷惑なもん誰が使うかって感じ。

868 名前:Name_Not_Found 投稿日:2006/11/29(水) 17:10:11 ID:???
いきなり対象ページをURLから開いても、そのページのスクロールバーやロケーションを
消したいという事?

869 名前:Name_Not_Found 投稿日:2006/11/29(水) 17:20:35 ID:???
Firefox2.0で、setIntervalがうまく動きません。

<script>
setInterval("alert(1)", 1000);
</script>

例えばこのようにしても、間隔が空かずにアラートが開き続けてしまいます。
一定時間毎にある処理を繰り返す・・・をしたいのですが、何か方法は無いでしょうか。

870 名前:Name_Not_Found 投稿日:2006/11/29(水) 17:21:44 ID:???
乱暴な香具師だなw
新規ページを枠無しで開いて親ページを閉じるって手もあるが、嫌われるだけだじょ。

871 名前:Name_Not_Found 投稿日:2006/11/29(水) 17:23:59 ID:???
>>869
そりゃやり方がまずいんでしょ。
function test() {
alert('?'); setTimeout(test, 1000);
}
とかでやってみれば。

872 名前:Name_Not_Found 投稿日:2006/11/29(水) 17:32:30 ID:???
>>871
できました。
ありがとうございます。

873 名前:855 投稿日:2006/11/29(水) 20:37:26 ID:???
色々やってみたけどできない……
誰か修正お願いします…


<html>
<head>
<script type="text/javascript">
<!--
function t() {
var bgimg = new Array('1.png','2.png','3.png');
document.getElementById('tdbg').style.backgroundImage = 'url('bgimg[Math.floor(Math.random()*bgimg.length)]')';
}
-->
</script>
</head>
<body onload="t()">
<table><tr>
<td id="tdbg">AAAAAAA</td>
<td>BBBBBBB</td>
<td>CCCCCCC</td>
<td id="tdbg">DDDDDDD</td>
</tr></table>
</body>
</html>

874 名前:Name_Not_Found 投稿日:2006/11/29(水) 20:57:44 ID:???
>>873

 'url('  +   bgimg[Math.floor(Math.random()*bgimg.length)]  +   ')'; 

なんで+でつないどらんの?
あとidは一つ一つに別の名前つけるもんだお

875 名前:855 投稿日:2006/11/29(水) 21:28:57 ID:???
>>874
+完全に忘れてた…
thx

876 名前:Name_Not_Found 投稿日:2006/11/30(木) 00:18:08 ID:???
<!--* はじめ *-->
<table><tbody><tr><td>
<div style="background:#999;margin:10px 0px 0px 10px">
<div style="border:1px solid #000;background:#fff;position:relative;top:-7px;left:-7px;width:480px">
<table cellspacing="0" cellpadding="0"><tbody><tr><td>
<div style="padding:7px">
<a href="リンク先URL" target="_top"><img src="バナーのURL"
border="0" width="幅(ピクセル)" height="高さ(ピクセル)"></a></div>
</td><td style="border-left:1px solid #000;padding:7px;font-size:13px;color:#000;width:100%"
onclick="window.open('リンク先URL')" onmouseover="this.style.backgroundColor='#ffbbbb'"
onmouseout="this.style.backgroundColor='#fff'" align="center">
*ここにサイト名*
<table><tbody><tr><td style="font-size:13px;color:#000">
*ここに紹介*
</td></tr></tbody></table>
</td></tr></tbody></table></div></div>
</td></tr></tbody></table>
<!--* おわり *-->

このソースで右側のテーブルでマウスオーバーで色を変えるだけで
リンクはジャンプしないようにするにはどうしたらいいのでしょうか。

877 名前:Name_Not_Found 投稿日:2006/11/30(木) 00:44:38 ID:qXidNjRW
Ajaxライブラリprototype.jsのソースを見ていたところ、

Ajax.Request = Class.create();

var Class = {
 create: function() {
  return function() {
   this.initialize.apply(this, arguments);
  }
 }
}

という構成になっていましたが、

Ajax.Request = Class.create;

var Class = {
 create: function() {
   this.initialize.apply(this, arguments);
 }
}

となっていないで、わざわざ関数を呼び出しているのは何故なのでしょうか。
ただの書き方の好みでしょうか。






878 名前:Name_Not_Found 投稿日:2006/11/30(木) 00:57:58 ID:???
>>877
俺はprototype.jsを見たことはないが、877の上と下とでは全然違う
それにしても汚いな。Classなんて誤解を招くオブジェクトを作らないで欲しい

879 名前:877 投稿日:2006/11/30(木) 00:58:47 ID:qXidNjRW
すみません、追記です。
自分で試した内容としては
Ajax.Request.toString()は前者の場合に
 create: function() {
   this.initialize.apply(this, arguments);
 }
でした。
また、Class.createを改変して、中にクラス内変数を設けて
a = Class.create()
b = Class.create()
a()
b()
でテストしたところ、同一のクラス変数を使用している、すなわち
クロージャの仕組みから、同一のインスタンスであると思われる結果になりました。
だったら、>>877の後者のように、いわゆるポインタを渡してあげるのでも
いいのではないかと思った次第です。

よろしくお願いします。

880 名前:877 投稿日:2006/11/30(木) 01:00:52 ID:qXidNjRW
>>878
レスどうもです。
できれば、上と下がどのように違うか教えていただけないでしょうか。


881 名前:Name_Not_Found 投稿日:2006/11/30(木) 07:35:21 ID:???
>>876
IE6だが、マウスオーバーで色を変えるだけになっとるよ。

>リンクはジャンプしないようにするには
これが分からない。リンクを指定してなければ飛ばないはずだが。
onclickしなければ飛ばなかったけど。

882 名前:Name_Not_Found 投稿日:2006/11/30(木) 07:39:18 ID:???
>>866
ネスケ指定が入ってたけど
window.scrollbars.visible window.locationbar.visible
とか書いてあった。
でも権限がどうのというサイトもあった。
エロイ人詳しく。

883 名前:Name_Not_Found 投稿日:2006/11/30(木) 10:44:44 ID:???
>>877
その「後者」がいったい何を意味するのかしばらく考えさせられた。
更に>>879を読んで意味が分からなくなった。改変したんならその内容を書いてくれと。

何か勘違いしているような気がするが、
前者は常に新しく生成されたfunctionオブジェクトが帰ってくる。
  A = Class.create(); 
  B = Class.create(); 
  C = Class.create(); 
例えばこのABCはそれぞれ別のオブジェクト。

後者はプログラム内に一つしか存在しない
Class.createというメソッドへの参照が入るだけ。何の意味があるの?

884 名前:876 投稿日:2006/11/30(木) 12:47:19 ID:???
>>881
別のフレームの記述でエラーになっていたようです。
紛らわしいのでonclick="window.open('リンク先URL')"を削除して
使ってみます。
お調べありがとうございました。

885 名前:866 投稿日:2006/11/30(木) 13:49:29 ID:hBaND1Je
>>868
そうです。

886 名前:Name_Not_Found 投稿日:2006/11/30(木) 14:18:39 ID:???
>>885
スクロールバーはCSSで消せる。
ロケーションバーは>>867

887 名前:Name_Not_Found 投稿日:2006/11/30(木) 16:43:57 ID:qfEtdL3q
<FORM>
<SELECT name="select" onChange="fnction(this.selectedValue)">
 <OPTION value="A">A</OPTION>
 <OPTION value="B">B</OPTION>
 <OPTION value="C">C</OPTION>
</SELECT>
</FORM

ドロップダウンリストを選択すると同時にfunction関数へvalueの値を
渡したいのですが、うまく行きません。
undefinedとなっているようです。

this.selectedValueをthis.selectedIndexにすれば上から順に0,1,2の値は取得できます。
どこがおかしいのでしょうか?

888 名前:Name_Not_Found 投稿日:2006/11/30(木) 17:13:50 ID:???
>>887

1 this.options[this.options.selectedIndex].value
2 this[this.selectedIndex].value





正確には1だと思うが2でも取得できるな
なんで?説明してエロイ人

889 名前:Name_Not_Found 投稿日:2006/11/30(木) 17:47:56 ID:???
this.options.selectedIndexとthis.selectedIndexで結果が同じになるということから察してほしい
つまり、this自身がobj.optionsへの参照であり、かつメンバとしてoptionsも持っていると予想
本当はどうなっているのかは誰か教えて

890 名前:Name_Not_Found 投稿日:2006/11/30(木) 17:54:31 ID:???
>>888
それは仕様では規定されていないことだから
「ブラウザの実装がそうなっているから」としか言いようのない気が。
>>889は間違い。この場合のthisとthis.optionsは別物。
this.options.optionsはundefinedになるでしょ。

っていうか元の質問に対してはthis.valueでいいじゃん。

891 名前:Name_Not_Found 投稿日:2006/11/30(木) 18:08:30 ID:???
this.options.options.options.options[this.options.options.options.selectedIndex].value

IE6だとこれでも動作するわw
firefoxは駄目。まあ仕様というものか。

892 名前:Name_Not_Found 投稿日:2006/11/30(木) 18:10:18 ID:???
>>890
>this.options.optionsはundefinedになるでしょ。
間違ってることは分かるが、俺の書いたのはoptionsがoptionsをメンバとして持ってるんじゃなくて、
thisがこのselectへの参照であり、かつこのselectのoptionsを持ってるんじゃないかって事

ところで、ブラウザの仕様といえば、selectのvalueはIEだとthis.valueだけでthis[this.selectedIndex].valueと同等になるんだったような
IE6.0やFF2.0だとうごくっぽいが
http://www.tohoho-web.com/lng/200001/00010245.htm

893 名前:887 投稿日:2006/11/30(木) 18:13:50 ID:???
何かすごいことになっていますが・・・

>>888氏の方法で動くようになりました
ありがとうございました

894 名前:Name_Not_Found 投稿日:2006/11/30(木) 19:01:53 ID:???
>>889-892
説明thx。勉強になりますた。
>>893
調べてみて初めて気づいたけどselectedIndexは正確にはselectのプロパティらしいんで
正攻法はこんなかんじのようだ。失礼した
this.options[this.selectedIndex].value

895 名前:Name_Not_Found 投稿日:2006/11/30(木) 19:35:09 ID:???
>>894
それいうんだったらselectのvalueもDOM1 HTMLから
定義されてるんだからthis.valueでいいんでは。

896 名前:Name_Not_Found 投稿日:2006/11/30(木) 19:58:19 ID:9RChZq5V
質問です。
「1.005」を小数点第3位で4捨5入しようとしたら豚でもないことに。
「1.01」にするMath.roundの仕方はあるんでしょうか。

897 名前:Name_Not_Found 投稿日:2006/11/30(木) 20:31:55 ID:???
>>896
Math.round(num*100)/100

898 名前:896 投稿日:2006/11/30(木) 22:00:46 ID:???
>>897 ありがとうございます。それではうまくいきませんでした。

899 名前:Name_Not_Found 投稿日:2006/11/30(木) 22:36:56 ID:???
>>2の4を30回読んでその意味をかみ締めろ
ついでに>>4の11に当てはまってないかも確認しろ

900 名前:Name_Not_Found 投稿日:2006/11/30(木) 22:45:06 ID:???
hhh

901 名前:896 投稿日:2006/11/30(木) 23:33:34 ID:???
読んでみましたが方法は載っていませんでした。やり方を教えてほしいんです。
あるいは欠陥言語で永遠に真実にはたどり着けないものなのでしょうか。

902 名前:Name_Not_Found 投稿日:2006/11/30(木) 23:54:59 ID:???
>>901
バーロー
そういうことじゃない
>>899>>2の4、つまり「うまくいきませんでした」ではなく、
「(OS,ブラウザなどの環境)で試したところ、(前述の環境での実行orエラー結果)になりました」
と具体的にどううまくいかなかったのか検証可能なように書けといっている
さらに>>4の11では「小数計算は誤差が生じる可能性がある」ってことをいっている
で、>>897がうまくいかなかったのなら、小数第3位が整数になるように数値*1000をMath.floorしてから10で割ってMath.roundにいれればいい


903 名前:877 投稿日:2006/12/01(金) 00:00:38 ID:SMaKPoC/
>何か勘違いしているような気がするが、
>前者は常に新しく生成されたfunctionオブジェクトが帰ってくる。
> A = Class.create();
> B = Class.create();
> C = Class.create();
>例えばこのABCはそれぞれ別のオブジェクト。

これが別のオブジェクトだと思う理由は何ですか?


904 名前:Name_Not_Found 投稿日:2006/12/01(金) 00:02:15 ID:???
>>901
どういう問題があったか書きなよ。それができないなら来るな。
そもそも1.005を完全に正確に表現できる処理系なんてC++だってJava
だってまずないと思うよ。言語が悪いんじゃなくてアンタが悪いね。
理解できないなら理解できるまで勉強しろ。さいなら。

905 名前:Name_Not_Found 投稿日:2006/12/01(金) 00:12:38 ID:???
>>903
反論した本人ではないけれど、多分、前者は無名関数をreturnしてるのがミソ
この場合のthisは無名関数を指すのでcreateを何度使っても競合しない
後者のcreate()はただひとつしかない関数でthisを使いまわすのはやめた方がいい

よく分からなかったら無名関数やクロージャについて調べるとわかるはず

906 名前:Name_Not_Found 投稿日:2006/12/01(金) 00:17:48 ID:???
>>903
前者のthisはcreate()でreturnしたときに新たに作られた関数のことだからいつでも別物
後者のthisはClass.createのこと

無名関数とかクロージャについて調べるといい


907 名前:906 投稿日:2006/12/01(金) 00:27:41 ID:???
訂正:
後者のthisはClassのこと

908 名前:877 投稿日:2006/12/01(金) 00:29:56 ID:SMaKPoC/
回答ありがとう。
こういうのを試してみました。
<html>
<head>
<script type="text/javascript">
<!--
var Class = {
create: function() {
return function() {
if(this.hhh == null) this.hhh = "";
this.hhh += "Abc";
return this.hhh;
} } }
function t() {
var a = Class.create();
var b = Class.create();
alert("1:"+a());
alert("2:"+b());
alert("3:"+a());
alert("4:"+b());
}
-->
</script>
</head>
<body onload="t()">
</body>
</html>
結果からすると、aとbでthis.hhhを共有しているので、
同じ関数リテラルがabに格納されていると思うのですが・・・。

909 名前:Name_Not_Found 投稿日:2006/12/01(金) 00:31:47 ID:???
>>908
同一オブジェクトかどうかを調べる演算子「===」で調べてみなよ。

910 名前:906 投稿日:2006/12/01(金) 00:34:17 ID:???
>>908
FF2.0やIE6.0では
1:Abc
2:AbcAbc
3:AbcAbcAbc
4:AbcAbcAbcAbc
となった
想定どおりでは?

911 名前:906 投稿日:2006/12/01(金) 00:36:28 ID:???
さらに言うと、あくまでもthis.hhhはClass.hhhに過ぎないので、関数は別物かと

912 名前:877 投稿日:2006/12/01(金) 00:37:25 ID:SMaKPoC/
>909
理由はさっぱり分かりませんが、すごく納得しました。
未熟ものですみませんでした。


913 名前:Name_Not_Found 投稿日:2006/12/01(金) 00:47:03 ID:???
>this.hhhはClass.hhhに過ぎない

?


914 名前:Name_Not_Found 投稿日:2006/12/01(金) 00:59:31 ID:???
>>908
その例だとa、bを関数として呼び出してるけど、
その場合関数内のthisはグローバルオブジェクト
(ブラウザ上ではwindow)を指すんだよ。
だからこの場合は
if(window.hhh == null) window.hhh = "";
window.hhh += "Abc";
return window.hhh
とやってるのと同じわけだ。

915 名前:Name_Not_Found 投稿日:2006/12/01(金) 01:09:44 ID:???
>>888
数年前に書いた。過去ログにあるはずだが、横着かましてんじゃねえぞ屑。
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-94282980
> The contained options can be directly accessed
> through the select element as a collection.

あと、HTMLのイベント属性は特殊なヴェンダー仕様及び実装になっている。
HTMLのイベント属性値は、自動的に作られる匿名関数本体になるが、
この匿名関数直下でvalueを参照すれば、
まず、この匿名関数直下の局所変数またはこの匿名関数の引数から
valueという名前の変数または引数を探す。
引数はeventという名前決め打ちの物しかないから当てはまらない。
変数にもvalueが無ければ、大局変数を探す前に、thisのプロパティを探索する。
従って、thisを明示せずとも、valueと書くだけで、this.valueになる。
例えば、options及びselectedIndexと言う名前の局所変数を宣言してなければ、
options[selectedIndex].value と書くことも出来る。

916 名前:Name_Not_Found 投稿日:2006/12/01(金) 01:24:52 ID:???
>>896
一番間違いが無いのは、決して数値としての計算をしないこと。
要するに、掛けたり割ったりNumber#toFixed()したりMath.abs()しては駄目。
まず、toString()する。そして、自前で分岐して置換する。

917 名前:Name_Not_Found 投稿日:2006/12/01(金) 07:52:38 ID:???
>>916
そりゃいいけど足し算とかもできないんじゃねえ。

918 名前:Name_Not_Found 投稿日:2006/12/01(金) 08:04:37 ID:???
自分の書き込み見てほしかった915がくずけってい

919 名前:Name_Not_Found 投稿日:2006/12/01(金) 08:14:20 ID:???
>>912
理由は簡単で、関数リテラルはそこを実行するたびに新たな別の
関数オブジェクトを作って返すっていうだけ。ECMAに書いてあるよ。
まず仕様を読まなくちゃね。

920 名前:Name_Not_Found 投稿日:2006/12/01(金) 08:22:11 ID:???
877に何を説明しても無駄っぽい

921 名前:Name_Not_Found 投稿日:2006/12/01(金) 16:07:18 ID:???
ボディ内に書いたwindow.onloadイベントでDOMにアクセス出来ないのは
仕様なのかな?

922 名前:Name_Not_Found 投稿日:2006/12/01(金) 16:18:16 ID:???
KWSK

923 名前:Name_Not_Found 投稿日:2006/12/01(金) 20:34:28 ID:???
XHTML 1.1 上で
document.write(document.lastModified);
を実現させたいのでありますが、XHTML1.1でdocument.writeは動作しないそうで困っております。

<p id="last-modified">test</p>

document.getElementById("last-mofidied").innerHTML = document.lastModified;

などと試してみても上手くいきません。DOMというものも一体何なのかわからず。
どのように書けば良いのでしょうか。

924 名前:Name_Not_Found 投稿日:2006/12/01(金) 21:02:38 ID:???
XHTML1.1を使わない

925 名前:Name_Not_Found 投稿日:2006/12/01(金) 21:16:18 ID:???
ちょっとそれはなしでお願いします。

926 名前:Name_Not_Found 投稿日:2006/12/01(金) 21:19:36 ID:???
document.lastModifiedを使わない

927 名前:923 投稿日:2006/12/01(金) 21:25:37 ID:???
毎度手動で更新日時を書くのは少々面倒なため自動でやりたいのでありますが、
document.lastModifiedで何とか表示できませんでしょうか。

928 名前:Name_Not_Found 投稿日:2006/12/01(金) 22:52:59 ID:???
phpなりSSIじゃやだ?

929 名前:Name_Not_Found 投稿日:2006/12/01(金) 22:59:28 ID:???
古典的な愚問>document.lastModified

930 名前:923 投稿日:2006/12/01(金) 23:10:03 ID:???
>>928
できればjavascriptでしたいと思いまして。

>>929
それはどういうことでしょうか?

931 名前:Name_Not_Found 投稿日:2006/12/01(金) 23:12:42 ID:???
XHTMLいじtったことないから適当だけれど
<p id="last-modified">test</p>
以降、もしくはonloadで
document.getElementById("last-mofidied").firstChild.data=document.lastModified;
とかしてもNG?
あと、前提だけど
alert(document.lastModified);
はもちろん出来ることを確認してるんだよね?

932 名前:Name_Not_Found 投稿日:2006/12/01(金) 23:41:41 ID:???
1秒ごとにsubmitしたいスクリプトなんですが
<form>タグ内に
<input type="button" onclick="setTnterval(submit(),1000)">
とやってみたのですが、ボタンを押しても一回だけsubmitされるだけで
intervalでsubmitされません。
何がいけないのでしょうか。

933 名前:Name_Not_Found 投稿日:2006/12/01(金) 23:43:56 ID:???
submit してページが遷移される造りになっていれば
当然一回しか submit されないわな

934 名前:923 投稿日:2006/12/01(金) 23:44:04 ID:???
>>931
ちょっと駄目のようです。
alertでちゃんと日時を返してくれるのは確認しております。

935 名前:Name_Not_Found 投稿日:2006/12/01(金) 23:46:14 ID:???
>>932
セットトンターバル?

936 名前:Name_Not_Found 投稿日:2006/12/02(土) 00:07:56 ID:???
>>935
どっちにしてもページ遷移すればsetIntervalは無効さ

937 名前:877 投稿日:2006/12/02(土) 00:46:21 ID:???
>>919
ありがとうございます。
そーですかぁ、仕様だったんですね。
なんか理屈から考えようとしてた(それ理屈?も間違ってたけど)のが間違いでした。
ECMA仕様書熟読してみます。

938 名前:Name_Not_Found 投稿日:2006/12/02(土) 01:24:01 ID:???
>>923
それidが一致してないじゃん・・・

939 名前:932 投稿日:2006/12/02(土) 01:37:19 ID:???
>>933>>935>>936
ありがとうございます。(Intervalはスペルミスでした)
ということは、1秒ごとにsubmitしたい場合はどのような方法が
一般的なのでしょうか?

940 名前:Name_Not_Found 投稿日:2006/12/02(土) 01:50:51 ID:???
>>939
意味がわからん

submit=ページが変わる

1度submitしたら基本的に別の画面に変わるもの

941 名前:923 投稿日:2006/12/02(土) 01:54:15 ID:???
>>938
ご指摘ありがとうございます、修正したら見事表示されました。

本当に申し訳ございません、レスをくださった皆様ありがとうございました。

942 名前:Name_Not_Found 投稿日:2006/12/02(土) 02:11:59 ID:???
フレーム?

943 名前:Name_Not_Found 投稿日:2006/12/02(土) 02:54:03 ID:???
>>932
同じ内容を1秒ごとにsubmitする意味って?

944 名前:Name_Not_Found 投稿日:2006/12/02(土) 03:17:16 ID:???
超つかぬことをおききしまする。

「もし、AがBで、かつCだったら・・・」を表すには、
if (A=B){
 if(A=C){
   //いろいろいろいろ処理
 }
}
と書くより他にないですか?
CGIみたいにif文一個で終わらせられない物かと思ったのですが・・・
とほほリファレンスにはありませんでした。

945 名前:Name_Not_Found 投稿日:2006/12/02(土) 03:21:26 ID:???
>>944
ここにそれらしきことが書いてあるが
http://www.tohoho-web.com/js/operator.htm#logical

つーか、とほほのどこがいいのかワカンネ

946 名前:Name_Not_Found 投稿日:2006/12/02(土) 03:22:01 ID:???
if(A==B&&A==C){
//処理
}
で十分

947 名前:Name_Not_Found 投稿日:2006/12/02(土) 03:23:44 ID:???
あ、なるほど。d楠。

>>945
プログラミングに慣れてない人間には一番わかりやすいってだけ。
#仕様書とか言われても見ても理解できんw
情報古くなってるかもしれないけど。。。

948 名前:Name_Not_Found 投稿日:2006/12/02(土) 04:53:41 ID:???
>>944
念のために言っておくとCGIとPerlは別物だからな。
Perl以外の言語でも(理論上はJavaScriptでも)CGIは作れるからな。

949 名前:Name_Not_Found 投稿日:2006/12/02(土) 08:38:11 ID:???
>>947
正直、とほほしか読めない奴には来て欲しくないな。
>>939
それ何に使うのか書きなよ。迷惑スクリプトは回答されないからね。

950 名前:Name_Not_Found 投稿日:2006/12/02(土) 10:07:39 ID:???
とほほ のどこがわかりやすいのかな?
あれは情報が古いから、わかりやすくて嘘の無い別のサイトを作るときの参考までに教えて欲しい

951 名前:Name_Not_Found 投稿日:2006/12/02(土) 10:13:45 ID:???
>>945
えーとですね、とほほの良いところは、ズラーッと書いてあるところです。
で、悪いところは、情報が古い上に時々間違いが書いてあるところです。

952 名前:Name_Not_Found 投稿日:2006/12/02(土) 12:23:26 ID:???
それだけJSが進化してきたってことだ、喜ばしいじゃないか。

953 名前:Name_Not_Found 投稿日:2006/12/02(土) 12:56:10 ID:???
情報が古いとか間違いとかもあるけど、とほほで学ぶと
間違ったJavaScript像が身についてしまって有害なんでは
と危惧している。熟読したわけじゃないけど、とほほで
勉強したとかいう厨房にはこのスレで山ほど遭遇したもんで。

954 名前:Name_Not_Found 投稿日:2006/12/02(土) 13:45:30 ID:???
KWSK for exm?

955 名前:Name_Not_Found 投稿日:2006/12/02(土) 13:49:47 ID:???
過去スレ全集→スレ内検索で「とほほ」を検索。

新スレは975超えたら。テンプレの参考サイトに >>717 を追加ね。

956 名前:Name_Not_Found 投稿日:2006/12/02(土) 14:03:37 ID:???
まあここにいるやつらが俺も含めて
とほほの批判はしても代わりになるサイトを
作ろうとしないっていうのもあるけどな。

957 名前:Name_Not_Found 投稿日:2006/12/02(土) 14:26:09 ID:???
mozillaと、msのサイト見ろ!で、済む事に、わざわざ労力を使う気にならない…

958 名前:Name_Not_Found 投稿日:2006/12/02(土) 14:59:50 ID:???
まっとうな奴→まっとうなドキュメントを見てまっとうに理解。
ダメな奴→ダメなドキュメントを見てさらにダメダメに。
ダメな奴が好むようにダメ風で、かつ内容がまっとうなサイト作り→至難の技。

959 名前:Name_Not_Found 投稿日:2006/12/02(土) 16:14:58 ID:???
ちょと、Safari使いいたら

for (i in navigator) document.writeln( i, " = ", navigator[i] );

晒してもらえないだろうか

960 名前:Name_Not_Found 投稿日:2006/12/02(土) 16:36:18 ID:???
http://www.danvine.com/icapture/

961 名前:Name_Not_Found 投稿日:2006/12/02(土) 16:37:00 ID:HZhsw6+P
ページ開閉時に関数を呼ぶイベントハンドラのテストをしてみました。
onLoadは成功したのですがonUnLoadは失敗してしまいました。
原因がわかりません。
どなたか教えてください。よろしくお願いします。
<html>
<head>
<title>あかさたな</title>
<script type="text/javascript">
<!--
function good(){
alert("aaaaa");
}
function goodbye() {
alert("aaaaa");
}
//-->
</script>
</head>
<body onLoad="good()" onUnLoad="goodbye()">
</body>
</html>

962 名前:Name_Not_Found 投稿日:2006/12/02(土) 16:38:39 ID:HZhsw6+P
>>961
の失敗した具体的な内容は画面を閉じてもアラート画面が開かなかったことです。

963 名前:Name_Not_Found 投稿日:2006/12/02(土) 16:46:18 ID:???
>>961
ページ移動した場合は?

964 名前:Name_Not_Found 投稿日:2006/12/02(土) 16:46:49 ID:???
あと、テストしたOSとブラウザは?

965 名前:Name_Not_Found 投稿日:2006/12/02(土) 16:54:30 ID:HZhsw6+P
>>963
それはテストしてません。
ブラウザはIE6でwindowsXPです。

966 名前:Name_Not_Found 投稿日:2006/12/02(土) 16:54:32 ID:???
好きな体位は?

あと、体験人数は?

967 名前:963 投稿日:2006/12/02(土) 16:59:24 ID:???
>>965
で、テストした結果は?

968 名前:Name_Not_Found 投稿日:2006/12/02(土) 17:02:28 ID:HZhsw6+P
>>967
アラート画面が表示されました。

969 名前:963 投稿日:2006/12/02(土) 17:04:21 ID:???
例えばonunloadをonbeforeunloadにしてみる
それでもだめなら諦める

970 名前:Name_Not_Found 投稿日:2006/12/02(土) 17:06:50 ID:???
bodyにonunloadとwindow.onunloadの違いも考えないとダメかも

971 名前:Name_Not_Found 投稿日:2006/12/02(土) 17:37:40 ID:???
過去の経験ではunloadを止めることは困難だったと記憶。
unload時に確実に何か動作させることも困難だったと記憶。

972 名前:Name_Not_Found 投稿日:2006/12/02(土) 17:38:19 ID:???
えーと、 >>971 の後者はちょっと自信なし。でもそうだったような気が。

973 名前:Name_Not_Found 投稿日:2006/12/02(土) 18:24:49 ID:a2H2EggP
Dojoを使って、スプリクト書いてるんだけど
ドラッグ&ドロップで動かしたリストをAjaxで投げて、保存したい。

その際の位置関係とかは、自作しないといけない?
左右上下に動かして、順番とかかえるような

なんか、このへんWEBで見つかんない。
詳しい方m(_ _)m

974 名前:Name_Not_Found 投稿日:2006/12/02(土) 18:31:19 ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/hp/1165051363/l50
連投規制なったんで残りだれかお願い

975 名前:Name_Not_Found 投稿日:2006/12/02(土) 18:55:01 ID:2z7/M7wg
はや師走ですね、こんにちは。
document.write( 3 + 4 );
はwrite()内を演算してしまいますが、演算させないでそのままの文字列と
して表示させることはできますか?つまり、
document.write( 3 + 4 );が「7」ではなくて「3+4」と表示されるようにしたい
のですが。

976 名前:Name_Not_Found 投稿日:2006/12/02(土) 18:56:50 ID:???
document.write( '3 + 4 ');

977 名前:975 投稿日:2006/12/02(土) 19:40:53 ID:???
>976 ご回答恐れ入ります。
僕の説明が悪かったです。お聞きしたいのは関数ですね。つまり、
document.write( F(n) );でnが「3+4」となっている場合に、このwrite()の
結果が「3+4」と表示される関数はどう書けばよいのでしょうか。

978 名前:Name_Not_Found 投稿日:2006/12/02(土) 20:34:39 ID:???
>>977
不可能でしょ。引数を演算してしまうのはJavaScriptの言語仕様だから止められない。
Lisp系の言語とかだと引数を演算しないままもらう方法があったりするけどね。

979 名前:Name_Not_Found 投稿日:2006/12/02(土) 20:37:44 ID:a2H2EggP
>>973
英語マニュアル読んでみることにします・・

980 名前:975 投稿日:2006/12/02(土) 20:55:19 ID:???
>>978さん。コメントありがとうございました。そうですか。諦めます。

981 名前:Name_Not_Found 投稿日:2006/12/02(土) 21:00:31 ID:???
次スレの7番。
ECMAScriptチュートリアル (アクセスできないとの説あり)
http://www.axis.t.u-tokyo.ac.jp/~shunak/ecmascript/

っての。説じゃなくて実際できないよ。削除しといた方がいいんとちゃう?
規格読めないヤシに突っ込まれる材料作っといてもなぁと。

982 名前:Name_Not_Found 投稿日:2006/12/02(土) 22:17:22 ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/hp/1165051363/l50

983 名前:Name_Not_Found 投稿日:2006/12/03(日) 13:04:37 ID:???
srcElementのDOM版はどうすればいいんでしょうか。

984 名前:Name_Not_Found 投稿日:2006/12/03(日) 13:06:33 ID:???
target

985 名前:983 投稿日:2006/12/03(日) 15:54:10 ID:???
おいらに? ありがとうございました。

986 名前:ななし 投稿日:2006/12/03(日) 21:05:32 ID:3hE8D/sa
はじめまして。http://music.j-total.net/data/028fu/034_fumido/003.htmlこのサイトの右クリックを解除するのなかなかできません。
どなたか教えていただけませんでしょうか?聞くところによると、アドレスの欄に何かを加えるのだそうですか。。。
よろしくお願いします。

987 名前:Name_Not_Found 投稿日:2006/12/03(日) 22:21:43 ID:???
>>986
糞IEを使わない

988 名前:Name_Not_Found 投稿日:2006/12/03(日) 22:33:52 ID:???
>>987
マルチにマジレス乙


989 名前:Name_Not_Found 投稿日:2006/12/03(日) 22:35:18 ID:???
javascript:void(document.oncontextmenu=document.onselectstart=null);

990 名前:Name_Not_Found 投稿日:2006/12/03(日) 22:47:29 ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/hp/1165051363/l50


991 名前:ななし 投稿日:2006/12/03(日) 23:02:05 ID:3hE8D/sa
>>987
具体的には何を使えばよいのでしょうか?

992 名前:Name_Not_Found 投稿日:2006/12/04(月) 13:29:21 ID:5e1ic5eo
JavaScriptでJSONのデータをevalして利用するのはわかるのですが、
JavaScriptからJSONデータを書き出すにはどうしたらいいでしょうか?

993 名前:Name_Not_Found 投稿日:2006/12/04(月) 13:44:49 ID:???
>>992
ttp://www.kawa.net/works/js/jkl/dumper.html

994 名前:Name_Not_Found 投稿日:2006/12/04(月) 14:53:34 ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/hp/1165051363/l50


995 名前:Name_Not_Found 投稿日:2006/12/04(月) 15:21:45 ID:???
switch-caseでcase条件が和の場合の書き方って
case 1|2|3 :
はダメなんだね。どうやるの?

996 名前:Name_Not_Found 投稿日:2006/12/04(月) 15:26:58 ID:???
WinIEってイメージオブジェクトの使い回しに不具合が有るのは常識なのかな?

既に生成したイメージオブジェクトを一応deleteして新たに作ってsrcを指定して
読み込もうとしてもロードしたりしなかったり挙動不審でまいっちんぐ



997 名前:Name_Not_Found 投稿日:2006/12/04(月) 16:38:36 ID:???
>>995
switch(num){
case 1: case 2: case 3:
//
//処理
//
break
}

998 名前:Name_Not_Found 投稿日:2006/12/04(月) 16:51:24 ID:???
次スレ
http://pc8.2ch.net/test/read.cgi/hp/1165051363/l50

999 名前:Name_Not_Found 投稿日:2006/12/04(月) 17:18:17 ID:???
前スレ

1000 名前:Name_Not_Found 投稿日:2006/12/04(月) 17:29:11 ID:???
1000なら初心者全員死亡

1001 名前:1001 投稿日:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


戻る

偽Dat2HTML LO v1.0b13 Converted.
ナスカ無料ホームページ無料オンラインストレージ