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

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

DOMContentLoadedとかwindow.onloadとかそのへんをうまく使って、
イベントドリブンにそのタイミングをつかむのが常套です。
23Name_Not_Found:2009/09/09(水) 19:37:31 ID:???
mobile版のIEやOPERAとjavascriptの互換性の
表のようなものはどこかにないですか?
24Name_Not_Found:2009/09/09(水) 20:06:55 ID:???
すでに表示済みで別のGUIの裏に隠れているウィンドウに対しwindow.openで内容を更新した場合、
そのウィンドウをアクティブにする方法はあるでしょうか?
25Name_Not_Found:2009/09/09(水) 20:14:07 ID:???
>>24
そんなの画面見てる人がアクティブにするからこまけぇこたあいいんだよ!
26Name_Not_Found:2009/09/09(水) 20:14:33 ID:???
window.open().focus()
27Name_Not_Found:2009/09/09(水) 23:36:42 ID:???
タブブラウザでそれやられるとたまらなくうざい
28Name_Not_Found:2009/09/09(水) 23:40:43 ID:???
ieタブブラウザだと、別画面にelement.focus()があるだけで、入力中の画面からフォーカスが消えたりするしな…
29Name_Not_Found:2009/09/10(木) 02:52:55 ID:???
firefoxとかは各タブに1つずつフォーカス持てるから問題なし
30Name_Not_Found:2009/09/10(木) 06:19:05 ID:???
safariで某webメールを三個くらい同時に開いたら
タブがあちこち切り替わりまくってわろた
1メール表示すんのに何回focus()やってんだ
31Name_Not_Found:2009/09/10(木) 06:56:43 ID:???
javascriptってライブラリないと糞だな
32Name_Not_Found:2009/09/10(木) 07:27:47 ID:???
ループを使ってgetアクセスを試して、データの存在をチェックしたいです。
実データは入らなくて、存在だけを確認するにはどうやったら良いんですか?
3332:2009/09/10(木) 07:29:06 ID:4KKdEF+1
http://hoge.jp/0.jpg 〜 http://hoge.jp/9.jpg
のやり方教えてください
34Name_Not_Found:2009/09/10(木) 07:45:17 ID:???
var n=1000;
var req = new XMLHttpRequest();
for(var i=0 ; i>n ; i++){
    req.open("GET","./"+n+".jpg",false);
    req.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT");
    req.send(null);
    switch(req.status){
        case 0:
        case 200:
            alert("あったよ");
            break;
        case 403:
            alert("アクセスできないよ");
            break;
        case 404:
            alert("なかったよ");
            break;
        default:
            alert("しらんがな");
            break;
    }
}
3532:2009/09/10(木) 07:48:29 ID:???
サンクス!!
36Name_Not_Found:2009/09/10(木) 07:58:10 ID:???
document.createElement には$()みたいの無いのか。
37Name_Not_Found:2009/09/10(木) 08:19:08 ID:???
function $ce(e){
    return document.createElement(e);
}
無ければ自分で
38Name_Not_Found:2009/09/10(木) 08:21:52 ID:???
div要素でクリックしたら色が変わるような同じボタンを複数作りたくて、
ボタンオブジェクトを作りたいんだが、
どうしてもonclickはいるし、htmlとscriptを完全に切り離すにはwindow.onload
がいるし、getElementByIdがいるし、でもwindow.onloadを複数回やっても
最後に生成したオブジェクトしか適用されないし、みたいなジレンマで動けない。
39Name_Not_Found:2009/09/10(木) 09:42:42 ID:???
>>37
dです。
こういうの自分で作っていくのはいいけど、
途中でややこしくならない?
皆、しっかり全部書いてんのかな。
40Name_Not_Found:2009/09/10(木) 09:47:14 ID:???
return って、その次に続く何かを返すって意味でいいの
41Name_Not_Found:2009/09/10(木) 09:48:35 ID:???
バレンタインのお返しと捕らえておk
42Name_Not_Found:2009/09/10(木) 09:50:38 ID:???


function barentainde(uketotta) {

if (uketotta == 1) {
return true;
}

return false; // 切ないね

*
43Name_Not_Found:2009/09/10(木) 10:10:05 ID:???
最後のなに
アナルか
44Name_Not_Found:2009/09/10(木) 10:31:27 ID:???
>>38
>>5の最後
45Name_Not_Found:2009/09/10(木) 15:06:17 ID:???
>>44
とんくす
あれからいろいろとやってみたんだがよくわからなかった。
練習のコード貼ってみる
var btn2 = new Btn(2);はうまく行くんだけど、
var btn1 = new Btn(1);がbtn2に上書き?っぽくなってしまって動いてくれない・・
どなたか助言おねがいします。
4645:2009/09/10(木) 15:07:12 ID:???
<body>
<h1>オブジェクトテスト</h1>
<div id="field" style="width:500px;height:500px;background-color:#dedede;"></div>
<script type="text/javascript"><!--
var Btn = function(num){
this.num = num;
this.elem;
this.hidden = false;
this.SetCreate(num);
}
Btn.prototype = {
SetCreate:function(){
var nd = "div_btn"+this.num;
this.elem = "<div id='"+nd+"' style='width:50px;height:50px;background-color:#000000;float:left;margin-right:10;'></div>";
document.getElementById("field").innerHTML=document.getElementById("field").innerHTML+this.elem;
var save = this;
document.getElementById(nd).onclick=function(){
var save2 = this;
if(save.hidden){
save.SetShow(save2);
}else{
save.SetHiden(save2);
}
}
},
47Name_Not_Found:2009/09/10(木) 15:08:24 ID:???
続き、

SetHiden:function(save2){
save2.style.background="#ababab";
this.hidden=true;
},
SetShow:function(save2){
save2.style.background="#000000";
this.hidden=false;
}
};
var btn1 = new Btn(1);
var btn2 = new Btn(2);
//--></script>
</body>

コードは>>46-47
です。
どうにかして、btn1もbtn2もボタンでぴこぴこしたいです。
よろしくおねがいします。
48Name_Not_Found:2009/09/10(木) 15:37:10 ID:???
e = document.createElement("div");
e.innerHTML = this.elem;
document.getElementById("field").appendChild(e);

innerHTMLいじるとDOM→文字列→DOMになるから既存部分のonclickが消えるんだよな
めんどくさかったからdiv二重にしてinnerHTML使ったけど、丁寧に属性付けるとかはご自由に
4945:2009/09/10(木) 15:50:08 ID:???
>>48
おお!できました!
まだ理解不足なところがありますがさっそく調べて勉強してみます
ありがとうございました。
50Name_Not_Found:2009/09/10(木) 16:48:19 ID:???
おーほんとだ、こんな罠もあるのか。横から勉強させてもらった
51Name_Not_Found:2009/09/10(木) 19:13:42 ID:V7b6o37D
ajaxで画面移動なしにボタンを押したら文字が切り替わる最小のサンプルコードが載ってるサイトってありませんか?
コード数がほんとに短いものだけを探してます
52Name_Not_Found:2009/09/10(木) 19:31:17 ID:???
53Name_Not_Found:2009/09/10(木) 19:36:28 ID:V7b6o37D
>>52さんありがとうございます
やっぱajaxをやるにはライブラリを使うのが当たり前の世の中なんですかね?
54Name_Not_Found:2009/09/10(木) 19:40:47 ID:???
yield文が使えるようになればライブラリなど不要になる
55Name_Not_Found:2009/09/10(木) 21:39:18 ID:SCI8x6tE
>>53
純粋にAjaxしたいだけなら、XHR用の関数作っとけば問題ない。

けど、>>51みたいに、そのあと必ずDOMいじりがあるから、
それ用の便利ツールも欲しい。

結果として、JQueryやprototypeのようなよく出来たスイーツが
使い勝手がいいのは確か。

もちろん、オレオレライブラリでもかまわんと思う。
56Name_Not_Found:2009/09/10(木) 21:41:32 ID:SCI8x6tE
>>54
ジェネレータイテレータってそんなに万能なものなん?
57Name_Not_Found:2009/09/10(木) 22:16:46 ID:???
非同期処理を理解できない奴がライブラリに逃げてるだけなので
yieldで同期処理っぽいことができればその部分はいらね、てことじゃないの
ジェネレータ自体はあまり関係ない
58Name_Not_Found:2009/09/10(木) 23:49:04 ID:???
そういう輩にyieldで同期処理っぽく書く実力があるだろうか
そもそもyieldが理解できるかどうかw
59Name_Not_Found:2009/09/11(金) 00:18:01 ID:???
コピペできればそれでいいのさ
60Name_Not_Found:2009/09/11(金) 15:23:19 ID:???
初心者板が見当たらなかったので、恥ずかしながらこちらで質問させてください

白背景のサイトの一番上に、4pxほどのカラーのボーダーを幅100%で入れて、
その下にロゴやメニューを配したheaderがあります
何もない状態から、左から右へさーっとラインが入っていきながら、
同時にロゴが浮き上がってくるように見せたいのですが、
わかりやすい方法を教えてもらえませんか?

javascriptはいつもオープンソースをありがたくお借りしているレベルの初心者です
自分に考えられる方法として、paraflaというアニメソフトの使用を試みたのですが、
色や動きがぎくしゃくして美しく作れませんでした

よろしくお願いします
61Name_Not_Found:2009/09/11(金) 15:32:04 ID:???
初心者スレ行った方がいいでしょうか?
62Name_Not_Found:2009/09/11(金) 15:32:30 ID:???
アニメgif
FLASH
Silverlight

お好きなものをどうぞ
63Name_Not_Found:2009/09/11(金) 15:44:03 ID:dK848PkL
>>60
俺もFlashがオヌヌメ。
64Name_Not_Found:2009/09/11(金) 16:15:59 ID:???
コンストラクタで変数宣言するとき
this.test;
とするのと
var test;
ってするのとは何が違うの
65Name_Not_Found:2009/09/11(金) 16:26:32 ID:???
これとほぼ同じ
function foo(x) {
x.a = 1;
var b = 2;
}
var obj = {};
foo(obj);
alert(obj.a);
66Name_Not_Found:2009/09/11(金) 17:08:20 ID:???
はじめまして
javascriptを利用してウェブ上から指定したURLを
WindowsMediaPlayerで開くようにしたいのですがどのようにすればいいのでしょうか?
67Name_Not_Found:2009/09/11(金) 17:18:14 ID:dK848PkL
>>66
window.open
68Name_Not_Found:2009/09/11(金) 18:20:43 ID:R/T/t37v
JavaScript の split について質問です。
コロン区切りの文字列 "a:b:c:d:e" に対して、個数制限付きの split を行いたいです。

a = "a:b:c:d:e".split(":", 3);

とやると

a[0] = "a";
a[1] = "b";
a[2] = "c";

となってしまいますが、perl や PHP のそれのように

a[0] = "a";
a[1] = "b";
a[2] = "c:d:e";

となって欲しいです。
何かいい方法はあるでしょうか?
69Name_Not_Found:2009/09/11(金) 18:35:51 ID:???
>>65
なるほど、ありがとうございます。
追加していくという感じでしょうか。

あと関連して、クラス的なものの中での変数のやりとりがよくわかりません。
例えば、
<body>
<div id="tes" style="width:50px;height:50px;background-color:blue;">クリック</div>
<script type="text/javascript"><!--
var Hoge=function(){se=this;this.hogehoge();}
Hoge.prototype={
ho:1,
hogehoge:function(){
document.getElementById("tes").onclick=function(){alert("場所@:値="+se.ho);}
}
};
var hoge = new Hoge();
//--></script>
</body>
のようにHogeのthisを(Hogeの中でならどこでも)取得したいのですが、上のようにse=this;としてしまうと
グローバル変数になてしまい、かといってvar seやthis.seにしてしまうと
場所@でse.hoでは取得できないし、this.se.hoにしてしまうと
document.getElementById("tes")のthisになってしまい・・
hogehoge(this)のように引数として渡しても、
prototypeに新たな関数が追加されるとまた引数が増えてしまう、
とういところで悩んでいて、結局、hoge.hoで取得するようにしてるのですが
hoge名が変わってしまう可能性も、と・・。
どうやるのが効率的なのでしょうかどなたかよろしくおねがいします。
70Name_Not_Found:2009/09/11(金) 19:11:07 ID:m+jn7Yi3
文字を出力するときdocument.write("test");って書くじゃないですか
このdocument.writeって部分を変数にいれてvar txt=document.write;txt txt("test");みたいな感じでできませんか?
ようはdocument.writeを自分の好きな名前にして利用したいのです
71Name_Not_Found:2009/09/11(金) 19:13:10 ID:???
function text(s){
    return document.write(s);
}
text("wwwwww");
72Name_Not_Found:2009/09/11(金) 19:32:20 ID:R/T/t37v
textarea の高さを、入力内容に追従して広がるようにできるでしょうか?
常に縦スクロールバーが出ないサイズになるようにしたいです。
73Name_Not_Found:2009/09/11(金) 19:45:10 ID:???
>>71
returnいらなくね?w
74Name_Not_Found:2009/09/11(金) 20:01:48 ID:???
>>72
var textarea = document.getElementsByTagName("textarea")[0];//対象
textarea.onkeydown = function(){
    this.style.height = this.value.match(/\n/g).length*1.1 + 3 + "em";
}
こんな感じかな。
this.value.match(/\n/g).lengthで改行を数えて、その数だけemで高さ指定している
75Name_Not_Found:2009/09/11(金) 20:10:25 ID:???
>>68

String.prototype.split2 = function(d, c){
 return (c == undefined)? this.split(d) : this.split(d,c).concat(this.split(d).slice(c).join(d));
};

テストはしてない
76Name_Not_Found:2009/09/11(金) 20:36:52 ID:???
>>74
改行だけじゃなくて折り返しも考慮したいんです。
折り返しってワードラップとかもあるから、計算しづらい、ってか無理なんですよね。
隠れエレメントとか作ってテキスト入れてみて height を取得するとかも考えてみたんですが、
隠れてるとうまくサイズが取れなかったような気もするしスマートじゃないしで、
もっと根本的な方法は無いかななんて探してる次第です。

>>75
データのシリアライズ・アンシリアライズに使いたいのですが、結構大きなデータなので全部ばらして残りを繋ぎなおすってのはちょっとコストが高いです。
今暫定でやってるのは、
3分割したい時には
a=str.split(":", 2);
a[2]=str.substr(a[0].length + a[1].length + 2);
みたいな感じです。
でもスマートじゃないですよね・・・
perl とか PHP みたいな仕様の方がいろいろと融通が利くと思うのに、JS の仕様は残念です。
77Name_Not_Found:2009/09/11(金) 20:42:44 ID:???
>>62 >>63
flashがおすすめということで、paraflaに再度挑戦します
parafla使ってうまくいかなかったのは、自分の力が足りないのかもしれないし
ありがとう、ガンバリマス
78Name_Not_Found:2009/09/11(金) 21:15:10 ID:???
>>76
var textarea = document.getElementsByTagName("textarea")[0];//対象
textarea.onkeyup = function(){
    e.style.height = e.scrollHeight + "px";
}
これなら折り返しとかも含まれて計算されてるからちょうど良いと思うよ
79Name_Not_Found:2009/09/11(金) 21:20:06 ID:???
this.style.height = this.scrollHeight + "px"; だったごめんね
80Name_Not_Found:2009/09/11(金) 21:29:43 ID:???
>>76
基本としてはコスト気にして使うような言語でもないからなぁ

正規表現を構築して抜き出したらどうだろう
/^(.*?):(.*?):.*$/m
こんな感じのを動的生成してマッチさせれば望むものになりそうだけど
81Name_Not_Found:2009/09/11(金) 21:45:24 ID:???
>>75は普通に間違えてた

>>76
無理矢理作ってみた
String.prototype.split2 = function(d, c){
 if( c == undefined || c <= 0 ) return this.split(d, c);
 var a=this.split(d, c-1), idx=0;
 a.forEach(function(elem){ idx += elem.length + 1; });
 if( idx < this.length ) a.push(this.substr(idx));
 return a;
};
82Name_Not_Found:2009/09/11(金) 22:12:51 ID:m6WGFIha
>>76
正規表現で捕獲したら?と思ったら既に>>80書いてあった
なので、もうちょっと一般化してみた
今macなのでfirefoxとsafariでしか試してない

var str = "a:b:c:d:e";
var n = 3;
var delimiter = ':';

var group = '(.+?)';
var groupArr = [];
for (var i=1;i<=n;++i) {
(i !== n) ? groupArr.push(group) : groupArr.push(group.replace('?',''));
}

var regExp = new RegExp(groupArr.join(delimiter));
var a = regExp.exec(str);
83Name_Not_Found:2009/09/11(金) 23:28:46 ID:???
このほうが普通に速いだろ
var a = 'a:b:c:d:e'.split(':');
a.splice(0, 2).concat(a.join(':'));
84Name_Not_Found:2009/09/11(金) 23:38:43 ID:m6WGFIha
>>83
join使わないことばかり考えてたわ
確かに簡潔だな
85Name_Not_Found:2009/09/11(金) 23:40:05 ID:???
splice知らなかった…
86Name_Not_Found:2009/09/11(金) 23:54:32 ID:???
split禁止って話じゃなかったのか
まあ実際は、JSなんかでMB単位のデータを扱う訳じゃあるまいしどうにでもなると思うけどね
携帯端末とか考えてるならサーバに投げとけ
87Name_Not_Found:2009/09/12(土) 00:36:15 ID:???
String.prototype.spmatch = function(separate, count) {
var token = '(.[^' + separate + ']+)';
var pattern = '^' + token;
count--;
while (--count) {
pattern += separate + token;
}
var regex = new RegExp(pattern += separate + '(.+)');
return this.match(pattern);
}

トイレ中に妄想したけど
関数としての見かけの挙動が欲しいならこんな感じじゃないの?
試してないのでたぶんエラー
88Name_Not_Found:2009/09/12(土) 00:37:23 ID:???
this.match(regex);
89Name_Not_Found:2009/09/12(土) 01:40:51 ID:???
正規表現を使った時点で不正解だな
90Name_Not_Found:2009/09/12(土) 01:47:14 ID:???
因みに split の過去分詞は split 。

splitted じゃないからな。
91Name_Not_Found:2009/09/12(土) 02:02:34 ID:???
>>89-90はなにをいってるんだ?
92Name_Not_Found:2009/09/12(土) 02:42:18 ID:???
JavaScriptを使ってページ内に複数存在する<a>タグのうち
IDの設定されている物のみを取得し配列に格納するにはどうすればよいでしょうか?

例)

testPage.html

<a href="http://google.co.jp" >1</a>
<a href="http://google.co.jp" id="id_2">2</a>
<a href="http://google.co.jp" >3</a>
<a href="http://google.co.jp" id="id_4">4</a>
<a href="http://google.co.jp" >5</a>

この場合に、

"id_2" , "id_4"

という値のみページ内から全て取得したいです。
宜しくお願いします。
93Name_Not_Found:2009/09/12(土) 02:52:05 ID:???
var elements = document.getElementsByTagName("a");
var array = [];
for (var i = 0; i < elements.length; i++) {
 var e = elements[i];
 if (e.getAttribute("id")) array.push(e);
}

たぶんこんな感じ
・・・ん、id値のみ?pushするもんいじってくれ
94Name_Not_Found:2009/09/12(土) 02:56:32 ID:???
>>93
ありがとうございます。流石です。。。
95Name_Not_Found:2009/09/12(土) 04:00:39 ID:???
PHPとかみたいに array[] = "string" で配列が追加出来たら便利なのになあ
96Name_Not_Found:2009/09/12(土) 06:25:11 ID:JFthGyJZ
>>95
その書き方気持ち悪いと思ってたけど気に入ってる人もいるんだな
97Name_Not_Found:2009/09/12(土) 06:27:41 ID:???
PHPまったく知らないんだけど

array[array.length] = "string";

と同じ?
98Name_Not_Found:2009/09/12(土) 07:02:05 ID:???
単純に思ったんだけど、
なんでおのおののブラウザでjavascriptを統一しねぇの。
cssにしろ何にしろ。
配置はまぁ許せるとしても、使える使えないは統一しとけや!
99Name_Not_Found:2009/09/12(土) 07:56:45 ID:???
進歩を否定したいのかね君は。
10076:2009/09/12(土) 08:03:25 ID:???
>>78
おーすばらしい!
そのままだと高さがちょっぴり足りないっぽくて縦スクロールバーが出てしまいますが、
あとは調整してみます。

>>80
まあそりゃそうなんですが、残りの文字列もまた同じように区切っていくので、同じ文字列が何度も
バラされたり繋がれたりバラされたり繋がれたり… を繰り返すのはちょっとなぁ、と言った感じなんです。
なので split + join 式は コストは n^2 オーダーになっちゃいます。
サイズにして大きくてもせいぜい 100KB 程度のもんだと思いますが、余計なところまで区切らずに
温存できるのであればそれに越したことはないって感じです。

正規表現を含め他いろいろと知恵をいただいたようで、実際使ってみてパフォーマンスに問題の無い範囲で
できるだけシンプルな実装を選ぼうと思います。

ありがとうございました。
101Name_Not_Found:2009/09/12(土) 08:06:20 ID:???
文字列操作は以外に遅いから
全部チェックした方がいいぜ
102Name_Not_Found:2009/09/12(土) 08:32:09 ID:???
プログラム中で指定したディレクトリ内の
*.bmp である画像のみを取得するにはどうしたら良いでしょうか?
103Name_Not_Found:2009/09/12(土) 09:12:58 ID:???
無理。CGIでやれ
104102:2009/09/12(土) 09:21:51 ID:???
>>103
ありがとうございます。
PHPでやることにします。
105Name_Not_Found:2009/09/12(土) 09:51:42 ID:???
画像の名前を連番にすればできる
106Name_Not_Found:2009/09/12(土) 10:08:43 ID:???
なんかieって我が道を突き進んでるな
107Name_Not_Found:2009/09/12(土) 12:12:00 ID:???
macでも目指してんのか
108Name_Not_Found:2009/09/12(土) 14:41:15 ID:???
mac版IEはIEですら無いからなあ
109Name_Not_Found:2009/09/12(土) 14:46:11 ID:???
>>107
マックの入り口前で転んで怪我してさいばんになってるのしってるの?
110Name_Not_Found:2009/09/12(土) 16:14:44 ID:???
もしかしてonkey系はフォームでしか使えない?
<div id="key"></div>
みたいにkeyの上でonkeypressしたときに何かを実行してやりたいんだけも・・
111Name_Not_Found:2009/09/12(土) 16:18:40 ID:???
フォーカスが当たってるところに入力されるのだからwindowにフォーカスが当たってたらwindowで発生するだろ
112Name_Not_Found:2009/09/12(土) 16:24:27 ID:???
>>111
見事できた。ほめてつかわすぞ
113Name_Not_Found:2009/09/12(土) 16:46:16 ID:???
お世話になります。

同じNameのテキストボックスの値を配列で取得したのですが、どのようにすればよろしいでしょうか?

<html>
<head>
<title>JavaScriptテスト</title>
<script type="text/javascript">
<!--
function check()
{
var inputBox = document.getElementsByTagName('txtKbn')[].value;
alert(inputBox[0]);
alert(inputBox[1]);
}
// -->
</script>
</head>
<body>
<form>
<input type="text" name="txtKbn"><br>
<input type="text" name="txtKbn"><br>
<input type="button" value="チェック" onClick="check()">
</form>
</body>
</html>
114Name_Not_Found:2009/09/12(土) 16:48:07 ID:???
functionを切らない状態で次のコードを実行すると問題無くスクリプトを実行する
事が出来るのですが、メソッドの中で次を実行すると「←」の部分で
undefined と、 substr ファンクションが認識されないというエラーが出てしまいます。
一体なぜでしょうか?

var test = "aaaa";
test = test.substr(1,3); // ← undefined 
alert(test);
115Name_Not_Found:2009/09/12(土) 16:54:58 ID:???
114
自己解決しました。
116Name_Not_Found:2009/09/12(土) 16:55:15 ID:???
>>113
基本に返って、[1, 2]をそれぞれ3倍してみてくれ

getElementsByTagNameで得た「要素の配列」と「[1, 2]」、
「それぞれのvalue取得」と「それぞれ3倍」が置き換えられる

ようするに横着するなということ
横着できるようにmap関数とかが用意されていれば別だけど

>>114
「functionを切る」ってなに?

>メソッドの中で次を実行すると
メソッド部分も書いてほしい
117Name_Not_Found:2009/09/12(土) 17:07:03 ID:???
>>116

すいません。
言っている意味がさっぱりわかりません。
118Name_Not_Found:2009/09/12(土) 17:38:36 ID:???
113
自己解決しました
119Name_Not_Found:2009/09/12(土) 18:17:35 ID:???
>>113

>>116の3倍がどこから出てるか知らんが、分けるってことだろ。
var inputBox = document.getElementsByTagName('txtKbn');
alert(inputBox[0].value);
alert(inputBox[1].value);
直接の取得はできないんじゃないの?
120Name_Not_Found:2009/09/12(土) 18:46:15 ID:???
getElementsByTagName→getElementsByNameじゃないの?
121Name_Not_Found:2009/09/12(土) 19:37:03 ID:???
<a>タグに
disabled 指定するのって本当は駄目なんですよね?

VSのコンパイラで警告が出ちゃいます。
122Name_Not_Found:2009/09/12(土) 19:59:11 ID:???
<!ATTLIST %a.qname;
%Common.attrib;
href %URI.datatype; #IMPLIED
charset %Charset.datatype; #IMPLIED
type %ContentType.datatype; #IMPLIED
hreflang %LanguageCode.datatype; #IMPLIED
rel %LinkTypes.datatype; #IMPLIED
rev %LinkTypes.datatype; #IMPLIED
accesskey %Character.datatype; #IMPLIED
tabindex %Number.datatype; #IMPLIED
>
a要素に使えるのはhref,charset,type,hreflang,rel,rev,accesskey,tabindexとstyleなどの共通属性(%Common.attrib;)
123Name_Not_Found:2009/09/12(土) 20:01:47 ID:???
>>122
レスサンクス

ただ、<a>タグにdisabledを指定しても(見た目)は確かに非活性になるんですけど
これってなんで
124Name_Not_Found:2009/09/12(土) 20:03:59 ID:???
HTMLの仕様とブラウザの仕様は違う
すれ違い
125Name_Not_Found:2009/09/12(土) 20:04:54 ID:???
仕様と実装が完全にイコールなら苦労しない
126Name_Not_Found:2009/09/12(土) 20:10:55 ID:???
なるほどブラウザのバグなんだね。
127Name_Not_Found:2009/09/12(土) 20:14:34 ID:???
んじゃ独自仕様は全部バグだな
つーかここHTMLスレじゃないから
128Name_Not_Found:2009/09/12(土) 20:26:54 ID:???
javascriptって音楽ファイルを流したりできないのか
でもブラウザにプレイヤー的な機能がないと無理か
flashでもいいけどあえてブラウザとjsだけで。
html5でそういうの出てこないのかな。
129Name_Not_Found:2009/09/12(土) 20:29:23 ID:???
<video></video>
<audio></audio>
Firefoxなら使える
130Name_Not_Found:2009/09/12(土) 20:47:25 ID:???
>>129
おぉ
firefoxすげ
131Name_Not_Found:2009/09/12(土) 21:41:18 ID:???
>>128
JSからプラグインいじったりJavaいじったりもできるからHTML5を待つ必要も無いぞ
132Name_Not_Found:2009/09/12(土) 23:27:08 ID:???
embed要素かobject要素を作ればいいんじゃないのか?
133Name_Not_Found:2009/09/12(土) 23:58:15 ID:???
勝手に音楽流すとかマジやめて
迷惑以外の何物でもない
自己中の極み
134Name_Not_Found:2009/09/13(日) 00:32:31 ID:???
ユーザ操作に対応して音楽を流すんならいいだろ?
135Name_Not_Found:2009/09/13(日) 00:40:14 ID:???
>>133
わかったブラクラに留めておくね
136Name_Not_Found:2009/09/13(日) 01:24:18 ID:???
前のページで指定した回数だけ、次のページを5秒ごとにsubmitしたいんですが、
↓ではだめですか?formの部分は省略してます。

function doSubmit() {
document.F.submit();
}

for (i=0; i< $_POST['menu']+1; i++){setTimeout("doSubmit()", 5000);}
137Name_Not_Found:2009/09/13(日) 01:30:28 ID:???
>>136
田代砲を作ってんじゃねーぞ!カス!!
138Name_Not_Found:2009/09/13(日) 01:35:14 ID:???
そのsubmitするformはtarget="_blank"とかになってんの?
139Name_Not_Found:2009/09/13(日) 01:38:01 ID:???
>>138
だから田代砲を作ろうとしてるって
相手にするな
140Name_Not_Found:2009/09/13(日) 02:17:52 ID:iIf6FG4n
ttp://1122soft.com/game/batting/

このサイトのような自動でランキング登録されるゲームを作りたいです。
FLASHのASとジャバスでできる?
他に何か必要?
141Name_Not_Found:2009/09/13(日) 02:19:56 ID:???
こんなところで質問して回答を得ようとしないことが必要
142Name_Not_Found:2009/09/13(日) 02:25:06 ID:???
>>140
鯖側スクリプトと多少の知識

JavaScript は要らないんじゃね?
143Name_Not_Found:2009/09/13(日) 08:52:02 ID:???
クラス化がいまいちわからん…

function getter(obj, str, flagA, flagB)
{
if (flagA)
setter(obj, array, flagB);
else
setter(obj, str, flagB)
}

function setter(obj, array, flagC)
{
}
144136:2009/09/13(日) 09:30:06 ID:???
田代砲?調べましたけど、そんないかがわしいものではないですw

phpでテストを作っていて、一定時間(5秒とか)が来たら、強制的に次の問題に
すすむようにしたいんです。ページを更新するだけなら出来るんですが、
回数を制限しないと、全問題が終わった後も永遠に更新し続けるので
回数を制御したいわけです。phpでjsのsettimeoutに相当するものも探したんですが、
よくわからないので、jsを利用しています。

>>138
formはphpのフォームにname ="F"と加えて、一応動作していますが、
phpとjsの連携として正しいやり方なのかは分からないんですが。
target"_blank"は調べてみます。
145Name_Not_Found:2009/09/13(日) 09:38:28 ID:???
問題画面にsetTimeoutで自動submitするようにしておくだけでいいんじゃない?
146140:2009/09/13(日) 09:41:54 ID:dUv/F7EH
>>142

鯖側スクリプトというとPHPでもOKでしょうか?
FLASHのASと、鯖側スクリプトで
制作できちゃったりするわけですね?
147Name_Not_Found:2009/09/13(日) 09:43:25 ID:???
navigator.userAgent
ってどのブラウザもこれを意識してくれてるのかな
ブラウザ判別っていろいろ方法があるけど
やっぱこれ使うのが一番いいのかな
148Name_Not_Found:2009/09/13(日) 09:44:40 ID:???
>>145
今はheadの部分において、phpのform全体を制御するようになってるんですが、
問題が表示されるphpの中にjsスクリプトを埋め込むわけですね。なるほど。
phpとjsの連携が分かってないので、その方向でも調べてみます。
ありがとうございます。
149Name_Not_Found:2009/09/13(日) 11:01:59 ID:???
>>147
userAgentは偽装できる。適当に書き換えてるのなんていくらでも見るし。
実装されてるメソッドとかで判別するのが一般的。

