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

このエントリーをはてなブックマークに追加
1
━━━本スレに書く事を許される者は以下の通り━━━━━
 一.正しい(validな)HTMLとは何か知っており書ける者
 一、JavaScriptはJavaとは別物であると知っている者
 一、自ら学んでJavaScriptコードを書く意思を持つ者
 一、ユーザに迷惑となるスクリプトを書かない者
 一、質問を分かる日本語できちんと説明できる者
 一、トラブルを再現する最小限のサンプルを貼れる者
 一、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者
━━━━━━━━━━━━━━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
前スレ http://pc11.2ch.net/test/read.cgi/hp/1252401448/
[必読]過去スレ全集 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/10/13(火) 18:08:30 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/10/13(火) 18:08:44 ID:???
【質問を書く上で】
1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。
 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。
 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
 長い(1レスに入らない)場合はアップロードしてURIを貼る。
3)初心者という言葉は危険なので使わない方がよい。
 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。
4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。
 ただ「動きません」「エラーです」は何も情報がないため嫌われる。
 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。
 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!!
 OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。
5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度
 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8)
6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。
 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、
 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け!
7)質問はまっとうな(他人に理解できる)日本語で。
 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
4Name_Not_Found:2009/10/13(火) 18:08:47 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"」としないとページ移動しちゃうから。
5Name_Not_Found:2009/10/13(火) 18:08:48 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中でやるとか。
6Name_Not_Found:2009/10/13(火) 18:08:50 ID:???
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】
・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも
 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。
・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、
 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。
・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと
 は無視」は不毛。質問者が分かって選択していれば尊重する。無知か
 らIE専なのは指摘してあげると親切。
・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される
 可能性大。非標準機能も損得を分かった上で使うならよい。
・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、
 そこだけ見ているとIE専になる。あとは上2件と同様。
・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当
 な理由があることも。尋ねて分かってないようなら煽っても可(w
・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選
 択するべき。一概にどちらは駄目、とは言えない。
・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性
 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
7Name_Not_Found:2009/10/13(火) 18:09:16 ID:???
8Name_Not_Found:2009/10/13(火) 18:09:18 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
9Name_Not_Found:2009/10/13(火) 18:09:25 ID:???
おわり
10Name_Not_Found:2009/10/13(火) 18:09:49 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"」としないとページ移動しちゃうから。
11Name_Not_Found:2009/10/13(火) 18:09:50 ID:???
JSON(;;)
12Name_Not_Found:2009/10/13(火) 18:10:53 ID:???
あー、お手伝い頂いた方すみません。全部やってくれたのね。
かぶりました。次回用にこのレスだけ貼らせて。
ECMA-262 ed.3
ttp://www.ecma-international.org/publications/standards/ECMA-262.HTM
ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (和訳)
W3C Document Object Model Technical Reports
ttp://www.w3.org/DOM/DOMTR
JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide (和訳)
ttp://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference
ttp://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference (和訳)
JSON (JavaScript Object Notation)
ttp://www.json.org/json-ja.html
ttp://jsgt.org/ajax/ref/test/json/test1.htm
E4X (ECMAScript for XML)
ttp://www.ecma-international.org/publications/standards/Ecma-357.htm
ttp://www.ne.jp/asahi/nanto/moon/specs/ecma-357.html (和訳)
Mozilla Gecko DOM Reference, Netscape devedge
ttp://developer.mozilla.org/en/docs/Gecko_DOM_Reference
ttp://developer.mozilla.org/ja/docs/Gecko_DOM_Reference (和訳)
ttp://devedge-temp.mozilla.org/central/javascript/index_en.html
MSDN Library JScript / DHTML (現在日本語版は古杉)
ttp://msdn.microsoft.com/ja-jp/library/z688wt03(VS.80).aspx
ttp://msdn.microsoft.com/ja-jp/library/cc409720.aspx
13Name_Not_Found:2009/10/13(火) 18:31:49 ID:Z7CyM/RH
ジェーソン君のデビューに期待あげ
14Name_Not_Found:2009/10/13(火) 23:43:18 ID:???
>>12
まあ中二病的発想だろうね
三年生ともなれば経済ってもんが大まかにでも分かって来て個々人が自分自身の為に精一杯頑張る事が
最も社会(彼らは地球・世界・市民といった表現が好きなようだが)の為になるって事に気付くもんだけど
15Name_Not_Found:2009/10/14(水) 00:07:37 ID:???
深いな
16Name_Not_Found:2009/10/14(水) 06:46:33 ID:???
<canvas width='50' height='50'>

</canvas>
17Name_Not_Found:2009/10/14(水) 06:48:21 ID:???
誤爆しますた
18Name_Not_Found:2009/10/14(水) 08:33:46 ID:???
なんでabsoluteで要素重ねるようなコンテンツって
全画面デザインが多いの。
19Name_Not_Found:2009/10/14(水) 09:26:58 ID:???
ひとつでもabsoluteさせると全部にposition決めないと
デザインが崩れるから
20Name_Not_Found:2009/10/14(水) 11:05:54 ID:???
坊やだからさ
21Name_Not_Found:2009/10/14(水) 11:38:30 ID:???
てか、レイヤーとして扱えるような要素はないのだろうか。
positionでもいいけど、もっと<layer>〜</layer>
みたいな感じでさ。
22Name_Not_Found:2009/10/14(水) 11:46:26 ID:???
>>21
見栄えにしかならんものはCSSでやるっていうのがHTML4頃のポリシーだろ
HTML5は知らん、つーかスレチ
23Name_Not_Found:2009/10/14(水) 11:53:18 ID:dy09/8qy
<html>
<head>
<script type="text/javascript>
function test1() {
return txt = "テキスト文章";
}

function test2(txt) {
alert(txt);
}
test1();
test2();
</script>
</head>
<body>
</body>
</html>

test1で作った変数txtを、test2でアラートで表示したいのですが
varを付けてないのでグローバルで扱えるのかと思ったのですが何も表示されません
どなたかアドバイスをよろしくお願いいたします
24Name_Not_Found:2009/10/14(水) 11:55:22 ID:???
>function test2(txt) {

x = 1;
function f1() { alert(x); }
function f2(x) { alert(x); };
function f3() { var x; alert(x); };
f1(); f2(); f3();

仮引数はローカル変数
25Name_Not_Found:2009/10/14(水) 12:04:00 ID:???
>>24
ありがとうございます
解決できました
26Name_Not_Found:2009/10/14(水) 13:07:34 ID:yPtgZOlO
JSONでみかん・200円のところの配列を消してインデックスを詰めたいのですが
delete arrayJSON.list[1]ではインデックスが詰められません
そこでspliceを利用したいのですが、arrayJSON.list.splice(1,1)では消えませんでした
どなたか配列を消してインデックスを詰める方法を伝授してください。

【test.html】
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>test</title>
<script type="text/javascript" src="test.js"></script>
</head>

<body>
<button onClick="test()">テスト</button>
</body>
</html>

【test.js】

arrayJSON = {"list":[
{"food":"りんご","yen":"100円"},
{"food":"みかん","":"200円"}
{"food":"パイナップル","":"500円"}
]}

arrayJSON.list[1].splice;
alert(arrayJSON.list);
27Name_Not_Found:2009/10/14(水) 13:40:33 ID:???
>>26
質問がよくわからない。

単純に配列のある要素を削除したいってこと?
それならapliceで削除できるはず。

var a = [1,2,3];
a.splice(1,1);
alert(a); //1,3

多分他のところでエラーが起きてる
・配列の要素はコンマで区切る
28Name_Not_Found:2009/10/14(水) 13:54:20 ID:yPtgZOlO
一次元配列?の場合ですと27さんの通りで問題ないのですが
JSONの場合だとspliceで消すことができませんでした
代替策として、deleteで消してからprototype.jsでundefined要素を削除することで対応できましたので解決とします
29Name_Not_Found:2009/10/14(水) 14:03:59 ID:???
>>28
環境何?

Firebugで試したけど、やりたいことできてるみたいだよ?

console.log(arrayJSON);           // 3つある
console.log(arrayJSON.list[1]);       // みかん
console.log(arrayJSON.list.splice(1,1));  // みかんが取り出される
console.log(arrayJSON);           // 2つになってる
30Name_Not_Found:2009/10/14(水) 14:14:11 ID:???
そもそもみかん200円て高いよ
31Name_Not_Found:2009/10/14(水) 14:34:46 ID:???
getElementsByTagNameは入れ子にできないんでしょうか?
うまく動作しないのですが……。

var div = document.body.getElementsByTagName("div");
for (var i = 0; i < div.length; i++) {
 p = div[i].getElementsByTagName("p");
 for (var j = 0; j < p.length; j++) {
  略
 }
}
32Name_Not_Found:2009/10/14(水) 14:50:38 ID:???
>>31
そのまま実行してみたけど上手く行くよ。うまく動作しないって実際にどうなってるの?
3326:2009/10/14(水) 15:08:33 ID:???
>>29
環境はFirefox3.5です
>>26に書きもれたのですがarrayJSON.list[1].splice(1,1)では削除されてませんでした
ファイルの文字コードはどちらもUTF8です

>>30
すいませんでした
以下のように書き換えます

【test.js】

arrayJSON = {"list":[
{"food":"りんご","yen":"35円"},
{"food":"みかん","":"25円"}
{"food":"パイナップル","":"200円"}
]}
3431:2009/10/14(水) 15:13:07 ID:???
>>32
なぜかpが空になってしまうんです……
35Name_Not_Found:2009/10/14(水) 15:33:39 ID:???
>>33
別の所が原因じゃない?やっぱりうまく行くよ

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<title>test</title>
<script type="text/javascript">
var test = function() {
 var arrayJSON = {"list":[
  {"food":"りんご","yen":"100円"},
  {"food":"みかん","":"200円"},
  {"food":"パイナップル","":"500円"}
 ]};

 arrayJSON.list.splice(1,1);
 var list =arrayJSON.list;
 for (var i=0,l=list.length; i<l; ++i) {
  for (var key in list[i]) {
   alert(key + ":" + list[i][key]);
  }
 }
}
</script>
</head>
<body>
<button onClick="test()">テスト</button>
</body>
</html>
36Name_Not_Found:2009/10/14(水) 15:38:23 ID:???
>>33
数点きになる箇所が。
arrayJSON.list[1].splice(1,1)
・spliceメソッドは配列の要素に対して実行するのではない
=> arrayJSON.list.splice(1,1);

arrayJSON = {"list":[
{"food":"りんご","yen":"35円"},
{"food":"みかん","":"25円"} //, ここにコンマを入れるべき
{"food":"パイナップル","":"200円"}
]}
・途中、コンマが抜けてる

・質問するときに関係のない語を含めない。(JSON)
質問がボケる。
37Name_Not_Found:2009/10/14(水) 15:39:07 ID:dLuPtxFR
>>33
少なくともfirebugのコンソールで試した限りでは問題ないよ。
var arrayJSON = {"list":[
{"food":"りんご","yen":"35円"},
{"food":"みかん","":"25円"},
{"food":"パイナップル","":"200円"}
]}

console.log(arrayJSON); // -> Object list=[3]
arrayJSON.list.splice(1,1);
console.log(arrayJSON); // -> Object list=[2]


>>34
p要素はあるの?
あと蛇足だけど、div.lengthやp.lengthはiやjと一緒に変数に入れてしまった方が、
ちょっと速くなるよ。
38Name_Not_Found:2009/10/14(水) 15:41:27 ID:???
>>34
こんな感じだよ?HTMLがどっかおかしいんじゃない?

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>test</title>
<script type="text/javascript">
var init = function() {
  var result = [];
  var div = document.body.getElementsByTagName("div");
  for (var i=0,l=div.length; i<l; ++i) {
    result.push(div[i].id + "<br>");
    p = div[i].getElementsByTagName("p");
    for (var j=0,m=p.length; j<m ; ++j) {
      result.push("  " + p[j].id + "<br>");
    }
  }
  document.getElementById('result').innerHTML = result.join('');
}
</script>
</head>
<body onload="init()">
<div id="div1-1"><p id="p1-1"></p><p id="p1-2"></p></div>
<div id="div2-1"><p id="p2-1"></p><div id="div2-2"><p id="p2-2"></p></div></div>
<div id="result"></div>
</body>
</html>
39Name_Not_Found:2009/10/14(水) 15:46:12 ID:???
ジェーソン君の人気に嫉妬あげ
4026:2009/10/14(水) 15:52:36 ID:???
arrayJSON.list.splice(1,1);の後にarrayJSON.list = arrayJSON;って代入したらうまくいきました
41Name_Not_Found:2009/10/14(水) 15:55:29 ID:???
javascriptの記載されたページでonclickで配列に要素を足したり引いたりするページがあります
これをブラウザを閉じたりページを更新すると初期化されますが、初期化しないで保存しておける方法ってありませんか?
42Name_Not_Found:2009/10/14(水) 15:56:09 ID:???
>>40
え。え。ちょっとそれ何か解決方法が違うなw
根本的な解決になってない気がするよw
43Name_Not_Found:2009/10/14(水) 15:57:00 ID:???
>>41
cookieに入れるとかじゃない?cookie拒否してたら意味ないけどそれが一般的。
44Name_Not_Found:2009/10/14(水) 16:50:39 ID:???
>>37>>38
サンプルコードが微妙に違ってました
すみません・・・

<html>
<head>
<script type="text/javascript">
var init = function() {
 var div = document.body.getElementsByTagName("div");
 for (var i = 0; i < div.length; i++) {
  if (div[i].getAttribute("className") == "foo" ||
    div[i].getAttribute("class") == "foo") {
   div[i].appendChild(document.createTextNode("ろ"));
  } else {
   var p = div[i].getElementsByTagName("p");
   for (var j = 0; j < p.length; j++) {
    p[i].appendChild(document.createTextNode("に"));
   }
  }
 }

</script>
</head>
<body onload="init()">
<div class="foo"><p>い</p></div>
<div><p>は</p></div>
</body>
</html>
45Name_Not_Found:2009/10/14(水) 17:05:24 ID:???
>>44
結局できたって意味でいいんだよね?
その例だと最後の閉じかっこが全角なのとp[i].appendChildがp[j].appendChildの間違いだと思うけど、
動き自体は問題ないってことでしょ?
46Name_Not_Found:2009/10/14(水) 17:24:35 ID:???
prototypeやjqueryなどのライブラリはajaxさえ使わなければ
ローカルでも動作しますか?
47Name_Not_Found:2009/10/14(水) 17:29:20 ID:???
試せばわかる
48Name_Not_Found:2009/10/14(水) 19:41:53 ID:???
>>45
できてません
サンプルコードは動いても手元のコードが動かないorz

状況を整理してからまた来ます・・・
49Name_Not_Found:2009/10/15(木) 08:39:52 ID:???
IMEの文字の線形データを取得してみたいんですけど
やはりデータベース化してそこから取得しないと無理でしょうか?
50Name_Not_Found:2009/10/15(木) 09:57:28 ID:???
画像をクリックすると背景が黒くなって大きなサイズの画像がポップアップしてくるjavascript探してるんだけど、教えろ、ゴラ
51Name_Not_Found:2009/10/15(木) 10:09:24 ID:???
大きなサイズの画像がポップアップしてくるってのはムリだろks
52Name_Not_Found:2009/10/15(木) 10:35:29 ID:???
ttp://www.php.net/
PHPの公式サイトにこんなコードがうめこまれてました(たぶん何者かに不正に書き換えられた)
これはどんなコードなんでしょうか?


function okc(f){var c=[38,38,40,40,37,39,37,39,66,65,13],
x=function(){x.c=x.c||Array.apply({},c);x.r=function(){
x.c=null};return x.c},h=function(e){if(x()[0]==(e||window.event).keyCode){
x().shift();if(!x().length){x.r();f()}}else{
x.r()}};window.addEventListener?window.addEventListener('keydown',h,false):document.attachEvent('onkeydown',h)}
okc(function(){document['phplogo'].src='http://static.php.net/www.php.net/images/php_konami.gif'});
53Name_Not_Found:2009/10/15(木) 10:50:12 ID:???
>>52
ある順であるキーを押した場合にPHPのロゴ画像を入れ替えようしたみたい。
↑↑↓↓←→←→ba[Enter]

仲間に「俺すごいだろ!」って言いたかったんじゃないかな?
そこまでたちの悪いものじゃない
54Name_Not_Found:2009/10/15(木) 10:50:41 ID:???
>>52
コナミコマンドだな。
不正に書き換えられたわけじゃないと思う。<script>の書き忘れかな。
55Name_Not_Found:2009/10/15(木) 10:54:52 ID:???
>>52
とくに不正なコードとは思わんけど?
短いコードなんだから読めばわかるでしょ。
ヒント: 38=DOM_VK_UP 40=DOM_VK_DOWN 37=DOM_VK_LEFT 39=DOM_VK_RIGHT
66=DOM_VK_B 65=DOM_VK_A 13=DOM_VK_RETURN
56Name_Not_Found:2009/10/15(木) 10:57:49 ID:???
x=function(){x.c=x.c||Array.apply({},c);x.r=function(){
x.c=null};return x.c},h=function(e){if(x()[0]==(e||window.event).keyCode){
x().shift();if(!x().length){x.r();f()}}else{
x.r()}};window.addEventListener?window.addEventListener('keydown',h,false):document.attachEvent('onkeydown',h)}

この辺が絶対ウイルス
57Name_Not_Found:2009/10/15(木) 12:27:23 ID:???
>>56
ウイルスと言うからには感染しなきゃ。
58Name_Not_Found:2009/10/15(木) 12:59:01 ID:???
画像に絶対怪しいコードが埋め込まれてるだろ
だって普通あの画像使ったら著作権に引っかかるだろ
59Name_Not_Found:2009/10/15(木) 13:13:40 ID:???
なんだっていいよPHPスレでやれよ
・・・本スレどれだ?w
60Name_Not_Found:2009/10/15(木) 13:29:33 ID:???
61Name_Not_Found:2009/10/15(木) 15:15:21 ID:???
canvasでデータスキームのデータ(data:image/png;base64,〜〜というようなやつです)
を丸ごと取得したいのですがどうやればいいのでしょうかよろしくおねがいします。
62Name_Not_Found:2009/10/15(木) 15:49:05 ID:???
くたばれ丸投げ厨房
63Name_Not_Found:2009/10/15(木) 17:54:34 ID:???
>>61
右クリック、画像の表示でローケーションバーをコピー
64Name_Not_Found:2009/10/15(木) 19:56:00 ID:R8ARwIyr
リンクをクリックした時、画像読み込んで、リンク先へ飛ばしたいの
ですが、うまくいきません。どうすれば良いのでしょうか。

<コード>
<SCRIPT language="JavaScript">
<!--
function GetImg() {
var img = new Image();
img.src = http://www.abc.com/def/ghi.jpg";
}
//-->
</SCRIPT>
<a href="http://www.xyz.com/index.html" target="_blank" onClick="GetImg() "><img src="http://abc.com/jkl/mno.jpg" border="0" width="94" height="36" /></a>

65Name_Not_Found:2009/10/15(木) 20:02:10 ID:???
時差をつけないとクリックすると片方の動作しか見てる人は確認できないんじゃない?
66Name_Not_Found:2009/10/15(木) 20:14:03 ID:wIvDj3a0
>>64
キャッシュしてから次のページへ行く、ってことかね。
imgのonload(IEだとreadystate見た方がいいかも)で
location.hrefを変えればいいんじゃないかな。
67Name_Not_Found:2009/10/15(木) 20:50:12 ID:???
>>64
GetImg()が終わった直後にページ移動するよね
68ペ・ヨンジュン ◆3cMgdlp8VY :2009/10/15(木) 20:59:46 ID:???
ブラウザ毎に微妙に動作が違いそうだから
setTimeoutとlocation.hrefが無難な気がしないこともない
リンクがあまりないのなら思いきって
onloadで読み込ませた方が無難な気がしないこともない
69Name_Not_Found:2009/10/15(木) 21:30:12 ID:???
>>64
イメージを読み込んだ後にページ移動ならこうかな
<script type="text/javascript">
window.onload = (function(){
  document.getElementById("wwwwwwww").onclick = function(){
    var img = document.createElement("img");
    img.src = "画像のURLをここに!!";
    img.onload = function(){
      alert(this);
      location.href = document.getElementById("wwwwwwww").href;
    };
    return false;
  };
});
</script>
</head>

<body>

<a href="http://example.com/hoge/" id="wwwwwwww">りんく!</a>
70Name_Not_Found:2009/10/15(木) 23:25:25 ID:FhP4Zlsd
3秒カウントダウン→マウスカーソルの位置を取得→1秒後のカーソルの位置を取得
して、一秒前と一秒後のカーソルのX,Yを計算するにはどうしたら良いですかね?
カウントダウンの部分はわかるんで結構ですが。
71Name_Not_Found:2009/10/15(木) 23:42:11 ID:???
マウスカーソルの座標が分かるなら答えるまでも無いだろ
ということはマウスカーソルの座標が取得できないという事か?
だったらカウントダウン云々はいらないだろ
72Name_Not_Found:2009/10/15(木) 23:49:20 ID:FhP4Zlsd
あ、その瞬間瞬間の座標を変数に入れたいんです
カウントダウンはその一瞬であることを示したかったんで。
マウスカーソルの位置って普通に作ると次マウス動かしたら値が変わっちゃうんで…
73Name_Not_Found:2009/10/15(木) 23:57:21 ID:wnsURVT0
ボタンを押したら3・・2・・1・・0ってカウントしたいのですが
PHPでいうとsleep(1);で1秒時間を止めるみたいなことってどうかくのでしょうか?

echo 3;
sleep(1);
echo 2;
sleep(1);
echo 1;
sleep(1);
echo 0;
74Name_Not_Found:2009/10/16(金) 00:08:00 ID:???
>>73
setintervalじゃだめなの
75Name_Not_Found:2009/10/16(金) 00:22:05 ID:7uCB7A46
とあるテンプレートをDIVの中に作って、
それをcloneNodeで複製してappendChildするプログラムを組んでいます。

たとえば、
<div id="template">
  <div class="name">Name_Not_found</div>
  <div class="age">20</div>
</div>
実際はもっと複雑です。

プログラム側では、
var c = document.getElementById("template").cloneNode(true);
c.getElementsByTagName("div")[0].innerHTML = "name not found";
c.getElementsByTagName("div")[1].innerHTML = "30";
と処理していますが、DOMの順番を変えるごとにここを書きなおすのは
非常に汚くてなんとかしなければ…と思案しています。

このような状況では皆さんどのように処理を書いていますか?
76Name_Not_Found:2009/10/16(金) 00:43:03 ID:???
>>75
・関数をつくる
・getElementsByTagName()ではなくクラス名で検索する


77Name_Not_Found:2009/10/16(金) 01:17:35 ID:???
XPath使えばいいとおもうよ
78Name_Not_Found:2009/10/16(金) 01:55:14 ID:???
>>75
こんな感じかねぇ

function hoge(a1, a2) {
 var c = document.getElementById(a1).cloneNode(true);
 var o = c.getElementsByTagName("div");
 var n = o.length;
 for (var i = 0; i < n; i++) {
  var id = o[i].id;
  for (var s in a2) {
   if (id == s) {
    o[i].innerHTML = a2[s];
    break;
   }
  }
 }
 return c;
}

var obj = {
 n: "Name_Not_found",
 a: "30"
};

<div id="template">
  <div id="n" class="name">Name_Not_found</div>
  <div id="a" class="age">20</div>
</div>

var c = hoge('template', obj);
79Name_Not_Found:2009/10/16(金) 02:55:52 ID:???
笑うとこ?
80Name_Not_Found:2009/10/16(金) 03:52:59 ID:???
>>79
笑われないようなのを例示してくれ
81Name_Not_Found:2009/10/16(金) 05:46:35 ID:???
>>63
それってjavascript関係ありますか?
82Name_Not_Found:2009/10/16(金) 06:35:06 ID:???
toDataURI
83Name_Not_Found:2009/10/16(金) 08:53:03 ID:PdoB+hjK
変数には何文字入れられますか?太宰治の「人間失格」を
変数に入れられますか?そうすると持ち歩きに便利なので
すが。教えてください。
84Name_Not_Found:2009/10/16(金) 08:55:32 ID:???
持ち歩きに便利・・・?
85Name_Not_Found:2009/10/16(金) 09:32:59 ID:???
なにそれこわい
86Name_Not_Found:2009/10/16(金) 09:49:29 ID:???
初めて見たけどコピペじゃないのか
ちょっと面白いじゃないか
変数に入れたとして、JavaScriptを何で持ち歩くのか気になる
87Name_Not_Found:2009/10/16(金) 10:12:30 ID:???
>>75
専ブラならエディタにコピーして見てくれな。

<div id="template">
<div id="contents">
<div class="name">Name_Not_found</div>
<div class="age">20</div>
</div>
</div>

var template = document.getElementById("template");
var oldDiv = template.firstChild;
var newDiv = oldDiv.cloneNode(true);
var nodes = newDiv.childNodes;
// id(contents) が必要ならばコピー
newDiv.id = oldDiv.id;
var i, l = nodes.length;
var name, map_;

if (!!document.hasAttribute) {
// not IE
for (i = 0; i < l; i++) {
if (nodes[i].hasAttribute("id")) {
name = nodes[i].getAttribute("id");
if (name == "name") {
} else (name == "age") {
...
}
// 他による変更を無視する場合
continue;
}
88Name_Not_Found:2009/10/16(金) 10:13:16 ID:???
// class の有無で区別
if (nodes[i].hasAttribute("class")) {
name = nodes[i].getAttribute("class");
if (name == "name") ...
} else {
// タグで区別
name = nodes[i].nodeName.toLowerCase();
if (name == "div") ...
}
} else {
// IE は hasAttribute が無い
同上
※ getAttribute("class") → getAttribute("className")
}
template.replaceChild(newDiv, oldDiv);

上の hasAttribute 以降ベタ書きだが || や Wrapper 関数を作ればもっと短くなる。
また、セット時に if else で書いているが
id,class等の名を key とした連想配列でマップ作っておけば
コードが減って追加する場所も map に限定されて楽。

var map = {
id: {name: "...", age: ...},
class: {name: "...", age: ...},
tag: {div: "...", input: "..."}
};
// class の区別はこうなる
if (nodes[i].hasAttribute("class")) {
map_ = map.class;
name = nodes[i].getAttribute("class");
if (typeof map_[name] != 'undefined')
nodes[i].hoge = map_[name];
89Name_Not_Found:2009/10/16(金) 10:31:13 ID:???
var map の位置はグローバルや上位スコープに置くだろうから
var name, map_; は
var name, map_ = map; にして

// map_ = map.class;
name = nodes[i].getAttribute("class");
if (typeof map_.class[name] != 'undefined')
nodes[i].hoge = map_.class[name];

になる
90Name_Not_Found:2009/10/16(金) 11:53:08 ID:???
人間失格は8バイトぐらいじゃないか?
91Name_Not_Found:2009/10/16(金) 12:08:33 ID:???
正しいJavaScriptの書き方を覚えたいのですが
MDCで勉強するのがいいのでしょうか?
9264:2009/10/16(金) 13:17:17 ID:FVxfLBkE
>>65〜69
レスありがとうございます。

>>69
うまく画像を取り込めました。ありがとうございました。

ただ、target="_blank"を付けたのですが、
別ウインドウに表示されませんでした。
リンク先のホームページを別ウインドウに表示させるようにするには、
どうすれば良いのでしょうか?

よろしくお願いします。

93Name_Not_Found:2009/10/16(金) 13:53:35 ID:fXf8+52m
画像を上から下に降らせるjavascriptってありますよね
それってどのような仕組みなのでしょうか?
94Name_Not_Found:2009/10/16(金) 13:57:53 ID:???
>>93
タイマー使ってCSSいじる
つーかそのコード見れ
95Name_Not_Found:2009/10/16(金) 14:36:52 ID:yp2NSRTt
>>92
location.hrefをwindow.openに変えれ。
96Name_Not_Found:2009/10/16(金) 15:57:00 ID:???
>>88
IE8にはhasAttributeあるし
IE8モードだとclassNameじゃ取れないだろ
9792=64:2009/10/16(金) 16:33:59 ID:FVxfLBkE
>>95

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

(1)window.openに変えると、
 リンク先のホームページが表示されなくなりました。

(2)あと、location.hrefの時、
 1回目のクリックでリンク先が表示された後、
 IEの[戻る]で元の画面を表示し、再度クリックすると、
 リンク先の画面が表示されません。

どうすれば良いのでしょうか。よろしくお願いします。

98Name_Not_Found:2009/10/16(金) 18:04:27 ID:yp2NSRTt
>>97
>(1)window.openに変えると、
> リンク先のホームページが表示されなくなりました。

…いや、おいらの書き方が悪かった。
location.hrefを使わずに、window.openを使おう。
window.openは関数です。引数にURLを渡そう。


>(2)あと、location.hrefの時、
> 1回目のクリックでリンク先が表示された後、
> IEの[戻る]で元の画面を表示し、再度クリックすると、
> リンク先の画面が表示されません。

imgが既にloadedなのでonloadが発火しないからです。
if(/loaded|complete/.test(img.readyState)){
    やりたいこと
}
みたいな処理を挟むのがいいかも。
99ペ・ヨンジュン ◆3cMgdlp8VY :2009/10/16(金) 18:12:35 ID:???
>>83
文字数約73600+改行等で150〜160KB
変数に入れることは可能だろう
持ち運ぶとしてCookieに記録すると約40件になる
ちなみにモバイルのブラウザで40件は無理かもしれない
100Name_Not_Found:2009/10/16(金) 18:54:59 ID:???
>>87
走査するノードのtypeチェックくらいしとこうよ
101Name_Not_Found:2009/10/16(金) 19:09:28 ID:???
>>91
「正しい」ってのは効率的な書き方ってこと?
そうだったらjqueryとかprototypeだとか、そういったライブラリを
読めばいいと思うよ
読むだけじゃなくて自分の手も動かしてね
10297:2009/10/16(金) 19:13:13 ID:FVxfLBkE
>>98
レスありがとうございます
103Name_Not_Found:2009/10/16(金) 19:17:40 ID:wwHLFfqa
質問です。switchのdefaultって何のためにあるのでしょうか。
なくても結果が変わらないので外してもよいのでしょうか。
104Name_Not_Found:2009/10/16(金) 19:24:13 ID:???
>>103
調べればわかるでしょ
105Name_Not_Found:2009/10/16(金) 19:24:22 ID:???
if文でいうelse節だよ
(全ての)条件に一致しないものが流れ着く
不要なelse節が端折れるように、defaultが不要なら端折っていい
106103:2009/10/16(金) 19:28:28 ID:wwHLFfqa
>>104-105さん
ありがとうございます。105さん、よく分かりました。どうもです。
107Name_Not_Found:2009/10/16(金) 22:33:51 ID:???
defaultは先頭に置けるがな
108Name_Not_Found:2009/10/17(土) 01:11:50 ID:???
マウスが動いてから一秒後に動いた後の位置のX座標とY座標を表示するスクリプトを組みたいんですが、
下がうまくいかないんですがどこが間違っていますか?
初歩的なミスでしたらすいません。
<script type="text/javascript">
//<![CDATA[
function checkMousePoint(e) {
if(document.all) {
var x = event.clientX;
var y = event.clientY;
} else {
var x = e.clientX;
var y = e.clientY;
}
var myText = "X : " + x + "<br/>";
myText += "Y : " + y + "<br/>";

document.getElementById("dispArea").innerHTML = myText;
}
document.onmousemove = SetTimeout(checkMousePoint,1000);
//]]>
</script>
109Name_Not_Found:2009/10/17(土) 01:14:45 ID:???
マウスが動いてから一秒後に動いた後の位置のX座標とY座標を表示するスクリプトを組みたいんですが、
下がうまくいかないんですがどこが間違っていますか?
初歩的なミスでしたらすいません。
<script type="text/javascript">
//<![CDATA[
function checkMousePoint(e) {
if(document.all) {
var x = event.clientX;
var y = event.clientY;
} else {
var x = e.clientX;
var y = e.clientY;
}
var myText = "X : " + x + "<br/>";
myText += "Y : " + y + "<br/>";

document.getElementById("dispArea").innerHTML = myText;
}
document.onmousemove = SetTimeout(checkMousePoint,1000);
//]]>
</script>
110Name_Not_Found:2009/10/17(土) 01:16:13 ID:a+bs1nMh
↑申し訳ありません。更新してしまいました
111Name_Not_Found:2009/10/17(土) 01:31:42 ID:???
なにもかも
112Name_Not_Found:2009/10/17(土) 01:33:47 ID:???
>>108
とりあえず、setTimeoutな?
JavaScriptは大文字小文字を認識するんで。

あと、checkMousePointの引数のeは何なのかを考えてみな?
113Name_Not_Found:2009/10/17(土) 01:43:26 ID:???
>>111-112
ありがとうございました。
基本からきちんと学ぶことにします。
初心者のスレ汚しすいませんでした。
114Name_Not_Found:2009/10/17(土) 02:00:10 ID:???
308 名前:Name_Not_Found[] 投稿日:2009/10/17(土) 01:33:56 ID:a+bs1nMh
マウスが動いてから一秒後に動く前と動いた後のマウスのclientxとyの座標を表示させるスクリプトお願いします。


これはひどい・・・
115Name_Not_Found:2009/10/17(土) 02:01:27 ID:???
<div id="dispArea" onclick="clearTimeout(t)"></div>
<script type="text/javascript">
var t = 0;
var x = 0;
var y = 0;

document.onmousemove = function (e) {
if (document.all) {
x = event.clientX;
y = event.clientY;
} else {
x = e.clientX;
y = e.clientY;
}
};

function checkMousePoint() {
var myText = "X : " + x + "<br/>";
myText += "Y : " + y + "<br/>";
document.getElementById("dispArea").innerHTML = myText;
t = setTimeout(checkMousePoint, 1000);
}

checkMousePoint();
</script>

>>113がんがれ〜
116Name_Not_Found:2009/10/17(土) 02:24:34 ID:???
if (document.all) これは不細工だな。
if (!e) これでよかろ。
117Name_Not_Found:2009/10/17(土) 02:32:44 ID:???
それなら、下のを二行に分けるのも微妙な気がするぜ。
var myText = "X : " + x + "<br/>";
myText += "Y : " + y + "<br/>";

var myText = "X : " + x + "<br/>" + "Y : " + y + "<br/>";
面倒だし、これでいんじゃね?
118Name_Not_Found:2009/10/17(土) 02:39:34 ID:???
>>116は一理あるけど>>117はただの好みだろw
119Name_Not_Found:2009/10/17(土) 02:46:23 ID:???
XHTMLでscript要素内に<br/>を直に書くとかもうね
120Name_Not_Found:2009/10/17(土) 02:56:35 ID:???
きったねぇwwwwwwwwwwwwwwwwwwwwwwwww
121Name_Not_Found:2009/10/17(土) 05:16:18 ID:???
innerHTMLで書換えるな>>117とやってることが対して変わらん
122Name_Not_Found:2009/10/17(土) 05:27:40 ID:???
innerHTMLの書き換えがなぜいけないのか説明してくれたまえ
123Name_Not_Found:2009/10/17(土) 05:44:04 ID:???
DOM木が以下略
124Name_Not_Found:2009/10/17(土) 07:07:08 ID:???
銭湯にバスクリンを投入するのがなぜいけないのか説明してくれたまえと同レベル
125Name_Not_Found:2009/10/17(土) 07:30:52 ID:???
innerHTMLはHTMLを直接いじってるのだから文字列にタグが含まれていてもいなくてもやってることは全く同じ
126Name_Not_Found:2009/10/17(土) 11:32:07 ID:???
>>115を見て即座に>>119のように思わなかった奴はinnerHTMLを使うな
HTMLの基礎からやり直すレベル
127Name_Not_Found:2009/10/17(土) 11:40:08 ID:???
HTMLじゃなくてJavaScriptの勉強じゃね?
128Name_Not_Found:2009/10/17(土) 11:44:43 ID:???
<script>内に<br>を仕込んだらいけない理由なんてあんの?
129Name_Not_Found:2009/10/17(土) 12:08:24 ID:???
とりあえず>>127-128は今後innerHTMLを使うな
130Name_Not_Found:2009/10/17(土) 12:17:54 ID:???
勉強すべきはxhtmlの基礎だろ
html勉強してどうするんだ
131Name_Not_Found:2009/10/17(土) 12:37:25 ID:???
なんか一概に言えなくて説明しにくいんだけど
おそらく4の倍数から外れたときに計算処理が重くなる・・
132Name_Not_Found:2009/10/17(土) 12:42:44 ID:???
日記ならチラシの裏に書いてくれ
133Name_Not_Found:2009/10/17(土) 12:46:50 ID:???
ダメダメじゃなくてさぁ>>115なんて単純な構造なんだし
妥当なものに書き替えてやるなり、ピンポイントに
指摘するなりがあると助かるゾ。
134Name_Not_Found:2009/10/17(土) 12:47:33 ID:???
誤爆だよカス
いちいちレス消費するだろスルーしてろクズが
135Name_Not_Found:2009/10/17(土) 13:11:59 ID:???
乱数生成なんですが、var arr = new Array(10)という配列があった
とき、Math.randomに掛ける数値はそのままarr.lengthでいいのでしょ
うか。それとも、arr.length-1ですか?arr.lengthだと最後の要素が
出ないように思うのですが。なんだかいろいろ考えていたら分から
なくなってしまいました。やさしく教えてください。
あと、乱数結果の最小値と最大値を確認する方法ってありまうか。
136Name_Not_Found:2009/10/17(土) 13:25:24 ID:???
>>129
早く教えてよ^^
137Name_Not_Found:2009/10/17(土) 13:30:42 ID:???
>>135
Math.random は0以上1未満の乱数を発生させる
10倍すれば0以上10未満
あとは分かるな?
138Name_Not_Found:2009/10/17(土) 13:35:52 ID:???
>>135
配列アクセスなら*length
Math.randomの返す値が0-0.99・・・だから
139Name_Not_Found:2009/10/17(土) 13:56:41 ID:???
>>133
お前がやれ
このレベルで指摘できないならお前も二度とinnerHTMLを使うな
140Name_Not_Found:2009/10/17(土) 13:57:06 ID:???
XHTMLがどうのって言ってるやつ、もしかして<br/>じゃなくて<br />だろって思ってんの?
141Name_Not_Found:2009/10/17(土) 14:24:37 ID:???
一度に離れた位置にノードを挿入するには
ツリー丸ごとコピーして挿入して元のツリーと差し換えるしかないの?
142Name_Not_Found:2009/10/17(土) 14:33:04 ID:???
一度に離れた位置

の意味が解からんが
一度に複数のノードを挿入するのは
innerHTML でも
appendChild でも
insertBefore でも
replaceChild でも
好きなものを使え。
143Name_Not_Found:2009/10/17(土) 14:46:43 ID:???
>>135
Math.random()*10+0)で0〜10
Math.random()*3242+1847)で1847〜3242
144Name_Not_Found:2009/10/17(土) 14:57:21 ID:???
えっ
145Name_Not_Found:2009/10/17(土) 15:06:33 ID:???
あっ
146Name_Not_Found:2009/10/17(土) 15:09:31 ID:???
ミスった
こっちが正解
Math.random()*10+0)で0〜9
Math.random()*3242+1847)で1847〜5088
147Name_Not_Found:2009/10/17(土) 15:32:55 ID:???
その閉じ括弧はなにw
あと境界条件をないがしろにしたらあかん
「"1未満"の最大値」の10倍は「"10未満"の最大値」であって9じゃないぞ
148Name_Not_Found:2009/10/17(土) 15:57:10 ID:???
>>147
ごめんfloorでまとめてた
149Name_Not_Found:2009/10/17(土) 17:28:47 ID:???
初心者はレスすんな
150ペ・ヨンジュン ◆3cMgdlp8VY :2009/10/17(土) 17:34:29 ID:???
ア=Math.floor(Math.random()*イ+ウ)
だったら
ウ≦ア<イ+ウ(アは整数)
だっけ?