とはいえ、
if(document.all) ならIE、って判別する方法もあるけどあまりおすすめしない。
特定のブラウザで問題が起こるコードが出現したら、
そのコード自体を分岐条件にする方がいい。
150Name_Not_Found:2009/09/13(日) 11:11:24 ID:???
田代砲ってなんですか?
151Name_Not_Found:2009/09/13(日) 11:20:55 ID:???
かってNewsWeek誌が年末に「その年の顔」を選ぶためネット投票
した時、その年にのぞき事件を起こした田代まさしを1位にしようと
いう祭になって本当に投票1位になったことがあった。その時に
使われた自動連投スクリプトからその手のものを田代砲と呼ぶように
なったとさ。
152Name_Not_Found:2009/09/13(日) 11:57:05 ID:???
>>149
> 特定のブラウザで問題が起こるコードが出現したら、
> そのコード自体を分岐条件にする方がいい。
addEventListenerとattachEventの判別みたいなことかな?

しかしそれだけでは対応できない場合があるのも事実

例えばサポートしているけど、その機能に問題がある場合・・・
WebKitでdocument.styleSheetsがAlternate StyleSheetsを含まなかったり、
Opera 9.xでフルページズームがwindowにresizeイベントを起こさなかったり、
もろもろ枚挙に暇がない

折衷案として、「コード分岐」と「ブラウザ判定」を併用するのがいいと思う
そこで、「ブラウザ判定」を「プロパティによる判定」にするか「UA文字列による判定」にするかは設計思想次第、ってことで
153Name_Not_Found:2009/09/13(日) 14:17:07 ID:???
ブラウザ分岐は設計思想だったのか
どんな思想のときにどっちを選ぶのか興味があるぞ
154Name_Not_Found:2009/09/13(日) 14:35:21 ID:???
何がどれに対応してて対応してないかわからんから、結局全ブラウザで動作チェックするのが一番なんじゃないかと思い始めてきたぜ・・・
旧バージョンチェックツールでIEの場合はIETesterがあるけど、Fx版とかOpera版とかを誰か作ってくれんかなぁ
155Name_Not_Found:2009/09/13(日) 15:02:16 ID:???
IEは複数のバージョンを入れることが出来ないからスタンドアローン版が有志によって作られた
Fxとかは普通に出来るだろ
156Name_Not_Found:2009/09/13(日) 15:26:38 ID:???
でもスタンドアローン版IE入れると不具合でまくる不思議
157Name_Not_Found:2009/09/13(日) 16:13:56 ID:???
JavaScriptはページ内に直接書くより
外部ファイル(*.js)に定義した方が
クライアントへの2度目以降のロード時間が短縮されて
パフォーマンスが良くなる、という認識は正しいでしょか?
158Name_Not_Found:2009/09/13(日) 16:20:29 ID:???
そのページが静的なものならページ内に書いた方がパフォーマンスは良くなる
動的なページならパフォーマンス的には分けた方が良い
159Name_Not_Found:2009/09/13(日) 16:35:01 ID:???
いまどき多少のデータ量増加は誤差で、一番のネックはHTTPリクエストそのものだから
埋め込みでも切り分けてキャッシュ任せでも好きにしろと思うけどね
キャッシュ任せって言っても更新がないことを確認するHTTPリクエストがネックになったりするし
かといってキャッシュ効きすぎて更新されないようなこともたまにあるし

複数ページで使い回す(同時期に何度も読む)場合ならキャッシュ効果が最大に発揮されるから
いちいち埋め込むより切り分けたほうがいい
160Name_Not_Found:2009/09/13(日) 17:00:51 ID:???
>>158
動的も静的も関係ない
初心者は黙ってろ
161Name_Not_Found:2009/09/13(日) 17:07:55 ID:???
同じscriptの中にwindow.onmousedownと、あるdivの範囲で有効なonmousedown
で処理をしてるんだけど、onmousedownの処理が同時?になるのってやめといた方がいい?
同じイベントをwindowでダブらせるのとか
162Name_Not_Found:2009/09/13(日) 17:26:10 ID:???
>>160
静的で埋め込むと1回送って304 Not Modifiedが返るだけ
動的で埋め込むとページ全体が返る
静的で外部参照だと少なくとも2回のリクエストが発生する、ただし全て304 Not Modified
動的で外部参照だと返ってくるページ全体のサイズが少なくなる
163Name_Not_Found:2009/09/13(日) 17:28:49 ID:???
>>158 >>159
ありがとうございます。参考になりました。
164Name_Not_Found:2009/09/13(日) 17:34:29 ID:???
IE や Lunascape だと問題なく動作(表示される)するJavaScriptを含んだページが
FireFoxだとなぜか正常に表示されなかったり、
JavaScript自体が文字列として認識(JavaScriptが文字列として画面に表示
されてしまったりする)のはなぜでしょうか?

あと、jQueryってそんなに便利なのでしょうか?
165Name_Not_Found:2009/09/13(日) 18:25:07 ID:???
せんせい!162のいってることがりかいできません
166Name_Not_Found:2009/09/13(日) 19:40:55 ID:???
URL だけで動的と判断して毎回ロードするケースがあるのだよ
167Name_Not_Found:2009/09/13(日) 20:08:02 ID:???
ねえよ
168Name_Not_Found:2009/09/13(日) 20:14:56 ID:???
>>167
あるよタコ
169Name_Not_Found:2009/09/13(日) 20:18:32 ID:???
304が返ってくるまでの時間も考えような
170Name_Not_Found:2009/09/13(日) 20:22:40 ID:???
>>168
どういうとき?
200が返って来ないとロードされないぞ
171Name_Not_Found:2009/09/13(日) 20:46:39 ID:???
>>170
>>166自体の真偽は知らないけど、どのようにして200か304かをサーバが判断してるか考えたことある?
172Name_Not_Found:2009/09/13(日) 20:47:54 ID:???
>>171
>>166はサーバーサイドのことをいってたのか。
173Name_Not_Found:2009/09/13(日) 20:50:20 ID:???
ちゃんと考えろバカw
リクエストヘッダに判断材料乗せなきゃ200しか返しようがない
174Name_Not_Found:2009/09/13(日) 20:51:09 ID:???
URLだけって書いてあるからリクエスト以前の問題かと思ったんだ
175Name_Not_Found:2009/09/13(日) 20:54:31 ID:???
それなら「特定URLはキャッシュしない」と解釈すりゃ十分だろ
HDDに保存されるかどうかの違いしかないから好きにしてくれ
176Name_Not_Found:2009/09/13(日) 21:00:22 ID:???
> 166 名前: Name_Not_Found [sage] 投稿日: 2009/09/13(日) 19:40:55 ID:???
> URL だけで動的と判断して毎回ロードするケースがあるのだよ
177Name_Not_Found:2009/09/13(日) 21:08:10 ID:???
やはりクロスブラウザで要素内のマウス絶対座標取得は
yuiが最強か・・
178Name_Not_Found:2009/09/13(日) 21:09:02 ID:???
ほんとieは糞だな。
中途半端すぎる。
179Name_Not_Found:2009/09/13(日) 21:12:12 ID:???
canvasも対応してないブラウザ多いし・・
マウス座標ってそんなに需要のない機能なのだろうか。
使いどころ満載だとおもうんだけど・・
180Name_Not_Found:2009/09/13(日) 21:46:12 ID:???
標準化されても古いのをコピペしつづける奴がいる
ブラウザがそれに合わせようとしてまたずれる
この繰り返し
181Name_Not_Found:2009/09/13(日) 21:46:35 ID:b3QtjjNL
モマイら教えてください。

画面上の端から長方形の領域がニョキっと出てきて、
そこに文字列とかリンクを表示させることはできますか?
182Name_Not_Found:2009/09/13(日) 21:47:18 ID:tCcq28By
すいません 
現在LivedoorのBlogを利用しているものです。
アクセスするたびにトップの画像をランダムで表示するにはどうしたらいいのでしょう?
JavaScriptを触った事がないのですができますでしょうか?

良ければ教えてください。
183Name_Not_Found:2009/09/13(日) 21:54:21 ID:???
>>181
<div>動かせ

>>182
Livedoor BlogでできるかはしらないけどJavaScript使えるならできる
「トップの画像」の<img>だかCSSだかを変えればいい


でもここ人任せにするスレじゃないから二人ともまずは自分でがんばれ
184Name_Not_Found:2009/09/13(日) 22:00:09 ID:tCcq28By
>>183
なるほど
できるのは知ってたんですが、JS触った事がないので人任せにしようと思ってました。
とりあえずできるだけやってみます。
また躓いたらきますので、よろしくどうぞー
185Name_Not_Found:2009/09/13(日) 22:11:29 ID:???
嫌です
186181:2009/09/13(日) 22:17:05 ID:b3QtjjNL
>>183
トンクス
187Name_Not_Found:2009/09/13(日) 22:20:34 ID:???
>>185
早く死んでね
188Name_Not_Found:2009/09/13(日) 23:33:58 ID:???
var o1 = document.getElementById('sff');
var o2 = o1.getElementsByTagName('table')[0].getElementsByTagName('tr')[0];
var o3 = o2.getElementsByTagName('td')[0].getElementsByTagName("input")[4];
o3.style.fontSize = '15px';

昔のgoogleのフォントサイズがよくてこんな感じのグリモン書いたんですけど
なんか無駄が多い気がします。どこか治した方がいいとこありますか?
189Name_Not_Found:2009/09/13(日) 23:54:16 ID:???
(function(){
  var style = document.createElement("link");
  style.type = "text/css";
  style.rel = "stylesheet";
  style.href = "data:text/css;base64,Ym9keXsNCglmb250LXNpemU6MTVweDsNCn0NCg==";
  document.getElementsByTagName('body')[0].appendChild(style);
})();
めんどくさいときはこんな感じでスタイルシートを追加したり。あまり良くないけどね

Firefoxなら<input type="file"/>.files[0].getAsDataURL();で選択したファイルのdataURL(base64形式)が取得できて便利
190Name_Not_Found:2009/09/14(月) 00:46:38 ID:???
>>189
面白いアプローチだとは思うけど、CSSをエンコード埋め込みはどうだろうw
GMスクリプトならブラウザ決め打ちだし、Fxならこんな感じの手法で十分じゃない?

var e = document.createElement("style");
e.innerHTML = "body { color: gray }";
document.getElementsByTagName("head")[0].appendChild(e);
191Name_Not_Found:2009/09/14(月) 00:53:41 ID:???
DOM操作でスタイルいじるより直接スタイルシート設定した方が分かりやすいし何より高速

192188:2009/09/14(月) 01:28:28 ID:???
あー普通にスタイルシート追加すればいいのか。
>>190は短くていい感じですね。
参考にしてみます
>>189-191どもでした
193Name_Not_Found:2009/09/14(月) 02:08:13 ID:???
document.querySelector('#sff input[type="text"]').style.fontSize = '15px';

querySelector思い出して使ってみたら随分シンプルになった
すげーなぁこれ
194Name_Not_Found:2009/09/14(月) 03:55:21 ID:???
GM_addStyleが忘れ去られてる気がする
195Name_Not_Found:2009/09/14(月) 07:49:01 ID:???
Stylishもたまには思い出してください
196Name_Not_Found:2009/09/14(月) 09:22:10 ID:???
クロスブラウザって、
firefoxとchromeって挙動は同じ?
197Name_Not_Found:2009/09/14(月) 10:02:05 ID:???
>>196
> クロスブラウザって
???

> firefoxとchromeって挙動は同じ?
違う
GeckoとWebKitは違うレンダリングエンジンだから、DOM仕様の実装まわりで大小さまざまな差異がある
あとTraceMonkeyとV8でJavaScriptインタプリタも違うから、JavaScript/ECMAScript仕様の実装まわりでも以下略

198Name_Not_Found:2009/09/14(月) 10:15:49 ID:???
ie6って無視していい?
199Name_Not_Found:2009/09/14(月) 10:24:56 ID:???
いいよ
200Name_Not_Found:2009/09/14(月) 11:42:42 ID:???
じゃぁネットスケープは?
201Name_Not_Found:2009/09/14(月) 11:59:41 ID:???
お好きなように
202Name_Not_Found:2009/09/14(月) 12:44:11 ID:???
それぞれのブラウザで対応情報wikiなんてのがあったらいいのにな
203Name_Not_Found:2009/09/14(月) 12:58:23 ID:???
>>202
言いだしっぺの法則
204Name_Not_Found:2009/09/14(月) 13:38:55 ID:???
>>202
http://www.atmarkit.co.jp/fwcr/rensai/ajaxwatch05/01.html
こんなのがあったんだけど、なくなってしまったみたい。
205Name_Not_Found:2009/09/14(月) 15:33:52 ID:???
getBoundingClientRect()
firefox3でスクロールバーを動作させてから
値を取得すると、結果がころころ変わるバグを見つけました・・
どう対処すればいいのかわからん・・
206Name_Not_Found:2009/09/14(月) 15:40:30 ID:???
どうやらスクロールバーの初期位置より動いた値を加算してるみたいだ
スクロールバーの位置を引いてやればいけそうです
おさわがせしました
207Name_Not_Found:2009/09/14(月) 15:53:36 ID:???
他人の成果物にすぐにバグ呼ばわりするヤツには気をつけろってばっちゃが(ry

MDCぐらい見てくれ
208Name_Not_Found:2009/09/14(月) 19:51:22 ID:???
209Name_Not_Found:2009/09/14(月) 22:43:00 ID:???
Javascriptは初心者です。
練習がてらjavascriptで作られた↓と同じことをしようと思うんですが難しいですか?

スレイプニルスタート
http://www.sleipnirstart.com/
210Name_Not_Found:2009/09/14(月) 23:18:52 ID:???
>>209
聞くより手を動かす方に時間を割くべき
スクリプトは与えられ、実際に動くサンプルも存在する訳だからな

それとも、聞いて「簡単だよ」の言葉がなかったら早々にあきらめるつもりだったのか?
211Name_Not_Found:2009/09/15(火) 01:25:48 ID:???
右クリックメニューにcreateElementでmenuの階層を作りました。
で、末端の子供(menuitem)はクリックすると当然メニューが閉じて処理を行えますが、
親(menu)もダブルクリックで同じようにメニューを閉じてから処理をしたいんですが、
メニューの閉じ方、あるいは逆に閉じないようにする方法ってあるんでしょうか?
212Name_Not_Found:2009/09/15(火) 01:44:43 ID:???
IE と FireFox ってどうしてここまで画面を作った場合の

見え方がここまで違うの?

もうそれこそバージョンがかなり上がっている今日なのに。
213Name_Not_Found:2009/09/15(火) 01:46:20 ID:???
目が疲れてるんだよ
214211:2009/09/15(火) 01:50:47 ID:???
自己解決しますたorz .hidePopup()ですね。
閉じさせない方法はまだ解りませんが、もうちょっと頑張ってみます。

なんかいつも、さんざん考えて解らなかったことを意を決して質問をした途端に
解決への道を思いつく…なんなんでしょうねこれは。
215Name_Not_Found:2009/09/15(火) 02:20:15 ID:???
hidePopupってXULか?
文脈すら説明できないなら質問してくるな
216Name_Not_Found:2009/09/15(火) 07:58:54 ID:VwNyAwy9
p やら div やらがいろいろとネストしたページがあります。
それらノードのそれぞれに onclick を設定して、クリックされたときに処理を行いたいです。
希望は、クリックした一番上層のノードに対してだけ処理を行いたいのですが、
onclick は重なってる下層のノードにまでイベントがやってきます。
どのように対処したらよいでしょうか?

マウスカーソルの位置にある最上層のノードを取得する方法があっても対処できると思いますが、
そんな方法はありますか?
217Name_Not_Found:2009/09/15(火) 09:16:29 ID:???
r=255;
g=154;
b=45;
みたいな数値を#000000みたいな
16進数のカラーコードに変換したいのですが、
どうやるのがいいでしょうか。
r,g,bをそれぞれ単独で16進数に変換して+で結合でいいでしょうか?
それともこういうのに特化したメソッドとかはありますでしょうか。
よろしくおねがいします。
218Name_Not_Found:2009/09/15(火) 10:05:48 ID:???
>>217
('0'+n.toString(16)).slice(-2); かな。
219Name_Not_Found:2009/09/15(火) 10:12:34 ID:???
(((1<<8|r)<<8|g)<<8|b).toString(16).replace(1,'#')
220Name_Not_Found:2009/09/15(火) 10:51:28 ID:???
'#'+(('0'+((r<<16)|<g<<8)|b).toString(16)).slice(-6));
自信がないから括弧が多いけど、優先順位を調べれば外せる物もあるかも。
221Name_Not_Found:2009/09/15(火) 11:39:15 ID:???
222Name_Not_Found:2009/09/15(火) 11:49:59 ID:???
JavaScript習得したのならばPHPを習得するのは簡単だと色んなところで言われて勉強してるんだけど、俺にはPHPの方が難しく思える
もうデータベースの所がグッチャグチャになってしまっている・・・
構文だけではなく、インターネットやパソコンの知識を求められるから全然前に進まない・・・orz
223Name_Not_Found:2009/09/15(火) 11:53:36 ID:???
javascriptでもsql弄るでしょ
それと同じようにすればおk
224Name_Not_Found:2009/09/15(火) 11:59:23 ID:???
>>214
ぬいぐるみデバッグ

>>223
世の中の多くの人はJSから直にSQL叩く事はないと思うぞ
XULぐらいか?
225Name_Not_Found:2009/09/15(火) 12:30:07 ID:???
>>224

> 世の中の多くの人はJSから直にSQL叩く事はないと思うぞ
> XULぐらいか?

常識的に考えれば、そうですが変態マカーのSafari4は、JSでSafari内部に持つSQLiteが弄れます...
226Name_Not_Found:2009/09/15(火) 12:40:22 ID:???
>>218-220
おお、たくさん方法があるのですね
>>219さんので試してみたらできました。
シフト演算子は使ったことがなかったので
今から勉強してみます。ありがとうございました。
227Name_Not_Found:2009/09/15(火) 14:13:54 ID:BKfNREk2
JQueryの質問OK?
たいしたことじゃないんだけど、JQueryって適当なサンプル拾ってきて
自分のサイトに合うようにデザインいじったりするような使い方は
普通なんでしょうか?
228Name_Not_Found:2009/09/15(火) 14:51:28 ID:???
<STYLE TYPE="text/css"><!--
.r90 {filter:progid:DXImageTransform.Microsoft.BasicImage( Rotation:1 ); }
.r180 {filter:progid:DXImageTransform.Microsoft.BasicImage( Rotation:2 ); }
.r270 {filter:progid:DXImageTransform.Microsoft.BasicImage( Rotation:3 ); }
-->
</STYLE>
<script language="JavaScript"><!--
window.onload = function() {
if(event.keyCode == 1) {
ImgRot(r270)
}else{
if(event.keyCode == 2) {
ImgRot(r180)
}else{
if(event.keyCode == 3) {
ImgRot(r90)
}
}
function ImgRot(r){
for(i=0; i < document.all.tags('img').length; i++){
elm = document.all.tags("img")(i);
elm.className += r
}
}
//--></script>
1,2,3のいずれかのキーを押したときにそのページに在る画像を回転させたいのですが、jsの部分は何がおかしいのでしょうか?
cssの部分は<img class="r90"などと記述すれば動くので間違っていないことは確認できたのですが、
jsで1,2,3の押されているときにすべてのimgタグのclassにr90,r180,r270の押しているキーに対応したものを追加したいのです。
ご教示お願いします。
229Name_Not_Found:2009/09/15(火) 15:02:37 ID:???
おかしすぎw

・onloadイベントってどのタイミングで実行される?
・キーが押されたときにはどんなイベントが起きる?
・event変数とその中身はどこから来た?
230Name_Not_Found:2009/09/15(火) 15:25:56 ID:???
>onloadイベント
>event変数
loadしてからずっと動いてくれるのかと思ってました。
関数名を指定して
window.document.onkeypress = ~~
でいいんですよね?
>キーが押されたときのイベント
ifのあとの{ImgRot(r90)}がダメなのでしょうか?
ためしにImgRot(r)の中身を一つ目の関数の中に置き換えてみたのですが、動きませんでした。。
231Name_Not_Found:2009/09/15(火) 15:33:45 ID:???
>キーが押されたときのイベント
がこれ
>.onkeypress

それで、eventはどこから由来した?

window.onkeypress = function(event) {
alert(event.keyCode);
}
232Name_Not_Found:2009/09/15(火) 16:26:17 ID:???
助言ありがとうございました。
classにr〜〜を入れるほうもなっていなかったようで、prototype.jsを使ってやっと望む動きが出来るようになりました。
233Name_Not_Found:2009/09/15(火) 17:07:52 ID:???
さきからビット演算を勉強していたのですが、
たとえばシフト演算1<<33をすれば
戻ってきて1になると思うのですが、
これってjavascriptに限ったことなのでしょうか?
234233:2009/09/15(火) 17:38:05 ID:???
すいません自己解決しました。
そして間違えてました。2でした
235Name_Not_Found:2009/09/15(火) 20:01:42 ID:???
>>225
マジで?
ってか、普通はSQLはJavaScriptの学習内ではないよな
というか普通は弄らん
236Name_Not_Found:2009/09/15(火) 20:06:30 ID:???
JavaScriptでSQLをいじる例として・・

Components.classes["@mozilla.org/browser/nav-history-service;1"].getService(Components.interfaces.nsPIPlacesDatabase).DBConnection.executeSimpleSQL("VACUUM");
これをFirefoxのエラーコンソールに叩くだけで内部のSQLiteがVACUUMされる
237216:2009/09/15(火) 20:09:05 ID:???
>>221
すばらしすぎます!
ありがとう!
238Name_Not_Found:2009/09/15(火) 20:35:02 ID:???
>>235
HTML5の仕様でSQLストレージが取り込まれるみたいだからそのうち多くのブラウザに載っかることが予想される
239Name_Not_Found:2009/09/15(火) 20:46:14 ID:???
>>236
おおっ

>>238
マジで?
240Name_Not_Found:2009/09/15(火) 21:11:01 ID:???
皆はさ、JavaScript以外にどんなプログラミング言語習得してるの?
241MemoryLeak:2009/09/15(火) 22:02:59 ID:OPYMEq5Q
IEのJavaScriptのメモリリークで困っております。
下記のように、テーブル内にinnerHTMLを使い画像のリンクを
貼り付ける処理setIntervalで繰り返すとメモリリークが発生します。
(画像リンクではなく、テキストリンクにするとリークしませんでした。)
デザイン変更はできないので、どうにかしてリークを直したいのですが、
なにか有効な方法はありますでしょうか?

var str = '<a href=xxx class="zzz"></a>';
var tagBody = document.getElementByID('tag_body');
tagBody.rows[0].cells[0].innerHTML = str;

a.zzz{
background: url("../images/aaa.gif")
}
242Name_Not_Found:2009/09/15(火) 22:13:07 ID:???
>>240
PHP、C、Java
243Name_Not_Found:2009/09/15(火) 22:14:17 ID:???
>>242
マジで?
CやJavaまでも習得してるの?
玄人だねぇ
何歳くらいなん?
244Name_Not_Found:2009/09/15(火) 23:14:42 ID:???
20歳来てないよ。リアルに
245Name_Not_Found:2009/09/15(火) 23:23:25 ID:???
プログラミングは言語の種類は正直問題にならない。偏食は伸びないだろうけど
ただ、javascriptから入って高級言語を習得できるかはセンスに依ると思うが

スレチだな
246Name_Not_Found:2009/09/15(火) 23:41:37 ID:???
JS のあとに c++ やるとまず動作速度にびっくらこいたな
んで1秒間に60回も画面を消したり描いたりしてると思うと精神的にきつくなる
ブラウザだって内部で同じことやってるのは分かってるんだけどな・・・
247Name_Not_Found:2009/09/15(火) 23:42:47 ID:???
JSはCの皮をかぶったLISP
248Name_Not_Found:2009/09/15(火) 23:44:42 ID:???
C の後に JS やってびっくらこいたけどな
インタープリタ言語はエコじゃない
249Name_Not_Found:2009/09/15(火) 23:49:51 ID:954wbQDc
画像を横並びにしたいと思っています。
その際javascriptでposition:leftの値を操作して横並びにしたいと思っています。

例えば縦横10pxの画像を右に5px空けつつ横並びに

■ ■ ■ ■ ■ ■ ■ …

こんな感じにしたいと思ってます。
そのページ内では横並びにする以外の画像はありません。

その際やることは
・imgを取得する。
・leftに画像を配列の値×+15pxずつループしつつ足していく

ということでやって見たのですが…

var gazos = document.getElementsByTagName(img);
for (var i=0;i<gazos.length;i++) {
gazos[i].style.left = (gazos[i]*15)px;
}

全然出来ません…
よければお教え下さいませ…
250249:2009/09/15(火) 23:51:41 ID:???
ちなみにabsoluteとtopの指定はスタイルでやってます。
251Name_Not_Found:2009/09/15(火) 23:52:21 ID:???
>>249
html+css だけで思うような表示を作ってみ
できたらそれを js に落とし込む

二段ジャンプをしようと思うからつまづく
252Name_Not_Found:2009/09/16(水) 00:46:46 ID:???
確かに”結果”を先にhtmlで作ってからロジックを組むのが良いな
253Name_Not_Found:2009/09/16(水) 01:27:23 ID:???
ボタンがクリックされた自分自身の要素をファンクションに渡し
ファンクション内でその要素のIDを取得したいのですが、どうすればよいでしょうか?

<input type="text" text="テストのボタン" id="id_test" onclick="TestFunction(this)">


function TestFunction(obj)
{
alert(obj.ID);

}

エラーになってしまいます。
254Name_Not_Found:2009/09/16(水) 01:34:46 ID:???
何で大文字?
255Name_Not_Found:2009/09/16(水) 01:49:14 ID:???
>>254
単なるタイプミスです。
方針としては>>253で正しいでしょうか?
256249:2009/09/16(水) 01:54:48 ID:wVeQ+WmO
>>251
html+cssでは横位置について、各画像毎に割り振ることで作ってみました。

img{
position:absolute;
top;20px;
}

img#1{
left:0;
}
img#2{
left;15px;
}
img#3{
left:30px;
}




ただこれだと画像の数が増えてきた時に記述量が増える一方なのでjsでどうにか
したいと思うんですが、知識が半端なこともあるんですが出来ません。
よければhtml+cssで組んだ後、jsに落とし込む際の考えの筋道だけでも教えて
頂ければ有難いです。
できれば自分で作ってしまいたいのでヒントでも頂ければ助かります…
257Name_Not_Found:2009/09/16(水) 02:48:02 ID:???
>>256
position:absolute; の扱いでつまずいてると思ったんだけど
left を 15px ずつ加算すれば思った通りの表示ができるわけね

それだったら
>>249
gazos[i].style.left = (gazos[i]*15)px;

gazos[i].style.left = i*15 + "px";
でいけると思うよ

style.* に入れられるのは
css と同じ文法の「文字列」なので注意
258Name_Not_Found:2009/09/16(水) 04:12:56 ID:???
テーブル使えよって思ってしまう俺は駄目ですか・・・そうですか・・・
てか、レイアウトにテーブル使っちゃだめなん?
テーブルのが上手く行くことあると思うけどなぁ・・・
259Name_Not_Found:2009/09/16(水) 04:42:26 ID:???
私も特別absoluteとかを使う必要がない場合を除いてテーブル使うなぁ
上例の場合、テーブルの方に利点がある気がするけど
260Name_Not_Found:2009/09/16(水) 05:54:36 ID:???
論外
261Name_Not_Found:2009/09/16(水) 09:24:35 ID:???
>>244
ではまだ実用レベルってわけにはいかなそうだな
262Name_Not_Found:2009/09/16(水) 11:45:29 ID:???
今更こんなことを訊くのも恥ずかしいのですが・・・
Javascriptでの記法って、どんな記法が好ましいとか、この記法がよく使われている記法とか、そういったものはありますか?
263Name_Not_Found:2009/09/16(水) 12:13:40 ID:???
基礎を身につけていれば、そんなことは気にならない。
264Name_Not_Found:2009/09/16(水) 12:33:15 ID:+rRqp9Q9
インデントはタブ(4)かスペース4つかどっちがいいですか?
それぞれのメリットデメリットを教えてください
265Name_Not_Found:2009/09/16(水) 12:41:46 ID:???
スペースなんていちいち入れてられないだろ
266Name_Not_Found:2009/09/16(水) 13:26:06 ID:???
>>264

タブでもスペースでも好みでいい。

ただ、タブだとソースの後のコメントの頭が揃い辛かったり、
IDE使わずにノートパットで開くと表示が崩れて見えたりする。

でも、スペースもその数だけデータ数を消費しているし、
インデントを一発で決められないし...


>>265
どんだけ雑なんだよ
267Name_Not_Found:2009/09/16(水) 13:26:05 ID:???
スペース必修なとこにはスペース、
そうでもないところにはタブ
みたいにしておけば、
タブをブランクに一括変換しても不具合ないだろうし
268Name_Not_Found:2009/09/16(水) 13:33:54 ID:???
俺は開発段階では例えばvarとかnewとか以外はタブで見やすいように、
サイトに設置するときは場合によるけど改行やタブを全て無効にしてる。
269Name_Not_Found:2009/09/16(水) 13:35:31 ID:???
tabキーでソフトタブ挿入してくれるエディタもあるだろうに
スペースバー叩くぐらいならハードタブでいいけど、そういうエディタ使ってるならソフトタブお勧め

ハードタブなら見る人の好みで調整できるっていうのは幻想
tab数が一致しないとこういう事例で激しく崩れる
>  >  soLongLongFunctionName("引数が長ったらしくて二行になった時に",
>  >  >  >  >  >  >  >  _"タブとスペースいれて桁揃える人多いよね");

そういうことしないならハードタブのほうがなにかと楽ではある
まあぶっちゃけこのへんも宗教だから、自分の信じるほうを使えばいい

>>266
バイト数こだわるならcompressしろよw
270Name_Not_Found:2009/09/16(水) 14:05:59 ID:???
インデントっていうのは一発で決めるものだと思うんだよね
だからタブが普及していくのが当たり前
今後スペース厨は古い人間ぐらいしか生き残ってないだろう
271Name_Not_Found:2009/09/16(水) 15:38:44 ID:???
>>270
インデントを半角スペースにしてるやつは、Tabを打った時に一発でインデントできるようにしてるでしょ。
vimならset tabstop=4とか。
どっちもどっちだな。
半角だとちょっとインデントずらしたいときにきれいだし、タブだと移動が楽な時がある

スペースかタブ化は開発チームのコーディングルールで決めて、
公開の時は削除してmin.js化しちゃえばいいんじゃないかね
272Name_Not_Found:2009/09/16(水) 20:52:21 ID:c72K113W
>>270
どうでも良くね?
273Name_Not_Found:2009/09/16(水) 22:36:37 ID:GgpXIrWL
cearTimeout以外でsetTimeoutの関数をキャンセルする方法ってあります?
関数一般をキャンセルすることってできるんでしょうか?
274Name_Not_Found:2009/09/16(水) 22:37:31 ID:???
省略できるセミコロンはガンガン省略しちゃっておkでしょうか。
275Name_Not_Found:2009/09/16(水) 22:46:52 ID:???
>>273
シングルスレッドなんで実行が始まったら止まらないっていうか
関数が終わるまで処理が他に回らない
実行される前になんとかしろ

>>274
ここは省略できるとか考えてるぐらいなら何も考えず打った方が楽だし誤動作もないぞ
276Name_Not_Found:2009/09/16(水) 22:51:19 ID:???
>>274
その辺のcompresser使って空白改行削除とかしてみ
277Name_Not_Found:2009/09/16(水) 23:16:00 ID:???
ラジオボタンのonclick時に
テキストボックスへフォーカス当てる処理を入れてるんですが、
特定のテキストボックスだけ.focus()1回だけだと動作しない現象が起こってます。
2回書くと動作するんで問題ないっちゃないんですが、何か解せない…。

同じような現象に遭遇した人いませんかね?
ブラウザはIE6です。
278Name_Not_Found:2009/09/16(水) 23:55:31 ID:???
IE6とかないわ
279Name_Not_Found:2009/09/17(木) 00:19:31 ID:???
一応言うがIE7もないよ
280Name_Not_Found:2009/09/17(木) 01:01:22 ID:???
>>257
有難うございました!
281Name_Not_Found:2009/09/17(木) 03:02:41 ID:???
グローバル変数て使わないほうがいいの?
282Name_Not_Found:2009/09/17(木) 03:12:37 ID:???
http://ja.wikipedia.org/wiki/%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%AB%E5%A4%89%E6%95%B0
使わない方がいいっていうか、使いたくなくなる
283Name_Not_Found:2009/09/17(木) 03:33:42 ID:???
if(n==1){alert('ok');}
な感じでelseが必要ないときも
elseで何か書いてエスケープ的なことしたほうがいいの?
三項演算子で書こうとおもうと
三項目がなんか空になってしまって
どうやったらいいのかわからん
284Name_Not_Found:2009/09/17(木) 03:38:15 ID:???
n == 1 ? alert('ok') : 0;
285Name_Not_Found:2009/09/17(木) 03:48:53 ID:???
意味がわからん
そんな頭悪そうなコード書くなよ
286Name_Not_Found:2009/09/17(木) 03:52:34 ID:???
わからんならレスしなくておk
287Name_Not_Found:2009/09/17(木) 03:58:58 ID:???
>>284
とんくす。
0ということはfalseを返すということなのでしょうか?
288Name_Not_Found:2009/09/17(木) 04:02:46 ID:???
(n==1)&&alert('ok')

中二病の症例
*三項演算子や論理演算子に置き換えたがる
*型変換や省略で極限まで短く書こうとする
*意味もなくクロージャを作る
289Name_Not_Found:2009/09/17(木) 04:57:56 ID:???
プログラマの麻疹 - YoshioriのBlog
http://d.hatena.ne.jp/Yoshiori/20090706/1246849833
290Name_Not_Found:2009/09/17(木) 08:09:44 ID:???
この板にまで中二病とかあんのかw
291Name_Not_Found:2009/09/17(木) 08:55:31 ID:???
画面下部を固定する為に、<div>タグを使用してエレベータメニューを使用しているんですけど、
微妙に画面にちらつきがあり見栄えがよくありません。


常に画面下部に

<div style="width:850px" >この部分は常に固定です。</div>


のエリアを設けて画面の下部にちらつきなく固定するにはどうすれば良いでしょうか?
jQueryとか使わないと無理ですか?
292Name_Not_Found:2009/09/17(木) 09:48:14 ID:???
position: fixed 使う。
293Name_Not_Found:2009/09/17(木) 09:54:28 ID:???
>>291
CSS
294Name_Not_Found:2009/09/17(木) 11:32:26 ID:???
特定のキーを、onkeypressしている間はフラグをtrue、
onkeyupをすればフラグをfalse、これらをリターンできる関数を作りたくて
まず始めに、
function GetKeyPushFlug(keypresscode,keyupcode){
window.onkeypress=function(evt){if(se.GetkeyCode(evt)==keypresscode){return true;}}
//window.onkeyup=function(evt){if(se.GetkeyCode(evt)==keyupcode){return false;}}
}
//se.GetkeyCode(evt)は押されたキーcodeを返す

として、GetPuchFlug(97,65)でonkeypressされたとき、
flugを受け取ってみたいです。

そもそも、
function GetKeyPushFlug(keypresscode,keyupcode){
window.onkeypress=function(evt){if(se.GetkeyCode(evt)==keypresscode){alert(keypresscode);}}
}
はonkeypressしたときに指定したkeypresscodeでアラートしてくれました。
return tureのところをflug=true;みたいにグローバルにすれば
うけとれたのですが、できればflug=GetPuchFlug(97,65)として
press,upするとflugにtrueとfalseが動的に入るようにしたいです。
どう改善すればよいでしょうかよろしくおねがいします。
295Name_Not_Found:2009/09/17(木) 11:34:03 ID:???
訂正
//se.GetkeyCode(evt)はDown、Press、Up時のキーcodeを返す
296Name_Not_Found:2009/09/17(木) 12:23:13 ID:???
どっかの言語の知識をそのままはめようとしてるんだろうけど
根本的に、シングルスレッドのJavaScriptで「イベントが起きるまで実行停止」っていうのはあり得ないから
続きの処理を一つの関数にしてイベントに応答させるしかない

あと細かいツッコミ
>window.onkeypress=
プロパティへの代入だから一つしか登録できない
何重にも登録したいならイベントリスナつかうか
登録した複数の関数を実行できる仕掛けを持った関数一つを登録する

>flug
flag
297Name_Not_Found:2009/09/17(木) 12:45:56 ID:VqcfMdsQ
jQueryで要素内のテキストがある条件に一致するもののみを抽出して出力したいのですが、jQuery日本語リファレンスに則って
//piyo要素内のテキストがfugaに一致した時だけhoge要素以下のデータを出力する
$(xml).find("hoge").filter(function(index){
    return index == 1 || $(this).find("piyo").text() == "fuga"
}).each(function(){
    // 出力処理
});
こんなのを書いてみましたが、なんかもしかしてすごく効率が悪いことをしてるんでしょうか・・・
もっと適切なやりかたがあるような気がするんですが、見つけることができませんでした。
298Name_Not_Found:2009/09/17(木) 13:07:51 ID:???
確かにアホみたいに効率悪いな
だがそれがjQueryだ諦めろ
299Name_Not_Found:2009/09/17(木) 13:18:00 ID:???
>>297
とりあえず論理演算の基礎として || の意味勉強してこいw

>「インデックスが1(2番目)」もしくは「idが”fourth”の要素」
>return 「index == 1」 || 「$(this).attr("id") == "fourth"」;
(「」は追記)

効率考えるならいきなりeachしてfilterの代わりにif文使えばいいんでない?
300Name_Not_Found:2009/09/17(木) 13:20:27 ID:???
/descendant::hoge[position()=2 or descendant::piyo="fuga"]
XPathに直しても非効率
さらに関数呼び出しのオーバーヘッドが半端ない
301Name_Not_Found:2009/09/17(木) 13:23:21 ID:???
>>297
<hoge>
 <piyo></piyo>
</hoge>
って構造だと思っていいの?

var filter = 'fuga';
var $res = $(document)
       .find('hoge > piyo:contains(' + filter + ')')
        .each(function() {
          var $elem = $(this);

          if ($.trim($elem.text()) === filter) return $elem.get(0);
       });

こんな感じとか。
filterをtextに含んでる要素を抜き出して絞り込み、その要素のtextがfugaに一致してるやつを抽出
空白はあってもいいことにしてる。あとeachをfilterで書いてもいいかな。
302Name_Not_Found:2009/09/17(木) 13:38:39 ID:???
見た目は簡潔なんだが内部的に>>297と大して変わらない
303Name_Not_Found:2009/09/17(木) 14:00:48 ID:???
jqueryとかlightboxみたいなjavascriptのライブラリ一覧みたいなサイトってありませんか?
304Name_Not_Found:2009/09/17(木) 14:31:31 ID:???
>>297のやりたいことがもう少し詳しくわからないと何とも言えないな。
そもそも要素の中の文字列が完全一致しなきゃいけないパターンってどういう場合?
305297:2009/09/17(木) 15:31:47 ID:???
すみません297です。たくさんのレスありがとうございます。とりあえず・・・
>>299
すいません、論理演算のところはそのままサイトからコピペしてあとで調べようとしてそのままほったらかしにしてました・・・
>>301
そんな構造です。hoge下にpiyoだけでなく、mogeやその他色々入っています。条件一致したらmogeやその他の内容も選んで出力します。
>>304
すいません。具体的にはpiyoの内容は日付です。特定の日付と一致した場合・・・という処理を考えています。
と、ここまで書いて思ったのですが、xmlを
<hoge piyo="fuga">
    <moge></moge>
</hoge>
という構造に変えることが可能であれば、その方がより効率的に処理できるのだろうか?
・・・と考えて、何か根本的に違っているのかもしれないと疑心暗鬼状態です。
306Name_Not_Found:2009/09/17(木) 15:33:46 ID:???
|| って左右のどっちかが真ならok って意味だっけ?
307Name_Not_Found:2009/09/17(木) 15:39:34 ID:???
>>306
そのぐらい>>6みてなんとかしろよ
それでもわからないなら試してみろよ
bool演算なんて2*2の4パターンしかないんだから
308Name_Not_Found:2009/09/17(木) 17:53:13 ID:???
ttp://www.atmarkit.co.jp/fdotnet/ajaxjs/ajaxjs04/ajaxjs04_03.html

■プロトタイプ・チェーン − JavaScriptの継承機構 −
ってところに書かれてるコードで
var Hamster = function() {};
Hamster.prototype = new Animal();

Hamster.prototype.gnaw = function() {
window.alert("ガジガジ…");
};

gnawの他にsexをHamsterを追加しようと思ったらまた
Hamster.prototype.sex=function(){}にしないといけない
みたいなんだけど、
var Hamster=function(){};
Hamster.prototype=new Animal();
Hamster.prototype={
gnaw:function(){},
sex:function(){}
};
こういう感じでまとめて書けないものなんでしょうか
309Name_Not_Found:2009/09/17(木) 18:10:21 ID:???
>>308
その場合はダメだね。

Hamster.prototype={
gnaw:function(){},
sex:function(){}
};

こうやるとprototypeをハッシュで上書きしちゃうから元から定義されてたものが消えちゃう。
つまり、new Animal()でせっかく入れたものが消えちゃうのでダメ。

初めにオブジェクト作る場合はそれでもいいけど、継承とかの場合はダメだね。
310Name_Not_Found:2009/09/17(木) 18:10:33 ID:???
>>308
できるよ。
聞く前に試してみればいいじゃない。
311Name_Not_Found:2009/09/17(木) 18:11:23 ID:???
あ、継承だとダメなのか。
312Name_Not_Found:2009/09/17(木) 18:14:31 ID:???
>>309,310-311
なるほど、すっきりしました。
ありがとうございました。
313Name_Not_Found:2009/09/17(木) 18:41:03 ID:???
>>296
参考にいろいろ修正加えてみます
ありがとうございました
314Name_Not_Found:2009/09/17(木) 19:10:24 ID:qx2+GJw5
>>312
これでマージ関数をつくる者がまた一人…
315Name_Not_Found:2009/09/17(木) 19:40:00 ID:???
appendChildをbodyの中に作りたいんですが
<body id='body''>
としておいて
document.getElementById('body').appendChild(hoge);
でhogeをcreateできたんですが、
body.appendChild(hoge);
みたいな感じで、もっと簡単にできないでしょうか。
もしくは、事前にhtmlにid='body'を手動で追加したくないというか
js側でbodyにbodyにid='body'を最初に追加して
みたいなことがやりたいtです
どうかよろしくお願いします。
316Name_Not_Found:2009/09/17(木) 19:40:52 ID:???
document.getElementsByTagName('body')[0].appendChild(hoge);
317315:2009/09/17(木) 19:41:41 ID:???
→appendChildでbodyのなかにdiv要素を追加したい
でした
318315:2009/09/17(木) 19:43:07 ID:???
>>316
できました!ありがとうございました!
319Name_Not_Found:2009/09/17(木) 20:04:29 ID:???
document.getElementsByTagName('body')[0].insertBefore(document.createTextNode("ほげ") , document.getElementsByTagName('body')[0].firstChild);
ふと思ったがbodyの直後に要素を入れるにはこれであってるかな
320Name_Not_Found:2009/09/17(木) 20:10:58 ID:???
firstChildなら合ってる
でもDOMの話題の中で直後って言ったら普通はnextSibling
321Name_Not_Found:2009/09/17(木) 20:17:25 ID:???
そういえば確かに<body>の後は</html>か・・
322Name_Not_Found:2009/09/17(木) 20:22:49 ID:???
違うわ未定義だった
323Name_Not_Found:2009/09/17(木) 20:53:04 ID:qx2+GJw5
みんな
document.body
は使わんの?
324Name_Not_Found:2009/09/17(木) 21:00:20 ID:???
XML操作で使えないゴミ
325Name_Not_Found:2009/09/17(木) 21:11:45 ID:qx2+GJw5
>>324
body要素になにか追加したいんじゃないの?
326Name_Not_Found:2009/09/17(木) 21:12:35 ID:???
getElementsByTagName('body')なんて書く奴が言っても説得力がない
327Name_Not_Found:2009/09/17(木) 21:17:19 ID:???
えっ
328Name_Not_Found:2009/09/17(木) 23:30:10 ID:???
ちょっと質問なんですけど。
リンクを無効にする記述は、aタグのhrefに"#"と"javascript:void(0)"の
どっちを入れる記述がより良いのでしょうか。
329Name_Not_Found:2009/09/17(木) 23:44:13 ID:???
どちらも最低
330Name_Not_Found:2009/09/17(木) 23:51:44 ID:???
href書かなきゃいいじゃん
331Name_Not_Found:2009/09/18(金) 00:13:08 ID:???
>328
onclickでreturn false;すれば?
332Name_Not_Found:2009/09/18(金) 01:02:37 ID:???
>>292 >>293 サンクス

position : fixed をぐぐって調べて
333Name_Not_Found:2009/09/18(金) 01:18:40 ID:LxbdIqxU
IE8にしたら大崩れです。
334Name_Not_Found:2009/09/18(金) 01:22:45 ID:???
>>329
他に無効にする記述ってあるのですか?
すみません勉強不足です。

>>330
hrefを書かないで試したのですが、確かにリンクは無効になってるんですけど
ちょっと思っていたのと違いました・・・

>>331
onclickにreturn false:をつけるのは、どんな意味があるのでしょうか。
335Name_Not_Found:2009/09/18(金) 01:59:45 ID:???
その”思っていた”のがどうなるのかを書けよw
336Name_Not_Found:2009/09/18(金) 03:25:02 ID:???
>>334
「リンクですらなくなってしまう」
 → href 属性をトバしてから必要ならスタイルシートで下線をつける (ベタなり class 属性なり)
「リンクだが GUI としてページ移動する機能を失う」
 → href は必ずそのまま残して >>331

そいつがそこに存在する意味をよく考えたら答えは出るだろ
337Name_Not_Found:2009/09/18(金) 06:58:59 ID:???
>>331
<SCRIPT LANGUAGE="JavaScript">
function func_test(){
 var f = document.forms[0]

f.action = "<%=retuest.getContext()%>/TEST/TEST2.Action?doInit";
f.target = "_self";
f.method = "POST";
f.submit();
}
</SCRIPT>
〜省略〜
<a href="javascript:void(0)" onclick="func_test();">リンク</a>

javascript:void(0)で無効化した時、onclickにreturn false;をつけるのを忘れてしまい、
そうしたら画面遷移ができなくて原因を特定するのに相当時間を使ってしまいました。

このreturn false;、よく分かりません・・・
338Name_Not_Found:2009/09/18(金) 08:32:06 ID:???
>>336
前者の場合キーボードでアクセスできたっけ?

あとreturn false; とかよりpreventDefaultのが書く実
339Name_Not_Found:2009/09/18(金) 09:34:29 ID:???
クロスブラウザの面で不確実だったりしないか?
340Name_Not_Found:2009/09/18(金) 09:54:49 ID:???
全ての要素にtabindexを振れる現在、未だにaを書く奴がいるのが驚き
HTML4で妥当でないのが嫌ならHTML5にしろ
341Name_Not_Found:2009/09/18(金) 10:40:21 ID:???
>>337見て力抜けた
342Name_Not_Found:2009/09/18(金) 10:50:49 ID:???
動的に要素を作成して
「ここをドラッグすると移動」
のようなボタンを入れるとき、
このボタンを触ったところから一番上の親要素を取得して、どの要素の childNodes に含まれているのかを調べる際

var ボタンの親要素 = ボタンの要素.parentNode.parentNode.parentNode....;
if (ボタンの親要素 == 指定の親要素)
else if...

これ以外に知る方法はありませんか?
343Name_Not_Found:2009/09/18(金) 11:13:36 ID:???
指定の親要素.getElementsByTagName(ボタンの要素.tagName).indexOf(ボタンの要素) != -1

element.getElementByIdが存在しないことに絶望した
ArrayのindexOfはJS1.6だから注意

つーか初期化時にDOM舐めるなり埋め込んだデータを基にするなりで一覧作っとけ
parentTable[ボタンの要素] == 指定の要素
344Name_Not_Found:2009/09/18(金) 11:26:16 ID:???
>>343
なるほど、一覧で確保していけばいいですね
おっさんありがとう!
345Name_Not_Found:2009/09/18(金) 12:04:12 ID:???
>>343
実装わからないけど、XPathでの動きを考えるとidはelementで絞る必要がないんじゃない?
div#idより#idの方が速かった覚えがある。深く追求しなかったけど、
「div取得→そこからidという属性の要素を探す」
と、
「ハッシュみたいなのからidを探す」
という感じで実装してるのかなと勝手に思い込んだ。
346Name_Not_Found:2009/09/18(金) 16:29:46 ID:???
formのcreateElementでmaxlength指定できないっぽい?
347Name_Not_Found:2009/09/18(金) 16:47:49 ID:???
maxLength
348Name_Not_Found:2009/09/18(金) 17:36:54 ID:???
>>347
それでもできないなぁとおもって冷静になってみてたら
今までinputのtextじゃなくてformにそれやっててしまってた
dクス
349Name_Not_Found:2009/09/18(金) 19:36:13 ID:???
>>342
Node#compareDocumentPosition
Element#contains

あるいはHTMLでparentNodeを辿ってルートまで行き着くのに10回もかからない
getElementsByTagNameとかアホか
350Name_Not_Found:2009/09/18(金) 20:52:19 ID:+8dUn7t3
俺もinput要素の親になるform要素探す時とか

input = input要素;
form = (function(node){
if(node.nodeName == "FORM") return node;
else if(node.parentNode) arguments.callee(node.parentNode);
else return null;
})(input);

な感じで、辿るなあ。
351Name_Not_Found:2009/09/18(金) 20:52:50 ID:+8dUn7t3
間違えた。
else if(node.parentNode) return arguments.callee(node.parentNode);

だ。
352Name_Not_Found:2009/09/18(金) 21:42:51 ID:???
そんな君にはformプロパティの存在を教えてあげよう
353Name_Not_Found:2009/09/18(金) 23:15:47 ID:+8dUn7t3
>>352
いまのいままで知らなんだー!
色々書き直さなきゃー。
354Name_Not_Found:2009/09/18(金) 23:17:52 ID:+8dUn7t3
>>352
あせってお礼が遅れました。
ありがとう!
355Name_Not_Found:2009/09/19(土) 01:24:32 ID:???
HTMLスレに質問したら誰も分る人がいなかったので
こちらにて質問させて下さい。

HTMLページ内にYouTube埋め込み動画の中央(横長のブロックを重ねたい) に
  <div>あいうえお</div> 
というブロック要素を表示しようと

<div style="z-index:20:">あいうえお</div>
<div style="z-index:10">(1):YouTubeタグ</div>
   ※ <object width="425" height="344"></object> ・・・・(1)

( YouTubeの動画エリアの上に<div>ブロックが重なる様にposition absoluteの表示は
 style部分に入れていますが、略しています。)

として、z-indexも指定しここでは「あいうえお」の部分がYouTubeの表示エリア(ブロック)
よりも手前に表示されるハズなのですが、なぜかYouTubeタグの方が手前に表示されてしまいます。
一体どうすればYouTubeよりも手前にブロックを表示(被せて)する事が出来ますか?
356Name_Not_Found:2009/09/19(土) 01:57:42 ID:???
スレチ
いね
357Name_Not_Found:2009/09/19(土) 02:08:31 ID:???
「z-index select」や「z-index flash」あたりでぐぐれ
ニコ動もどきやりたいなら諦めろ
358Name_Not_Found:2009/09/19(土) 03:07:41 ID:???
wmode="transparent"
359Name_Not_Found:2009/09/19(土) 03:29:34 ID:???
>>357
ニコはねー
でもありがとう

>>358
ありがとうございます。
やりたい事が出来そうです。
シェーシェー
360Name_Not_Found:2009/09/19(土) 21:48:18 ID:wjTYvd62

data1='<span id="id1">hogehoge</span>';

変数内に入っているHTMLソースから、
document.getElementByIdなどを使って、
id1の内容を、直接取得することは可能ですか?
361Name_Not_Found:2009/09/19(土) 21:56:41 ID:???
最初の要素だけでいい?

var data1 = '<span id="id1">hogehoge</span>';
var e = document.createElement("div");
e.innerHTML = data1;
alert(e.firstChild.id);
362Name_Not_Found:2009/09/19(土) 21:57:22 ID:???
あ、ごめん内容か
363Name_Not_Found:2009/09/19(土) 21:57:33 ID:???
id1の内容とは?
364360:2009/09/19(土) 22:07:35 ID:wjTYvd62
>>361
ありがとうございます。
直接id1のhogehogeが取得出来ればと思いましたが、
やっぱりdocument.createElementしかないですかねぇ