心配だから試してみた

イ=1000;ウ=1000;大=0;小=ウ*ウ;
for(i=0;i<1000;i++){ア=Math.floor(Math.random()*イ+ウ);if(大<ア){大=ア};if(小>ア){小=ア}}
エ="間違い";if(ウ<=小&&大<(イ+ウ)){エ="真偽不明"}if(ウ==小&&大==(イ+ウ-1)){エ="正しい"}
alert("仮説が正しいとすると結果は\n"+ウ+"以上"+(イ+ウ)+"以下の整数のはず\n実際の結果は\n"+小+"〜"+大+"だから\n仮説は【"+エ+"】")

結果:合ってるっぽい
151Name_Not_Found:2009/10/17(土) 20:28:17 ID:???
xとy座標指定するときにうっかり0の存在忘れそうになるんだがどうしたらいい
152Name_Not_Found:2009/10/17(土) 20:55:31 ID:???
>>140
話にならん、教科書レベルからやり直せ
153Name_Not_Found:2009/10/17(土) 21:14:11 ID:???
>>152
だからXHTMLじゃなくて、JavaScriptの話だろ?
154Name_Not_Found:2009/10/17(土) 21:26:38 ID:???
>>153
そう思ってんならお前も出直せ
155Name_Not_Found:2009/10/17(土) 21:27:28 ID:???
あえて言うならSGMLの話かな
156Name_Not_Found:2009/10/17(土) 21:28:24 ID:???
馬鹿の一つ覚え
157Name_Not_Found:2009/10/17(土) 21:36:59 ID:???
この話は>>123で終わってるし
158Name_Not_Found:2009/10/17(土) 21:44:38 ID:???
結局「なんとなく」でしか理解してなくて
きちんと説明できる奴はいないんだな
159Name_Not_Found:2009/10/17(土) 21:49:37 ID:???
ぐぐってみた
タグとして認識されてしまうから
script 要素内に「<」「&」を書いてはならない
→>とかであらわせばおk?
160Name_Not_Found:2009/10/17(土) 21:58:25 ID:???
>>155
あえて言うならXMLだろ
161Name_Not_Found:2009/10/17(土) 22:02:04 ID:???
つまり>>117をこうしろってことか?
document.getElementById("dispAreaX").innerHTML = "X : " + x;
document.getElementById("dispAreaY").innerHTML = "Y : " + y;
162135:2009/10/17(土) 22:02:46 ID:???
乱数の質問者です。みなさんご回答ありがとうございました。コードと
か読ませて頂きましたが余計分からなくなりました(笑
163Name_Not_Found:2009/10/17(土) 22:10:47 ID:???
・JavaScriptとHTMLを連携させるためにDOMという概念を使ってアクセスしている
・innerHTML,innerText,textContentはDOM木を破壊する(再構築される)ので要素の書き換えのために使うべきではない
・innerHTML,innerTextは、元はMSが勝手に作った独自プロパティ
・IEのシェアが大きすぎるためやむを得ず他のブラウザも追従した
・要素を作るにはcreateElementとcreateTextNode、要素を追加するにはappendChild、
 削除するにはremoveChild、置き換えるにはreplaceChildと専用のプロパティが存在する。
・速度的にはinnerHTMLが早い(纏めてパースするため)

たぶんこんな感じ。記憶が正しければ
164Name_Not_Found:2009/10/17(土) 22:11:32 ID:???
失礼なやつ
165Name_Not_Found:2009/10/17(土) 22:14:56 ID:???
>>159
外部のscriptファイルを読み込めばおk
確かに>>115は直接書いちゃってるから駄目だな

つまりなんだ、独自拡張だからinnerHTMLは駄目だと言ってるのか
XHTMLの話じゃないっしょ
166Name_Not_Found:2009/10/17(土) 22:22:04 ID:???
>>163
なるほど。
正解はreplaceChildだが、速度を考えれば慣例化してるinnerHTMLって感じになるか?
167Name_Not_Found:2009/10/17(土) 22:31:33 ID:???
>>166
どちらが正解とかそういう問題じゃないね
あえて言うなら状況に応じて使い分けるのが正解
168Name_Not_Found:2009/10/17(土) 22:32:45 ID:???
innerHTMLはHTML5に含まれる(ことになっている)。
今更仕様的に非推奨みたい書くのは時代遅れ。

まあ、イベントリスナーが消えたり、scriptが実行されたりとか、
素人が使うとミスりやすいのは事実。
169Name_Not_Found:2009/10/17(土) 22:34:03 ID:???
無粋を承知でまとめるとinnerHTMLは
DOMツリーを壊すからいかんと言っているのと
#PCDATAだからいかんと言っているのと2派いて
片方しか理解してない奴が数名いる感じ
170Name_Not_Found:2009/10/17(土) 22:34:39 ID:???
プロパティじゃなかった。メソッドの間違いだった、
innerHTML,innerText, ...etcがプロパティだ
>>166
速度より〜.innerHTML = "String"みたいに代入だけで置き換えられるのが一番大きいと思う

replaceChildだと代入みたいに単純には出来ない
〜.replaceChild([置換後のノード],[置換前のノード]);
171Name_Not_Found:2009/10/17(土) 22:36:26 ID:???
昔のMozillaのinnerHTMLは死ぬほど遅かった
172Name_Not_Found:2009/10/17(土) 22:54:36 ID:???
>>169
もしかして

・innerHTML使うと多くの場合でリテラルに<>が出現する
・XHTMLのインラインスクリプトで<>は使えない
→だからXHTMLでinnerHTMLは使うな

というずれた主張してるヤツがいるってことか
>>129の意味とかやっとわかったわ

つーかインラインスクリプトはCDATAで括るのがXHTMLの常識じゃなかったのか?
実態参照でも別ファイルでも構わんけどさ

DOMツリー云々は>>6でおk?
173Name_Not_Found:2009/10/17(土) 23:14:25 ID:???
>>172
>つーかインラインスクリプトはCDATAで括るのがXHTMLの常識
174Name_Not_Found:2009/10/17(土) 23:33:28 ID:???
>>172さんよろしかったら「正しい知識を付けたい人のためのJAVASCRIPT」講座やってください
175Name_Not_Found:2009/10/18(日) 00:22:10 ID:???
エスケープもできない奴にinnerHTMLを与えるなってことだろ
innerHTMLに限らずdocument.writeだってそう
まともにエスケープできてるものなんてまず見ない

だからHTML5で妙な構文修正やら入ったんだぜ
よかったなお前ら、ブラウザ様に感謝しろ

それでもscript内の</は駄目だからバカの一つ覚えでこれだけは避けろ
176Name_Not_Found:2009/10/18(日) 00:31:07 ID:???
>>175
訂正
バカの一つ覚えでscript内を<!--...//-->で囲め
</を避けるのは高度過ぎたな
177Name_Not_Found:2009/10/18(日) 00:50:32 ID:???
>>176
だからそれXHTMLで通用しないからバカの一つ覚えになってない
178Name_Not_Found:2009/10/18(日) 01:11:13 ID:???
賢いつもりのバカは声がでかいぶんただのバカより厄介だな
179Name_Not_Found:2009/10/18(日) 01:20:57 ID:???
XHTMLで通用しないってのも時代遅れ感あるな。
わざわざ Content-Type: application/xhtml+xml 使うようなモノ好きな人はそんなことは百も承知だろうし。
180Name_Not_Found:2009/10/18(日) 01:31:06 ID:???
>>177
ほとんどの奴はXHTMLをtext/htmlにしているから事実上HTMLと同じ
application/xmlなXHTMLを書ける奴なら>>115のようなミスはしない

HTML5は非XML構文でも<br/>を許すようにした
HTML5は非XML構文でscriptなど特定の要素内でのみ使える新構文<!--...-->を導入した
(これはコメントではない)
これらによりSGML互換の夢は完全に潰えたがそれはどうでもいい

バカは無理してXHTMLを書くな
HTMLにしとけ、な
181Name_Not_Found:2009/10/18(日) 01:37:17 ID:???
てかスクリプトは別のファイルに書いとけよ
182Name_Not_Found:2009/10/18(日) 03:07:56 ID:???
>>178
空っぽの容器が一番大きな音を立てるんだぜ?
183Name_Not_Found:2009/10/18(日) 09:40:27 ID:4XCaQKiu
JavaScriptでブラウザーのステータスバーの文字を変更できますが、
これって何のためにあるのでしょうか。ユーザビリチィの点で問題で
はないでしょうか。悪意のあるスクリプトが書けるようにどうし
て放置されているのでしょうか。
184Name_Not_Found:2009/10/18(日) 10:11:11 ID:???
おかげでJavaScript自体オフにされちゃうからなぁ
JavaScript以外の言語、HTMLとかでも言えるけど
特にIE
185ペ・ヨンジュン ◆3cMgdlp8VY :2009/10/18(日) 10:38:39 ID:???
>>183
ごめんけどRPG作ってた頃に
ブラウザ互換が面倒でよく使ってたわ
友達からはまあまあ好評だったけどなぁ
186Name_Not_Found:2009/10/18(日) 10:53:01 ID:???
marquee要素やtarget属性的な
187Name_Not_Found:2009/10/18(日) 14:15:07 ID:???
問題があるのはわかってるけど、消したくても互換性のために消すわけ
にいかないというところだと思う。

188Name_Not_Found:2009/10/18(日) 18:47:01 ID:???
setTimeoutとsetIntervalどっち使ったらいいかがわかりません。
場合によって使い分けするものなのか、好みなのか
どっちなんでしょうか
189Name_Not_Found:2009/10/18(日) 19:01:11 ID:???
誤差しかないから好みでいいときもあるけど、基本は使い分け
190Name_Not_Found:2009/10/18(日) 19:09:40 ID:2WeTZpL7
IE8のことで困ってます。

何らかのイベントが発生した際にデフォルトのブラウザ動作を
行わないようにしたいと思っています。

しかし、IE8ではreturnValueにfalseを設定してもデフォルトの
動作が行われてしまいます。

どうすればいいでしょうか。アドバイスよろしくお願いします。

<div onmousedown="window.event.returnValue=false;">AAAA</div>
※テキストが選択されてしまう
191190:2009/10/18(日) 19:26:30 ID:2WeTZpL7
失礼しました。

私の勘違いでした。ちゃんとデフォルトの動作はキャンセルされてました;
192Name_Not_Found:2009/10/19(月) 01:30:34 ID:???
クラス内のメソッドに対してクラス内で

  window.setInterval(this.Foo, 1000);

としても動作しないのですが何が問題なのかご教授よろしくお願い致します。
193192:2009/10/19(月) 01:36:38 ID:???
スミマセン、自己解決ですorz
this.Foo側で読み込んでいたメソッドにバグがあったようです。
スレ汚し申し訳ないです。
194Name_Not_Found:2009/10/19(月) 01:38:31 ID:???
this.Foo 内のコードに this が書かれてるに 2 ペソ。
195192:2009/10/19(月) 01:44:24 ID:???
>>194
正解です、1000万ペリカ進呈いたします。w
どうしてエラーになるんですか?
196Name_Not_Found:2009/10/19(月) 01:58:37 ID:h+JGiZjA
>>195
いやいや。

setIntervalに渡した関数はwindowオブジェクトのメソッドとして
呼び出されるんだよ。すなわち、thisはwindowオブジェクトを指してる訳。
197Name_Not_Found:2009/10/19(月) 02:01:17 ID:???
>>195
今の場合、this.Foo に代入されてる function オブジェクトを「関数」として呼び出しているから。
this には Global オブジェクト(window オブジェクト)がセットされる。

コンテキストが分からないから何とも言えないが、

var that = this;
window.setInterval(function() { that.Foo(); }, 1000);

ならうまくいきそうな気がする。
198Name_Not_Found:2009/10/19(月) 02:01:49 ID:???
>>195
callとかapplyを使えばOK
199Name_Not_Found:2009/10/19(月) 02:38:24 ID:???
やーね、また Geno が流行ってきてるの?
200Name_Not_Found:2009/10/19(月) 03:08:06 ID:???
>>196,197,198
ご丁寧な解説ありがとうございました。^ ^
なぞが解けました。
201Name_Not_Found:2009/10/19(月) 09:31:24 ID:???
javascriptってmainから始まらないの?
202Name_Not_Found:2009/10/19(月) 09:56:01 ID:???
Yes
203Name_Not_Found:2009/10/19(月) 10:52:18 ID:???
javascriptで格闘ゲームをつくってみたいのですが
何かデモのある良いサイト教えて
204Name_Not_Found:2009/10/19(月) 12:48:30 ID:???
205Name_Not_Found:2009/10/19(月) 13:50:54 ID:???
>>203
どうせならゼロから作ってみるのもいいかも
ライブラリを組むいうことは、すごい良い経験になるはず
206Name_Not_Found:2009/10/19(月) 15:57:34 ID:???
よくjavascriptを使ってテキストエリアの文字色や背景、
見出しやリストなんかを編集できるサイトがあるけど(ブログとか)、
ああいう機能を実現するスクリプトでフリーでオススメのがあったら教えてください。
上に書いた程度のことが実現できれば良いです。
今はtinyMCE?だったかな?外なんで分からんけど、ちょっと高機能すぎてもてあまし気味。
207Name_Not_Found:2009/10/19(月) 16:32:14 ID:???
>>202
えっ!javascriptってmainから始まるの?
208Name_Not_Found:2009/10/19(月) 16:45:16 ID:???
うるさい
209Name_Not_Found:2009/10/19(月) 16:49:03 ID:???
>>207
英語やってみな
あんた嬉しいんじゃない?
210Name_Not_Found:2009/10/19(月) 17:21:14 ID:???
Does javascript begin with main ?
211Name_Not_Found:2009/10/19(月) 17:23:57 ID:???
Yes, it does.
212Name_Not_Found:2009/10/19(月) 17:30:50 ID:???
>>210
notがいるんじゃね?
213Name_Not_Found:2009/10/19(月) 17:50:46 ID:???
Does not javascript begin with main ?
214Name_Not_Found:2009/10/19(月) 17:56:53 ID:???
Yes, it does.
215Name_Not_Found:2009/10/19(月) 17:57:56 ID:/Ma7yI8j
tiddlywikiはIE,Firefox,operaでも動作するjavascriptを使ったwikiですが
javascriptでファイルへの書き込みはできるのでしょうか?
216Name_Not_Found:2009/10/19(月) 18:09:25 ID:???
>>215
ソース見りゃいいじゃん、ヒントはsaveFile
ネットとローカルでセキュリティポリシー違うのは忘れんな
217Name_Not_Found:2009/10/19(月) 18:17:54 ID:h+JGiZjA
すみません。

IE8であるスクリプトの処理速度を測定するにはどうすればいいでしょうか?
もしアドオンなどがありましたら、教えてください。

よろしくお願いします。
218Name_Not_Found:2009/10/19(月) 18:39:23 ID:???
古典的だが、始まる前にnew Date()
終わったところでnew Date()
後者から前者を引く
219Name_Not_Found:2009/10/19(月) 19:05:43 ID:???
var b = new Date().getTime;
〜ここに処理を書く〜
alert(new Date().getTime - b + "ms秒かかったよ!!");

220217:2009/10/19(月) 19:14:49 ID:h+JGiZjA
>>218-219
どうもありがとうございます。

Dateを用いて測定することにしたいと思います。
IE8のデバッガで測定できればよかったんですけどね。
221Name_Not_Found:2009/10/20(火) 12:00:29 ID:j/Vxh/Ys
フォームの連続送信を防ごうと、以下のようなソースを書きました。

function formSubmit(){
document.getElementById('sbm').disabled = true;
document.form1.submit();
}

<form action="form.php" method="post" onsubmit="formSubmit">
<input id="sbm" type="submit" value="内容確認">
</form>

ボタンを押した時、disabled状態になって連続送信を防げるのですが、
Firefox3.5.3では確認画面からブラウザの「戻る」で前に戻った時、
ボタンが押せません。IE7では入力画面に戻っても再びボタンを押せます。
どうやってFirefoxに対応させればいいのでしょうか?
222221:2009/10/20(火) 12:01:49 ID:???
すみません。ソースがちょっと変でした・・・。

function formSubmit(){
document.getElementById('sbm').disabled = true;
document.form1.submit();
}

<form name="form1" action="form.php" method="post" onsubmit="formSubmit();">
<input id="sbm" type="submit" value="内容確認">
</form>
223Name_Not_Found:2009/10/20(火) 13:08:52 ID:???
>>222
確認してないからアイデア止まりだけど、window.onloadでdisabled = trueしてみたら?

それか、記憶(再設定)するのはフォーム関連だけだったと思うから、アプローチを変えて
submitしたときにフォーム外側のブロックをdisplay: noneにして「送信中」と表示するとか
224221:2009/10/20(火) 13:25:44 ID:???
>>223
windows.onloadでいけました。後者の方法も有りですよね。
1つの関数だけで納められればと思ったのですが、これらの方法を使います。
225221:2009/10/20(火) 13:30:24 ID:???
すみません、window.onloadは勘違いでした・・。
これを入れても前の画面に戻ったらボタンはdisabled状態です。
もう少し考えてみます。
226Name_Not_Found:2009/10/20(火) 15:58:46 ID:???
Javascriptと直接絡むか微妙ですが、HTMLのselectタグによる
プルダウンでプルダウンの項目一覧が開いた瞬間と閉じた瞬間
を取得できるイベントってありますでしょうか?
開くのをonMouseDown、閉じるのをonChangeでやっているのですが、
これだと値を変更しなかった場合に閉じるが取れなくて困っています。

代替案でもよいのでご教授いただけるとありがたいです。
227Name_Not_Found:2009/10/20(火) 16:14:03 ID:???
>>226
selectのonchangeってブラウザによってタイミングが違ったような気がするけど...
228Name_Not_Found:2009/10/20(火) 16:20:27 ID:???
>>227
言い忘れてましたが、IE8のみ対応の案件です。
なのでIE8限定の対処方法でもOKです。
229Name_Not_Found:2009/10/20(火) 16:30:58 ID:???
onmousedownも微妙なんだよね。
Alt+↓とかで開いたりすることもあるし。
onchangeだって開かなくても変更(選択してから上下等)すれば起こる。
そのイベントで「何をしたいか」をはっきりさせてくれると代替案が出しやすい。
230Name_Not_Found:2009/10/20(火) 17:47:12 ID:???
やりたい事は、プルダウンが開いた時にだけwidthを広げ、プルダウンが
閉じた時にwidthを元に戻すというものです。

プルダウンの項目の中に長い文字があって、元のwidthより広くなる場合、
IEだと広がった部分の幅が元のwidthと同じなので文字が全部表示され
ないんですよね……。(Firefoxとoperaでは問題ないのですが)
231Name_Not_Found:2009/10/20(火) 17:48:23 ID:???
ちとめんどくさいね。

開き方としてはつぎの二通り
mousedown => focus
focus => keydown

こいつらフラグなり駆使して監視してやればOK
それが自分でできないなら仕様を再検討するべき

じゃ頑張って
232Name_Not_Found:2009/10/20(火) 18:01:09 ID:3YpkaVyV
>>226
かなり無理があるやり方だけど。

var count = 0;
select.onfocus = function(){
 select.onmouseup = function(){
  count++;
  if(count % 2 == 0){
   // ここで、selectが閉じる(たぶん)。
   select.onmouseup = null;
   count = 0;
  }
 };
};


手づくりaddEventListenerで書いたのを、適当に書き直したから
間違いがあるかもしれない。
233232:2009/10/20(火) 18:02:51 ID:3YpkaVyV
リロードしないで書き込んだらかぶった…
すみません。
234Name_Not_Found:2009/10/20(火) 20:23:21 ID:???
>>231,232
ありがとうございます。アドバイスを参考に下記のようにしてうまくいきました!

var Count = 0
function SelectOnMouseUp(){
 if(Count == 0){
  document.form.pulldown.style.width = 50;
 }
}
function SelectOnMouseDown(){
 if(Count == 0){
  Count = 1;
  document.form.pulldown.style.width = 200;
 }
 else if(Count == 1){
  Count = 0;
 }
}
function SelectOnKeydown(){
 if(Count == 1){
  Count = 0;
  document.form.pulldown.style.width = 50;
 }
}
function SelectOnBlur(){
 document.form.pulldown.style.width = 50;
}

<select name="pulldown" style="width:50px" onmousedown="javascript:SelectOnMouseDown()" onmouseup="javascript:SelectOnMouseUp()" onkeydown="javascript:SelectOnKeydown()" onblur="javascript:SelectOnBlur()" >
235Name_Not_Found:2009/10/20(火) 21:38:21 ID:???
なんというjavascriptスキームの嵐…
236Name_Not_Found:2009/10/20(火) 21:41:30 ID:???
<html></body>
<div style="width:450;height:450px;border:1px solid blue;cursor:pointer;">
<canvas id="tes1" width=450 height=450 style="position:relative;background-color:rgb(200,0,0);"></canvas>
<canvas id="tes2" width=450 height=450 style="position:relative;bottom:450px;background-color:rgba(0,0,200,0.5);"></canvas>
</div><div style="border:1px solid black;">foot</div>
</body></html>

これfirefoxだとfoot含むした側に450pxらしきものがあったり
operaだとfootの上に450*2px分出てきてしまうけど
どうにかならんのかおしえて。
・一番上のdivのwidthを450*2以上にして、bottomのところをleft:450px;というのはなしで
・absoluteもなしで
237Name_Not_Found:2009/10/20(火) 21:42:18 ID:???
訂正
→left:-450px;
238Name_Not_Found:2009/10/20(火) 21:43:12 ID:???
次の方どうぞー
239Name_Not_Found:2009/10/20(火) 23:32:59 ID:???
>>236
1行目からそれかいっ!
240Name_Not_Found:2009/10/21(水) 00:02:44 ID:yjVdHlcU
Cドライブの中におけば実行されるのに
Gドライブの中に置いたファイルはJavaScriptが無効になって
<noscript>の中身が見える

何だよこれ死ねよ
241Name_Not_Found:2009/10/21(水) 00:03:59 ID:???
>>236
どうなって欲しいのかを書きなさいよ。
たぶんJavaScript関係ない。CSSの問題。
242Name_Not_Found:2009/10/21(水) 00:24:51 ID:???
Gドライブなんて恐くて開けません><
243Name_Not_Found:2009/10/21(水) 00:44:05 ID:???
<noscript>ならブラウザのセキュリティポリシーだろ
CSS関係ない
244Name_Not_Found:2009/10/21(水) 04:34:23 ID:???
>>239
今気づいた。そして爆笑したw
245Name_Not_Found:2009/10/21(水) 09:44:28 ID:pBH87KYD
Jscriptはjavascriptをカバーしていて独自の拡張性をもっているの
ならJscrriptはjavascriptの上を行っているのですよね。そんなす
ごいものならなぜみんな使わないのですか?
あと将来的に、javascriptがJscriptになる日は来ますか?勉強した
方がよいでしょうか。
246Name_Not_Found:2009/10/21(水) 10:27:02 ID:???
>>245
独自の拡張性を持っていることは優れているということに繋がらない
「IEのCSSが独自拡張してるから優れてますよね?」って言ってるのと同じ
なのでJavaScript勉強した方がいい
247Name_Not_Found:2009/10/21(水) 11:49:52 ID:???
たとえばLinuxはウインドウの描画をするためにX Windowというものを使っている
このX Windowは1987年に仕様が決定されて以来拡張や変更が行われずにほぼ完全な互換性を維持している

互換性って大切なんだぜ
248Name_Not_Found:2009/10/21(水) 17:41:07 ID:???
var isNewIE = typeof(document.documentElement.style.msInterpolationMode) != "undefined" ? true : false;

なんかもっとスマートなやり方があったような気がする。。。
249Name_Not_Found:2009/10/21(水) 18:20:18 ID:???
>>248
IEのバージョン判定?
なら条件コンパイルで@_jscript_versionを見りゃいいだろ
250Name_Not_Found:2009/10/21(水) 18:37:29 ID:???
var IE = false;
/*@cc_on IE = true;@*/
alert(IE);

251Name_Not_Found:2009/10/21(水) 18:39:38 ID:???
>>245
> javascriptがJscriptになる日は来ますか?

来ません
IE 専のサイト作るつもりならお好きにどうぞ

WSH で使えるから無駄にはならんと思うけど
Web 標準とはちょっと違う方向を向いてる訳です
252Name_Not_Found:2009/10/21(水) 18:39:51 ID:???
10年前のネット初心者時代ActiveXは脅威だった
まだダイヤルアップ時代だったからな
エロサイトは100%なんかしら仕掛けがしてあるし
アンチウイルスソフトは精度が低くてあてにならないし
うっかりインストール許可してしまうと国際電話やらQ2に勝手に接続するプログラムがよくあったものだ
JScriptとVBスクリプトは負の遺産
MSはNTTにとられた2万円を俺に返すべき
253Name_Not_Found:2009/10/21(水) 18:50:41 ID:???
>>252
(´;ω;`)ブワッ
254Name_Not_Found:2009/10/21(水) 19:10:33 ID:???
IEは負の遺産
255Name_Not_Found:2009/10/21(水) 19:11:34 ID:???
( ;∀;) イイハナシダナー
256Name_Not_Found:2009/10/21(水) 22:10:02 ID:???
>>252小学生の俺ダナー
257Name_Not_Found:2009/10/22(木) 00:50:08 ID:???
当時はスクリプト、ActiveX切るのが当たり前だったな…
258Name_Not_Found:2009/10/22(木) 01:24:41 ID:???
ダイヤルアップで切り忘れて大変なことになったなあ
259Name_Not_Found:2009/10/22(木) 01:52:09 ID:???
>>249
XP SP3以降はIE6でもJScript5.7なんだけど
ビルドバージョンを見るの?
260Name_Not_Found:2009/10/22(木) 03:16:32 ID:???
レンダリングエンジンの特徴を調べるのに
スクリプトエンジンのバージョンを見ても仕方ない
逆も同じ
いい加減isIEとかの無意味さに気付くべき
261Name_Not_Found:2009/10/22(木) 06:14:33 ID:nMh36VKS
オブジェクト?内で他の要素にアクセスするにはどうしたらいいでしょうか

var obj = {
 a : function () { alert('a'); },
 b : function () { obj.a(); } // ここで a の alert('a')を出したい
}

自分でもよくわからんことやってて混乱してます。
可能ならばお教えくださいm(__)m
262Name_Not_Found:2009/10/22(木) 06:44:34 ID:???
>>261
this.a()
263Name_Not_Found:2009/10/22(木) 07:10:08 ID:nMh36VKS
>>262
ありがとうございます!!
264Name_Not_Found:2009/10/22(木) 07:47:52 ID:qxFhJRXR
JavaScriptは、携帯ホームページでは使えないのでしょうか?
265Name_Not_Found:2009/10/22(木) 08:13:30 ID:???
839 名前:nobodyさん[] 投稿日:2009/10/22(木) 07:53:18 ID:wrpHBrml
Cookieは携帯ホームページでも使えるのでしょうか?

まとめてレスしてやる
ぐぐれば3秒でわかるようなことはググリなさい
266Name_Not_Found:2009/10/22(木) 13:19:45 ID:???
貴様、名のあるエコロジストだな!
267Name_Not_Found:2009/10/22(木) 18:31:41 ID:ZpZioJnp
a = new Array();
a[0] = 1;
a[1] = 2;
hoge(a);

function hoge(a) {
alert(a.length)←これは出る
for (i = 0; i < a.length; i++) {←なのに、ここのaに対してundefinedエラー
処理
}
}

これってなぜなんでしょうか?

268267:2009/10/22(木) 18:46:25 ID:ZpZioJnp
あ、alert(a.length)の時点でも出てました
でもちゃんと値も出るんですよね
alert(a[0]) や alert(a[1]) でもちゃんと出ます

値が入ってるのにundefinedってどういうことなのでしょうか?
269Name_Not_Found:2009/10/22(木) 18:59:45 ID:XbobHndb
>>268
何か書き間違えてない?当方問題なく動作するよ。
firebugの為に関数を前にしたけど。
270267:2009/10/22(木) 19:45:20 ID:???
仰る通りの凡ミスでした。。

実際のコードでは想定外の動きで2度関数が呼ばれており、
1度目では正式な配列値が渡り正常にlengthがalertされ、
2度目では値が渡らずundefinedで、
それらの一連の動きを1度の動作と思い込んでいました。

お手を煩わせて申し訳ありません。
271Name_Not_Found:2009/10/22(木) 22:40:48 ID:e856PHph
質問です

a.html?k=aaaのようなパラメータがついたページを
ポップアップで開かせているのですが、
a.html?k=aaaに貼られたリンクや直接アドレスが入力されて
開かれた場合はページを閉じるようにしたいのですが
そんな感じの方法があれば教えてください
ポップアップ以外ではa.html?k=aaaというページを
開かれたくないので「閉じる」じゃなくてもかまいません
なにかいい方法ないでしょうか?
272Name_Not_Found:2009/10/22(木) 23:03:31 ID:???
よく分かんないんだけどlocation.searchチェックかな
273Name_Not_Found:2009/10/22(木) 23:20:46 ID:???
それじゃできないんじゃない?
popupでも使えるのかはわからないけど、Refererかな?
あとはiframeの中に表示する部分の文字の色を白にしてoverlibのCSSで背景設定。iframeって背景透過できたよね?
いろいろ勘違いだったらスマソ
274Name_Not_Found:2009/10/22(木) 23:41:12 ID:2Opy8K0k
var hairetu = alert(1);
hairetu;

この2行のようにhairetuにアラートを入れて、hairetuを呼び出したらアラートが出るようにできませんか?
function使えばできますが変数でやれる方法ってありませんか?
275Name_Not_Found:2009/10/22(木) 23:47:48 ID:???
ファーストクラスオブジェクトだとそれできないんだわ
添え字無しの配列は[0]の値を返してほしいとかいうのに近い

どういう例がわかりやすいかがわからないけど一例として
var a = alert;
a(a); // alert(alert);
276Name_Not_Found:2009/10/23(金) 00:03:08 ID:???
>>274
>function使えばできますが変数でやれる方法ってありませんか?
functionも変数に入れられるよ。
277Name_Not_Found:2009/10/23(金) 09:12:33 ID:???
>>271
opener.document.URLが想定外のものだったり取得できなかったらエラー画面に遷移でどうかな?
閉じるのはブラウザによって警告が出るだろうからしないほうがいいかも
278Name_Not_Found:2009/10/23(金) 10:40:33 ID:YOGrBGKc
どこで質問していいか分からなかったので、ここで質問させてください。

"http"のページでJavaScriptにてログインフォームを生成していて、action先は"https"なフォームを作っているのですが、
http から https へデータを飛ばすのはセキュリティー上よくない事なのでしょうか?

分かっているのは、http -> http はダメで、https -> https はちゃんとデータが暗号化されている ということです。
スレ違いな質問でしたら誘導して頂けるとありがたいです。
よろしくお願いします!
279Name_Not_Found:2009/10/23(金) 11:17:25 ID:???
> http から https へデータを飛ばすのはセキュリティー上よくない事なのでしょうか?
大丈夫ちゃんとPOSTデータは暗号化されてるよ
ただあなたのようにセキュリティー上どうなの?って思った人から質問がきたり
自称Web関連技術に多少詳しい人が危険だと思い込んで苦情ぶつけてくるのを想定して
最初からhttpsにしておいたほうがいいんじゃない?
そんなに送る内容が重要でもないのならSSLを無理に使う必要もないし
使いたい人にはSSLモードに切り替えるリンクを張っておくみたいな感じでいいんじゃないかな
280Name_Not_Found:2009/10/23(金) 11:17:52 ID:???
スレチだけど誘導先知らんから軽く答えておくと、それやるとHTTPS使うメリットが半減する
フォーム自体の安全性が保証されないからたとえば送信先を書き換えられる可能性が生まれる
とはいえ安全性を削ってでも利便性を取るパターンはある
281Name_Not_Found:2009/10/23(金) 11:49:20 ID:YOGrBGKc
>>279-280
ありがとうございます!
物凄く参考になりました。
一先ず現状のものに、httpsとなるページのリンクを付け加えてみます。
282Name_Not_Found:2009/10/23(金) 11:54:28 ID:???
var obj = {};
があったときにこれが空のオブジェクトかどうかを調べる方法ってありませんっけ?

前に自分でどうやって判断していたのか忘れた。
for (var key in obj) {}
で、key舐めるしかないのでしたっけ?
typeof だとobjectが返ってきちゃうし。

jQuery使えば何かできるんだっけと思って探したけどそれっぽいのがない
283Name_Not_Found:2009/10/23(金) 12:12:25 ID:???
function isEmpty(o) {
 for (var k in o) return false;
 return true;
}
舐めるってほどでもないけど、for-in しかないと思う

そもそも Object の空チェック自体ニッチなんだよな
大抵はしなくてもなんとかなる

どうでもいいけどどっかの言語の _ あたりのノリで捨て変数に $ 使いそうになったw
284Name_Not_Found:2009/10/23(金) 12:58:02 ID:hMV8z3Nb
ちょっと聞きたいんですが、

携帯サイトにドリコムRSSを貼り付けて
自動更新のニュースを見れるようにしたいんだけど、
どうすればいいですかね?

やっぱそんなん無理ですかね
285Name_Not_Found:2009/10/23(金) 13:02:34 ID:hMV8z3Nb

すいません補足です。
このままだとPCからは見れるんですが、
携帯からだと表示されない状態です。
script type="text/javascript" src="rssのurlみたいなの" charset="AUTO"></script>
こんなんです。
286Name_Not_Found:2009/10/23(金) 14:18:50 ID:qt/MfDVw
ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/
ここはjavascript1.5相当の内容ですが
javascript1.6以降の最新の情報ってどこで閲覧できますでしょうか?
287Name_Not_Found:2009/10/23(金) 14:24:52 ID:???
>>285
使っている携帯電話はJavaScriptに対応しているのかね?
288Name_Not_Found:2009/10/23(金) 14:32:12 ID:???
MDC
289Name_Not_Found:2009/10/23(金) 15:04:48 ID:qt/MfDVw
Firefoxもそうですがoperaやieやsafariやchromeも視野に入れてるのですが
MDCってFirefox独自の仕様も入ってるそうですが参考にしても大丈夫ですかね?
290Name_Not_Found:2009/10/23(金) 15:12:25 ID:???
http://www.nicovideo.jp/watch/sm8524579
PHPのプログラミング教室はじめました
291Name_Not_Found:2009/10/23(金) 15:20:31 ID:???
>>286
俺もよく知らんがECMAScript3.1はIEとかFirefoxとかで使えるはず
http://www.ecmascript.org/docs.php
292Name_Not_Found:2009/10/23(金) 15:31:48 ID:hMV8z3Nb
>>287
調べてみたら対応してないっぽいです。
っていうか携帯自体が基本JavaScript無理みたいですね・・
日々進化する携帯に今だったら行けるんじゃと思った自分が甘かった。

htmlだけで>>285と同じ操作をするなんてのは不可能なんでしょうか?
無料ホームページサイトでお手軽にやりたいので、
出来ればPHPは避けて通りたいです。
293Name_Not_Found:2009/10/23(金) 15:37:26 ID:???
>>285
ドリコムRSSがどんなものか分からんが、
Flash Liteを使えばRSSリーダー作れるんじゃないかな
JavaScriptは無理
294Name_Not_Found:2009/10/23(金) 15:51:32 ID:hMV8z3Nb
>>293
情報サンクスです。やっぱ無理ですかぁ
どっちかというと携帯ホムペのヘッドラインニュースみたいのを
作りたいんですが、Flash Liteでいけるんですかね?

モバイルスペースとかでやりたいんで、
それこそhtmlとかがいいんですが・・・
295Name_Not_Found:2009/10/23(金) 15:57:14 ID:???
>>294
htmlでも出来る
新しいニュースが入る度に手動更新すればいいだけ

FlashLiteは古い機種は対応してないから注意
それが嫌ならPHPやRubyとかを使うべし
というわけでWebProg版へGo
296Name_Not_Found:2009/10/23(金) 16:16:11 ID:2hA2MvXp
ttp://www.ecmascript.org/download.php
このページでダウンロードできるes4-pre-release.M2.windows-x86.zipってどうつかうのでしょうか?
297Name_Not_Found:2009/10/23(金) 17:14:45 ID:hMV8z3Nb
>>295 なるほど手動更新の手がありましたね・・・
298Name_Not_Found:2009/10/23(金) 17:25:58 ID:FEQ4zD06
javascriptの勉強で以下のサイトを参考にしています
ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-9_Date_Objects.html#section-15.9.1.12

MakeDayの使い方で質問です
下のようにコードを書いたのですがアラートが表示されません
MakeDayとはどのように使うのでしょうか?

var md = MakeDay(2009, 12, 12);
alert(md);
299Name_Not_Found:2009/10/23(金) 18:29:41 ID:b0zmPGHk
>>293
クロスドm
300Name_Not_Found:2009/10/23(金) 18:48:21 ID:???
301Name_Not_Found:2009/10/23(金) 19:45:27 ID:nIzPO7WG
ただ今、学校の課題でhtml/jspを使用した簡単なショッピングサイトを作っております。
その中でjavascriptでポップアップエラーを出したいのですが、上手くいきません
<input type=\"radio\" name= \"sdate\" value=" + nb + " />
----中略---
<script formcheck = "javascript">
<!--
function formcheck(form){
if(form.sdate.value == null){
alert("商品が選択されていません。");
return false;
}
return true;
}
//-->
</script>
sdateにチェックが入っていなければアラームを作動させたいんですが、
チェックが入っていてもアラームが作動してしまいます。
初歩的な質問ですみません。よろしくお願いします。
一応ソースも貼り付けておきます。
http://kissho.xii.jp/1/src/1jyou94948.jsp
302Name_Not_Found:2009/10/23(金) 20:10:19 ID:???
>>301
ラジオボタンとチェックボックスを間違えてるってことはない?
303Name_Not_Found:2009/10/23(金) 20:12:07 ID:???
>>300
それってmozilla独自仕様なんじゃないの?
javascript1,8は4thをサポートしてるってだけでさ
304Name_Not_Found:2009/10/23(金) 20:25:59 ID:???
どこを読んだら独自仕様になるんだ
独自仕様ならプリフィックスが付くだろ
305Name_Not_Found:2009/10/23(金) 20:55:36 ID:???
>>301
ラジオボタンまたはチェックボックスなら、要素.checkedで判断しないか?

それに、ソース見た感じボタン複数も想定できるから全ボタンに対してチェックが必要
306Name_Not_Found:2009/10/23(金) 21:24:05 ID:???
ECMA 4Editionは草案なのに
307Name_Not_Found:2009/10/23(金) 22:03:28 ID:???
NP完全問題を解くため探索領域を分割したいのですが、JavaScriptとPHPでタスクを分担して別々に同時処理することは可能ですか?
308Name_Not_Found:2009/10/23(金) 22:11:22 ID:b0zmPGHk
>>307
>JavaScriptとPHPでタスクを分担して別々に同時処理

まあ、別のコンピュータでやることだからねえ。
同期したいところでAjaxでもすれば。
309Name_Not_Found:2009/10/23(金) 22:16:10 ID:nIzPO7WG
>>302
チェックボックスで購入画面を作ろうと思ったのですが、
処理が面倒になるのでラジオボタンで妥協しました。
>>305
商品IDであるnbをif文で判定するのでしょうか?
>ボタン複数も判定
これはラジオボタンなら考えないでいいですよね
310Name_Not_Found:2009/10/23(金) 22:16:30 ID:q07ioA4B
if (cipher_char == from_char) {
result = result + to_char;
x++;
} else
result = result + clear_char;

これってエラーでないんですけどどこか間違ってますか?
311Name_Not_Found:2009/10/23(金) 22:45:42 ID:???
>>309
function formcheck(form){
if( Array.prototype.slice.call( form.querySelectorAll('input[name="sdate"]') ).some(function(e){return e.checked}) ){
alert("商品が選択されていません。");
return false;
}
return true;
}
312Name_Not_Found:2009/10/23(金) 22:58:48 ID:nIzPO7WG
>>311
うーん・・・出来ませんでした。
ありがとうございます。
まだ答えていただけるようならDBもお使いください。
upしておきます。
http://kissho.xii.jp/1/src/1jyou94962.mdb
313Name_Not_Found:2009/10/23(金) 23:05:57 ID:???
if( form.querySelector('input[name="sdate"]:checked') )
314Name_Not_Found:2009/10/23(金) 23:11:17 ID:nIzPO7WG
>>313
出来ませんでした。
本当にありがとうございます。
315Name_Not_Found:2009/10/23(金) 23:21:29 ID:???
ブラウザがSelectors APIサポートしてないと当然できないよ
316Name_Not_Found:2009/10/23(金) 23:43:03 ID:nIzPO7WG
Selectors API・・・
習っていない物を使ってしまったら先生にどんな顔をされるか分からないので
ポップアップエラーはあきらめることにしました。
本当にありがとうございました。
317Name_Not_Found:2009/10/23(金) 23:54:22 ID:???
普通にこんなんでいいんじゃないの?

if(!form.elements["sdate"].checked){

radio ボタンなら「いずれにもチェックされていない場合」に
多少書き換える必要があると思うけど
318Name_Not_Found:2009/10/23(金) 23:55:09 ID:???
習ってないから使ってはいけないのはプログラマーとして失格
319Name_Not_Found:2009/10/24(土) 00:05:35 ID:???
先生に遠慮なんていらんよ
義務教育中ならまだしもまわりと足並みをそろえることはない
320Name_Not_Found:2009/10/24(土) 00:07:11 ID:???
本人が理解もしてない洗練された(?)コードを提出するのは問題じゃないか
321Name_Not_Found:2009/10/24(土) 00:55:10 ID:???
>>317
>radio ボタンなら「いずれにもチェックされていない場合」に
そういうことでしたか・・・
調べてみます
>>318,>>319,>>320
>習ってないから使ってはいけないのはプログラマーとして失格
確かにそうですね。調べてみて、自分に使えこなせそうなら使ってみます。
色々ありがとうございました。
322Name_Not_Found:2009/10/24(土) 01:58:53 ID:???
>>286
JavaScript1.5とか1.6とかってバージョニングがそもそもFirefox独自(正確にはそのJavaScriptエンジン用)のもの
だから>>303は概ね正しい。
クロスブラウザも考えて真面目にJavaScript勉強するならオライリーのJavaScript第5版くらいしかまともな教材ないよ

>>291,>>306
ECMAScript3.1, 4… それらはもう消えました。ECMAScript5にご期待ください。
323Name_Not_Found:2009/10/24(土) 02:34:19 ID:???
querySelector(All)はIE8、Firefox3.5、Opera10、Chrome1、Safari3.2以上かな(Safariは4かも確認できん…)
Array.prototype.someはFirefox1.5、Opera9.5、Chrome1、Safari3以上でIEは対応してない
>>321
ここに書かれたコードを参考にしちゃダメだよ。
function isSdateChecked(){
var sdates=document.getElementsByName('sdate');
for (var i=0;i < sdates.length; i++){
if(sdates[i].checked){
return true;
}
return false;
}
}
324Name_Not_Found:2009/10/24(土) 03:27:19 ID:???
それで出てきたのがよりによってgetElementsByNameなのはギャグか
325Name_Not_Found:2009/10/24(土) 04:03:34 ID:???
確かに参考にしてはいけないコードだ
326Name_Not_Found:2009/10/24(土) 04:47:14 ID:???
まさかHTML4しかも互換モードでのgetElementsByNameにケチつけられるとは…

てか、>>301 が根本的に駄目なのは
<script formcheck = "javascript">
だな。なんじゃそりゃ。
<script type="text/javascript">
か、面倒なら <script>で良いよ
327Name_Not_Found:2009/10/24(土) 05:03:10 ID:???
HTML4互換なら尚更、name="sdate"を持つのがフォーム内、
しかもそのフォームが文書内で一つだけという思い込みはマズい
かつHTML5では全てのHTMLElementがcheckedを持つから尚マズい
役立たず故にDOM2で意味論変更すらされそうになったgetElementsByNameを
使いたがる理由がよく分からん
328Name_Not_Found:2009/10/24(土) 05:23:32 ID:???
>>327
301のjsp見ろよ。なに勝手に一般論の話してんの?
なんだったらサーバーをハックしてjsp書き換えて適切にid振ってくれ。
そうすりゃgetElementsByNameなんて使わなくて済むからさ。
329Name_Not_Found:2009/10/24(土) 05:45:35 ID:???
O'ReillyのJavaScript第3版を持っているのですが第5版は購入する価値がありますか?
解説がJavaScript1.2と古いので新しいバージョンのリファレンス本が欲しいのです。

ネットで調べた結果ではJavaScriptマスターブックがよさそうな感じですが、
最近のJavaScriptが理解できるおすすめの本があれば教えてください。

他にはJavaScript ビジュアル・リファレンス第2版(2006年2月発行)を所有しています。
330Name_Not_Found:2009/10/24(土) 06:33:20 ID:???
>>328
見苦しい
331Name_Not_Found:2009/10/24(土) 07:14:02 ID:???
そうですか、私の勉強不足でしたか…

それで、どう書くとより良いのでしょうか?
332Name_Not_Found:2009/10/24(土) 07:52:21 ID:???
googleのキャッシュを見た際に、元のページを読み込ませる方法を教えてください
333Name_Not_Found:2009/10/24(土) 08:01:36 ID:???
リファラを見てGoogleのキャッシュだったら飛ばすようなスクリプトを仕込んでおく
しかしGoogleのキャッシュでありGoogle側のコントロールにあるので
Googleのキャッシュがそういったスクリプトを除外して表示している場合は不可能

しかし重要なこととして頭に入れておくべきことは
Googleのキャッシュを見てるのに勝手に飛ばされるのは
見てる側の意図ではないのでやめたほうがいい
キャッシュ側にも手動ではあるが元のページへのリンクを張っているわけだしそれでいいのでは?
334Name_Not_Found:2009/10/24(土) 08:01:52 ID:???
もちろんjavascriptで
335Name_Not_Found:2009/10/24(土) 08:09:53 ID:???
JavaScriptでもリファラはとれるでしょ
document.referrer
336Name_Not_Found:2009/10/24(土) 08:15:52 ID:???
リファラ見てどうする。
キャッシュならlocationだろ
337Name_Not_Found:2009/10/24(土) 08:17:14 ID:???
だからキャッシュと判断するためにリファラが必要といったんだが
338337:2009/10/24(土) 08:20:38 ID:???
あ、すまん
冷静に考えてみたらキャッシュから見るのも普通に見るのも
Googleの検索からくるわけだからリファラは同じだったな
上のほうのはなかったことにしてくれ
339Name_Not_Found:2009/10/24(土) 08:23:07 ID:???
Googleから来たなら、オリジナルのページもキャッシュも、リファラはgoogle/searchにしかならんぞ…
キャッシュの場合、locationがIPになるから(もちろん、必ずしもGoogleとは限らないが)すぐわかる
340Name_Not_Found:2009/10/24(土) 08:25:00 ID:???
>>337
俺もお前もドンマイ
341Name_Not_Found:2009/10/24(土) 08:32:52 ID:???
で、getElementsByNameを使わない実装は誰かやってくれないのかな。
せめてこれ使うんだぜってヒントだけでもほしいのだけど。
342Name_Not_Found:2009/10/24(土) 08:58:49 ID:???
function formcheck(form) {
 var n = form.sdate.length;
 for (var i = 0; i < n; i++) {
  if (form.sdate[i].checked) {
   return true;
  }
 }
 alert("商品が選択されていません。");
 return false;
}

formオブジェクト取るならこれでよろし。
343332:2009/10/24(土) 09:26:19 ID:???
locationが自分のところでなかったら、自分のところに飛ばすようにすればよいのでしょうか?
344Name_Not_Found:2009/10/24(土) 09:29:19 ID:???
朝からカオスなスレだな
345Name_Not_Found:2009/10/24(土) 10:01:20 ID:???
>>321
名乗るほどのモンじゃねえから礼はいいってことよ
346Name_Not_Found:2009/10/24(土) 10:46:04 ID:???
きもいのが沸いてるな
347Name_Not_Found:2009/10/24(土) 10:56:49 ID:???
>>329
AjaxとかDOMの解説が増えてるから購入する価値はあるね
348Name_Not_Found:2009/10/24(土) 12:05:50 ID:???
>>329
「JavaScriptマスターブック」からJSを始めたけど十分な内容だったよ。
マスターブックが終わったら、オライリーの「Javascript&DHTMLクックブック」
で実践的なコードを学ぶといい
追加でオライリーのクイックリファレンスがあれば完璧。
349Name_Not_Found:2009/10/24(土) 12:15:19 ID:???
>>308
回答ありがとうございます。Ajaxを勉強してみます
350Name_Not_Found:2009/10/24(土) 13:18:15 ID:???
>>347-348
「JavaScriptマスターブック」良さそうですね。買ってみます。

第5版は解説が増えているということですので、Javascript&DHTMLクックブック等と
比較して、マスターブックが物足りなくなったら再度購入を検討することにしました。

ありがとうございました。
351Name_Not_Found:2009/10/24(土) 15:53:24 ID:???
>>342
それだとラジオボタン1個の時に対応できないよ
352Name_Not_Found:2009/10/24(土) 23:48:11 ID:DwHdb6bx
質問です。

モーダルダイアログを表示させる、showModalDialogという
メソッドがありますけど、これって正式なJavaScriptでは
ないのでしょうか?
(オライリーのJavaScript 1.5版に記載がないもので。)

353Name_Not_Found:2009/10/24(土) 23:53:00 ID:???
window.showModalDialogはDOMの領分
354Name_Not_Found:2009/10/24(土) 23:53:32 ID:F6j7TLub
DOMがさっぱりわかりません
w3cのDOM level2にはlevel1の内容も含まれているのでしょうか?
355Name_Not_Found:2009/10/25(日) 01:16:08 ID:???
DOMがわからないってのはHTMLがわかってないということ
356Name_Not_Found:2009/10/25(日) 02:54:56 ID:???
phpの中にjavascriptを使って、ラジオボタンで項目を選んだ後に
違うボタンで指定されたサイトに飛ばすようにしたいですがphpに入れたら動いてくれません。
これだけだと動くのですがphpに入れると動かなくなるのはなぜでしょうか?

<html>
<head>
<script type="text/javascript" language="JavaScript">
<!--
function Check() {
var tolink = document.url
for(i=0 ; i<=tolink.list.length -1 ; i++){
if (tolink.list[i].checked) {
var n = tolink.list[i].value;
document.location.href=n;
}
}
}
//-->
</script>
</head>

<body>
<form name="url">
<input type="radio" name="list" value="http://www.yahoo.co.jp/">テスト表示1
<input type="radio" name="list" value="http://www.google.co.jp/">テスト表示2
<input type="button" name="ok" value="OK" onclick="Check()">
</form>
</body>
</html>
357Name_Not_Found:2009/10/25(日) 03:03:43 ID:???
ごめんなさい・・・
解決しました・・・・
358354:2009/10/25(日) 11:47:18 ID:???
>>355さんDOM2はDOM1に含まれるのでしょうか?
ちなみにHTMLとXHTMLについてはw3cのDTDを理解してます
359Name_Not_Found:2009/10/25(日) 11:48:13 ID:???
訂正
>>355さんDOM2はDOM1に含まれるのでしょうか?

>>355さんDOM2はDOM1の内容も含まれるのでしょうか?
css2.1にcss1の内容が含まれているようなものと考えて大丈夫ですか?
360Name_Not_Found:2009/10/25(日) 12:00:25 ID:???
仕様見れ

ttp://www.w3.org/TR/DOM-Level-2-Core/
>The Document Object Model Level 2 Core builds on the Document Object Model Level 1 Core.
361Name_Not_Found:2009/10/25(日) 14:27:38 ID:???
お前の優しさに全米が泣いた
362Name_Not_Found:2009/10/25(日) 15:27:02 ID:???
>>355の言うDOMとHTMLの関係を誰か解説頼む
363Name_Not_Found:2009/10/25(日) 15:54:05 ID:???
HTMLがわからないってのはDOMがわかってないということ(ただしDOMがわからなくてもHTMLを理解することはできる)
の間違いじゃないかな
364Name_Not_Found:2009/10/25(日) 16:36:19 ID:???
何故?
365Name_Not_Found:2009/10/25(日) 22:12:37 ID:???
DOMの理解にはHTMLはわかってなくてもXMLがわかってりゃいい
366Name_Not_Found:2009/10/25(日) 23:18:40 ID:???
誰が開発したものなのかとか
最初に、かっこよくかつきちんと宣言したいんですけど
何か良いテンプレートみたいなものありませんでしょうか。
367Name_Not_Found:2009/10/25(日) 23:24:53 ID:???
実用性重視でJsDoc
368Name_Not_Found:2009/10/27(火) 00:53:58 ID:???
string = "abacbbdc";これをこの文字列のまま正規表現など
で(ループなしで)string = "abcd";にすることってできますか?
369Name_Not_Found:2009/10/27(火) 01:34:38 ID:???
エスパーさせんなよ、例は大事だけど説明もしろよ

それで、これでいいか?実質的にループしてっけど
var string = "abacbbdc";
var flag = {};
string = string.replace(/./g, function(s) { if (flag[s]) return ""; flag[s] = true; return s; });
370Name_Not_Found:2009/10/27(火) 09:16:47 ID:???
>>369
すごいな。>>368見てもどういうルールかわかんなかったわ
単純にabcdって順番で出したいのかと思った
371Name_Not_Found:2009/10/27(火) 10:02:23 ID:???
俺もソートしてから重複する文字を削除・・・を考えた。
372Name_Not_Found:2009/10/27(火) 10:22:14 ID:???
>>370
俺は1,2,4,7,11,16...番目を取得するのかと思ったけど
間が一つずつ増えるのね
373Name_Not_Found:2009/10/27(火) 10:39:31 ID:???
>>372
??(゚Д゚;)三(;゚Д゚)???
どうやったらそういう風になるのか、すまんが教えてくれないか
374Name_Not_Found:2009/10/27(火) 10:40:44 ID:???
あ、ごめん事故解決した。どんがらがっしゃん的な意味で。
375Name_Not_Found:2009/10/27(火) 11:44:25 ID:???
>>372
数学ガールの数列の話思い出したわw
少ない数列で階差数列だと思い込むってなかなかないw
376Name_Not_Found:2009/10/27(火) 11:47:03 ID:???
どんがらがっしゃんついでにおらが考えたのはこういう方法。

var str = "abacbbdc";
var arr = new Array();
str.replace(/./g, function(s){arr.push(s)});
str = arr.sort().join(''),replace(/(.)(.*?)\1+/g, "$1$2");

結局どれが正解なのかがわからんので>>368は早く出頭するように。
377Name_Not_Found:2009/10/27(火) 11:49:46 ID:???
なんだよそのカンマなんだよ。俺のバカバカ
×,replace
○.replace
あと他に間違ってないだろな・・・
378372:2009/10/27(火) 11:49:57 ID:???
>>375
数学ガールが何物なのかは知らないけど、
数列でとりあえず階差をとってみるってのは常套手段だぜ
379Name_Not_Found:2009/10/27(火) 11:54:39 ID:???
>>378
文字列を見る→とりあえず数列→とりあえず階差
っていう発想がおらには無かったわ・・・
380Name_Not_Found:2009/10/27(火) 11:57:06 ID:???
>>375
奇遇だな、俺も思い出した

文字列を数列と見なすあたりはよい着眼点してる

>>376
>var arr = new Array();
>str.replace(/./g, function(s){arr.push(s)});
var arr = str.split("");

ようするにjoin("")の逆

正規表現も意図がよくわからん、これではだめなのか?
arr.sort().join('').replace(/(.)\1*/g, "$1");
381Name_Not_Found:2009/10/27(火) 12:03:11 ID:???
>>380
なんでだっけか忘れたけど、うまくいかないことがあって確かそんな風に置換してたっけかなーとうる覚えで書いたのでようわからん・・・
382Name_Not_Found:2009/10/27(火) 12:13:27 ID:OFmzOs7u
全然話についていけない件について。この文字列は
大文字とスペース交えて書くと

AB a C bb D ccc E dddd F eeeee ....

だってこと?
383372:2009/10/27(火) 13:07:41 ID:???
>>382
>>368が正解を言ってくれないとなんとも。
string = string.replace(/^(.)(.).*(.)(.)$/, '$1$2$4$3');
かもしれないじゃん?
384Name_Not_Found:2009/10/27(火) 13:16:24 ID:???
単に質問じゃないのか?
385Name_Not_Found:2009/10/27(火) 13:22:09 ID:???
>>384
>string = "abacbbdc";これをこの文字列のまま正規表現など
>で(ループなしで)string = "abcd";にすること
だけだと、色んなアプローチ方法がありすぎる。
もっと具体的に何がしたいのかを示してくれないとこのようにエスパーレスがつかざるをえない。
386Name_Not_Found:2009/10/27(火) 13:29:15 ID:???
おまえら本人は質問逃げしてるのに優しいね
それともただのバカなのか?
こんなやつのために議論してやるなんて時間の無駄だぞ
387Name_Not_Found:2009/10/27(火) 13:33:57 ID:???
1日も経ってないのに逃げたと判断するのもどうかと思うがこれはこれで楽しいぞ?w
388Name_Not_Found:2009/10/27(火) 13:38:47 ID:???
現時点で既に一つの問いに対して4通りの解が出てるしな。
ある意味参考になる
389Name_Not_Found:2009/10/27(火) 13:43:11 ID:???
>>368
>string = "abacbbdc";これをこの文字列のまま正規表現など
>で(ループなしで)string = "abcd";にすることってできますか?

var string = "abacbbdc";

string = "abcd";

これでよし
390Name_Not_Found:2009/10/27(火) 13:53:40 ID:???
>>389
おれも初め全く同じ答え出して書き込もうとしたw
391Name_Not_Found:2009/10/27(火) 14:07:01 ID:???
>>389
よしじゃねーよwwww
392Name_Not_Found:2009/10/27(火) 14:08:03 ID:???
要件は満たしている。何も問題はないw
393372:2009/10/27(火) 15:03:12 ID:???
>>372のコード。複雑になったうえにループありw
string = (function (f, string) {
var len = string.length, s = '', n = 1, x = f(n);
while (x < len) {
s += string.charAt(x);
x = f(++n);
}
return s;
})(function (n) {
return n * (n - 1) / 2;
}, string);

やっぱり>>380かなあ
394372:2009/10/27(火) 15:18:56 ID:???
ごめん、こっちのほうが簡単。でもループは消えないw
string = (function (string) {
var len = string.length, s = '', n = 1, a = 0;
while (a < len) {
s += string.charAt(a);
a += n++;
}
return s;
})(string);
395Name_Not_Found:2009/10/27(火) 15:39:36 ID:???
/* ここまでのまとめ */
var string = "abacbbdc";

// @左から順に
var flag = {};
string = string.replace(/./g, function(s) { if (flag[s]) return ""; flag[s] = true; return s; });

// A階差数列
string = (function (string) {
var len = string.length, s = '', n = 1, a = 0;
while (a < len) {
s += string.charAt(a);
a += n++;
}
return s;
})(string);

// Bソート
var arr = new Array();
var arr = string.split('');
arr.sort().join('').replace(/(.)\1*/g, "$1");

// C切り出し
string = string.replace(/^(.)(.).*(.)(.)$/, '$1$2$4$3');

// Dお前の願いを一つだけ叶えてやろう
string = "abcd";
396Name_Not_Found:2009/10/27(火) 15:42:25 ID:???
B間違い。ごめんorz
/* var arr = new Array(); */
397Name_Not_Found:2009/10/27(火) 18:57:44 ID:???
str.join("") の逆ってstr.split("") じゃだめなの?
398Name_Not_Found:2009/10/27(火) 19:36:06 ID:???
>>395のネーミングセンスに嫉妬

>>397
元レスは>>380か?str.joinといい節穴もいいところだな

399368:2009/10/27(火) 22:04:22 ID:???
みなさん、こんばんは。>>368で質問した者です。少し前に帰宅した所
です。開いてみてびっくり!みなさん、どうもありがとうございます。
>>369さん、舌足らずな質問ですいませんでした。趣旨は、文字列に重複
したものがあったとき、それを排除したかったんです。配列に格納して
要素マッチをするとか、charAt()で回して同じことをするのは、誰でも
まず考えると思いますが、文字列のままスマートにできないかな、と思い
ました。ソートの必要までは考えていませんでした。

いろいろ自分でやってみたのですが、寝る時間までやってもでき
ず、ここでお伺いしたわけです。ありがとうございます。
>>369さん、流石です。勉強になりました。そのほかの方々もありがとう
ございました。>>395さんには、まとめまでして頂いて、とても分かりやす
いです。とりあえず、少々のお詫びとお礼まで。
長々とすいません。では。
400Name_Not_Found:2009/10/28(水) 13:26:02 ID:???
短いのを書いてみた。最初の出現を判定しつつ記録するのって短くしづらい。
var str = "abacbbdc";
var map = {};
str=str.replace(/./g,function(s){return(map[s]||(map[s]=0)||map[s]++)?'':s;})
401Name_Not_Found:2009/10/28(水) 14:49:37 ID:???
>>400
なるほど。勉強になったわ
402Name_Not_Found:2009/10/28(水) 14:56:38 ID:???
str=str.replace(/./g,function(s){return(map[s]||(map[s]=0)||map[s]++)?'':s;})
str=str.replace(/./g,function(s){return(map[s]||void(map[s]=1))?'':s;});

ちょっと縮まった、てかなんでgolfにw
403Name_Not_Found:2009/10/28(水) 15:10:50 ID:???
<script>
function Rec(w,h){
this.width = w;
this.height = h;
}
function RRec(x,y,w,h){
Rec.call(this,w,h);
this.x = x;
this.y = y;
}
RRec(1,2,3,4);
document.write(RRec.width);
</script>

RecのプロパティをRRecに継承したいんだけど、
callメソッドってこういう使い方じゃダメなの?
実行結果はundefinedだった


404Name_Not_Found:2009/10/28(水) 15:17:34 ID:???
function RRec(x,y,w,h){
alert(this);
}
RRec(1,2,3,4);

function RRec(x,y,w,h){
Rec.call(this,w,h);
this.x = x;
this.y = y;
}
var rr = new RRec(1,2,3,4);
document.write(rr.width);
405Name_Not_Found:2009/10/28(水) 15:35:53 ID:???
>>404
オブジェクト作るの忘れてたわ
ありがとう
406Name_Not_Found:2009/10/28(水) 15:43:48 ID:???
>>402
をを! voidか、なるほどこういう時に使うんだねー。
str=str.replace(/./g,function(s){return(map[s]||(map[s]=0)||map[s]++)?'':s;})
str=str.replace(/./g,function(s){return(map[s]||void(map[s]=1))?'':s;});
str=str.replace(/./g,function(s){return(map[s]||!(map[s]=1))?'':s;})
407Name_Not_Found:2009/10/28(水) 15:47:06 ID:???
ああ否定演算子のほうがよっぽど素直だw
408Name_Not_Found:2009/10/28(水) 15:57:55 ID:???
str=str.replace(/./g,function(s){return(!map[s]&&(map[s]=1))?s:'';})
409Name_Not_Found:2009/10/28(水) 16:14:51 ID:???
極限まで短くしてって質問じゃないだろw
トリッキーなコードでわけがわからん
410Name_Not_Found:2009/10/28(水) 17:09:29 ID:???
arr=['a', 'b', 'c', 'd', 'e', 'f'];
とあるときにarr[5]='g'というように格納すると同時?というか
arrの中を左にずらしてarr=['b', 'c', d', 'e', 'f', 'g'];
という風にしたいので、arr[0]=arr[1],arr[1]=arr[2]・・・・arr[5]='g'
のような感じにしてみました。ですが効率が悪い気がします。
なにかよい方法ありませんでしょうか
よろしくお願いします。
411Name_Not_Found:2009/10/28(水) 17:13:19 ID:???
とおもったらshift、pushというものがありました
お騒がせしました
412Name_Not_Found:2009/10/28(水) 17:16:03 ID:???
質問です
一番手前の位置にページ全体を覆うように透明のオブジェクトを配置し、
なおかつマウスでのリンクやフォームの操作に支障が無いようにする事はJavaScriptで可能ですか?

何て説明したらいいのか分かりませんが、オブジェクトの非オブジェクト化というか
イベントを受け取らず止めもしない、単なる視覚効果として扱いたいのです。
上手く説明できなくてすいません。
413Name_Not_Found:2009/10/28(水) 18:00:31 ID:???
いや、上手く説明してくれよ。具体的に何したいんだかさっぱりわからん。
414Name_Not_Found:2009/10/28(水) 18:34:02 ID:???
>>412
それだけだとページ全体を花柄の枠とかで飾りたいだけのようにも見て取れる
もっとちゃんと説明汁
415Name_Not_Found:2009/10/28(水) 18:40:45 ID:Ea84aIqv
ライトボックスの黒カーテンみたいなものを置きつつ、
下層のオブジェクトは普通にマウスで触れるようにしたい、
ということかと。
416Name_Not_Found:2009/10/28(水) 20:19:37 ID:???
視覚的に手前(z-index最大)、イベント的に奥(z-index最小)のエレメントがほしいんだろ
グラフィックソフトなんかでいうと手前のレイヤーが見えた状態で奥のレイヤーを操作したいと

意味はわかるけど答えはしらん
フォーム全体に半透明の一枚絵を描きたいとかならFlashでやってくれ

そもそも一部のオブジェクト(フォーム部品やFlash等)はHTMLよりも手前に描画されるじゃなかった?
最近のブラウザでは解決してるんだっけ?
417Name_Not_Found:2009/10/28(水) 20:27:50 ID:Ea84aIqv
>>416
ライトボックス的なものとか、コンテンツにオーバレイして云々する
アクティブなバナーやブログパーツ的なものとかでは、割と良く使いますよ、
全画面を覆うブロック。

フォームの部品やフラについては、おっしゃる通りかと。
MSIEのselectとMacFxの張付動画(swfじゃなくて)はdisplay:hiddenするように
しています。
418Name_Not_Found:2009/10/28(水) 20:58:20 ID:???
>>417
そりゃ視覚もイベントも手前だろ
419Name_Not_Found:2009/10/28(水) 21:16:09 ID:???
>>413
例えば、αチャンネル付きの薄い霧の画像をページ全体を覆うdivのbackgroundに指定して
スクロールさせたり透明度を微妙に変化させて雰囲気を出したり、
ふわっとHTML上のランダムな場所に薄くメッセージを表示させてすぐに消すような演出をしたり、
大きな桜の花びらや雪のオブジェクトを降らせたり、マウスストーカー系のスクリプトのときに、
オブジェクトがリンクやボタンに被っても操作性に影響が無いようにする方法があれば知りたかったのです。

>>414
そのようなことです。

>>415,416
理解していただいてありがとうございます。
現状はJavaScriptでは不可能と言うことでよろしいのでしょうか?
Flashは分かりませんが、Flashを学び、サイト全体を作り直す方が簡単なのでしょうか?
420Name_Not_Found:2009/10/28(水) 21:21:11 ID:???
>>419
Flashで作り直すほうが、というかjavascriptじゃ無理
421Name_Not_Found:2009/10/28(水) 21:22:09 ID:???
javascriptで出来ないわけでは無いが複雑なコードになるだろうactionscriptでやれば楽
422Name_Not_Found:2009/10/28(水) 21:22:17 ID:???
jsだけでもできそうがけどなかなかハードな仕様だな見た目つくりにしては。
flashの方がいいんじゃね?action scriptとかどっかに落ちてそうだし。
423Name_Not_Found:2009/10/28(水) 21:23:18 ID:???
単に色フィルタかけたいだけならオブジェクト全部色変化させて一見スクリーンかかってる様に
見せる手はあるけどな。グラデーションだとキツいが。
424Name_Not_Found:2009/10/28(水) 21:35:48 ID:???
jQueryでも限度がある。
425Name_Not_Found:2009/10/28(水) 21:37:53 ID:???
全部canvasでやれば自由自在に・・
426Name_Not_Found:2009/10/28(水) 22:36:12 ID:???
XHTML+SVG
427Name_Not_Found:2009/10/28(水) 23:19:04 ID:???
それはひどい
428Name_Not_Found:2009/10/28(水) 23:42:26 ID:???
マイクロソフトがHTML5仕様からCanvas要素を外すように提案、しかし一刀両断に... − Publickey
ttp://www.publickey.jp/blog/09/html5canvas.html
429Name_Not_Found:2009/10/28(水) 23:44:19 ID:???
配列の中を全部削除したいのですが、
arr.length分forで、popもしくはshiftする
以外になにかよい手段があれば教えてください
430Name_Not_Found:2009/10/28(水) 23:45:52 ID:???
Canvasを筆頭に他要素が力つけて
flashいらねってなったら、そりゃいろいろと困るもんな。
431Name_Not_Found:2009/10/28(水) 23:52:36 ID:???
>>429
arr.length = 0;
432Name_Not_Found:2009/10/29(木) 00:09:30 ID:???
>>431
ありがとうございました
433Name_Not_Found:2009/10/29(木) 00:13:10 ID:???
>>429
arr = [];
434Name_Not_Found:2009/10/29(木) 01:03:04 ID:???
canvasのgetImageDataで連続でimagedata取得してみて。
メモリがすごいことになるんだが
435Name_Not_Found:2009/10/29(木) 03:19:14 ID:???
そうですか
436Name_Not_Found:2009/10/30(金) 02:42:46 ID:???
a=['x', 'y', [['c','d'], ['e','f']] ];
のときに、a[2]の配列の最後に['g','h']を格納しようと、
a[2].push(['g','h']);
としたのですが無理でした。どうすればよいでしょうかよろしくおねがいします。
437Name_Not_Found:2009/10/30(金) 02:55:14 ID:???
すいません勘違いでした、
できました。
438Name_Not_Found:2009/10/30(金) 03:33:59 ID:???
また質問させていただきます
配列の中に同じ値があるかを検索したいのですが、
a=[['a','b'], ['c','d'], ['e','f']];
とあるときに
a.indexOf(['c','d']);
で一致したり、
a.indexOf(['g','h']);
で一致しなかったり、というようなことをやりたいのですが
上記ではどれもindexOfが-1を返してしまいます。
[○,△]のペアで一致する検索をしたいのですが
うまくいきません、どうすればいいでしょうかよろしくおねがいします。
439Name_Not_Found:2009/10/30(金) 12:31:49 ID:???
久しぶりにスレッドを覗いたら>>301の解答が出ていました。
遅くなりましたが報告させていただきます。
>>342
さんを試したら成功しました。
>>351
さんの指摘を受けて
function formcheck(form) {
var n = form.sdate.length;
if (form.sdate.checked) {
return true;
}
for (var i = 0; i < n; i++) {
if (form.sdate[i].checked) {
return true;
}
}
alert("商品が選択されていません。");
return false;
}
と、成りました。
協力いただいた方々ありがとうございました。
440Name_Not_Found:2009/10/30(金) 15:15:25 ID:???
>>438
まずArray#indexOf()はECMA-262の標準には含まれていないので、
ブラウザによっては動かないかも。そして、indexOf()は内部で
===を使って等しいかどうかを調べるらしいので、配列の「内容が」
等しいかどうかを調べるのにはどのみち使えない。結局、自分で
ループしながら配列を検索するしかないと思われ。
441Name_Not_Found:2009/10/30(金) 22:04:46 ID:svkMyns1
すみません、どうかアドバイスをください。
横のボタンを押せば、テーブルの行が上に上がるスクリプトを組みたいのですが・・・
作ったのは・・・

<table border=1>
<tbody id="test">
<tr>
<td><a href="javascript:testn(0);">↑</a></td>
<td>一行目</td>
</tr>
<tr>
<td><a href="javascript:testn(1);">↑</a></td>
<td>二行目</td>
</tr>
<tr>
<td><a href="javascript:testn(2);">↑</a></td>
<td>三行目</td>
</tr>
</table>
<script type="text/javascript">
function testn(no) {
obj = document.getElementById('test');
if (no != 0) obj.insertBefore(obj.rows[no], obj.rows[(no-1)]);
}
</script>

うまく動かない原因はわかるのですが・・・
しかし、どう改良すればよいのかわかりません。
どうかアドバイスをください。。。
442Name_Not_Found:2009/10/31(土) 01:52:56 ID:???
>>440
ありがとうございます。なるほど、indexOf()は使わないほうがいいみたいですね。

一応自分なりにかいてみました。
fpは次のような配列になっています、
fp=[
      [ 8,      //←dx
        [4,2,5]    //←dy
        ],
      [ 5,
        [10,21]
        ]
    ];
で、fp[0][0]やfp[1][0]がdx、
fp[0][1]やfp[1][1]がdyというような関係です。
説明しにくいので
(dx,dy)=(11,3)、(8,3)、(5,10)が与えられたとき、fpがどのように変化するかを下に書きます
fp=[
      [ 8,
        [4,2,5,3]
        ],
      [ 5,
        [10,21]
        ],
    [ 11,
       [3]
       ]
    ];
です。(11,3)はどれも重複しないので新たにfpの最後に加えます。
(8,3)はまずdxがfp[0][0]に重複後、fp[0][1]の最後にdyを追加します。
(5,10)はまずdxがfp[1][0]に重複後、dyもfp[1][1][0]に重複するので何もしません。
こういう検索をするために次のコードを書いてみました。つづく
443442:2009/10/31(土) 01:55:09 ID:???
fp=[[8,[4,2,5]],[5,[10,21]],];
var a=function(dx,dy){
  for(var i=0;i<fp.length;i++){
    if(fp[i][0]==dx){
      for(var j=0;j<fp[i][1].length;j++){
        if(fp[i][1][j]!=dy){
          if(j==fp[i][1].length-1){
            fp[i][1].push(dy);
          }
        }else{break;}
      }
      break;
    }else{
      if(i==fp.length-1){
        fp.push([dx]);
        fp[i+1].push([dy]);
      }
    }
  }
}
var t=function(){
  var tes=[];
  for(var i=0;i<fp.length;i++){
    tes.push(fp[i][0]+'<>'+fp[i][1]+'\n');
  }
return tes;
}
a(11,3);alert(t().join());

今のところはこれで思ったとおりの検索ができるのですが、自分の書いたものだと、無駄なものがあったり間違っていたり、別の良い方法があるような気がしてなりません。
ちなみに、そもそもこのdx,dyは、onmousemoveしている間、整数のdx,dyを取得し続け、その都度a(dx,dy)を実行するような感じです。どうかアドバイスよろしくお願いします。
444Name_Not_Found:2009/10/31(土) 01:57:18 ID:???
訂正
整数→正の整数(0もあり)
445Name_Not_Found:2009/10/31(土) 08:48:18 ID:???
0は正じゃないけどね。揚げ足か
446Name_Not_Found:2009/10/31(土) 11:01:50 ID:???
0には正負があるけどね。揚げ足か
447Name_Not_Found:2009/10/31(土) 13:55:30 ID:???
IE8って、もしかしてwindow.event.yでスクロール分足した数値返すようになってる・・・?
448Name_Not_Found:2009/10/31(土) 20:35:48 ID:???
0に正負があるとかやばくね?話逸れてるけど
449Name_Not_Found:2009/11/01(日) 00:22:52 ID:???
実際には使われていないけど正の0と負の0、つまり0が二つ存在する扱い方もある
http://ja.wikipedia.org/wiki/1%E3%81%AE%E8%A3%9C%E6%95%B0
450441:2009/11/01(日) 02:20:02 ID:DhDwNkMP
自己解決しました
451Name_Not_Found:2009/11/01(日) 06:45:29 ID:IpszXO/r

http://url には4桁の数字のみが記述されているとします。
この中身をアラートで表示させるために、

readFrame = document.createElement('iframe');
readFrame.setAttribute('style','display:none;');
readFrame.src = 'http://url';
readFrame.id ='readFrame';
document.body.appendChild(readFrame);
readFrame.onload = function (){
var nakami = document.getElementById('readFrame').innerHTML;
alert(nakami);
}
としたんですが、空白のアラートが表示されてしまいます。
なにが原因か分かりますでしょうか?
452Name_Not_Found:2009/11/01(日) 09:37:07 ID:???
<iframe>のinnerHTMLを表示したから。
nakami=document.getElementById("readFrame").ownerDocument.body.innerHTML;
453Name_Not_Found:2009/11/01(日) 11:27:01 ID:???
iframeの中身であっても、ドメイン超えだとアクセスできなかったりはしない?
確認せず適当に言うが。
454Name_Not_Found:2009/11/01(日) 12:14:57 ID:???
そんな事が出来たら
<iframe src="http://www.amazon.co.jp/" id="readFrame"></iframe>
alert(document.evaluate("//div/span[@class='navGreeting']",document.getElementById("readFrame").ownerDocument,null,0,null)).iterateNext().textContent);

こうするだけでAmazonで使ってる自分の名前が表示出来ちゃうね
455Name_Not_Found:2009/11/01(日) 13:51:29 ID:???
XPathがどうしようもなく分からない
456Name_Not_Found:2009/11/01(日) 15:21:27 ID:???
異ドメイン操作不可というのはよいですよね。
457Name_Not_Found:2009/11/01(日) 15:50:32 ID:???
XPathは軸とノードテストと述語を省略せずに覚えろ
//divとか書いてあるのは、とりあえず参考にするな
458Name_Not_Found:2009/11/01(日) 16:21:07 ID:???
//divは/descendant-or-self::node()/child::divの省略形だからな
/descendant::divとは効率も結果も全然違う
特にJavaScript-XPathを使って//divと書いてる奴は悔い改めた方がいい
459Name_Not_Found:2009/11/01(日) 17:05:24 ID:???
省略しないと長すぎるって言われるんだもん
460Name_Not_Found:2009/11/01(日) 17:37:19 ID:???
ownerDocumentとcontentDocumentを混同してる奴がいるな
461Name_Not_Found:2009/11/01(日) 21:30:40 ID:???
あはは誰だownerとか書いてるヤツ。
ownの意味もわかんないのかwwwww俺
462Name_Not_Found:2009/11/02(月) 03:29:53 ID:???
表示させたくない要素は、positionでleftとtop
のどちらに大きな負の値を入れるのがよいでしょうか。
要素を飛ばすとき、bottomとrightに指定すると
ブラウザによってはスクロールがでてしまいました。
今はleftでしているのですが、ほぼ差し支えないでしょうか?
よろしくお願いします。
463Name_Not_Found:2009/11/02(月) 04:21:10 ID:???
display: none
464Name_Not_Found:2009/11/02(月) 04:22:32 ID:???
あれ、つうかcssでいいのか?
ここjavascriptのスレだけど?
465Name_Not_Found:2009/11/02(月) 05:00:32 ID:???
cssスレだと、js知らないやつからしたら
使い道よりも一つの方法としての意識の方が強いが
js、css両方知ってるやつからしたら
明確に、使い道として理解してる
まぁどっちでもいいんじゃないだろうか
強いて言うならjsスレの方で聞くほうが賢いと思う
466Name_Not_Found:2009/11/02(月) 09:26:21 ID:???
正方形200×200のエリアがあって、その上をマウスが動くときに
その正方形の中心から100×100の範囲だけ有効にしたくて
マウスのx座標、y座標それぞれxとyにして
if(x>50 && y>50 && x<150 && y<150){}
みたいにしたんだけどもっとカッコいい書き方があるような気がしてそわそわするから教えて
467Name_Not_Found:2009/11/02(月) 09:48:41 ID:???
何かが間違っているような気がしてそわそわする
468Name_Not_Found:2009/11/02(月) 11:00:17 ID:???
似たようなことを繰り返すなら俺はRectオブジェクトでも用意するけど、最終的にやってることは変わらんから一回だけならそれでもいい
var r = new Rect(50, 50, 100, 100);
if (r.contains(x, y))

ちなみにそれ99x99だぞ、不等号使うときはよく考えろ
469Name_Not_Found:2009/11/02(月) 13:16:10 ID:lWYkjuDV
>>462
ほぼ差し支えないんじゃないかと。

>>463
作った要素の大きさをこっそり測っておきたい時とか、あるじゃん。
470Name_Not_Found:2009/11/02(月) 15:37:44 ID:???
測りたいときだけそうすればいい
多少なりとも描画に時間を費やしているから測れるってことを忘れんな
471Name_Not_Found:2009/11/02(月) 15:49:28 ID:???
計りたいときだけそうできればどんなに楽だったろうな
472Name_Not_Found:2009/11/02(月) 16:16:12 ID:lWYkjuDV
>>470
>測りたいときだけそうすればいい

あ、それはそうだと思います。
473Name_Not_Found:2009/11/02(月) 18:03:50 ID:???
parseIntって非推奨とかある?
なんかどっかで見た気がするんだけど勘違いなきがするのでお願いします
474Name_Not_Found:2009/11/02(月) 18:21:56 ID:???
>>473
parseInt()はECMA-262で規定されているので使うことは無問題。
ただ、1引数で使うと'012'みたいに0で始まる文字列は8進として
解釈されるため、常に2引数で使った方がいい。

それを忘れるくらいならむしろparseFloat()を使えばと前に
ここで書いたがそれには異論もあったかと。まあそれだけ。
475Name_Not_Found:2009/11/02(月) 18:55:01 ID:???
あとはきちんと戻値をisNaN()にかけてNaNチェックするとかね
まあ使いどころによるけど
476Name_Not_Found:2009/11/02(月) 19:43:46 ID:lWYkjuDV
みんなNaNってなんて読んでる?
自分は奈良ナンバーと読んでいるんだけど…
477Name_Not_Found:2009/11/02(月) 23:22:47 ID:???
ナン
478Name_Not_Found:2009/11/03(火) 10:17:21 ID:???
ナソ
479Name_Not_Found:2009/11/03(火) 10:55:49 ID:???
文末のセミコロンはつけるべきですか?
それとも省略すべきですか?
480Name_Not_Found:2009/11/03(火) 11:24:10 ID:???
つけるべき
481Name_Not_Found:2009/11/03(火) 11:34:29 ID:???
寧ろ改行とかいらん
482Name_Not_Found:2009/11/03(火) 11:34:38 ID:???
>>480
d
483Name_Not_Found:2009/11/03(火) 12:04:50 ID:???
>479
つけないとセミコロンは自動補完されるわけだけど、稀にセミコロンがつくと思ってた場所につかなくい、って事がある。
(まあ、逆に「つかないと思ってた場所にセミコロンがつく」場合の方が多いが。例えば
return
{
aaa : bbb
}; // nullが返る

いずれにせよ原因を非常に特定しづらいバグを生むので、なるべくつけるようにした方がいい。
484Name_Not_Found:2009/11/03(火) 12:06:35 ID:???
つかなくい→つかない
485Name_Not_Found:2009/11/03(火) 12:09:48 ID:???
>>483
そうなんですか
つけるようにします。
486Name_Not_Found:2009/11/03(火) 14:28:00 ID:???
なんちゃって
487Name_Not_Found:2009/11/03(火) 21:57:15 ID:???
for(){}
とか
if(){}
とかもセミコロンつけた方がいいですか?
488Name_Not_Found:2009/11/03(火) 22:05:04 ID:???
arr=['test'];
oj={'a':'test'};
上の配列と下のJSONって
arr[0]とoj.aだと、配列の方が
testの引き出しが速いんですよね?(大差なしという話ではなくて)
489Name_Not_Found:2009/11/03(火) 22:07:27 ID:???
evalするコストが無い分配列のほうが断然早いな、
490Name_Not_Found:2009/11/03(火) 22:48:53 ID:???
>>489
なるほど参考になります。

あと、oj={'a':'test'};場合
oj.aでもoj['a']でもどちらでもtestを取れるみたいなんですが
これって何か違いがあるんでしょうか
491Name_Not_Found:2009/11/03(火) 23:06:40 ID:???
JSON=文字列
492Name_Not_Found:2009/11/03(火) 23:15:44 ID:???
>>489
ハッシュするコストじゃないか?評価はどっちもするし

って質問内容に忠実すぎるのかw
それはオブジェクトリテラルだ、JSONならこう
var json = "{'a':'test'}";
var oj = eval(json);

>>490
使用可能な文字の違い(文字列リテラルならほぼ全て)
静的or動的
Stringオブジェクトの要不要

二番目の差が一番でかいと思う
var v = "a";
alert(oj[v]);
もちろん便利な分、若干でも処理にコストがかかる
493Name_Not_Found:2009/11/04(水) 01:05:10 ID:???
>>491,492
勘違いしておりましたありがとうございました。
たしかにoj.aだとa=なんたらとかにして代入できずでした
あとoj['a']のときよりもシビアなリテラル選びになりそうでした
ただやはり処理を速くくしようとすれば
配列>オブジェクトリテラルのoj.a>oj['a']
な感じでしょうか
ありがとうございました。
494Name_Not_Found:2009/11/04(水) 01:32:59 ID:???
ちゃんとベンチとったほうがいいぞ
Arrayでもデータ構造はObjectの使い回しをしてる可能性もあるし
最適化とか関わるとドット演算子使うのが一番速い場合だって考えられる

つーか変数使うのが一番速い
495Name_Not_Found:2009/11/04(水) 02:03:07 ID:???
Firefox 3.0以上向けにJavaScriptのプログラムを組んでいます。
Canvasを利用した描画を行いたいと思っているのですが、点線の描画方法が分かりません。
点線でなく、実線の描画方法ならば、下記の通りに出来ました。
--ソースの描画部分--
//キャンバスの取得
var canvas = document.getElementById("canvas");
if (!canvas.getContext)
return; // Unsupported
 //線描画
cv = canvas.getContext("2d");
cv.beginPath();
cv.lineTo(25,255);
--  ここまで  --
点線の描画を行いたいので、そちらをお願いいたします。
496Name_Not_Found:2009/11/04(水) 06:01:10 ID:???
便乗でcanvasの質問します。
以下のコードでf=[16,16,20,20]のときより明らかにf=[16,16,32,32]のときの方が
四角の描写までの反応が速いのですが、何が原因でしょうか。
一応自分でいろいろと考えてみたのですが、f=[16,16,20,20]のとき、
1.座標取得の時点で反応が遅れている(pageXやoffsetLeft、offsetTopが原因?)
2.helpのinnerHTMLのコメントアウトの行を有効にしたとき、
  ・help要素がhoge1要素とかぶると遅い、
  ・hoge1要素と十分にかぶらないくらい(16×20より上)の値をhelp要素のleftに入れると速い(例left:400px;)
くらいしかわかりませんでした。いずれもFireFox3.0で実験した結果です。
<html><body><div id="hoge1" style="border:2px dashed blue;position:absolute;left:0px;"><canvas id="hoge2" style="position:absolute;"></canvas></div>
<div id="help" style="width:100px;height:50;position:absolute;left:0px;">a</div>
<script type="text/javascript"><!--
elem1=document.getElementById('hoge1');
elem2=document.getElementById('hoge2');
// f=[16,16,32,32];
f=[16,16,20,20];
elem1.style.width=f[0]*f[2];
elem1.style.height=f[1]*f[3];
elem2.width=f[0]*f[2];
elem2.height=f[1]*f[3];
ctx=elem2.getContext('2d');
elem1.onmousemove=function(e){
var px=Math.floor(e.pageX-this.offsetLeft);
var py=Math.floor(e.pageY-this.offsetTop);
var sa=[f[0]*Math.floor(px/f[0]),f[1]*Math.floor(py/f[1])];
//document.getElementById('help').innerHTML=sa.join();
var rgb=function(){return Math.floor(Math.random()*255+1)};
ctx.fillStyle='rgb('+rgb()+','+rgb()+','+rgb()+')';
ctx.fillRect(sa[0],sa[1],f[0],f[1]);
}
//--></script></body></html>
497Name_Not_Found:2009/11/04(水) 07:40:32 ID:???
Firebugでたどっていくといいよ
498Name_Not_Found:2009/11/04(水) 08:16:56 ID:???
JSONは二重引用符しか受け付けないし
配列もJSONなんだぞ
大丈夫かお前ら
499Name_Not_Found:2009/11/04(水) 12:20:50 ID:???
>上の配列と下のJSONって
という元質問に対して、JSONで配列が定義できることがどう関係するんだ?
500Name_Not_Found:2009/11/04(水) 16:57:41 ID:???
>>499
君は>>498の言ってることを全く理解してないと思う
501Name_Not_Found:2009/11/04(水) 17:49:29 ID:???
>思う
なのか。なんだか自信なさげだな
502Name_Not_Found:2009/11/05(木) 17:57:04 ID:???
この世に絶対なんて無いってアビタニが言ってた
503Name_Not_Found:2009/11/05(木) 19:11:40 ID:???
アビタニって?トニー谷しか知らないっす。
504Name_Not_Found:2009/11/05(木) 19:31:47 ID:???
javascript始めたばかりのものです。

選択したテキストエリアに書かれているテキストを取得したいのです。
条件としては、同じページに複数のテキストエリアがあっても、それぞれが
区別出来るようにしたいのですが、
javascriptでどのように書けばいいのでしょうか?

505Name_Not_Found:2009/11/05(木) 19:48:30 ID:???
>>504
onfocus/onblurハンドラでどのテキストエリアが選択されたかを
常時追跡する。分からなければ勉強してね。
506Name_Not_Found:2009/11/05(木) 19:50:45 ID:???
各textareaがonfocusで自分のidを通達しておいて
最後に通達されたid(=選択したテキストエリア)を基にvalueを取得

これじゃわからん全部教えろっていうならこっち

[JavaScript]プログラム作成します
http://pc11.2ch.net/test/read.cgi/hp/1212582365/
507Name_Not_Found:2009/11/05(木) 19:57:31 ID:???
>>504
>>505
ありがとうございます。
自分でできないか、試してみます!!
508Name_Not_Found:2009/11/06(金) 00:35:12 ID:???
XMLで書いたデータをJavascriptで読み込みたいのですが、
属性値のある情報をどう表示させればいいか困っています。
<HTML><SCRIPT>
function displayData(){
rec=bookdata.recordset
while(!rec.EOF){
area.innerHTML+=rec("title")+" "+rec("author")
+" "+rec("publisher")+"<BR>"
moveNext()}}
</SCRIPT>
<BODY onLoad=displayData()>
<XML ID="bookdata" SRC="books.xml"></XML>
<SPAN ID="area"></SPAN>
</BODY></HTML>

XMLはこの様になっています
<book>
<title>おもしろい本</title>
<author>山田太郎</author>
<publisher>出版社</publisher>
<year>2000</year>
<price unit="円">1000</price>
</book>
これから値段を取り出して表示させたいのです。

よろしくお願いします。
509Name_Not_Found:2009/11/06(金) 00:39:25 ID:???
i='';
t=0;
var tes=function(w){
alert(w);
}
(t==1)?i='tes1':i='tes2';
tes(i);

ってやるとtesはファンクションじゃありませんってエラーがでます。
t==1?i='tes1':i='tes2';
だと大丈夫でした。三項でかくときは条件のところ()は外さないといけないのでしょうか
よろしくおねがいします。
510Name_Not_Found:2009/11/06(金) 00:46:44 ID:???
>>509
式と文の違いについて再勉強
わかんねーなら全部セミコロンつけとけ


それしても(function(){})()のfunction周りの括弧ってなくてもいけるんだな
511Name_Not_Found:2009/11/06(金) 01:00:33 ID:eRRSS6lE
>>508
rec()で関数のように値が取れるのは何の言語だ?多分何かの言語と勘違いしてるんだよね?
javascriptでそういう取り出し方あったけ?

>>509
i = (t == 1) ? 'tes1' : 'tes2';
って書けば曖昧じゃなくなるな
512Name_Not_Found:2009/11/06(金) 01:20:19 ID:???
books.xmlをbookdataというIDにして、
bookdata.recordsetは長くて入力が面倒なのでrecとする。
それで、area.innerHTML+=rec("title")+" "+rec("author")
+" "+rec("publisher")+"<BR>"
で出力できています。

一応、JavascriptとHXMLの課題です。
513Name_Not_Found:2009/11/06(金) 02:37:09 ID:???
前から気になっていたのですが
if(x+y+z>0){
x=x+y+z;
}
みたいなとき、条件式の中でx+y+zして、
さらに条件に合えばまたx+y+zをしているのですが
これは無駄ではないでしょうか?
解決できるのであればアドバイスくださいませ
514Name_Not_Found:2009/11/06(金) 02:42:10 ID:eRRSS6lE
>>513
if( (x=x+y+z) > 0 ){
}

わかりやすさから言ったら
x=x+y+z;
if(x>0){
}
ってする方がいいと思うけど。普通そうすると思う。
515Name_Not_Found:2009/11/06(金) 02:46:41 ID:???
var a = x + y + z;
if (a > 0) { x = a; }

>>514
動作変わってんじゃんw
516Name_Not_Found:2009/11/06(金) 04:59:30 ID:???
>>514-515
ありがとうござました
517Name_Not_Found:2009/11/06(金) 06:46:01 ID:eRRSS6lE
>>515
えぇ、どこが違うんだ?としばらくマジで考えてしまった
if分岐なのに全く頭に入れてなかったよ。寝ぼけてたすみません。
518Name_Not_Found:2009/11/06(金) 12:31:24 ID:???
質問です
JavaScriptでカーソルの形状を取得できますか?
519Name_Not_Found:2009/11/06(金) 17:26:35 ID:???
イベントハンドラを駆使すればできるが、完璧とは言えん。
520Name_Not_Found:2009/11/07(土) 00:37:06 ID:???
>>510
"function" から始まる文は function 文と解釈されるから、
文の先頭に "function 式" を書くときは括弧が必要。


式と文の違いについて再勉強な。
521Name_Not_Found:2009/11/07(土) 01:26:51 ID:???
質問です。

ああああ
<script type="text/javascript">

var req = new XMLHttpRequest();
req.open('GET', 'test.php', true);
req.onreadystatechange = function (aEvt) {
if (req.readyState == 4) {
if(req.status == 200)
var newresponseText= req.responseText.match(/test\.php?[0-9]+/);
var test1=("http:test.com/"+newresponseText)
document.write(test1);
document.close();
}
};
req.send(null);

</script>
ああああ

これをhtml中へ入れると上下にある「ああああ」などが表示されなくなるんですが、
どこが悪いんでしょうか?
522Name_Not_Found:2009/11/07(土) 01:55:35 ID:???
>>520
>括弧が必要
一緒に再勉強しようか
void function(){}()

>>521
document.writeが悪い
523Name_Not_Found:2009/11/07(土) 02:28:57 ID:???
>>522
それは void 式
524Name_Not_Found:2009/11/07(土) 02:54:23 ID:???
>>521
onreadystatechange の中で document.write を呼び出しているから、
その時までに「ああああ」などを含む document の読み込みが完了していると、
強制的に document を再 open した後 document.write が実行される、んだと思う。

>>522
一緒に勉強?お断りw
525521:2009/11/07(土) 08:19:39 ID:???
>>522
>>524
ありがとうございます。
あの、、できたらズバっと書き換えて書き込んでもらえませんでしょうか!
お願いします!お願いします!!
526Name_Not_Found:2009/11/07(土) 08:47:23 ID:???
>>525
>>524であってる
527521:2009/11/07(土) 09:04:47 ID:???
>>526
ありがとうございます。

}
};
document.write(test1);
document.close();

単純にズラしただけではダメなんですよね?
firebugで「test1 is not defined」と出てしまって表示されないのですが。
528Name_Not_Found:2009/11/07(土) 09:46:18 ID:???
どうしてもdocument.writeが使いたければ
同期通信にして、onreadystatechange使うな
529521:2009/11/07(土) 09:59:02 ID:???
>>528
いえ、どうしてもと言うわけではなく、表示させるにまだはdocument.writeしか知らないもので

ああああ
test1内容
ああああ

と表示できれば何でも良いのですが・・・
530521:2009/11/07(土) 10:34:22 ID:???
>>528
同期通信でいけました!
ありがとうございます。
531Name_Not_Found:2009/11/07(土) 13:35:17 ID:???
>>519
ありがとうございました
532Name_Not_Found:2009/11/09(月) 12:01:38 ID:hcohdA59
<input type="file" name="hogehoge" value="hogehoge">
<input type="submit" value="send">

これでファイルを送信してるんですが、ファイルが指定されていない時はsubmitをdisabled状態にして
ファイル名が指定されている時はsend出来るようにしたいと思います。
type=fileの部分に文字列が入っているかどうかを監視出来れば出来そうな気がするんですが、
文字が入っているかどうかの判断はどの関数を使用すれば出来ますでしょうか?
初歩的な質問かもしれませんがアドバイスいただけると助かります。
533Name_Not_Found:2009/11/09(月) 13:37:01 ID:???
input type=file の中身をアクセスすることはセキュリティ
制約からできないと思われ。
534Name_Not_Found:2009/11/09(月) 13:43:08 ID:???
>>532
単に文字列が入ってるかどうかでいいなら(それで意味があるかは別として)
valueが空かどうかで判断できる。

document.forms[0].hogehoge.value;
535Name_Not_Found:2009/11/09(月) 13:55:41 ID:???
JavaScriptってPHPマニュアル(http://www.php.net/manual/ja/index.php)のようなサイトって無いんでしょうか?
関数とかイベントハンドラ等の詳細な説明(引数とか戻り値の説明とか)のあるサイトって調べてもないような気がするのですが
JavaScriptの公式サイトというのも見当たりませんでした
とほほさんとか、一撃さんようなリファレンスとかサンプルコードは見つかりましたが、PHPマニュアルのようなメソッドの詳細な説明のあるサイトはないように思います
すみませんが、もしそのようなサイトがありましたら教えていただきたいのですが

オライリーのクイックリファレンスは持っているのですが、持っていない時に分からないのがあった時に困ったりするもので
オライリーのクイックリファレンスのようなサイトを探しています

536Name_Not_Found:2009/11/09(月) 14:03:01 ID:???
>>535
公式サイトなら >>1 に載ってるでしょ。JavaScript言語本体ならね。
問題はさまざまなブラウザ固有の違いとかDOMをはじめとするAPI
なんだけど、そういうものを一手にまとめてるものはないと思われ。
PHPと違って各実装者がそれぞれ開発してるからねー。
537Name_Not_Found:2009/11/09(月) 17:55:21 ID:???
>>533
<input type="file" id="test" />

document.getElementById("test").files[0].fileName; //ファイル名
document.getElementById("test").files[0].fileSize; //サイズ
document.getElementById("test").files[0].getAsBinary(); //バイナリ形式のファイルの中身
document.getElementById("test").files[0].getAsDataURL(); //Dataスキーム形式のファイルの中身

Firefoxオンリーだけどね
538Name_Not_Found:2009/11/10(火) 01:32:49 ID:???
すげえ
539Name_Not_Found:2009/11/10(火) 04:21:56 ID:???
array=[1,[2,1],3]
みたいなやつで、値だけじゃなく
[1,[2,1],3]みたいな文字型で得たいのですがどうすればよいでしょうか
phpでいうvar_dump的な感じです
よろしくおねがいします
540Name_Not_Found:2009/11/10(火) 08:11:22 ID:???
console.log
541Name_Not_Found:2009/11/10(火) 11:52:45 ID:???
>>540
どうもありがとうございました。
542Name_Not_Found:2009/11/10(火) 14:49:16 ID:???
>>539
toSource()
543Name_Not_Found:2009/11/10(火) 17:36:25 ID:???
dqnew-calendarというのを自分好みに改造している途中です。
開発環境はDebian Lenny, Firefox 3.0.11で、
動作確認はDebianのGoogle Chrome 4.0.223.11とWindows XPのIE7でおこなっています。
質問が2点あります。
1. IE7だと動作しません。画像をクリックすると'XXX' is undefined.と言われます。ちゃんとポップアップされていたときもあったのですが、今はエラーになります。どこを修正すれば良いでしょうか?

2. 画像をクリックして表示されるカレンダーの年月の部分をドラッグするとカレンダーが移動するようにしたいのですが、どのブラウザでも動作しません。これは根本的にどこか間違っていると思うのですが、どこがマズいでしょうか?

ttp://kissho.xii.jp/1/src/1jyou96309.zip.html
ソースが長くて恐縮ですがよろしくお願いします。
544Name_Not_Found:2009/11/10(火) 18:24:34 ID:???
>>543
せめて問題の部分を特定してから質問しなよ
ドラッグなんかも、一旦ドラッグのみを実装してみればある程度
問題は絞れるでしょ
545Name_Not_Found:2009/11/10(火) 21:28:57 ID:???
DnDはなんとかできました。
しかしまだIE7で動かない問題は解決していません。
どこが問題なのか全く見当がつきません。。
546Name_Not_Found:2009/11/10(火) 21:56:01 ID:???
>>545
16行目
day_hover_bgcolor: '#99BBFF',//コンマとれ
547543:2009/11/10(火) 22:04:57 ID:???
>546
ありがとーー
表示されるようになりました。
こんなん全然気付かんわ。すごいね。
548Name_Not_Found:2009/11/11(水) 01:25:05 ID:???
>>542
とんくす
549Name_Not_Found:2009/11/11(水) 01:50:39 ID:???
http://userjs.org/scripts/download/general/enhancements/clean-uri.js
opera用のスクリプトをfirefoxでも使えるようにしたいのですが
66行目にエラーが出て使えません
どこを直せばいいか教えていただけないでしょうか
550Name_Not_Found:2009/11/11(水) 02:02:20 ID:???
64行しかない件
551Name_Not_Found:2009/11/11(水) 03:37:05 ID:jW1SZMrP
JSファイルを軽量化したくて、
先月出たAjax Minifier新版のハイパークランチ機能(高圧縮)を試してます。
ヘルプを読むと、たとえば↓こんなのが
    ------------------------------------------------------------
    function DivideTwoNumbers(numerator, denominator, unsedparameter )
    {
     return numerator / denominator;
    }
    ------------------------------------------------------------
こんな風に↓短くなるらしいんですが、
    -------------------------------------
    function a(a,b){return a/b}
    -------------------------------------
実際はこんな風に↓中途半端になってしまいました。
    -------------------------------------
    function DivideTwoNumbers(a,b){return a/b}
    -------------------------------------
試した方法ですが、コマンドプロンプトから下記記事のとおり↓このように打ち込みました。

    ajaxmin -hc inputfile.js -o ouputfile.js

上例のように短くできた方いらっしゃいますか?
どうぞ、よろしくお願いいたします。
(記事11/6) http://journal.mycom.co.jp/articles/2009/11/06/msajax/002.html
(D/Lサイト) http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34488
552Name_Not_Found:2009/11/11(水) 06:17:32 ID:???
displayはだめだめ言われてるのをよく見るけどどうして?
553Name_Not_Found:2009/11/11(水) 06:56:54 ID:???
displayはだめだめ言われてるのをよく見ないんだけどどこで?
554Name_Not_Found:2009/11/12(木) 00:38:31 ID:???
>>551
記事の説明よく読みな!
>ローカル変数名を短い文字列に置きかえ
555Name_Not_Found:2009/11/12(木) 01:00:33 ID:m9aNdsA1
再初期化したいのですが、同じ変数に数度newで割り当てるとメモリリークしますか?
あるいは、Cのmemsetのような関数はないでしょうか?
556Name_Not_Found:2009/11/12(木) 03:31:01 ID:???
よく○○.js ver1.00とか1.01とかみるんすけど
小数点以下って一体なんなんですか?
ver1とかver2とかだとかっこ悪いから.00とかにしてるんですかね?
557Name_Not_Found:2009/11/12(木) 03:51:02 ID:???
>>555
しない
基本的には、どーやってもアクセスできないオブジェクトはGCがよろしくやってくれる
JSオブジェクトの循環参照ぐらいまでなら余裕

>>556
JSに限らない話だからム板の質問スレにでも行くといい
558Name_Not_Found:2009/11/12(木) 03:52:36 ID:???
>newで割り当てる
そもそもこの発想がおかしい
newは生成であって割り当てじゃない
559Name_Not_Found:2009/11/12(木) 04:12:27 ID:m9aNdsA1
>>557
ありがとうございます。これが噂のガーベジコレクションですか。
そういった参考例が見つからなかったので安心しました。

>>558
すみません、言葉が足りませんでした。
手放したオブジェクトのアドレスの行方が知りたかったのです。
560Name_Not_Found:2009/11/12(木) 08:03:32 ID:DlYjSI6s
ただ単純に正規表現で配列を検索したいと思っているのですが、うまくいきません。
a.456 だけが出てくるのを期待しているのですが、どこが間違っているのでしょうか?
function pattern_check(){
pattern = '/^a\.\d+$/';
arrays = new Array('a1.123','a.456','1a.789');
for(i=0; arrays[i]; i++){
if(arrays[i].match(pattern)){
alter(arrays[i] + ' ok'); }
}
}
561Name_Not_Found:2009/11/12(木) 08:16:26 ID:???
456ってのは正規表現のどこに反映されてんだよ
つか普通に==でいいだろそんなもん
562Name_Not_Found:2009/11/12(木) 08:20:34 ID:???
\d を [0-9] に変更
563Name_Not_Found:2009/11/12(木) 08:22:17 ID:???
patternが文字列になってる
引用符いらない
564Name_Not_Found:2009/11/12(木) 08:24:09 ID:???
あーわり読めてなかった
何で正規表現リテラルを文字列にしてんだお前
565Name_Not_Found:2009/11/12(木) 08:32:40 ID:???
pattern = '^a\.[0-9]+$';

だな なんつーか Perl 臭い
566Name_Not_Found:2009/11/12(木) 09:35:47 ID:???
\dと[0-9]って違うんだっけ?
と質問してもググれで終わりそうだから先にググった

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/RegExp
> Basic Latin アルファベットにおける数字 (digit character) にマッチします。[0-9] と同じです。

結局わからないので誰か教えて。
567560:2009/11/12(木) 09:37:58 ID:DlYjSI6s
デリミタ使う正規表現は使えなかったのか
ありがとうございました
568Name_Not_Found:2009/11/12(木) 10:29:19 ID:???
>>566
\d は Firefox で全角数字にもマッチする。
569Name_Not_Found:2009/11/12(木) 10:33:01 ID:rf00CiU4
javascriptで操作できるdom一覧のページをテンプレに追加していただけませんか?
570Name_Not_Found:2009/11/12(木) 10:59:26 ID:???
>>568
おぉ。そうなんだ。[0-90-9]と同等なのか。
でもFirefoxだけなら\dを使わない方がいいのね。
571Name_Not_Found:2009/11/12(木) 11:33:18 ID:???
いや・・・・>>566のリンク先を見たらとっくにバグとして修正済みらしい。


知らんかった。スマソ
572Name_Not_Found:2009/11/12(木) 12:34:29 ID:???
>>569
具体的なURLを挙げなよ。まともなサイトがあまりないので
結局W3Cの標準を読めとかになりがちなのでね。
573Name_Not_Found:2009/11/12(木) 14:02:45 ID:???
w3cを読める人がこのスレに一覧でまとめればおk
574Name_Not_Found:2009/11/12(木) 14:17:05 ID:???
575Name_Not_Found:2009/11/12(木) 14:34:35 ID:???
>>574
そんなサイトあったのか
576Name_Not_Found:2009/11/12(木) 15:30:43 ID:???
>>574 はECMA 262 3rd Edition (ECMAScript 3)の邦訳を公開してる人のサイト
577Name_Not_Found:2009/11/12(木) 19:30:19 ID:???
IE8で

var obj = document.createElement("table");
obj.setAttribute("id","table");
document.body.appendChild(obj);
document.getElementById("table").innerHTML = "<tr><td>テスト中</td><td>失礼いたします</td></tr>";

上記のスクリプトを実行するとなぜかエラーになります。回避する方法はないでしょうか?
複雑なテーブルを組むので、できればinnerHTMLで一括置き換えしたいのですが・・・。
578Name_Not_Found:2009/11/12(木) 19:42:12 ID:???
すいません、divで囲ってtableタグごと書き換えたら事故解決しました。
579Name_Not_Found:2009/11/12(木) 19:42:47 ID:???
>>577
http://support.microsoft.com/kb/239832/ja
これはIEの仕様^^;

DOMで組み立てるのが一番の近道だと思うよ(解答になってなくてすまん)
580Name_Not_Found:2009/11/12(木) 22:43:38 ID:???
promptみたいな感じで、複数個入力できるようにしたいんですが
無理でしょうか?
581Name_Not_Found:2009/11/12(木) 22:46:51 ID:???
すみません、
function A(t){
  var v = 33;
}
var a = new A();

こうした時に、aオブジェクトから 変数vにアクセスする方法はないですよね?

やりたいことは、使っているライブラリのconstructor内のローカル変数にアクセスしたいのです。
582Name_Not_Found:2009/11/12(木) 23:01:05 ID:???
>>579
>table.innerHTML を設定するさせるには、次のエラー メッセージを表示します。


リンクページの文章が^^;
天下のマイクロソフト様も日本語がおかしいのは気のせいかw
583Name_Not_Found:2009/11/12(木) 23:07:21 ID:???
>>581
無理、どうしても必要ならモンキーパッチで対処

>>582
ページ下部まで見ろ
584Name_Not_Found:2009/11/12(木) 23:27:09 ID:???
>583
ありがとうございます。
function A(){
var v = 33;
}
var a = new A();
function A()
585Name_Not_Found:2009/11/12(木) 23:28:32 ID:???
>583
ありがとうございます。
function A(){
 var v = 33;
}
var a = new A();
function A(){
 var v = 87;
}
a = new A();

こういうことですよね。
586585:2009/11/12(木) 23:31:56 ID:???
途中の var a = new A(); はいらないですね。
なんとなく、できそうなきがしてきた。
587Name_Not_Found:2009/11/13(金) 00:53:21 ID:6Eu/tgl7
画像検索apiを使って
ttp://sokkuri.net/alike/%E9%97%98%E7%89%99/%E9%9A%86%E3%81%AE%E9%B6%B4
上記のサイトのように画像一覧を表示させる方法を教えてください。
初めての質問なので板違いだったらすみません。
よろしくお願いします。
588Name_Not_Found:2009/11/13(金) 00:58:07 ID:???
>>587
ここはJavascriptの作り方を教えるスレではありません。
589Name_Not_Found:2009/11/13(金) 01:12:52 ID:???
>>585
値を書き換えるだけならそんな感じ
prototypeを移すのも忘れずに

__A = A;
function A(){}
A.prototype = __A.prototype;

このやり方だとnew A().constructor == __Aになるけど、まあ大丈夫だろ
590Name_Not_Found:2009/11/13(金) 19:39:37 ID:???
XMLHttpRequestで読み込み終わった後、またXMLHttpRequestとループさせることできますか?
可能であれば方法教えて欲しいです。宜しくお願いします。
591Name_Not_Found:2009/11/13(金) 19:58:00 ID:???
XHRのコールバックでXHRすればいいだけ
592Name_Not_Found:2009/11/13(金) 20:38:21 ID:YUnQfsTF
下記のサイトで○×問題を作ろうとしてサンプルを実行してみたらサイト上では
採点もされるのですが、ダウンロードして実行するとブラウザの左下に黄色の
ビックリマークとページが表示されましたと表示が出るだけで点数などが出ません。
説明では名前をつけて保存だけでいいらしいのですが。確認ポイントなどあれば
お教えください。
使用環境は Windows7 と InternetExplorer8 です。

WEB問題作成ツール
http://www.fureai.or.jp/~irie/webquiz/samples/eizu1.html

WEB問題作成ツール
http://www.fureai.or.jp/~irie/webquiz/
593Name_Not_Found:2009/11/13(金) 20:49:24 ID:???
その黄色のビックリマークをクリックしてみなよ。
594592:2009/11/13(金) 20:54:40 ID:YUnQfsTF
>>593
下記のような表示が出ました。これはブラウザ側の設定で直るのでしょうか。

Web ページ エラーの詳細

ユーザー エージェント: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)
タイムスタンプ: Fri, 13 Nov 2009 11:53:43 UTC


メッセージ: アクセスが拒否されました。

ライン: 495
文字: 5
コード: 0
URI: file:///C:/Users/JUN/Desktop/クイズ!エイズを知ろう!!.htm


メッセージ: アクセスが拒否されました。

ライン: 495
文字: 5
コード: 0
URI: file:///C:/Users/JUN/Desktop/クイズ!エイズを知ろう!!.htm
595Name_Not_Found:2009/11/13(金) 21:28:22 ID:???
Firefoxでブックマークにある特定のサイトだけ常に新しいタブで開きたいです。
ミドルクリックすれば任意に選んで新しいタブで開けますが。
そのサイトだけは常に新しいタブにしたいんです。
ブックマークレットに使われてるように、登録したURLの前にjsを使って可能でしょうか?
検索しても見当たらないので記述おわかりの方いたら教えてください。
596Name_Not_Found:2009/11/13(金) 21:43:09 ID:???
>> じゅん君
ライン 495 って window.open の箇所かな。
自分の環境(XP/IE8) では再現しないから分からん。

>>595
javascript:void window.open("url")
597Name_Not_Found:2009/11/13(金) 21:45:47 ID:???
あ、「新しいウィンドウではなく新しいタブで開く」にチェック入れとかないと駄目か。
598595:2009/11/13(金) 22:20:35 ID:???
>>596-597
そのチェックは既にしていたので無事開けました
こんな短いスクリプトでできるんですね
ありがとうございました
599592:2009/11/13(金) 22:39:08 ID:YUnQfsTF
>>596
>>597
私は JavaScript の中身は全然わからないのですが、問題を作った後にサイトの
説明ではブラウザのメニュー「ファイル」→「名前を付けて保存」で,ファイルの種類を
「Webページ,HTMLのみ」で保存するように書いてあったのですが「Webアーカイブ、
単一のファイル」で保存して実行したら動作しました。
600599:2009/11/13(金) 23:02:50 ID:YUnQfsTF
のつもりだったのですが問題数が少ない場合は「Webアーカイブ、
単一のファイル」で保存でよかったものの問題数が多いとエディタ
で見ると問題が消えてなくなってました。結果、サイトの説明の
通りに「Webページ,HTMLのみ」で保存し、ブラウザに google
の新しいのをいれたらこれでは表示できました。本当は IE8 で
使いたかったのですが。
601Name_Not_Found:2009/11/14(土) 01:07:57 ID:mAPd0lxt
http://itpro.nikkeibp.co.jp/article/COLUMN/20061101/252356/

上記のサイトみたいに

http://www.kawa.net/text/nikkeibp/mashup/vol02/search-hdr.html

のような感じで表示はできるのですが、この画像検索結果を違う種類(2種類、3種類など)
同じページ内に表示させることはできるのでしょうか?
すごい難しい質問のような気がするのであきらめ気味ですがわかる方がいたら
その方法を教えてください。
602Name_Not_Found:2009/11/14(土) 01:52:19 ID:???
FirefoxでPDFファイルを開くときにAdobeではなく
http://docs.google.com/viewer?url=
で開きたいんですが
リンクを右クリックしたときに
このファイルをdocs.googleで開くを追加する方法ありませんか?

http://mozilla-remix.seesaa.net/article/130845279.html
gpdfというスクリプトを使ってますが、検索結果だと反応しないこともあるんです
603Name_Not_Found:2009/11/14(土) 01:53:52 ID:???
>>601
質問の意味がわからん

var div = document.getElementById( 'photos_here' );

の id を渡せるようにするだけじゃないの?
604Name_Not_Found:2009/11/14(土) 02:32:17 ID:???
>>602
なんで反応しないかを探ってみたら?
605585:2009/11/14(土) 02:32:20 ID:???
>>589
すいません。 prototype, consturctorの辺りがよくわからなくなって、手が止まってました。
週末の間には、考えて、また返信します。
単に、関数を差し替えれば、いいかと思ってしまっていたのですが、、、勉強が足らなかったです。
606Name_Not_Found:2009/11/14(土) 02:46:44 ID:???
>>602
そのグリモンはこれらしいよ
http://blog.arpitnext.com/get-gpdf/gpdf.user.js

末尾に ".pdf" がないのはダメ
607Name_Not_Found:2009/11/14(土) 03:21:38 ID:???
location.pathname の末尾が ".pdf"
ないし
location.search に ".pdf" が含まれる
だと
いくらか拾えるかもね

そもそも ".pdf" が含まれない場合だと
JavaScript で対応するのは現実的ではないが
608Name_Not_Found:2009/11/14(土) 06:15:32 ID:???
javascriptのprototypeて試作品という意味?
609Name_Not_Found:2009/11/14(土) 06:21:55 ID:???
???
610Name_Not_Found:2009/11/14(土) 06:55:47 ID:???
>>608
prototypeってフレームワークがあるんだよ
jqueryみたいなもん
611590:2009/11/14(土) 10:47:54 ID:???
すいません、もう一度聞かせて下さい。
document.writeが終わったらまた最初から同じ処理のループがしたいのですがどなたか改変してもらえませんでしょうか?
function など入ると僕の頭では厳しくて・・・

jmp = new Array();

jmp[0] = "image.php";
jmp[1] = "img.php";
jmp[2] = "gazou.php";

n = Math.floor(Math.random()*jmp.length);

var req = new XMLHttpRequest();

req.open('GET', jmp[n], false);
req.send(null);

var newresponseText= req.responseText.match(/test\.php\?no=[a-zA-Z0-9]+/);

document.write("<a href='http://test.com/get.php?no="+newresponseText+");
document.close();

宜しくお願いします。
612Name_Not_Found:2009/11/14(土) 10:51:38 ID:mAPd0lxt
>>601で書き込んだものですが、すみません書き方が悪かったです。
例えば犬の画像の検索結果と猫の画像の検索結果を同じページ内に表示したいのですが
自分なりのコードを変換してみたのですがどうしてもうまくいきませんでした。
その方法をぜひ教えてください。
613Name_Not_Found:2009/11/14(土) 14:17:00 ID:???
e = new Array() と e = [] ってどっちがいいの?
614Name_Not_Found:2009/11/14(土) 14:28:08 ID:???
どっちも同じだろks
615Name_Not_Found:2009/11/14(土) 14:46:52 ID:???
a1 = new Array();
a2 = new Array(1);
a3 = new Array(1, 2);

と並べてみて問題点を指摘できないなら、new Array()は使わない方がいい
616Name_Not_Found:2009/11/14(土) 15:32:03 ID:???
わざわざコンストラクタ使うやつは変態
617Name_Not_Found:2009/11/14(土) 15:53:26 ID:???
変態というのはひどすぎませんか。大学で言語をしっかりとマスターした
人ほど変態ということですか?明確なご説明を求めます。
618Name_Not_Found:2009/11/14(土) 17:00:12 ID:???
褒め言葉だろ
619Name_Not_Found:2009/11/14(土) 17:01:11 ID:???
javascriptでオブジェクト指向にそって書く方法ってありませんよね?
phpなら

class Hello
{
function word(){echo "こんにちは";}
}
620Name_Not_Found:2009/11/14(土) 17:03:26 ID:???
クラスベースだけがオブジェクト指向だと考えてるなら大間違い
621Name_Not_Found:2009/11/14(土) 17:04:18 ID:???
無いね
622Name_Not_Found:2009/11/14(土) 17:04:24 ID:???
大学で言語をマスターとかw
623Name_Not_Found:2009/11/14(土) 17:07:48 ID:???
大学ではフォートランを習いました・・・
624619:2009/11/14(土) 17:16:17 ID:???
>>621
無理そうですね621さんありがとうございました
625Name_Not_Found:2009/11/14(土) 17:24:03 ID:???
Prototype.jsとかはクラスっぽい書き方をしようとした努力の集大成なのに
全否定しやがったな
いいことだ
626Name_Not_Found:2009/11/14(土) 17:26:32 ID:???
>>619
JavaはObjective-Cの流れを汲むクラスベースのオブジェクト指向
JavaScriptはSelfの流れを汲むプロトタイプベースのオブジェクト指向
627Name_Not_Found:2009/11/14(土) 17:45:32 ID:???
>>605
かわいそうだから言っといてやるが
589は関数宣言だから無理
628585:2009/11/14(土) 22:01:46 ID:???
>>627
降参です。できれば、もう少しヒント下さい。
関数宣言とは、 function A(){}という形でしょうか?
A = function(){}という形なら、なんとかしようが有ると言うことでしょうか?
629Name_Not_Found:2009/11/14(土) 23:32:49 ID:???
関数Aを呼び出してから一秒間は関数Aを使えないようにしたいのですが、うまくいきません。
$('ABC').toggle();の部分が動くのは確認済みです。
<script type="text/javascript"><!--
function A() {
var Z
if (Z != 0) {
$('ABC').toggle();
};
setTimeout("add_Z (0)", 0);
setTimeout("add_Z (1)", 1000);
}
function add_Z(num) {
Z = num;
}
//--></script>
どなたかお助けを。
630Name_Not_Found:2009/11/14(土) 23:48:28 ID:???
var Z;

何でローカル変数なん?
631Name_Not_Found:2009/11/15(日) 00:13:50 ID:???
simpleJS使ってるでしょ
632Name_Not_Found:2009/11/15(日) 00:54:55 ID:???
setTimeout、setIntervalでミリ秒指定しても必ずしもその時間後に動作するとは限らない
function(){
  setTimeout(function(){alert("Hello!");},100);
  heavyFunction();
}
たとえばheavyFunction();の実行に2秒かかったらsetTimeoutが実行されるのは2秒以降になる
633Name_Not_Found:2009/11/15(日) 01:16:44 ID:???
>>629
> setTimeout("add_Z (0)", 0);


ここは setTimeout 使う意味ないし。
634Name_Not_Found:2009/11/15(日) 04:11:45 ID:Gx55W3JL
siki = "//body";
rsv = document.createNSResolver(document.documentElement);
res = document.evaluate(siki, document, rsv, XPathResult.ANY_TYPE, null);

<html xmlns="http://www.w3.org/1999/xhtml">
 <body>
  ・・・

これでresにnullしか含まれないのはなぜでしょうか?
siki = "//*"だと取れるのに・・・?

ブラウザはfirefox3.5, safari4、HTMLはContent-Typeをapplication/xmlにしており、XMLとしてパースされてます。
635Name_Not_Found:2009/11/15(日) 22:37:29 ID:???
この間うちの部署のパソコン画面がエラーが出て部長が激怒。ある人
がやってきてメモ帳みたいなのを開いてチョチョッとやったら直って
しまいました。ジャバの天才っているんですね。皆さん本当に凄いです。
尊敬してます。
636Name_Not_Found:2009/11/15(日) 23:06:19 ID:???
↓みたいなことを実現したのですが、うまくいきません。
 スクリプトから、外部スクリプトを呼び出すことは無理なんでしょうか?

<div id="box"></div>
<a href="javascript:void(0);" onclick="document.getElementById('box').innerHTML = '<script type=\"text/javascript\" src=\"ほにゃらら.js\"><\/script>'; return false;">表示</a>

「<script type="text/javascript" src="ほにゃらら.js"></script>」はいわゆるブログパーツで、
要点としては、これを画面操作によって初めて表示させたいのですが。
637Name_Not_Found:2009/11/15(日) 23:07:37 ID:???
失礼
×実現したのですが
○実現したいのですが
638Name_Not_Found:2009/11/16(月) 00:14:12 ID:???
とりあえずhtml-lintでチェックしてみ
639Name_Not_Found:2009/11/16(月) 00:56:08 ID:???
// ==UserScript==
// @name gPDF
// @version 1.1
// @author ArpitNext
// @namespace http://blog.arpitnext.com/
// @description Scan webpages for pdf links and set them to open with Google PDF viewver.
// @include *
// @exclude http://docs.google.com/*
// ==/UserScript==

(function () {
dl=document.links;

for(i=0;i<dl.length;++i){
if(dl[i].host!="docs.google.com"){
if(dl[i].href.substr(-4)==".pdf"){
dl[i].href="http://docs.google.com/viewer?url="+dl[i].href;
}
}
}
})();


>> if(dl[i].href.substr(-4)==".pdf"){
これだと.pdfにしか反応しないので
>> if(dl[i].href.substr(-4)=="*pdf*"){
としたのですが、全く意味がありませんでした。
URLに"pdf"が入っている場合全てに適用させるにはどうしたらいいでしょうか
640636:2009/11/16(月) 01:21:20 ID:???
>>638
レスありがとうございます。
html-lintでチェックしてみて、文字参照されていないのがまちがいのようだったので、

<div id="box"></div>
<a href="javascript:void(0);" onclick="document.getElementById('box').innerHTML = '<script type="text/javascript" src="ほにゃらら.js"></script>'; return false;">表示</a>

に書き換えたのですが、やはり狙い通りには動いてくれません。
Firebugで確認すると、確かにbox内に「ほにゃらら.js」は書き込まれて、展開もされているようなのですが、
内部の関数が実行されないのか、ブログパーツが表示されません。
あとはどこをチェックすればいいでしょうか?
641Name_Not_Found:2009/11/16(月) 01:22:47 ID:???
あら、これならうまくいくか

<div id="box"></div>
<a href="javascript:void(0);" onclick="document.getElementById('box').innerHTML = '&lt;script type=&quot;text/javascript&quot; src=&quot;ほにゃらら.js&quot;&gt;&lt;/script&gt;'; return false;">表示</a>
642636:2009/11/16(月) 01:24:31 ID:???
>>640のは間違い。
>>641のように書き換えたんですが、やっぱり表示されません。
643Name_Not_Found:2009/11/16(月) 01:45:17 ID:???
onmouse系が左クリックで反応してくれるのはいいのですが
右クリックでも反応してしまうのはどうにかなりませんか?
ただし、右クリックメニューはそのまま使いたいです。
644Name_Not_Found:2009/11/16(月) 02:04:31 ID:???
>>636
innerHTMLでは基本的に無理
createElementで<script>を組み立てて、<head>あたりにappendChildする方法が一般的
ブックマークレットで外部jsを読む方法を調べれば実例見つかると思う
645636:2009/11/16(月) 13:10:55 ID:???
>>644
レスありがとう。
ブックマークレットのやり方をググってcreateElement&appendChildしてみましたが、
やっぱり表示できませんでした。
「ほにゃらら.js」の中身でdocument.writeとかやってるせいかなと思っているのですが、
「ほにゃらら.js」は一律じゃなく、こちらで中身を触れないのもあって、とりあえずこの方法も無理との判断です。

ですが、この方法を教えてもらったのをきっかけに、ある別の方法を思いつき、
ちょっと試したところ、やりたいことが実現できそうな目星がたちました。

ただそれがJavaScriptの文法的に正しいのか自信が無くて、
他のブラウザでも汎用的に通用するのか、もう少しテストしてみて、改めて相談に伺います。
その時はまたよろしくお願いします。
646Name_Not_Found:2009/11/16(月) 13:20:39 ID:???
application/xml笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
647Name_Not_Found:2009/11/16(月) 14:54:36 ID:???
>>646
失笑の爆笑をしてらっしゃるところに質問なのですが、application/xmlで駄目な理由を詳しく教えてもらえますか?
648Name_Not_Found:2009/11/16(月) 15:29:38 ID:???
理由も知らないでapplication/xml使ってたのかよ笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑
649Name_Not_Found:2009/11/16(月) 15:55:55 ID:???
なーんだ答えられないのか
聞いて損した
650Name_Not_Found:2009/11/16(月) 17:27:10 ID:???
文字参照を使うなら、application/xmlかapplication/xhtml+xmlじゃないと駄目だよ
IEは相変わらず機能しないけど
651Name_Not_Found:2009/11/16(月) 17:39:44 ID:a2Nmfpeo
>>639
クォートで括ったそれは文字列リテラルで、"*pdf*"という文字列と
一致するかどうかの比較。ワイルドカードとして機能しない。
正規表現リテラルはスラッシュで括ります。

/.*?¥.pdf.*?/.test(dl[i].href)

とかかな。乱暴すぎるだろうか。
652634:2009/11/16(月) 19:24:46 ID:VFLw7WPT
だ、誰かお助けを・・・
653Name_Not_Found:2009/11/16(月) 20:38:21 ID:???
>>634
XPathでの「body」は「名前空間なしのbody」の意味。
だから名前空間のあるXHTMLではそのままで動かない。
654634:2009/11/16(月) 21:07:22 ID:VFLw7WPT
>>653
名前空間プレフィックスは無しだからXPathは"//body"で合ってると思ったんですが、
どこがおかしいのでしょうか?

NSリゾルバはlookupNamespaceURI("")で"http://www.w3.org/1999/xhtml"をちゃんと返します。
655Name_Not_Found:2009/11/16(月) 23:00:41 ID:???
>>645
読み込んだだけでdocument.writeするjsをクリックイベントで読み込ませるのはどうかと思うけど、
document.writeを上書けば何とかなるんじゃ
656Name_Not_Found:2009/11/17(火) 00:30:45 ID:???
>>654
繰り返しになるけど、NSResolverがどう動こうと、XPath式の中のプレ
フィックスなしタグ名は「名前空間なし」と決まっているの。

だから、この場合はXPath式の中でプレフィックスを付けて自分で
NSResolverを提供するか、//*[local-name()="body" and namespace-url()="..."]
と書く必要がある。

657634:2009/11/17(火) 00:36:14 ID:???
>>656
理解できました。ありがとうございます。
658Name_Not_Found:2009/11/17(火) 10:15:03 ID:???
文字列をつくるのに、クオテーションやダブルクオテーションを使いますが、Perlのように
q/文字列/ みたいな記法はないのでしょうか?
659Name_Not_Found:2009/11/17(火) 10:42:53 ID:???
RegExp コンストラクタ
660Name_Not_Found:2009/11/17(火) 11:24:00 ID:???
q/文字列/みたいな記法はないが似たような事は可能

function q(s) {
 s += "";
 return s.replace(/\//g, "");
}

var a = q(/"""'''/);
alert(a);
661Name_Not_Found:2009/11/17(火) 12:48:16 ID:???
>>660
なるほど、関数を作れば似たようなことができるんすね。
d
662Name_Not_Found:2009/11/17(火) 15:44:28 ID:/uatvqzf
専ブラのjane等のようにアンカーをマウスオンすると
その上にポップアップ(ブラウザが開くタイプではなく、レイヤー?というタイプだと思います)して、特定のHTMLファイルを読み込んで表示したいのですが、参考になるサイトがあればご教授下さい
663Name_Not_Found:2009/11/17(火) 16:20:07 ID:???
教授はあげません
664Name_Not_Found:2009/11/17(火) 16:42:07 ID:???
ご教示だな。
665Name_Not_Found:2009/11/17(火) 17:08:32 ID:PFN85Hw+
666Name_Not_Found:2009/11/17(火) 20:20:12 ID:PFN85Hw+
サーバ負荷が高まった時に、レスポンスが遅くてイラついた
ユーザがリロードするのを抑制したくて、とりあえず

サーバ側で高負荷時にフラグを立てて
JS側で、フラグONなときにショートカットとF5を
抑制することにしたんですが、

リロードそのものをどうこうすることって、できるんかね?
667Name_Not_Found:2009/11/17(火) 20:32:27 ID:???
うざす
668Name_Not_Found:2009/11/17(火) 20:50:41 ID:???
>>660
斬新な発想だなw
s += "";は文字列変換したいんだよな? String()でキャストしたほうが見た目もパフォーマンスもいい
あと replace(/\//g, "")だと/が全部消える。replace(/^\/(.*)\/$/g, "$1") とか。
で、こんな感じ。
function q(s) {
 return String(s).replace(/^\/(.*)\/$/g, "$1");
}
たださ、これ、q(/[/) とかがシンタックスエラーになるのよ。
残念だけど、実用的ではないな。
669リリン ◆1Fyv5SRcNU :2009/11/17(火) 21:06:48 ID:??? BE:366610076-PLT(36666)
JavaScriptで<html></html>内に記述した日時を取得してくるって可能ですか?´`
670Name_Not_Found:2009/11/17(火) 21:31:41 ID:???
>>668
パフォーマンスの話をするなら結果的に呼ばれるtoString()を直に呼ぶ方がいいはず

>>669
DOM操作の基本レベル
671Name_Not_Found:2009/11/17(火) 21:38:16 ID:???
>>669
可能です。
672Name_Not_Found:2009/11/17(火) 21:54:14 ID:???
>>668
/にしても[にしても(にしても、あんたのように何が書けて何が書けないかが
分かるヤツならどうとでもなるでしょ。
実用的って…んなもの考えて書いちゃいないって。勘弁してよw
使いたいヤツが使えるようにすりゃいいのよ。
673Name_Not_Found:2009/11/17(火) 22:05:50 ID:PFN85Hw+
>>667
やっぱ無理かー。
いろいろ調べたんだけど、リロード自体とちゃんと向き合って
どうこうしたのは見つからんし。
674リリン ◆1Fyv5SRcNU :2009/11/17(火) 22:31:35 ID:??? BE:392796959-PLT(36666)
>>670
>>671
var obj = document.getElementsByTagName("html").innerText;
alert(obj);

こんな感じでつか?
あんでぃふぁいんど としかでねー<(゚Д゚;)>ぬおーー
675Name_Not_Found:2009/11/17(火) 23:25:11 ID:???
>>672
アイデアは素直に面白いなーと思ったけど、
実用的じゃないと鵜呑みにしちゃってる感じの>>661 は困るんじゃないかなと思ってさ。
って、それなら安価を661にするべきだったな。すまそ
676Name_Not_Found:2009/11/17(火) 23:37:56 ID:h/dA56Cd
677Name_Not_Found:2009/11/17(火) 23:45:48 ID:???
カスとか言いながらググッてくれた貴様の優しさに東京市民が泣いた
678Name_Not_Found:2009/11/18(水) 00:16:20 ID:???
1943年東京都誕生
679Name_Not_Found:2009/11/18(水) 04:38:52 ID:???
>>676
safe サーチを off にして何を検索してるんですか//
680Name_Not_Found:2009/11/18(水) 18:28:19 ID:???
何ってナニでしょ
681Name_Not_Found:2009/11/18(水) 18:29:32 ID:???
んま〜お下品ですこと
682Name_Not_Found:2009/11/18(水) 21:03:32 ID:???
>>661
実用に耐えられるものを書いた(つもり)

/*******************************************
引数:正規表現リテラル(/ [ ] ( ) これらはエスケープ)
*******************************************/
function q(s) {
 function f(s1, s2, s3) {
  if (s3.charAt(s2 + 1) != '\\') return '';
  return s1;
 }
 return s.source.replace(/\\/g, f);
}

var a = q(/\\ \/ \[ \( " '/);
alert(a);

穴があったらフォローしてちょ
683Name_Not_Found:2009/11/18(水) 21:08:29 ID:???
穴があったら俺は入れる。
684Name_Not_Found:2009/11/18(水) 21:11:50 ID:???
おめーら下品すぎんだよ
おれのチンポでもしゃぶってろこのチンカスマンゲ
685Name_Not_Found:2009/11/18(水) 21:23:39 ID:???
>>682
関数にしてまで利用する処理なのか?それ
686Name_Not_Found:2009/11/18(水) 21:38:37 ID:???
>>685
知らん。
クォーテーションをエスケープすんのが面倒なんじゃないの。
687Name_Not_Found:2009/11/18(水) 22:46:56 ID:???
>>682

function q(s) {
 function f(s1) {
  return s1.substring(0, s1.length / 2);
 }
 return s.source.replace(/\\+/g, f);
}
688Name_Not_Found:2009/11/18(水) 23:24:18 ID:???
ぶっちゃけると、エスケープの手間を省こうとして
エスケープしないといけない文字の種類を増やしてるのは本末転倒だよね
689Name_Not_Found:2009/11/19(木) 08:10:58 ID:???
以下サイトにクロージャーの説明がありますが、

第3回 変数の宣言とスコープ − @IT
http://www.atmarkit.co.jp/fdotnet/ajaxjs/ajaxjs03/ajaxjs03_04.html

function myClosure(init) {
var cnt = init;

return function() {
return ++cnt;
}
}

var result = myClosure(10);

window.alert(result()); // 11
window.alert(result()); // 12
window.alert(result()); // 13


以下のように引数をそのままクロージャーに入れるのとは何か違いはありますでしょうか?

function myClosure(init) {
return function() {
return ++init;
}
}
690Name_Not_Found:2009/11/19(木) 08:53:33 ID:???
>>689
その例だと見てるスコープが同じだから違いがないなぁ
上の例は、

var cnt = init;

で初期化を考えてるんだろうから

var cnt = init || 0;

の方が良い気がする。引数なければ1からカウントってことで。
691Name_Not_Found:2009/11/19(木) 09:53:59 ID:???
>>690
なるほど。
レス、d
692Name_Not_Found:2009/11/19(木) 09:58:43 ID:???
Number の初期化に論理和演算子使う奴とかまだいたのかよ
arguments.length まで頭回らなくてもせめて Number() してくれ

alert(let (x = 'num') x++);
693Name_Not_Found:2009/11/19(木) 11:23:21 ID:???
or使うと不幸になるパターンあるのはわかるがそのコードでなにが言いたいのかわからねー
NaNはNaNだろ、つーかサンプルコードで当然のようにlet使うなよ
694690:2009/11/19(木) 12:49:10 ID:???
>>692
ごめん、Numberの初期化で論理和演算子ってダメなの?今まで気にしてなかった
arguments.lengthの話ってことは0だとfalseになるからってこと?

それと、alertのコードの意味がよくわからないのでそれも教えて
695636:2009/11/19(木) 19:22:37 ID:???
onclickでブログパーツを表示させたいと相談した>>636です。
あれからいろいろやってみて、↓でかなりいい線まで来ました。

<script type="text/javascript">
function Disp(js, x, y) {
document.getElementById('box').innerHTML = '<iframe id="blogparts" name="blogparts" width="' + x + ' height="' + y + '" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"><\/iframe>';
var iframeDocument = document.getElementById('blogparts').contentWindow.document;
iframeDocument.open();
iframeDocument.writeln('<html><head><title><\/title><\/head><body style="margin: 0px; padding: 0px;">' + js + '<\/body><\/html>');
if (!document.all) iframeDocument.close(); //IE除外※
return;
}
</script>

<div id="box"></div>
<a href="javascript:void(0);" onclick="Disp('<script type="text/javascript\" src="ほにゃらら.js"></script>', 160, 400); return false;">表示</a>

innerHTMLで書き出すのでは「ほにゃらら.js」を実行できないので、iframeを書き出して、その中にdocument.writeしてしまおうという発想です。

つづく
696636:2009/11/19(木) 19:24:07 ID:???
つづき

この方法で、動作確認しているFirefox 3.5.5、Google Chrome 3.0、Safari 4.0.4では完璧に表示できました。
しかし、IE 8.0ではcontentWindow.documentをclose()すると、ほとんどの場合、エラーも出ないままにIEが固まってしまいました。
※その回避のための「if (!document.all) iframeDocument.close();」

そこでまた相談なのですが、
1)IEがエラーで停止じゃなくてブラウザごとフリーズしてしまうというのは、この方法は他のブラウザでたまたま表示できているだけで、JavaScript的になにか根本的にまずいことをしてしまっているのか?
2)手法として問題ないのであれば、今のスクリプトだと、当然IEではcloseしていないので「ほにゃらら.jsをダウンロードしています」とステータスバーに表示されたままになってしまう。
 closeしても絶対フリーズするわけではなく、タイミングによっては表示ができるので、おそらくcloseのタイミングが早すぎるのだと思われる。
 ほにゃらら.js読み込み完了を判別してcloseする方法はないか?
 やってみたこととして、
 「<iframe 〜 onload="self.contentWindow.document.close();">」
   ↑iframeにonloadを仕込む。
 「iframeDocument.writeln('<html> 〜 <\/html><script type="text/javascript">self.document.close();<\/html>');」
   ↑contentWindow.documentに書き出す内容の最後に自身をcloseするスクリプトを追記する。
 「iframeDocument.writeln('<html> 〜 <body 〜 onload="self.document.close();">');」
   ↑contentWindow.documentに書き出したbodyにonloadを仕込む。
 は、いずれもダメでした。

いかがでしょうか?どうかいいアイデアをご教示願います。
697Name_Not_Found:2009/11/19(木) 19:27:25 ID:4k1oW1OP
ブラウザIEなんですが、

<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html;charset=UTF-8N">
<TITLE>あ</TITLE>
</HEAD>
・・・というHTMLがあって、

var titleTag = document.all.tags("HEAD")[0].children(1).tagName;
とすると、TITLEではなくMETAになるんですが、
HEADのchildrenは勝手に並びかえられて、HEADのfirstChildは必ずTITLEになるという決まりがあるのでしょうか?
698Name_Not_Found:2009/11/19(木) 19:38:53 ID:istAjeXH
javascriptを覚えることとjqueryやprototypeを覚えるのは
どちらがweb制作現場で使える技術になりますか?
699Name_Not_Found:2009/11/19(木) 20:07:46 ID:???
最低限、HTML(HTML4.01/5.0/XML/XHTML1.0|1.1),CSS(CSS2.1/3),JavaScript,PHP,WAI(アクセシビリティ)は使えるようになった方が良い
700Name_Not_Found:2009/11/19(木) 20:26:28 ID:???
>>695
どこで利用したいのかわからないけど、思いついたこといくつか。
1、ほにゃらら.jsを書き換えられるなら関数で包んで、onclick=その関数
2、自分のウェブページとかでページをうpできるなら、ほにゃららJSを埋め込んであるページを作る。iframeのsrc="〜”の〜部分にそのページを入れる。
701Name_Not_Found:2009/11/19(木) 20:27:30 ID:???
>>698
現場だとライブラリを使いこなせるほうが助かる。
ただ、本質的にJSを理解したいとなれば、当然自分で
ライブラリを組んでみるなりしたほうがよい。
702Name_Not_Found:2009/11/19(木) 21:55:42 ID:Aafz5cdk
>>698
両方できないといずれ困る。っていうか
「来週からやる案件、JQuery使うから(使えないから)よろしこ」
「はい」
ってなるだけだけどね。
703Name_Not_Found:2009/11/19(木) 22:00:48 ID:???
>>699
2009/11/19現在で勧告段階でもないのにHTML5を使える人なんているんですか?
704Name_Not_Found:2009/11/19(木) 22:02:12 ID:???
>>703
もうYoutubeとかいろいろなサイトで使われてますがな
705Name_Not_Found:2009/11/19(木) 23:04:22 ID:???
試験用の先行対応を利用するとかえらい迷惑やね
706Name_Not_Found:2009/11/19(木) 23:09:27 ID:Aafz5cdk
707Name_Not_Found:2009/11/19(木) 23:12:29 ID:???
sectionに対応したブラウザが無いのにhtml5が使えると思ってる人って勘違い野郎ってことか
708Name_Not_Found:2009/11/20(金) 00:31:49 ID:???
「勧告段階でもないのに」とか…
HTML5は実装されて、使える状態になってからやっと勧告だからな。
CSS2.1とかも勧告候補だけど、普通に使われてるし。
勧告されるまで律儀に待つというなら止めないけど、完全に取り残されるぞ…
実際、Firefox3.6にはHTML5パーサー載ってて、html5.enableをtrueにすればもう試せるようになってる。
709Name_Not_Found:2009/11/20(金) 00:35:52 ID:???
試すのはいいが、まだ独自拡張状態だからな
710Name_Not_Found:2009/11/20(金) 00:45:40 ID:3jkPr5Fz
何をもって使えないって言ってるかだよね。
IE以外はある程度使えると実感してるけど。canvasとか。
web storageも使えてるなぁと実感してるけど、確かにそれぞれのブラウザの独自拡張とかもあるからそう言う面ではまだってことか。
711Name_Not_Found:2009/11/20(金) 00:59:08 ID:???
712Name_Not_Found:2009/11/20(金) 06:56:11 ID:???
HTML5の半分以上は意味論の再定義と現実装の後付け標準化なんだから
勧告段階だのサポートだの言ってる奴はHTML5をFlashか何かと勘違いしてる
713Name_Not_Found:2009/11/20(金) 07:54:21 ID:???
HTML5で大騒ぎ(?)してるけど、新規タグや要素などが追加されるって話であって、
<開始タグ>〜</終了タグ>というマークアップ言語としては変わらないんでしょ?
だったら何も問題はないじゃない。
ttp://dev.w3.org/html5/spec/Overview.html
あぁ、doctypeが大きく短くなるのは非常に歓迎する。
714Name_Not_Found:2009/11/20(金) 08:04:30 ID:???
発端は>>699
JavaScriptから話がそれた
715Name_Not_Found:2009/11/20(金) 10:15:36 ID:???
XHTML1.1なんていまさら使う機会なんてないよ
716Name_Not_Found:2009/11/20(金) 10:19:02 ID:???
質問です。

jQueryを使用していて、

$(this).css("backgroundColor","red");

みたいにやると、thisの指し示す要素の背景色を赤くできると思うんですけど、
thisの指し示す要素の中にある「#hoge」の背景色を赤くしたい場合、
どのような書式にすればよいのでしょう。

$("#fuga > #hoge").css("backgroundColor","red");

みたいなことをしたい時に、「#fuga」の部分が「this」になると書き方がわからないのです。
JavaScriptの根本が全く理解できていないせいだとは思うのですが。。。
717Name_Not_Found:2009/11/20(金) 10:38:41 ID:???
こんなの作れる奴ってここにいるの?
ttp://www.chiptune.com/
718Name_Not_Found:2009/11/20(金) 10:43:56 ID:???
技術的にという意味ならいる
719Name_Not_Found:2009/11/20(金) 10:45:57 ID:???
ノシ
720Name_Not_Found:2009/11/20(金) 10:58:20 ID:???
そういうのって行動力が評価されるべきだろ
721Name_Not_Found:2009/11/20(金) 11:01:48 ID:???
>>716
すみません(たぶん)自己解決しました。
jQueryの仕様の中に普通にあったみたいで、

$("#hoge", this)

とすれば、(ちょっと自信ないですが)okだという認識で落ち着きました。
お騒がせしました、ありがとうございます。
722Name_Not_Found:2009/11/20(金) 11:21:01 ID:???
>>721
children()かfind()使ったらええやん
723Name_Not_Found:2009/11/20(金) 11:28:04 ID:???
>>722
children()とfind()についてリファレンス見てきました、理解できたつもりです。

どんな命令が予め用意されてるのかすら把握できていないことは自覚できたので、
もう一度リファレンス等きちんと読んで勉強してきます。
ありがとうございます。
724Name_Not_Found:2009/11/20(金) 11:37:32 ID:???
参考のためそのリファレンスを教えてください
725716:2009/11/20(金) 11:47:17 ID:???
URL直接貼るのはどうなのかな、いいのかな
私が今見てるのは、「jQuery リファレンス」でググると上の方に出てくる、以下3つです。

www.openspc2.org/JavaScript/Ajax/ref/jQuery/ver1.0.3/index.html
semooh.jp/jquery/
www.mikage.to/jquery/jquery_ref.html

かなり初心者なのでどういう情報を参考にするとよいのかも自信ないんですが、
ひとつ見てもよくわからない場合とかに複数のサンプル比べながら目を通したりして、
まあ、少しずつ勉強してるつもりです。
726>>636 = >>695:2009/11/20(金) 12:56:50 ID:??? BE:3196368678-2BP(100)
>>700
レスありがとうございます。
利用場所というか目的は見たまんまだと思うんですが、ブログパーツギャラリーみたいなのを構築しています。
というわけで、ほにゃらら.jsの中身は千差万別で、書き換えることもできません。

で、ごめんなさい。
本当はIEの場合の回避は、今回問うているclose問題とは違う理由から>>700の2の方法でやっています。
ただ、自由にページを増やせる環境でなく、今やっている別ページの埋め込みも、
それ専用のページが作れないので、いろいろ無理をしており、できれば単独ページで完結させたいのです。
その辺を説明しだすと回りくどくなるかと思い触れなかったのですが、
結果的に同じところにたどり着いてしまいました。すみません。

他のブラウザではうまくいくのに、IEではハングしてしまうのが解せなかったのですが、
これについては、IEが特殊と思うしかないんでしょうかね。

仕方ないので、別ページを埋め込む無理を許容して、一応の完成としたいと思います。
ありがとうございました。
727Name_Not_Found:2009/11/20(金) 15:51:07 ID:u77XSZWV
教えてください。

ある会社のHPを作成しています。
その中にブログのページを作るのですが、最新のブログのタイトルとテキストを
表紙ページでも表示させたいのです。

そのときに、テキストは全文ではなくて、最初の3行程度だけ表示させて、
下に『続きを読む』と入れて、ブログのページにリンクさせたいのです。

『続きを読む』と入れて、ブログのページにリンクさせることは簡単なので出来ましたが、
ブログのページの最初の3行程度を表示させるところがわかりません。

JavaScriptを使うのかと思い、こちらに質問させていただきましたが、違ったらすいません。
728Name_Not_Found:2009/11/20(金) 16:04:42 ID:???
>>727
そういうのはサーバで全部やるのが普通

javascript使うのは「リンクをクリックしたらその部分に全文が表示される」という場合
要約にせよ全文にせよサーバがデータ吐かないと実現不可能なわけで、大概サーバもいじることになる

つーかどのブログシステム使ってるのかしらないけど、該当スレで聞けばいいだろ
有名どころなら特定のアドオンやテーマを使えば一発だったり、手順解説してる記事が存在してたりする
729Name_Not_Found:2009/11/20(金) 16:05:49 ID:???
javascriptで続きを読むという文字をクリックしたら
tuduki1にdisplay:noneにしてkiji1にdisplay:blockを設定

.kiji1 {
display:none;
}

あああああああああああああああ
いいいいいいいいいいいいいいい
ううううううううううううううううううううう
<div class="tuduki1">続きを読む</div>
<div class="kiji1">
えええええええええええええええ
おおおおおおおおおおおおおおお
かああああああああああああああ
</div>
730Name_Not_Found:2009/11/20(金) 16:09:29 ID:???
731Name_Not_Found:2009/11/20(金) 16:10:23 ID:???
失礼、MTやWPを想定してたけど表紙ページってブログ外か
俺ならそのページを動的生成にしてブログのRSSを埋め込む
javascriptでRSS表示する方法でもいいだろうけど、どちらかといえば最終手段だな
732Name_Not_Found:2009/11/20(金) 16:11:17 ID:???
>>727
コレデモヨンデロKS
ttp://ziddy.japan.zdnet.com/qa3133826.html
733Name_Not_Found:2009/11/20(金) 16:12:02 ID:???
>>727
メルアド晒してくれるのなら作ってもいいんですよ
734Name_Not_Found:2009/11/20(金) 16:12:40 ID:???
最初の三行だけ別のデータとして登録すればよかったりするけど
735Name_Not_Found:2009/11/20(金) 16:13:56 ID:???
>>727
それ俺が昔質問たことあるよ
>>1の過去ログ読んでから質問したの?
736Name_Not_Found:2009/11/20(金) 16:49:08 ID:???
まだ初心者だけど、そのブログが同一サーバー内にあるのなら内容をAjaxで取ってくれば
いいのかな?
737Name_Not_Found:2009/11/20(金) 17:10:12 ID:???
test999
738Name_Not_Found:2009/11/20(金) 17:14:04 ID:???
アクセスログ取得CGI(PERL)を先頭ページに仕込んでアクセスすると
”アクティブコンテンツをブロックした”というポップアップが出て
うざくてしかたありません。出さないようにするCGIの設定方法や、
HPへのJAVASCRIPTの記述方法はないものでしょうか?
739Name_Not_Found:2009/11/20(金) 20:44:25 ID:???
>>729
訓令式でtudukiはシビレる。
740Name_Not_Found:2009/11/20(金) 23:00:16 ID:???
人のソース見て、変数名とかが訓令式になってるのをを見るとヘボン式に直したくなります
741Name_Not_Found:2009/11/21(土) 01:21:52 ID:???
ローマ字綴りはうんこ
エヴァンゲリオンとヱヴァンゲリヲンを区別できない
742Name_Not_Found:2009/11/21(土) 01:27:12 ID:???
wevangerion
743Name_Not_Found:2009/11/21(土) 02:48:42 ID:???
>>727
「その中にブログのページを作る」とあるから同一ドメインだろ?
ならjQuery使えばいいんじゃね

<!-- 表紙ページ -->
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

<div id="nav"></div>
<div><a href="blogTop.html">続きを読む</a></div>

<script type="text/javascript">
$("#nav").load("blogTop.html #title, #contents");
</script>

<!-- ブログページ -->
<h3 id="title">タイトル</h3>
<div>
<span id="contents">表紙に表示させたいテキスト</span>
  ...
</div>

ブログの文字コードはUTF-8でなきゃダメよん
744Name_Not_Found:2009/11/21(土) 07:54:25 ID:66iDeqOB
公開されているライブラリやサイトで、
時々if文などで === が使われているのをみかけるのですが、
== と === の違いはなんでしょうか?

PHPだと === は、厳密な型の比較を行って == よりも高速に動作するみたいなのですが一緒でしょうか?
745Name_Not_Found:2009/11/21(土) 08:14:55 ID:???
JavaScriptは最適化の関係で厳密等価演算子を使うと遅くなる。
でも使い道が無いわけでもない
たとえば正常なら数値を、エラーが発生したらfalseを返す関数の場合、等価演算子をつかうと0とfalseの区別が出来ない
746Name_Not_Found:2009/11/21(土) 08:49:07 ID:66iDeqOB
>>745
ありがとうございます!

=== は、やはり厳密等価演算子でしたか。
しかしPHPと違って厳密等価演算子は遅くなるんですね・・・注意します。
747Name_Not_Found:2009/11/21(土) 12:56:07 ID:???
>>741
それはヘボン式が音写だから。訓令式なら翻字なので可逆変換。
748Name_Not_Found:2009/11/21(土) 13:13:40 ID:/DfmKa7m
ネスケでの__proto__は将来的にIEでも採用されますか?
749Name_Not_Found:2009/11/21(土) 13:26:35 ID:???
>>745
手間のかかる文字列比較以外は厳密比較のほうが速いはず
750Name_Not_Found:2009/11/21(土) 13:44:16 ID:???
文字列も同じだったかも?
とりあえず厳密比較のほうが遅いというソースがほしい

手元のFx3.5でおおざっぱに試してみたら、誤差程度か厳密比較のほうが倍ほど速かった
まあJITのご機嫌にも影響するけど
751Name_Not_Found:2009/11/21(土) 14:46:22 ID:???
if (file1.match(/abcd/)) {
document.write("OK");
}

file4まである場合
file1〜file4の4つの値全てにabcdが入ってる場合だけOKと表示させたい場合は
どう書くのでしょうか?
752Name_Not_Found:2009/11/21(土) 14:59:20 ID:???
4つだけなら && で繋げたら?
753Name_Not_Found:2009/11/21(土) 15:05:09 ID:???
>>751
&&でつなげるか、フラグを用意するか。

それと、その程度の検索であればindexOfを用いたほうがよい
754Name_Not_Found:2009/11/21(土) 15:26:03 ID:???
「厳密」って言葉のイメージとは裏腹に、
型変換をしない分、却って速いと思うんだけどな。
755Name_Not_Found:2009/11/21(土) 15:47:14 ID:???
>>753
ありがとうございます。
できました。

一応・・・
if ((file1&&file2&&file3&&file4&&file5).indexOf(/abcd/)) {
で合ってるでしょうか?
756Name_Not_Found:2009/11/21(土) 15:49:28 ID:???
あ、何か違いますね
if ((file1&&file2&&file3&&file4&&file5).indexOf("abcd")) {

これで合ってるでしょうか?
757Name_Not_Found:2009/11/21(土) 15:54:57 ID:???
ふ・・・増えてる・・・・?


wwww
758Name_Not_Found:2009/11/21(土) 16:13:21 ID:???
>>755
1時間くらいJSの基礎を勉強してこい
759Name_Not_Found:2009/11/21(土) 16:23:09 ID:???
基礎丸ごとだと一時間じゃ足りないかもしれないw
真偽値と論理演算について勉強してみて

オブジェクトの合成は普通できないけど(それぞれ専用の関数を用意した場合を除く)
trueやfalseになってしまえば合成できる

やりたいことは、愚直に書けばこういうことでしょ?
if (file1.match(/abcd/)) {
 if (file2.match(/abcd/)) {
  if (file3.match(/abcd/)) {
それが>>756みたいには化けないんだよ
でも複数のif文を一つに化けさせることならできる
760Name_Not_Found:2009/11/21(土) 16:46:00 ID:???
>>750
速くなるというより遅くならないというほうがしっくりくる
761Name_Not_Found:2009/11/21(土) 16:50:13 ID:???
0〜4までの値で、イベントに応じてこれが変動するarrayの値(point)があります。
sample[1].point:2
sample[2].point:3
sample[3].point:3
sample[4].point:2
sample[5].point:3
sample[6].point:1
sample[7].point:0
sample[8].point:4

これをhtml内に反映させて、

23323104

のように表示させる部分を作ったのですが、これらの数字のかわりに
GIF画像を値に応じて表示させることはできますか?(0なら○○.gif、1なら××.girのように)
ネットでいろいろと調べてみたのですが、これといったものが見つけられませんでした。

ここ一週間ほど行き詰まっています。
当方初心者です。アドバイス、もしくはお叱りだけでもかまわないのでよろしくお願いいたします。
762Name_Not_Found:2009/11/21(土) 16:51:30 ID:???
検索する対象が増えたらどうするの?
こう↓すればいいの?

var file_;
for ( var i = 1; i < 5; i++ ) {
  eval( "file_ = file" + i );
  if ( file_.indexOf("abcd") ) break;
}

if ( i == 5 ) document.write("OK");
763Name_Not_Found:2009/11/21(土) 17:18:45 ID:OBIjUl2O
>>762
そのくらいでeval必要ないだろ。あとindexOfは位置を返すからそれだと正常な状態でもbreakする

var files = ['abcde','abcdf','abcdg','abcdh','abcdi',];
for (var i=0,l=files.length; i<l; ++i) {
  if (files[i].indexOf('abcd') < 0) {
    break;
  }
  else {
    if (i === l-1) document.write('ok');
  }
}
764751:2009/11/21(土) 17:19:13 ID:???
あら、755ではダメなんですね

>>759
ありがとうございますl。愚直なそれでいきます!
765Name_Not_Found:2009/11/21(土) 17:27:33 ID:???
>>762
どういう意図で eval 使ってるのか分からん。
766Name_Not_Found:2009/11/21(土) 17:52:53 ID:???
>>765
既存のローカル変数に動的にアクセスしたいからでしょ
コンテナ使わずに、動的にアクセスしたくなるほど変数を作った時点で破綻してるわけだけど
767Name_Not_Found:2009/11/21(土) 18:02:02 ID:95sN+lT1
>>761
「イベントに応じて」っていうのがよくわからないし、
表示部分をどうしているのかによるけど、
エスパーしてみると、今は

for (var i = 1; i <= 8; i++) { //sample[i]の添え字は1〜8なんだよね?
document.write(sample[i].point);
}

みたいになってる?
だとしたら、0〜4までの値で表示させたい画像をそれぞれ、
0:○○.gif
1:××.gif
2:□□.gif
3:△△.gif
4:◇◇.gif
として、

var img = new Array('○○.gif', '××.gif', '□□.gif', '△△.gif', '◇◇.gif');
for (var i = 1; i <= 8; i++) {
document.write('<img src="' + img[sample[i].point] + '" />');
}

みたいな感じ?
768Name_Not_Found:2009/11/21(土) 19:30:32 ID:???
文字列にHTML含めるな
769Name_Not_Found:2009/11/21(土) 19:42:39 ID:OBIjUl2O
>>768
横レスだけどinnerHTML使わずにDOMでやれってこと?
770Name_Not_Found:2009/11/21(土) 19:47:03 ID:???
DOMなんてそんなに難しいわけではないし
script要素内はPCDATA(バージョンによってCDDATAだが本来はPCDATAとして扱うべき)だからそもそも使えない
ttp://www.openspc2.org/JavaScript/JavaScript_DOM/
771Name_Not_Found:2009/11/21(土) 20:32:30 ID:OBIjUl2O
DOMが難しいかどうかは別にして、簡単に使えるinnerHTMLを全く使わないってのももったいなくない?
PCDATAの理由なら
<![CDATA[
]]>
で囲めば良いし、外部ファイルにすれば良いって話じゃない?
772Name_Not_Found:2009/11/21(土) 20:33:59 ID:???
いや、全然。
773Name_Not_Found:2009/11/21(土) 20:42:52 ID:???
質問です。

横幅のピクセル数が決まっているdivにフォントサイズの決まったテキストを入れる時に、
右端で折り返す必要のあるとき、あらかじめ何行になるか知る方法はないでしょうか?

3行以上になるならば、残りを省略して2行に抑える処理を入れたいと思っています。
たとえば「長すぎるテキストメッセージ」を「長すぎるテキス...」という風に変更したいわけです。

何か良い方法やアイデアがあればぜひ教えてください。よろしくお願いします。
774Name_Not_Found:2009/11/21(土) 20:50:44 ID:???
>>773
一定文字数で切っちゃったら?文字列の種類で長さが微妙になるけど・・・

>>771
それつかうと>>695が出来るようになる?
775Name_Not_Found:2009/11/21(土) 21:26:17 ID:???
ここにある回答で、ときおりコードの中にコメント(/* */)があり、その中に@ifや@else@やらの
コードらしきものが書かれていますが、これにはどういう意味があるのでしょうか?

Enter キー 無効について -OKWave
http://okwave.jp/qa5464601.html
776Name_Not_Found:2009/11/21(土) 21:35:19 ID:???
条件付コンパイル
777Name_Not_Found:2009/11/21(土) 21:51:33 ID:???
>>776
d
778Name_Not_Found:2009/11/21(土) 21:52:05 ID:95sN+lT1
>>770
ごめん、解答しておいてなんだけど、
最近やっとDOM的な扱いを覚え始めてて、
PCDATAとかについてはまったく無知なんだけど、
>>767なら、

var obj = document.createElement('div');
var img = new Array('○○.gif', '××.gif', '□□.gif', '△△.gif', '◇◇.gif');
for (var i = 1; i <= 8; i++) {
var img = document.createElement('img');
img .setAttribute('src', img[sample[i].point]);
obj.appendChild(img);
}
document.getElementById('body内のどっか').appendChild(obj);

ってことであってる?
document.write('<tag>fuga</tag>');
とか、
document.getElementById('body内のどっか').innerHTML = '<tag>fuga</tag>';
ってのは、今の(?)ルールではやっちゃだめってことで?
779761:2009/11/21(土) 21:55:23 ID:???
>>767
ありがとうございました!
試行錯誤した結果、理想のものができました。
自力では100%できなかったんで、本当に感謝です!!!
780Name_Not_Found:2009/11/21(土) 22:42:08 ID:???
>>773

<div id="nav" style="border:1px solid; width:100px;"></div>

var str = "ああああああああああああああああああ".split("");
var s = "";
var obj = document.getElementById("nav");
for (var i = 0; i < str.length; i++) {
 obj.innerHTML += str[i];
 if(obj.offsetHeight > 40) {
  obj.innerHTML = s.substring(0, s.length - 1) + "…";
break;
 }
 s += str[i];
}

英数字が絡んでくると微妙なんだけどね
あとは工夫してちょ
781Name_Not_Found:2009/11/21(土) 22:46:59 ID:???
質問です。
簡易パスワード認証をかけたんですが、firefoxだとうまくいくのにIEではうまくいきません。
どうしたらいいでしょう。
<script type="text/javascript"><!--
function checkpw(){
   var pswd = prompt("パスワードを入力して下さい:","");
   location.href = pswd + ".html";
}
//--></script>

<form>
   <input type="button" value="秘密のページへ" onClick="checkpw();">
</form>

というソースを記載しています。
782Name_Not_Found:2009/11/21(土) 22:53:05 ID:lHVTQkPd
javascriptとDOMについて最近勉強を始めてみたのですが質問があります
javascriptはw3cで公開されているDOMの全てを操作することはできますでしょうか?
例えばhttp://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#i-DocumentのDOMImplementationというのはjavascriptから使うことは出来ますでしょうか
ググってみたのですがどれもJavaに関する記述でjavascriptではどうなのかなと疑問に思いました。
どなたかご教示お願い致します
783Name_Not_Found:2009/11/22(日) 00:38:21 ID:???
>>782
出来るかどうかは実装次第
検索ワードに javascript ってつけ足せばよくね?
個人的には MDC Search で十分だと思うけど
784Name_Not_Found:2009/11/22(日) 01:02:10 ID:???
>>782
IE以外なら、DOM Level 2までは確実に使えるよ。
DOM Level 3はブラウザによってまちまちかな。
てか、document.implementationとかでググれば普通にJavaScriptについての記述が出てくるけど…
785Name_Not_Found:2009/11/22(日) 03:03:02 ID:???
>>2の5の現行バージョン次スレで直してね
786Name_Not_Found:2009/11/22(日) 10:03:24 ID:???
getElementsByNameってinputタグみたいにname属性があるものしか取れないの?
divタグに無理矢理name属性つけてgetElementsByNameで取るとか不可能?
787Name_Not_Found:2009/11/22(日) 10:31:12 ID:???
id付けてidでとれよ
788Name_Not_Found:2009/11/22(日) 10:39:27 ID:???
getElementsByNameとかgetElementsByIDって標準でしょうか?
789Name_Not_Found:2009/11/22(日) 10:52:01 ID:???
まず標準を定義しようぜ
790Name_Not_Found:2009/11/22(日) 10:58:29 ID:???
DOM一覧をまとめたサイトをどなたかテンプレ追加していただけませんか?
791Name_Not_Found:2009/11/22(日) 11:43:44 ID:???
>>569
10日周期に書き込む気か
792790:2009/11/22(日) 11:50:21 ID:???
それ俺じゃないです
793Name_Not_Found:2009/11/22(日) 11:53:48 ID:???
検索使えば一覧なんて必要ないだろ
794Name_Not_Found:2009/11/22(日) 12:03:26 ID:???
テンプレに入れたいなら人任せにしないでURL貼れよ
知りたいだけなら小賢しいこと言ってないで素直に聞けばいいだろ
795Name_Not_Found:2009/11/22(日) 12:32:54 ID:???
>>794は初心者とみた
煽っておいて本当は自分が知りたいために人を利用するとか乙
796Name_Not_Found:2009/11/22(日) 13:33:47 ID:???
>>787
idじゃひとつしかとれねーし
797Name_Not_Found:2009/11/22(日) 13:43:41 ID:???
>>796
sorry,this thread is japanese only!!
798Name_Not_Found:2009/11/22(日) 13:52:32 ID:???
脳みそ腐ってんの?
799Name_Not_Found:2009/11/22(日) 13:59:17 ID:???
ジュワワ?
800Name_Not_Found:2009/11/22(日) 14:09:51 ID:???
innerHTMLだけだと限界があるんだよね・・変数上にDOMを構築出来ないとか色々と
801Name_Not_Found:2009/11/22(日) 14:10:46 ID:???
innerHTMLって初心者向きだと思ってるよ
802Name_Not_Found:2009/11/22(日) 14:48:23 ID:???
トラップだらけなのにどこが
803Name_Not_Found:2009/11/22(日) 16:13:10 ID:???
ブラウザが曖昧解釈してくれる言語は初心者向け……と言われてる気がする
804Name_Not_Found:2009/11/22(日) 16:44:44 ID:???
それは JavaScript を知らない人間の認識が間違っているだけ。
805Name_Not_Found:2009/11/22(日) 17:01:14 ID:???
子飼弾がYAPCで、「言語モドキのJavaScriptにできてPerlでできなわけがない」という
言及があった。
806Name_Not_Found:2009/11/22(日) 21:28:39 ID:???
ブラウザによって全然違うからそういわれても不思議ではない
807Name_Not_Found:2009/11/23(月) 08:37:56 ID:???
CanvasのgetImageDataって、canvasに外部画像読み込ませた上からやるとエラーでるっぽくない?
808Name_Not_Found:2009/11/23(月) 09:01:37 ID:???
same origin
809Name_Not_Found:2009/11/23(月) 16:33:58 ID:???
Web Workersを使ってマルチスレッドプログラミングに挑戦中です。
スレッドに引数を渡したいのですがどのようにすればよいのでしょうか?
810Name_Not_Found:2009/11/23(月) 16:50:17 ID:???
postMessage
811Name_Not_Found:2009/11/23(月) 17:39:06 ID:IOMrU+tq
>>810 ありがとうございます。今出先で確認できないのですが、postMessageは親→子の通信も可能なのですか?
812Name_Not_Found:2009/11/23(月) 17:51:50 ID:???
マルチは消えろ
813Name_Not_Found:2009/11/23(月) 18:09:59 ID:???
出先で質問するなよ
814Name_Not_Found:2009/11/23(月) 20:34:37 ID:???
<HTML><BODY><script type="text/javascript"><!--
for(x=1234000;x<=1234100;x++)
{
var flag=0;
if( (x % 2) == 0)
{
document.write(x+"<br>");
}else
{
for(y=1;y<=(sqrt(x)/2);y++)
{
if( (x % (2*y+1) ) == 0 )
{
flag++;
}
}
if( flag == 0 )
{
document.write(x+"Prime!<br>");
}
else
{
document.write(x+"<br>");
}
}
}
// --></script></BODY></HTML>
1234000〜1234100までの素数判定のプログラムを書いたつもりなのですが、何がいけないのでしょうか
815Name_Not_Found:2009/11/23(月) 21:02:37 ID:???
質問です。javascriptで出来ないことって何ですか?
816Name_Not_Found:2009/11/23(月) 21:06:21 ID:???
>>814
Math.sqrt
817Name_Not_Found:2009/11/23(月) 21:30:35 ID:???
>>815
他鯖侵入中雑都改竄。
818Name_Not_Found:2009/11/24(火) 00:32:51 ID:???
>>817
他の鯖に進入して中身を改竄することが出来ないっていう意味でいいんですかね。

javascriptを学ぼうと思っているんですが、何が出来て何が出来ないのかいまいちよく分からなくて。
それ以外の事は大体出来ると考えていいんでしょうか?
スレチだったらごめんなさい。
819Name_Not_Found:2009/11/24(火) 00:35:43 ID:???
出来ること以外は出来ない、と考えておけ
どうせ理論上可能でも現実的・能力的に不可能なことは山ほどある
820Name_Not_Found:2009/11/24(火) 00:38:49 ID:???
JavaScript 上達しても彼女できないし、生活は充実しないし(T^T)


あ、でも AV はいっぱい手に入りました(^^;)
821Name_Not_Found:2009/11/24(火) 00:39:08 ID:???
「自分に」が抜けてたスマン
結局、地道にチャレンジを繰り返すことで出来ることを増やしていくしかないんだよ
822Name_Not_Found:2009/11/24(火) 00:46:27 ID:???
JavaScript 上達しても自分に彼女できないし、生活は充実しn
823Name_Not_Found:2009/11/24(火) 00:50:06 ID:???
分かりました、ありがとうございました。
あともう1つだけ(スレチだと思うけど)質問させて下さい。
javascriptが理解出来るようになるまでどれくらい掛かりましたか?
824Name_Not_Found:2009/11/24(火) 00:53:28 ID:???
JavaScript は進化し続けるよ、いつまでも。


いくら AV を揃えても、新作が気になるのと同じ。
825Name_Not_Found:2009/11/24(火) 00:54:36 ID:???
分かりやすい説明ありがとうございます。
なんかやる気が出てきました。
826Name_Not_Found:2009/11/24(火) 05:46:57 ID:???
ホテル等の検索サイトや家電系の比較サイトのように、複数のサイトから同じ条件(料金や個数など)をフォームで指定し、その結果を1つのページに表示したいのですが、ソースが分かりません・・・
827Name_Not_Found:2009/11/24(火) 08:03:49 ID:???
>>826
webサーバにデータベース置いて検索してるだけ。jsの仕事じゃない。
828Name_Not_Found:2009/11/24(火) 13:18:05 ID:3CHH7Npu
>>823
理解したつもりになる→全然わかってなかったことに気づく、
の繰り返しでしょ。何事も。
829Name_Not_Found:2009/11/24(火) 13:36:30 ID:???
>>823
結局自分がどこで納得するかということだよ
830Name_Not_Found:2009/11/24(火) 13:38:04 ID:???
JavaScriptなんてたいして難しい言語じゃないよ
むしろ他からすると簡単
そう難しく考えずに気楽にすればいいんだよ
831Name_Not_Found:2009/11/24(火) 13:39:40 ID:???
>>824-825
>いくら AV を揃えても、新作が気になるのと同じ。
>分かりやすい説明ありがとうございます。
>なんかやる気が出てきました。

・・・おいおいw
832Name_Not_Found:2009/11/24(火) 13:49:23 ID:???
え? おいらもその説明に納得が行ったんだが、君は違うのかい?
833Name_Not_Found:2009/11/24(火) 14:29:20 ID:???
(訳:吹いた)
834Name_Not_Found:2009/11/24(火) 16:07:35 ID:r4ZX7Ioz
JavaScript買ったお^^
835Name_Not_Found:2009/11/24(火) 16:55:16 ID:vWQq4MUX
<div>header</div>
<div>あれこれ「はげ」です。
それこれ「ほげ」ではありません。</div>
<div>footer</div>

このdiv内(実際はもう少し長い)の「」で囲った部分を強調するように変換するには、
innerHTMLを使っていいなら、
document.getElementsByTagName('div')[1].innerHTML = document.getElementsByTagName('div')[1].innerHTML.replace(/「(.*?)」/g, '「<strong>$1<\/strong>」');
の一行で済むと思うんですが、
同じことをDOMを意識して(document.createElement('strong')などを使って)やるには、どうやったらいいんでしょうか?
一切innerHTMLを使わずにやれるんでしょうか?
836Name_Not_Found:2009/11/24(火) 17:14:41 ID:???
太字にするだけなら、id.style.fontWeightでいんじゃないん?
ツリーを再構築する必要もないし
837Name_Not_Found:2009/11/24(火) 17:24:56 ID:???
>>835
結果の状態をDOM inspectorみたいなのでツリー表示してみりゃわかると思う

手順的には、「ほげ」の前後でtextNodeを分割して
strongエレメントと「ほげ」をreplaceしてからappendする
838Name_Not_Found:2009/11/24(火) 18:26:26 ID:3CHH7Npu
>>835
replaceの第二引数に関数を渡してゴニョゴニョする。
839Name_Not_Found:2009/11/24(火) 20:39:45 ID:???
は?
840Name_Not_Found:2009/11/24(火) 20:52:30 ID:3CHH7Npu
>>839
あ、自分が以前やったとき、replaceに落ち着いたってだけで。
もっといいやり方があったら、ぜひぜひ!
841Name_Not_Found:2009/11/24(火) 21:06:38 ID:???
さいきんのにほんごはむつかしいねえ
842Name_Not_Found:2009/11/24(火) 21:47:02 ID:???
>>836とか>>838とか、なんでここにいるの? って感じだな
843Name_Not_Found:2009/11/24(火) 21:53:08 ID:q6LvWNk8
>>839とか>842みたいな日本語だけのレスよりはJavaScript使ってレスしてる方がまだマシだけどな
おかしなこと言ってればつっこめばいいだけだし
844Name_Not_Found:2009/11/24(火) 22:27:05 ID:3CHH7Npu
書いたの見つけてきました。
おかしいところとかあると思うんで、添削してもらえるとありがたい。

var target = 変換する対象となる要素。
var pattern = /(.*?)(「[^」]+」)/g;

(function(target){
    
    var c = target.childNodes , i = c.length - 1 , F = arguments.callee;
    
    for(; i>=0 ; i--)(function(node){
        if(node.nodeType == 1) F(node);
        else if(node.nodeType == 3){
            var baff = node.nodeValue.replace(pattern,function($0,$1,$2){
                var element = document.createElement("strong");
                node.parentNode.insertBefore(document.createTextNode($1),node);
                element.appendChild(document.createTextNode($2));
                node.parentNode.insertBefore(element,node);
                return "";
            });
            if(baff == "") node.parentNode.removeChild(node);
            else node.nodeValue = baff;
        }
    })(c[i]);
})(target);
845Name_Not_Found:2009/11/24(火) 22:53:51 ID:???
>.844
いつもそんな書き方してるの?
正直読みにくい
846Name_Not_Found:2009/11/24(火) 23:15:19 ID:zVVLsdRG
そこかい!
847Name_Not_Found:2009/11/24(火) 23:38:24 ID:???
強調するくらいでツリーごと変更するべきじゃないだろう…
848Name_Not_Found:2009/11/25(水) 00:23:22 ID:???
>>844
return "";ってなんだよ氏ね
849Name_Not_Found:2009/11/25(水) 00:54:16 ID:???
>>848
cで\0だったかな?例えてnullじゃなかった?
なんか懐かしいような
10年前に廃業したから違ったらすまん
850Name_Not_Found:2009/11/25(水) 01:00:16 ID:???
(function(target) {
  var doc = target.ownerDocument;
  target.normalize();
  var textNodes = doc.evaluate('descendant::text()', target, null, 6, null);
  for (let i = 0, len = textNodes.snapshotLength; i < len; i++) {
    let textNode = textNodes.snapshotItem(i);
    let [$0, $1, $2];
    let $3 = textNode.nodeValue;
    let parent = textNode.parentNode;
    let arr;
    while (arr = /([^]*?)「([^」]+)」([^]*)/g.exec($3)) {
      [$0, $1, $2, $3] = arr;
      $1 && parent.insertBefore(doc.createTextNode($1), textNode);
      parent.insertBefore(doc.createElement('strong'), textNode)
        .appendChild(doc.createTextNode($2));
    }
    $3 && parent.replaceChild(doc.createTextNode($3), textNode);
  }
})(target);
851Name_Not_Found:2009/11/25(水) 01:27:10 ID:???
悪化してんな
852Name_Not_Found:2009/11/25(水) 01:34:47 ID:???
ごめん 7 行目おかしかった
let $0, $1, $2, $3 = textNode.nodeValue;
これで動いたよ! きれい!
853Name_Not_Found:2009/11/25(水) 10:42:55 ID:???
アンデフィンドとナルの違いをわかりやすく詳しく教えてください。
854Name_Not_Found:2009/11/25(水) 12:22:39 ID:???
「ナル」は分かる。ナルはナルシストの意。
「アンデフィンド」はググっても見つからなかったから、多分固有名詞。
アンデフィンドさんのことをナルシストとか言ってただけじゃないかな。
855Name_Not_Found:2009/11/25(水) 12:26:59 ID:???
undefinedは値がないという値(消極的・暗黙的)
nullは空っぽという値(積極的・明示的)

ただ実用面でnullは滅多に使わない
856Name_Not_Found:2009/11/25(水) 12:28:50 ID:???
nullは初期化やmatch等の返り値を統一させるために使うくらいだな。
857Name_Not_Found:2009/11/25(水) 12:32:53 ID:???
まじで!?
undefined に比べたら null の方がよほど使ってるけど。
858Name_Not_Found:2009/11/25(水) 12:37:36 ID:???
return ""

クソワロス
859Name_Not_Found:2009/11/25(水) 13:08:25 ID:???
undefinedは滅多に使わないな。
使わないと言うか、大抵は宣言するから使わなくて済むことが多いな。

objを確認したい時にnullなら
if (! obj) {}
ってやるけど、undefinedは
if (typeof obj === 'undefined') {}
ってやってる
860Name_Not_Found:2009/11/25(水) 13:25:20 ID:???
>>856
すまん語弊があった
返値などで空であることを伝える必要があるなら俺もnullを使う
まさに明示する状況だし

だけどvoid(引数無しreturn)で返値がundefinedになることのほうが断然多いんだよな
変数やプロパティの初期値もundefinedだし
undefinedに比べて滅多にnullが使われないということが言いたかった

>>859
区別したいなら、nullチェックのほうにtypeofを使うべきじゃないか?
861Name_Not_Found:2009/11/25(水) 14:00:04 ID:txBM9G+t
だ、だれか>>850を解説してくれる御仁はござらぬか…

手元でコピペして7行目直して、targetに適当なエレメントノード渡したけど動かず。
missing ; after for-loop initializer
[Break on this error] for (let i = 0, len = textNodes.snapshotLength; i < len; i++) {¥n

ってなるけど、; は足りてるような気が…letのせい?
あと、ざくっと調べたんですが、IE6では動かない、ですかね?
862Name_Not_Found:2009/11/25(水) 14:05:04 ID:???
>>860
undefinedは'undefined'だからtypeofで確認してる
863Name_Not_Found:2009/11/25(水) 14:19:03 ID:???
>>861
javascript1.7だからIEはダメ
よく読んでないから保証しないけどvarに置き換えても動くはず

>>862
nullだってnull型じゃ・・・げ、"object"かよ
というかobj === nullでいいのか
864844:2009/11/25(水) 14:20:31 ID:jZeLnWCW
>>844です。
確かにbaffのところはおかしいです。
何か他の処理が挟まってたのか、または気が狂ってたかの、
どちらかかと思います…
865Name_Not_Found:2009/11/25(水) 14:35:10 ID:???
>>861
>>851が言っている「悪化」の意味は
 ・document.evaluate がIEにはない
  > var textNodes = doc.evaluate('descendant::text()', target, null, 6, null);
 ・let がIEにはない
  let は javascript 1.7 から。
  わざわざ遅くなる let を使う意味はない。
 ・安全ではない参照
  質問者がテストするときに $3 が変化する可能性が高い。

簡潔に書こうとする場所が間違ってるよ。
insertBefore のところを外部に出して汎用化した方が
読みやすくて良いじゃない。

function attachElement(name, node) {} と言うのを作って
ループ内は
attachElement('strong', textNode);
だけで終わった方が良いよ、後から直しやすい。
866Name_Not_Found:2009/11/25(水) 14:36:07 ID:???
>>854
ナルシストじゃなく、ナルシシスト。
867Name_Not_Found:2009/11/25(水) 14:44:38 ID:txBM9G+t
>>865
なるほど。
普段ちゃんと動くJSしか作ってないので、1.7とか疎くて。
古いIEが駆逐されるまでに勉強しようと思いました。
868Name_Not_Found:2009/11/25(水) 15:39:48 ID:???
>確かにbaffのところはおかしいです。
スペルからしておかしいことは気づいているのか?w
869844:2009/11/25(水) 18:07:00 ID:jZeLnWCW
べ、べつにbufferって書きたかったんじゃないんだから…///
870Name_Not_Found:2009/11/25(水) 21:07:05 ID:???
>>865
IE はどうでもいいが let が遅くなるのと安全ではないのをもうちょっと詳しく
871Name_Not_Found:2009/11/26(木) 00:23:15 ID:???
var undefined;
if( hoge === undefined )

でいいじゃん
グローバル変数一個使うけど
872Name_Not_Found:2009/11/26(木) 00:34:41 ID:???
(・・;)エ?


undefined はグローバル変換として定義済み。
わざわざ宣言して使うのは、ローカル変数にする場合。
873Name_Not_Found:2009/11/26(木) 00:35:56 ID:???
× グローバル変換
○ グローバル変数
874Name_Not_Found:2009/11/26(木) 00:43:24 ID:???
>>872
window.undefinedは書き換え可能なために不確実
typeofや宣言だけのローカル変数は確実

書き換えられる心配をする必要があるのかは俺にはわからんがね
875Name_Not_Found:2009/11/26(木) 00:56:15 ID:???
if( typeof(example) == "undefined" )
876Name_Not_Found:2009/11/26(木) 01:57:38 ID:???
undefined のチェックはこうやるもの。
if (hoge === void 0)
877844:2009/11/26(木) 02:53:28 ID:shG1f8EJ
なんか自分のせいで>>835が置いてきぼりになったみたいで申し訳ない。
878Name_Not_Found:2009/11/26(木) 04:34:28 ID:???
どうしてそう思ったのか知らないけどもう出てこなくていいよ
879Name_Not_Found:2009/11/26(木) 05:37:49 ID:???
dataスキームについて質問です。
<a href="dataスキームのurl">TEST</a>
という風にリンクタグを生成して
TESTの上を右クリック保存するときに
ファイルの名前を決めてやりたいのですが
どうすればよいのでしょうか
よろしくおねがいします
880879:2009/11/26(木) 06:48:05 ID:???
自己解決しました
自分の場合、特に拡張子の部分を独自のものにしたかったのですが、
textファイルなのでdata:text/plain,にして.txtで保存することにしました
881Name_Not_Found:2009/11/26(木) 16:41:38 ID:???
toSourceの逆な感じで、phpでいうjson_decodeみたいなものは無いでしょうか
よろしくお願いします
882Name_Not_Found:2009/11/26(木) 17:17:01 ID:yeQPEU7j
var i = 0;
var abc = 'Page ' + (++i);

この式の()についてですが、これはInt型をString型に変換するという認識でいいのでしょうか?
883Name_Not_Found:2009/11/26(木) 17:19:04 ID:???
インクリメント
884Name_Not_Found:2009/11/26(木) 17:39:52 ID:yeQPEU7j
インクリメントがないのもあります

var index = 123;
var def = 'ex' + (index) + 'sample);

どういうことでしょうか?
885Name_Not_Found:2009/11/26(木) 17:43:37 ID:yeQPEU7j
>>884 訂正
sampleの後の ) は ' です。

元の処理の記述も書いておきます。
function addTab(){
tabs.add({
title: 'New Tab ' + (++index),
iconCls: 'tabs',
html: 'Tab Body ' + (index) + '<br/><br/>',
closable:true
}).show();
}
886Name_Not_Found:2009/11/26(木) 17:45:24 ID:???
>>882-884
どっちも () なんか無くても動く。単に読みやすさのために
かっこで囲んで見せただけでは。
887Name_Not_Found:2009/11/26(木) 17:47:11 ID:yeQPEU7j
>>886
なるほど、特にプログラム的な意味はないのですね
値や処理動作が変わったりするのかと思い気になってました
ありがとうございます!
888Name_Not_Found:2009/11/27(金) 17:02:43 ID:???
DOMで、あるノードの親ノードが
インライン要素かブロック要素か判定する方法はありますか?
889Name_Not_Found:2009/11/27(金) 17:20:34 ID:???
node.style.display を見る。
890Name_Not_Found:2009/11/27(金) 18:19:32 ID:tCq/P/Bh
>>889
それだと、明示的にstyleプロパティが設定されてないとわからなくない?
(node.currentStyle || document.defaultView.getComputedStyle(node,'')).display

じゃないか?
891Name_Not_Found:2009/11/27(金) 19:29:36 ID:???
window.getComputedStyleで良くね?
document.defaultView・・・ってやたら良く見かけるけど、なんでわざわざ長く書くん?
892Name_Not_Found:2009/11/27(金) 19:33:57 ID:???
str.testfunc()
にして使うのと
testfunc(str)
みたい使うのとあるのですが
これってそれぞれ何か呼び名みたいなのが
あったと思うのですが忘れてしまいました
教えてくださいよろしくお願いします。
893Name_Not_Found:2009/11/27(金) 19:40:35 ID:???
>>891
ggrks
894Name_Not_Found:2009/11/27(金) 20:08:53 ID:???
>>892
関数とメソッドか?
895Name_Not_Found:2009/11/27(金) 21:09:10 ID:tCq/P/Bh
>>891
safariのため。safariのwindowにはgetComputedStyleがなくて、
document.defaultViewにある。
で、firefoxとoperaだと(chromeも?)document.defaultViewがwindowなので、
ちょっと長いけどこう書くと、このへんのブラウザがカバーできる。
896Name_Not_Found:2009/11/27(金) 21:42:17 ID:???
safari4.0.3、chromium4.0.222.3、opera10.10で試してみたけど、
getComputedStyle(〜).displayで取得できたよ

古いsafari?
897Name_Not_Found:2009/11/27(金) 22:07:36 ID:???
Safari2以前
Safari3以降はwindow.getComputedStyleでおk
898Name_Not_Found:2009/11/27(金) 22:31:45 ID:???
セキュリティアップデートが切れたブラウザをサポートしても……
899Name_Not_Found:2009/11/27(金) 22:37:17 ID:???
>>894
あ、そうかもしれません
たぶんそれです
ありがとうございました!
900Name_Not_Found:2009/11/27(金) 23:06:38 ID:???
replaceで正規表現使うときに
patternを文字列にできないのが不便なのですが・・
例えばstr.replace(/aiueo/,'');
みたいにaiueoのところをpattern='aiueo';みたいにしたいんですけど
/'aiueo'/ってなるとマッチしないんです・・
patternがかぶるものが複数でてきたときにpattern=aiueo;ってやるとエラーでちゃうし
何か上手い方法ないでしょうか
901Name_Not_Found:2009/11/27(金) 23:14:37 ID:???
new RegExp?
902Name_Not_Found:2009/11/27(金) 23:16:21 ID:???
903Name_Not_Found:2009/11/27(金) 23:19:30 ID:???
とほほの管理人○なねーかなあ
904Name_Not_Found:2009/11/27(金) 23:29:07 ID:???
>>901-902
str.replace(re,'');
でできました!ありがとうございました
905Name_Not_Found:2009/11/28(土) 05:41:05 ID:FxKf+clX
>>896,897
自分もsafari2以降、windowでも使えるようになったときかどうかなんて
調べてすらいませんでした。
勉強になりました。

safariいいブラウザだと思うんだけど、デバッガの使い勝手が
firebugの方がいいんで、どうしても後回しになるというか…
906Name_Not_Found:2009/11/28(土) 09:41:43 ID:???
対応するのは1世代前で良いと思うわ。
IE7以上
Firefox3以上
Safari3以上

Operaは10以上
907Name_Not_Found:2009/11/28(土) 11:26:56 ID:???
1世代前と言うか、サポート切れのブラウザには対応すべきじゃないと思う
908Name_Not_Found:2009/11/28(土) 12:04:51 ID:???
IE以外のブラウザを使っている人は大概、最新にしているから、IEだけIE6以上に対応させれば
いいよね?
909Name_Not_Found:2009/11/28(土) 12:22:26 ID:???
JavaScript ば IE6 対応でいいげんども、CSS についでば早う切り捨てたいのう
910Name_Not_Found:2009/11/28(土) 15:00:41 ID:???
IE6対応は別料金DEATH!
911Name_Not_Found:2009/11/28(土) 15:02:50 ID:???
医療費に関しては日本がかなり特殊なんで、日本基準で考えてるとおかしな事に
なるぞ
912Name_Not_Found:2009/11/28(土) 15:03:52 ID:???
誤爆orz
913Name_Not_Found:2009/11/28(土) 15:15:38 ID:???
IE8は高度先進医療扱いになってボられるんですね、わかります
914Name_Not_Found:2009/11/28(土) 15:42:40 ID:???
IE8はスパコン扱いになって後継開発が廃止になるんですね、わかります
915Name_Not_Found:2009/11/28(土) 18:43:38 ID:???
>>906
Opera だけ何でそんなに厳しいんだ?
916Name_Not_Found:2009/11/28(土) 19:26:03 ID:???
IE以外のユーザはリテラシ高いことが多いから最新版を要求しても問題ない。
IEはオフィスやネカフェみたいな自由が制限された環境で使われることも多いので、できれば6位まではサポートしたい。
917Name_Not_Found:2009/11/28(土) 19:29:20 ID:???
1位〜5位を教えてください
918Name_Not_Found:2009/11/28(土) 20:21:16 ID:???
>>915
Opera9はXMLHTTPReqestが酷くなかったっけ
919Name_Not_Found:2009/11/28(土) 20:42:25 ID:???
8 は酷いが
9 はそこまでじゃない。が、
9.5 以下は対応したくないな。
920Name_Not_Found:2009/11/28(土) 23:21:03 ID:???
Opera なんてユーザーが壊滅的に少ないんだからみんな最新版使ってるだろ
ウンコ Opera の糞バージョン使ってる変態なんてスルーすべき
921Name_Not_Found:2009/11/28(土) 23:31:20 ID:???
すべきかどうかは個人が判断することだよ
指針にするようなもんじゃない
922Name_Not_Found:2009/11/29(日) 01:36:26 ID:???
セキュリティに問題がある古いバージョンに対してはスルーすべきと言うか、警告を出すべきじゃないかと
923Name_Not_Found:2009/11/29(日) 02:59:09 ID:???
<!--[if IE]>
<iframe src="ttp://goggle.com/"></iframe>
<![endif]-->
924Name_Not_Found:2009/11/29(日) 05:12:52 ID:pmzIHy4G
初心者です。。。
ボタンをクリックで1から10までの和を計算して、
結果をアラートで表示するjavascriptを書かなきゃなんですが誰か教えてください><
925Name_Not_Found:2009/11/29(日) 05:18:58 ID:???
alert(55);
926Name_Not_Found:2009/11/29(日) 05:24:47 ID:???
女子高生です。。。
ボタンをクリックで1から10までの和を計算して、
結果をアラートで表示するjavascriptを書かなきゃなんですが誰か教えてください><
927Name_Not_Found:2009/11/29(日) 05:36:27 ID:???
由香里 35歳 人妻です。。。
ボタンをクリックで1から10までの和を計算して、
結果をアラートで表示するjavascriptを書かなきゃなんですが誰か教えてください><
928Name_Not_Found:2009/11/29(日) 05:39:36 ID:???
alert("女の子? かわいいね〜 乳首ダブルクリックしちゃうぞ^^");
929Name_Not_Found:2009/11/29(日) 09:00:47 ID:???
var num = 10;
alert( num * (num + 1) / 2 );
930Name_Not_Found:2009/11/29(日) 09:03:45 ID:???
>>929
それなら>>925でいいだろw
931Name_Not_Found:2009/11/29(日) 09:09:00 ID:???
var AP = function(a, n, d) {
return a + (n - 1) * d
};

alert(AP(1, 10, 1));
932Name_Not_Found:2009/11/29(日) 09:18:26 ID:???
>>931
何がやりたいんだよ
933Name_Not_Found:2009/11/29(日) 09:22:14 ID:???
>>931
var AP = function(a, n, d) {
return a + (n - 1) * d;
};
alert(AP(46, 10, 1));


こうですね、分かります。
934Name_Not_Found:2009/11/29(日) 11:05:52 ID:???
てれてれ
935Name_Not_Found:2009/11/29(日) 11:45:18 ID:q64M16CP
おまらちゃんと>>924の質問を理解してるか?
ボタンをクリックしてってところからもう抜けてるだろ。
正解はこれ↓動作確認済み。

<input type="button" value="クリックしてね" onclick="alert('結果は「' + prompt('1から10までの和を計算して、結果を入力しなさい。', '') + '」です。');" />
936Name_Not_Found:2009/11/29(日) 12:03:32 ID:nrMIsFRX
もう大喜利になってきてるじゃねーか
937Name_Not_Found:2009/11/29(日) 12:07:14 ID:???
10個入力フォームがあって、ボタンをクリックするとそのフォーム内の和をアラートさせるんじゃねーの
938Name_Not_Found:2009/11/29(日) 12:52:19 ID:???
<script>s=0</script>
左からクリックしてね☆
<input type="button" value="1" onclick="alert(s+=this.value)">
<input type="button" value="2" onclick="alert(s+=this.value)">
<input type="button" value="3" onclick="alert(s+=this.value)">
続きはまかせる
939Name_Not_Found:2009/11/29(日) 13:01:49 ID:???
>>938
文字列の連結になるだろ
940Name_Not_Found:2009/11/29(日) 13:12:13 ID:???
誰かやると思ったw
941Name_Not_Found:2009/11/29(日) 14:28:09 ID:???
これでどう?

<input type="text" id="num" value="10">
<input type="button" value="計算" onclick="var num=eval(document.getElementById('num').value);alert(num*(num+1)/2)">
942Name_Not_Found:2009/11/29(日) 14:38:26 ID:???
Operaってelem.href='http://〜〜/'
みたいなことできないっぽいですか?
943Name_Not_Found:2009/11/29(日) 14:38:47 ID:???
>>941
eval使うほどじゃないだろ
Numberのほうがよい
944942:2009/11/29(日) 14:41:49 ID:???
と思ったらできました
すいませんでした
945924です。:2009/11/29(日) 15:25:32 ID:pmzIHy4G
答えてくださった方々ほんとありがとうございます。
計算はたぶんできたんですけど
どこにボタンのフォームを書いていいのかわかりません;;
<HTML>
<HEAD>
<TITLE>計算</TITLE>
</HEAD>
<BODY>
<SCRIPT language="JavaScript">
sum = 0;
for( i = 1 ; i <= 10 ; i++){
sum += i;
}
document.write("1〜10の和: ",sum);
</SCRIPT>
</BODY>
</HTML>
946Name_Not_Found:2009/11/29(日) 15:40:09 ID:???
好きなとこに書けばいいと思うよ
947Name_Not_Found:2009/11/29(日) 15:56:51 ID:???
>>945
ボタンから呼び出すなら、その処理を関数にせんといかんよ
948Name_Not_Found:2009/11/29(日) 16:26:49 ID:???
>>945
いまひとつ?

<HTML>
<HEAD>
<TITLE>計算</TITLE>
</HEAD>
<BODY>
<SCRIPT language="JavaScript">
sum = 0;
for( i = 1 ; i <= 10 ; i++){
sum += i;
}
</SCRIPT>
<input type="button" value="計算" onclick="document.write('1〜10の和: ',sum)">
</BODY>
</HTML>
949Name_Not_Found:2009/11/29(日) 17:19:26 ID:???
scriptのlanguage属性は廃止予定じゃなかったっけ? 使えるけど。
あと、>>924の課題はalertでの表示と書いてないかい?
950Name_Not_Found:2009/11/29(日) 17:22:16 ID:???
おまえらそろそろ真面目に宿題解いてやれよ
951Name_Not_Found:2009/11/29(日) 17:38:03 ID:???
document.write() とか
952Name_Not_Found:2009/11/29(日) 17:50:41 ID:???
べっ別に>>950に釣られたんじゃないんだからねっ///

<script type="text/javascript">
function sum55(){
 var sum = 0;
 for(var i = 1; i <= 10; i++){
  sum += i;
 }
 alert(sum);
}
</script>
<button type="button" onclick="sum55()">calc</button>

個人的な好みだが、onclickは書きたくなかった。
953Name_Not_Found:2009/11/29(日) 18:07:51 ID:???
んことを気にするぐらいならbuttonごとJSで構築するだろ
954Name_Not_Found:2009/11/29(日) 18:10:47 ID:???
>>953
>>924氏が課題でcreateElementとか書いてたら、先生は間違いなく疑うだろがww
955Name_Not_Found:2009/11/29(日) 19:31:40 ID:???
textとかimageファイルだと、<a href="○○.jpg">ダウンロード</a>
ってしたときに、ブラウザ側で表示してしまうことが多いと思うのですが、
どうにかして、javascriptで保存画面(右クリックファイルを保存するで出てくる画面)
を強制的に出すことはできないでしょうか?
よろしくお願いします。
956Name_Not_Found:2009/11/29(日) 19:34:22 ID:???
できますん
957Name_Not_Found:2009/11/29(日) 19:34:32 ID:???
日本語でおk
958Name_Not_Found:2009/11/29(日) 19:38:54 ID:???
>>955

header('Content-Length: '.file_exists("teeeeeeeeeeeest.txt"));
header('Content-Disposition: attachment; filename="wwwwww.txt"');
header('Content-Type: text/plain);
readfile("teeeeeeeeeeeest.txt")
959Name_Not_Found:2009/11/29(日) 20:48:00 ID:???
960Name_Not_Found:2009/11/29(日) 21:25:26 ID:???
createXMLHttpRequest1();
hyouji();
setTimeout('document.body.innerHTML = ""',5000);

hyouji();の後5秒して白紙ページにしてまたcreateXMLHttpRequest1();へと、、って感じで
ループさせる事できますか?
for(;;){
使ってみたのですが表示すらされない勢いで繰り返してしまうのですが
reload以外で何か方法無いでしょうか?
961Name_Not_Found:2009/11/29(日) 22:27:32 ID:???
5秒後にreloadする場合は<meta httpe-equiv=...>を使うんじゃないの。
JavaScript関係ないけど。
962Name_Not_Found:2009/11/29(日) 22:41:34 ID:???
>>961
いえreloadはしないでページを空にして、また
createXMLHttpRequest1();

hyouji();

ページを空白
と繰り返したいのです。
for(;;){ でやるとテキストが表示されないではなく、ページを空にできないの間違いでした。
これだとブラウザがいつか固まってしまいそうなんで・・・
空にした後にcreateXMLHttpRequest1へ戻るにはどうしたら良いでしょうか。
963924です。:2009/11/29(日) 23:01:17 ID:pmzIHy4G
教えてくださったみなさんありがとうございました☆
まだまだ道のり長いけどがんばりますー!!
964Name_Not_Found:2009/11/29(日) 23:34:48 ID:???
スレが過疎って皆が暇してるときにまた来れば良いよ。
965Name_Not_Found:2009/11/30(月) 04:15:44 ID:???
出遅れたけどマルチスレッドで

== w.htm ==
/*<!--*/
onmessage = function(event) {
  var n = event.data;
  if (n <= 1) {
    postMessage(n);
    return;
  }
  var w = new Worker('w.htm');
  w.onmessage = function(event) {
    postMessage(n + event.data);
  };
  w.postMessage(n - 1);
};
/*--><button onclick="w=Worker('w.htm');w.onmessage=function(event)alert(event.data);w.postMessage(100);">push</button>*/
== /w.htm ==

Worker の相対パスに "." (ドット) が使えないのはなんで?
966Name_Not_Found:2009/11/30(月) 08:48:59 ID:???
げげ、出かけていたらもう965ですか。今回テンプレ変更なし?
もし参考サイト追加希望あるなら、具体的なURLも含めて提案
してね。それで異論なければすんなり入れてもいいかも。
次スレは975超えたら。
967Name_Not_Found:2009/11/30(月) 11:16:45 ID:AjmlJgni
>>965
> Worker の相対パス

ってなんぞ?Workerに渡している引数のこと?
使えなくないよ?
968Name_Not_Found:2009/11/30(月) 13:25:21 ID:???
>>967
そうそう、Worker の引数に指定する URL に
相対パスとして自分自身を表すドットが使えないって言いたかった
Firefox だと エラー: Failed to load script: . (nsresult = 0x805303f4)
って怒られるよ。
969Name_Not_Found:2009/11/30(月) 16:16:48 ID:AjmlJgni
>>968
Worker()が何かわからないけど、手元のFx3.0系で、簡単なAjaxで試した。
XHR.Open()の引数に"."もしくは"./"を渡したら、そのディレクトリの
デフォルトファイル(index.html)が返ってきたよ。

ローカルで(htmlファイルをブラウザにドロップして)やってないか?
970Name_Not_Found:2009/11/30(月) 17:15:30 ID:???
>>968とは違う症状だけど、AS・JS連携のページでエラー出たことがあったなぁ。
アクセス権の問題と判って、それ以来開発はlocalhostでやるようにしてる。
971Name_Not_Found:2009/11/30(月) 18:12:32 ID:???
ファイルのパーミッションによってJavascriptで処理を振り分けることって出来ますか?
972Name_Not_Found:2009/11/30(月) 18:16:48 ID:AjmlJgni
>>971
レスポンスが403なら振り分け、なら。
973Name_Not_Found:2009/11/30(月) 22:06:14 ID:???
thickboxに関して質問です。

thickboxを閉じた際にある処理を行いたいのですが、
ある事情でthickbox.jsは触れないのですが、
別のjsでthickboxが閉じられたことを判定することは可能でしょうか?

当然、jQueryの使用もありです。
974Name_Not_Found:2009/12/01(火) 01:59:05 ID:???
>>973
thickboxの終了命令がtb_removeだから、同名で宣言して上書きしてみたらどうかな?
fadeOutにコールバックを付けるなり、直接関数をコールするなり、何かグローバルのフラグを立てるなり。
975Name_Not_Found:2009/12/01(火) 10:02:54 ID:???
>>969-970
すまん、相対 URL のこと勘違いしてただけだったわ
ドットは自分自身じゃなくて基準 URL を表すんだなw
976Name_Not_Found:2009/12/01(火) 10:24:14 ID:???
まだ勘違いしているな
977Name_Not_Found:2009/12/01(火) 10:52:51 ID:???
アコーディオンメニューを採用したページを作りたくて悩んでいます。
その際、アコーディオンメニューを左に縦カラムとして配置し、右側に内容がそれぞれ
違う別ページを作成し、メニューからそれぞれのページへリンクさせたいと考えています。
この時、"category1"をクリックし、ddのメニューが開閉されると同時に
別ページ(ソース例ではcontents_a.html)へリンクする事は可能なのでしょうか。

左側のアコーディオンメニューが入ったdiv"left_box"は、
dreamweaverのテンプレート機能を使い全ページ共通にしていますがメニューの開閉が動作しません。
動作の条件として、
・jqueryを使用したい。(jqueryの他のプラグインを使用しているので、誤作動を避けるため)
・dtをクリックすることでddの内容の開閉が自由にできる。この時、クリックしていない別のdt下のddは自動的にたたまれる。

よろしくお願いします。


978977:2009/12/01(火) 10:55:43 ID:???
■下記htmlソース例■
<div id="left_box">
<dt><a href="contents_a.html">category1</a></dt>
<dd>
<ul>
<li><a href="contents_a01.html">menu 1-1</a></li>
<li><a href="contents_a02.html">menu 1-2</a></li>
<li><a href="contents_a03.html">menu 1-3</a></li>
</ul>
</dd>
<dt><a href="contents_b.html">category2</a></dt>
<dd>
<ul>
<li><a href="contents_b01.html">menu 2-1</a></li>
<li><a href="contents_b02.html">menu 2-2</a></li>
<li><a href="contents_b03.html">menu 2-3</a></li>
</ul>
</dd>
</div>
<div id="right_box">
コンテンツ内容
</div>
979977:2009/12/01(火) 10:57:46 ID:???
■css例■
#left_box{
width:200px;
float:left;
}
#right_box{
width:500px;
float:left;
}

■javascript例(jqueryを使用しています)■
$(function(){
var dd = $('dd','#left_box');
dd.hide();

$('dt','#left_box').click(function(){
var next = $(this).next();
dd.not(next).slideUp();
if(next.is(':visible')){
next.slideUp();
}else{
next.slideDown();
}
});
});
980Name_Not_Found:2009/12/01(火) 12:39:25 ID:???
981Name_Not_Found:2009/12/01(火) 13:12:41 ID:kNgtWQkI
function hello() {
hello = "こんにちは";
return hello;
}

定義関数の名前(hello)と、その定義関数内に作った変数の名前(hello)が被ったらまずいでしょうか?
982Name_Not_Found:2009/12/01(火) 13:17:19 ID:???
>>981
varをつけないと「内に作った」ではなくグローバル変数になるから
まずいと思うな。
983Name_Not_Found:2009/12/01(火) 14:45:36 ID:???
>>981
ローカルにせよグローバルにせよ結局問題が付きまとう。
スコープチェーンとか調べてみるといいかも。
984Name_Not_Found:2009/12/01(火) 15:27:08 ID:???
質問です
pngのアルファを変更してフェードイン・アウトの処理を行っているのですが
IE7の場合、アルファを変更したとたん半透明の抜きがgifのように単色抜きに変わってしまうのですが
勝手にアルファチャンネルが変更されてしまうのを回避する上手い方法はないものでしょうか?
テスト用に書いたソースを貼ります

<img id="testimg" src="hoge.png">
<script type="text/javascript">
 function alphaTest( alpha){
  obj = document.getElementById( "testimg");
  obj.style.filter = "alpha(opacity="+ alpha +")";
 }
</script>
<button onclick="alphaTest( 100);">画像不透明</button>
<button onclick="alphaTest( 50);">画像半透明</button>
<button onclick="alphaTest( 0);">画像透明</button>

よろしくお願いします。
985Name_Not_Found:2009/12/01(火) 15:36:57 ID:???
986Name_Not_Found:2009/12/01(火) 17:32:11 ID:???
>>984
IEのpngがおかしいのは仕様じゃなかったかな?
AlphaImageLoaderで出来るらしいけど、こっちでテストしてもなんかうまくいかなかった。
後は誰か任せた。
987Name_Not_Found:2009/12/01(火) 17:52:04 ID:4YWjthRa
正規表現で半角英数時とハイフンを書くときに[a-zA-Z0-9-]で合ってますでしょうか?
ググって出てきたサイトによってはハイフンを\でエスケープしているのも見ます[a-zA-Z0-9\-.]
javascriptではどちらが正しいのでしょうか?
988Name_Not_Found:2009/12/01(火) 17:58:33 ID:adkCyzKU
>>986
ああ、alphaImageLoaderのことは自分も知りたい。
alphaImageLoaderで貼った50%の透過pngを
filterでopacity=0にしてからopacity=100にすると、
透過度がなくなってしまう気がする。
989Name_Not_Found:2009/12/01(火) 19:32:18 ID:???
>>987
実際にコード書いて試せ…それが一番早い

-は[]内だとメタ文字
990Name_Not_Found:2009/12/01(火) 19:46:06 ID:???
Firefox3.5ではどっちも動いてしまいます
IE8だと\-と書かないと動きませんでした
991Name_Not_Found:2009/12/01(火) 20:18:11 ID:???
[]の中では、-は先頭に書けばエスケープ不要。
…だったっけ? それとも末尾?
992Name_Not_Found:2009/12/01(火) 20:31:56 ID:???
先頭だろが
993Name_Not_Found:2009/12/01(火) 20:43:48 ID:???
じゃあ[-0-9A-Za-z]で決まりか。
994Name_Not_Found:2009/12/01(火) 21:02:44 ID:???
995Name_Not_Found:2009/12/01(火) 21:08:55 ID:???
うめ
996Name_Not_Found:2009/12/01(火) 23:46:47 ID:???
おやすみ
997Name_Not_Found:2009/12/01(火) 23:50:01 ID:???
>>996
おやすみ。
998Name_Not_Found:2009/12/01(火) 23:55:40 ID:???
おやすみ
999Name_Not_Found:2009/12/01(火) 23:58:57 ID:???
999
1000Name_Not_Found:2009/12/01(火) 23:59:38 ID:???
このスレは1000の風になりました
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。