365Name_Not_Found:2009/09/19(土) 22:54:53 ID:???
取得なのにcreate?
366Name_Not_Found:2009/09/19(土) 23:00:37 ID:???
関数にDOM作って突っ込んでるだけだけど
367Name_Not_Found:2009/09/19(土) 23:11:07 ID:???
HTML parserのcreate
368Name_Not_Found:2009/09/19(土) 23:15:06 ID:???
/<(.*) .*id="(.*?)".*>(.*?)<\1>/
なんちゃって正規表現だとこんな感じ?
369Name_Not_Found:2009/09/20(日) 03:52:44 ID:???
一端HTML parserを通さねばならないのを分かっていながら360みたいのを書くのは頭が悪い
データ内容とタグ表現は最初から分離しとけ
370Name_Not_Found:2009/09/20(日) 10:28:42 ID:???
>>349
contains()
  ∩  ∩
  (・∀・| | ウヒョー
  |     |
⊂⊂____ノ

compareDocumentPosition() が使えるなら使って == 8 が真ならそのノード返して
使えないなら contain() で取得すれば良いんですね。
これでまた馬鹿の一つ覚え用カードが増えました、ありがとうございます。

>>350-352
ちょっと使えそうなところありそうなので横からメモらせて頂きます。

ありがとうおっさんたち!
371Name_Not_Found:2009/09/20(日) 18:45:44 ID:J42yuRGi
java.htmlとJson.jsの二つのファイルがあります
java.htmlからJson.jsを読み込むとアラートで「テスト2」と出すテストをしています

=====「Json.jsの中身」=====
var JsonHairetu = {
"test1":"テスト1",
"test2":"テスト2"
"test3":"テスト3"
}
alert(JsonHairetu.test2);
========================



このJsonを以下のように配列にしてアラート「テスト2」を出したいのですがうまくいきません
var JsonHairetu = {
{"name";"テスト1"},
{"name";"テスト2"},
{"name";"テスト2"}
}
alert(JsonHairetur[1]);

どなたかご教示お願いいたします
372Name_Not_Found:2009/09/20(日) 19:36:13 ID:???
>>371
色々おかしい。
まず、記号を正してもう一度やってみれ。

・"test2":"テスト2" の後ろにカンマを付ける。
・配列リテラルの括弧を "[]" に直す。
・オブジェクトリテラルのプロパティ名と値の区切りを ":" に直す。
・代入文の最後に ";" を付ける(これは多くの場合、問題にならないが)
373Name_Not_Found:2009/09/20(日) 19:41:24 ID:???
>>370
compareDocumentPosition が返す値はMDCちゃんと見とけよ
374Name_Not_Found:2009/09/20(日) 19:42:29 ID:???
MDCじゃなくてW3Cだった
375Name_Not_Found:2009/09/21(月) 04:15:39 ID:???
<div id="erea" style="width:500;height:500;">
<div id="seek" style="width:10;height:10;" />
</div>

<script>
document.getElementById("erea").onmouseout=function(){flag=false;}
</script>

ドラッグ操作のできるseekを動作させているときに
マウスのポインタがereaから出ればflagをfalseにしたいと思ったのですが、
seekのdiv要素に触れるとそれもmouseoutになってしまいます・・
flagはerea内でmousedownのときはtrue、mouseupのときはfalseにするつもりで
mousemoveのときにfalse、true時で処理を分岐させたいと思っています。
mouseoutでflagをつける目的は、もしもerea外でmouseupしてしまったとき
その状態でereaにmouseoverするとflagがtrueのままになってしまうからです。
seekのwidthとheightが十分に広ければ、ereaじゃなくてseekの方にonmouseoutをできるんですけど
ボタンが小さいと、マウスを素早く(ある程度ゆっくりでも)するとmouseoutになってしまって・・
解決方法がみつかりません。助言をどうかおねがいします。
376Name_Not_Found:2009/09/21(月) 05:38:22 ID:???
すごい発見した
PCにヘッドフォン刺して無音で耳をすましてると
処理が重いときに、きりきりきりっていう音が聞こえる。
プログラム改善して軽くなると鳴らなくなる。
377Name_Not_Found:2009/09/21(月) 09:44:15 ID:???
CPUからノイズが載るのかな
負荷が直接フィードバックされるのはやりやすいかもね
コードのどの部分が音を立てているのかが分かれば完璧だけど
378Name_Not_Found:2009/09/21(月) 10:37:35 ID:???
消費電力が増えると電源が鳴く
379Name_Not_Found:2009/09/21(月) 11:18:16 ID:???
>>375
area?
380Name_Not_Found:2009/09/21(月) 12:30:41 ID:???
>>375
マウスイベントはIEと他で酷く違う、どっちのことかわからんから
ライブラリで mouseenter/mouseleave を試してみたら?
381Name_Not_Found:2009/09/21(月) 12:45:02 ID:???
上でcontainsとcompareDocumentPositionの話が出てるのに
382Name_Not_Found:2009/09/21(月) 12:51:25 ID:???
ああそうか、チラついているかと思ったんだが違うのか
383Name_Not_Found:2009/09/21(月) 14:00:17 ID:???
function hoge() { 1 }
hoge.prototype.huga = function(a, b, c) { 2 }
var piyo = new hoge();

こういうファイルがあって、
別のファイルから「a」「b」「c」という引数を使いたいんですが
「2」の文はちょっと変更したい
って場合はどうすればいいんでしょうか

piyo.huga = function(a, b, c) { 3 }
って書いたら元の
hoge.prototype.huga = function(a, b, c) { 2 }
に上書きされたみたいになってこの部分を使っていたほかのやつが動かなくなりました
384Name_Not_Found:2009/09/21(月) 14:49:18 ID:???
>>383
javascriptでおk
望む結果が得られない例ぐらい動作するコードで書いてくれ
「引数を使いたい」とか訳がわからないし、実行例もないから察しようもない
385Name_Not_Found:2009/09/21(月) 15:01:20 ID:???
>>383
(function() {
var _huga = hoge.prototype.huga;
hoge.prototype.huga = function(a, b, c) {
  var args = Array.prototype.slice.call(arguments);
  3;
  _fuga.apply(this, args);
};
})();
386383:2009/09/21(月) 15:33:17 ID:???
>>385
うまくいきました!たぶん
追加した部分も動いているし、
元からあった「この部分を使っていたほかのやつ」も動いています

>>384
すみません
元の(他人が書いた)ファイルが多くて全部だと長すぎるので>>383が必要最小限かなと思いました
自分のファイルは元のファイルがないと話が繋がらないかなと思いました
387Name_Not_Found:2009/09/21(月) 17:09:52 ID:???
えっ、他のには影響ないはずだろ
388Name_Not_Found:2009/09/21(月) 18:49:44 ID:???
もう黙ってろよ・・・
389Name_Not_Found:2009/09/21(月) 19:08:24 ID:???
確かにpiyo.hugaへの代入がプロトタイプに影響することはありえないな
>>385だと他のインスタンスに影響が出るはず
>>383が何をやったのかさっぱり分からない
390Name_Not_Found:2009/09/21(月) 19:46:31 ID:???
日本語が残念なことになってる質問には
答えちゃダメだな
391Name_Not_Found:2009/09/21(月) 20:24:42 ID:1G+kIrhY
windows sidebarいわゆるガジェット作ろうとしてます。
指定時刻で指定画像表示というもので

function jikokug(){
dt = new Date();
h = dt.getHours();
m = dt.getMinutes();
time = h+""+m;
//document.F2.J2.value = time;
document.HouImg.src = "images/" + time + ".jpg";
}
/*を↓のHTMLで受ける*/

<form name="HouImg"><input width="139" height="79" name="MonImg">
<script type="text/javascript">
setInterval("jikokug()",1000);
</script>
<img src="images/1.jpg" width="139" height="79" border="0" name="MonImg">
</form>

という設計なのですが、パスはあってる、timeにはちゃんと数字がいってるのに
画像が表示されません。
どなたか力を貸してください。よろしくお願いします。
392Name_Not_Found:2009/09/21(月) 20:38:48 ID:???
いくら IE 専だからってこういうのは好きじゃないなあ
document.HouImg

好意的に解釈してそれが form を指すのだとしたら
form の src って何なんだぜ?
393Name_Not_Found:2009/09/21(月) 20:51:25 ID:???
document.HouImg.MonImg.src = "images/" + time + ".jpg";

ノスタルジック
394Name_Not_Found:2009/09/21(月) 21:55:14 ID:kLJqOBJz
DOMについて質問です。
あるノード node を任意の HTML で置換しようと思い、次のようなコードを書きました。

function replaceNode(node, html)
{
 var e=document.createElement('DIV');
 e.innerHTML = html;
 var newnode = node.parentNode.replaceChild(e.firstChild, node);
 return newnode;
}

これで一応目的は達成したかに見えたのですが、置換後の newnode の parentNode が null になってしまいます。
元の node の parentNode と同じ親になって欲しいのですが、どうしたらよいでしょうか?
395394:2009/09/21(月) 22:04:17 ID:???
うはー!大ポカでした
replaceChild は古いノードを返すんですね。
こんな風にしたらうまくいきました。

function replaceNode(node, html)
{
 var e=document.createElement('DIV');
 e.innerHTML = html;
 e = e.firstChild;
 node.parentNode.replaceChild(e, node);
 return e;
}
396Name_Not_Found:2009/09/21(月) 22:19:21 ID:???
>>392,393
ご指摘ありがとうございます。
IE専かどうかはわからないです。srcは不要ということですか?
どうやってHTMLに渡したらいいか教えていただけませんか?
また参考サイトなどありましたらそれでも構いません><
397Name_Not_Found:2009/09/21(月) 23:08:16 ID:???
>>391
h = dt.getHours();
m = dt.getMinutes();
time = h+""+m;

疑問なんだがこれだとものすごい数の画像が必要になるよね。24*60=1440個?
とりあえず javascript 時計 画像 あたりで検索してみてください
398391:2009/09/21(月) 23:14:10 ID:???
>>397
1440個であってます。まだプログラムがこれなので画像は用意してませんが。
<html>
<head>
<title></title>

<script language="JavaScript">
<!--
function change()
{
d = new Date();
h = d.getHours();
document.HouImg.src = "hour/" + h + ".gif";
}
// -->
</script>

</head>
<body onload="change()">
現在は
<img src="hour/1.gif" width="100" height="70" border="0" name="MonImg">
時です
</body>
</html>
これを参考にしたのですがなぜか画像が表示されなくて、、
ガジェットだと渡し方が特殊?だったりするんですかね?
399Name_Not_Found:2009/09/21(月) 23:36:03 ID:???
お前の書き方が特殊なんだよ
普通に標準的に書け
そもそも名前が合ってないだろうが
400Name_Not_Found:2009/09/21(月) 23:45:27 ID:???
<img src="01.gif" id="hour">

<script type="text/javascript">
document.getElementById("hour").src = "02.gif";
</script>

--
余計なお世話かもしれんけど
数字が2桁になるように0埋めする必要があると思うよ
401Name_Not_Found:2009/09/21(月) 23:47:40 ID:???
Houってなんだよ
Monってなんだよ
下手な省略するくらいならローマ字の方がマシなレベル

で設計を考えなおした方がいいだろ…
時刻表示には数字10個とコロンしか必要ないのに
なんで秒単位でファイル作るんだよ、組み合わせろよ
402Name_Not_Found:2009/09/21(月) 23:52:54 ID:???
美人時計みたいなの作りたいんじゃない?
403Name_Not_Found:2009/09/22(火) 00:08:04 ID:???
<script type="text/javascript">
window.onload = function(){
  document.getElementsByName("MonImg")[0].src = "hour/" + (new Date()).getHours() + ".gif";

}
</script>

scriptタグにlanguage属性は使うな、既に廃止された。代わりにtype="text/javascript"を使う
script内をコメントアウトするな。JavaScriptに<!--, -->なんて命令は存在しない
document.[name属性]でアクセスするな、IE以外で動かない。代わりにdocument.getElementsByName("name属性の値")を使う
onload="change()"なんて使い方はするな。HTMLは文書構造を定義するための物だ。代わりにwindow.onload = function(){〜}又はaddeventlistenerを使う
404Name_Not_Found:2009/09/22(火) 00:19:22 ID:???
*text/javascriptはRFC4329で廃止
*HTML5でescaping text spanという新構文<!--...-->が導入される(これはコメントではない)
*XHTML1における挙動差を言及せず安易にgetElementsByNameを勧めるな
*window.onloadよりonload=".."の方がまだまし
405Name_Not_Found:2009/09/22(火) 00:21:34 ID:???
>XHTML1における挙動差を言及せず安易にgetElementsByNameを勧めるな

kwsk
406Name_Not_Found:2009/09/22(火) 00:23:47 ID:???
>>404
そういえばtext/javascriptはapplication/x-javascriptになったんだっけ
407Name_Not_Found:2009/09/22(火) 00:26:41 ID:???
>>404
*window.onloadよりonload=".."の方がまだまし

この「まだまし」の理由を教えてくれないか
408Name_Not_Found:2009/09/22(火) 00:29:01 ID:???
>>404
window.onload = func;
onload = func;

これ同じだと思うけど、グローバルオブジェクトがwindow以外の名前になることを想定してる?
それともwindowが別の名前になるとかいう話でも出てるの?
409Name_Not_Found:2009/09/22(火) 00:29:08 ID:???
複数書いたら上書きされるからだと思うけどddeventlistener使えばいいのに
410Name_Not_Found:2009/09/22(火) 00:30:10 ID:???
ドット演算子のオーバーヘッドなんていうこの際どうでもいいことの可能性もあったな
411Name_Not_Found:2009/09/22(火) 00:33:01 ID:???
>>409
window.onload = function f(){};
alert(onload); // "funciton f(){}"
412Name_Not_Found:2009/09/22(火) 00:38:51 ID:???
addeventlistenerてIE8でもまだ対応してないだろ
413Name_Not_Found:2009/09/22(火) 00:53:06 ID:???
>>398

> まだプログラムがこれなので画像は用意してませんが。

> なぜか画像が表示されなくて、、

あたりまえでは?
414Name_Not_Found:2009/09/22(火) 01:05:10 ID:???
>>408

>>404 が「まだまし」としてるのは元の <body onload="change()"> じゃまいか?
415Name_Not_Found:2009/09/22(火) 01:07:17 ID:???
>>403
> document.[name属性]でアクセスするな、IE以外で動かない。

DOM0構文だから動くんでね?


416Name_Not_Found:2009/09/22(火) 01:08:35 ID:???
確かにfirefoxでも一応動く。firebugさんが文句言うけど
417Name_Not_Found:2009/09/22(火) 01:38:25 ID:???
var testelement = document.createElement('style');
testelement.setAttribute('type', 'text/css');
testelement.appendChild( document.createTextNode('#test{font-size:1px;}') );
document.getElementsByTagName('head').item(0).appendChild(testelement);

上のスクリプトは動作するのですが、下のスクリプトは動作を確認出来ません。どこがおかしいのでしょうか
<script src="./test.js" type="application/x-javascript" charset="UTF-8"></script>でXHTMLのhead要素内に挿入して
Firefox、Opera、Safariで確認しています。

var testelement = document.createElement('div');
testelement.setAttribute('style', 'font-size:5em;');
testelement.appendChild( document.createTextNode('#test{font-size:1px;}') );
document.getElementsByTagName('body').item(0).appendChild(testelement);
418Name_Not_Found:2009/09/22(火) 01:55:56 ID:???
また、えらく流れぶったぎりだな。404の返答ながれるだろーが

>>417
どこがおかしいってココだろ?

testelement.appendChild( document.createTextNode('#test{font-size:1px;}') );

スクリプト動かした結果のhtml位は質問前に確認しる
419Name_Not_Found:2009/09/22(火) 01:57:14 ID:???
つか、普通はstyleプロパティ使うんじゃね?
420Name_Not_Found:2009/09/22(火) 02:00:03 ID:???
window.onloadに対する<body onload="">の優位性がわからん
div.onclickと<div onclick="">ならinnerHTML絡みだとか想像つくけど

>>417-418
firebugにコピペして動いたけど

まさか#testのフォントサイズが変わりませんでしたとかじゃないよね?
421Name_Not_Found:2009/09/22(火) 02:04:23 ID:???
あーちげー、きっとこういうオチだ

<head><script>document.getElementsByTagName("body")</script></head>
<body></body>

head内で遅延無しに実行すると、headの次にあるbodyはまだ構築されてないからアクセスできない
onloadとかでbody構築後まで実行を遅延させるか、body末尾にscriptを書け

<head></head>
<body>
本文
<script>document.getElementsByTagName("body")</script>
</body>
422417:2009/09/22(火) 02:07:03 ID:???
皆さん有り難う御座います
>>421で解決しました
423Name_Not_Found:2009/09/22(火) 02:12:40 ID:???
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
424Name_Not_Found:2009/09/22(火) 02:16:28 ID:???
ところでXHTMLなら
getElementsByTagName('body')はダメなんじゃねの?
bodyって form control じゃないよね。
425Name_Not_Found:2009/09/22(火) 03:37:10 ID:???
        ∧∧
       ヽ(・ω・)/   ズコー
      \(.\ ノ
    、ハ,,、  ̄
426Name_Not_Found:2009/09/22(火) 04:24:01 ID:???
確かにXHTMLならgetElementsByTagNameNSだがform controlてどこから出て来た

あとapplication/javascriptが定義済なのに独自拡張のx-javascriptもないな
427391:2009/09/22(火) 10:00:21 ID:???
>>399-416
ご回答ありがとうございます。
自分はまだここで訊くレベルではなかったようです。
1レスずつゆっくり読んでググりながら、またがんばってみます。
どうしてもわからなかったらまたよろしくお願いします><
428Name_Not_Found:2009/09/22(火) 12:38:31 ID:???
>>391
そのガジェット作って終わり、じゃあないだろうから一応。

どこの講座サイト見ているのか知らんが
まずは ECMA-262 を、と言ってもわからんだろうから
読みやすいMDC等の公式に書かれたものを読んだら良い。
 Core JavaScript 1.5 ガイド - MDC
 https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide
 他はテンプレにある。

とりあえずはテスト環境を作ること。
上のURLにある「このガイドについて」を読んで、そこに書いてある firebug を入れるか
代わりに IE8 のメニューにある「開発者ツール」でもどちらでも。
サイドバーガジェットはIEで実行されるからIEの方が良いと思う。

あとは関数名でググって例文探して真似てテストしまくれ。

講座やサンプルサイトを見るのならそのページがいつ書かれたものなのか見てから、
「イヌでもわかるJavaScript講座」などの古過ぎるサイトはやめたほうが良い。

作るものはガジェットなのだから
 ガジェット: 独自の Windows Vista サイドバー ガジェットを作成する
 http://msdn.microsoft.com/ja-jp/magazine/cc163370.aspx
このページのショートカットリンク作っとけ、
今読んで解からなくとも後で読み返したら少しずつ理解できる。
このページの JavaScript の項目に書かれている setInterval があるが、
>>391の時刻表示をするなら
秒数経過すれば表示が変わるようにしたくなるだろうから setInterval 使うことになる、
その注意点も含め他も書かれているから参考にしたら良い。
429Name_Not_Found:2009/09/22(火) 13:46:57 ID:???
残念、本人は既にsetIntervalを使っている。
430Name_Not_Found:2009/09/22(火) 13:51:16 ID:???
MDCは見やすいのにMSDNの見難さは異常。
431Name_Not_Found:2009/09/22(火) 16:20:50 ID:???
<select name="s1">
<option>a</option>
<option>b</option>
</select>
<select name="s2">
<option>a</option>
<option>b</option>
</select>

-----------------------------------------------------------
s1でaを選択したときにs2でaを表示させない(選択済みの項目を排除する)方法はありますでしょうか?
selectと項目はともに20個くらいまで対応したいと思っています。
宜しくお願いします。
432Name_Not_Found:2009/09/22(火) 16:29:32 ID:???
radio ボタン使おうぜ。
433Name_Not_Found:2009/09/22(火) 16:32:50 ID:???
radio ボタンだと 400 個くらいになるのかw
434Name_Not_Found:2009/09/22(火) 16:35:21 ID:???
>>430
AppleのADCも読みにくく探しにくい
Operaは情報が少なすぎ

でもMDCも、Wiki入れかえてから使いにくくなった・・・
435391:2009/09/22(火) 18:07:01 ID:???
>>428-430
丁寧なお返事ありがとございます。
ちょっとあきらめムードでしたが、やる気が戻りました!
これを無駄にさせないために絶対に完成させます!
436Name_Not_Found:2009/09/22(火) 18:31:34 ID:???
>>431
backup = select要素.options[n]; //バックアップ
select要素.options[n] = null; //排除
select要素.options[n] = backup //再設定

これをonchangeイベントでやればできると思う
437Name_Not_Found:2009/09/22(火) 18:42:22 ID:???
>>430
MDCは無駄にセキュア接続なのが嫌い。
438Name_Not_Found:2009/09/22(火) 19:48:04 ID:???
>>431
何となく作ってみたけどこれだと2つのselectしか対応できないや
window.onload = function(){
  (function(){
    var e = document.getElementsByTagName("select");
    for(var i=0;i<e.length;i++){
      e[i].onchange = function(){
        var e = document.getElementsByTagName("select");
        var value = this.getElementsByTagName("option")[this.selectedIndex].firstChild.nodeValue;
        for(var i=0;i<e.length;i++){
          if(e[i] != this){
            for(var j=0;j<e[i].getElementsByTagName("option").length;j++){
              var obj = e[i].getElementsByTagName("option")[j];
              if(obj.firstChild.nodeValue == value){
                obj.disabled = true;
              }else{
                obj.disabled = true;
              }
            }
          }
        }
      }
    }
  })();
}
439Name_Not_Found:2009/09/22(火) 19:54:27 ID:???
>>431
<select name="s1" onchange="setS2(this.form)">
<option value="0" selected="selected">選べ</option>
<option value="1">a</option>
<option value="2">b</option>
</select>
<select name="s2">
<option value="0">----</option>
</select>

function setS2(form) {
var s1 = form.s1;
var s2 = form.s2;
if (s1.value == '0') return false;
var length = s1.length;
for (var i = 0; i < length; i++) {
s2.options[i] = new Option(s1.options[i].text, i);
}
s2.options[s1.value] = null;
s2.selectedIndex = 0;
}

削除に s1.value を直渡ししているので<option value="ここ">は必ず連番数字でな。
>>429
よく確認してなかったw


で、自分も質問。
フォームの入力文字直後に値を取得する場合、onkeydown を使っているとき
オートコンプリートから選択入力されると取得できない。
onblur を使わずうまい方法は無い?
IE8 と Firefox3.0.11
440Name_Not_Found:2009/09/22(火) 20:01:59 ID:???
何か制限プレイでもしているのか
441Name_Not_Found:2009/09/22(火) 20:20:44 ID:???
せめてnbsp使え
442Name_Not_Found:2009/09/22(火) 20:21:48 ID:???
>>440
入力値を特定の replace() で変換してから Submit 時に送るが、
その変換したものを入力しているときに何が Submit されるのかをユーザに見せたい。

inputにフォーカスあるときだけinputの真下に透明のdivを持ってきてonmousedownで
とかやるしかないんかな。
443Name_Not_Found:2009/09/22(火) 20:44:29 ID:???
>>438
for尽くしできめえコード
444Name_Not_Found:2009/09/22(火) 21:45:43 ID:???
javascriptのみでページリンク作ってると
ついついブラウザの戻るボタン押して前のページ番号に
戻ろうとしてしまった場合、最初のページに移動してしまうのはどうにかならんの?
445Name_Not_Found:2009/09/22(火) 22:02:11 ID:???
js依存のリンクなんて最悪の設計だな
446Name_Not_Found:2009/09/22(火) 22:07:03 ID:???
実際にページ移動せずにinnerHTMLやらDOMで書き換えてるってこと?
447Name_Not_Found:2009/09/22(火) 22:10:17 ID:???
どうやってるのか知らんが普通にIDリンクすれば#で位置を保存できる
リンクの見せ方はjsでやれば良いがリンクそのものをjsで書いたらダメだろ
448Name_Not_Found:2009/09/22(火) 22:21:10 ID:???
>>444
CGI使うやつは普通
jsでやろうとする奴はアホ
449Name_Not_Found:2009/09/22(火) 22:24:15 ID:???
CGIww
450Name_Not_Found:2009/09/22(火) 22:27:21 ID:???
CGIの意味が分かってない人がまたひとり
451Name_Not_Found:2009/09/22(火) 22:53:04 ID:???
>>436,438-439
ありがとうございました。
452391:2009/09/22(火) 23:45:42 ID:???
イラン報告してすいません。
たった今できました!言われた通りやったらできました。
なんか初めてjavascript動かしたから感動です。アドバイスくれた方ありがとうございました。
スレ汚しすみませんでした。
453Name_Not_Found:2009/09/23(水) 00:10:50 ID:???
>>452
初めてって・・・
本見てその通りやることから始めようよ。最初はさあ
打ち間違いレベルのソースだぞ
454Name_Not_Found:2009/09/23(水) 00:26:15 ID:???
>>449-450
サーバサイドでPerlとかPHPとか使って動的にページを生成するプログラムを
CGIと呼ぶのは厳密には間違ってるのはわかるんだけど、
じゃあ代わりに何と呼ぶのさ?
455Name_Not_Found:2009/09/23(水) 00:52:04 ID:???
サーバサイドでいいじゃん
456Name_Not_Found:2009/09/23(水) 00:56:18 ID:???
PHP使おうぜ
457Name_Not_Found:2009/09/23(水) 01:21:04 ID:???
>>454
>略...厳密には間違ってる
のか?
リクエストに対して動的にレスポンスを返すのがCGIだろ?
458Name_Not_Found:2009/09/23(水) 01:33:46 ID:???
ならばHTTPは全部CGIか
459Name_Not_Found:2009/09/23(水) 01:36:00 ID:NtcCrIrT
>>458
ちょっと言っている意味がわからないからもう少し噛み砕いて
460Name_Not_Found:2009/09/23(水) 01:58:51 ID:???
リクエストに対して動的にレスポンスを返すものがCGIとは限らないし
(滅多にないけど)CGIはリクエストに対して動的にレスポンスを返すとも限らない
461Name_Not_Found:2009/09/23(水) 02:17:14 ID:???
まてまて
発端は>>454かもっと辿れば>>444だろ?論点ずれてないか?
462Name_Not_Found:2009/09/23(水) 02:21:58 ID:???
+ JavaScript の質問用スレッド vol.73 +
463Name_Not_Found:2009/09/23(水) 09:20:35 ID:???
CGIモードとモジュールモードとFastCGIの違いについて他所のスレで聞いて来い。
464Name_Not_Found:2009/09/23(水) 09:40:54 ID:???
俺、XHTMLとCSSは全部PHPで生成してる
465Name_Not_Found:2009/09/23(水) 11:45:11 ID:vLEcsSjJ
アンカータグにイベントをつけたいんですが、hrefは必須ですか。つまり、
<a onclick="funcName()" ...>
見たいにしたいのですが。
466Name_Not_Found:2009/09/23(水) 11:49:35 ID:???
>>465
aでなければいけない要因があり、かつ、リンクとして機能させたくない要因があるなら否定はしない
onclickよりhrefでfalse返せばいいだけだと思うが
467465:2009/09/23(水) 11:53:00 ID:vLEcsSjJ
>>466
ご回答ありがとうございます。そのやり方(return)も分かってはいるの
ですが、タグが長くなるのでapanよりはaにしてあとイベントだけにした
いです。やってだいじょうぶというわけですね。
468Name_Not_Found:2009/09/23(水) 11:55:29 ID:???
href="javascript:func()" って時代遅れ?
単なる流行り以上に何か問題点があれば教えてくれ。
469Name_Not_Found:2009/09/23(水) 12:04:04 ID:???
今の時代のJavaScriptの書き方のテンプレでも作りませんか?
たとえば

function kansuu() {
[半角4文字]alert(1)
}
470Name_Not_Found:2009/09/23(水) 12:10:40 ID:???
無意味
471Name_Not_Found:2009/09/23(水) 12:12:03 ID:???
あっという間に時代遅れになるのがオチ。
472Name_Not_Found:2009/09/23(水) 12:20:56 ID:???
WCAG 1.0 (2000)の時点で使うなと理由付きで書かれているのに
どんだけ時代に乗り遅れてんだ
473Name_Not_Found:2009/09/23(水) 14:02:48 ID:???
>>472
WCAGはリンクとしての使い方をするA要素のリンク先にjavascript:を指定してはいけないというだけで、
>>465-466みたいな使い方をするリンク(というかもはやリンクではないが)について言及したものではないと思うが
474Name_Not_Found:2009/09/23(水) 14:31:50 ID:???
お前は何を言ってるんだ
475Name_Not_Found:2009/09/23(水) 14:34:42 ID:???
お前はWCAGが何を目的に勧告されたか分かってないだろ
476Name_Not_Found:2009/09/23(水) 18:45:41 ID:???
arr={'a':'','b':'','c':''};
このオブジェクトのa,b,cにそれぞれ値を代入したいんですけど、
aに代入bに代入とかじゃなくて、arrの何番目に代入ってのは
どうやってやるんでしょうか。よろしくお願いします。
477Name_Not_Found:2009/09/23(水) 18:49:29 ID:???
arr['a']
478Name_Not_Found:2009/09/23(水) 18:50:50 ID:???
>>477
それだと何番目というより、a番に代入にならないですかね・・
479Name_Not_Found:2009/09/23(水) 18:54:40 ID:???
連想配列は番号を持っていない
480Name_Not_Found:2009/09/23(水) 19:02:46 ID:???
for(i in arr)で回してカウントするぐらいしかないね
481Name_Not_Found:2009/09/23(水) 19:05:45 ID:???
番号というか順序は保証されない
482Name_Not_Found:2009/09/23(水) 19:06:20 ID:???
>>479-480
ありがとうございます。
483Name_Not_Found:2009/09/23(水) 19:15:22 ID:K8zi8/Ut
alertとかintvalとかをプロパティというのでしょうか?
484Name_Not_Found:2009/09/23(水) 19:21:44 ID:???
「alertもプロパティなのか?」という質問なら、概ね正しい
alert(alert == window.alert);

「プロパティとはalert等のことか?」なら入門書でも読んでこい

intval?なにそれ
485Name_Not_Found:2009/09/24(木) 01:37:51 ID:qe2nlTeq
質問です。
以下のコードなのですが

var func = function () {
x = 1;
var f = function (x) {
window.alert(x);
};
return f;
}();

func("Hello!");

これでHello!とアラートが出るのは何故でしょうか。
言語仕様に詳しいどなたか、教えてください。
486Name_Not_Found:2009/09/24(木) 01:41:27 ID:locyjHQJ
>>485
var f = function (x)

としているから。
var f = function ()

にすれば1になるでしょ。
487485:2009/09/24(木) 01:53:38 ID:qe2nlTeq
>>486
確かにそれはそうなのですが、私は別に1を表示させたいわけではありません。
どういう流れでwindow.alert(x);のxに"Hello!"が代入されているのか知りたいのです。

485のコードは、The Good Partsという書籍の51ページにあるサンプルコードを簡略化したものです。
元はフィボナッチ数を求める関数です。
488Name_Not_Found:2009/09/24(木) 02:08:02 ID:???
>>485
func("Hello!");
の代わりに、
alert(func.toString());
してみなよ
どういう関数を呼び出してるのかわかるから
489Name_Not_Found:2009/09/24(木) 02:27:17 ID:???
x = 1
function f() { var x = "hello";
alert(x);
}
f();

ちょーおおざっぱに言えばこんな感じ
仮引数は関数呼び出しのときに定義されるから、その外側のスコープであるx = 1よりも優先される
490Name_Not_Found:2009/09/24(木) 03:32:32 ID:locyjHQJ
>>487
あー、そういうことか。
funcは関数fを返す関数、ってのはわかるでしょ。
つまり、関数funcはfとほぼ同値な訳です、大雑把かつ乱暴に言うと。

で、funcをコールする際に引数に文字列"Hello!"を渡しているから
Hello!がアラートされる、と。

funcとfの違いは、funcはコールされると、グロスコの変数xに1を代入する、
という点。もし二行目が
var x = 1;

と書かれると、この変数xはfuncに代入される野良関数内でのローカル変数となる、
すなわち、野良関数の存在意義は、スコープの維持に他ならない訳です。
491Name_Not_Found:2009/09/24(木) 03:41:51 ID:locyjHQJ
>>490
グロスコ = グローバルスコープ
野良関数 = 関数オブジェクト

です。変な書き方してすみません。
492Name_Not_Found:2009/09/24(木) 06:52:43 ID:Ne5KCQa3
divブロックの中に複数の div のブロックがあります。
子の div は親の div と同じ幅で、それが縦に何個か並んでいます。
子の div にはマージンがあるので、みっちり並んでいるのではなく隙間が開いています。

で、親div に onclick を設定して、子の div に対するクリックを検出しようとしていて、そこまではうまくいきました。

次にやりたいのは、子の div の間のすき間をクリックした時、どのすき間がクリックされたのかを知ることなのですが、
どんな方法があるでしょうか?
「この子」の次のすき間がクリックされた、みたいに、子の要素が求まると具合がいいです。
493Name_Not_Found:2009/09/24(木) 07:04:23 ID:???
マージンでなく空のdiv入れたら駄目なの?
494Name_Not_Found:2009/09/24(木) 07:07:11 ID:???
elementFromPoint
495485:2009/09/24(木) 07:32:43 ID:DXVrl0Bq
>>488-491
皆様、ありがとうございます!
まだこれを使えるレベルではありませんが、なんとなく理解できました。
toStringはデバッグのときに便利ですね!

スコープとか、クロージャとかについて引き続き勉強していきます。
496Name_Not_Found:2009/09/24(木) 10:47:25 ID:???
質問
jqueryで複数の外部cssを切り替えて、bodyに各css毎のidを追加してcookieに保存させるjsとを使っています。
$('#csschg').attr({href:cssurl});
$('body').attr({id:csstype});

a.css,b.css,c.css,と3つ外部cssがあるとして
b.cssのみにbodyのidを含めた指定でスライドメニューを使おうとしたのですが
idが切り替わっていても、F5などで再読み込みしないとスライドメニューが有効になりません。
単純にcssを後から追加しだだけでは、先に読み込んであるjsは動かないものなのでしょうか?

497496:2009/09/24(木) 11:22:02 ID:???
外部jsから外部jsを読み込む方法を考えてみようと思います
498Name_Not_Found:2009/09/24(木) 11:46:57 ID:???
>>497
インポートすればおk
499Name_Not_Found:2009/09/24(木) 11:51:41 ID:locyjHQJ
>>496
そのスライドメニューの仕様次第だが。
idが切り替わる前にDOMアクセスしているのであれば、駄目じゃん。

<script src="スライドメニュー">
document.getElementById("bbb") // ← undefined
</script>

<body id="aaa">

<script>
$('#csschg').attr({href:cssurl});
$('body').attr({id:csstype}); // ←この時点でbodyのidがbbbになる。
</script>
500Name_Not_Found:2009/09/24(木) 13:22:58 ID:???
異ドメインからjsファイルを読み込むことはOKですか?あと、外部に
したときの場合もお願いします。
501Name_Not_Found:2009/09/24(木) 13:28:43 ID:???
jsファイルのドメインは一切影響しない、ぶっちゃけページ内にコピペしたのと同じ

>外部にしたときの場合
詳しく
502Name_Not_Found:2009/09/24(木) 13:35:53 ID:kxVew4Zq
MDCの解説内容は100%IE,Operaに対応できますでしょうか?
503\_____________/:2009/09/24(木) 13:41:02 ID:???
                   \|
   / ̄ ̄ ̄ ̄ ̄ ミ         / ̄ ̄ ̄ \
  /   ,――――-ミ       /         |
 /  /  /   \ |        ∨∨∨∨∨\ |
 |  /   ,(・) (・) |       |▲  ▲  ||
  (6       つ  |       |(・) (・)  6)
  |      ___  |       | |    ||
  |      /__/ /       |  ¨     /
/|         /\       \/\  /\
     ∧              / ̄ ̄ ̄    \
  / ̄   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  | んなわけねーだろ!
504496:2009/09/24(木) 14:53:03 ID:???
>>498
ありがとうございます
css変更とスライドメニューの二つの外部jsを一つにしてみました

>>499
ありがとうございます
スライドメニュー前に(b.cssの読み込み時に<body>に追加されるidが#bbbだとして)
//console.log("idあるか?:"+document.getElementById("bbb"));
if(document.getElementById("bbb")){
$(function(){$("#bbb #menu").each(function(){

$("li > span", this).each(function(tototo){
var $this = $(this);if(tototo > 0) $this.next().hide();


$this.click(function(){
var params = {height:"toggle", opacity:"toggle"};$(this).next().animate(params).parent().siblings().children("ul:visible").animate(params);
return false;

});
});
});
});
}

とすると#bbb以外のidが付いた1回目もスライドメニューが動いてしまいました

読み込んだjsを無効にする方法などありますか?
505Name_Not_Found:2009/09/24(木) 16:20:47 ID:???
>>504
>読み込んだjsを無効にする方法
ない、混ぜたジュースのようなもん
だからたまに「汚染される」という表現が用いられることもある

フック(イベント)を外して無効化することはできる
それが簡単にできるかどうかは構造次第
ライブラリによってはその手段が提供されてる場合もある
506Name_Not_Found:2009/09/24(木) 17:15:55 ID:???
若干htmlに入ってしまうかもしれないんですが
font要素の縦横幅をdivなどのように操作することってできますでしょうか
よろしくおねがいします。
507Name_Not_Found:2009/09/24(木) 17:29:47 ID:???
完全にCSSだろうが
508Name_Not_Found:2009/09/24(木) 18:48:11 ID:???
matchって最初にヒットしたところで止まるようですが
全て検索するにはどうしたらいいのでしょう?

var hash = "kh309ekauh3kaak3a";
var obj = hash.match(/([0-9])/); //ここで()の中身(すなわち数字)を先頭からマッチした順に格納したい[3,0,9,3,3]

マッチしたら準備した配列に格納して
現在の文字列の位置を記憶してそこから再度検索をかけるといったことを
再帰的に最後までやり続ければ出来るとは思いますが
もっとすっきりできないでしょうか?
509Name_Not_Found:2009/09/24(木) 18:59:26 ID:???
matchをちゃんと調べろ
510Name_Not_Found:2009/09/24(木) 19:52:50 ID:hjmo4xnx
youtubeのように表示領域に入ったら画像を表示するみたいな事ってどうやったらできるんでしょうか?
511Name_Not_Found:2009/09/24(木) 21:10:07 ID:???
なにそれ?
512Name_Not_Found:2009/09/24(木) 21:13:29 ID:???
>>510
Lazyload
513Name_Not_Found:2009/09/24(木) 21:40:40 ID:???
>>511
お前みたいな知識の乏しい奴は黙ってろや
514Name_Not_Found:2009/09/24(木) 21:44:13 ID:???
なんか随分ストレス溜まってるやつがいますね
ここは掃き溜めじゃないのよ
515Name_Not_Found:2009/09/24(木) 22:03:00 ID:???
>>513
つ 鏡
516Name_Not_Found:2009/09/24(木) 22:50:14 ID:???
>>508
このスレ的にはこういうのが定石なのかも。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
var hash = 'kh309ekauh3kaak3a', arr = [];
hash.replace(/[0-9]/g, function(s) { arr.push(s); });
document.writeln(arr);
</script>
</body></html>
517Name_Not_Found:2009/09/24(木) 23:16:15 ID:???
くっだらねー釣りだな
518Name_Not_Found:2009/09/24(木) 23:16:45 ID:???
var arr = 'kh309ekauh3kaak3a'.match(/[0-9]/g);
定石とか、もうね
519Name_Not_Found:2009/09/24(木) 23:20:21 ID:locyjHQJ
>>516
ああ、replaceはそっちの用途の方が使いでがあるよね。
520Name_Not_Found:2009/09/24(木) 23:38:28 ID:???
下手な擁護は相手を惨めにさせるだけ
521Name_Not_Found:2009/09/24(木) 23:42:28 ID:???
ここって猿園じゃなかったのか
522Name_Not_Found:2009/09/25(金) 00:00:18 ID:???
イチゴ畑です。
523Name_Not_Found:2009/09/25(金) 00:40:29 ID:???
むしろ <title>???</title> の人の低質なコードがこのスレの名物
524Name_Not_Found:2009/09/25(金) 00:57:14 ID:???

画像レイヤーをクリックでON、OFFできるようにしたいのですがきちんと動作してくれません。
関数を読み込む順番を変えたりしてどうやらgameStartの部分に問題があることは把握できたのですがどう修正すればいいのか見当もつかない状態です。
解決方法を教えてください。
<html>
<head>
<title>gametitle</title>
<script type="text/JavaScript">
function gameStart() {
alert("消します");
lyrSetVisibility( "lyrball" , false );
alert("出します");
lyrSetVisibility( "lyrball" , true );
}
function lyrSetVisibility( lyr , visf ) {
if ( visf ) {
document.getElementById( lyr ).style.visibility = "visible";
} else {
document.getElementById( lyr ).style.visibility = "hidden";
}
}
</script>
</head>

<body>
<div id"lyrball"
stile="position:absolute; left:128px; top:128px;">
<img src="bb01.gif">
</div>
<a href="JavaScript:gameStart()"> [スタート] </a>
</body>
</html>
525Name_Not_Found:2009/09/25(金) 01:15:52 ID:???
>>524
><div id"lyrball"
id="lyrball"

>stile="position:absolute; left:128px; top:128px;">
style=

なんというかもうHTMLからやりなおせw
526Name_Not_Found:2009/09/25(金) 01:18:28 ID:???
><script type="text/JavaScript">
<script type="text/javascript">

>JavaScript:gameStart()
javascript:gameStart()

大文字使うな
527Name_Not_Found:2009/09/25(金) 01:39:35 ID:???
大文字でもいいが
javascript:を使うな
528Name_Not_Found:2009/09/25(金) 01:43:29 ID:???
>>52
Content-Typeは大文字駄目でしょ
529Name_Not_Found:2009/09/25(金) 03:55:08 ID:???
>>528
RFC2616読んで出直せアホ
530Name_Not_Found:2009/09/25(金) 07:34:59 ID:???
>>529
media-type = type "/" subtype *( ";" parameter )
The type, subtype, and parameter attribute names are case-
insensitive. Parameter values might or might not be case-sensitive,
depending on the semantics of the parameter name. Linear white space
(LWS) MUST NOT be used between the type and subtype, nor between an
attribute and its value. The presence or absence of a parameter might
be significant to the processing of a media-type, depending on its
definition within the media type registry.

>The type, subtype, and parameter attribute names are case insensitive.
タイプ、特殊型、およびパラメタ属性名は大文字と小文字を区別しないです。

読んだよ。規約では区別しないことになってるね。
大小文字混ぜて書くことにするよ!
531Name_Not_Found:2009/09/25(金) 10:20:31 ID:???
>>530
URIの方はRFC 2396なんでよろ。
532Name_Not_Found:2009/09/25(金) 10:21:37 ID:???
これって機能してますか?
ttp://pigs.sourceforge.jp/wiki/index.php

機能してないのなら自分の勉強目的と記録のために新しく作りたいのですが無駄ですかね?
533Name_Not_Found:2009/09/25(金) 10:56:13 ID:???
これはいつ実装するんだろうか
これができればブラウザ環境に左右されなくなるのかな
ttps://mail.mozilla.org/pipermail/es-discuss/2008-August/003400.html
534524:2009/09/25(金) 21:14:32 ID:???
プログラミング言語としてjavascriptを学びたかったのでHTMLについては何も知りませんでした・・
javascriptについての辞典を買ってきたのですがレイヤーについての説明がなかったのはこれがHTMLの機能だからですよね

まずHTMLから勉強してみます。スレ違いな質問に親切に答えてくださってどうもありがとうございました。
535Name_Not_Found:2009/09/25(金) 22:16:32 ID:???
お前は何を言ってるんだ
536Name_Not_Found:2009/09/25(金) 22:17:32 ID:???
>>533
> これはいつ実装するんだろうか
これはES5(旧称ES3.1)を次期ECMAScript仕様にするよ、という宣言みたいなもん
ES5の実装はちょいちょい始まってる
有名どころならJSONオブジェクトとか、Object.definePropertiesとか

> ブラウザ環境に左右されなくなるのかな
ECMAScriptという仕様で各ブラウザの実装を見たときに、
DOM実装よりかは差異がないけどそれでも色々違いがある

仕様書にバグがあったり誤解を招く表現だったりしたのも原因のひとつ
そうした仕様のバグをなくすのもES5の目的

まず "Approval Draft" のうち、Annex D と Annex E を読むといい
http://wiki.ecmascript.org/doku.php?id=es3.1:es3.1_proposal_working_draft

ちなみに今日の時点での最新は "Draft with all post Sept 1 changes including markup:" の次にある .doc ファイルだったりする
537Name_Not_Found:2009/09/25(金) 22:41:15 ID:???
ソースの初期打順を一度表示させてからボタン押してランダム入れ替えしたいんですが
どしたら良いでしょうか?
<html>
<body>
<div id="wbc"></div>
<script>
var n=9;
var flag = [];
var txt = [
'イチロー','中島裕之','青木宣親','城島健司','小笠原道大',
'片岡易之','内川聖一','川崎宗徳','岩村明憲','片岡易之'
];
window.onload = function(){
var s='';
for(var i=0;i<n;i++){
do x=Math.floor(Math.random()*txt.length); while(flag[x])
flag[x]=true;
s+=txt[x]+"<br/>";
}
document.getElementById('wbc').innerHTML=s;
}
function irekae(){
location.reload();
}
</script>

<form>
<input type="button" value="打順入替え" onclick="irekae()">
</form>
</body></html>
538Name_Not_Found:2009/09/25(金) 23:15:13 ID:???
どうしたらイイも何も
onloadで呼び出してる関数をボタンで呼び出せばいいだけじゃないの?
あとflag立てて律儀に入れ替えるよりsort()でランダム入れ替えできる
539Name_Not_Found:2009/09/25(金) 23:28:40 ID:???
たまにfor(var i=0;i<10;i++)
みたいにvarで宣言してるのをみるんだけど
これしないとiはグローバルにでもなっちゃうの?
540Name_Not_Found:2009/09/25(金) 23:30:06 ID:???
ならないの?
541Name_Not_Found:2009/09/25(金) 23:30:49 ID:???
>>539
百聞は一見にしかず

function f() { for(i=0; i<10; i++); }
f();
alert(i);
542Name_Not_Found:2009/09/25(金) 23:40:08 ID:???
>>540-541
さっきやったらグローバルになりましたありがとうございました
543Name_Not_Found:2009/09/26(土) 00:30:44 ID:???
innerHTMLじゃなくてstyleで単純な文字入れることはできないですよね
544Name_Not_Found:2009/09/26(土) 01:01:07 ID:???
cssText
545Name_Not_Found:2009/09/26(土) 02:07:07 ID:???
canvasって将来性ある?
546Name_Not_Found:2009/09/26(土) 02:18:25 ID:???
IE次第
547Name_Not_Found:2009/09/26(土) 04:48:10 ID:???
svgよりは流行ってる
548Name_Not_Found:2009/09/26(土) 05:50:10 ID:???
svgみたいに.svgってなっても見た目は良い感じだけど
canvasはどうなんの。
あと、
canvas要素のwidth,height共に300pxにして
ctx.beginPath();
ctx.moveTo(10,10);
ctx.lineTo(60,10);
ctx.lineTo(60,60);
ctx.lineTo(10,60);
ctx.closePath();
ctx.stroke();
したら四角形が縦長になるのはなんでなの。
widthを300px、heightを150pxにしたらたぶん綺麗な正方形になるんだけど。
549548:2009/09/26(土) 06:20:52 ID:???
解決した。
cssstyleでwidthとheightを指定してしまっていたのを
要素内でそれぞれ指定したら大丈夫だった
550Name_Not_Found:2009/09/26(土) 07:03:54 ID:???
Canvas前提ならIEは無視でいいよ
互換ライブラリ使うのもアホらしい
10年くらいで追いつくだろ。ほっとけ
551Name_Not_Found:2009/09/26(土) 09:40:00 ID:MpQmEQn2
<HEAD></HEAD>内にdocument.write('javascript');と書いたら画面
にjavascriptと表示がされました。出力構造体はECMAで<BOCY>内で
のみ有効だと思っていたのですが、バグでしょうか。
552Name_Not_Found:2009/09/26(土) 09:50:55 ID:???
IEでChromeのエンジン使えるようになるから心配しなくてOK
http://itpro.nikkeibp.co.jp/article/NEWS/20090924/337659/?ST=ittrend

しかしMSが顔真っ赤にしてるからIEに小細工するかもしれん
http://www.itmedia.co.jp/news/articles/0909/25/news072.html
553Name_Not_Found:2009/09/26(土) 09:57:04 ID:1fQD8a7y
jQueryな質問ですが、
$(document).ready(function(){...
のところを、
$(top.frames{"right"]document).ready(function(){...
とすれば、frameタグでrightと名付けられた外部のHTMLが読み込まれた時点でイベントが発生するのかなと思ったら「オブジェクトではありません」とエラーが返ってきました。
外部のHTMLが呼び出された時点でイベントを発生させることはできないのでしょうか?
554Name_Not_Found:2009/09/26(土) 10:07:14 ID:???
top.frames{"right"]document
これだと構文エラーおきないか?
555Name_Not_Found:2009/09/26(土) 10:14:47 ID:???
>>553
デバッグのやり方覚えてくれ
556Name_Not_Found:2009/09/26(土) 10:43:47 ID:???
Excelが吐き出すCSVの文字列を渡すと二次元配列に変換して返す関数作ってみたけど
FireFox以外のブラウザでも動くだろうか?
一応、項目の中にカンマ、ダブルクォート、改行が入っていても対応できるように作ってみたつもり

function parse_csv(csv_sheet){
var sheet = [];
var rows = csv_sheet.replace(/[x0Dx0A]+$/,'').split(/x0Dx0A|x0D|x0A/);
for(var i=0; i<rows.length; i++){
var row = rows[i]+'';
while(row.match(/"/g) && row.match(/"/g).length % 2){row += "n"+rows[++i]}
var cols = row.match(/^"(""|[^"])*"|,"(""|[^"])*"|^[^",]*|,[^",]*/g);
for(var j=0; j<cols.length; j++){cols[j] = cols[j].replace(/^,/,'').replace(/^"([^0]*?)"$/,"$1").replace(/""/g,'"')}
sheet.push(cols);
}
return sheet;
}
557Name_Not_Found:2009/09/26(土) 10:50:34 ID:???
>>551
バグって言うか、ブラウザの許容解釈
558Name_Not_Found:2009/09/26(土) 12:49:01 ID:4Qyrd/dn
class名が「test」のオブジェクトを取得できますか?
559558:2009/09/26(土) 12:53:29 ID:4Qyrd/dn
補足です。ブラウザはIE8で、ライブラリなどなしが希望です。
560Name_Not_Found:2009/09/26(土) 12:58:36 ID:eQ/VmymJ
JavaScriptでClass(オブジェクトって言うのでしょうか)は書けますか?

PHPで書くとこんな感じなんです
<?php
class Hello {
public function sayHello() {
print 'Hello World !;
}
}
?>
561Name_Not_Found:2009/09/26(土) 13:11:25 ID:???
JavaSciprtのオブジェクトはクラスベースではなくプロトタイプベースなので無理です
562Name_Not_Found:2009/09/26(土) 13:23:20 ID:???
>>561
誰宛のレス?
563Name_Not_Found:2009/09/26(土) 13:37:08 ID:???
560
564Name_Not_Found:2009/09/26(土) 13:48:52 ID:???
>>558
IE8ならSelectorAPIが使えるでしょ

>>560
それっぽく扱えるようにするライブラリがある
prototype.jsとか
565Name_Not_Found:2009/09/26(土) 14:06:05 ID:???
>>560
こんな感じでできるよ

<html>
<head>
<script>
function Hello(){
}
Hello.prototype.sayHello = function(){
alert('Hello World !');
}
</script>
</head>
<body onload="hello=new Hello();hello.sayHello()">
<div id="view"></div>
</body>
</html>
566Name_Not_Found:2009/09/26(土) 14:11:27 ID:???
>>560
こうすると更にそれっぽい

<html>
<head>
<script>
function Hello(view_id){
var elm = document.getElementById(view_id);
if(elm){
this.view_elm = elm;
}
this.hello_text = 'Hello World !';
}
Hello.prototype.sayHello = function(){
if(this.view_elm){
this.view_elm.innerHTML = this.hello_text;
}else{
alert(this.hello_text);
}
}
</script>
</head>
<body onload="hello=new Hello('view');hello.sayHello()">
<div id="view"></div>
</body>
</html>
567Name_Not_Found:2009/09/26(土) 14:12:12 ID:???
素晴らしいですね
568Name_Not_Found:2009/09/26(土) 14:27:39 ID:???
インスタンスを2個以上つくるとクラスのありがたみが実感できてくる

<html>
<head>
<script>
function Hello(view_id,view_str){
var elm = document.getElementById(view_id);
if(elm){
this.view_elm = elm;
}
if(view_str){
this.hello_text = view_str;
}else{
this.hello_text = 'Hello World !';
}
}
Hello.prototype.sayHello = function(){
if(this.view_elm){
this.view_elm.innerHTML = this.hello_text;
}else{
alert(this.hello_text);
}
}
//-->
</script>
</head>
<body onload="hello1=new Hello('view1','HELL!!');hello2=new Hello('view2');hello2.sayHello();hello1.sayHello();">
<div id="view1" style="background-color:#0000ff"></div>
<div id="view2" style="background-color:#00ff00"></div>
</body>
</html>
569Name_Not_Found:2009/09/26(土) 14:28:53 ID:???
インスタンスってなに?
570Name_Not_Found:2009/09/26(土) 14:35:09 ID:???
>>569
オブジェクトと同義語
操作対象のデータの塊と思えばいい
>>568でいうなら変数hello1または変数hello2に格納されたデータのことと思えばいい
571Name_Not_Found:2009/09/26(土) 15:09:10 ID:???
>>568
それを「クラス」と称するのはどうかと思うけどね
572Name_Not_Found:2009/09/26(土) 17:16:01 ID:???
どうやったらiframe内のスクリプトから
自己iframeの大きさを変えられますか?
573Name_Not_Found:2009/09/26(土) 17:44:06 ID:???
iframe使うバカってまだいたの?
object使えよバカ
574Name_Not_Found:2009/09/26(土) 17:46:05 ID:???
>>572
外側フレームが同じドメインなら、外側フレームのiframe要素の
大きさを変える。ドメインが違えばできない。
575553:2009/09/26(土) 18:46:36 ID:???
すみません。553です。
>>554
すみません。ピリオドが一個抜けてました。それだと構文エラーが起きますね。
>>555
IEの開発者ツールでも見てみたのですが、「メンバが見つかりません」と出ます。
多分根本的に記述方法がおかしいような気はしているのですが、正直よく解ってないです。
今はとりあえず仕事帰りに買ってきたjQueryとajaxとJavascriptの本を広げながらウンウンうなってるところです。
576Name_Not_Found:2009/09/26(土) 19:08:56 ID:???
なるほど、少し上のあれが???の人か
577Name_Not_Found:2009/09/26(土) 19:20:07 ID:???
ふと思ったんだけど、canvasで描いた軌跡というか
キャッシュ的なものってブラウザに保存されているんだろうか。
578Name_Not_Found:2009/09/26(土) 20:08:57 ID:???
少し上の奴はHTMLすら正しく書けない"_"使い
???の人ではない
どちらもスレ名物ではある
ホレ氏とか懐かしいな
579Name_Not_Found:2009/09/26(土) 20:12:32 ID:???
ややこしいなw
580Name_Not_Found:2009/09/26(土) 20:23:11 ID:???
暇だったから過去スレ検索してみたら、???の人は8年前のpart2から
今までずっと変わらない書式で生息しててフイタ
驚いたことにレベルまで8年前から全然あがってない
これは紛れもない名物だわ・・・
581Name_Not_Found:2009/09/26(土) 20:32:11 ID:???
ajax関連に特化したブラウザがでればいいのにな。
デザインベースのサイトには使えないけど、
ゲーム的なものにはものすごく強い、みたいな。
582Name_Not_Found:2009/09/26(土) 20:36:41 ID:???
なにをもってしてゲームに強いとするのかわからんけど
chromeはそういう方向性だぞ
583Name_Not_Found:2009/09/26(土) 20:47:31 ID:???
IEも昔からそうだろ
584Name_Not_Found:2009/09/26(土) 21:50:32 ID:???
そもそもAjax(XMLHTTP)自体がIE由来
IEに感謝しとけ
585Name_Not_Found:2009/09/26(土) 22:50:50 ID:???
<A onmouseover="Over('ID')"> hoge </a>
でリンク時に、解説などを小窓に出す書き方がありますが、
このID指定する文章を、別のファイル、サブフォルダのファイルなどに
指定することは出来ますか?

<DIV id="ID1">
あれこれ
</DIV>

の量・数が増えすぎて一枚のhtmlファイルだと、でかくなりすぎてしまう。
586Name_Not_Found:2009/09/27(日) 00:50:02 ID:???
サーバーサイドスクリプトまたはクライアントサイドスクリプト(ajax)の好きな方で
587Name_Not_Found:2009/09/27(日) 01:03:17 ID:???
外部 js で変数に入れときゃいいんじゃないの?
管理しやすいかは別の話だが

個人的には
テキストで問題になるほど容量がかさむなら
ページ構成を考え直した方がいいと思うし
そうでなけりゃ1ページでもいい気がする
588Name_Not_Found:2009/09/27(日) 01:17:08 ID:???
皆さんjavascriptの開発環境はどのようなもので行っているのですか?
私はfirefoxで開発用add-onを入れてサクラエディタで書いたりしてます.
589Name_Not_Found:2009/09/27(日) 01:35:03 ID:???
Emacs + js2-mode
590Name_Not_Found:2009/09/27(日) 07:56:02 ID:???
TeraPad
591Name_Not_Found:2009/09/27(日) 08:40:23 ID:???
>>585
<a href="hoge.html#ID1">hoge</a>

hoge.html
<div id="ID1"><p>あれこれ</p></div>

として考えろ
hoge.htmlは@relなり@classなりで目印をつけて先読みしとけ
592Name_Not_Found:2009/09/27(日) 09:51:48 ID:???
>>574さんありがとうございました。
titleはドメインが違うiframeからでも取得、変更できますか?
またはウィンドウの大きさ等iframe内外で共通して取得、変更できるものはありますか?
593Name_Not_Found:2009/09/27(日) 10:10:05 ID:???
vim最強
594Name_Not_Found:2009/09/27(日) 12:41:39 ID:???
>>592
まず自分で試せ
595Name_Not_Found:2009/09/27(日) 12:57:27 ID:???
>>592
ドメインが違うから取得できないって書いてあるのに日本語読めないクズだなお前
596Name_Not_Found:2009/09/27(日) 13:47:20 ID:???
クズとはなんですか!まじめに聞いているのに。
597Name_Not_Found:2009/09/27(日) 13:55:29 ID:???
真面目に聞いてるのなら何度も読み返せよ
日本語が理解できない人は2ちゃんで質問するのは難しい
598Name_Not_Found:2009/09/27(日) 13:56:52 ID:???
真面目に質問した後の答えを
真面目に読め。
599Name_Not_Found:2009/09/27(日) 14:04:51 ID:???
>>572の顔が真っ赤wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
600Name_Not_Found:2009/09/27(日) 16:09:25 ID:???
なんだか、傍観者の方が読めてない感じがするけど。
>>572
は「他ドメインは大きさは変えられないとして、titleは取れるか」と
質問しているんでしょ。で、答えは「ドメインが違えばまったく
何も出来ない」ということで。
601Name_Not_Found:2009/09/27(日) 17:22:27 ID:???
>>600
君が書いたことはもう既に答えでてるよ
読めてないのは君だったね
602Name_Not_Found:2009/09/27(日) 20:10:04 ID:???
function hoge(a,b){}

のa,bはhogeの中でちゃんとローカルになってくれるんですか?
603Name_Not_Found:2009/09/27(日) 20:13:01 ID:???
>>602
呼び出してみればよいのでは?
604Name_Not_Found:2009/09/27(日) 20:15:40 ID:???
>>602
なってるよ
605Name_Not_Found:2009/09/27(日) 21:02:44 ID:???
>>603
はい、呼び出してみたんですが
例えばfunction hoge(var a,var b){}
みたいな感じだと確信がもてるんですが・・と思い質問しました
>>602
ありがとうございます
606Name_Not_Found:2009/09/27(日) 21:03:40 ID:???
訂正>>604
ありがとうございます
607Name_Not_Found:2009/09/27(日) 21:18:26 ID:???
javascriptで自分で2chにレスした内容を逐一取得しつづけることは出来る?
608Name_Not_Found:2009/09/27(日) 21:34:42 ID:???
vbscript使うなら出来るが・・・
609Name_Not_Found:2009/09/27(日) 21:34:49 ID:???
>>605
v = "global";
function f1(v) { alert(v); f2(); }
function f2() { alert(v); }
f1("parameter");
こういった単純で、確信を持てるような例を書けるようになろう

>>607
解読めんどいw
自動リロードのことなら悪いことは言わんからブラウザの機能で対処しとけ
610Name_Not_Found:2009/09/27(日) 22:07:11 ID:???
確信したければ仕様を読め
確認したければ例文を書け
例えばJScriptのtry〜catchのスコープは規約通りでないから
例文だけでは誤解する
611Name_Not_Found:2009/09/27(日) 23:09:33 ID:???
>例文だけでは誤解する
ごもっとも
例が悪い場合もあるしなあ
612Name_Not_Found:2009/09/28(月) 06:27:31 ID:???
>>592です
誤解を招く言い方でたくさんの方々を巻き込んでしまいました。
みなさんの意見を聞いて試行錯誤した結果、
hashの指定により考えていたことが実現できそうです
>>594さんの言う通りでした。自分勝手ですみません
大変スレを汚したことを謝罪します
なおこれは>>592以来初めてのスレであり、
>>596等は私のスレではありません
613Name_Not_Found:2009/09/28(月) 10:18:46 ID:???
getElementsByTagName() について、教えてください。

たとえば、ページ中の<div>タグ要素を全て取り出して、
変数abcに入れるには、

var abc = document.getElementsByTagName("div") ;

で良いですか?
614Name_Not_Found:2009/09/28(月) 10:31:30 ID:???
>>613
それ位なら試してみなよ。
615Name_Not_Found:2009/09/28(月) 11:49:11 ID:q7RgHRqD
getElementsByTagNameがxhtmlでは使えないというのをこのスレで読んだ記憶があるのですが
他にもxhtmlでは使えない物ってなにがありますでしょうか?
もし参考サイトがございましたら教えてください
616Name_Not_Found:2009/09/28(月) 12:14:06 ID:???
>>615
それ位なら試してみなよ。
617Name_Not_Found:2009/09/28(月) 12:26:59 ID:???
>>616
知らないならレス不要です
618Name_Not_Found:2009/09/28(月) 12:31:26 ID:???
getElementsByTagNameはxhtmlでも使えます
application/xhtml+xmlでも使えます

使えないのはdocument.write
619Name_Not_Found:2009/09/28(月) 13:52:39 ID:???
>>618
俺の環境ではdocument.writeは使えるのだが・・・?
620Name_Not_Found:2009/09/28(月) 14:13:37 ID:???
>>615
getElementsByNameの挙動の差違がどうとかじゃなかったっけ
ttps://developer.mozilla.org/ja/DOM/document.getElementsByName

>>619
ttp://past.openvista.jp/blog/documents/W3C/XHTML_FAQ/#docwrite
さっそく>>610の言うパターンだな
621Name_Not_Found:2009/09/28(月) 14:14:57 ID:???
getElementsTagNameじゃないの? また違うプロパティ?
622Name_Not_Found:2009/09/28(月) 14:47:47 ID:???
>>571
こんな書き方をすればクラスっぽくない?
function Hello(){
this.initialize.apply(this, arguments);
}
Hello.prototype = {
initialize: function(view_id,view_str){
this.set_view(view_id);
this.set_str(view_str);
},
view: function(){
if(this.view_elm) this.view_elm.innerHTML = this.hello_text;
else alert(this.hello_text);
},
set_str: function(view_str){
if(view_str) this.hello_text = view_str;
else this.hello_text = 'Hello World !';
},
set_view: function(view_id){
var elm = document.getElementById(view_id);
if(elm){
this.view_elm = elm;
}
},
finalize: function(){}
};

<body onload="hello=new Hello('view','Hello!');hello.view()">
<div id="view"></div>
623Name_Not_Found:2009/09/28(月) 15:38:49 ID:???
>>622
クラスと似てる部分だけ出してあたかもこれはクラスだと言わんばかりのミスリーディングをするなと
ライブラリのサポートがあるならまだしも、パラダイムが違うプロトタイプベースにクラスベースの思考でやると罠に嵌るぞ
ありがちなのは継承周り
624Name_Not_Found:2009/09/28(月) 16:38:41 ID:u5ghx2Rg
ActionScriptの悪口はそこまでだ
625Name_Not_Found:2009/09/28(月) 16:41:12 ID:???
          ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \    < インスタンスを2個以上つくるとクラスのありがたみが実感できてくる
    |      |r┬-|    |   
     \     `ー'´   /
    ノ            \
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
626Name_Not_Found:2009/09/28(月) 16:56:07 ID:???
サーバーサイドで実行できるjqueryのオープンソース phpquery

サーバー側でHTMLをjquery感覚で整形できるよ。

http://code.google.com/p/phpquery/
627Name_Not_Found:2009/09/28(月) 16:59:29 ID:???
$doc = phpQuery::newDocumentHTML("http://www.yahoo.co.jp/");

$html = $doc['div'] -> html();

サーバーサイド側でこんな簡単にHTMLが抜け出せる。
正規表現も使わないで済む。jqueryライクな書き方でOK
628Name_Not_Found:2009/09/28(月) 17:01:36 ID:???
>>619
節子、それXHTMLやない。HTMLや!
629Name_Not_Found:2009/09/28(月) 19:56:27 ID:???
テーブルで、行のどこかをクリックしたら別のページに飛ぶようにしています。
<TR onClick="location.href='hogehoge'">

さて、テーブルにチェックボックスの列を追加したんですが、チェックボックスをチェックすると
onClick() が発動してページが遷移してしまいます。
<TR> タグの onClick() でページの遷移を抑制するため、クリックされたのがチェックボックスであると認識するには
どうしたらよいでしょうか?
630Name_Not_Found:2009/09/28(月) 20:11:34 ID:???
>>629
Fxの場合
element.onclick = function(evt) { alert(evt.target.tagName); }
631Name_Not_Found:2009/09/28(月) 20:32:57 ID:???
既存のHTMLモードとXHTMLモードの切替はHTML5でだいたい規約化される
XHTML5はtext/htmlではなく必ずapplication/(xhtml+)xmlで提供しなければならない
application/xhtml+xmlではDocumentがHTMLDocumentにならないので
write、getElementsByName、body、forms、imagesなどHTMLDocumentのメンバは使用できない

XHTMLには名前空間がある
DOM Level 1メソッドのgetElementsByTagNameやcreateElementは名前空間を知らない

例えばcreateElement('p')したとき、現在の実装は
*application/xhtml+xml(ルート要素がhtml)のときはhttp://www.w3.org/1999/xhtml/vocab#pを生成
*application/xmlのときはDOM Level 2に従い名前空間なしのpを生成
という分岐をする
これはHTML5でも部分的にしか明言されておらずまだ曖昧

例えばgetElementsByTagName('p')したとき
*Firefoxは<p/>のみを拾う
*WebKitやOperaは<p/>、<a:p/>、<b:p/>などローカル名がpのものを全て拾う
という挙動の違いを見せる
実のところDOMでもHTML5でもタグ名とローカル名の違いははっきりしない

document.bodyを使えない事態を想定してかgetElementsByTagName('body')[0]と書く人がいるが
上記の事情を踏まえれば、さほど確実な手段でないことが分かる

MSHTMLが未だDOM Level 2をフルサポートしないこと(MSXMLもDOM Level 1だが独自拡張で名前空間を扱える)
Selectors API(Level 1)もjQueryも名前空間を扱えないこと
Ian HicksonがXML名前空間を嫌っているっぽいこと
RDFaのCURIEのように名前空間宣言を再利用する仕様があること
名前空間の周辺はカオス
632Name_Not_Found:2009/09/28(月) 20:41:54 ID:???
xhtmlはhtmlと合併するんじゃないのか
633Name_Not_Found:2009/09/28(月) 20:47:31 ID:???
だから、名前空間が絡む作業には必ずgetElementsByTagNameNS、createElementNSを使え
DOM Level 1メソッドでXHTMLを処理できるのは、そういう風にXHTMLを書いた場合のみ

>>632
日経BPのデマ
634Name_Not_Found:2009/09/28(月) 20:59:04 ID:???
( 'p' )
( 'x' )
( 'y' )
635629:2009/09/28(月) 20:59:13 ID:???
>>630
済みません。不勉強のためよくわかりませんでした。
そもそも <TR> の onClick では <TR> で押されたよ、しか分からないのでは、と思い
hidden の項目を増やしてチェックボックスの onClick でそこに値をセットし
<TR> の onClick でその値であるかチェックするようにしました。
(チェックボックスの onClick が呼ばれた後に <TR> の onClick が呼ばれるため)
スマートではないかもしれませんが、とりあえずこれで良しとします。
御回答ありがとうございました。

<TR onClick="if(document.form1.flag[0].value=='0'){location.href='hogehoge';}else{document.form1.flag[0].value='0';}">
<TD>
 <input type='checkbox' name='check' onClick="document.form1.flag[0].value='1';">
 <input type='hidden' name='flag' value='0'>
</TD>
</TR>
636Name_Not_Found:2009/09/28(月) 21:39:19 ID:dV9mOnOc
ちょっとお尋ねしたい事があります。
今以下のような動作をするブックマークレットを作っています。
@ブックマークレットを実行
A実行後、実行したページ内のリンクをクリック
BクリックしたリンクのURLが
"http//:www.hogeohge.com"
だとすると
"ghttp//:www.hogehoge.com"
を開く。
ようはリンク先のURLの先頭に"g"を付加するブックマークレットです。
んでネットから拾ってきたソースが以下なんですが、
javascript:( function() {
var a=document.getElementsByTagName('a');
for(var i=0,j=a.length;i++){
a[i].setAttribute('target','_blank');
a[i].href='g'+a[i].href;
}
}
これがMobile Safariだとちゃんと動作するのですが、iCab Mobileだとうまく動作しません。
具体的にはリンク先が
"http//:hoge&hoge.com"
だとすると
"ghttp//:hoge"
となってしまい&の直前で切れてしまいます。
どなたか解決策が分かる方はいらっしゃいますでしょうか?
よろしくお願いします。
637Name_Not_Found:2009/09/28(月) 21:47:05 ID:???
大方HTML側で&を&にエスケープしてないので
iCabが不明な実体参照として無視したんだろ
ページ制作者に文句を言え
638Name_Not_Found:2009/09/28(月) 21:47:51 ID:???
&amp;
639Name_Not_Found:2009/09/28(月) 21:53:53 ID:dV9mOnOc
>>637
ご回答ありがとうございます。
それはつまりこちら側でいくら弄ったとしても
解決策はないという事でしょうか・・?
640Name_Not_Found:2009/09/28(月) 22:07:37 ID:???
iCabはouterHTMLを持っていた気がするのでそこに残っていれば楽
なければ自前でHTMLパーズしてブラウザのDOM木と対応付けしろ
そこまでやりたくなければ諦めろ
641636:2009/09/28(月) 22:18:10 ID:???
今日からjavascript弄り始めた身としては敷居が高そうですね・・。
コツコツ勉強します。
ありがとうございました。
642Name_Not_Found:2009/09/28(月) 22:58:34 ID:???
サーバーサイドで実行できるjqueryライクなphpオープンソース phpquery

サーバー側でHTMLをjqueryライクな書き方で整形できるよ。

http://code.google.com/p/phpquery/


$doc = phpQuery::newDocumentHTML("http://www.yahoo.co.jp/");

$html = $doc['div'] -> html();

サーバーサイド側でこんな簡単にHTMLが抜け出せる。
正規表現も使わないで済む。jqueryライクな書き方でOK
643Name_Not_Found:2009/09/28(月) 23:16:37 ID:???
F5でサイト更新するたび、スクリプトの動作が重くなっていく。
なんだろう、何か解放の処理とかしなきゃならないのだろうか。
644Name_Not_Found:2009/09/28(月) 23:46:58 ID:???
メモリーリークじゃねーの
645Name_Not_Found:2009/09/29(火) 00:10:38 ID:???
>>643
「javascript 循環参照」でぐぐってみるよろし
646Name_Not_Found:2009/09/29(火) 00:37:16 ID:???
<body id='body'></body>
にしといて
getElementById('body')とかやらないほうがいい?
647Name_Not_Found:2009/09/29(火) 00:44:15 ID:???
>>646
それ位なら試してみなよ。
648Name_Not_Found:2009/09/29(火) 01:17:50 ID:???
>>647
おれ646じゃないけど
>>646のを試した時にどこをどうやってチェックすればいいのかな?
649Name_Not_Found:2009/09/29(火) 01:31:41 ID:???
一定間隔(0.5秒に1回)で画像を切り替える場合

・Flash
・JavaScript

どっちの方がパフォーマンスが良い?
(つまりCPU・メモリへの不可の少ない方はどっち?)
650Name_Not_Found:2009/09/29(火) 02:00:54 ID:???
>>649
不可が負荷の事なら、JavaScriptの方が軽い。
651Name_Not_Found:2009/09/29(火) 02:37:24 ID:???
GIFにしとけ
652Name_Not_Found:2009/09/29(火) 02:38:53 ID:???
>>650
サンクス

>>651
GIFの作り方がわからん。
IllustratorCSでつくれる?
それしかもってません
653Name_Not_Found:2009/09/29(火) 04:43:36 ID:???
0.5秒程度じゃCPUへの負荷はきにしなくていい
高速の画像切り替えなんかはJavaScriptは苦手なので
(というよりブラウザの実装次第なのでIEとSafari以外気になるほどでもないと思うが)
Flashにしたほうがより多くの人にとって自然体で見ることができる
GIFアニメはぐぐればいっぱい作り方乗ってるでしょ
654Name_Not_Found:2009/09/29(火) 04:50:00 ID:???
>>647
試したんだけども
なんか上でTagName('body')[0]は〜みたいな下りがあったから
じゃあどうせbody一つしかないんだしid="body"にしちゃえばいいじゃね、と
655Name_Not_Found:2009/09/29(火) 05:59:14 ID:???
>>649
うぜぇ
656Name_Not_Found:2009/09/29(火) 06:31:58 ID:???
canvas関連はどこで質問したらいいの
canvasスレ見つからないしhtml5過疎だし
657Name_Not_Found:2009/09/29(火) 07:06:35 ID:???
>>654
それもどうせHTML実装が前提だから大して変わらん
好きにしろ
658Name_Not_Found:2009/09/29(火) 07:09:43 ID:???
>>656
You作っちゃいなYO
俺も興味あるし書き込まないがROMはするぜ
659Name_Not_Found:2009/09/29(火) 07:48:31 ID:???
>>658
立てよう立てようとおもってたけど、
svgスレみてみたら、2年も前のスレ・・
canvasも過疎が予想されるなぁと・・
だから保留中な感じ。
660Name_Not_Found:2009/09/29(火) 07:50:17 ID:???
661Name_Not_Found:2009/09/29(火) 07:59:13 ID:???
javascriptで絵が描けるcanvasは面白そうだし興味有るけどsvgは正直興味ない
662Name_Not_Found:2009/09/29(火) 09:07:44 ID:???
例えばctx.save()したのを別のキャンバスctx2へrestore()するのはどうすればいいんだろう
みたいなのを質問したい
描画状態をsaveできるのはいいんだけど、その線形データが欲しい。
663643:2009/09/29(火) 09:33:43 ID:???
>>644-645
ありがとう。頑張ってみる
664662:2009/09/29(火) 09:35:31 ID:???
いろいろやってたら
var image=ctx.getImageData(sx, sy, sw, sh)
image.data.join();
で取り出せたわ。bmpだけど。
これを変換できればいいのに。
665Name_Not_Found:2009/09/29(火) 10:03:36 ID:???
なんだ、canvasフォーマットってまだないのか
666Name_Not_Found:2009/09/29(火) 10:25:15 ID:???
>>662,664
どこから突っ込めばいいのやら・・・
667Name_Not_Found:2009/09/29(火) 10:36:30 ID:???
わからないならレスしない方がまし
668Name_Not_Found:2009/09/29(火) 13:52:38 ID:???
でたw
669Name_Not_Found:2009/09/29(火) 15:03:57 ID:???
>>662,664
Canvasを勘違いしていると思う。

Canvasは描画されたピクセルイメージしか保持してない。描画手順のよ
うなものはどこにも保持されていない。save()関数が保存するのは座標
変換の設定やペンの設定やら、そういう設定情報だけで、ピクセルイメー
ジも保存しない。

描画手順を記録したいのなら、自分でそういう構造を作りながら描画す
るか、SVGを構築すればいい。
670Name_Not_Found:2009/09/29(火) 19:56:11 ID:???
質問には描画状態とは書いてあるが、描画手順なんてどこに
書いてあるんだろう。

たしかに設定を共有できたらいいと思うね>>662
671Name_Not_Found:2009/09/29(火) 20:03:31 ID:???
線形データ→ベクター→描画手順と脳内変換されたと予想
672Name_Not_Found:2009/09/29(火) 20:18:14 ID:/zbAsi9c
つかcancas自体が"a resolution-dependent bitmap canvas"なのに
ビットマップでしか保存できないとか言うのは筋違い
線形データが欲しけりゃSVGでやれよ
673Name_Not_Found:2009/09/29(火) 20:54:02 ID:???
いちばん分かってないのは>>667だった
674Name_Not_Found:2009/09/29(火) 21:22:59 ID:???
svgて至るところでダメダメ言われてるけど
なんでいじめられてるの?
svgにとって代わるものなんてでてるのかな
675Name_Not_Found:2009/09/29(火) 21:25:49 ID:???
フォームに入力するときの文字処理だけど、
自作のブラウザ画面上キーボードでフォームに文字列挿入まではわかるんですが
平仮名から漢字に変換ってどうやるかさっぱり見つけられません。
文字列の再変換じゃなく返還中の状態で文字を追加したいんだけど。
英数字だけだと簡単なんだけどね、日本語って、、、。
出来るかできないか、どなたかご教示お願いいたします。
676Name_Not_Found:2009/09/29(火) 21:41:42 ID:???
>>675
できるわけねえだろks
677Name_Not_Found:2009/09/29(火) 21:42:39 ID:???
感想はいらねえ、質問をハッキリ書け。

> 自作のブラウザ画面上キーボード
これがまずどういう仕様なのか不明なので無視する。

> 平仮名から漢字に変換
あ → 亜亞阿蛙唖吾
という平仮名に対応する漢字は少なくとも6つ以上。
1対1で変換できるわけがない。
678Name_Not_Found:2009/09/29(火) 21:55:19 ID:???
>>674
門外漢だけどPNG/MNGの歴史を辿ってるように見える
つーかIEが標準対応しない時点でオワタ

どうしてもスケーラブルが必要ならflash使えばいいしなあ

>>675
>ブラウザ画面上キーボード
機械翻訳かと一瞬思ったw
ソフトウェアキーボードのことか

クライアントのIMEを操作することはできないはずだから
サーバで漢字変換することになる、Ajax IMEでぐぐれ
679Name_Not_Found:2009/09/29(火) 22:44:21 ID:???
IEはVML実装しちゃってるからいまさらSVG対応はありえない。
で、下手に対応したらJavaのように対応するな!って怒られそうw
680Name_Not_Found:2009/09/29(火) 23:21:35 ID:???
>>678
もろストライクです。
ありがとうございました。
サーバー側で変換とは思い至りませんでした。
681Name_Not_Found:2009/09/30(水) 01:43:15 ID:???
配列ってどんくらい入れてもいいの?(ただし、0か1だけ)
2^32までが限界としてもクライアントによるけど
ここくらいまでにしとけみたいな推奨ってある?
682Name_Not_Found:2009/09/30(水) 02:09:14 ID:???
IE6だとわずか数万の配列を入れただけでハングしたりする
683Name_Not_Found:2009/09/30(水) 04:15:45 ID:???
operaの右下の方に、開かれたサイトの拡大縮小機能があるとおもいます。
あれに似た機能をjavascriptでやるには、といっても
javascriptがロードされるサイトだけですが、
例えば
-- html --
<div id="a">
  <div id="b" />
</div>
-- css --
#a{width:200px;height:200px;}
#b{width:100px;height:100px;}
で、全体を半分にしたければa,bの幅高さをそれぞれ半分に
みたいな具合で、値は親の要素から相対的に計算、
それぞれのエレメントを配列にいれて、繰り返して
styleを変更、と考えました。
しかし、idが連番でも無い限り、親子要素を全て登録しないといけないと思いました。

そこでなのですが、ある親要素からその子要素を全て参照、
もしくは一括でプロパティを変更できたらいいなと思ったのですが
そういった便利な方法はありますでしょうか。よろしくお願いします。
684Name_Not_Found:2009/09/30(水) 08:58:17 ID:???
ある要素から始めてその子要素はchildNodes[]に全部入っているから
「再帰的にたどる」。この用語が分からなければ勉強すれ。終了。
685Name_Not_Found:2009/09/30(水) 11:26:07 ID:???
canvasで1秒間に10枚ほどgetImageDataを何秒か続けてたらメモリがうなぎのぼりしたんだけどどうにかならんの
686Name_Not_Found:2009/09/30(水) 11:45:17 ID:???
>>685
>メモリがうなぎのぼり
言いたい事は判らんでもないが、表現は正確にな。
687Name_Not_Found:2009/09/30(水) 11:45:40 ID:???
688Name_Not_Found:2009/09/30(水) 11:46:38 ID:b20nwBaU
w3cのxhtmlとかcssみたいにcanvasの原文ってどこで読めるのでしょうか?
689Name_Not_Found:2009/09/30(水) 12:15:57 ID:???
メモリがダウンバースト
690Name_Not_Found:2009/09/30(水) 12:24:24 ID:???
メモリがメガ盛り
691Name_Not_Found:2009/09/30(水) 12:47:47 ID:???
んで、どうにかならんの?
692Name_Not_Found:2009/09/30(水) 13:48:32 ID:???
超盛るぜぇ〜!
693Name_Not_Found:2009/09/30(水) 15:23:04 ID:???
メガっさうなぎのぼりにょろ
694Name_Not_Found:2009/09/30(水) 17:43:00 ID:HaO0MNej
うなぎのぼりだじぇ
695Name_Not_Found:2009/09/30(水) 18:23:50 ID:???
んで、どうにかならんの?
あん??
696Name_Not_Found:2009/09/30(水) 18:26:33 ID:???
生え際がうなぎのぼり;;
697Name_Not_Found:2009/09/30(水) 19:35:39 ID:???
マジレスすると遅延評価でなんとかなるかもしれない
でもまあ1秒間に10回とかいう時点でなんか勘違いしてそうだな
698Name_Not_Found:2009/09/30(水) 20:35:20 ID:???
すいません。うなぎのぼりって何ですか?うなぎののぼりだと
思うんですけど、意味がつながらなくて。
699Name_Not_Found:2009/09/30(水) 20:36:22 ID:rqRM1ymr
俺のメモリが有・・・やっぱなんでもないです。

それはさておきjQueryの話なのですが、
$(function(){
    $.ajax({
        type: "GET",
        url: "data.xml",
        dataType: "xml",
        cache: false,
        success: function(xml){doSomething()}
    })
}
使用するブラウザが会社の都合でIE6なのですが、これだけでメモリリークするっておかしいですか?
doSomething()の内容を空にしても、data.xmlのファイルサイズ分だけメモリがズンドコ圧迫されていくんですが・・・
successのところが循環参照してるのでしょうか。
700Name_Not_Found:2009/09/30(水) 20:51:08 ID:???
青丸急下降☆
701699:2009/10/01(木) 00:09:44 ID:???
家に帰ってきて自宅のPCのIE6で試してみてもやっぱり同じ症状が出ました。
cache: trueにすれば増えなくなるのですが、その代わりブラウザを落とすまでデータを更新してくれなくなります・・・。
あとFFの3.5.1でやってみてもやはりメモリを喰っていくようです。ChromeとIE8では問題ありませんでした。
何か回避策はないのでしょうか・・・
702Name_Not_Found:2009/10/01(木) 00:26:35 ID:???
>>699
細かい部分はともかくそのサンプルぐらい余分なものがなくても再現する?

自分で試してないしあくまでも想像に過ぎないけど
どこかにdata.xmlへの参照が残っていてGCできてないだけじゃないかと
cacheが効いてる場合はdata.xmlが内部的にsingletonになっていて
インスタンスが破棄されなくてもメモリを食わないとかそんな感じで

jQueryの問題やブラウザの仕様かもしれないけど
doSomethingやらが足りない不完全な再現コードだと判断しがたい
703699:2009/10/01(木) 00:56:08 ID:???
>>702
改めて最小限の動作にしてみましたが、やはりメモリを喰っていきます。
実際に実行したコードがこれです。
$(function(){
    $.ajax({
        type: "GET",
        url: "./data.xml",
        dataType: "xml",
        cache: false,
        success: function(xml){doNothing(xml)}
    })
});
function doNothing(x){
}
data.xmlは1MBぐらいのものを作りました。
704Name_Not_Found:2009/10/01(木) 01:23:03 ID:???
メモリリークを「メモリ馬鹿食い」の意味で使ってないよね? 念のため
705Name_Not_Found:2009/10/01(木) 01:24:48 ID:???
>>703
再実行するような仕掛けがないけど、F5でリロードするとメモリ消費量が増えてゆくということ?
706Name_Not_Found:2009/10/01(木) 02:22:08 ID:???
>> 703
リークしている証拠がないと、リークとはいいきれない
Dripとかで調べたの?
707Name_Not_Found:2009/10/01(木) 02:42:19 ID:???
ttp://www.benjoffe.com/code/demos/canvascape/
これの、ゲーム画面部分のskyとfloorとoverlay部分排除して
壁だけで動かしてみたらものすごい軽いんだけど一体なんなの。
一歩前へ進んだだけで描画し直しだと思うんだけど、
ソースみてみたらやっぱり、1コマで全画面clearRect、
その後に少なくとも面の数だけfillしてるっぽいのに、全くそんな感じがしない・・
さっきcanvasで正方形をsetIntervalで拡大縮小してみるデモしたら
それだけでもカクカク感がでてしまったのにこのさくさく感は一体・・
708Name_Not_Found:2009/10/01(木) 06:28:33 ID:???
コード改善したら少しはましになったけど、
やはりclearPathの残像的なものがみえてしまう
709699:2009/10/01(木) 08:47:39 ID:???
>>704
実行するたびにシステムキャッシュがdata.xmlの1MB分ぐらいずつ増えていって、減る様子がないということです。

>>705
そうです。ブラウザを閉じるまでずっと増えていきます。

>>706
タスクマネージャで確認しました。パフォーマンスタブ->物理メモリ(KB)が、利用可能メモリが1MBぐらいずつ減っていって、システムキャッシュが1MBぐらいずつ増えていきます。
710Name_Not_Found:2009/10/01(木) 13:02:41 ID:9QbzYHu0
formのtype=fileでファイルが選択されていない場合、alertを出すようにしたいのですがどのようにすればいいのでしょうか?
type=textなどは検索すると出てくるのですが、、

ご教示いただければと思います。
711Name_Not_Found:2009/10/01(木) 13:19:16 ID:???
>>709
システムキャッシュが増えるのはメモリリークじゃない。

>>710
type=textと同じで良いのでは? たぶん .value が空かどうか見るだけだよね。
712Name_Not_Found:2009/10/01(木) 16:49:00 ID:???
スコープについて勘違いしてるかどうか教えてください。

下のようにfunctionの中にfunction文があった場合、
bはグローバルスコープになる(window.b()で実行できてしまう)と思い込んでいたのだけど、
実際に試してみたら未定義エラーになった。
function a() {
 function b() {
  alert(1);
 }
}

ということは、ほぼ以下と同じ意味と思って良いのですかね?
function a() {
 var b = function() {
  alert(1);
 }
}

違いは前者の場合はa()が読み込まれる段階でbが定義されるのに対し、
後者はa();が実行されるまでbが定義されないというくらい?
(前者は以下がエラーにならない)
function a() {
 b(); // 1が表示される

 function b() {
  alert(1);
 }
}
713Name_Not_Found:2009/10/01(木) 17:34:09 ID:???
グローバル云々は、関数内でFunctionコンストラクタで定義した場合のことでないの?
var x = "global";

function a(){
 var x = "local";

 function b(){ alert(x); }
 var c = new Function("alert(x)");
 b(); // local
 c(); // global
}
a();
714Name_Not_Found:2009/10/01(木) 17:47:44 ID:???
すいません。当たり前なことだと思うですがお力をお借りしたいと思います。
下記セレクトメニューにて、

<SELECT onchange="(window.focus();)">
<OPTION value=0>選択してください</OPTION>
<OPTION value=1>1</OPTION>
<OPTION value=2>2</OPTION>



<OPTION value=50>50</OPTION>
</SELECT>

選択後にマウスホイールで選択がズレると不評があり、onchangeでフォーカスを
外している状態ですが、当たり前なのですが同じ項目を選択した場合は動作しません。
お客様によっては、selectメニューをクリックしてから「やっぱ変更やめた」と
思われる方もいるようで、その時でもフォーカスを外すよう言われています。

onclickやonblur、onmouseoutなど色々試したのですがなかなかうまくいきません。
メニュークリック時に初期化する(selectedIndex=0にする)方法も試したのですが、
「クリックしてやっぱ変更やめたのに値が一番上に戻されたら、今まで何を選択してたのか
判らなくなるからやめてくれ!」とクレームを言われてしまいました。

動作としては当たり前なのですが、対応策を考えなくてはいけない状態です。
ちなみに、radioやcheckboxに変えるようなことは出来ません。
なにか良い方法はないでしょうか?
715Name_Not_Found:2009/10/01(木) 17:58:00 ID:???
ホイールイベントをキャンセル
716Name_Not_Found:2009/10/01(木) 18:13:44 ID:???
>>713
かなり的外れな気がするゾ。

var x = "global";

function a() {
 var x = "local";

 b(); // local
 c(); // global

 function b() { alert(x); }
}

a();

function c() { alert(x); } //function宣言してれば見つけてくれる
var c = function () { alert(x); } //varでは探せない


定義されてなけりゃエラ吐く前に、コード探索が行われる。
てとこじゃないの。
717699:2009/10/01(木) 19:23:01 ID:???
>>711
そうだったんですか・・・よくわからないで言葉を使っていてすみませんでした。
この、更新のたびにシステムキャッシュが増えていく現象を解決することはできないのでしょうか?
718Name_Not_Found:2009/10/01(木) 19:30:23 ID:???
>>717
目の敵にするようなものじゃない
キャッシュについて勉強してこい
719Name_Not_Found:2009/10/01(木) 20:46:34 ID:i48yKqqa
>>714
selectにフォーカスしたらmouseupの回数をカウント。
2回目だったらselectからフォーカス外す。

・セレクトをプレスしてドラッグする方式だと変更不可。
・なぜかselect.blur()だとうまくいかん。

という弊害があるが、IE6でうまくいった。
720719:2009/10/01(木) 20:51:19 ID:i48yKqqa
ホントは手づくりaddEventListenerで書いたんだけど、
書き直すとこんな感じです。

var count = 0;
select.onfocus = function(){
    select.onmouseup = function(){
        count++;
        if(count % 2 == 0){
            select.onmouseup = null;
            // select.blur();
            window.focus();
        }
    };
};
721719:2009/10/01(木) 20:56:40 ID:i48yKqqa
>>719
>なぜかselect.blur()だとうまくいかん

事故解決レス。多分なんだけど、
optionが選択されて、その時点でblur()は実行するんだけど、
ドロップダウンが戻るアニメーションが完了した時点で、
もう一度selectにフォーカスするんだと思う。
722Name_Not_Found:2009/10/01(木) 22:53:49 ID:???
newElm = document.createElement("textarea");
newElm.name = "hoge";
oldElm = document.form1.hoge;
oldElm.parentNode.replaceChild(newElm, oldElm);
<form name="form1">
<input type="text" name="hoge">
</form>

こんな感じで、textをtextareaに変換してるんですけど、
この後alert(document.form1.hoge.value);
とかやってみても、Nullまたはオブジェクトではありません
とか言われるんだけど?どうして?
723Name_Not_Found:2009/10/01(木) 22:57:33 ID:???
onload時にアドレスバーに特定の文字をいれてリンクさせる方法はありますでしょうか。
特定の文字というのは例えば、’食べ物’というような感じでurlは除きます。
よろしくおねがいします。
1.アドレスバーに文字を挿入
2.アドレスバーの送信ボタンを押す
みたいな操作をjavascriptでしたいです。
724Name_Not_Found:2009/10/01(木) 23:28:22 ID:???
location.hrefでおk
725Name_Not_Found:2009/10/01(木) 23:36:42 ID:???
>>722
IEのdocument.formX.formElementXタイプの指定では
元からあるDOMツリーしか調べない、という仕様っぽい。
document.form1.hogeでは最初からある<input type="text" name="hoge">を探して、
それが見つからないからこの値がnullになってる。

回避策としてはdocument.getElementByNameとか、IDを振った上でdocument.getElementByIdかな。
726Name_Not_Found:2009/10/01(木) 23:40:24 ID:???
激しくFAQだからMSDNくらい見ろ
727Name_Not_Found:2009/10/01(木) 23:43:48 ID:???
>>725
なるほどねー。Trixieで書き換えやっているから
getByNameとかgetByIdはできないなあ。
とりあえず原因がわかった。ありがとー
728Name_Not_Found:2009/10/02(金) 00:18:07 ID:???
>>712
ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/10_Execution_Contexts.html#section-10.1.3
function文(FunctionDeclaration)と
var文(VariableDeclaration)の説明をよく読み比べてみるといいよ
729Name_Not_Found:2009/10/02(金) 00:25:57 ID:???
>>724
さっそく試してみました
location.href = "食べ物";
ってやってみると、ローカルから辿ったurlになってしまいました・・
http://localhost/食べ物
みたいな感じです
730Name_Not_Found:2009/10/02(金) 00:31:37 ID:???
>>729
すまんが質問の意味がわからん
そもそも「食べ物」はアドレスバーに入れるべき文字列じゃないだろ

どういう操作をして、どのような結果が返るのを期待するのか具体的に書いてくれ
731Name_Not_Found:2009/10/02(金) 00:57:18 ID:???
>>730
簡単に言うと、
ブラウザのアドレスバーに”食べ物”という文字を入力して、
送信ボタンを押したときに、それぞれのブラウザの挙動にまかせて結果を得たい
ということです。
firefoxだと、食べ物とアドレスバーに打ち込むと(おそらく)googleで食べ物と検索したとき
上位にくるサイトが開かれます。
732Name_Not_Found:2009/10/02(金) 01:01:26 ID:???
JavaScript で現在開いているページの名前を取得するにはどうすれば良いでしょうか?


例) test.html
の中にJavaScriptが記述されておりページロード時に現在起動しているページ名を
取得し画面に表示したいと思います。

var page_name = getFunction();

alert(page_name);


getFunction()
{
// ???  どう書けば良いか分りません。

}
733Name_Not_Found:2009/10/02(金) 01:09:40 ID:???
>>731
把握した、でもそれは無理なはず

>>732
return document.title

そのtest.htmlを開く前のページのタイトルが知りたいっていうなら、無理
734731:2009/10/02(金) 01:14:29 ID:???
>>733
ありがとうございました
735Name_Not_Found:2009/10/02(金) 01:22:00 ID:???
732

>>733
ありがとうございます。
736Name_Not_Found:2009/10/02(金) 02:48:26 ID:???
inv2=setInterval(
function(){
n++;
clearInterval(inv2);
},1);
inv3=setInterval(
function(){
n++;
clearInterval(inv3);
},10);
inv4=setInterval(
function(){
n++;
clearInterval(inv4);
},100);
inv5=setInterval(
function(){
n++;
clearInterval(inv5);
},200);

これをまとめてください
737Name_Not_Found:2009/10/02(金) 04:24:47 ID:???
>>736
え?
738Name_Not_Found:2009/10/02(金) 05:57:54 ID:???
わからなければ無理して答えなくてよい
739Name_Not_Found:2009/10/02(金) 07:14:16 ID:???
>>736
inv=setInterval(
function(){
n++;
(i==5)?clearInterval(inv):i++;
}
,1+(/**/))
740Name_Not_Found:2009/10/02(金) 10:09:16 ID:???
わからなければ無理して答えなくてよい
741Name_Not_Found:2009/10/02(金) 12:50:00 ID:???
例題的なものにどうこう言うのもアレだけど即clearするならsetTimeout使うべきじゃない?

var timing = [1, 10, 100, 200];
var n = 0;
function generator(time) {
 var id = setInterval( function() {
  n++; clearInterval(id);
 }, time);
 return id;
}
for (var i = 0; i < timing.length; i++) generator(timing[i]);

setTimeoutの連鎖に書き換えようかと思ったけど、ラグの積み重ねが許容されるかわからないからやめた
742719:2009/10/02(金) 15:22:38 ID:QFB8ooS3
>>727
普通にnewElmで参照するんじゃいかんの?
743Name_Not_Found:2009/10/02(金) 16:35:57 ID:ZjT4KVBX
obj = {
      dirpath: '/works/'
    , filename: 'test.txt'
    , filepath: this.dirpath + this.filename
};

alert(obj.filepath);

を実行すると「NaN」と表示されるのですが、
プロパティ定義にthisキーワードを使っちゃいけないのでしょうか。
744Name_Not_Found:2009/10/02(金) 16:51:17 ID:???
>>743
thisを呼び出そうとしている段階でまだobjが定義されていないからエラーになる
745Name_Not_Found:2009/10/02(金) 16:54:01 ID:???
thisが定義されるのはこれだけ
・コンストラクタ実行中
・メソッド形式で呼び出した関数の実行中
・Function.prototype.call等を使って明示された関数の実行中

それ以外はグローバルオブジェクト(window)になる
746Name_Not_Found:2009/10/02(金) 16:56:57 ID:???
>>744
そういう問題じゃないw
747743:2009/10/02(金) 18:28:30 ID:ZjT4KVBX
>>744-746
ありがとうございました。
748Name_Not_Found:2009/10/02(金) 18:43:45 ID:???
>>745
addEventListenerやonreadystatechangeはどう説明するんだろ
749Name_Not_Found:2009/10/02(金) 19:07:14 ID:FmovBFef
var a = [0, 1, 2];

のときに

a[3] = 3;

とするとa.lengthの値も変化しますが、それと同じように
他のプロパティを変化させたら変化するプロパティを
オブジェクトに持たせるにはどうしたらよいのでしょうか。
750719:2009/10/02(金) 19:28:37 ID:QFB8ooS3
>>748
var XHR = XmlHttpRequestオブジェクト;
XHR.onreadystatechange = function(){
this....
}

IEでこのthisがXHRにならないのは、XHRがActiveXオブジェクトのラッパだから、じゃね?
751Name_Not_Found:2009/10/02(金) 19:35:18 ID:???
>>748
addEventListenerは三番目
on〜は二番目
752Name_Not_Found:2009/10/02(金) 20:19:39 ID:???
>>751
上はイミフ
下は半分間違い、IEのCOMオブジェクトのプロパティ内ではthisはレシーバを指さない
NodeFilterも例外
753Name_Not_Found:2009/10/02(金) 20:35:15 ID:???
Array#forEachなどもthisを指定できるね
754Name_Not_Found:2009/10/02(金) 21:38:32 ID:???
thisにコンテキスト依存のものを詰め込んで
関数本体はコンテキストに依存しないよう書くのが
俺のジャスティス
755Name_Not_Found:2009/10/02(金) 23:14:35 ID:???
Imageのonerrorでエラーになった原因(HTTP Status コード)を取得したいのですが、
うまい方法はないでしょうか?
756Name_Not_Found:2009/10/03(土) 04:56:21 ID:???
リンクをクリックしたときに現われる点線枠を消したいときに
element.onfocus=function(){this.blur()};
ってするのはよくやるけど、
逆にページを読み込んだ初めからあるリンクにフォーカスを当てて
しかも点線枠を表示させる方法ってないかな?
757Name_Not_Found:2009/10/03(土) 05:05:36 ID:???
キーボード操作不可になるアレか
あんなの本当にやる奴がいるんだな
758Name_Not_Found:2009/10/03(土) 05:13:45 ID:???
<a href="hoge" id="piyo">hoge</a>
<script type="text/javascript">
document.getElementById("piyo").focus();
</script>

IE Firefox Safari Chrome はいけたな
Opera はダメだったが設定のせいかもしれん
759756:2009/10/03(土) 05:22:14 ID:???
自己解決しました
760Name_Not_Found:2009/10/03(土) 05:53:29 ID:???
枠線消したければ今どきはCSSのoutlineに対応してるだろ
761Name_Not_Found:2009/10/03(土) 05:54:58 ID:???
クロスブラウザブラウザがでないのってやっぱアップデートめんどくさいからかな?
762Name_Not_Found:2009/10/03(土) 08:05:09 ID:???
763Name_Not_Found:2009/10/03(土) 18:07:23 ID:???
javascriptの問題なのできました。
iframe内でpopup(overlibとか)した場合、iframeの範囲を超えて一番手前まで持ってくるにはどうすればいいでしょうか?
764Name_Not_Found:2009/10/03(土) 18:14:25 ID:???
parent側に描画する
別ドメインならあきらめろ
765Name_Not_Found:2009/10/03(土) 19:22:22 ID:???
766763:2009/10/03(土) 21:49:02 ID:???
手前に表示は出来ました。
overlibでのマウスの位置判定がフレーム内のを判定→親フレームでその数値の位置で表示・・・
マウスの位置で見るのはどうすればいいでしょう?
767Name_Not_Found:2009/10/03(土) 23:47:48 ID:???
canvasってstrokeでクリアできねぇの?
clearRectだとfillだし四角の枠でクリアしたいときclearRectを4回しなきゃならんじゃん
768Name_Not_Found:2009/10/04(日) 00:07:32 ID:???
あくまでグラフィック描画機能であって、ベクター画像ではないからなぁ
SVGとは似ているようだけど方向性が違う
769Name_Not_Found:2009/10/04(日) 00:13:01 ID:???
激しく勘違いしたすまん
770Name_Not_Found:2009/10/04(日) 16:30:56 ID:sLmUpmV6
下記のサイトでIE8のJavascriptの対応バージョンを調べたのですが1.3までしか対応してませんでした
いままで1.5まで対応してると思ってたのですがどなたかご指摘おねがいします
http://www.fureai.or.jp/~tato/JS/scripttg.htm
771Name_Not_Found:2009/10/04(日) 17:43:49 ID:???
JScriptだから
772Name_Not_Found:2009/10/05(月) 00:26:29 ID:???
function Submit()
{
str = document.myForm.filename.value;
s1 = str.charAt(0);
s2 = str.charAt(1);
alert(s1+s2);
}
<FORM method="POST" action="/cgi-bin/upload.cgi" name="myForm" onSubmit="return Submit();" enctype="multipart/form-data">
<INPUT type="file" name="filename" size="40">
<INPUT type="submit" value="送信">
</FORM>
こんな感じのフォームで、仮に"D:\ETD7043_XP_WHQL.zip"と言うファイルを送信すると
IE D:
Fx ET
と結果が違うのですがこれは仕様でしょうか?
773Name_Not_Found:2009/10/05(月) 01:28:33 ID:???
winでマイドキュメントから参照したときなんかパスにユーザー名が含まれるし
ユーザー名が実名まんまな人もたまにいるからなぁ
ファイルパスを含まないという対処もやむを得ない
774Name_Not_Found:2009/10/05(月) 01:51:47 ID:???
>>772
標準仕様がない状態なので、ブラウザ依存になる。.value は、
IEとOperaは D:\fakepath\ETD7043_XP_WHQL.zip
FirefoxとWebKitは ETD7043_XP_WHQL.zip
になると思う。
775Name_Not_Found:2009/10/05(月) 03:01:24 ID:???
ありがとうございます。
標準仕様がないのですね…確かにパスに個人名とか含まれてると面倒ですね。
とりあえず>>774さんの書かれるとおりにブラウザ別処理を仕込んでみます。
776独学:2009/10/05(月) 03:36:45 ID:zbF33XaE
学校の先生に素数判定の簡単なプログラム書いてこいと言われて、インターネットで
色々調べて見て様々なプログラミング言語で書いてあるのを見つけたました。。。

でもindex.htmlのような形でサーバーにアップして実行出来るようにと言われたのですが正直分かりませんorz...

もし分かる方いたらindex.htmlにどのようなコードを書かないといけないか教えていただけないでしょうか><??
宜しくお願いしますm(__)m
777Name_Not_Found:2009/10/05(月) 03:41:00 ID:???
ここで聞いてちゃ独学にならんだろ
がんばれ
778Name_Not_Found:2009/10/05(月) 03:56:53 ID:c4Wk8Aa7
ウィンドウからフォーカスが外れたらそのウィンドウを閉じたい。
で、body に onBlur="close()" を指定してみた。
FireFox では大体期待通りの動作なんだけど、IE では具合の悪い点がある。
そのウィンドウ内にテキストボックスなどがある場合、そのテキストボックスにフォーカスを当てるとウィンドウが閉じちゃう。
ウィンドウ内の部品にフォーカスが移動したなら閉じないで欲しいんだけど、どうしたらいいですか?
779Name_Not_Found:2009/10/05(月) 11:07:39 ID:2bant2KB
>>776
つ エラトステネスの呪い
780Name_Not_Found:2009/10/05(月) 11:15:27 ID:???
エラトステネスの鎧
781Name_Not_Found:2009/10/05(月) 11:40:06 ID:???
エラトステネスの想い
782Name_Not_Found:2009/10/05(月) 12:13:30 ID:???
pngかbmpからsvgに変換するよいライブラリお勧めしてください
783Name_Not_Found:2009/10/05(月) 12:14:32 ID:???
古い...
784Name_Not_Found:2009/10/05(月) 16:12:14 ID:???
>>773
>ユーザー名が実名まんまな人もたまにいるからなぁ

普通そうじゃない?
785Name_Not_Found:2009/10/05(月) 17:58:06 ID:Z3bFhjNo
thickboxを今更使い始めたんだけど、これって対象の表示画像は画像ファイルじゃなきゃダメなの?
今作ってるサイトでは、画像を img.php?file=hoge&size=L って感じでphpのheaderで出力してるんだ
試してみたら動かない…困ったわ
当然自分でも探したんだけど、上に書いたような画像出力方法でも対応できる裏技みたいなものがあったら
教えてください。
無理ならhtml出力形式しかないのかなぁ。よろしくお願いします。
html出力形式も.htmlじゃなきゃダメとか言われたら死んじゃうぜw
786Name_Not_Found:2009/10/05(月) 19:48:24 ID:???
if文周りでおかしな現象がおきています。

if (a == b) {
function();
}

とやってもfunction()が実行されません。
a == bの条件は満たしています。
ところが、

if (a == b) {

function();

}

というように改行を入れてやるとfunction()が実行されます。
JavaScriptは素人なんですが、何か文法に問題があるのでしょうか。
787Name_Not_Found:2009/10/05(月) 19:51:46 ID:???
>>786
変な文字が混じってエラー停止してたんじゃね?
再現できるようなら再現コード作ってほしい
788Name_Not_Found:2009/10/05(月) 20:29:01 ID:2bant2KB
>>785
なぜ、image/jpgとかのヘッダを出力しないのか。
789ペ・ヨンジュン ◆3cMgdlp8VY :2009/10/05(月) 20:32:54 ID:YyLbYk44
>>786
try{
それ
}catch(err){alert(err);window.open("http://translate.google.co.jp/translate_t?text="+err+"&sl=en&tl=ja")}

790Name_Not_Found:2009/10/05(月) 21:33:51 ID:???
>>789
親切すぎて泣いたw
791Name_Not_Found:2009/10/05(月) 22:33:00 ID:???
if分岐って例えば
if(){}else if(){}else if・・・・・×100・・・・・else if(){}else{}
みたいに分岐がたくさんあった場合、
分岐があればあるほど、最後のelseに到達するのに時間かかるとは思うのですが
これって最初のifに合わなければ次のelse if、合わなければ次のelse if・・・
みたいに判断してるのでしょうか。
つまり、一番機会の多い順に条件を前から置いていった方が
効率がいいということでしょうか?
792Name_Not_Found:2009/10/05(月) 22:34:48 ID:???
switch
793Name_Not_Found:2009/10/05(月) 22:42:37 ID:???
javascriptでif文の効率とか気にしなくていい
794Name_Not_Found:2009/10/05(月) 22:57:14 ID:???
>>792
switchだと不等号使えなくないですか?
>>793
つまり、コードの見栄え重視で書いてもなんら問題ないということでしょうか。
そうでもないですよね?
795Name_Not_Found:2009/10/05(月) 22:58:31 ID:Z3bFhjNo
>>788
え? どういうことですか?
header("Content-type: audio/mpeg");
readfile($outputFile);
って感じでphp書いてるんですが($outputFileは実在の.jpgへのパスです)

レスありがとうございます。
ほんとにハマってて困ってます。。
796Name_Not_Found:2009/10/05(月) 23:03:23 ID:???
そうでもある。
今どきのPCは2GHzとか3GHzとかで駆動するんだぞ。
控えめに見ても、単純な比較ならば1億分の1秒もあれば終了する。
797Name_Not_Found:2009/10/05(月) 23:08:45 ID:???
elseを100個も並べる前にロジックに問題があると気付け
遷移表でも作れ
798Name_Not_Found:2009/10/05(月) 23:09:03 ID:???
>>791
上の評価が定まらないのに次の else が評価できるわけもなく
当然分岐が多いほどロスは多い

ただよほどクリティカルでない限り
読みやすいコードを書いた方が自分はいいと思う
799Name_Not_Found:2009/10/05(月) 23:17:00 ID:???
>>794
条件式に関数実行とかしてなきゃそうそう有意な差は出ない
バグの少ない書き方をした方がいい
もっとも、深い条件分岐自体がバグの温床だと思うがね

気になるならfirebugかなんかでプロファイルとってみればいい
800Name_Not_Found:2009/10/06(火) 00:10:32 ID:???
どうでもいいがswitchでも不等号使える
801Name_Not_Found:2009/10/06(火) 00:40:52 ID:???
switch(true)か…
802Name_Not_Found:2009/10/06(火) 00:44:42 ID:???
書き換える価値あんのかそれはw
803Name_Not_Found:2009/10/06(火) 02:11:10 ID:???
https://developer.mozilla.org/ja/JavaScript_style_guide
>return の後には else を使わないでください。

の応用で、elseを書かずになるべくreturnするようにしたら
自然と関数も部品化できて見通しが良くなった
コーディングルールってばかにできないと思った
804Name_Not_Found:2009/10/06(火) 13:16:12 ID:UtYm1zJX
教えてください。

○卒業 ○在学中[  ]年 ←○:ラジオボタン、[ ]:テキスト入力フィールド

<label>
<input type="radio" name="school" value="卒業">卒業
<input type="radio" name="school" value="在学中">在学中
<input type="text" name="year" size="5"> 年
</label>

問い合わせフォームの中で上のような項目を作りました。
“卒業”の方をクリックした時はテキスト入力は無効になり、
“在学中”の方をクリックした時にテキスト入力が有効になるように
したいのですが、同じような例が見つからず困っています。
JavaScriptを使わないと、できないでしょうか?
どなたか知恵をお貸しください。よろしくお願いします。
805Name_Not_Found:2009/10/06(火) 13:22:02 ID:???
javascript使わないと無理です(多分)
ラジオボタンにonchangeやonclickをしかけて、そこからテキストエリアをhiddenにするなり
enabled=falseにするなりその反対にするなりしてみよう
806Name_Not_Found:2009/10/06(火) 13:31:38 ID:UtYm1zJX
>805

ありがとうございます。
今、いろいろ探して、こんな感じになっています。

<SCRIPT language="JavaScript">
<!--eelife
flag='txt0';
function chg(Lyid){
document.all[Lyid].disabled = "";
if( flag== Lyid){};
else
document.all[flag].disabled = "true";
flag= Lyid;
}

// -->
</SCRIPT>

<BODY >
<INPUT type="radio" name="school" onclick="chg('txt0')"> 卒業 
<INPUT type="radio" name="school" onclick="chg('txt2')"> 在学中 
<INPUT size="5" type="text" name="year" disabled value="_%year%_" id="txt2"> 年
</BODY>

最初に“卒業”を押した時は無効になっていて、次に“在学中”を
押すと有効になるところまではいいのですが、
その後、もう一度“卒業”を押した時に有効のままで無効になってくれません。
どこに何を足したらよいやら...
再度、お力をお貸しください。 お願いします。
807Name_Not_Found:2009/10/06(火) 13:34:29 ID:???
<form>
<input type="radio" name="school" id="over" value="既卒" onclick="toggleYear()"><label for="over">既卒</label>
<input type="radio" name="school" id="under" value="在学中" onclick="toggleYear()"><label for="under">在学中</label>
<input type="text" name="year" id="year" size="5"><label for="year">学年</label>
</form>

function toggleYear() {
var form = document.form[0];
if (form.school[0].checked)
form.year.disabled = false;
else
form.year.disabled = true;
}

disabled ならこう。
学年の文字ごと消したいなら
year と学年ラベルを丸ごと div で括ってその display を block, none の切り替えだな。
808Name_Not_Found:2009/10/06(火) 13:42:08 ID:???
あと個人的な意見だが
卒業年ではなく、学年を入力させるのなら
学年もラジオボタンにした方がチェックが楽。
入力する側もクリックだけでOKだからわかりやすい。

if (form.year[0].checked) { // 1つ目の項目
} else if (form.year[1].checked) { // 2つ目の項目
} else if (form.year[2].checked) { // 3つ目の項目
...
} else { // 未チェック
}
チェックはこれだけで済む
809Name_Not_Found:2009/10/06(火) 13:46:27 ID:???
×チェックはこれだけで済む
○(何学年なのかの)チェックはこれだけで済む
810Name_Not_Found:2009/10/06(火) 15:18:10 ID:???
>>806
暇だったからjQuery使ったselect版作った
disabled必要ならdisabledもしたらいい

<input id="neet" type="radio" name="school"><label for="neet">卒業</label>
<input id="student" type="radio" name="school"><label for="student">在学中</label>
<select>
<option value="1">1年</option>
<option value="2">2年</option>
<option value="3">3年</option>
</select>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
var $select = $('select').hide(); // 初めに学年を隠す

$('input').bind('click', function() {
 (this.id === 'neet') ? $select.hide() : $select.show();
});
</script>
811Name_Not_Found:2009/10/06(火) 15:21:10 ID:UtYm1zJX
>809

せっかく教えていただいたのに、初心者の私には理解不能のようです。
申し訳ありません。
とりあえず学年もボタンにすることにしました。
しかし、ボタンの有効・無効の切り替えのjavascriptが
どこかのコピーを使ってやろうとしたら、ちょっと手を加えると
切り替えられなくなってしまって、かれこれ1時間半以上...
1日つぶれてしまいそうです。
812Name_Not_Found:2009/10/06(火) 15:25:30 ID:UtYm1zJX
>810

ありがとうございます!
これで、あとは、卒業を選択した時に、他が無効(グレー)に
なってくれると、うれしんですが。
今からがんばってみます。
お時間あったらご教授ください。
813Name_Not_Found:2009/10/06(火) 17:48:56 ID:51amaD+k
>>795
なんでjpgなのにaudio/mpegなの?
814Name_Not_Found:2009/10/06(火) 17:51:37 ID:???
ここjavascriptスレだし
815Name_Not_Found:2009/10/06(火) 22:05:10 ID:???
obj.loadStsの.loadStsってなんでしょう?
というか.loadStsとかあるんですっけ?
816Name_Not_Found:2009/10/06(火) 22:07:51 ID:51amaD+k
>>815
kwsk

var obj = {
loadSts : "何か"
};

としか言い様がない希ガス。
817Name_Not_Found:2009/10/07(水) 00:52:17 ID:???
同じelemのイベントを切り替えたい場合に
elem.onclick=function(){
  switch(flag){
    case 0:
      alert('test1');
      break;
    case 1:
      alert('test2');
      break;
  }
}
ってやったんだけど、これだとonMouseMoveとかonMouseUpとかonMouseDownとかが
絡んでくると、そのたびにswitchいれなくちゃならなくて、なんか無駄な気がする・・
どうにか
function test1(){
  elem.onclick=function(){
    alert('test1');
  }
}

function test2(){
  elem.onclick=function(){
    alert('test2');
  }
}

こんな感じでtest1()とtest2()を切り替えられたらいいと思ったんだけど
一度、例えばtest1()やってしまうとあとからtest2()してもtest1()の
イベントが残ってしまうというか・・
何かよい方法はないのでしょうかよろしくおねがいします
818817:2009/10/07(水) 01:02:08 ID:???
例えば
elem.onmousedown=function(){
  switch(flag){
    case 0:
      alert('test1_down');
      break;
    case 1:
      alert('test2_down');
      break;
  }
}
elem.onmouseup=function(){
  switch(flag){
    case 0:
      alert('test1_up');
      break;
    case 1:
      alert('test2_up');
      break;
  }
}
elem.onmouseover=function(){
  switch(flag){
    case 0:
      alert('test1_over');
      break;
    case 1:
      alert('test2_over');
      break;
  }
}
こんな感じで被ってるswitchを使って実際はalertの部分を関数にまとめるのか、また別の方法があるのかをしりたいです。
819Name_Not_Found:2009/10/07(水) 01:07:10 ID:???
event.type
820Name_Not_Found:2009/10/07(水) 01:18:49 ID:???
(function(){
  var test = function(obj){
    alert(obj);
  }
  window.onload = function(){
    test("a");
  }
  window.onclick = function(){
    test("b");
  }
})();
こんなので
821Name_Not_Found:2009/10/07(水) 01:23:33 ID:???
>>820
動作を切り替えたいときはイベント登録からやり直すのか
822Name_Not_Found:2009/10/07(水) 01:25:29 ID:???
わり勘違いしてた
823Name_Not_Found:2009/10/07(水) 02:52:50 ID:uCzP8AYT
>>817が言ってるように関数を分けるというのを考慮しつつ、>>819が言ってるevent.typeの使い方を最大限に推理して、
酒飲んで帰って来た頭でネタっぽいのを書いてみた
var eventHandler = {
  flag: true
};
eventHandler.handler = function(evt) {
  var fn = (this.flag) ? 'One' : 'Another';
  eventHandler[evt.type + fn]();
};
eventHandler.mousedownOne = function() {
  alert('test1_down');
}
eventHandler.mousedownAnother = function() {
  alert('test2_down');
}
// 以下同じ感じ
eventHandler.mouseupOne = function() {}
eventHandler.mouseupAnother = function() {}
eventHandler.mouseoverOne = function() {}
eventHandler.mouseoverAnother = function() {}

var elem = document.getElementById('target');
elem.onmousedown=function(evt){
  eventHandler.handler(evt || event);
}
elem.onmouseup=function(evt){
  eventHandler.handler(evt || event);
}
elem.onmouseover=function(evt){
  eventHandler.handler(evt || event);
}
824817:2009/10/07(水) 06:55:41 ID:???
>>819,820,823
ありがとうございます。
参考にコード書き直してみたところ
以前よりもものすごく短くなって
拡張もしやすく整理できました。
ありがとうございました!
825Name_Not_Found:2009/10/07(水) 08:49:19 ID:???
IE8では
IE6,7のname/idのような
小文字大文字を無視する罠ってあります?
826Name_Not_Found:2009/10/07(水) 10:39:55 ID:cj9syr+f
http://rent.homes.co.jp/search/ad11=13/btsg=3001/
のような、ボタンクリックでポップアップ画面が現在表示している画面に出る・・・
みたいなのをやりたいのですがこれを簡単にできるライブラリなどご存知でしょか。
827Name_Not_Found:2009/10/07(水) 11:16:04 ID:???
>>826
そこのソースにjqueryと書いてあるんだが
828Name_Not_Found:2009/10/07(水) 19:19:23 ID:v0MQJSpq
HTMLのtextareaに現在何文字書かれているかをテキストボックスtxtcntに表示したいと思い

<textarea name="txt" onkeyup="form.txtcnt.value=form.txt.value.length;"></textarea>

このように書いてみたところアンドゥできなくなりました。(右クリックメニューの「元に戻す(U)」も灰色に)
調べた限りIE6/7/8でこの現象が発生し、Firefoxでは問題なく動作します。

いろいろ試してみると、txt.value.lengthを参照するとアンドゥ不可になるようです。
なぜこうなるのでしょうか・・・?


829Name_Not_Found:2009/10/07(水) 19:47:02 ID:???
IEの仕様ですゲイツ様に従ってください
830Name_Not_Found:2009/10/07(水) 19:51:08 ID:???
>>828を試してみたらIE6で普通にUndoできたけど?

>>829
ほんと?

下のを試したらUndoできた。
<form>
<textarea name="txtcnt"></textarea>
<textarea name="txt" onkeyup="form.txtcnt.value=form.txt.value.length;"></textarea>
</form>
831Name_Not_Found:2009/10/07(水) 19:58:48 ID:???
>>829
ゲイツは開発してたっけ?
832Name_Not_Found:2009/10/07(水) 20:01:12 ID:???
俺もやってみた
txtcnt がテキストボックスだとUndo不可
テキストエリアならUndo可能
@IE6
833Name_Not_Found:2009/10/07(水) 20:06:45 ID:???
>>830
IE6でまんまコピペしたが、
Ctrl+Z:Undo不可
右クリック→元に戻す:Undo可だけどtxtcntの方が先に元に戻る

だったぞ。

後、文字数を監視したいならsetTimeoutで監視処理を回した方がいいと思う
834Name_Not_Found:2009/10/07(水) 20:16:09 ID:???
>>833
遅延処理とsetIntervalのどっちだ
setTimeoutチェーンだとしたらわざわざそうする理由を教えてくれ
835830:2009/10/07(水) 20:52:09 ID:???
>>833
あぁ、ごめん。右クリックの方しか見てなかった。
Ctrl-Zの方か。それなら単純にkeyupでイベント取られてるからCtrl-Zができないだけなじゃね?

if (evt.keyCode === '65') {
 // 適当な処理
}

とかやると「a」の入力以外はundoできるよ
836Name_Not_Found:2009/10/08(木) 11:01:29 ID:???
>>833
池沼かよ
setTimeout関係ないっしょ
なんでgetElementByIdを使わないの?
837Name_Not_Found:2009/10/08(木) 11:24:03 ID:???
>>836
ちょっと言ってる意味がわかんないけど、>>833
「文字数を監視するscriptってIMEの関係もあるしsetTimeoutとかsetIntervalが使われるよ」
ってことが言いたいだけだと思うよ
838Name_Not_Found:2009/10/08(木) 14:07:24 ID:???
>>836
池沼かよ
839Name_Not_Found:2009/10/08(木) 15:01:09 ID:wzKwwRxh
>>836
DOMアクセスは関係なくね?
840Name_Not_Found:2009/10/08(木) 15:01:55 ID:???
質問です。
tableのセルにフォーカスを持たせて、
カーソルキーで、セルフォーカスを上下左右に移動するにはどうしたらいいでしょうか?
841Name_Not_Found:2009/10/08(木) 15:20:19 ID:/fyzwuzM
内容がObjectなString文字列をObjectに変換したいのですが、できますでしょうか?

ex:
var str = "{ param: 'abcdefg', value: '12345' }"
/**
//strの内容をObject変数で受け取りたい
var obj = str.toObject(); //例えばこんなのがあるならば
alert(obj.value); // '12345'
*/

と、こんな事がしたいのです
どうかお願いしますm(_)m
842Name_Not_Found:2009/10/08(木) 15:38:50 ID:???
>>841
自分で作ったstringなら単純に
var obj = eval('(' + str + ')');
が楽なんじゃないかなぁ。
外から貰ってくるデータならtoJSONみたいなコードを探してJSONのvalidationした方がいいと思うけど。
843Name_Not_Found:2009/10/08(木) 15:45:47 ID:/fyzwuzM
>>842
出来ました!ありがとうございます!!
844Name_Not_Found:2009/10/08(木) 16:00:54 ID:???
evalは使うな!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
eval厨きめえぞ!!!!!!!!!!!!!!!!
845Name_Not_Found:2009/10/08(木) 16:01:27 ID:???
evalでいばるな
846Name_Not_Found:2009/10/08(木) 16:26:48 ID:???
>>844
evalが悪いのはわかってるから、使わないとしたらどうするのか代替案を出してくれよ
ただ文句だけ言ってても何も解決しない
847Name_Not_Found:2009/10/08(木) 16:32:17 ID:???
「JavaScript JSON 解析」でぐぐれ。
848Name_Not_Found:2009/10/08(木) 17:03:12 ID:???
オブジェクトは「ものだ!(キリッ」って言わないでオブジェクトを分かりやすく説明出来る人いる?
javascriptしかやった事ない初心者だが、オブジェクト指向の意味が全く分からない。

fanction a(){ … }
fanction b(){ … }
fanction c(){ … }
fanction main(){ a(); b(); c(); }

の何が悪いわけ?
狂ったように批判されたんだけど、クラスが、継承が、みたいに難しい事言わないで説明できる人いない?

出来れば同じプログラムを、構造化プログラム?とオブジェクト指向プログラムで書いて貰えると助かりまふ
849Name_Not_Found:2009/10/08(木) 17:11:01 ID:???
>>848
そのコードだけじゃ判らない。
まあ、判らないから抽出が出来ないんだろうけど。
850Name_Not_Found:2009/10/08(木) 17:13:00 ID:???
>>848
それのどこがオブジェクトなのかと小一時間5分問い詰めたい
851Name_Not_Found:2009/10/08(木) 17:16:15 ID:???
>>848
その内容なら別に問題ないと思うな。
というか狂ったように批判された人に「何でダメなの?」って聞いた方がいいね。
その人もただ言いたいだけかもしれんし。

ただオブジェクト指向とは別に、例えば複数人で開発してた時に何個もscriptファイルができると、
getMyCookie();setMyCookie()みたいなのをみんなで作るから衝突する時があって、
<プロジェクト名>.<ファイル名>.<メソッド名>なんかにすると後から違う人が開発しても
問題起こりにくいみたいなのがある。

例の場合だと、
if (typeof myProject === 'undefined') myProject = {};
myProject.myFile = {
 a: function() {},
 b: function() {},
 c: function() {},
 main: function() { this.a(); this.b(); this.c(); },
}

myProject.myFile.main();
みたいにやると衝突が起こりにくくていい。
後はプロパティを使い回したり、メソッドを使い回せるって利点があるけど、それは後から考えればいい
852Name_Not_Found:2009/10/08(木) 17:17:15 ID:???
って、既に>>849が書いてたな。長文書いててリロードしてなかったわ
853Name_Not_Found:2009/10/08(木) 17:20:31 ID:???
>>849
雑談になりそうだけど、コードがと言うよりは処理を書く。それをまとめて一連の流れにする。
これがダメだって言われたわけよ。

>>850
違う違う、こりゃ悪い例。俺が今まで書いてたやり方。

>>851
的はずれだったらすまんから先に謝っとく。
グローバル変数を使わないで、クラスだったらクラスの中だけで使う。みたいな使い方が出来るんですか?
854Name_Not_Found:2009/10/08(木) 17:25:01 ID:???
>>853
グローバル変数がmyProjectだけになるってことね。

>>848の例だと、

window.a
window.b
window.c
window.main

が作られるけど、
>>851なら

window.myProject

だけになるから他に人と衝突しにくいよねという話
855Name_Not_Found:2009/10/08(木) 17:54:57 ID:???
>>854
ほうほう、ちゃんと理解出来てない可能性が高いけど、少しモヤモヤが晴れました。ありがとです。

オブジェクト指向がさっぱりワケワカメな状態の時に
「だ か ら オブジェクトはものだ!」
って言われて更にワケワカメで。

「レベルアップするにはオブジェクト指向を覚えないとダメだぜ(*・ω-)ъ」
って気持ち悪いぐらい満面の笑みで言うぐらいだから、オブジェクト指向には優れた部分があるんだろうなぁとは思う。
思うんだけど、意味も分からず真似するだけで使えてる気分になるのもなぁ〜と思ったしだいで。
オブジェクト指向をちゃんと説明出来る人って案外少ない気がするな。みんな同じ事言うだけだし。
>>849さん >>850さん >>851 == >>854さんは特にありがと。
856Name_Not_Found:2009/10/08(木) 18:03:43 ID:???
箱の中に入れて整理しましょうね、とか
そういうスタンスじゃなかったのか……>オブジェクト指向
857Name_Not_Found:2009/10/08(木) 18:23:43 ID:???
>>855
なんか本当に「JavaScriptの」オブジェクト指向プログラミングを理解してるか怪しいな、そいつ

プロトタイプベースとクラスベースの区別もついていないようなDQNの予感がするのは俺だけか?
858Name_Not_Found:2009/10/08(木) 18:30:58 ID:???
>>855
actionscript3.0を勉強するとオブジェクト指向を理解しやすい
全ての部品を強制的に”もの”として操作するからね
JSと同じECMAScriptからの派生だからちょっとかじってみるといいよ
859Name_Not_Found:2009/10/08(木) 18:34:02 ID:???
ポリモーフィズムで考えた方が分かりやすいんじゃねーの
objをnum_add()とstr_add()のどっちに渡すかをプログラマが判断するのでなく
obj.add()とすればobjの方で適切な方を呼び出す

自分がどう処理されるかを知っており
メソッド呼び出しに応じて自分の状態を変化させるデータがオブジェクト

うまくやればコードからifやforのような制御文が消えて
オブジェクトの状態変化だけが残る
860Name_Not_Found:2009/10/08(木) 18:40:40 ID:???
ECMAScript(JavaScript/ActionScript)はオブジェクト指向のプロトタイプベース
JavaやC++なんかとは全く違うからJavaScriptが使えるようになってからJava学ぶと結構混乱する
861Name_Not_Found:2009/10/08(木) 18:43:43 ID:???
onload = init;
function init(){
$$("ul.main li")[0].onmouseover = function(){
this.className = "on";
}
$$("ul.main li")[0].onmouseout = function(){
this.className = "off";
}
$$("ul.main li")[1].onmouseover = function(){
this.className = "on";
}
$$("ul.main li")[1].onmouseout = function(){
this.className = "off";
}
$$("ul.main li")[2].onmouseover = function(){
this.className = "on";
}
$$("ul.main li")[2].onmouseout = function(){
this.className = "off";
}
}

……みたいな、別ノードに対する同じ処理を
まとめるには、どうすればいいですか。
862Name_Not_Found:2009/10/08(木) 18:48:42 ID:???
function init(){
  var elements = $$("ul.main li");
  for(var i = 0 ; i<elements.length ; i++){
    elements[i].onmouseover = function(){
      this.className = "on";
    }
    elements[i].onmouseout = function(){
      this.className = "off";
    }
  }
}
ループで回すぐらいしか無いな
863Name_Not_Found:2009/10/08(木) 19:20:18 ID:QNjI59N3
jQueryを勉強したいんですが、オススメの本はありませんか?
864Name_Not_Found:2009/10/08(木) 19:34:05 ID:???
ソース読め
865Name_Not_Found:2009/10/08(木) 19:35:44 ID:???
>>860
ActionScript3.0はクラスベースだよ。
JS同様のオブジェクト定義もできるけどね。
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/Object.html#prototype
866Name_Not_Found:2009/10/08(木) 20:00:32 ID:5YpxtDjB
初心者です。申し訳ありません。
あるサイトの文字を一文字ずつ表示するスクリプトを使っているのですが、その一文字ずつ表示させている途中で
一行全部を一気に表示させる方法ってありますか?
つまり、
あいうえお
を一文字ずつ表示して改行、
かきくけこ
と一気に表示して改行、
さしすせそ
と一文字ずつ表示、という風にしたいんです。
ソースは以下のとおりです。
<html>
<body onLoad="mojitype()">
<script type="text/javascript">
moji="表示したい文字列をここに記載する。";
No = 0;
function mojitype()
  {
if (No>moji.length) {return;}
else
{No++;
txt = moji.substring(0,No);
document.all.mojigos.innerText = txt;}
setTimeout("mojitype()",50); //50ミリ秒
  }
</script>
<div id="mojigos"></div>
</body>
</html>
867Name_Not_Found:2009/10/08(木) 20:24:29 ID:???
>>861
document.addEventListener(
'mouseover',
{
  handleEvent:function({target:t, relatedTarget:r}) {
    this.exec(r).forEach(this.off);
    this.exec(t).forEach(this.on);
  },
  exec:function(n) {
    var x = [ ];
    var m;
    do if(n.nodeName == 'LI')
      for(m = n; m = m.parentNode;)
        if(m.nodeName == 'UL' && /(?:\s|^)main(?:\s|$)/i.test(n.className)) {
          x.push(n);
          break;
        }
    while(n = n.parentNode);
    return x;
  },
  on:function(n) {n.className = 'on';},
  off:function(n) {n.className = 'off';},
},
false);
868Name_Not_Found:2009/10/08(木) 21:04:33 ID:???
つうかjsでオブジェクトの勉強したいならprototypeとjqueryのソースコード見るのが早いだろ
869Name_Not_Found:2009/10/08(木) 21:09:54 ID:???
prototypeはクラスベースの焼き直し
jqueryは配列操作の特殊形
ナニを勉強する気だよ
870Name_Not_Found:2009/10/08(木) 22:18:37 ID:wzKwwRxh
>>865
AS3って書式がclassディレクティブなだけで中身は同じじゃないのけ?
871Name_Not_Found:2009/10/08(木) 22:26:34 ID:???
>>866
まず関数名でググれよ
872Name_Not_Found:2009/10/08(木) 22:41:56 ID:wzKwwRxh
>>866
>初心者です。申し訳ありません。

たまにこういう書き出しを見るけど、別に初心者は申し訳ないことじゃないよ!

とりあえず何がわかってて、何がわからないかを書け。
話はそれからだ。
873Name_Not_Found:2009/10/09(金) 00:04:36 ID:xTa7fTtk
>>866
日本語で書いてあることが全然わからないっす
どういう入力したらどういう出力になるか書きなよw
874Name_Not_Found:2009/10/09(金) 00:14:51 ID:pUARdMBY
質問です。

Google Gearsがやってるみたいに、C++とかで作ったオブジェクトを、
JavaScriptからオブジェクトとしてアクセスできるようにするのは、
具体的にはどういった実装で実現しているのでしょうか。

Gearsのソースコードを見てみたのですが、なかなか判然としないので、
ご存知の方がいたら、どこを見れば良いのか教えていただけるとありがたいです。
http://code.google.com/p/gears/source/browse/
875Name_Not_Found:2009/10/09(金) 01:23:53 ID:???
>>874
trunk の gears/base/npapi と gears/base/ie かねえ。

ようするに、PluginのAPIの中にそういうのがある。
https://developer.mozilla.org/ja/Gecko_Plugin_API_Reference
876Name_Not_Found:2009/10/09(金) 01:32:33 ID:qJiFXKJA
>>872
何が分からないのか、それが分からない時ってあるだろ
そうゆう時が無かったってんなら、君は完全なストレオタイプだわ
初心者だからって言うのは難しい説明は勘弁してくださいって事なんじゃないの?
相手のレベルに合わせず自分の知識を言うだけってのは誰でも出来るわな
家でオナニーばっかしないで外に出て女引っかければよろし

まずは自分で何とかしろ。ってやつはバカな気がするけど、
エスパーで教えてくれて間違えてても、バカだと思えない不思議だな

確かに自分で考えて、自分の力でできた時の方が何倍も実になるけど、
ググれないやつも、ググれしか言わないやつも同レベルだろ、人間的には

このくらいの事で、なぜか上から目線なのかが解せない
俺ゃ>>836とは関係ないから、ただの通りすがり。836にあたんなよカス
877Name_Not_Found:2009/10/09(金) 02:00:23 ID:w1u8G9Fg
obj.onclick = f ;

fという関数をイベントに割り当てるのですが、fにはthisという引数を
持たせたいです。どうやれば、thisを渡せるのですか?
878877:2009/10/09(金) 02:03:32 ID:w1u8G9Fg
解決です。この関数がいらなくなりました。すいません。
879Name_Not_Found:2009/10/09(金) 02:29:37 ID:???
872 はこーいうスレ的にはすごく好意的な方だと思うんだが
880Name_Not_Found:2009/10/09(金) 04:56:17 ID:P3RSmwfG
>>876
おお、怒られとる…
他意はなかったんだけど、偉そうに見えたんならすまんかった。

そういう質問者・回答者(あんまり頑張りたくない・なんでもいいから
スクリプト書きたい)向けに「手とり足とりスレ」っての数年前に立てたけど、
あれ、どっかいっちゃったなあ。あはは。で、>>866に回答し直してみるよ。


>>866
・JSとか正直どうでもいいから、とりあえず希望通りに動作するスクリプトが欲しい
・自分で解決できるようになりたいから、なにかヒントが欲しい

どっち(前者でも死ねとか言わないよ)?
881Name_Not_Found:2009/10/09(金) 09:42:35 ID:???
canvasのlineWidthって1以下の太さがあればいいのになぁ
882名前:2009/10/09(金) 10:46:11 ID:Ef3fAOzU
すみません、緊急の質問があるのですが誰かいますか?
883Name_Not_Found:2009/10/09(金) 10:47:25 ID:???
いますよ
884Name_Not_Found:2009/10/09(金) 10:51:27 ID:Ef3fAOzU
>>883
すみませんが、教えてください。
ページをリダイレクトするときの メタタグ、refreshタグで
間違えて同一のrefreshタグのついたページにアドレスを設定して
あげてしまいました。
すぐに消したのですが、これってサーバに負担がかかるのですよね。
すぐに消すだけで問題ないでしょうか?
885Name_Not_Found:2009/10/09(金) 10:56:31 ID:???
誰もアクセスしてなきゃ負担はねえよks
886Name_Not_Found:2009/10/09(金) 11:02:24 ID:Ef3fAOzU
アクセスは自分がしてしまいました。すぐにおかしいと思い消しましたが。
問題あるのでしょうか。
887Name_Not_Found:2009/10/09(金) 11:16:09 ID:???
特に問題ないし、そもそもJavaScript関係ない
888Name_Not_Found:2009/10/09(金) 11:19:40 ID:???
わかりました。ありがとうございました。
889Name_Not_Found:2009/10/09(金) 12:51:25 ID:???
んぎゃぁぁぁ〜!コンストラクタって部分をオブジェクトって必死に力説されてた〜!
何で気付かなかったんだよorz
890Name_Not_Found:2009/10/09(金) 13:43:47 ID:???
日記はブログで書けよ池沼
891Name_Not_Found:2009/10/09(金) 14:20:28 ID:???
池沼ってまだ使う香具師いたんかいw
昨日ヒントを貰ったんで、ありがとって報告するつもりだったけどスレに関係なかったね、すまんすまん。
悪かった。池沼を華麗にヌルーしてくだしあ。
892Name_Not_Found:2009/10/09(金) 15:36:19 ID:AU+ssOY5
javacsriptで天気予報は作れますか?タグ教えて下さい。
893Name_Not_Found:2009/10/09(金) 15:45:06 ID:???
・javacsriptとは何か
・揚げ足取りは置いておいて、なぜJavaScriptで「タグ」が出てくるのか
・その揚げ足取りも置いておいて、天気予報のデータは誰がどのように作るのか
 いつが晴れだとか雨だとか、データがないとどうにもならない
894Name_Not_Found:2009/10/09(金) 16:02:35 ID:???
>>892
できますよ

var ary = ["晴れ","曇り","雨"];
var n = Math.floor(Math.random()*ary.length);
alert(ary[n]);
895Name_Not_Found:2009/10/09(金) 17:39:10 ID:???
>>894
下駄飛ばして、あーした天気になーれって感じの風景が思い浮かんだわw
896Name_Not_Found:2009/10/09(金) 17:41:48 ID:???
それは予報じゃなく占いだw
まあ現状の天気予報も外れることは多いけどな
897Name_Not_Found:2009/10/09(金) 18:06:15 ID:P3RSmwfG
どこかのポータルが、天気予報のXML(RSS形式だったかも)吐いてたような気がする。
898Name_Not_Found:2009/10/09(金) 18:50:26 ID:???
スレ的にJSONP以外はないも同然じゃない?
サーバ介すならjavascriptでどうこうという話じゃないし
899Name_Not_Found:2009/10/09(金) 18:58:24 ID:???
天気予報 表示 javascript
で検索したら思ったより結構あるな。

>>876
2chなどの掲示板だけじゃなく、仕事でも生活でも
質問者にとって「何をどうすべきか」の答えをくれる方が
回答を書かずに感想しか書いてない奴より遥かに有益なんだわ。
上から目線だろうとお節介全開だろうと態度は2の次、
質問したことがあればよーく解かるはずだけどな。
900Name_Not_Found:2009/10/09(金) 19:47:29 ID:???
1999年からの2ちゃんねらーの折れ的には刺す刺されるかってぐらい殺伐と質問したり回答するほうが安心感がある
901Name_Not_Found:2009/10/09(金) 19:49:36 ID:???
えっと、ローカルで実行させるとちゃんと正常表示されるんですが、
jsファイルにしてsrcで読み込むと「文字が正しくありません」の
エラーが出てしまいます。document.write()を使ってます。
どのような原因が考えられるでしょうか。
902Name_Not_Found:2009/10/09(金) 19:52:05 ID:???
松屋で食券買うときも後ろの客にいつ刺されるかドキドキするだろ?こちらも油断できないんだぜ?
店員に食券渡すときに店員の拳が顔面に降りかかってくるかもしれないよな?いつでもカウンターお見舞いする気持ちで席着くだろ?
食い終わって席を立つ瞬間も他の客にピストルを撃たれるかも知れない。だからこちらも武装しなきゃいけないだろ?
松屋ってのは殺伐としてるんだよ豚丼食べるのも命がけさ
903902:2009/10/09(金) 19:53:55 ID:???
>>901
headで外部js読み込んでる?
body内もも出力してるんじゃないのか
904902:2009/10/09(金) 19:56:10 ID:???
>>901
<html>
<head>
</head>
<body>
<p>てst</p>
<script type="javascript/text" src="test.js"></script>
</body>
</html>


test.js↓
document.write("test");
905Name_Not_Found:2009/10/09(金) 19:56:52 ID:???
とりあえず俺がかいたコードで動くか試してみろks
906Name_Not_Found:2009/10/09(金) 20:39:00 ID:???
>>875
ありがとうございます。その辺のコードを調べてみます。
907897:2009/10/09(金) 21:35:55 ID:P3RSmwfG
>>898
あああ。そうですね。
昨日今日とずっとAS書いてたから、他所ん家のXML読める気になってた。ごめんなさい。

>>901
文字コード違いだったりして。
908Name_Not_Found:2009/10/09(金) 21:46:03 ID:???
XDomainRequestで読めるだろ
909Name_Not_Found:2009/10/10(土) 15:04:29 ID:???
<div id="main">
<h4><img src="cat.jpg"></h4>
</div>

……の場合のprototype.jsを使って
img要素を参照する時は、

$("main").getElementsByTagName("img")[0]

で合ってますか?
どうすれば参照できるんでしょうか。
910Name_Not_Found:2009/10/10(土) 17:36:23 ID:???
900超えたのでテンプレ論議あればどうぞ。
911Name_Not_Found:2009/10/10(土) 18:35:14 ID:???
JavaScriptで
TextBoxにキー入力がされるとそのタイミングで効果音を出したいと考えているのですが、
どすればmidiファイル等をMouseKeyUpのタイミングで鳴らす事が出来ますか?
912Name_Not_Found:2009/10/10(土) 18:38:14 ID:???
913Name_Not_Found:2009/10/10(土) 19:52:36 ID:???
>>911
Video要素に対応しているブラウザならjavascriptでサウンドの再生/停止のコントロールが出来る
914Name_Not_Found:2009/10/10(土) 19:53:44 ID:???
>>911
ttp://jigen.aruko.net/2007/02/01/method-to-play-sound-in-javascript-without-flash/
一応できるみたいだけど、これだと再生する音1つ増えるごとにembedタグが1つ増えるね
なので、JavaScriptに絶対しなきゃ以外だったらflashの方がいいのでは?
915Name_Not_Found:2009/10/10(土) 19:58:03 ID:???
>>914
Play押したらAppleQuicktime入れろとか出てきた
916Name_Not_Found:2009/10/10(土) 20:05:33 ID:???
>>915
安心してくれ。書いた私もそれが出てきた。
917Name_Not_Found:2009/10/10(土) 20:15:54 ID:???
>>913 >>914
どうもありがとうございます。
Flashを持って無いのでJavaScriptで制御しようと思ってます。
ルパン三世みたいな拳銃音をキー入力がされると常に鳴らしたいと思ってます。
(まぁ、訪問者にとっては迷惑な事は十分承知ですが)

918Name_Not_Found:2009/10/10(土) 21:11:52 ID:???
>>917
>Flashを持って無い
AS任せのものならFlexかAIRあたりのSDKで作れるんじゃなかった?
詳しくないから間違ってるかもしらん、swf吐けるのだけは確か
919Name_Not_Found:2009/10/10(土) 22:51:53 ID:???
JavaScriptを使用してクッキーの内容をローカルに保存し
必要に応じてクッキーの内容をJavaScriptで読み込み
画面に反映させる事は可能でしょうか?

具体的には背景色を画面で作成⇒クッキーに設定情報を保存⇒保存ボタンが
クリックされるとクッキーの内容をローカルに保存。
920Name_Not_Found:2009/10/10(土) 22:58:20 ID:???
>>919
JavaScriptでクッキーを読むことはできるが、ファイルに書く
ことができないからローカルに保存はできない。だがそもそも、
クッキー情報はブラウザが勝手にファイルに保存するんだけど、
それでは済まない話なの?
921Name_Not_Found:2009/10/10(土) 22:59:06 ID:???
>>918
スレ違いになるけど、補足情報ってことで。

一応件のFlex3SDKやらで、無料でもswfは行けるよ
ttp://gihyo.jp/dev/feature/01/flash-sdk/0001
他にもフリーでコンパイラはあるので、検索すれば出てくるかと思うのぜ。
922Name_Not_Found:2009/10/10(土) 23:56:44 ID:???
外部jsファイルの中に他のjsファイルをimportするにはwirteメソッドで
書き出す以外にないですか。なんかやろうとしたら記述がダサくて。
923Name_Not_Found:2009/10/11(日) 00:01:48 ID:???
cssのimportでよみこめたりして
924923:2009/10/11(日) 00:12:31 ID:???
925Name_Not_Found:2009/10/11(日) 00:35:27 ID:6ck41fi4
scriptaculous.jsで↓を見て、ドラッグドロップはできました
http://www.openspc2.org/JavaScript/Ajax/Ajax_study/chapter89/008/index.html

ほんで、最初にレンダリングするソース、
<li>a</li>
<li>b</li>
<li>c</li>
をレンダリング後、ドラッグドロップして、(見かけ上は)、
<li>a</li>
<li>c</li>
<li>b</li>
へ変更しても、
ブラウザの「ソースを表示」で表示させると、初期のソースが出力されます
ここ(ドラックドロップ後)で、ドラックドロップ後のソースを出力させるには
926Name_Not_Found:2009/10/11(日) 00:43:25 ID:???
>>921
ありがとうございます。ちょっと調べてみます。
927Name_Not_Found:2009/10/11(日) 00:43:37 ID:???
勝手にファイルが書き換わるわけ無いじゃん
928Name_Not_Found:2009/10/11(日) 00:43:42 ID:???
仕様
諦めろ
929Name_Not_Found:2009/10/11(日) 00:44:49 ID:???
>>925
Firefox で「選択した部分のソースを表示」を使用。
930Name_Not_Found:2009/10/11(日) 01:47:14 ID:???
JavaScriptを使用してページの背景を変更出来る様に
したいと思っています。

そこで

A.htmlページ上に用意した「色変更」ボタンをクリックすると
B.htmlページが開き、B.htmlページ内に用意した何パターンかの色の隣に
設定したラジオボタンをクリックすると

B.html画面が閉じA.htmlページの背景色に、B.html で選択された色を設定したいと
思うのですが、どうすれば良いでしょうか?
931Name_Not_Found:2009/10/11(日) 01:58:38 ID:???
>>930
あなたが出来る所までのソースを示してくれよ
932Name_Not_Found:2009/10/11(日) 02:11:47 ID:TMPgHu+/
IEのことで困ってます。

HTMLElementのプロトタイプにあるメソッドを追加したいのですが、
IEにはHTMLElementが存在しないみたいです。

IEでHTMLElementのようなものを作成するにはどうすればいいでしょうか?
アドバイスよろしくお願いします。
933Name_Not_Found:2009/10/11(日) 02:22:01 ID:???
JSネイティブではないDOM由来のオブジェクトはあんまり融通効かない
934Name_Not_Found:2009/10/11(日) 02:43:36 ID:???
IE8使え
つかprototype汚すな
935Name_Not_Found:2009/10/11(日) 04:15:24 ID:???
test
936Name_Not_Found:2009/10/11(日) 05:42:48 ID:???
プログラミング歴2年で世界3位に・慶応大の高橋直大君
http://it.nikkei.co.jp/business/news/index.aspx?n=MMIT00000028072008
937Name_Not_Found:2009/10/11(日) 08:10:04 ID:???
>>932
どういうメソッド?

IE以外でIEのメソッド名に合わせるために使う以外は
直接 HTMLElement.prototype に追加する必要はほぼ無い。
getAttribute等を使って限定的にやった方が安全だよ。
938Name_Not_Found:2009/10/11(日) 11:09:55 ID:???
>>930
JavaScriptによるページのOPEN、CLOSEは
ブラウザの設定によっては拒否されることも多いから
別の方法を取ったほうがいい。
939Name_Not_Found:2009/10/11(日) 11:26:44 ID:TMPgHu+/
>>933-937
ご指摘頂いたように方針を変えたいと思います。
どうもありがとうございました。
940Name_Not_Found:2009/10/11(日) 12:12:53 ID:???
>>931
頑張って作ってます。

>>938
了解しました。もう我慢して1画面内に色を選択する項目を設ける事で対処しようと思います。
941Name_Not_Found:2009/10/11(日) 15:21:01 ID:???
>>938
ボタンをクリックしたとき等
ユーザーの操作を伴うときは
拒否されないのがほとんど
942Name_Not_Found:2009/10/12(月) 16:07:35 ID:???
JavaScriptによるクッキーの設定取得について質問があります。

便宜上ページは以下で表します。
@ A.html ・・・  ページ内で選択した内容をクッキーに保存する。
A B.html ・・・  @で設定されたクッキーの内容を取得し画面に表示する。


@内で設定したクッキーの値は@内では問題無く参照する事が出来るのですが、
Aの中でクッキーを参照しようとすると空になります。 (document.cookie が"")

そこで調べてみたところ path = 表示対象となるページを設定するとの事で
path="B.html" と指定しているにも関わらず@で設定したクッキーの値を
取得する事が出来ません。

どうすれば同一ドメイン( localhost や ドメイン)内で発行されたクッキーを自由に
参照する事が出来る様になりますでしょうか?
943Name_Not_Found:2009/10/12(月) 16:17:28 ID:???
>>942
両者で共通するパス部分を書く。
944Name_Not_Found:2009/10/12(月) 16:22:53 ID:???
>>943
@ html/test/A.html
A トップノードに存在します。

【イメージ図】
localhost
|
|~~~A B.html
|
~~~~testdirectory
       |___@ A.html

なので path="." としたのですが値が取得できません。
945Name_Not_Found:2009/10/12(月) 16:24:07 ID:???
994 少し間違えました。
訂正します。

@ testdirectory / A.html
A トップノードに存在します。

【イメージ図】
localhost
|
|~~~A B.html
|
~~~~testdirectory
       |___@ A.html

なので path="." としたのですが値が取得できません。
946Name_Not_Found:2009/10/12(月) 16:32:12 ID:???
jQuery関連の質問もここでいいの?
違うなら誘導して欲しいです
947Name_Not_Found:2009/10/12(月) 17:00:54 ID:???
ここでいいよ
948946:2009/10/12(月) 18:16:43 ID:???
>>947
ありがとうございます、それでは質問いたします。

jQueryのanimateメソッドについてですが、
 1.アニメーションの開始から終了までキャンセルされない
 2.アニメーション中に発生したアニメーションをqueueに入れない
  (または queueの最大値を変更できる?)
上記2点をクリアするための方法を探しています。


特定のキー操作を拾い、TABLE要素で作った枠内でピッタリとDIV要素を動かしたいのですが、
ボタンを連打してしまうとアニメーションが続けて起こってしまって困っています。
3枠横に移動しようと思って→を押しっぱなしにしたら、10マス分動き続けてしまった…といった状況です。

解決策として下記の二つを考えたのですが、どちらも続く理由のため使用できませんでした。

・animateメソッドのqueueオプションにfalseを与えて実行する
 →直前のアニメーションに割り込んで動作してしまうようになり、1を満たせない。
・アニメーション直前にifを入れ、フラグの真偽を操作してコントロールする
 →アニメーションの動作が非同期のようで、animateメソッドのコールバック関数として指定しなければ、
   フラグの操作ができない。これでは常にコールバック関数が埋まっている事になり、不便。

jQueryから提供される方法で上の2点がクリアできれば理想ですが、
簡単なコントロール方法があればそちらでも構いません。

何か良い方法はないでしょうか。よろしくお願いします。
949Name_Not_Found:2009/10/12(月) 18:45:32 ID:???
せめてどういうコードを書いてたのかは載せて欲しいかな
950946:2009/10/12(月) 19:08:36 ID:???
>>949
どこを抜き出していいか判断がつかなかったので、
(多分)動作するサンプルを作りました。ご確認ください。

ttp://www.dotup.org/uploda/www.dotup.org252979.zip.html

←、↑、→、↓のキーでAと書かれたDIV要素が移動する(筈)です
951946:2009/10/12(月) 19:09:49 ID:???
すみません書き忘れていました。
DLパスは、 js です。
952Name_Not_Found:2009/10/12(月) 21:43:10 ID:???
Webアプリケーション開発に役立つアドオン式メモリプロファイラー
http://d.hatena.ne.jp/Rockridge/20091010/1255183196
これすごすぎる
953Name_Not_Found:2009/10/13(火) 00:03:33 ID:???
ブログの宣伝ごくろうさまです
954Name_Not_Found:2009/10/13(火) 00:26:25 ID:???
次スレは975超えたら。テンプレは変更なしね。
955Name_Not_Found:2009/10/13(火) 10:11:17 ID:???
956Name_Not_Found:2009/10/13(火) 11:41:39 ID:???
スレ冒頭を見たけどまとまった合意というのはないから、
入れるとしたら参考サイトくらい。参考サイトだけとりあえず入れる?
http://www.json.org/json-ja.html
http://jsgt.org/ajax/ref/test/json/test1.htm
Wikipedia入れるっていうのは冗談でしょ。ぐぐれと変わらんじゃん。
957Name_Not_Found:2009/10/13(火) 11:53:42 ID:???
>>956
その2つなら1つめだけでいいなぁ

https://developer.mozilla.org/ja/JSON
もあるけどMDCで被ってるし、Firefoxの話が主体なのがどうかなぁってところ
958Name_Not_Found:2009/10/13(火) 12:04:25 ID:???
>>957
1つめだけで理解できる奴はそういないと思う
959Name_Not_Found:2009/10/13(火) 12:41:18 ID:???
IBMのサイトはだめだよな、、、
960Name_Not_Found:2009/10/13(火) 12:58:48 ID:???
じゃあここで
http://jsonlib.co.cc/
961Name_Not_Found:2009/10/13(火) 12:59:58 ID:???
コードミスってalertから抜け出せなくなったとき
タスクマネージャから強制的に終わらしているのですが要領がわるいです。
何か対処法ありませんでしょうか
firefox3でお願いします。
962Name_Not_Found:2009/10/13(火) 13:06:16 ID:???
alert() を使わない
963Name_Not_Found:2009/10/13(火) 13:11:04 ID:???
>>961
もし何かあるならオレも知りたい。
たまに間違ってやってしまった時は

1.ソースからalert削除
2.「F5」を連打しまくる
3.alertの「ok」押しまくる

ってやってる。そうするとalertが出る前にリロードかかって抜けられる
964Name_Not_Found:2009/10/13(火) 13:13:14 ID:NEcOb5oO
if(window.console && typeof window.console.log == "function"){
var __alert = alert;
alert = console.log;
}

を仕込んでおく。
965Name_Not_Found:2009/10/13(火) 14:02:17 ID:???
>>962
なんか便利で使ってしまう
>>963-964
うおおおおトンクス!!
966Name_Not_Found:2009/10/13(火) 14:04:20 ID:???
>>963
単純だけどその方法は思いつかなかったw
今度ためしてみよう
967828:2009/10/13(火) 14:11:39 ID:???
828です。みなさんありがとうございました。
レス遅くなってすみません。
txtcntがテキストエリアならアンドゥバッファが消えないことを確認できました。
しかしctrl+Zを一度押してもアンドゥされず
押しっぱなしにしてるとアンドゥされる(しかし一度だけアンドゥするのは至難の業)

そこで835をヒントにkeyCode=90(ctrl+z)のときに処理スルーしてみたところ
ちょっと妙なタイミングになったけどなんとか使えそうになりました
やはりonkeyupイベントが邪魔してるようだけど
普通アンドゥされるのはkeydownの時点なのでやっぱり謎です
これもゲイツ様の試練なのか・・・
968Name_Not_Found:2009/10/13(火) 16:14:32 ID:6CdctJW2
以下のサイトにある、”あなたのクリック募金での募金総額は?円”
の?にあたる部分を自分のサイトでも表示させて見たいと思っています。
JavaScriptで処理してると思われるのですが、これは募金先のページと協力して
このような数値を出しているのでしょうか?
または、自分のページだけで算出することが可能でしょうか?

ご意見の程、宜しくお願いします。

http://www.dff.jp/
969Name_Not_Found:2009/10/13(火) 16:44:05 ID:EovsaNdr
誘導されてきました。
現在判らない事ですが、出来る限り詳しく書きます。それでも言葉足らずの部分もあると思いますので、その際は申し訳ないですが
フォローの方、お願い致します。
[したい事]
・テーブルタグで線を(20本ほどcolor:blackで)引いているのですが
そのうちの自分が選んだ任意の線をcolor:redにしたいと考えています。
任意の線のカラーを変える時は、ボタンの様な自作プログラムで変更するのも考えています。
ただ、プログラムでするとなると、どの様にすればいいのか、何の言語で開発を進めればいいのか。
そのあたりが引っかかっており、現在質問させていただいた次第です。
また、プログラムでcolor:black→color:redに変える場合は
チェックボックスやボタンを配置してもいいですが
それは、管理者にしか判らないようにしたいのです。
たとえば、公開しているときに、見ている方からは、普通の色が変わっている線だけ。
という風にしたいと考えています。
これはHTML自体を書き換えでしょうか。それともCSS自体を書き換えでしょうか。
上記2つの場合には、直接書き換えるのではなく、ボタン等で簡単に変える様な動作をするにはどうすればいいでしょうか。
CGIで作るのか、PHPで作るのか、JavaScriptで作るのか。これも視野に入っています。
ちなみに、その直線は
――――――
等の線であれば
CSSで、height:1px width:6pxで定義し、セル自体に色をつけて線に見せかけています。
[要点]
・色を変えるのには、独自プログラムを作成した方がいいのか
→作成しない場合の対処法があればお願い致します。
・独自プログラムを作成する場合は、何の言語がふさわしいか
・セルではなく、画像を用意して配置した方がいいのか

判りづらいですが、以上をご回答頂ければ幸いです。宜しくお願いいたします。
何か、追記した方が良い事等があれば、指摘の方、宜しくお願い致します。
970969:2009/10/13(火) 16:45:47 ID:EovsaNdr
申し訳ありません、誘導元の原文をほぼそのまま引っ張ってしまってますorz
PHPやCGIについても質問していますが、スルーの方向で宜しくお願い致します。
971Name_Not_Found:2009/10/13(火) 16:53:41 ID:???
質問をスルーしろってこと?
972Name_Not_Found:2009/10/13(火) 16:54:11 ID:???
>>969
何のためにやりたいのかがわからないと何とも言えないな。何のためのページ?
管理者と見る人が違うならPHPとかCGIとかでHTMLごと書き換えるものでやった方が作りやすいんじゃないかね。

管理者が設定する→JavaScriptでその設定を呼び込んでユーザに見せるってのはできると思うけど。
とりあえず作り方すらわからないならもう一回誘導されてください

[JavaScript]プログラム作成します
http://pc11.2ch.net/test/read.cgi/hp/1212582365/
973Name_Not_Found:2009/10/13(火) 17:04:18 ID:???
んーつまり、めんどくさいだけでHTMLエディタ+FTPでできることだよね?
それならサーバサイドの仕事だからCGIやPHPの領分
CGIやPHPでいじる対象もHTMLでもいいしCSSでもいい、好きにしる

とりあえずクライアントサイドで動作するJavaScriptのみでっていうのは無理
サーバ側の支援がないと、変化を他人に伝えられない
974Name_Not_Found:2009/10/13(火) 17:12:17 ID:???
>>969
「管理者にしか判らないようにしたいのです。」

誘導した者ですが、↑この一文を見落としてました。ごめんなさい。
975Name_Not_Found:2009/10/13(火) 17:13:40 ID:???
>>968
その部分は flash で出してるようだ
データ自体は http://as.dff.jp/dbx.php?lid=XXXXX で取得している
XXXXX は多分PCを特定する情報 クッキーあたりか?
976969:2009/10/13(火) 17:14:21 ID:EovsaNdr
>>972
ページ自体は、トーナメント表の様な物の作成を考えています。
結果をアグレッシブに公開させるために、入れ替えを行いたいと思います。
HTMLごと書き換える方がいいのは、やはりそう思います。
HTMLの中のCSS呼び込みを変えるにしても、ですね。
ですが、jsのみでも、その設定を保持できたりするのですか?

誘導有難う御座います。
あまり誘導されてホイホイ色々な板やスレにお邪魔しても申し訳ないので
調べつつ、少しここで様子見てみます。有難う御座います。


>>973
このあたりは知識不足が大きいのですが・・・。
そうですね、そのサーバにあがっているHTML自体をどうにかして弄れるかどうかすらわかっていなかった状況です。
選択肢は色々ありそうですね。試行錯誤してみます。

はい。なので、ユーザが勝手に変える様なものであれば、確かにJavaScriptで毎度変えてもらえばいいのですが
今回は、どちらかというと、保守やコード変更がメインなので、サーバ支援が必要なのかな、とも思います。
解説有難う御座いました。
977969:2009/10/13(火) 17:18:23 ID:EovsaNdr
>>974
あら・・わざわざ申し訳ありません。
有難う御座います。
ちょっとまた一度WebProgに戻って様子見てみます。
有難う御座いました。
978Name_Not_Found:2009/10/13(火) 17:57:58 ID:???
スレ立て人ですが、今自分とこはスレ立て規制されてます。誰か
以下の内容で立ててくれませんかー。
+ JavaScript の質問用スレッド vol.74 +

━━━本スレに書く事を許される者は以下の通り━━━━━
 一.正しい(validな)HTMLとは何か知っており書ける者
 一、JavaScriptはJavaとは別物であると知っている者
 一、自ら学んでJavaScriptコードを書く意思を持つ者
 一、ユーザに迷惑となるスクリプトを書かない者
 一、質問を分かる日本語できちんと説明できる者
 一、トラブルを再現する最小限のサンプルを貼れる者
 一、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者
━━━━━━━━━━━━━━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
前スレ http://pc11.2ch.net/test/read.cgi/hp/1252401448/l50
[必読]過去スレ全集 http://wing2.jp/~mirrorhenkan/2ch/javascript/
  (ずべて同一)  http://www2.atpages.jp/mirror/2ch/javascript/
          http://usamimi.info/~mirrorhenkan/2ch/javascript/
[必読]ガイド http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide
(GuideをReferenceに→Netscape版言語仕様。多くの実装が準拠:ECMA-262.ed3)
FAQ・注意・過去ログ・仕様書・関連資料・関連スレ>>1-10
979:2009/10/13(火) 18:09:54 ID:???
+ JavaScript の質問用スレッド vol.74 +
http://pc11.2ch.net/test/read.cgi/hp/1255424883/l50
980Name_Not_Found:2009/10/13(火) 18:12:31 ID:???
お手伝い感謝します。私も2から順に入れようとして
重複が出てしまったけどご勘弁。
981968:2009/10/13(火) 18:30:47 ID:6CdctJW2
>>975

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

XXXXXの部分が気になるのですが、もしよろしければ
http://as.dff.jp/dbx.php?lid=XXXXXのページだと調べた方法を
教えて下さい。よろしくです!!!
982Name_Not_Found:2009/10/13(火) 19:26:24 ID:???
>>981
ソース見りゃいいだろ
なんでもかんでも人任せなら>>972の誘導先に行ってくれ
983Name_Not_Found:2009/10/13(火) 19:31:22 ID:???
質問
ttp://www.glooth.com/kiddy_girl-and/

これってアフィリエイト入ってる?
984968:2009/10/13(火) 20:21:23 ID:???
>>982
ソースに書いてありました。迂闊に質問してしまってすみません。。

どうやって他のページの処理が行われたことを自分のページで判別してるのか分かりませんが
誘導先で聞いてみます。
985Name_Not_Found:2009/10/13(火) 20:59:55 ID:???
986Name_Not_Found:2009/10/13(火) 21:08:07 ID:jkiZdzJT
PHPのcountのように配列の数をカウントするにはどうしたらいいのでしょうか?
以下のようなことを試したのですがundefined になりました
hairetu = Array(1,2,3,4);
alert(hairetu.lenght);
987Name_Not_Found:2009/10/13(火) 21:10:06 ID:???
英語も勉強したほうがいいんじゃね
length
988Name_Not_Found:2009/10/13(火) 21:18:45 ID:jkiZdzJT
>>987
987さん!ありがとうございます!
スペルミスにきづきませんでsた!
989Name_Not_Found:2009/10/14(水) 00:07:56 ID:???
>>979
手取り足取りも建てれば? >●
990Name_Not_Found:2009/10/14(水) 01:14:20 ID:???
ume
991Name_Not_Found:2009/10/14(水) 01:15:37 ID:???
埋め
992Name_Not_Found:2009/10/14(水) 01:16:47 ID:???
埋め
993Name_Not_Found:2009/10/14(水) 01:17:49 ID:???
埋め
994Name_Not_Found:2009/10/14(水) 01:36:31 ID:???
まさお、お父さんが1000をゲットするからな。よく見ておくんだぞ。
995Name_Not_Found:2009/10/14(水) 03:50:56 ID:???
>>983に答えてください
一番下がpukiwikinの広告なのかアフェなのか知りたいです
996Name_Not_Found:2009/10/14(水) 04:07:56 ID:???
お断りします
   ハハ
   (゚ω゚)
  /  \
((⊂ )  ノ\つ))
   (_⌒ヽ
   丶 ヘ |
εニ三 ノノ J
997Name_Not_Found:2009/10/14(水) 04:08:44 ID:???
    ∧__∧
    ( ・ω・)   いやどす
    ハ∨/^ヽ
   ノ::[三ノ :.、
   i)、_;|*く;  ノ
     |!: ::.".T~
     ハ、___|
"""~""""""~"""~"""~"
998Name_Not_Found:2009/10/14(水) 04:10:55 ID:???
           ハ,,ハ
         ( ゚ω゚ )
        ,べヽy〃へ    謹んで
       /  :| 'ツ' |  ヽ    お断り申し上げます
   ( ゚д゚ ). o |=宗=! o |
  ,くリ=ッ=[ゝ.__」「「「「L_.」
  じ(ノルハ)Jつ」」」」」⊂ソ.,
999Name_Not_Found:2009/10/14(水) 04:11:40 ID:???
1000Name_Not_Found:2009/10/14(水) 04:52:55 ID:???
1000だったらJavaScriptはあと3日で消える
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。