5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :Name_Not_Found:2009/02/21(土) 21:56:02 ID:???
まず >>2-10 読め! 続いて過去スレ全集を検索!

━━━本スレに書く事を許される者は以下の通り━━━━━
 一、JavaScriptはJavaとは別物であると知っている者
 一、自ら学んでJavaScriptコードを書く意思を持つ者
 一、ユーザに迷惑となるスクリプトを書かない者
 一、質問を分かる日本語できちんと説明できる者
 一、トラブルを再現する最小限のサンプルを貼れる者
 一、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者
━━━━━━━━━━━━━━━━━━━━━━━━━━━
自力で書く気がない人は他のスレへ(テンプレ末尾参照)。
前スレ http://pc11.2ch.net/test/read.cgi/hp/1230611894/l50
[必読]過去スレ全集 http://wing2.jp/~mirrorhenkan/2ch/javascript/
  (ずべて同一)  http://www2.atpages.jp/mirror/2ch/javascript/
          http://usamimi.info/~mirrorhenkan/2ch/javascript/
[必読]ガイド http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide
(GuideをReferenceに→Netscape版言語仕様。多くの実装が準拠:ECMA-262.ed3)
FAQ・注意・過去ログ・仕様書・関連資料・関連スレ>>1-10

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

3 :Name_Not_Found:2009/02/21(土) 22:01:37 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"」としないとページ移動しちゃうから。

4 :Name_Not_Found:2009/02/21(土) 22:02:01 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中でやるとか。

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

6 :Name_Not_Found:2009/02/21(土) 22:02:43 ID:???
ECMA-262 ed.3
http://www.ecma-international.org/publications/standards/ECMA-262.HTM
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (和訳)
W3C Document Object Model Technical Reports
http://www.w3.org/DOM/DOMTR
JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide (和訳)
http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference
http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference (和訳)
E4X (ECMAScript for XML)
http://www.ecma-international.org/publications/standards/Ecma-357.htm
http://www.ne.jp/asahi/nanto/moon/specs/ecma-357.html (和訳)
Mozilla Gecko DOM Reference, Netscape devedge
http://developer.mozilla.org/en/docs/Gecko_DOM_Reference
http://developer.mozilla.org/ja/docs/Gecko_DOM_Reference (和訳)
http://devedge-temp.mozilla.org/central/javascript/index_en.html
MSDN Library JScript / DHTML (現在日本語版は古杉)
http://www.microsoft.com/japan/msdn/library/ja/script56/html/js56jsoriJScript.asp
http://msdn2.microsoft.com/en-us/library/ms533050.aspx

7 :Name_Not_Found:2009/02/21(土) 22:03:03 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
オブジェクトなJSの基礎講座
http://chaichan.web.infoseek.co.jp/src/2ndthema.htm
【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!
Webサイト制作初心者用質問スレ Part 206
http://pc11.2ch.net/test/read.cgi/hp/1233121174/l50
CSS /* CSS・スタイルシート質問スレ 上級者用【71th】 */
http://pc11.2ch.net/test/read.cgi/hp/1205680031/l50
CSS/DHTMLバグ辞典スレッド 【第5版】
http://pc8.2ch.net/test/read.cgi/hp/1144494359/l50
役に立つ書籍は? 4冊目
http://pc11.2ch.net/test/read.cgi/hp/1172823674/l50
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

8 :Name_Not_Found:2009/02/22(日) 10:26:22 ID:???


9 :Name_Not_Found:2009/02/22(日) 14:31:14 ID:???
新スレ乙です。

早々に質問申し訳ないんですが
youtube等の動画をオーバーレイで表示させる
VideoBoxというものがありますが
これをzoomeというサイトに投稿した動画に対応させる方法はありますか?
zoome→ttp://www.zoome.jp/

すみませんが、よろしくお願いします。

10 :Name_Not_Found:2009/02/22(日) 14:58:13 ID:???
すいません、この事象は何か原因が考えられるでしょうか?
WindowsXP SP3 IE7の環境で
コンピュータの管理者アカウント(最初に作成したユーザ)で接続すると正しく表示されますが
その他のユーザでアクセスするとjavascriptのエラーになり画面表示がおかしくなります
(管理者権限でも一般アカウントでも・・・)
ttp://cinema.zaq.ne.jp/

同じPC内のアカウントで表示が正しくできる・できないって何か考えられる事はありますか?

11 :Name_Not_Found:2009/02/22(日) 15:19:50 ID:???
javascriptって付いただけで、この板に来るとはね・・・

PC初心者板に行けよ

12 :Name_Not_Found:2009/02/22(日) 15:20:22 ID:???
ぼ〜にゃんきゅーぐお でぐぐってもオミトロンのスレがヒットしない件。

13 :Name_Not_Found:2009/02/22(日) 17:14:07 ID:???
そりゃアカウントが違えば、各設定も違うだろうしな

14 :前スレ988:2009/02/22(日) 18:09:02 ID:???
レスありがとうございました!
教えていただいたものは全てうまく抜き出せました
こちらの質問の仕方が悪く、曖昧になってしまいすいませんでした

"楽しいかもね、そうかもね、そうじゃないかもね、そんなこともないかもね"
で、先頭の "楽" と、 "かもね" 以外は不特定の文字で
"楽"から始まり最初の"かもね"までを抜き出したいという意味でした
これだと一番理にかなっているもののはどれになるのでしょうか?

楽([^ね]*)ね
楽.*?ね
楽([^楽ね]*)ね
楽([^楽]*?)ね



15 :ぼ〜にゃんきゅーぐお:2009/02/22(日) 18:15:53 ID:???
>>14
^(楽.*?かもね)

>>12
Proxスレの住民確定だな。

16 :Name_Not_Found:2009/02/22(日) 18:20:17 ID:???
欲しい答えは
楽.*?かもね
でしょう。

17 :ぼ〜にゃんきゅーぐお:2009/02/22(日) 18:27:06 ID:???
検索対象文字列の先頭が "楽" と決まってるなら ^ は付けるべきだぞ。

18 :Name_Not_Found:2009/02/22(日) 19:17:10 ID:???
突然で申し訳ございません。

document.getElementById()

ってどういうことをするメソッドなのでしょうか。

よければ、教えてください。

19 :Name_Not_Found:2009/02/22(日) 19:21:33 ID:???
>>18
http://www.google.com/search?q=document%2EgetElementById%28%29

20 :Name_Not_Found:2009/02/22(日) 20:12:55 ID:???
>>18
( ゚д゚ )

21 :Name_Not_Found:2009/02/22(日) 20:21:27 ID:???
楽しいかもねって例の歌かと思った俺…

22 :Name_Not_Found:2009/02/22(日) 21:09:23 ID:???
document(ドキュメント内の).get(取得する)Element(要素を)ById(idによって)

ドキュメント内の要素をidによって取得するメソッドだね

23 :14:2009/02/22(日) 21:18:05 ID:???
ありがとうございました
正規表現 欲張り でもググってみました
楽.*? でよかったみたいです
楽が先頭に来るので>>15さんので完璧でした

24 :Name_Not_Found:2009/02/22(日) 21:19:29 ID:DLp6CqON
>>22
>>18
なるほど、解りました!!凄く解りやすいです!
わざわざ、お時間をとらせてしまい、申し訳ございません。ありがとうございました!

25 :Name_Not_Found:2009/02/23(月) 13:15:23 ID:5LRlcOYp
ブログの記事を書く時にプレビューしたいんです。
<script type="text/javascript">
function writeText(str) {
text = str;
text = text.replace(/\n/g,"<br>");
text = text.replace(/\s/g," ");
document.getElementById('p').innerHTML = text ;
}
</script>
<textarea name="html" rows="30" cols="60" onkeyup="writeText(this.value)"></textarea>
<p id="p">
</p>

どうしてもfontタグで色づけしたいんです。

プレビューに反映されないんです。

どうしたらいいんでしようか?

26 :Name_Not_Found:2009/02/23(月) 13:21:55 ID:???
>>25
alert(text);してみれば?

27 :Name_Not_Found:2009/02/23(月) 13:46:12 ID:5LRlcOYp
>>26
どういう意味?

とりあえずテキストエリアタグに記入した文字が表示される際
<font color="red">Test</font>を記入しても変化がないんです。><

<h1>とか<hr>とかは大丈夫なんですが・・・

28 :Name_Not_Found:2009/02/23(月) 13:49:37 ID:???
this.valueでは拾えないだろ
<textarea>はそのタグの間の文字列なんだから

29 :Name_Not_Found:2009/02/23(月) 13:50:15 ID:???
>>26はマークアップが崩れてる可能性のチェック

とりあえずFx3でdiv要素に対してのこれは動いた
div.innerHTML = '<font color="red">text</font>'

ブラウザが悪いかp要素の制限か知らないけど一挙一動を確認してみれ

30 :Name_Not_Found:2009/02/23(月) 14:03:48 ID:5LRlcOYp
>>28
値は拾えています。
ためしに<input type="text"でやったのですがそれでもだめでした。

<script type="text/javascript">
function writeText(str) {
text = str;
text = text.replace(/\n/g,"<br>");
text = text.replace(/\s/g," ");
document.getElementById('p').innerHTML = text ;
}
</script>
<textarea name="html" onkeyup="writeText(this.value)"></textarea>
<div id="p"></div>

やはり<font color="red">test</font>は赤くなかった・・・


31 :Name_Not_Found:2009/02/23(月) 14:08:14 ID:5LRlcOYp
firefoxでもだめでした。
こんなことに徹夜して悲しいです。見捨てないでください。

32 :Name_Not_Found:2009/02/23(月) 14:12:44 ID:???
Fx3に>>30の変更一切なしで赤くなるんだけど・・・

33 :Name_Not_Found:2009/02/23(月) 14:13:50 ID:???
素人ですが直感で、 writeText(this.innerHTML)

もちろん試してない・・・

34 :Name_Not_Found:2009/02/23(月) 14:14:10 ID:5LRlcOYp
バージョン2.0.0.11です。自分

35 :Name_Not_Found:2009/02/23(月) 14:17:23 ID:???
>>34
あほか、3にしろw
http://mozilla.jp/firefox/all-older
>Firefox 2 向けのセキュリティ更新の提供は、2008 年 12 月中旬をもって終了させていただきます。

36 :Name_Not_Found:2009/02/23(月) 14:23:43 ID:5LRlcOYp
3.0.6にして見ましたがだめです。
今まで、デスクトップに貼り付けてあった30のソースコードをhtdocsに入れてみ
試したら
まぁ〜〜〜〜〜〜っかwwwwwwwwwwwwwwwww

ホンとすみませんでした・・・

37 :Name_Not_Found:2009/02/23(月) 15:38:54 ID:???
うるせえあと200回謝れ

38 :Name_Not_Found:2009/02/23(月) 17:46:36 ID:???
このスレになんかワロタw

39 :Name_Not_Found:2009/02/23(月) 22:47:05 ID:???
alert((parseInt('FFFFFFFFFFFFF', 16).toString(16)));
alert((parseInt('FFFFFFFFFFFFFF', 16).toString(16)));

なんか7バイト(F14個)以上だと繰り上がっちゃうみたいなんだけど
どういう制限に引っかかってるのか分かる人いませんか?

MAX_VALUEよりずっと少ない値だと思うんだけど・・・・・・

40 :Name_Not_Found:2009/02/23(月) 23:16:26 ID:???
ごめんなさい
できたら>>9にも知恵をお借り出来ないでしょうか?

41 :Name_Not_Found:2009/02/23(月) 23:48:58 ID:???
>>39
alert(72057594037927939);
わからん

>>9
最終的に object か embed を表示するだろうから
そこを変えればいいんじゃないの?

42 :Name_Not_Found:2009/02/23(月) 23:54:29 ID:???
>>39
なんか書いてあったわよ。2^53までの整数はOKって。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/8_Types.html#section-8.5

alert(0x20000000000000.toString(16)) // 0x20000000000000
alert(0x20000000000001.toString(16)) // 0x20000000000000

43 :Name_Not_Found:2009/02/24(火) 07:37:48 ID:???
switchに値を渡して関数を実行させたいんですけど
下記のコードでは動きません

switch(foo){
case 'bar': function(){
処理;
}
break;
}

↑のような動作を実現したい場合はどのように書けばよろしいのでしょうか。

44 :43:2009/02/24(火) 07:52:02 ID:???
自己解決しました。

case 'bar': ( function(){
処理;
})();
break;

のように書くことで実行できました。

45 :Name_Not_Found:2009/02/24(火) 08:32:06 ID:???
その発想はなk(ry

俺はまだまだ未熟なのか・・・。

46 :Name_Not_Found:2009/02/24(火) 08:40:29 ID:???
前スレの最後のほうで同じネタがあったばかりだ。 ブックマークレットの function(){}() ね。

47 :43:2009/02/24(火) 08:56:47 ID:???
名前空間も汚染しないとかなんとかで
これがオススメされてたんで使いました。
というか他の方法が分かりません!

48 :Name_Not_Found:2009/02/24(火) 09:24:25 ID:???
書き方なんてどうとでも書けるよね? 何が分からないのか分からないw

function test1(){ 〜; }
function test2(){ 〜; }

switch(foo){
case 'bar': test1();
break;

case 'yah': test2();
break;

}

49 :Name_Not_Found:2009/02/24(火) 09:56:16 ID:???
>>48
あんたが知ってる事を>>43が知ってるとは限らんわな。
てかその書き方をしたくないって事位察することも出来ないの?
まあ俺が察することをあんたが間違いなく察するという保証も無いけどな。

50 :Name_Not_Found:2009/02/24(火) 09:56:29 ID:???
>>46
違う違う。方法なんぞは知ってる。発想の方。

switchは「場合分け」。つまり分岐させることが本題なのに、
構文上、前段のbreakと次のcaseがカッコで視覚的に区別されてがない。
要するに、個別の分岐が他の構文と比較して、見ただけでは分かりにくい。
switchを使った上でプログラムを見やすくするなら、
処理を最小にして、構文の輪郭をはっきりさせなきゃいけない。
switchにカッコを突っ込むぐらいなら、処理切り出して関数化すか、
ifで書き換える。

だから、そもそもswitch内に合法的にカッコ突っ込んで
複雑な処理させようって発想が俺になかったわけ。

で、>44見て、もちろんこれをそのまま使おうとは思わんけど、
なんとなく、この発想は他のどこかで使えるんじゃないか?的な
イメージもあったから、>45になったわけ。

51 :46:2009/02/24(火) 10:09:48 ID:???
ごめん、何が言いたいのかさっぱりorz
まあ解決したようでなによりです。

52 :Name_Not_Found:2009/02/24(火) 13:42:39 ID:???
>>43の書き方はObjectリテラルの文法。それをlabelの延長である
case文に適用しようとしてるからおかしくなる。(ごっちゃになってる)
labelは目印に過ぎなくて、取っ払っても分岐処理以外は
正しく動作する手続きにしないといけない。

つーか改行入れろよ、入れないからごっちゃになるんだよw
case 'foo':
(function(){})();
break;

>>50
>>47が言ってるようにスコープの問題。
分岐処理が長ったらしいなら>>48みたいにするべきだけど
それは(function(){})()で包むのとはまた別の話、ていうか包む必要がない。

もっともスコープが気になる状況というのは十中八九、switchの外側が
複雑すぎるから、ラップするまえにそっちのfunction切り分けを
考えるべきだろうけどね。

ただどちらにせよ、使い捨て関数に対してグローバルを汚すfunction文は
名前空間を気にしているこの状況ではあり得ない。やるならfunction演算子。
function func(){} // NG
var func = function(){}; // OK

53 :Name_Not_Found:2009/02/24(火) 15:55:38 ID:???
便乗的に質問。 >>44のfunctionを囲っている()を外すと動かなくなるのは何故??

54 :Name_Not_Found:2009/02/24(火) 16:03:59 ID:???
>>53
文法的におかしいから。
()の意味が不明瞭だからか、function演算子に優先順位が定義されてないせい。

55 :Name_Not_Found:2009/02/24(火) 16:12:01 ID:???
じゃあ俺も便乗しよう

>ただどちらにせよ、使い捨て関数に対してグローバルを汚すfunction文は
>名前空間を気にしているこの状況ではあり得ない。

時々このスレで言われてるけどこれがよくわからない
function文による匿名関数を乱発すると何故困るのかできれば教えていただきたい

56 :Name_Not_Found:2009/02/24(火) 16:15:29 ID:???
>>55
ダメと言ってるのはこれ。どう見ても無名じゃない。
function func(){}


57 :53:2009/02/24(火) 16:19:27 ID:???
>>54
なるほど、どうもありがとう。
匿名関数を書き換えて名前ありの関数にしてみたら () 無しでも動きました〜!

58 :Name_Not_Found:2009/02/24(火) 16:24:28 ID:???
もうちょっと書こうか。

function func1(){} // function「文」はグローバル
func2 = function (){}; // func2がグローバルだから実質的にfunc1と同様

function f(){
 var func3 = function foo(){};
 // 変数func3はf()関数内ローカル
 // 関数そのものに名前は付いてるけどfunction「演算子」ではfooは定義されない
 // このfooはtoStringでのデバッグプリントや再帰呼び出しに用いられる

 function func4(){}
 // エラーは出ないけど関数内でのfunction文は本来不可能
}

スコープの重要性については今更な話だから自分で勉強して。

59 :Name_Not_Found:2009/02/24(火) 16:27:34 ID:???
>>52
>分岐処理が長ったらしいなら>>48みたいにするべきだけど

それはあんまし良くないっしょ? ということまで込みで、
>50を書いたつもりだったんだけど。

「そこそこ長くなるなら、ifで書き換えてしまった方が見通しはいい」
↑これが俺の大前提。

switch(foo){
case 'bar': 処理; break;
case 'bar2': 処理2: break;
}

で、処理に対してスコープを作るなら

if (foo == 'bar'){ 処理; }
else if (foo == 'bar2'){ 処理2; }

でいいじゃん、と。

その上で、処理の中でどうしても変数の切り離し等必要なら、
その必要な部分だけを切り出して関数化する。
んで、その関数の大きさで、名前付けて別関数にするか、
その場で (function)(); で済ませるかを考える。

function func()... と var func = function()... の違い?
もっと遥か手前の段階の話として、大きな一連の処理の中で
ベタベタベタベタと処理に何の関係もない変数が"見えて"いる状態を
キモチ悪いと思う人なら、そんな違いを問題にしている場合じゃないって
分かるはずなんだけどな。

60 :Name_Not_Found:2009/02/24(火) 16:31:02 ID:???
>>56
あー 勘違いしてた
どうもどうも

61 :Name_Not_Found:2009/02/24(火) 16:33:13 ID:???
>>59
>if (foo == 'bar'){ 処理; }
それjavascriptじゃスコープ生まれないはず。

あとfunctionの話はもはや別件。

62 :Name_Not_Found:2009/02/24(火) 16:36:29 ID:???
もしかして>>59の言う「スコープ」って視覚的な意味?
switchに長ったらしく書くなっていうのは激しく同意。

63 :Name_Not_Found:2009/02/24(火) 16:42:51 ID:???
>>59
分かりにくく相手に伝わりにくい言葉使いが多すぎる。
javascriptの知識レベルはすごいけど回答者には向いてないかも。

64 :Name_Not_Found:2009/02/24(火) 17:09:11 ID:???
javascriptの知識レベルがすごくてかつ分かりやすい説明をする回答者あんまりいないし
別にいいんじゃないの
間違いを教えるような糞回答者以外にケチつけるのはどうかなあと思うYO!

65 :Name_Not_Found:2009/02/24(火) 17:14:53 ID:???
ケチというわけじゃないんだよね、気に障ったらごめん。

66 :Name_Not_Found:2009/02/24(火) 17:22:10 ID:nN6amLLI
iframeの表示領域は、あらかじめwidthとheight属性で規定しておく必要がありますが、
表示内容が想定より大きくなったり、小さくなったりすると、表示が崩れてしまいます。

javascriptを使って他のページをフレームに合わせて表示するにはどうしたらいいのでしょうか?

例えば、こんな感じにしたいのです。

http://www.w-index.com/main1.htm

67 :Name_Not_Found:2009/02/24(火) 17:30:57 ID:???
>>66
>iframeの表示領域は、あらかじめwidthとheight属性で規定しておく必要がありますが、
>表示内容が想定より大きくなったり、小さくなったりすると、表示が崩れてしまいます。

・指定する必要はない
・崩れない

68 :Name_Not_Found:2009/02/24(火) 17:56:56 ID:HZbI/oOG
>>66
過去にやったことがある。

フレームの中に表示されるページを同ドメインにして、
内容物の大きさを測って、iframeのwidthとheightを変更すればいい。

内容物の大きさを測るのって、結構面倒。
bodyの大きさを測ればいいってモノでもなくて、
全体をdivやtableで括って、無理矢理計測したりした。

69 :Name_Not_Found:2009/02/24(火) 19:33:54 ID:???
IFRAME内の表示内容の大きさが事前に分からないってことは
他ドメインから引っ張ってくるのか?

ローカルに置いて個人的に利用するとかなら問題ないだろうけど、
そこの w-index.com とやらみたいに公開すると
面倒なことになるかもしれないので念の為。

つ トータルニュース事件

70 :Name_Not_Found:2009/02/24(火) 21:23:41 ID:???
前のエロサイトを同時に開きたいですとか言うアホな質問者じゃないのかw

71 :Name_Not_Found:2009/02/24(火) 21:27:04 ID:???
function func() {
...
}
JavaScript実行開始前に一旦評価される。
よって定義時前にfuncを呼び出しても問題ない。

var func = function() {...};
代入時まで匿名関数が評価されない。
よって代入前にfuncを呼び出すとエラーになる。

72 :Name_Not_Found:2009/02/24(火) 22:12:56 ID:???
>>66は、CSSでoverflow: scrollにしてやればいいんじゃないかと思わなくもない。
試してないから実際これでいいかは知らない。

73 :39:2009/02/24(火) 22:22:00 ID:???
>>42
あー符号なし整数が無いからそうなる感じなのかな。なるほど。ありがとう

型の無いスクリプト言語なんだから、今時8バイトぐらいやってくれりゃいいのに・・・・・・

74 :Name_Not_Found:2009/02/25(水) 02:39:38 ID:???
断りもなく言語使用変えてもらっても困るが

75 :Name_Not_Found:2009/02/25(水) 07:53:37 ID:???
>>73
整数も8バイト、実数も8バイトだったらどの型かを区別する
情報はさらに別に持つことになってしまうでしょ。

76 :Name_Not_Found:2009/02/25(水) 18:53:22 ID:???
一度リムーブしたノートのクローンを取って復活させることって
できますか。

77 :Name_Not_Found:2009/02/25(水) 19:48:48 ID:MjYzYKx5
>>76
ノードな。できるよ。
removeChildしても、ツリーから外れるだけでノードは生きてる。
クローンにしなくても、できる。

78 :76:2009/02/25(水) 19:51:50 ID:???
>>77
そうなんですね。やってみます。ありがとうございます。

79 :Name_Not_Found:2009/02/25(水) 22:27:03 ID:???
外部ファイル (aaa.js)
function showhide(id){
if(document.getElementById){
if(document.getElementById(id).style.display == "none")
document.getElementById(id).style.display = "block";
else
document.getElementById(id).style.display = "none";
}
}

htmlファイル
<a href="???">ここをクリック</a>
<div id="???">
<table border="0">
<tr>
<td>教えて</td><td>下さい</td>
</tr>
</table>
</div>

「ここをクリック」をクリックすると、
テーブルが表示・非表示されるようにしたいのですが
色々と検索してみたのですがわかりませんでした。

どうすれば外部ファイルを実行し、テーブルを表示・非表示にする事ができますか?

80 :Name_Not_Found:2009/02/25(水) 22:40:47 ID:???
>>75
いや、持てばいいじゃん。そんなの

81 :Name_Not_Found:2009/02/25(水) 22:50:16 ID:???
<script type="text/javascript" src="aaa.js"></script>
<a href="#" onclick="showhide('div0'); return false">ここをクリック</a>
<div id="div0">
<table border="0">
<tr>
<td>教えて</td><td>下さい</td>
</tr>
</table>
</div>

82 :Name_Not_Found:2009/02/25(水) 23:52:39 ID:bYG/ZxZk
document.cookie= "item[0]['name']=りんご";
document.cookie= "item[0]['money']=100";


PHPで$_COOKIE['item'][0]['name']で「りんご」という文字列を取り、
$_COOKIE['item'][0]['money']で「100」という文字列を取りたいのですが、
上記のjavascriptでクッキーを発行することはできますでしょうか?

試してみたのですがクッキーが書き込まれなかったので別の問題なのでしょうか?

83 :79:2009/02/26(木) 00:42:49 ID:???
>>81
ありがとうございました

84 :Name_Not_Found:2009/02/26(木) 00:51:20 ID:???
>>82
document.cookie の仕様を調べてください
PHP からは配列に見えるかもしれないけど
実際には平文だから

85 :Name_Not_Found:2009/02/26(木) 01:44:28 ID:???
>>84
知ったかすんなよ。
jacascriptがクッキーをセットする前にPHPで値を取ろうとしてるんでしょ。

86 :Name_Not_Found:2009/02/26(木) 02:02:23 ID:???
これはひどい

87 :Name_Not_Found:2009/02/26(木) 02:29:12 ID:???
これは格別

88 :Name_Not_Found:2009/02/26(木) 09:11:05 ID:???
>>85
どういう意味?

89 :82:2009/02/26(木) 10:53:29 ID:Yz7Asy9K
返信遅くなって申し訳ありません
document.cookieは平文なんですね、勉強になります
$_COOKIE['item'][0]['money']のような形式でPHPで配列として値を取りたいのですが
PHPでは本家公式サイトで教示された>>82のようなNAMEで実現できるのですがjavascriptでクッキーを発行するとできないという認識でよろしいでしょうか?

どなたか分かる方いらっしゃいましたらご教示お願いいたします

90 :Name_Not_Found:2009/02/26(木) 11:03:11 ID:???
>>89
> PHPでは本家公式サイトで教示された>>82のようなNAMEで実現できるのですがjavascriptでクッキーを発行するとできないという認識でよろしいでしょうか?
なら、PHP でどういう Cookie が発行されているか、ヘッダ見てみなよ。

91 :Name_Not_Found:2009/02/26(木) 11:11:44 ID:???
質問からそれた回答でフイタ

92 :Name_Not_Found:2009/02/26(木) 11:31:02 ID:???
>>90
PHPが生成したクッキーを、JavaScript側で「alert(document.cookie);」
を実行して確認してみなよ。それと同様の形にしなければPHP側で同じ
ようには扱えないということは言われなくても分かるよね?

93 :Name_Not_Found:2009/02/26(木) 11:37:32 ID:???
>>92
なんで回答者にコメントしてるの?

94 :Name_Not_Found:2009/02/26(木) 11:40:57 ID:???

クッキー名で配列を記述することにより、クッキーの配列を設定することも可能です。 これにより配列要素と同数のクッキーを設定されますが、 クッキーがスクリプトに受信された際に、 値はクッキー名を有する配列に置きかえられます。

<?php
// クッキーを設定します
setcookie("cookie[three]", "cookiethree");
setcookie("cookie[two]", "cookietwo");
setcookie("cookie[one]", "cookieone");

// ページを再読み込みした後に、表示します
if (isset($_COOKIE['cookie'])) {
foreach ($_COOKIE['cookie'] as $name => $value) {
echo "$name : $value <br />\n";
}
}
?>

上の例の出力は以下となります。

three : cookiethree
two : cookietwo
one : cookieone

95 :Name_Not_Found:2009/02/26(木) 11:43:39 ID:???
>>94
いや、だから、PHP で勝手に処理されている内容を確認するために
ヘッダを確認するか、alert しろって言われてるんだろ。

96 :Name_Not_Found:2009/02/26(木) 11:48:19 ID:???
>>94
めんどくせー奴だな。
Set-Cookie: cookie[three]=cookiethree
Set-Cookie: cookie[two]=cookietwo
Set-Cookie: cookie[one]=cookieone
だったぞ。あとは好き勝手にしろ。

97 :Name_Not_Found:2009/02/26(木) 11:59:56 ID:???
PHPでクッキー発行するのもjsで発行するのも同じ
だから回答してる人の大半は間違い

98 :Name_Not_Found:2009/02/26(木) 12:01:02 ID:???
>>95
PHPでクッキーを発行したから$_COOKIEで取れるようになると勘違いしてる人発見

99 :Name_Not_Found:2009/02/26(木) 12:12:35 ID:???
>>97
俺は間違ってないな。発行するのは同じなのは当然分かってる。
元質問者が
> PHPで配列として値を取りたい
というところで躓いているから、書いているだけだ。

>>98
全然勘違いしてない。勝手にってのは
> foreach ($_COOKIE['cookie'] as $name => $value) {
で配列として勝手にパースされる部分のことを言っている。

100 :Name_Not_Found:2009/02/26(木) 12:55:11 ID:???
今日も元気なゴミ回答者共晒しあげ
>>85,90,92-96,98-99

> 上記のjavascriptでクッキーを発行することはできますでしょうか?



> javascriptでクッキーを発行する

101 :Name_Not_Found:2009/02/26(木) 13:10:22 ID:???
質問者はPHPで配列の形で値を取りたいと聞いてるけど
クッキーに配列を登録したいとは書いてないね

102 :Name_Not_Found:2009/02/26(木) 13:12:31 ID:???
俺は無理に答えられない質問は答えないけどここのヘボ回答者は(笑)

103 :Name_Not_Found:2009/02/26(木) 14:08:21 ID:???
他の言語の仕様をそのまま持ち込む質問者には関わらないという家訓に従って正解だったな

104 :Name_Not_Found:2009/02/26(木) 14:16:41 ID:???
>>103

>>97

105 :Name_Not_Found:2009/02/27(金) 00:05:08 ID:???
>>58
> // エラーは出ないけど関数内でのfunction文は本来不可能

これホント?ソースある?

106 :Name_Not_Found:2009/02/27(金) 00:10:10 ID:???
ウソだろ

関数の中に関数を定義すれば、スコープチェーンにCallオブジェクトが追加される

107 :Name_Not_Found:2009/02/27(金) 00:12:16 ID:???
試せばわかるだろ

108 :Name_Not_Found:2009/02/27(金) 00:44:27 ID:???
>>106
function expression の使用は一般的だけど、よく考えてみると
function declaration はあまり見かけないので不安になったり。

でも MDC に nested function について「できる」とはっきり書いてありました。

ttps://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Functions_and_function_scope

109 :Name_Not_Found:2009/02/27(金) 01:29:18 ID:???
たとえば100個の要素を全て10と言う値を入れて初期化したい場合はどのように書けばいいですか?
for文を使うしかないんでしょうか?

110 :Name_Not_Found:2009/02/27(金) 07:35:44 ID:???
そりゃ配列の話かね

111 :Name_Not_Found:2009/02/27(金) 10:23:49 ID:???
>>109
php.js使ってphpにある関数つかうかfor

112 :Name_Not_Found:2009/02/27(金) 13:15:58 ID:ycKZyQDf
DBを備えた個人HPを作成したいのですが、
Javaスクリプトはどのような場面に使用するのでしょうか。
また、無償で入手できるのでしょうか。
よろしくお願いします。

113 :Name_Not_Found:2009/02/27(金) 13:30:16 ID:???
alert("てst");
ほら、無料でやるよ

114 :Name_Not_Found:2009/02/27(金) 15:00:38 ID:LL+dqAy1
jquery についての質問です。

画面内に複数のボタンがあり、ボタンが押されたときに
同じ処理をしたいときって、jquery で短縮して書くことってできませんかね?
関数化して呼び出せばいいんだけど、それ以外の方法があったら知りたいです。

---------------------------------------------------

$('#button1').click(function(){
alert('hello!');
});

$('#button2').click(function(){
alert('hello!');
});

↓こんな感じに書くことが出来ないのか?↓

$('#button1' or '#button2').click(function(){
alert('hello!');
});


115 :Name_Not_Found:2009/02/27(金) 15:12:15 ID:???
>>112
>Javaスクリプト
donbiki

116 :Name_Not_Found:2009/02/27(金) 15:40:30 ID:???
>>114
$('#button1,'#button2').click(function(){
alert('hello!');
});

117 :Name_Not_Found:2009/02/27(金) 15:45:19 ID:???
>>112 鯖で全部処理したくなくてUI側で処理したい場合使え

118 :Name_Not_Found:2009/02/27(金) 16:21:41 ID:???
>>114
$('#button1, #button2').live('click',function(){
alert('hello!');
});


119 :Name_Not_Found:2009/02/27(金) 17:47:55 ID:???
<table border="5">
<tr><td>
<table border="2">
<tr>
<td rowspan="3">A</td>
<td>BBBBBBBBBB</td>
</tr>
<tr>
<td>CCCCCCCCC</td>
</tr>
</table>
</td></tr>
</table>
----------------------------
■上記のようなテーブルソースで、Aに画像、B・Cにテキストを表示
■このタグの中にJavaScriptをいれ、A・B・Cをランダムで表示させる
そして、何に悩んでいるのかというと 「A・B・Cが全て紐付けいていないといけない」のです

画像名   テキスト1   テキスト2
----------------------------
1gif  → あいう  えお
----------------------------
2.gif  → かきく  けこ
----------------------------
3.gif  → さしす  せそ
----------------------------

1.Aに「1.gif」が表示されるときは、Bにあいう、Cにえお のテキストを表示
2.Aに「2.gif」が表示されるときは、Bにかきく、Cにけこ のテキストを表示
3.Aに「3.gif」が表示されるときは、Bにさしす、Cにせそ のテキストを表示

このような時のJavaScriptはどのように表したらよいのでしょうか?

120 :Name_Not_Found:2009/02/27(金) 18:02:55 ID:???
別に1.gifが表示されるときは、Bにあいう、Cにえおのテキストを表示すればいいんでないの?
画像ファイル名が数値なんだからランダム関数か何かで1、2、3のどれかを生成して
それによって場合分けすれば?
画像の表示にはimgタグをぶち込めばいい

121 :Name_Not_Found:2009/02/27(金) 18:07:47 ID:???
3つともバラバラの方が宿題としては難しいんじゃないかなw

122 :Name_Not_Found:2009/02/27(金) 18:13:29 ID:???
つうかまたtable無茶苦茶だなw

123 :Name_Not_Found:2009/02/27(金) 18:20:18 ID:???
table二重でボーダー太ぇw

124 :119:2009/02/27(金) 18:54:07 ID:???
えっとすみません、わかりにくすぎました。
改めて…この記述ってありですか?


<table>
<tr>

<td>
<SCRIPT TYPE="text/javascript">
var msg = new Array();
// ▼テキスト1 ここから
msg[0] = 'あいう';
msg[1] = 'かきく';
msg[2] = 'さしす';
// ▲テキスト1 ここまで
</SCRIPT>
</td>

<td>
<SCRIPT TYPE="text/javascript">
var msg = new Array();
// ▼テキスト2 ここから
msg[0] = 'えお';
msg[1] = 'けこ';
msg[2] = 'せそ';
// ▲テキスト2 ここまで
</SCRIPT>
</td>

</tr>
</table>

125 :Name_Not_Found:2009/02/27(金) 19:07:13 ID:???
合ってますかって言うか、何で実行してみないの?

間違ってないから実行できると思うけど、何も起きないよそれじゃ
テキスト1とテキスト2に同じmsgて言う配列使っちゃってるから
テキスト1の内容がテキスト2の内容で上書きされちゃってるし

126 :Name_Not_Found:2009/02/27(金) 22:12:31 ID:???
コロメス?誰?

127 :Name_Not_Found:2009/02/27(金) 22:13:02 ID:???
誤爆しました失礼

128 :Name_Not_Found:2009/02/28(土) 00:02:03 ID:???
>>124

a=['a1','a2','a3'];b=['b1','b2','b3'];c=['c1','c2','c3'];r=Math.floor(Math.random()*3);document.write(a[r]+b[r]+c[r]);

129 :Name_Not_Found:2009/02/28(土) 00:24:03 ID:???
a = [
  { name: '1.gif', txt1: 'あいう', txt2: 'えお' },
  { name: '2.gif', txt1: 'かきく', txt2: 'けこ' },
  { name: '3.gif', txt1: 'さしす', txt2: 'せそ' }
];
with(a[Math.random() * a.length | 0])
  alert([name, txt1, txt2].join('\n'));

130 :Name_Not_Found:2009/02/28(土) 02:35:25 ID:???
http://r.tabelog.com/
このページのJavaScriptの使い方ってどうよ

131 :Name_Not_Found:2009/02/28(土) 03:53:53 ID:???
document.formname.elements[-1]
というような存在しない要素を指定したときには何が返ってくるの?

「存在するとき」がほしかったから
document.formname.elements[x] != undefined
としてみたけど、IEだと動いたけどFirefoxだとだめだったの。

どうしたらよろしいの?



132 :Name_Not_Found:2009/02/28(土) 04:19:29 ID:???
存在しないときは undefined が返る

判定はあってるけど Firefox だと配列で負の値を指定すると
uncaught exception になるみたいエラーコンソールに出てるよ。

133 :Name_Not_Found:2009/02/28(土) 08:05:15 ID:???
>>130
どうよと言われても、作成者の目的が達成できてるなら、何がどうだろうと別にかまわんだろ?
俺は中身見てないけどな(笑)

--- 好意評価系 ---

もし、「ここのJavaScriptって結構いいんじゃね?」系の話がしたいのならば、黙って帰れ。
このスレはそんなトコじゃねーから。

--- 否定評価系 ---

もし、大したこともない動作に云々...、と言いたいって話なら、
それはユーザーインターフェースの設計とか採用する技術の問題であって、JavaScriptとは全く関係ない。

プログラムが構文的に正しいかとか、ソースが見やすいだとかいう面の話ならば、
それは目的とする動作の仕組みとは関係なくて、プログラムのメンテナンスやライフサイクル方面の話だから、
作者が対象とするもの(=作者の目的)に対して十分ならどうでもいいこと。
わかりやすく言えば「『動かねーぞ』とクレームが来たら即時対応する」なら、
初期ユーザーとメンテ担当者が迷惑するだけで、目的そのものは果たせる。大抵は。

目的に対して不十分なまま運用してるんじゃないかって話であれば、
そりゃ作者の腕の問題であってプログラムの問題じゃない。
そもそも、どこまでを目的としてるか分からんしな。

134 :Name_Not_Found:2009/02/28(土) 18:31:31 ID:???
はい、次の方ー

135 :Name_Not_Found:2009/03/01(日) 00:19:20 ID:Pr/7k9di
javascriptを開発し発案者または開発者を知りたいのですが
ご存知の方いらっしゃいませんか?

136 :Name_Not_Found:2009/03/01(日) 00:25:42 ID:???
ぐぐれ

137 :Name_Not_Found:2009/03/01(日) 00:25:49 ID:???
俺だ

138 :Name_Not_Found:2009/03/01(日) 01:08:58 ID:???
http://en.wikipedia.org/wiki/Brendan_Eich

139 :Name_Not_Found:2009/03/01(日) 01:18:30 ID:6cXtTeyN
【現状】
gifで作ったボタンが3つ縦に並んでいる。
このボタンをクリックするとツリー構造で表示される。
一番上のgifファイルをクリックすると、きちんとツリーが表示されるが、
二番目以降のボタンを押しても機能しない。
この原因がよくわからない。

【依頼内容】
@上記の原因を教えてほしい。
A改善案を教えてほしい。
Bできたらサンプルコードがほしい。

【作成環境】
Windoes Vista Home Basic

【備考】
たぶんよくわからんと思うので、下記のうpろだから、
ZIPを落として確認してもらえるとうれしいです。

【うpろだ】
http://www.dotup.org/uploda/www.dotup.org1737.zip.html

<DLパス>
1234





140 :Name_Not_Found:2009/03/01(日) 01:22:53 ID:???
>>139
対価は?

141 :Name_Not_Found:2009/03/01(日) 01:36:58 ID:6cXtTeyN
>>140

対価ですか…?
正直あげられるものはエロ画像くらいしかないのですが…

142 :Name_Not_Found:2009/03/01(日) 01:44:49 ID:???
色々論外だ罠。

id の重複、document.all が使えるのは IE と Opera のみ、タグの打ち方、など問題は諸々。
動作しないのは id の重複っぽいけど。

とにかく JavaScript だけじゃなく、HTML と CSS の基礎を身につけるべき。

143 :Name_Not_Found:2009/03/01(日) 07:36:14 ID:???
すみません、ネットで調べてもわからなかったので質問です。
 (そもそも引っかからなかったorz)
今prototype.jsを勉強しているのですが、
!!(window.attachEvent && !!window.opera)
に使われている !! って、そんな機能の演算子なんでしょうか?
prototype.jsをコールしなくても機能しましたです。

他の用法:
 result = result && !!iterator(value, index);
 など。

144 :Name_Not_Found:2009/03/01(日) 07:59:51 ID:???
他の書き方をすると長くなるからどうしても長くなっちゃうから単純に2回行ってるだけだと、
一回だと false になるからもう一回やって true にするって感じ。

145 :Name_Not_Found:2009/03/01(日) 08:00:13 ID:???
変な日本語にorz

146 :Name_Not_Found:2009/03/01(日) 08:03:49 ID:???
>>145 そんな事ないですよw
>>144
なるほど、、、否定の否定をしてるだけで、特に意味はないって事ですかw
ありがとうございました!!

147 :Name_Not_Found:2009/03/01(日) 09:01:44 ID:???
評価結果を boolean として保持したい場合の最小コード、代入しないなら無意味。

148 :Name_Not_Found:2009/03/01(日) 09:35:09 ID:???
n = "7" - 0 で数値に型変換しちゃうとかその類だな。

149 :Name_Not_Found:2009/03/01(日) 10:33:54 ID:???
!!みたいなこういう細かいテクニックがまとめられてるサイトってない?
知っておくと便利な雑技的なコード記述方法集。

150 :Name_Not_Found:2009/03/01(日) 10:51:30 ID:???
>>149
まかせた!!

151 :Name_Not_Found:2009/03/01(日) 10:54:40 ID:???
>>149
http://www.google.co.jp/

152 :Name_Not_Found:2009/03/01(日) 10:58:08 ID:???
>>149
現状では、各種Frameworkのソースを読むのが速い模様。

153 :Name_Not_Found:2009/03/01(日) 11:03:25 ID:???
>>140
こんな数行で終わる簡単なコードで対価とかバカじゃねえの?

154 :Name_Not_Found:2009/03/01(日) 11:23:27 ID:???
flashで作られたサイトの文字列を取得したいのですが、javascriptで可能でしょうか?
もしできるなら使用する関数等を教えていただけると嬉しいです。

155 :Name_Not_Found:2009/03/01(日) 11:44:42 ID:???
flashコンテンツの製作者側が文字列を取得されることを想定していて
そのための準備をしておけば可能

156 :Name_Not_Found:2009/03/01(日) 12:05:07 ID:???
>>147
あぁなるほど、、真偽値と明示するためかぁ、、

>>148
そんな小技があったんですか?!
試しにjavascript/ActionScriptで
test = "7" - 0;
document.write(typeof(test)); / trace(typeof(test));
したら、両方numberでした。

今までずーっと、parseIntしてた。。。orz

157 :Name_Not_Found:2009/03/01(日) 12:55:57 ID:???
>>150-151
氏ね

>>152
なにそれ?

158 :Name_Not_Found:2009/03/01(日) 13:22:25 ID:???
>>153
−−−コンピュータジョーク−−−

どんな機械でも直せる、優れたエンジニアがいた。

30年間忠実に会社に勤めた後、彼は無事引退した。
数年後、数億円の機械がどうしても直せないと、会社から知らせを受けた。
いろいろ試したが、彼らにはどうにも直せな いのであった。
彼らは自暴自棄になって、過去に多くの問題を解決した、引退したエンジニアに連絡を取った。
エンジニアは、しぶしぶ腰を上げたのであった。

彼は、巨大な機械を一日かけて調べた。
その日も終わろうかという頃、彼はある部品の上に小さな"x"マークをチョークで書いて、誇らしげに言った。

「これが問題の個所だ」

その部品は交換されて、また機械は完全に動くようになった。
会社は、仕事代として5万ドルを彼から請求された。
会社は、料金の明細を要求した。そのエンジニアは、ごく短い返答をよこした。

・チョークのマークひとつ $1
・それをどこに書くか知っていること $49,999

料金は全額支払われ、エンジニアは再び幸せな引退生活に戻った。

159 :Name_Not_Found:2009/03/01(日) 15:39:29 ID:???
>>157
きえろクソヤロウ

160 :Name_Not_Found:2009/03/01(日) 15:43:33 ID:???
何かすごい変な初心者がいるな

基礎くらいは身に付けてから質問してくれ

161 :Name_Not_Found:2009/03/01(日) 16:16:01 ID:???
小技というか、JavaScriptのデータ型自動変換は基礎だよな?

・数値を文字列へ変換 → 空文字列を連結する
var string_value = number + "";

・文字列を数値へ変換 → 文字列を数値演算(-や*)で用いる(ただし +演算子は文字列連結で使用されるので不可)
var numeric_value = string_value - 0;
var numeric_value = string_value * 1;
var numeric_value = parseInt("12meters"); // 数値に文字列が続く場合はparseIntなどを使用する。結果は数値の12。
                           // この方法はCSSの属性値文字列のpixel単位などを取り除くのに便利。

・オブジェクトや文字列、数値などを論理値へ変換 → 否定演算子を2回使用する(論理値コンテキストで使用する)
!!window.attachEvent // オブジェクトは存在すればtrueであり、否定演算子を1回使用すると論理値falseになる。
             // よってその論理値falseをもう一度否定演算子でtrueに戻すことで、本来の論理値trueが得られる。
!!""           // 結果はfalse。空文字列は論理値が使用されるコンテキストではfalseに自動変換される。
!!"JavaScript"    // 結果はtrue。空でない文字列は論理値が使用されるコンテキストではtrueに自動変換される。
!!0            // 結果はfalse。数値0は論理値が使用されるコンテキストではfalseに自動変換される。
!!404          // 結果はtrue。0(とNaN)以外の数値は論理値が使用されるコンテキストではtrueに自動変換される。

162 :Name_Not_Found:2009/03/01(日) 16:34:09 ID:???
基礎というか、それ知らなきゃ何もできないはずだよなw

言語がデータを内部でどんな形で保持しているか知らなきゃ、
プログラムが組めるはずがない。
型の自動変換がある言語なら、それに加えて、
どんな時に型変換が起きるか知らなきゃいけない。

逆に言えば、どう書いてやれば型変換させる(=型変換を指示する)
ことができるか知らなきゃお話にならない。
プログラムってのはコンピュータに対する指示書なんだから。


だから、細かいテクニック集なんてものは存在しないでしょ。
while(1) みたいな定石・テンプレをまとめた本なんかもあるけど、
それも結局、それらを使うようになった段階で
自然に修得しているはずのものだし。
教えてくれなんてのは、本当に緊急にそれが必要で人に頼るしかない人か、
ただの経験不足か、経験はあっても自分で考えたことがない人の
どれかだと思うな。

163 :Name_Not_Found:2009/03/01(日) 17:51:35 ID:???
普通!!なんて使うような組み方は他の言語じゃしないと思うが・・・
静的型付けの場合はできないといったほうが正しいか
普通はそういうのを返すメソッドを別に定義するよな

164 :Name_Not_Found:2009/03/01(日) 17:59:09 ID:???
そうかな
型変換なんてキャストで十分じゃないか

165 :Name_Not_Found:2009/03/01(日) 17:59:55 ID:???
>>161
ありがとう、とても参考になりました。
型変換以外にも探せばいろいろありそう。
>>0は使い道多そうだ。

166 :Name_Not_Found:2009/03/01(日) 18:05:25 ID:???
undefinedのないJavaScript1.2でif(o)を正しく認識させるのに!!を使った
そういう歴史的な話をテクニックと混同するなよ

167 :Name_Not_Found:2009/03/01(日) 18:16:29 ID:???
>>165
データ型自動変換のまとめ表も参照しときな
ttp://d.hatena.ne.jp/hetappi/20071020/1192857711

書いてないけど、一番左の列が元のデータ型で、残りは実行コンテキストな

168 :Name_Not_Found:2009/03/01(日) 19:30:28 ID:???
>>166
うるせーばか

>>167
どうもありがとうございました。

169 :Name_Not_Found:2009/03/01(日) 19:55:43 ID:???
>>149=>>157=>>168
おまえなぁ...

170 :Name_Not_Found:2009/03/01(日) 19:58:02 ID:???
ある意味では被害者のゆとり小学生だから許してやれ

171 :Name_Not_Found:2009/03/01(日) 22:39:47 ID:R7yDioCd
>>161
>この方法はCSSの属性値文字列のpixel単位などを取り除くのに便利

ずっとこうしてた。目から鱗。
var css = "12px";
element.style.height = parseInt(css.replace("px",""));

172 :Name_Not_Found:2009/03/01(日) 22:46:45 ID:???
やれやれ

173 :161:2009/03/02(月) 11:59:15 ID:???
>>171
ちょっと待て
位置指定関係のスタイル属性値を設定するときは、単位取っちゃ駄目だろw
オレが書いた
>この方法はCSSの属性値文字列のpixel単位などを取り除くのに便利
は以下のような意味
var area = parseInt(e.style.width) * parseInt(e.style.height); // 位置指定関係のスタイル属性値は単位が付いた文字列だが、
                                    // parseIntを使用すると単位を削って、かつ数値にしてくれる。

位置指定関係のスタイル属性値を設定するときは、値は文字列でかつ単位が必須
e.style.height = "12px";
e.style.width = (offset_x + left_margin + left_border) + "px"; // 数値計算をした後に、必ず文字列で単位を付加する。
                                    // 文字列で単位を付加することで、副作用として計算結果を文字列にできる。

174 :Name_Not_Found:2009/03/02(月) 14:19:42 ID:QHMsp747
>>173
ああ、そうでした。

var css = "12px";
element.style.height = parseInt(css.replace("px","")) + 10 + "px";

こういう回りくどいことしている、ってことでした。
失礼しました。

175 :Name_Not_Found:2009/03/02(月) 14:55:09 ID:???
セレクトメニュー内の一つ項目(A)を選択すると、欄(a)に項目(A)に設定された値が表示される。
これを、項目(A)に異なる値を二つ設定し、それぞれの値を欄(a)・欄(b)に表示することは出来ますか?

176 :Name_Not_Found:2009/03/02(月) 16:04:34 ID:???
欄ってテキストボックスのこと?
よく分からんけど、select-multipleで選択した各項目を
別々のテキストボックスに表示したいのかな?

177 :Name_Not_Found:2009/03/02(月) 16:21:00 ID:???
>>175
スマートではないが、オレオレ属性に "valueA,valueB" とでもしておいて
split(',') すればいいんじゃまいか


>>176
そろそろ通報していい?

178 :Name_Not_Found:2009/03/02(月) 16:28:46 ID:???
>>177
ありがとう
試してみます

179 :Name_Not_Found:2009/03/02(月) 21:30:29 ID:???

     ./\        /\
     /:::::::ヽ____/::::::::ヽ、
    / ::. _  .:::::::::::::  _::::ヽ_
  / / °ヽ_ヽv /:/ °ヽ::::::ヽ
 / /.( ̄( ̄__丶 ..( ̄(\  ::::|     ぐぐってもわかんないよ〜
. | .:::::::: )  )//tーーー|ヽ)  ) .::::: ::|
. | .::::...(  (..||.    | (  (    ::|     だれかたすけて〜
. | :::.  )  )| |⊂ニヽ .| ! )  )   ::::|
 | :  (  ( | |  |:::T::::.| (  (    ::|
 \:  )  )ト--^^^^^┤ )  )   丿
  / (  (        (  .(   \
/  .、.)  )       /  \  _ \

180 :Name_Not_Found:2009/03/02(月) 21:41:33 ID:???
いつだって最後に頼りにしなくちゃならなくなるのは自分自身なんだぜ

181 :Name_Not_Found:2009/03/02(月) 21:46:33 ID:???
人力検索ボランティアどもさっさとブラウザ立ち上げて調べろよksg

182 :Name_Not_Found:2009/03/02(月) 23:05:30 ID:???
      _/彡三三三ミァrェ、 
     /彡彡ニ三三彡ソハヘ\\
    /彡二三三三ニ彡f;;;;;;;;;;;;;;;;;},
   |//彡三三ニ==! !|ヘ;;;;;;;;;;ヽヽ     ,-,
   .|///´ ̄´゙    `ヽヘ',',ヘヘ;}     / |
   ∨;f           ヾ;;ヘ;;;ジュ     l  |
   `{リ 、,,,,,_    __,,,,,,、zィ  ヾ'゙テリ       |  |
    `|  rェeミ 、 {゙ィ‐eェァ =  ソ |.       |  |
     |  `~´..:i |:::.` ~ ´`   r-'      |  |
     ',   /::i i::::::、 、    |    !´ ̄ ̄ ⌒〉
     '、 '´ヽ(_>ィヘ丿 /  |  〈⌒r‐‐'''''' ̄  〉
       ヽ `トエエエエイノ . | :::/^i ∨|─ー''''' ̄  |
       \ .ヾ三シ ノ ,'::::/  ,ハ | \>〈     |
        ハ    /:::ィ゙   /⌒'、   /      |
       ノ ィ^'ヽ┬‐'´   //   ヽ  |       |
    /^ / |__八   //      \|      |
   / / / /: : : | >//         ヽ     |
  /  /  |/: : :///            |     |
 ノ   |  |: :///              |      |

183 :Name_Not_Found:2009/03/02(月) 23:22:51 ID:???
知ってるかい? 何かを為すための力を能力って言うんだぜ。

つまり、自分では為し遂げられない奴のことは無能と呼べばいいわけだね。

184 :Name_Not_Found:2009/03/02(月) 23:30:30 ID:???
人を使える力も能力って言うんだぜ

185 :Name_Not_Found:2009/03/03(火) 00:09:07 ID:???
いるよねぇ。そういうことをぶっちゃける奴って。
一番手伝いたくない相手だよ。

186 :Name_Not_Found:2009/03/03(火) 05:56:58 ID:???
>184
人脈だって力なのは当たり前。
旨い魚探すのに、自分で見分けるよう勉強するよりは、
魚知ってる人に頼む方が早いし確実。

人脈もないからここで質問してる人がいるわけで。

187 :Name_Not_Found:2009/03/03(火) 10:39:31 ID:???
>>185は一生コキ使われて終えるタイプ

188 :Name_Not_Found:2009/03/03(火) 10:45:13 ID:???
>>186
金もなw

189 :Name_Not_Found:2009/03/03(火) 12:01:38 ID:???
JavaScriptでimgタグで貼り付けられている画像の元サイズを取得することは出来ないでしょうか?

widthとheightは(徐々に大きくして見せたいので)最初は共に1pxを指定しているので、widthとheightを
用いることは出来ないのです。

190 :Name_Not_Found:2009/03/03(火) 12:12:53 ID:???
できる

191 :Name_Not_Found:2009/03/03(火) 12:13:31 ID:???
ttp://www2.chrog.com/userdata/mo/archives/4

192 :Name_Not_Found:2009/03/03(火) 12:21:02 ID:???
>>191
あー、Imageクラスってのがあるんですか。なるほど。

やってみたら、うまく出来ました。ありがとうございます!

193 :Name_Not_Found:2009/03/03(火) 13:38:28 ID:6aSMdo5v
jQueryを使っているのですが、Ajaxでサーバーとの通信を行う際、
getJSONだとGETでリクエストしてレスポンスはJSON形式で受け取りますが、
POST送信でレスポンスをJOSN形式で受け取る方法ってありませんか?

$.post("url", {data}, function( data ){}, "json")
としたのですが、返ってきた値がdataに入らずundefinedになってしまいます。

194 :Name_Not_Found:2009/03/03(火) 13:54:46 ID:???
getで取れるものならpostでも取れます

195 :Name_Not_Found:2009/03/03(火) 13:59:52 ID:???
$.post("url", {data}, function( data ){}, 'json')で普通にとれますた><。

>>194
とる方法を知りたかったんだがまぁいいや

196 :Name_Not_Found:2009/03/03(火) 14:35:58 ID:???
>>195
だからとれるって教えてんじゃん
まあいいやじゃねえよ

197 :Name_Not_Found:2009/03/03(火) 14:41:23 ID:???
シングルクォートにするだけでいけるとかおかしいだろw
絶対別のとこがおかしかったんだろ

198 :Name_Not_Found:2009/03/03(火) 14:42:05 ID:???
howに対してyesで答える・・・

199 :Name_Not_Found:2009/03/03(火) 15:12:12 ID:???
>198
いや違うだろ。別にすり替えてるようには見えん。
問い自体が既に回答になっているなら、それ以上は答えようがないのは当たり前。

200 :Name_Not_Found:2009/03/03(火) 19:02:45 ID:0lUjosGo
質問です。
ttp://www.playonline.com/ff11/index.shtml
こちらのサイトのソースを見ると、ヘッダに<script src="/ff11/menu/js/include.js"></script>があるのですが
実際のjsファイルはttp://www.playonline.com/ff11/menu/js/include.jsにあります。
ttp://www.playonline.com/ff11/index.shtmlから指定するならば、<script src="/menu/js/include.js"></script>が正しいように思うのですが
どうしたらこのように、相対パスを上位ディレクトリから指定することが出来るのでしょうか?

201 :Name_Not_Found:2009/03/03(火) 19:12:39 ID:???
>>200
つ 絶対パス

202 :Name_Not_Found:2009/03/03(火) 19:19:13 ID:???
./menu/js/include.js
menu/js/include.js

好きな方つかえ

203 :Name_Not_Found:2009/03/03(火) 19:45:28 ID:0lUjosGo
絶対パスだと、ソースも絶対パスで表記されると思います。
この場合はindex.shtmlが/ff11/に存在しているにも関わらず
<script src="/ff11/menu/js/include.js"></script>と、最上位ディレクトリを基準に相対パスで指定しているのが疑問なのです。
jsファイルを見ても特に変わったところはありませんでした。
このような指定の仕方をご存知の方おられましたら教えて下さい。

204 :Name_Not_Found:2009/03/03(火) 19:47:30 ID:???
何が疑問なのかまったくわからない。

205 :Name_Not_Found:2009/03/03(火) 19:57:16 ID:???
/ ・・・・・ルート
/menu ・・・・ルートの下にmenuディレクトリ(>>200のサイトにはルートの下にmenuは置いてない)
/ff11 ・・・・・ルートの下にff11ディレクトリ

./ ・・・・現在いるディレクトリ
../ ・・・・一個上のディレクトリ

絶対パスと相対パスをもう少し勉強して雇用な

206 :Name_Not_Found:2009/03/03(火) 20:12:15 ID:???
CUIの本でも読んでこいと言いたくなるが(苦笑)
httpなんちゃら〜と全部書くのが絶対指定だと勘違いしてるだけだな。

/ (スラッシュ) の前にアルファベットを書けば、
それはカレント直下のディレクトリとして認識される。
つまり /ff11/index.shtml で menu/〜 と書けば
カレント(/ff11) の直下の menu ディレクトリと見做す。
これが相対指定。

/ の前に”何も書かなければ”それはルートディレクトリを
基準にしていると見做す。
つまり /ff11/menu/〜 と書けば、それを指定しているのが
/ff11/index.shtml だろうが /finalfantasyxi/index.shtml だろうが
/ff11/menu/〜 ディレクトリと見做す。
これが絶対指定。

. (ドット1つ)はカレントディレクトリを指す。
.. (ドット1つ)はカレントの親ディレクトリを指す。
だから、menu/〜 は ./menu/〜 と書いても同じことだし、
この場合なら ../ff11/menu/〜 でも同じ場所を指すことになる。

207 :Name_Not_Found:2009/03/03(火) 20:19:21 ID:0lUjosGo
仰る通り、絶対パス=http://〜、と勘違いしていました。
「/」から書けば、どのディレクトリからでも同じように指定できるのですね。
JavaScriptどころか、HP作成の基本中の基本を知りませんでした。
ありがとうございました。

208 :Name_Not_Found:2009/03/03(火) 21:57:25 ID:???
スレチ

209 :Name_Not_Found:2009/03/04(水) 00:29:36 ID:3ITUMRdA
Jqueryについての質問です。
最初に取得済みのチェックボックス郡からチェックされてるものだけ抽出する事ってできませんかね?
$( chks ,':checked') とか $( chks ,'[@checked]')とかやっても駄目だったんですが、
抽出方法ってありますか?


210 :Name_Not_Found:2009/03/04(水) 00:37:38 ID:???
このスレはいつから手取り足取りになったの?レベルが水面下進行中では?

211 :Name_Not_Found:2009/03/04(水) 00:46:04 ID:???
元々一部のまともな解答者以外の、臭くてアホなテンプレ厨が混じるレベルの低いスレだけど、
そろそろjQuery(というかそれぞれのframework専用)スレを立てた方が良い模様。

212 :Name_Not_Found:2009/03/04(水) 01:00:06 ID:???
>>211
jQueryやYUI、prototype.jsはマニュアルが充実してるから建てるまでもないような気がする

213 :Name_Not_Found:2009/03/04(水) 01:18:29 ID:???
つまり

ググれカス

だな

214 :Name_Not_Found:2009/03/04(水) 01:23:43 ID:???
>>210
水面下進行中ってそういう意味なのか

215 :Name_Not_Found:2009/03/04(水) 01:34:02 ID:???
>>212
いやフレームワーク本体にもバージョンアップによる変更点がそれなりにあるし、
特定のフレームワークに依存するPluginに関する質問もそこそこあるようなので、
jQueryとPrototype.js(script.aculo.us)については専用スレがあっても良いと思うけどね。

216 :Name_Not_Found:2009/03/04(水) 03:45:17 ID:???
フレームワーク系の質問はウザいので
分かれてくれるんなら分かれてくれたほうが嬉しいけど
現実問題フレームワークの質問スレに回答者が集まらずに
結局質問者がこっちに持ち込むというパターンになるんじゃなかろうか

217 :Name_Not_Found:2009/03/04(水) 04:59:19 ID:???
少なくとも jQuery を分けないのはそろそろ無理があると思う
といってもライブラリ毎に専用スレ立ててたら猛烈に過疎る悪寒
とりあえず JavaScript ライブラリ総合スレッドで立てて
必要に応じて分ければいいんじゃないか
ライブラリ選びの参考にもなるだろう

218 :Name_Not_Found:2009/03/04(水) 09:38:59 ID:???
空気読まずにすいません。

くだすれで何の反応もないのでこちらで質問いたします。

jQueryでload()で呼び出したいhtmlがshift-jisなんですけど、charsetを指定してやるとか文字化けさせない方法ありますか?
例えばjQuery.ajax()でcharsetを設定しload()と同じ動作をさせるとか

219 :Name_Not_Found:2009/03/04(水) 11:20:26 ID:???
>>214
ワロタw

220 :Name_Not_Found:2009/03/04(水) 20:24:35 ID:???
関数の引数に、配列で組んだ文字列を渡すには、どうすればよいですか?

221 :Name_Not_Found:2009/03/04(水) 20:28:51 ID:???
>>220
どういう引数を渡そうとして、なにやってできなかったとか書けw

エスパーするとこんな感じ。

function foo(x) { alert(x); }
var ary = ["a", "b", "c"];
foo(ary[1]); // alert("b");

"abc"を渡したいならfoo(ary.join(""));

222 :220:2009/03/04(水) 20:59:39 ID:???
>>221 すみません><

function L(x){ return(parseInt(document.getElementById(x).style.left)); }

id部分を配列にしており、L関数に渡したいと思っています。
for文の中で[i]を使って関数に引数を渡し、alertで出力は出来ないでしょうか?

223 :Name_Not_Found:2009/03/04(水) 21:19:19 ID:???
var id = ["id_1", "id_2"];
for (var i = 0; i < id.length; i++) {
 alert( L( id[i] ) );
}
こういうこと?

224 :Name_Not_Found:2009/03/04(水) 23:00:19 ID:???
>>223 ありがとうございます><出来ました!

受け取った数値を直接他の関数に渡すことが出来ませんか?
function L()の他に、
function B()があった場合
B( L( id[i] ) );
みたいな使い方は可能なんでしょうか?間違ってるのだと思いますが、うまくいきません。

if( L( id[i] = id_2 )
みたいな使い方は無理でしょうか?こっちもうまくいきません。。

くだらない質問に付き合わせて本当に申し訳ないです;

225 :Name_Not_Found:2009/03/04(水) 23:14:19 ID:???
'id_2'

226 :Name_Not_Found:2009/03/04(水) 23:21:55 ID:etJvOxZJ
domを操作できると知りました
domを操作するとどんなことができるのでしょうか?

227 :Name_Not_Found:2009/03/04(水) 23:26:58 ID:???
==

228 :Name_Not_Found:2009/03/04(水) 23:36:17 ID:???
>>224
B( L( id[i] ) );
これBがalertなら上と一緒じゃん。できないんだったら別の原因じゃない?
あとifの方は何がやりたいのかよくわからない。
if文の中で関数が使えるかってことなら使えるけど。

229 :Name_Not_Found:2009/03/04(水) 23:42:03 ID:???
Cでのgetchar()ってJavaScriptだと何になるの?

230 :Name_Not_Found:2009/03/04(水) 23:43:33 ID:???
parseChar

231 :Name_Not_Found:2009/03/04(水) 23:48:27 ID:???
>>225
>>227
>>228
ありがとうございました><出来ました!
下手な説明のうえに変な質問ばかりですみませんでした;_;

232 :Name_Not_Found:2009/03/05(木) 11:58:15 ID:???
jQueryで2つ以上のIDを指定するような書き方を教えてください
<div id="item">
<p id="pitem">aaa</p>
</div>

$('#item#pitem').html();では取得できませんでした

233 :Name_Not_Found:2009/03/05(木) 12:42:11 ID:WfgOZu2S
jQueryで質問なんですが、デバッグツールなどはありますか?
jQueryの構文エラーだと、FFなどのコンソールではエラーが表示されず困っています。
すみませんが、ご教授願います。

234 :Name_Not_Found:2009/03/05(木) 12:45:57 ID:???
ない

235 :Name_Not_Found:2009/03/05(木) 12:59:31 ID:WfgOZu2S
>>234
ないんですか…
ありがとうございました

236 :Name_Not_Found:2009/03/05(木) 13:05:04 ID:???
>>232
IDはその文書内でユニークなもの
「2つ以上のIDを指定」に意味はない

p要素を取得したいなら「pitem」だけ指定

237 :Name_Not_Found:2009/03/05(木) 17:00:09 ID:???
>>232
XPathのid()関数
今のjQueryでXPathが使えたか知らんし興味もない

238 :Name_Not_Found:2009/03/05(木) 17:19:14 ID:???
複数要素の取得の意味ならjQueryでも#item,#pitemで逝けるのでは

239 :Name_Not_Found:2009/03/05(木) 17:35:00 ID:???
>>226
ジェットストリームアタックができる

240 :Name_Not_Found:2009/03/05(木) 20:25:49 ID:???
>>233
firebugでいいじゃん

241 :Name_Not_Found:2009/03/05(木) 21:01:59 ID:uDGvvH4C
test.txtというcsvのデータファイルがあります
ボタンを押すとtest関数を実行してtest.txtを読み込みたいのですが思うようにいきません
どなたかご教示おねがいします

<button onClick="test()"></button>

function test() {
file = file("test.txt");
len= file.length;
aler(len);
}

242 :Name_Not_Found:2009/03/05(木) 21:31:20 ID:???
>>241
>思うようにいきません
どう思っているのか書いていないわけだが。

243 :Name_Not_Found:2009/03/05(木) 21:37:32 ID:???
file関数はどこにあるんだ?

244 :Name_Not_Found:2009/03/05(木) 22:45:58 ID:???
関数 file を上書きしちゃっているようだがいいのだろうか。
最後は上手く実行されるようアラーに祈っているのか。

245 :Name_Not_Found:2009/03/05(木) 22:53:56 ID:???
お前は何を言ってんだ
file関数なんて元々ないだろ
PHPとかと混同してねーか?

246 :Name_Not_Found:2009/03/05(木) 23:05:00 ID:???
どっか別の場所で定義してんだろ
でないと論外過ぎる

しかし関数testの定義にしても、どこで行ってんだそれ?
buttonタグの直下に書いてんの?
scriptタグ内じゃないよなそこ

247 :Name_Not_Found:2009/03/06(金) 00:28:12 ID:???
お取り込み中すいません。DOM2の邦訳ってないんですか。

248 :Name_Not_Found:2009/03/06(金) 00:33:40 ID:???
みんなで虐めてんのか

釣りなのか

249 :247:2009/03/06(金) 00:42:34 ID:???
失礼します。解決しました。すいません。

250 :Name_Not_Found:2009/03/06(金) 01:38:01 ID:???
>>245
file("test.txt")の結果がfileに代入されてるってことじゃない

251 :Name_Not_Found:2009/03/06(金) 01:50:26 ID:???
>>250
だから、file()というユーザー定義関数の内容はどこに書いてある?
それすら提示せずに回答できるわけねーだろ

相手するの疲れるからお前はもう黙っとけ

252 :Name_Not_Found:2009/03/06(金) 01:59:58 ID:???
キチガイだった

253 :Name_Not_Found:2009/03/06(金) 02:09:45 ID:???
>>252
次は理由も書かずに人格批判とな
ほんと滑稽で笑っちゃうね

254 :Name_Not_Found:2009/03/06(金) 02:46:35 ID:???
file関数がどこで定義されていようがそれがどんなコードだろうが関係なく
file = file("test.txt");はおかしいだろ
いや、2度と関数として呼び出すことはないってのならまだ分かるがね

だから
*file関数がどこで定義されていようがそれがどんなコードだろうが関係なく*
>>244>>250のツッコミは妥当なわけで

なにファビョってんだか

255 :Name_Not_Found:2009/03/06(金) 02:56:24 ID:???
>>254
ごめんなさい

256 :Name_Not_Found:2009/03/06(金) 05:31:00 ID:???
スレがまともに機能すると、
発言出来なくなるのが困るテンプレ厨の自演か。

257 :Name_Not_Found:2009/03/06(金) 09:48:36 ID:???
今回のは特に酷かったな

相手するの疲れるからお前はもう黙っとけ(笑)

258 :Name_Not_Found:2009/03/06(金) 11:46:43 ID:???
絶対PHPのfileがjsで使えると思ってるよwww

259 :Name_Not_Found:2009/03/06(金) 14:27:09 ID:1s0qvLQe
document.cookie="item[id][1]=電化製品";
document.cookie="item[id][2]=書籍";

PHPで$_COOKIE[item][id][1]という表記で値が取れるように
上記のように書いてみたのですがクッキーにうまく書き込めません
どなたかご指摘お願いします

260 :Name_Not_Found:2009/03/06(金) 14:28:41 ID:???
だから釣りだろ

>>3のA2見ろで終わりじゃん
ActiveXとかだったらスレ違い

261 :Name_Not_Found:2009/03/06(金) 14:30:17 ID:???
>>259
もうその質問答え飽きた
ログ読め

262 :Name_Not_Found:2009/03/06(金) 14:33:58 ID:1s0qvLQe
javascriptでクッキーの読み書きができないってことでしょうか?

263 :Name_Not_Found:2009/03/06(金) 14:34:44 ID:???
>>260はクッキーとテキストファイルを一緒にしてる素人だからスルーでおk

264 :Name_Not_Found:2009/03/06(金) 14:37:44 ID:???
>>260>>258に対するレスだろ

265 :Name_Not_Found:2009/03/06(金) 14:41:05 ID:???
このスレに生息する厨房

テンプレ厨・・・自信満々にテンプレへのアンカーを出して回答した気になる自称知的人(笑)
煽り厨・・・・・・自分が答えられないが故に煽ってストレス解消をする困った人

266 :Name_Not_Found:2009/03/06(金) 14:56:44 ID:???
>>265
これも追加しとけ
評価厨・・・・・・上記のような厨房が存在するとすぐに評価したがる、スレの趣旨が分かっていない低脳

267 :Name_Not_Found:2009/03/06(金) 15:00:38 ID:???
>>266
これも追加しとけ
上げ足厨・・・・叩く材料が見つかるとすぐに現れる社会のゴミ

268 :Name_Not_Found:2009/03/06(金) 15:02:47 ID:???
>>259
$_COOKIEでスレ内検索したら、>>82に同じような質問が出てきたよ

269 :Name_Not_Found:2009/03/06(金) 15:11:03 ID:???
"item[" + id + "][1]=電化製品";
じゃねーの?

270 :Name_Not_Found:2009/03/06(金) 15:11:12 ID:???
同じような質問がでても解決してないわけだが

271 :Name_Not_Found:2009/03/06(金) 15:37:05 ID:???
JavaScriptでclientWidthを用いて次のようにセンタリングした場合、センターからわずかにずれるようなのです。clientWidthがまずいのでしょうか?

var style = document.getElementById('abBox').style;
style.left = (document.body.clientWidth - 10) / 2 + 'px';

<div style='margin:0 auto;width:10px;height:50px;background-Color:blue'></div>
<div id='abBox' style='position:absolute;width:10px;height:60px;background-Color:red'></div>
  ↑この2つのdiv領域のX座標が一致しない。


272 :Name_Not_Found:2009/03/06(金) 15:53:21 ID:???
ブラウザぐらい書きなさい

273 :Name_Not_Found:2009/03/06(金) 16:01:26 ID:???
>>272
すみません。IE7,Chrome,Safariのいずれでもずれることを確認しました。
また、ずれる幅はブラウザに依存しています。

きっと、clientWidthがスクロールバーなどを含む値になっているのか、
styleで指定しているセンタリングが何かborder幅を含んで本当のセンターではないのか
何かそういう理由なのだとは思うのですが。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
をheaderで指定しなければ、このズレは生じないです。これを指定するとこのズレが発生します。

274 :271:2009/03/06(金) 16:02:21 ID:???
再現できるソースを貼り付けておきます。prototype.jsは別途必要です。最新のものを使用しています。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript" src="prototype.js"></script>
<script>
Element.observe(window, 'load', function()
{
var style = document.getElementById('abBox').style;
style.left = (document.body.clientWidth - 10) / 2 + 'px';
}
);
</script>
</head>
<body>
<div style='margin:0 auto;width:10px;height:50px;background-Color:blue'></div>
<div id='abBox' style='position:absolute;width:10px;height:60px;background-Color:red'></div>
</body>
</html>


275 :Name_Not_Found:2009/03/06(金) 16:06:56 ID:???
document.body.clientWidthはDOCTYPEを宣言しなかった場合のIE4、5、6、7で使用可能。
IE6(7)でDOCTYPEを宣言していた場合はdocument.bodyではなく、document.documentElement要素で定義される。
またIE以外のブラウザではclientWidthは使えない。この場合window.innerWidthを使用する。

まぁそういうことだ。

276 :271:2009/03/06(金) 16:21:31 ID:???
>>275
うわ!!!動きました!!ありがとうございます。

document.body.clientWidth を document.documentElement.clientWidth に変更したところ
IE7/Chrome/Safariでうまく動きました。

おっしゃる通り、SafariはinnerWidthを用いるように書いてあるページが
あり、そうするのが正しいのだとは思うのですが(→ http://d.hatena.ne.jp/onozaty/20060802/p1 )
最新のSafariではdocument.documentElement.clientWidth でうまく取得できるようなので
これでいいと思いました。

本当にありがとうございます。

277 :Name_Not_Found:2009/03/06(金) 16:28:36 ID:nuD1rsTR
すいません便乗させてください
>>276さんの紹介ページに書いてある方法で
標準モードで全ブラウザに対応するにはどのようなやり方がありますでしょうか?

278 :Name_Not_Found:2009/03/06(金) 19:39:35 ID:???
HTMLの質問なんですが
<script language="JavaScript">
<!--//
function Password() {
pw = prompt("#:","")
if(pw) {
location = pw + ".html"
} else {
alert("キャンセルしました")
}
}
//-->
</script>
</Head>
<Body>
<a href="javascript:Password()"><Img Src="#" Width="90" Height="40"></A><Br>
これは画像をクリックするとパスワード入力画面が表示されるスプリクトなんですが
これをフレームの右側にボタンを取り付け、パスを入力すると左に表示されるようにしたいんですが
このままでは右側をターゲットにしてしまい
<a href="javascript:Password()" target="right"><Img Src="#" Width="90" Height="40">
としてもエラーが起こるだけで、うまく使えません。
改良方法お願いします。
プログラム板にも書き込んだのですが、板違いだったのでこっちにきました。

279 :278:2009/03/06(金) 19:59:38 ID:???
急いでますので教えてください

280 :Name_Not_Found:2009/03/06(金) 20:00:47 ID:???
>>278
書き込む直前に>>279見て「イヤだ」と言いそうになったw

左右逆な気がするけど、表示したいフレーム名がrightなら
parent.right.location

281 :278:2009/03/06(金) 20:04:23 ID:???
>>280
動きません。
分かりやすく教えてもらいますか?

282 :Name_Not_Found:2009/03/06(金) 20:05:37 ID:???
>>280
一言多いんだよくたばれ

283 :Name_Not_Found:2009/03/06(金) 20:09:04 ID:???
>>282
>>280くらいでそこまで言うってどんだけメンタル弱いんだよ

>>278
frame部分のHTMLも合わせて書いてみないとどういう風にエラー出てるのかわからん

284 :278:2009/03/06(金) 20:18:07 ID:Fftqauoe
ID表示するのわすれてました>>279>>281は自分ではないです
>>280解決しました。ありがとうございました。

285 :Name_Not_Found:2009/03/06(金) 22:55:55 ID:???
なんと性格の悪い279w

286 :Name_Not_Found:2009/03/07(土) 02:09:18 ID:???
馬鹿にされた腹いせに粘着しだしたか

287 :Name_Not_Found:2009/03/07(土) 18:52:49 ID:3jKIOL4m
最新版のjavascriptのバージョンと
firefox,ie,opera,safariの各最新ブラウザに対応したjavascriptのバージョンを知りたいのですが
参考になるサイトを教えてください

288 :Name_Not_Found:2009/03/07(土) 19:35:02 ID:???
>>287
実装はそれぞれ異なるから、そのバージョンを比較するのは
ブラウザ自体のバージョン(Fx3,IE7,Opera10など)を比較するようなもの。
対応する共通規格についてはこの辺見て。
ttp://ja.wikipedia.org/wiki/ECMAScript


289 :Name_Not_Found:2009/03/07(土) 20:27:57 ID:???
「JavaScript言語の」バージョンが問題になることはほとんどない。
1.5で書いておけば普通のブラウザはみな通るから。問題は言語では
なくそこから呼び出すDOMなどのAPIの実装がブラウザ/バージョン毎に
バラバラだったりふるまいが違ったりすること。

290 :Name_Not_Found:2009/03/07(土) 20:30:34 ID:???
今のところIEが一番新しいんですね

291 :Name_Not_Found:2009/03/07(土) 22:06:23 ID:JnKjoq9g
http://pc11.2ch.net/hp/
このルーチンでエラーが出ている(Firefox3.0.7)

function filterByLevel(level) {
if (isNaN(level))
level = 0;
var dls = document.getElementsByTagName("dl");
for (var i = 0; i < dls.length; i++)
if (dls[i].previousSibling && dls[i].previousSibling.tagName.toLowerCase() == "form"
&& dls[i].previousSibling.length == beRanks.length)
for (var j = 0; j < beRanks.length; j++)
if (dls[i].previousSibling[j].level == level) {
dls[i].previousSibling[j].style.borderStyle = "inset";
dls[i].previousSibling[j].style.fontWeight = "bold";
}
else
dls[i].previousSibling[j].style.borderStyle
= dls[i].previousSibling[j].style.fontWeight = "";
for (var i = 0; i < beLvs.length; i++)
if (beLvs[i].lv < level) {
beLvs[i].dt.style.backgroundColor = "#CCC";
beLvs[i].dt.nextSibling.style.display = "none";
}
else
beLvs[i].dt.style.backgroundColor
= beLvs[i].dt.nextSibling.style.display = "";
}


292 :Name_Not_Found:2009/03/07(土) 22:25:05 ID:???
で?

293 :Name_Not_Found:2009/03/08(日) 11:10:10 ID:???
っていう

294 :Name_Not_Found:2009/03/08(日) 12:22:00 ID:LiiDgj+W
xhtml1.0 strict標準モードで画面サイズを取得したいのですが
IE6,IE7,IE8,Firefox2,Firefox3,Opera9,Opera9.5,safariに全部対応したいのですが
以下のような書き方で大丈夫でしょうか?
UAを見て振り分けた方がいいですか?
w = document.documentElement.clientWidth;
h = document.documentElement.clientHeight;
w = document.body.clientWidth;
h = document.body.clientHeight;
w = window.innerWidth;
h = window.innerHeight;
alert("W="+w+" H="+h);

295 :Name_Not_Found:2009/03/08(日) 13:32:04 ID:???
>>294
何がしたいのかわからない。3〜6行目はw,hに再代入されつづけ、
結局5,6行目の結果しかw,hには残らない。JavaScriptもっと勉強しとくれ。

画面サイズの取得はFAQだと思うけど案外難しい。
http://www.tagindex.com/kakolog/q4bbs/801/1069.html

UA振り分けは上のリンクにも書いてあるが
> しかし、分岐するにしても、ユーザエージェントを見てはいけない(だいたい、ユーザエージェントなんて容易に偽装できる)
のでお勧めしない。


296 :Name_Not_Found:2009/03/08(日) 14:10:59 ID:???
画面サイズって簡単なようで意外とこれっていう答えがないんだな

297 :Name_Not_Found:2009/03/08(日) 15:12:51 ID:???
日曜の昼間の連中じゃ答えられないから夜まで待ってみるといいよ

298 :Name_Not_Found:2009/03/08(日) 16:09:53 ID:???
ただ単に答えだけ書けばいいと思ってるのか

299 :Name_Not_Found:2009/03/08(日) 16:33:04 ID:???

  回答者を格付け批評できるほどの頭脳をお持ちの297殿に、
  完全無欠で補足不要の最適解を提示して頂ければ、
  何ら問題なく全てが丸く納まるのではないかと愚行する次第。


っていう煽りを思いついたから書き捨てとくね。



>294の件は「環境揃えてそれぞれ試してみりゃいいんじゃね?」が一番簡単な解。

IE6,7,8含めた上で、画面サイズを要求するほどに、
きっちり計算したレイアウトを考えるなら、
どうせCSSその他のズレ確認だって必要になる。
だったら、全部確認できる環境用意するしかない。
で、どうせ環境用意するなら、それで確認が一番手っ取り早いでしょ。

300 :Name_Not_Found:2009/03/08(日) 16:49:22 ID:???
ここで煽ってる連中は回答者とは言わないから安心しろ

301 :Name_Not_Found:2009/03/08(日) 18:12:21 ID:???
>>299が環境を整えて全部確認して回答したらいいんじゃないの?

302 :Name_Not_Found:2009/03/08(日) 20:13:39 ID:???
>>297=300
回答できないあなたも回答者とは呼ばないから安心してね。

それにしても、日曜の昼間にスレ張り付きとは、ご苦労様デス。



>>301

( ゚д゚)

(゚д゚)

( ゚д゚)

(゚Д゚)?

303 :Name_Not_Found:2009/03/08(日) 20:23:42 ID:???
>>302君は知識よりもプライドが高そうだね(笑)

304 :Name_Not_Found:2009/03/09(月) 05:57:20 ID:???
>>303
×プライドが高い ○301よりは常識がある

301には決定的に常識が足りない。

305 :Name_Not_Found:2009/03/09(月) 06:31:49 ID:???
>>304
>>303>>301を擁護しているわけじゃないと思うよ

306 :Name_Not_Found:2009/03/09(月) 11:26:25 ID:???
プライドが高い人ってのは自分を援護するレス以外は全部敵に見えるようだ

307 :Name_Not_Found:2009/03/09(月) 11:33:49 ID:???
>>306
プライドが高い人っていうか、臆病な人だと思う。

308 :Name_Not_Found:2009/03/09(月) 11:43:01 ID:???
301はここまで叩かれると恥ずかしくて出てこれないな

309 :Name_Not_Found:2009/03/09(月) 11:54:03 ID:???
まぁ画面サイズとドキュメント表示領域サイズは違うよな

310 :Name_Not_Found:2009/03/09(月) 12:07:24 ID:???
画面サイズならscreen.availWidthとscreen.availHeightでいいじゃん
何か迷う必要があんのか

311 :Name_Not_Found:2009/03/09(月) 12:08:26 ID:???
それってブラウザによって数字が異なるじゃん

312 :Name_Not_Found:2009/03/11(水) 11:21:08 ID:7vsqsyw0
http://test.example.com/というところでHPを作ってるとします
2chのようにpathinfoでページを出力してるのですが、以下のURLにアクセスします
http://test.example.com/tabemono/index.html/red/

このときhttp://test.example.com/tabemono/index.html/red/でクッキーを発行し
このURLでのみクッキーを使用可にしたいのですがこのURL以外でも読み込めてしまいます
どなたかご教示お願いいたします

document.cookie = "NAME=test; PATH=/tabemono/index.html/red/;";

313 :Name_Not_Found:2009/03/11(水) 12:58:56 ID:???
>>312
/tabemono/index.html/red/example/
で読めてしまうっていうなら仕様。

314 :Name_Not_Found:2009/03/11(水) 15:54:55 ID:???
なんでルートを

315 :Name_Not_Found:2009/03/13(金) 10:35:37 ID:???
あるタグにスタイルシートのクラスを追加したいのですが

document.getElementById('hoge').style.className = "hoge";
とやってみ何も変わってくれないのですが
間違っていますでしょうか?

316 :Name_Not_Found:2009/03/13(金) 10:40:34 ID:???
>>312
Cookieはドメインごとの発行だからな

317 :Name_Not_Found:2009/03/13(金) 11:26:29 ID:???
>>315
それは明らかにまちがってるんだけど、何をしたいのかが読み取れない
<hoge> を <hoge class="hoge">にしたいなら
document.getElementById('hoge').className = "hoge";
なんだけど、スタイルシートのクラスってなんだ?
span.fuga { margin:0 }

span.fuga, span.hoge { margin:0 }
にしたいなら無理じゃなかったかな。
直接CSSをファイルを入れるとかしないと。

318 :Name_Not_Found:2009/03/13(金) 11:43:13 ID:???
styleイラナイ

319 :Name_Not_Found:2009/03/13(金) 11:50:14 ID:???
スタイルシートって詳細度が高ければ上書き出来なかったっけ?
動的にstyle要素でも作成したら

320 :Name_Not_Found:2009/03/13(金) 12:47:32 ID:???
ありがとうございました。

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

でできました。


321 :Name_Not_Found:2009/03/14(土) 10:13:31 ID:fUQztCAY
JavaScriptサンプルプログラムをご利用ください。
http://www.yukinko-net.jp/JavaGuide/javascript/

322 :Name_Not_Found:2009/03/14(土) 15:05:55 ID:???
↑ロクでもないことすんな(2つの意味で)

323 :Name_Not_Found:2009/03/14(土) 15:22:53 ID:gTsSVXwy
テーブルのn行目がクリックされたらn行目の背景色をAに、
次にm行目がクリックされたらn行目の背景色をもとに戻して
m行目の背景色をAに…
って処理をしたいんですが、

1行目<tr id="line1" onclick="change(1)">
2行目<tr id="line2" onclick="change(2)">
function change(n){
var line_style = "line_"+n;
document.getElementById(line_style).style.backgroundColor ='green';
}

という風にして
テーブルのn行目がクリックされたらn行目の背景色をAに、
はできたんですか、そこからどうしたらよいのか思いつかないので質問します。
よろしくお願いします。

324 :Name_Not_Found:2009/03/14(土) 15:26:08 ID:???
>>323
クリックされた行を保存しておけばいい

325 :Name_Not_Found:2009/03/14(土) 16:08:28 ID:gTsSVXwy
>>324
保存はどうしたらいいんでしょうか?
一応、一度全部背景を元に戻してからクリックしたところの背景を変える
という方法で希望の事はできたんですが無駄が多い気がして。。

function change(n){
 for(i=0;i<10;i++){
    var line_style = "line_"+i;
    document.getElementById(line_style).style.backgroundColor ='black';
 }
 var line_style = "line_"+n;
 document.getElementById(line_style).style.backgroundColor ='green';
}

326 :Name_Not_Found:2009/03/14(土) 16:08:47 ID:???
処理の書き方についての質問です
例1 a=1;b=2;c=a+b;
例2 a=1,b=2,c=a+b;

例1の書き方はよく見ますが、例2はvar a=1,b=2;ぐらいしか見ず、
通常の変数処理につかってるのはあまりありません(稀にfor文で見るくらい)
例2は一般的ではない?それとも処理に問題がある(遅いとか)

327 :Name_Not_Found:2009/03/14(土) 16:31:10 ID:???
>>325
var changed_line; // 「関数実行毎」ではなく「全体で」だから宣言しておく
function change(n) {
 if(changed_line) // 「何か定義されていれば」=「初回時以外」
  { unchange(changed_line); } // n行目を元に戻す処理
 // n行目に対する処理をここに
 changed_line = n; // 記憶する
}

>>326
ぱっと見てなにが違うのかわからなかったw

例1のセミコロンは文の区切りの意味で、改行を省いただけの
ただの複数行だからどんな場面でも使える。
だからセミコロンの前後に直接的な関係性はない。

それに対してコンマ演算子は別の意味を持っていて
コンマの前後は多少なりとも関係性を持つ。
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Operators/Special_Operators/Comma_Operator

無理矢理表現するならこういう違い。
(a=1);(b=2);(c=a+b);
(a=1,b=2,c=a+b);

違いがわからないうちは、コンマはvarまとめる程度にしておいたほうが無難。


328 :Name_Not_Found:2009/03/14(土) 16:31:29 ID:???
>>323
できたとか言って、本当に試したのか?
idがline1、line2なのに、何でline_styleはline_1、line_2なん?
これ動かんよ
フラグ変数でも作れば

>>326
一般的とかない。どう書くかはその人の趣味。

329 :Name_Not_Found:2009/03/14(土) 16:33:02 ID:???
>>325
rowIndexを持っているTRに連番のIDを振ってる時点で無駄もクソもねーよ
どうしてもIDを振りたいんならそれを記憶しとけ
他のスクリプトで背景を上書きされている可能性があるなら全部戻すのもありかもしれん

>>326
ただの代入文とカンマ式だろ
式と文の違いを踏まえた上で、使いたきゃ勝手に使え

330 :Name_Not_Found:2009/03/14(土) 16:46:45 ID:???
326です。回答ありがとうございます。違いが理解できました。

331 :323:2009/03/14(土) 17:06:08 ID:gTsSVXwy
グローバル変数とローカル変数の違いが
いまいちわかってなかったけどわかりました。
ありがとうございます。

rowIndexなてあるんですね 知らなかったぁ…

332 :Name_Not_Found:2009/03/14(土) 17:17:02 ID:???
>>331
rowIndexがあるから、
全てのtrにonclickを設定するのでは無く、
table自体にonclickイベントを設定し、event.targetの最も近い祖先trのrowIndexを取得し、
対象のtrを判断するという方法が、特別な属性を設定する事無く可能。
俗に言うイベントデリゲーションの一種。

そういや最近はアホ外人君やJS終った君を見ないね。

333 :Name_Not_Found:2009/03/15(日) 01:12:47 ID:tSPOxcvw
DOMというのはMSDOMとどうちがいますか。
MSDOMコマンドは使えますか。

334 :Name_Not_Found:2009/03/15(日) 01:23:29 ID:ZJyI+8vG
ブログの記事を書く時にプレビューしたいんです。
<script type="text/javascript">
function writeText(str) {
text = str;
text = text.replace(/\n/g,"<br>");
text = text.replace(/\s/g," ");
document.getElementById('p').innerHTML = text ;
}
</script>
<textarea name="html" rows="30" cols="60" onkeyup="writeText(this.value)"></textarea>
<p id="p">
</p>

どうしてもfontタグで色づけしたいんです。

プレビューに反映されないんです。

どうしたらいいんでしようか?


335 :Name_Not_Found:2009/03/15(日) 01:23:45 ID:???
半年DOMってろ

336 :Name_Not_Found:2009/03/15(日) 05:16:51 ID:???
MSDOMは黒井さん連製と呼ばれています。

337 :Name_Not_Found:2009/03/15(日) 11:29:56 ID:???
document.oncontextmenu使って
右クリック時にオリジナルメニューを開くようにしているんですが、
formだけ適用除外する方法ありますか?

338 :Name_Not_Found:2009/03/15(日) 11:36:30 ID:???
>>337
テキトーに言うけどform要素全てのoncontextmenuに
function(){return true;}入れてみたら?

339 :Name_Not_Found:2009/03/15(日) 12:02:03 ID:???
しねばいいのに

340 :Name_Not_Found:2009/03/15(日) 14:01:50 ID:???
春休みだのう

341 :超級武神派斬 ◆z99YUIJCjQ :2009/03/15(日) 16:07:42 ID:???
大学生の春休み突入

厨房がスレに潜伏

小中高の春休み

厨房どもがスレの機能停止

342 :Name_Not_Found:2009/03/15(日) 20:45:47 ID:???
>>338
やってみましたが、できないですね。。
試しにalert入れてみて動作をチェックしてみましたが、
alertは動作するけど、やはりdocument.oncontextmenuも発動してしまうようです

343 :Name_Not_Found:2009/03/15(日) 20:56:18 ID:???
>>342
あーそういうことか、すまんかった。
document.oncontextmenuに登録した関数側で呼び出し元がform関係なら
なにもせずreturn trueで。

344 :Name_Not_Found:2009/03/16(月) 00:57:43 ID:???
別ウィンドウでの操作を元ウィンドウのフォームに反映させるやり方を探しています。

上手く伝わるか不安なのですが、
テキストフォームの横にあるリンクを押すとウィンドウが新しく一つ開き、そのウィンドウの中でいずれかのリンクをクリックすると
ウィンドウが閉じると共に元のページのテキストフォームに値が入力されている、というものを作りたいのです
近いものだとオンラインショップで住所を入力するとき外部ウィンドウに表示されたマップから選ぶ、というのが浮かびます
検索しようにもキーワードが分からず……ご教示ください

345 :Name_Not_Found:2009/03/16(月) 01:16:16 ID:???
window.openerで親ウィンドウが参照可能
window.closeとかonunloadのタイミングで操作すればOK

346 :Name_Not_Found:2009/03/16(月) 01:28:09 ID:???
なるほど!親ウィンドウ、と検索してみればよかったですね……思いつかず。やってみます
ありがとうございますー

347 :Name_Not_Found:2009/03/16(月) 10:45:24 ID:???
↑ページのトップにもどる
でクリックするとアニメーションしてページのトップにもどるスクリプトで
商用利用なものをさがしています。
どこぞにないもんかの


348 :Name_Not_Found:2009/03/16(月) 13:09:40 ID:???
知ってるがおまえの態度が気に入らない

349 :Name_Not_Found:2009/03/16(月) 13:42:19 ID:???
>>348
A型乙

350 :Name_Not_Found:2009/03/16(月) 15:29:21 ID:???
商用利用禁止を明文化してるスクリプトのほうが少ないんでは

351 :Name_Not_Found:2009/03/16(月) 16:24:04 ID:???
B型だし

352 :Name_Not_Found:2009/03/16(月) 16:51:11 ID:???
商用利用禁止してる作者はリストにしてさらしちゃえばいいよ

353 :Name_Not_Found:2009/03/16(月) 19:18:59 ID:???
商用がどうのとうるさい奴は帰ってくれよ

354 :マウスを回りながら追いかける画像:2009/03/16(月) 19:46:07 ID:aYPEEGOn
<html>
<head>
<title>マウスを回りながら追いかける画像</title>
<script language="JavaScript">
<!--
t = 0;
function move(){
t = t + 0.05;
img1.style.pixelLeft = event.x + 50 * Math.cos(t);
img1.style.pixelTop = event.y + 50 * Math.sin(t);
}
//-->
</script>
</head>
<body onMousemove="move()">
<img src="../../sample/img/img2.gif" ID="img1" STYLE="position:absolute;top:0;left:0">
</body>
</html>


http://www7a.biglobe.ne.jp/~wwwwww/kantansakusei/js/mouseimgsin.html

のページでは正常に動くのですが、自分のホームページにコピペしてアップロードしても、
動かないです。画像は表示されています。なぜ・・・・

355 :Name_Not_Found:2009/03/16(月) 19:51:47 ID:???
(・∀・)カエレ!!

356 :Name_Not_Found:2009/03/16(月) 20:06:18 ID:???
>>352-353
GPLのコードを内部で使っていたのがバレで、
ソース公開に追い込まれたアホなエロゲメーカーを思い出した。
あまりに規約に無頓着なのも問題。

357 :Name_Not_Found:2009/03/16(月) 22:07:28 ID:???
>>354
それのどこがマウスを回りながら追いかける仕組みになってるのかね?

358 :Name_Not_Found:2009/03/17(火) 09:46:40 ID:???
javascriptからリンクをクリックしたいんですが、IE7なら下のやり方でOKでしたが
Firefox3.0.7だとclick()でエラーになります。
Firefoxでリンクをクリックしたい場合、どのようなメソッドを使えばいいのでしょうか?

<html>
<head>
<script language="JavaScript">
<!--
window.onload = function(){
a = document.getElementsByTagName('a');
a[0].click();
}
//-->
</script>
</head>
<body>
<a href="http://www.yahoo.co.jp">Yahoo!</a>
</body>
</html>


359 :Name_Not_Found:2009/03/17(火) 09:50:59 ID:???
そこjsを使う所じゃないだろ

360 :Name_Not_Found:2009/03/17(火) 11:22:50 ID:???
勝手にクリックとか何考えてるんだと
ワンクリック詐欺でも仕込むのか

361 :Name_Not_Found:2009/03/17(火) 11:24:40 ID:???
どうせ広告かランキングを強制クリックさせるんだろw

362 :Name_Not_Found:2009/03/17(火) 11:59:44 ID:???
<a href="#" onMouseOver="location.href='http://www.yahoo.co.jp/'" style="text-decoration: none; color: black">
ここに本文
</a>

アフィリエイト会社からBANされるけどな

363 :Name_Not_Found:2009/03/17(火) 15:36:16 ID:???
自分も似たようなことやってるわ
「きょうの猫村さん」に勝手にログインしてくれる
User JavaScript だけれども

364 :Name_Not_Found:2009/03/17(火) 20:12:26 ID:SQsrZ0QR
aaa/bbb>ccc*ddd/eee>fff*ggg/hhh>iii*
↑のような文字列がある時に、
x[0]=aaa
x[1]=ddd
x[2]=ggg

y[0]=bbb
y[1]=eee
y[2]=hhh

z[0]=ccc
z[1]=fff
z[2]=iii
のように配列に入れたいんですがどうしたらいいですか?

365 :Name_Not_Found:2009/03/17(火) 20:19:48 ID:???
>>364
Regexでどうよ。

366 :Name_Not_Found:2009/03/17(火) 20:33:31 ID:???
var x = [], y = [], z = [];
var str = "aaa/bbb>ccc*ddd/eee>fff*ggg/hhh>iii*";

var ary = str.match(/.+?\/.+?>.+?\*/g);
for(var i in ary) {
 var result = /(.+?)\/(.+?)>(.+?)\*/.exec(ary[i]);
 if(result) {
  x.push(result[1]);
  y.push(result[2]);
  z.push(result[3]);
 }
}

もうちょっと上手い方法ありそうなんだけどなぁ・・・

367 :Name_Not_Found:2009/03/17(火) 20:56:38 ID:???
正確な答えではないがおそらく宿題であること
回答の正確さよりも採点の簡単さに重点が置かれているだろうことを考えると
おそらくこれが先生の求めているコードだ!


var a,b,c,tmp,mojiretsu = "aaa/bbb>ccc*ddd/eee>fff*ggg/hhh>iii*";
tmp = mojiretsu.split("*");
a = tmp[0].split(/[\/>]/);
b = tmp[1].split(/[\/>]/);
c = tmp[2].split(/[\/>]/);

368 :367:2009/03/17(火) 21:07:52 ID:???
あーごめん
問題よく読んでなかったわw
入る順番違ってた

369 :Name_Not_Found:2009/03/17(火) 21:33:23 ID:???
>>364

何も考えずに書くなら

var str = 'aaa/bbb>ccc*ddd/eee>fff*ggg/hhh>iii*';

var x = [], y = [], z = [];

var arr_a = str.split(/\*/);

for (var i = 0; i < arr_a.length; i++)
{
var arr_b = arr_a[i].split(/[\/\>]/);

x.push(arr_b[0]);
y.push(arr_b[1]);
z.push(arr_b[2]);
}

かね。


>>367
あんまし宿題には見えないなぁ。
どっちかっつーと、PerlCGIをかじった程度の人が、
掲示板CGIでよくある記事保存形式を
そのまんまJavaScriptでも使いました、という感じに見える。

370 :Name_Not_Found:2009/03/17(火) 22:39:04 ID:???
>>369
あー じゃあiiiの後も続く可能性があるのか
その事全然考えてなかったな

371 :Name_Not_Found:2009/03/17(火) 22:41:10 ID:???
>>364
var foo = 'aaa/bbb>ccc*ddd/eee>fff*ggg/hhh>iii*';
var x=[], y=[], z=[];
foo.replace( /(\w+)\/(\w+)>(\w+)\*/g, function(m0, m1, m2, m3) {
x.push(m1); y.push(m2); z.push(m3);
});
とか。

372 :366:2009/03/18(水) 00:45:44 ID:???
>>371
それだ!すっきりしたありがとう。
callback利用までは思いついてたのに、マッチ全体ではなく
キャプチャ単位で呼ばれるとなぜか勘違いした罠。

373 :Name_Not_Found:2009/03/18(水) 03:01:50 ID:???
(function(){
})();

最初と最後にこんなので囲んでるスクリプトを見ます。
別になくても動作すると思うのですが、
なぜわざわざつけてるんでしょうか?

374 :Name_Not_Found:2009/03/18(水) 03:46:03 ID:???
>>373
function f(){
alert();
}
var a=f;
a(); ←「 () 」

/*-------------*/

var a=function(){
alert();
}
a(); ←「 () 」

/*-------------*/

(function(){
alert();
})(); ←「 () 」


過去ログコピペ

375 :Name_Not_Found:2009/03/18(水) 04:27:03 ID:???
>>373
スコープを作るため。
functionの中でvar宣言された変数はその外には漏れない。
うっかり変数名がかぶったりしたときのための保険だから
大抵はなくても動くことは動く。

var v = 1;
(function(){ var v = 2; alert(v);})();
alert(v);

376 :Name_Not_Found:2009/03/18(水) 08:47:17 ID:???
一定時間ごとにAjaxでデータを取得して、
ページに「追記」していきたいのですが、
どのようにすればよいのでしょうか?

prototypeなどを使って「更新」することはできるのですが、
「追記」する方法がわかりません・・・

基本的な考え方だけでもいいので、よろしくお願いします!

377 :Name_Not_Found:2009/03/18(水) 09:31:55 ID:pMQMyHph
ttp://javascript.webcreativepark.net/library/jquery_multiple_file_upload_plugin

こういうのを使って、仕事のデータを送ってもらう窓口を
自分のページに設置したいと思ってます。
そこでログインIDとパスワードで制限をつけて、自分が借りてるサーバーに
特定のディレクトリをつくっておいてそこへうpさせたいのですが
こういう事をやる場合、皆さん現実的にはどうされてますか?

378 :Name_Not_Found:2009/03/18(水) 09:45:18 ID:???
>>377
JavaScriptではファイル選択ダイアログから複数ファイルの選択が出来ないので、
すこぶる使いにくい。Flashでやるのが基本…だが、それは結構骨の折れる作業。

379 :Name_Not_Found:2009/03/18(水) 10:11:58 ID:???
>>377
相手が1人なら、圧縮してメールで送りつける。
複数の人に見てもらいたいなら、圧縮してサーバに置いとく。

送受信にしろ、サーバのバックアップ時にしろ、
ファイルは少なく小さくしておけば後々効率がいい。
業務の上でも「3つ送ったつもりで2つしか送ってなかった」のか
「3つ送ったが相手が見落として2つしか確認してなかった」なんてのは論外だから、
そのテのミスを減らす上でも圧縮を義務付けてる。

だから、そもそも「複数のファイルを送る」なんて状況が存在しない。
どうしても、圧縮展開の手間すら惜しいほど急ぎの用件なら、
担当者のPCにローカル共有フォルダ作って、そこで管理することはあるけどね。

380 :Name_Not_Found:2009/03/18(水) 10:51:17 ID:???
jQuery1.3.2 + thickbox3.1 でIE6で見ると画像が上のほうに止まってます。
検索した結果、XML宣言とDOCTYPE宣言が原因らしいのですが、それを設定しても変わらないまま止まってます。

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">


他に何か原因があるのでしょうか?

381 :373:2009/03/18(水) 10:56:43 ID:???
>>374-375
どうもレスありがとうございます。
詳しい説明ありがとうございました。
勉強になります。

382 :Name_Not_Found:2009/03/18(水) 10:57:06 ID:???
>>379
それは返答として的はずれじゃないか?

レンタルブログのようなサービスを考えたときに、
特定のフォルダにhtmlファイル等々を個々のユーザーにuploadさせて使わせたいだとか
>377のようなニーズはいくらでもあるんじゃないかな。

383 :Name_Not_Found:2009/03/18(水) 11:31:16 ID:???
>>376
追記する対象のエレメントを取得しておいて、
追加データをそのエレメントにappendChildするとか、innerHTMLを変更するとか。

>>381
(function(){})();
はクロージャを生成する目的でも良く使われるね。
var foo = (function() {
// 引数に関係無い予備処理
return function(arg){console.log('arg:'+arg);}
})();
var bar = function( arg ) {
// 引数に関係無い予備処理
console.log( 'arg:'+arg );
}
barの場合は、"引数に関係無い予備処理"はbarが呼ばれる度に行われるが、
fooの場合は一度だけなので、その部分が重い処理の場合には有効。

384 :Name_Not_Found:2009/03/18(水) 11:40:11 ID:8et0jV/q
テキストエリアに入力した文字列をajaxでサーバのPHPで処理したいのですが
低回線向けのサイトのためjqueryやprototypeはファイルサイズが大きくて困ってます
10kbより小さいライブラリでおすすめのライブラリってございませんか?
ajaxでサーバに文字を受け渡しができる程度でかまいません。




385 :Name_Not_Found:2009/03/18(水) 12:11:49 ID:???
>>384
どんだけ低速なんだよ。

386 :Name_Not_Found:2009/03/18(水) 12:25:30 ID:???
>>384
普段どちらかのフレームワークを使っているなら、
Prototype.js(MIT)もjQuery(MIT/GPL)もオープンソースなので、
そこからAjax処理(と関連する関数やObject)だけのファイルを作るのが良さげだけど。

387 :Name_Not_Found:2009/03/18(水) 12:53:16 ID:???
サーバ側から gzip で送出できるようにすれば、少しはマシになるでしょ
無論、ライブラリ自体の minified も忘れずに

388 :Name_Not_Found:2009/03/18(水) 12:53:30 ID:???
数行ですむんだし自分で書けばいいのでは?

389 :Name_Not_Found:2009/03/18(水) 14:03:45 ID:???
>>382
「仕事のデータ」と明記されてたから>379として書いた。

「複数ファイルのアップロードが有用になるようなサービス」を
誰かに提供したいというなら、それはその通り。
だけど、それを考えるような人なら、一通りの関連分野について
ある程度の知識を持ってることが前提。こんなところで質問してない。
もし>377がそういう意図だったなら、>379の代わりに
「それ今すぐ中止してくれ。怖いから」と書いてる。

390 :Name_Not_Found:2009/03/18(水) 15:01:13 ID:doJW/mMh
ajaxでどうしてもSJISファイルを読み込みたいのですが、なんとかなりませんか?
CGIを介して取得する方法はなしとします。

391 :Name_Not_Found:2009/03/18(水) 15:16:51 ID:???
>>390
cgiがイヤなら諦めろ

392 :Name_Not_Found:2009/03/18(水) 15:38:47 ID:???
サーバと連携なしでもAJAXと呼ぶのか

393 :Name_Not_Found:2009/03/18(水) 15:43:35 ID:???
>>390
じゃあサーブレットで

394 :Name_Not_Found:2009/03/18(水) 15:44:45 ID:doJW/mMh
2ちゃんねるのread.cgiのJSモードのようなものでサーバーに負荷はかけたくないのでお願いします。

395 :Name_Not_Found:2009/03/18(水) 15:46:08 ID:???
パラメータをURLエンコードして渡してJavaScript側でデコードすれば?

396 :Name_Not_Found:2009/03/18(水) 15:50:40 ID:???
だったらSJISを選んだ時点で失敗だろ
文字コード変換スクリプトは過去ログにある

397 :Name_Not_Found:2009/03/18(水) 16:03:27 ID:doJW/mMh
2ちゃんねるのdatはSJISのようなので可能なはずだと思いますが…
誰か教えて下さい。

398 :Name_Not_Found:2009/03/18(水) 16:11:53 ID:doJW/mMh
勿論送信はecl.js通して成功しています。

399 :Name_Not_Found:2009/03/18(水) 16:33:14 ID:???
Content-typeで文字コードを指定してれば読める

400 :Name_Not_Found:2009/03/18(水) 16:44:44 ID:???
ブラウザの実装依存(今現在それなりにシェアのあるPCブラウザなら恐らく問題無いか)だけど、
Content-Type: text/html; charset=Shift_JIS
のようにサーバーからのレスポンスヘッダを適切に指定すれば読めるが、
サーバー側スクリプトを使わないなら、
Webサーバーの設定やらモジュール(の記述)を弄る必要があると思われ。

401 :Name_Not_Found:2009/03/18(水) 16:52:27 ID:doJW/mMh
なるほど。.htaccessでの指定で問題ありませんか?
回答して下さった皆様、本当に有り難う御座います。

402 :Name_Not_Found:2009/03/18(水) 16:57:08 ID:???
>>362
どうもです。

ちなみにいろいろと叩かれましたが
onloadでのタイミングはテストように作ったものです。
実際は自分のサイトでの実用じゃなくて
よく利用している某サイトの使い勝手を良くするために
Greasemonkeyでカスタマイズしたいが為のものです。


403 :Name_Not_Found:2009/03/18(水) 22:04:11 ID:+f8oDVPR
javascriptとrssを使ってサイトの更新情報が表示される
ブログパーツのようなものを作ったのですが、
突然何も表示されなくなってしまいました。
解決方法を教えていただけないでしょうか・・・

<script type="text/javascript" src="http://app.drk7.jp/xml2json/var=HATENARSS&url=http://bbqsha.com/feed/" charset = 'UTF-8'></script>
<script type="text/javascript" src="http://bbqsha.com/newlist.js"></script>

スレ違いでしたら申し訳ございません。


404 :Name_Not_Found:2009/03/18(水) 22:33:58 ID:???
>>403
そういうときは大抵、データに予期しないものがまじってる。

ほらよ。
>"description":{},


405 :Name_Not_Found:2009/03/19(木) 00:49:42 ID:A6gQEakX
お返事ありがとうございます。

解決できませんでした。。頭悪くてすみません

↓を参考にして作りました。
http://q.hatena.ne.jp/1165960016#a650962

406 :Name_Not_Found:2009/03/19(木) 02:26:19 ID:???
処理部分を理解せずに丸写しとかjsスレ的には作ったうちに入んねーよw
一応質問者のレベル考えて回答してるから、そういうことは初めから言ってくれ。

var description = items[i]["description"];
if(typeof(description) != "string") { description = ""; }
description = description.replace(" ", "");

この一行足せば動くはず。

407 :Name_Not_Found:2009/03/19(木) 09:03:11 ID:A6gQEakX
できました!
本当にありがとうございました!

408 :Name_Not_Found:2009/03/19(木) 19:53:11 ID:???
HTMLファイルからa.jsとb.jsの二つのJSファイルを呼び出すとします

a.js内のスクリプトから
b.js内の変数なり関数なりオブジェクトなりにアクセスするためには
それがグローバルで宣言されている必要があるでしょうか?

できるだけグローバル汚染は避けたいと思っているのですが
アクセスのために何か良い方法はないでしょうか

(a.jsとb.jsはライセンスの関係で一つのファイルにすることは出来ません)

409 :Name_Not_Found:2009/03/19(木) 20:01:36 ID:???
>>408
>>373の流れを参照。
jsはたしかファイルはスコープにならなかったはずだから
グローバル変数かトップレベルの変数ならどこからでもアクセスできる。
>>375みたいな形で隠蔽されてると無理。

あとa.js->b.jsの順にロードするなら、a.jsを読み込む時点では
b.jsを読んでないから、定義した関数をあとから実行する等で
タイミングを遅らせないとb.jsの内容にはアクセスできない。

410 :Name_Not_Found:2009/03/19(木) 20:04:48 ID:???
わかりにくい説明になったけど要するに、<script src="a.js">の部分に
a.jsの内容を、b.jsの部分にb.jsの内容をそのまんま展開してるのと
変わらないってこと。

411 :Name_Not_Found:2009/03/19(木) 20:07:45 ID:???
>>408
「アクセスできる」ということがどういうことか分かってる?

アクセスしなきゃならんのなら、当然、対象とするその何かの名前が
見えてなきゃいかんだろうに。
「汚染は避けたい」って、何を以って汚染されていると定義しているのか、
どんな状態が汚染されているということなのか、
自分で考えたことが1度でもあるか? あるならあり得ない質問だぞそれ。

−−−

ツッコミはここまでにして。

ライセンスの関係云々でバラさなきゃならん処理なら、
a, b の個々のプログラムは、それぞれが一定の機能を満たした
独立したプログラムだよな? 相互依存してるとは想像しにくい。

a, b が個々に独立してるなら、c を作ってそこから a, b の中身を呼び出せば
a は b を知る必要がないし、b は a を知る必要がない。
c は a, b の呼び出し部分のみを最小限記述すればそれで済む。

412 :Name_Not_Found:2009/03/19(木) 20:13:46 ID:???
>>408
そんな場合には、
var Foo = {};
Foo.bar = function(){};
Foo.baz = [0,1,2];
など、利用する全ての関数/変数を1つのObjectの下に置いて、
グローバルに影響するのも1つのObjectだけというのが良く使われるね。
a.jsとb.jsに存在する関数/変数も全てFooオブジェクトの下に置くという感じで。

ライセンス云々という話があるので、そんな簡単な話では無いだろうけど。

413 :408:2009/03/19(木) 20:50:57 ID:???
>>409
隠蔽されてるとやっぱり無理ですよね

>>411
>アクセスしなきゃならんのなら、当然、対象とするその何かの名前が
>見えてなきゃいかんだろうに。

見えてないといけないのはハッシュ値ではないでしょうか

>ライセンスの関係云々でバラさなきゃならん処理なら、
>a, b の個々のプログラムは、それぞれが一定の機能を満たした
>独立したプログラムだよな? 相互依存してるとは想像しにくい。

GPLのスクリプトを自分で機能拡張した(これがb.js)のですが
その拡張部分でメルセンヌ乱数が必要になったのです

メルセンヌ乱数はBSDなのでGPLであるb.jsに組み込むわけにもいかず
スマートな渡し方がないか探しているところです

GPLまじうんこ

>>412
ライブラリのソース読むとそういうことを良くやっていますね
裏返せば現実的にはそれしか解決法がないってことなんですかね

414 :Name_Not_Found:2009/03/19(木) 21:08:26 ID:???
>>413
BSDライセンスをGPLに持ってくるのは問題ないような。
というかGPLを組み込んだ時点で全体がGPL汚染されるんじゃなかったっけ?
それを防ぐためのLGPLだと解釈してたけど。


415 :408:2009/03/19(木) 21:14:31 ID:???
>>414
BSDのコード(メルセンヌ乱数)もGPLのコードに組み込めば(原作者の意志に関わらず)GPL扱いになってしまうから
GPL以外のライセンスのコードは組み込めないと解釈していました
解釈が間違っていたのかもしれませんね 調べなおしてみます

416 :Name_Not_Found:2009/03/19(木) 21:16:56 ID:???
>>415
いちおうこれ。

ttp://ja.wikipedia.org/wiki/GNU_General_Public_License#GPL.E3.81.AE.E4.B8.A1.E7.AB.8B.E6.80.A7
>(現行の3文節のかたちの)BSDライセンス(略)は、「GPLと両立する」。
>つまり、矛盾なくコードとGPLのプログラムを組み合わせることができる
> (新しい組合せ全体には、GPLが適用される)。

417 :Name_Not_Found:2009/03/19(木) 21:34:45 ID:???
>>416
ttp://ja.wikipedia.org/wiki/BSD%E3%83%A9%E3%82%A4%E3%82%BB%E3%83%B3%E3%82%B9
>旧BSDライセンスとGPLは混在させることができない。
>これはGPLでは2次的な著作物のライセンスに制限をつけ加えることを禁止しているため、
>告知の要求は制限の追加となり、BSDスタイルのライセンスのソースコードはコピーレフトされたソフトウエアになることができないためである。
を考慮してでは。

が、
ttp://en.wikipedia.org/wiki/BSD_licenses
>The advertising clause was removed from the official BSD license text on July 22, 1999 by William Hoskins
のように既に宣伝条項が廃止されて10年ほど経つようなので、
現在もアクティブなプロジェクトで特に明記していないなら、
GPLと共存可能な新BSDライセンスとして認識して良さそうだけど。

418 :408:2009/03/19(木) 22:22:25 ID:???
>>416,417
なるほどなるほど
四角四面に一つのファイルにまとめたら絶対にダメなものだと思っていました
比較的融通が利くんですね

419 :Name_Not_Found:2009/03/20(金) 19:23:33 ID:???
グローバル汚染って単に名前の衝突を気にしているだけならこれでいいんじゃないかなと思った

<! a.js --><script>
(function(){
var s = new String("foo") ;
s2 = s;
})();
</script><! a.js おわり -->
<! b.js --><script>
(function(){
var s3 = s2;
delete s2;
alert s3;//foo
})();
</script><! b.js おわり -->

a.jsとb.jsが必ずこの順番で連続して呼び出されることが保証されているのなら
a.jsのローカルスコープでオブジェクトsを作り、それをグローバルオブジェクトのs2で参照。
b.jsのローカルスコープ内のオブジェクトs3でs2を参照し、s2をdelete。

これで以後グローバルオブジェクトのs2ではオブジェクトを参照できなくなるし
ローカルのs3はsを参照可能。

a.js以前にグローバルオブジェクトとしてs2が用いられていると衝突するので
a.jsはグローバルオブジェクトを用いているスクリプトの中では最初に呼び出すようにする

識者の皆さん どうでしょうか
何か見落としている気がしてる

420 :Name_Not_Found:2009/03/20(金) 19:44:40 ID:???
>>419
できるできないじゃなくて、やらない。
アクセスされていいなら>>412みたいな方法で公開する。
隠したい、でも密にアクセスしたいなら同じファイルで済ませる。
同じファイルでやれないなら仕様を見直す(>>413-418)。

「アクセスされたいけどちょっとは見えにくくしたほうが・・・」
そんなの微妙すぎー

ライブラリはなにかしらグローバルに定義するのが普通だから
Objectを公開してそこにプロパティとしてくっつければ十分。


421 :Name_Not_Found:2009/03/20(金) 20:16:23 ID:???
やるやらないとか聞いてないですし黙ってろサル

422 :Name_Not_Found:2009/03/20(金) 23:06:35 ID:???
http://hoge.com/fuga/fugafuga/fuga.html
http://hoge.com/fuga/script/fuga.js

上記のようなファイル構成で、
fuga.htmlよりfuga.jsをインクルードする場合、
../script/fuga.js とか /fuga/script/fuga.js で
指定すると思いますが、
/script/fuga.jsのように /fugaの配下からの絶対指定
のようなことは出来ないでしょうか?

423 :Name_Not_Found:2009/03/20(金) 23:10:43 ID:???
>>422
貴様は/と./と../が何を意味するのかググってから質問しろ

424 :Name_Not_Found:2009/03/21(土) 02:40:31 ID:???
>>422
base タグ使えばできるよ。

<head>
<base href="http://hoge.com/fuga/">
<script type="text/script" src="script/fuga.js"></script>
</head>

パスの先頭にスラッシュつけて src="/script/fuga.js" とはできないけどね。

425 :Name_Not_Found:2009/03/21(土) 02:43:10 ID:???
× <script type="text/script" src="script/fuga.js"></script>
○ <script type="text/javascript" src="script/fuga.js"></script>

426 :Name_Not_Found:2009/03/21(土) 08:11:00 ID:HPjQaWEN
ブログの管理画面によくある文章中に絵文字を挿入する機能を作りたいです。
テキストエリア中のカーソル位置を捕捉するにはどうしたらいいでしょうか?
すみませんがアドバイスお願いします

427 :Name_Not_Found:2009/03/21(土) 12:25:37 ID:???
JavaScript単体でDBと同じようなものを実現するには
SQLは使えませんけどデータの集合として扱うには
やはり(連想)配列でがんばるしかないでしょうか?

428 :Name_Not_Found:2009/03/21(土) 12:33:54 ID:???
JSON

429 :Name_Not_Found:2009/03/21(土) 12:34:32 ID:???
>>426
「javascript キャレット input」でぐぐるといいかも。

>>427
ArrayとHash(JSではObject)でデータを表現するのは
データの規模にもよるけど他言語でも常套手段。
他には、Ajaxでサーバに丸投げするとか。


430 :427:2009/03/21(土) 12:54:42 ID:???
>>428-429
レスありがとうございます
JSONって聞いたことはあるのですが
概念までは知りませんでした
ぱっとみ配列やハッシュと同じようなので
早速勉強してみたいと思います

431 :426:2009/03/21(土) 17:24:46 ID:HPjQaWEN
>>429
マジで感謝します!
ありがとうございました!

432 :Name_Not_Found:2009/03/21(土) 19:42:04 ID:???
>>424
参考になりました。
ありがとうございました。

433 :Name_Not_Found:2009/03/21(土) 20:14:50 ID:48GLx9+k
alistapartで配布されているstyleswitcher.jsは商用利用可能なのでしょうか?
サイトを見ても記述がありませんでした。

434 :Name_Not_Found:2009/03/21(土) 20:33:15 ID:???
>>433
んなもん直接聞けよw
たとえ記述があったからってその解釈を間違えたら、困るのは自分だぞ

435 :Name_Not_Found:2009/03/21(土) 20:58:35 ID:???
>>433ってゆとりの見本だなw

436 :Name_Not_Found:2009/03/21(土) 21:13:02 ID:???
>>433
ttp://www.alistapart.com/copyright/
>You may freely copy, paste, and modify any of this code for use on your own web projects large or small, commercial or non-commercial.
>You need not ask permission to do so. You need not credit ALA or its authors.
商用非商用関係無く自由に使って良いし、ALAのコピーライト付記も必要無し。

相変わらず煽るだけのテンプレ厨が湧いてるな。

437 :433:2009/03/21(土) 21:16:38 ID:???
>>436
ありがとうございます。
いろんな商用サイト見てみたんですが、styleswitcher.jsというファイル名
は使わない(common.jsとかにしている)にしろ、中身は同じコードだったんです。

ちなみにゆとりではありません、もうすぐ40です。

438 :Name_Not_Found:2009/03/21(土) 21:40:43 ID:???
もうすぐ40

439 :Name_Not_Found:2009/03/21(土) 21:49:16 ID:???
40でこれwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

440 :Name_Not_Found:2009/03/21(土) 22:27:25 ID:???
百歩譲って学生時代はクラブかなんかに熱中していたとしても、
社会人としてのこの十数年で何をしてきたのか聞いてみたい。

つか433の回りの人間って大変そうだな…


441 :Name_Not_Found:2009/03/21(土) 22:40:40 ID:???
うわぁこいつらマジレスしてるよ…

442 :Name_Not_Found:2009/03/22(日) 08:28:49 ID:???
マジレス?
いやいや。単にバカにしてるだけですが。

443 :Name_Not_Found:2009/03/22(日) 09:16:22 ID:???
ここはひどい板ですね。

444 :Name_Not_Found:2009/03/22(日) 10:52:44 ID:???
いいえ、ひどいスレです。

次の質問ドゾー

445 :Name_Not_Found:2009/03/22(日) 11:23:53 ID:???
けっ、ダメ人間かよ

446 :Name_Not_Found:2009/03/22(日) 12:25:03 ID:???
TOPへ戻るボタンでページの一番上とかページ内アンカーに
スムーススクロールするJSでライツフリーのライブラリってありますか?

447 :Name_Not_Found:2009/03/22(日) 12:40:32 ID:???
ここはひどい星ですね。

448 :Name_Not_Found:2009/03/22(日) 15:59:15 ID:???
いいえ、ひどい惑星です。

449 :Name_Not_Found:2009/03/22(日) 20:22:29 ID:???
質問です。
document.createElement("script")で読み込んだファイルの読み込みが完了したときに処理を行いたいのですがどうすればいいですか?

450 :Name_Not_Found:2009/03/22(日) 20:43:42 ID:???
>>449
ttp://blog.37to.net/2008/08/script/
IEはonreadystatechangeを
それ以外はonloadでいけるようだぞ

もしくはAjaxつかう

451 :Name_Not_Found:2009/03/23(月) 00:38:41 ID:???
他人が書いたソースに分からないところがあったので教えて下さい。

ソース中にあった一行↓
addListener( "mouseover", theA, function(sansyouKey){ return function(){ makeGyakusansyouPopup(sansyouKey) }}(sansyouKey) );

↑をこう書いたらダメな理由が分かりません!
addListener( "mouseover", theA, function(){ makeGyakusansyouPopup(sansyouKey) } );

どうせ return でfunction() を返すんだから省略出来るかと思ったんですが、
何故 function(引数){}() の中にfunction(){} を入れているんでしょうか? よろしくお願いしますm(_ _)m

452 :Name_Not_Found:2009/03/23(月) 00:48:22 ID:???
関数呼出ししないと、スコープが作れないから。
クロージャを勉強しろ。

453 :451:2009/03/23(月) 00:54:35 ID:???
>>452
クロージャですね、逝ってきます。ありがとうございました。

454 :Name_Not_Found:2009/03/23(月) 07:01:23 ID:???
createElement で作った CANVAS 要素に描画を行うと
ときどきやたらと遅くなるようです。
(CANVAS 対応ブラウザ各種でいずれも確認)
なんででしょう。

455 :Name_Not_Found:2009/03/23(月) 07:17:25 ID:???
1お前のコードのせい
2ブラウザのせい
3気のせい

456 :Name_Not_Found:2009/03/23(月) 08:53:23 ID:???
>>450
どうもありがとうございました!

457 :Name_Not_Found:2009/03/23(月) 10:22:58 ID:???
>>451に便乗して質問
1番目のコードはイベントリスナを実行する時点でsansyouKeyを固定しちゃうから、
自分より上のスコープは見ないってのはわかるのだけど、それによるメリットってありますか?

例えば、極端な例として、
function A() {
 var sansyouKey = 0;
 sansyouKeyを色々いじるコード;

 function B() {
  function C() {
   >>451のコード
  }
 }
}
みたいになってた場合に、2番目のコードだとsansyouKeyはAで定義されているから、
mouseover実行時に毎回AのsansyouKeyの値を見に行くけど、
1番目のコードはイベントリスナ設定時にsansyouKeyが決定されて、function内に定義するから、
mouseover実行時に自分より上のスコープ自体見に行くことはないですよね。

ただ、親のスコープ自体は持ってるからメモリの使用量は変わらないんですよね?
もしsansyouKeyが特に変化しない値だった時に1番目のコードのメリットがあるのか知りたいです。

458 :Name_Not_Found:2009/03/23(月) 10:36:49 ID:???
>>457
そういう条件ならメリットはないんじゃないかなぁ。
主にはthisをバインドするためのイディオムだし。
メモリ使用量は気にするほどは変わらないと思う。

ところでBとCを重ねる必要はないよね?

459 :Name_Not_Found:2009/03/23(月) 14:02:22 ID:???
>>458
あ。親の親の親のスコープってのを強調する極端な例としてBとCを重ねてみました。
this用か。それならよくやるけど、他にどういう時にメリットがある使い方なんだろうと思って。

460 :Name_Not_Found:2009/03/23(月) 14:39:12 ID:???
単に名前空間への配慮が必要無いってところじゃない

461 :Name_Not_Found:2009/03/23(月) 15:18:57 ID:???
>>459
>sansyouKeyが特に変化しない値だった時
変化する前提なら前者にしなければならない。
変化しない前提ならその必要はない。というわけで>>458

じゃあもうちょっと実際の状況を考えてみると
「そのどっちでもない」つまり変数を変化させないことが未定とか
意識してない(意識しわすれる)ということがよくある。

具体的に言うと
function A() {
 var sansyouKey = 0;
 addListener( "mouseover", theA, function(){ makeGyakusansyouPopup(sansyouKey) } );   }
 色々いじるコード;
}
で「色々いじるコード」の部分を長々あれこれいじってるうちに
sansyouKeyを書き換えてしまうパターン。

クロージャのありがちな落とし穴として、functionを生成した時点での値が
展開されて束縛される気になること。thisでハマりやすい原因でもあり。

明らかに書き換えようがない狭いスコープの変数ならわざわざ縛らなくてもいいけど
A()がもし大きなモノだったらクロージャの存在を忘れてsansyouKeyを書き換えてしまい
バグを産む可能性もある。

そういうケースを考えるとうっかり書き換えられても問題がない
前者のコードにしておくほうが安全、というのがメリットじゃないかと思う。

462 :451:2009/03/23(月) 17:55:50 ID:???
みなさんのおかげでだいぶ分かってきました。

フィールド+アクセサメソッド+new

のようなものだったんですね。

以下のサイトが分かり易くて助かりました。 ドキュンさんありがとうございました。

[JavaScript] 猿でもわかるクロージャ超入門 まとめ
http://dqn.sakusakutto.jp/2009/01/javascript_5.html

463 :Name_Not_Found:2009/03/23(月) 20:23:14 ID:???
今までCくらいしかやったことないのですが
次JavaScriptをやろうと思い、本を探しています。
演習問題がそこそこついてて、サンプルを交えてくわしいことまで
載ってるようなお勧めの本を教えてください。

464 :Name_Not_Found:2009/03/23(月) 20:27:04 ID:???
先にschemeかhaskelでもやっとけ

465 :Name_Not_Found:2009/03/23(月) 21:38:12 ID:???
>>463
サイ本とGoog parts

466 :Name_Not_Found:2009/03/23(月) 21:38:54 ID:???
typo...
Good Parts

467 :Name_Not_Found:2009/03/24(火) 03:09:57 ID:???
クックブックいいよ

468 :Name_Not_Found:2009/03/25(水) 00:30:13 ID:???
window.onloadに既に設定されている関数が全て実行された後に
もう一つ関数を実行したいのですが、window.onloadの関数が
全て実行し終わったことを知るにはどうしたらいいでしょうか?

469 :Name_Not_Found:2009/03/25(水) 00:35:41 ID:???
フラグ立ててタイマーで確認すれば

470 :Name_Not_Found:2009/03/25(水) 00:43:21 ID:???
出来ればフラグ変数などを使わずに実現したいのです。

471 :Name_Not_Found:2009/03/25(水) 00:47:47 ID:???
window.onloadから0ミリ秒後に「もう一つの関数」実行すればええんじゃね

472 :Name_Not_Found:2009/03/25(水) 00:54:51 ID:???
>>468
var onload_func = [];
window.onload = function() {
 for(var i=0; i < onload_func.length; i++) {
  onload_func[i].call();
 }
 onload_last_func();
}
配列への登録はそのままpushでも
addEventListenerをラップしてonloadだったらぶちこむとかでも。

473 :Name_Not_Found:2009/03/25(水) 02:44:20 ID:???
>>468
こんなんどう

function addLoadEvent(func) {
    var prev = window.onload || function() {};
    window.onload = function() { prev(); func(); }
}

addLoadEvent(/*Function obj*/);

474 :Name_Not_Found:2009/03/25(水) 06:01:07 ID:???
ビット演算子について質問です。

<script type="text/javascript">
<!--
var str = 0x7fffffff << 1;
document.write(str.toString(2));

// -->
</script>

このコードを実行すると何故か -10 が返ってくるんですが、どういう原理で負の数になるのかが良く分かりません。
javascript上でビット単位で負の数を扱う方法も分からないのでご存じの方がおられましたら是非ともご教示下さいませ。

参考になりそうなリンク : 符号付数値表現
http://ja.wikipedia.org/wiki/%E7%AC%A6%E5%8F%B7%E4%BB%98%E6%95%B0%E5%80%A4%E8%A1%A8%E7%8F%BE

toString(2) で符号を管理しているビットまで確認出来れば苦労はしないんですが
負の数の場合は2進表示でなく10進表示になるんですね。;_;

475 :Name_Not_Found:2009/03/25(水) 09:50:06 ID:???
>>474
その-10って10(2)のマイナスだから-2のこと。それはさておき。

JSのビット演算は32bitの算術シフト。
0x7fffffff << 1 == 0xfffffffe

ただし0xfffffffeをJSは32bitとして扱わないために
負数のリテラルにはならない点に注意。

32bit制限はあくまでビット演算のとき。
だからビットシフトしてやれば32bitに丸められる。
0xfffffffe << 1 >>1 == -2

>ほとんどの場合、最近のコンピュータでは2の補数表現を使う
正の値に足してぴったりオーバーフローする値が負数。
2 + -2 = 0
0x2 + 0xfffffffe = 0x00000000
そういうわけだから何bitか定まらないとと負数は求められない。

これJSというよりはCPUアーキテクチャに依存した決まり事のはずだから
他の負数表現をするCPUなら結果はたぶん変わる。そんなCPU知らないけどね。

476 :Name_Not_Found:2009/03/25(水) 11:34:51 ID:hBqp7dAU
ボタンを押したら3秒後にアラートを出したいのですが
phpでいうとsleep(3)みたいな関数もしくはやり方がございましたら教えてください

477 :Name_Not_Found:2009/03/25(水) 11:38:28 ID:???
>>476
setTimeoutでおk。sleepのように単純に止めるのは無理。

478 :468:2009/03/25(水) 13:40:32 ID:???
みなさんお答えありがとうございます。

>>471
window.onloadから0ミリ秒後の場合、window.onload後を
どうやって知るのかが分からなかったのです。

>>472
その場合
window.onload = function() {
 func1();
 func2();
 onload_last_func();
}
でもいいような気がします。
last_func前の関数は動的に割り当てるわけではなく、
出来ればlast_funcをwindow.onloadから切り離して、
かつwindow.onloadよりあとに実行したいのです。

479 :468:2009/03/25(水) 13:42:38 ID:???
>>473
それも考えてみましたが、その場合prevがfuncの前に実行されることは
必ず保証されるのでしょうか? それならばその方法で解決だと思います。

480 :Name_Not_Found:2009/03/25(水) 13:52:09 ID:???
>>478
>window.onloadから0ミリ秒後の場合、window.onload後を
>どうやって知るのかが分からなかったのです。
onload中のどこでもいいからsetTimeout使うといい
シングルスレッドだからonloadが終わってからsetTimeoutで設定した
関数が実行される

481 :474:2009/03/25(水) 16:05:45 ID:???
>>475
丁寧で分かりやすい解説をありがとうございました。m(_ _)m
おかげ様でjsでビット演算をするときの考え方を知ることができました。

CPUによって計算結果が変わる可能性があるという点には注意が必要ですね、気を付けて使うようにします。
ありがとう神様。m(_ _)m

482 :Name_Not_Found:2009/03/25(水) 19:50:52 ID:9EJfLopA
domでの質問ですが

cssファイル内の要素を得るのに、下記のようにアクセスしますが、

例).cssファイル内の、一番目の要素のtopプロパティの値を得る
document.styleSheets.item(0).cssRules.item(0).style.getPropertyValue("top");

htmlのgetElementByIdのようにID名を指定するような感じで、
cssファイル内の各プロパティへアクセスしたいのですが何か方法は無いでしょうか?


483 :Name_Not_Found:2009/03/25(水) 20:17:08 ID:???
テンプレになかったっけ?

484 :Name_Not_Found:2009/03/25(水) 20:23:41 ID:9EJfLopA
>>483
それは>>1-7までのレスのことでしょうか?
一通り読んだと思いますが無かったと思います

485 :Name_Not_Found:2009/03/25(水) 21:07:13 ID:???
>>474
ちなみに符号なし右シフトは結果がUint32だお

alert(((0x7fffffff << 1) >>> 0).toString(2)); // 11111111111111111111111111111110

486 :Name_Not_Found:2009/03/25(水) 21:22:07 ID:???
>>484
ID名って何?
セレクタの内、ID指定のものだけ取り出すってこと?

487 :Name_Not_Found:2009/03/25(水) 21:32:57 ID:9EJfLopA
>>486
はい、そうです。
.cssファイル内のセレクタごとの操作するのに、
CSSルールのインデックス番号指定ではいろいろと不便なので
出来ればIDで操作できればと思ったのですが、無いのでしょうか?

488 :474:2009/03/26(木) 01:11:59 ID:???
>>485
ありがとうございます、暗黙的な型変換が発生する場合があるんですね。
符号付き、符号なしの型なども調べてみようと思います、どうもありがとうございました。m(_ _)m

489 :Name_Not_Found:2009/03/26(木) 15:39:42 ID:???
>>487
document.styleSheets[0].cssRules[0].selectorText で
セレクタ文字列を取り出して、ID名と一致すれば取り出す関数を自分で定義するとか

490 :482:2009/03/26(木) 19:42:06 ID:???
>>489
なるほど、自分で作ったほうが早そうですね。
ちょっとやってみます。
役立つ情報どうもです!

491 :Name_Not_Found:2009/03/26(木) 19:52:28 ID:???
Safari 3 でうまく動かない現象について質問します。
<embed src="foo.swf"> というタグの src 属性を JavaScript で動的に変更しています。
これはFirefoxだとうまく動くのですが、Safari3だと変更がうまく反映されません。
ただし、Safariでもメニューから「開発 → キャッシュを無効にする」を選ぶと、うまく反映されます。
Safariのバグじゃないかとは思うのですが、もし回避策をご存知の方がいたら教えてください。
よろしくお願いします。

492 :Name_Not_Found:2009/03/26(木) 19:58:02 ID:???
わからんけど
src属性を変更するだけじゃこころもとなくね?
objectごと消して新しくappendできないの?

493 :482:2009/03/26(木) 20:16:50 ID:???
>>482です
外部CSSのセレクタにIDでアクセスして取得する関数を
簡易ですが作ってみたので、貼ります。多用するとちょっと重いかも・・・
ではでは。

function getSelectorById(styleSheet, selectorId)
{
var cssRule;
var selectorNumber;
var i;

if(styleSheet.cssRules)
cssRule = styleSheet.cssRules;
else if(styleSheet.rules)
cssRule = styleSheet.rules;

selectorNumber = cssRule.length;

for(i = 0; i != selectorNumber; ++i)
{
if(cssRule.item(i).selectorText == "#" + selectorId)
return cssRule.item(i);
}
return;
}

494 :491:2009/03/26(木) 20:21:31 ID:???
>>492
ありがとうございます。
その方法を試したところ、うまくいったりいかなったりで、挙動が安定しません。
どういうときにうまくいくのか、ちょっとわからないです。困った。


495 :Name_Not_Found:2009/03/27(金) 18:37:37 ID:???
こんにちは、お元気ですか

naviewというスライドショーのスクリプト
ttp://www.naview.com/download/nvsl/
と、
liteboxというイメージボックスのスクリプトを
http://www.doknowevil.net/litebox/

同じページで使っています。
そうしますと、liteboxのボックスがスライドショーの後ろに隠れるようになってしまいます。
liteboxがスライドショーの上になるようにしたいのですがどうすればいいですか?

496 :Name_Not_Found:2009/03/27(金) 18:53:15 ID:???
>>495
確認してないけど、objectとの重なり順が制御できないのは
ブラウザ仕様という可能性がある。


497 :Name_Not_Found:2009/03/27(金) 19:47:00 ID:???
>>495-496
定石の1つに「objectの上に重ねたいものと同サイズのiframeを重ね、
その上に本来重ねたいものを載せる」というのがあるのでやってみたら
どうかな。

498 :Name_Not_Found:2009/03/27(金) 21:25:51 ID:???
そんな事をせずとも、z-indexを変更すれば問題無いのでは。

499 :Name_Not_Found:2009/03/27(金) 21:49:21 ID:???
それができないから >>497 みたいな技があるわけで

500 :Name_Not_Found:2009/03/27(金) 23:16:35 ID:???
wmode="transparent"

501 :Name_Not_Found:2009/03/28(土) 01:17:12 ID:???
>>500だな

502 :Name_Not_Found:2009/03/28(土) 12:25:00 ID:???
data.data1
data.data2
data.data3
...
というオブジェクトがあって、forループを使ってdata.data1からdata.dataNまでアクセスしたい時はどのようなコードを書けばいいですか?
for(i=1;i<=8;i++){
document.getElementById('text').value = data.('data'+i)
}
ではだめでした…

503 :Name_Not_Found:2009/03/28(土) 12:43:22 ID:???
data['data'+i]

504 :502:2009/03/28(土) 13:13:23 ID:???
>>503
アクセスできました
ありがとうございます

505 :Name_Not_Found:2009/03/28(土) 13:49:49 ID:???
プログラム板から誘導されました。質問お願いします。

JavaScript内でオブジェクトがHTMLInputElementなのか、HTMLImageElementなのか、HTMLLabelElementなのか
を知りたいんですが、やり方が分かりません。
どのHTMLElementなのか(表現おかしいかったらすいません)を知るにはどうすればいいんでしょうか?
ブラウザはIE6とIE7で動いてくれればいいです。

function getElementType(myElement){

  if (myElement.elementType == "HTMLInputElement"){
    return 0;
  }

  …
}
とかできたら嬉しいんですが…

506 :Name_Not_Found:2009/03/28(土) 13:53:58 ID:???
nodeNameじゃだめなん?

507 :Name_Not_Found:2009/03/28(土) 14:09:34 ID:???
ページA(PageA.html)内に

@リンク
A<div class=div_class_pageA>

を用意し@がクリックされるとAの中にページB(PageB.html)を
表示するにはどうすれば良いでしょうか?
inner htmlを書き換える? or iFrameを使用する?
どちらの方法が一般的なのでしょうか?

これまで私はWEBページを作成する場合に、左に一覧ページ、
右にコンテンツを配置という作りをしていたのですが、最近のWEBページでは
一つのページ内の上部にリンクボタンがあってそれをクリックすると、
画面の下部分にコンテンツが表示されていますのでそれの様な動きをする
ページにしたいと思っています。


508 :Name_Not_Found:2009/03/28(土) 14:13:36 ID:???
>>506
nodeNameでいけました。ありがとうございます。

509 :495:2009/03/28(土) 14:30:32 ID:FZ97MGV6
>>496-501
皆さんありがとうございます。
皆さんから頂いた御助言をもとに今wmode でなんとかする方向でやってみます。
また質問させていただくかもしれません。どうもありがとうございました。

510 :Name_Not_Found:2009/03/28(土) 14:38:19 ID:???
>>507
iframeのほうが素直。innerHTMLのほうはXHRになるだろうし。

>上部にリンクボタンがあってそれをクリックすると、
>画面の下部分にコンテンツが表示
一つのhtmlでdisplay切り替えてるだけだったりしない?

511 :Name_Not_Found:2009/03/29(日) 10:49:54 ID:kf/l8G1a
submitボタンの二重送信を防止しようと、以下のスクリプトを書きました。

function submitCheck() {
document.getElementById("sbm_name").disabled = true;
document.getElementById("form1").submit();
return false;
}

IE6では送信ボタンがdisabledになって連続で押せないのですが、
Firefoxではそれが利かず、何回でも押せるようになっています。
どのように対処したらいいのでしょうか?

512 :Name_Not_Found:2009/03/29(日) 11:29:04 ID:???
"sbm_name" は submit ボタンの name 属性っぽいんだけど、
ちゃんと id を指定してんの?

513 :Name_Not_Found:2009/03/29(日) 11:33:27 ID:???
>>510
サンクス。
ちょっと人のサイトのソースを解析してみようと思います。

514 :Name_Not_Found:2009/03/29(日) 14:05:24 ID:kf/l8G1a
>>512
はい。こんな感じにしています。

<input id="sbm_name" type="submit" value="送信" onclick="submitCheck();" />

515 :Name_Not_Found:2009/03/29(日) 15:14:33 ID:???
>>514
なんで onsubmit にせんの?

516 :Name_Not_Found:2009/03/29(日) 17:00:33 ID:???
>>511
たぶん<form onSubmit="return false">にすればおk。

というかsubmitCheck()でreturn false;してるんだから、
>>515の言うように
<form onSubmit="return submitCheck()">が普通

517 :Name_Not_Found:2009/03/29(日) 17:12:17 ID:???
submitボタンの二重送信を防止しようと、以下のスクリプトを書きました。

518 :Name_Not_Found:2009/03/29(日) 17:21:56 ID:???
function submitCheck() {
document.getElementById("sbm_name").value = "もう押すな。";
return false;
}


519 :Name_Not_Found:2009/03/29(日) 17:34:56 ID:???
<input type="submit" value="2回押すな" />

520 :Name_Not_Found:2009/03/29(日) 17:48:40 ID:???
<input type="submit" value="押すなよ絶対押すなよ" />


521 :Name_Not_Found:2009/03/29(日) 19:02:59 ID:???
それ押しちゃうから

522 :Name_Not_Found:2009/03/29(日) 19:28:12 ID:???
             /)
           ///)
          /,.=゙''"/   
   /     i f ,.r='"-‐'つ      細けぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\
    /   ,i   ,二ニ⊃( ●). (●)\
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /

523 :Name_Not_Found:2009/03/29(日) 20:33:09 ID:eknZFxJ0
<select>をクリックして展開?した後に<select>のstyleを以下のように変更すると、その展開が閉じてしまいます。

------------
<select onfocus="this.style.backgroundColor='#eff'">
<option>1</option><option>2</option><option>3</option><option>4</option>
</select>
------------

IE6やChrome, Firefox, Opera, Safari では展開されたままなので問題ない
のですが、IE7とIE8では展開が閉じてしまいます。
(一度開くのですが、styleが適応された時点で閉じてしまいます。)

再度クリックすれば展開されるので問題はないのですが、展開が閉じないよ
うにする方法などは有りますでしょうか?


524 :Name_Not_Found:2009/03/29(日) 21:12:15 ID:???
select:focus {
    background-color: #eff;
}

525 :511:2009/03/30(月) 10:35:37 ID:???
遅くなりましたが、onsubmitで送信する方法で
希望通りの仕様になりました。
皆さん、回答ありがとうございました。

526 :Name_Not_Found:2009/03/30(月) 15:08:59 ID:IIrO8+Z3
参考にしたサイトttp://javascript.eweb-design.com/1404_dc.htmlを元に
クッキーの読み書きと削除を勉強してます
読み書きはできたのですが、削除ができません
どなたかご教示お願いいたします

cookie.jsの中身
function set() {
document.cookie = "name=test; path=/;";
}

function del() {
time = new Date();
time.setFullYear(time.getFullYear()-1);
document.cookie = "name=; expires="+time.toGMTString();
}

alert(document.cookie);

html文書の中身
<html>
<head>


<script type="text/javascript" src="cookie.js"></script>
</head>

<body>
<button onclick="set()">クッキーを発行</button>
<button onclick="del()">クッキーを削除</button>

</body>
</html>

527 :Name_Not_Found:2009/03/30(月) 16:28:42 ID:???
>>526
なんで削除のとき「name=」の値が空っぽなの?
なんで作成のときだけ「path=/」を指定しているの?
どのようにして削除を行うのかの原理が分かってないように見えるなー。

528 :Name_Not_Found:2009/03/30(月) 17:54:07 ID:???
で?

529 :Name_Not_Found:2009/03/30(月) 18:10:10 ID:???
それはそれとして new Date(0).toUTCString() でいい

530 :526:2009/03/30(月) 22:58:26 ID:???
>>527
一応何度も仕様確認しましたが値は空でも大丈夫です
あとpathは削除時には不要みたいですね


以下の書き換えで無事動きましたのでご報告させていただきます
function del() {
time = new Date();
time.setFullYear(time.getFullYear()-1);
gmt=time.toGMTString();
document.cookie = "name=; expires="+gmt+";";
}

531 :Name_Not_Found:2009/03/30(月) 23:17:03 ID:???
>>530
time がグローバルになってるし GMT って・・・
1つ上のレスも読めないの?

>>527
巣へ帰れ

532 :Name_Not_Found:2009/03/31(火) 00:49:07 ID:???
JavaScriptではRTrim / LTrimはしかトリム関数は使えないのですか?

533 :Name_Not_Found:2009/03/31(火) 03:41:22 ID:???
>>530
IEだとpathが合わなくても消えたり(消えなかったり)するね。なんだろこれもーめんどい。ちなみにIE6。

// http://127.0.0.1/test/hoge.html にて
document.cookie = "name=aaa; path=/";
document.cookie = "name=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
alert(document.cookie); // なぜか消える

// 以下のようにすると消えない。
document.cookie = "name=aaa";
document.cookie = "name=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
document.cookie = "name=aaa; path=/";
document.cookie = "name=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
alert(document.cookie); // 消えない

534 :Name_Not_Found:2009/03/31(火) 03:49:11 ID:???
>>532
聞いたこと無いですね。半角スペース削除ならString#replace()でいけますよね。

str.replace(/^ +/, ''); // LTrim?
str.replace(/ +$/, ''); // RTrim?

535 :Name_Not_Found:2009/03/31(火) 05:14:58 ID:???
>>532
現状は各 JavaScript ライブラリが独自に実装してる状態
基本的には >>534 の考え方でおk
ただ jQuery や Prototype は半角空白じゃなくて \s 使ってる

ECMAScript 3.1 には String.prototype.trim が追加される予定
Firefox 3.5 (Gecko 1.9.1) には trim, trimLeft, trimRight が先行実装される予定

536 :Name_Not_Found:2009/03/31(火) 05:16:35 ID:???
半角スペースだけでなく改行文字等の空白文も消したい場合はこれで出来ます。
http://d.hatena.ne.jp/shiopu/20071226/1198674029

ただ、RTrim、LTrimのオプションに付いている "g" はいりません。
それと "m" オプションを付けると文中の改行の前後にある空白文字に誤爆してしまうのでご注意下さい。

537 :Name_Not_Found:2009/03/31(火) 10:45:00 ID:???
>>533
firefoxもoperaもpath合わせなくても消えたぞ

538 :Name_Not_Found:2009/03/31(火) 11:58:11 ID:???
>>533
おかしいのはお前の解釈

539 :Name_Not_Found:2009/03/31(火) 12:07:35 ID:???
>>527の値とpathを合わせないといけない理由を知りたい
IE6〜IE8、Firefox1.5〜3.1、Opera9〜9.5、safari最新板、クローム全部チェックしたが問題ないんだよな

540 :Name_Not_Found:2009/03/31(火) 14:36:21 ID:???
>>527は知ったかだからスルーしろよ
どうしてスルーできないんだろう

541 :Name_Not_Found:2009/03/31(火) 18:42:24 ID:???
>>540
てめーだよw

542 :533:2009/03/31(火) 23:51:30 ID:GmDbtHue
>>537-538
整理してみたけど全然消えないよう(´Д`;)ちょっと誰か助けて;

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>test</title><script type="text/javascript">
document.cookie = "name=aaa; path=/";
document.cookie = "name=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
alert(document.cookie); // 消えてる?
</script></head><body></body></html>

これを、http://127.0.0.1/test/hoge.htmlみたいに深い位置に置いて、
Cookieとキャッシュのクリアくらいはしてから実験したんだけどなー。

消える: IE6
消えない: Firefox3.0.7、Opera9.0、Safari3.1

543 :Name_Not_Found:2009/04/01(水) 00:21:41 ID:???
消えるんじゃなくてHDDに保存されないってことだったりして。
expiresの判定がどのタイミングで行われるか、判定前にalertしてるんだとしたら残ってて当たり前。

と素人が書いてみる。

544 :Name_Not_Found:2009/04/01(水) 09:51:50 ID:???
<input type="text" id="text1" value="0" onchange="calc();">
<input type="text" id="text2" value="0" onchange="calc();">
〜〜

すべてのインプット領域に入っている数値を計算する場合
A=getElementById('text1').value + getElementById('text2').value 〜〜〜
ってやるのと
onchangeの部分にtext1=this.value;を入れて
A=text1+text2 〜〜
ってやらせるのはどちらのほうが速度いいですか?

545 :Name_Not_Found:2009/04/01(水) 10:41:30 ID:???
thickboxについての質問です。
下記の手順を行うと、ポップアップされた画像やHTMLが白紙になってしまいます。

ページを読み込み
  ↓
読み込む途中にthickboxを動作させる
  ↓
ページの読み込みが完了
  ↓
一度thickboxを閉じて再度開くと真っ白

予めボタンにdisabledを設定して
jQueryの$(document).ready()で、ロード時にdisabledを解除したのですが、
ページが完全に読み込まれていないのにdisabledが解除されるので無意味でした
何か対策はありませんでしょうか?

546 :Name_Not_Found:2009/04/01(水) 10:44:05 ID:???
プルダウンメニューはつくれますか?
検索しても中途半端ばっかり。
やっぱり不可能なのか?

547 :Name_Not_Found:2009/04/01(水) 10:44:48 ID:???
>>546
selectボックスでってこと?
タグでってこと?
作れるよー

548 :Name_Not_Found:2009/04/01(水) 10:49:35 ID:???
>>544
普通に考えればエレメントに極力アクセスしない後者の方が速いと思うけど
速度を気にするくらいなんだから自分で試してみればいいのではないかと

549 :Name_Not_Found:2009/04/01(水) 17:38:36 ID:???
548
ありがとう

getElementByIdは遅いけどそこまで速度は気にするものじゃない?

550 :Name_Not_Found:2009/04/01(水) 17:56:01 ID:???
何十万何百万と繰り返す所を高速化するから意味があるのであって
一回やれば終わりのgetElementByIdの速度を気にする必要は大抵の場合無い

551 :Name_Not_Found:2009/04/01(水) 18:23:20 ID:???
>>549
ぶっちゃけボトルネックになってなければなんだっていい。
速度が問題ならfirebugでちゃんとプロファイル測るんだ。
ttp://d.hatena.ne.jp/amachang/20081126/1227700830

「なんとなく気になる」程度なら速度のことは忘れとけ。

552 :Name_Not_Found:2009/04/01(水) 21:25:56 ID:EQlvaqLI
window.onload = function(){
実行する関数
}

として、ページが開いた時に予め実行しておきたい関数を指定しています。
この方法でも良いのですが、別の書き方はないでしょうか?

553 :Name_Not_Found:2009/04/01(水) 21:29:23 ID:???
>>552
その書き方で困ることでもあるのか?

554 :Name_Not_Found:2009/04/01(水) 21:29:54 ID:???
addEventListenerとattachEventと<body onload="">

555 :Name_Not_Found:2009/04/01(水) 21:34:55 ID:uB2Yqvf1
>>552に便乗

IEで、script要素つくって、適当なsrc属性値を与えて、
readyStateがcompleteになったら、DomContentLoaded == true と同値、

って、なんでそう判断できるんですかね?


556 :Name_Not_Found:2009/04/01(水) 21:53:41 ID:???
>>555
これのことならdeferの仕様。
ttp://p2b.jp/1152214827

557 :Name_Not_Found:2009/04/01(水) 21:54:59 ID:???
そういや、
function onload(){
}
っていう書き方が昔からあるけど。



558 :Name_Not_Found:2009/04/01(水) 22:35:14 ID:???
window.onload=function(){};
onload=function(){};
function onload(){};

559 :Name_Not_Found:2009/04/01(水) 23:05:20 ID:???
>>552>>555

ID変えてごくろうさんな

560 :Name_Not_Found:2009/04/02(木) 01:50:41 ID:???
画面内に複数のチェックボックスがあり、チェックボタンが押された場合に
一つだけチェックボックスにチェックが入っているかどうかを判定したいと
思っています。

どうすれば画面内で定義されたチェックボックス全ての要素に対してアクセスを
する事が出来るでしょうか?

<INPUT type="checkbox" id="id1" name="Check1">チェックボックス1
<INPUT type="checkbox" id="id2" name="Check2">チェックボックス2
<INPUT type="checkbox" id="id3" name="Check3">チェックボックス3
<INPUT type="checkbox" id="id4" name="Check4">チェックボックス4
<INPUT type="checkbox" id="id5" name="Check5">チェックボックス5

<INPUT type="submit" value="チェックボックスのチェック" onClick="Check()">

最終的にはチェックの入っているチェックボックスのID(id2 ...etc)を取得し
次画面(Test.php)でID(id2 ...etc)を取得したいと思っています。

561 :Name_Not_Found:2009/04/02(木) 02:26:32 ID:???
普通はラジオボタン使うけどね

やるなら全部なめて
id なり class なり name なりでふるいにかけるしかないよね

562 :Name_Not_Found:2009/04/02(木) 03:32:18 ID:???
>>561
解決しました。ありがとうございました。

563 :Name_Not_Found:2009/04/02(木) 03:55:20 ID:???
WinXP SP3を使用しています。
opera 9.64、Google Chrome 1.0.154.48、Firefox 3.07
上記の3つのブラウザでは期待したように、テキストエリアに書き込んだ文字が、セレクトメニューに表示されますが、IE 8では表示されません。
どうやれば、IEでも他のブラウザと同様に動かすことができるでしょうか?
<html><head><title>test</title>
<script language="JavaScript">
<!--
function test(){
var txt = document.getElementById("myTEXT").value ; // textarea の文字列を取得する
var iHTML = "<option value='" + txt + "' >" + txt + "<" + "/option>" ;
var sel_seq = document.getElementById("sel_seq") ;
sel_seq.innerHTML = iHTML ; // セレクトメニューに書き出す
}
function test_2(){ //セレクトメニューの値をポップアップ
alert(document.getElementById("sel_seq").value) ;
}
// -->
</script>
</head>
<body>
<form><p>表示させたい文字</p>
<p>
<textarea rows="1" cols="10" id="myTEXT" onChange="test()"></textarea>
</p>
</form>
<!-- textarea に入れたテキストをセレクトメニューのoption に表示 -->
<select id="sel_seq">
</select>
<!-- select の value をポップアップさせる -->
<input type="button" id="test_2" value="test_2" onClick="test_2()" >
</body></html>

564 :Name_Not_Found:2009/04/02(木) 05:02:59 ID:???
>>563
DOMで

var option = document.createElement('OPTION');
option.text=txt;
option.value=txt;
var sel_seq = document.getElementById("sel_seq") ;
sel_seq.options.add(option);



565 :Name_Not_Found:2009/04/02(木) 05:05:19 ID:???
innnerHTMLが使えなくなってるのか、めんどくさいなー。 IE8で動かないサイトいっぱいありそう。

566 :Name_Not_Found:2009/04/02(木) 05:13:53 ID:???
innnnnerHTMLが使えなくなるってそんなことあるのかいな

567 :Name_Not_Found:2009/04/02(木) 06:39:20 ID:???
innnnnnnerHTMLが使えないわけがにい

568 :Name_Not_Found:2009/04/02(木) 06:42:18 ID:???
あ、ごめんなさい。 innerHTMLが使えないのはselect要素に対してだけみたいです。
これに対しては "appendChild" も使えませんでした。 初心者に優しくない仕様ですね。

569 :Name_Not_Found:2009/04/02(木) 07:05:13 ID:???
>>565
気になったのでテストしてみたが、普通に使える。

570 :Name_Not_Found:2009/04/02(木) 07:48:15 ID:???
関係ないけどgreeeeeeeeenのeって何文字だっけ?

571 :Name_Not_Found:2009/04/02(木) 08:21:16 ID:???
selectにもappendChildが使えた。 

<script type="text/javascript">
<!--
function func() {
var o = document.createElement('option');
o.setAttribute("value", "test1");

var s = document.getElementById("s");
s.appendChild(o);

o.text = "test2"; // appendChildより前にこれを実行しても反映されない。
//o.appendChild(document.createTextNode("test3")); // 上の行のかわりにこれでも動いた。
//o.firstChild.nodeValue = "test4"; // 上の行のかわりにこう書いても動かない。
// innerHTMLのかわりにnodeValueを使ってSetすることは出来ないんすか?
}
// -->
</script>
<select id="s"></select><br>
<input type="button" value="OK" onclick="func()">

572 :Name_Not_Found:2009/04/02(木) 08:24:45 ID:???
appendChildってIEとFxで違う事あるよね

573 :563:2009/04/02(木) 09:11:37 ID:???
ありがとうございました。
DOM使います。
ちなみに、IE6でも動かないよな気がします。

>>570
多分4つです

574 :Name_Not_Found:2009/04/02(木) 10:23:52 ID:???
4/2ですよ
1日じゃありませんよ

575 :Name_Not_Found:2009/04/02(木) 10:56:08 ID:???
>>563
Q5A5と同じ要領でinnerHTMLにselectも一緒に出力

576 :Name_Not_Found:2009/04/02(木) 11:27:07 ID:???
一問一答形式でそろそろまとめwikiもやらないか?

577 :563:2009/04/02(木) 11:40:22 ID:???
>>575
あ、<div></div>の中に書き出すやつですか。
了解しました。ちょっとあとでやってみます


578 :Name_Not_Found:2009/04/02(木) 14:41:53 ID:i3DMp2vD
親ウィンドウで宣言していたグローバル変数を
サブウィンドウで取得できるのでしょうか?
出来る場合は、やり方を教えて下さい

579 :Name_Not_Found:2009/04/02(木) 14:57:18 ID:???
>>578
サブウィンドウとは親窓から開いた小窓ということ?
その場合、親窓はwindow.openerで参照でき、親窓の
グローバル変数xはwindow.opener.xで参照できる(はず)。

580 :Name_Not_Found:2009/04/02(木) 15:15:38 ID:i3DMp2vD
>>579
■親ウィンドウ
var id=1;

function subwin(url){
window.open(url, "sub", "width=600,height=400");
}

として、

■サブウィンドウ
var id = window.opener.id;

としてみたのですが、サブウィンドウ上で親ウィンドウのidが取得できません

581 :580:2009/04/02(木) 15:21:30 ID:???
自己レスです。

ブラウザ(Firefox3)を一旦閉じて再度試したら出来ました。
579さん、ありがとうございました。


582 :Name_Not_Found:2009/04/02(木) 15:25:44 ID:???
>>580
こういう感じでできたけどなー。
--- t1.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var x = 'ABCABC';
</script>
</head><body>
<div><button onclick="window.open('t2.html', 'sub')">TEST</button></div>
</body></html>
--- t2.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML//EN">
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
document.writeln(window.opener.x);
</script></pre>
</body></html>
もしかして親窓と子窓が別鯖?それだと絶対無理。テンプレに書いてある。

583 :Name_Not_Found:2009/04/02(木) 15:26:47 ID:???
げげ、リロードorz

584 :Name_Not_Found:2009/04/02(木) 18:07:35 ID:???
jsに必要なテクニックってたくさんありますが、みなさんはどうやってそれらを管理して使いこなしてるんですか?
さすがに全部暗記するのは無理ですよね。

585 :Name_Not_Found:2009/04/02(木) 18:12:15 ID:???
管理してないから
昔のコード見て、俺こんなん書いたっけ?
って思うことはよくある。

586 :Name_Not_Found:2009/04/02(木) 18:17:04 ID:???
なるほど、実は自分もそんな感じだったんですが、同じことを何度も検索して探しまわるハメになることが
たまにありまして、効率が悪いなーと。 テクニックにタグを付けて管理してる人とかはいないのかな?

587 :Name_Not_Found:2009/04/02(木) 18:19:37 ID:???
暗記に頼ろうとするあたりはゆとりと言わざるを得ない。

「なんかそんなのあったなぁ」程度に覚えてさえいれば
いくらでも引き出しから引っ張り出せる。
ブクマとかメモツールとかグーグル先生とか書物とか。

もっとも実際の引き出しのように、あったはずなのに
見つからないこともよくある。

588 :Name_Not_Found:2009/04/02(木) 18:21:58 ID:???
ゆとりド真ん中ですみません><

589 :Name_Not_Found:2009/04/02(木) 18:25:55 ID:???
>>586
そういうのはメモツール使って(なんでもいいけど例えばhowmとか紙copiとか)
自分でまとめてローカルにため込む。
ノイズが少ないし、全文検索に加えてアイボールサーチできるのはでかい。
まとめるのは前にも使ったなーと思うモノだけで十分。

個人もしくはグループでwiki使うのも手ではある。ただ若干埋もれやすい。

590 :昨日質問した物ですが:2009/04/02(木) 19:23:24 ID:???
画面内に複数のチェックボックスがある場合、2つ以上チェックされている場合にはNG
メッセージをJavaScriptで表示したいと思っているのですが、
JavaScriptだけでチェックボックスにチェックが入っている数を判定するにはどうすれば
良いでしょうか?

※尚、チェックボックスの数はphp側で数を制御するため変動します。

<test.php>
<INPUT type="checkbox" id="id1" name="Check1">チェックボックス1
<INPUT type="checkbox" id="id2" name="Check2">チェックボックス2
<INPUT type="checkbox" id="id3" name="Check3">チェックボックス3
<INPUT type="checkbox" id="id4" name="Check4">チェックボックス4
<INPUT type="checkbox" id="id5" name="Check5">チェックボックス5


591 :Name_Not_Found:2009/04/02(木) 19:40:13 ID:???
デジャヴ

592 :Name_Not_Found:2009/04/02(木) 19:55:49 ID:???
>>590
あれ、おかしいなってちょっとまてやw
>562で解決したって書いてるじゃねーか

んで解だけど


<div id="check_group">
<INPUT type="checkbox" name="Check1">チェックボックス1
<INPUT type="checkbox" name="Check2">チェックボックス2
<INPUT type="checkbox" name="Check3">チェックボックス3
<INPUT type="checkbox" name="Check4">チェックボックス4
<INPUT type="checkbox" name="Check5">チェックボックス5
</div>

var group = document.getElementById('check_group').getElementsByTagName('input');

for (var i = 0; i < group.length; i++)
{
if (group[i].type != 'checkbox'){ continue; }

// ここで group[i].checked を判定
}


試してないけどこんな感じでいけるんじゃないかね。
もちろんdivはformとかfieldsetでもいいぞ。
HTML的にはむしろそうするべきだし。

593 :Name_Not_Found:2009/04/02(木) 20:07:17 ID:???
俺だったらどれか一個でもチェック入れたらflagつけて
そのあとにifでflagが立ってたらNG処理するように書くかな
そっちの方がコード数少ないし

594 :Name_Not_Found:2009/04/02(木) 20:21:35 ID:???
>>593
ヒント:>560=590

チェック2コ限定で説明すると、次はチェック3コの質問がくる。

595 :Name_Not_Found:2009/04/02(木) 21:09:17 ID:???
画面内に複数のチェックボックスがある場合、3つ以上チェックされている場合にはNG
メッセージをJavaScriptで表示したいと思っているのですが、
JavaScriptだけでチェックボックスにチェックが入っている数を判定するにはどうすれば
良いでしょうか?

※尚、チェックボックスの数はphp側で数を制御するため変動します。

<test.php>
<INPUT type="checkbox" id="id1" name="Check1">チェックボックス1
<INPUT type="checkbox" id="id2" name="Check2">チェックボックス2
<INPUT type="checkbox" id="id3" name="Check3">チェックボックス3
<INPUT type="checkbox" id="id4" name="Check4">チェックボックス4
<INPUT type="checkbox" id="id5" name="Check5">チェックボックス5

596 :Name_Not_Found:2009/04/02(木) 21:20:42 ID:???
>>594
うん?
何個までチェックするかを変数に残して
ifでflagの数見て処理すればいいだけだよ?

597 :Name_Not_Found:2009/04/02(木) 21:22:19 ID:???
チェックするたびにflagに1カウントしていき、
チェックを外すたびにflagを1ひいてけばいいし
flagが制限値と等しいか大きくなったらNGすればいいんだよ?

598 :Name_Not_Found:2009/04/02(木) 21:26:49 ID:???
>>589
なるほど、それ使ってみます。ありがとうございました!

599 :Name_Not_Found:2009/04/02(木) 21:38:53 ID:???
>>576
お前が作れば皆がついてくる

600 :Name_Not_Found:2009/04/02(木) 21:57:04 ID:???
ブラウザ上でドラッグすると範囲選択されますが、この機能を一時的に解除したいのですが
ドラッグをreturn falseできますか?


601 :Name_Not_Found:2009/04/02(木) 22:03:27 ID:???
メガネドラッグ

602 :Name_Not_Found:2009/04/02(木) 22:09:52 ID:???
onselectstartでググってから質問しやがれ

603 :Name_Not_Found:2009/04/02(木) 23:51:04 ID:???
>>602
それって、思い切りブラウザ依存するのでは

604 :Name_Not_Found:2009/04/03(金) 00:42:46 ID:???
onmousedown="return false" でいいんじゃね。

605 :Name_Not_Found:2009/04/03(金) 02:54:52 ID:???
>>604
何という荒技w
そしてキャレットモードには無力という罠

606 :Name_Not_Found:2009/04/03(金) 04:01:44 ID:???
>>5の最後の

> ・on属性 vs addXXX()

の addXXX() って何?

element.Attributes.Add("onClick", "func()");

のことかな、それとも AddListener?

607 :590:2009/04/03(金) 04:13:20 ID:???
>>592
今度こそ本当に解決しました。
スマートで綺麗なコードに関心しました。
ありがとうございます。

>>593
そういう判定方法もありますね。
ありがとうございます。

>>595 ←私のミスです。


608 :Name_Not_Found:2009/04/03(金) 05:22:43 ID:???
特定の年月の第2金曜日の日付を求める関数 getSecondFriday(year,month) 作れる香具師いる?

たとえば、2009年6月を引数で(変数の内容は実装しやすいように"2009","06"として)渡すと第2金曜日の日付である12が戻ってくる
2009年9月を引数で渡すと11が取得できるような関数

かれこれ2週間くらい悩んでるんだが解決しない

609 :606:2009/04/03(金) 05:45:12 ID:???
>>608
素人だけど作ってみる。

610 :606:2009/04/03(金) 06:09:40 ID:???
>>608
これでいけてるかな?year、monthが有効な数字かどうかのチェックを後で追加したほうが良さそうだけどとりあえずこれで。
突っ込み所があればお願いします。(勉強になるので)

function getSecondFriday(year,month){

var d = new Date(year, month-1, 1); // 指定した月の1日の日付がdに入る。
var x = d.getDay(); // 指定した月の1日の曜日が0〜6で返る。0=sun、6=sat。
if (x < 6){
return 6-x+7; // xが日〜金だったら
}else{
return 14; // xが土曜だったら
}

}

// 呼び出し
getSecondFriday(2009, 6);

611 :Name_Not_Found:2009/04/03(金) 06:10:13 ID:???
function getSecondFriday (year, month) { return 11 + new Date(year, month - 1).getDay(); }

612 :606:2009/04/03(金) 06:39:31 ID:???
>>611
肝心の返り値がおかしいですが大変参考になりました。

・ new Dateを計算式の中に入れて計算出来る。
・ new Date と getDay() を . で連結出来る。
・ new Date で日付を省略すると "1日" になる。

というわけでなるべく省スペース化してみた。

function getSecondFriday(year,month){
var x = new Date(year, month-1).getDay();
return ( x < 6 ) ? 13-x : 14;
}

// 呼び出し
getSecondFriday(2009, 6);

613 :Name_Not_Found:2009/04/03(金) 07:30:38 ID:???
ページ内にJavaScriptコードを記述した状態で画面内に入力された値の
判定処理を正常に行う事が出来るのですが、そのfunctionを外部ファイルに
移動させるとエラーが発生してしまいます。

外部JavaScriptファイルに引数として自画面を渡し、外部ファイル内で受け取った
画面オブジェクト内の入力項目を判定するにはどうすれば良いでしょうか?


<test.html>
function Check()
{
 var value = document.getElementById('TextValue').value;
 if( value ==1)
 {
  alert("1ですよ。");
 }
 else
 {
  alert("1じゃないよ");
 }
}

<JScript.js>
//document.getElementById('TextValue').value; この部分でエラーが発生しているっぽいです。


614 :Name_Not_Found:2009/04/03(金) 08:05:02 ID:???
どんなエラーが出てるかぐらい書いたら?
FireBugとか使えばかなり細かく出るし。

615 :Name_Not_Found:2009/04/03(金) 08:51:41 ID:???
>>613
language="JScript" → type="javascript"

616 :Name_Not_Found:2009/04/03(金) 09:10:29 ID:???
外部スクリプトが読み込まれた時点じゃまだ id:TextValue っちゅう要素がないんだろ。

617 :Name_Not_Found:2009/04/03(金) 10:32:24 ID:???
>>590
マルチ乙

△▲ WebProg 初心者の質問 Part19 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1236265877/296


618 :600:2009/04/03(金) 10:43:54 ID:???
あとだしすんません。
普通のソフトのファイルメニューみたいにオンマウスダウンでプルダウンメニュー開いてオンマウスアップでリンクに飛ばしたいんです。
やってみるとドラッグで範囲選択されてしまいます。
locationでも飛びません。

619 :Name_Not_Found:2009/04/03(金) 11:16:40 ID:???
htmlソースを貼らない質問はスルー >>613>>618

620 :Name_Not_Found:2009/04/03(金) 13:31:47 ID:???
>>613
valueって変数名はアカンやろ

621 :Name_Not_Found:2009/04/03(金) 13:51:06 ID:???
>>620
なんでですの

622 :Name_Not_Found:2009/04/03(金) 15:03:12 ID:???
>>613
>>1
> 一、トラブルを再現する最小限のサンプルを貼れる者
それだけじゃあなた以外は再現できないよね?

>ページ内にJavaScriptコードを記述
>外部ファイルに移動させる
>>616も言ってるけど、おそらくその作業の際に<script>の位置を変えたせい。
<head>じゃなくてもsrc指定はできる。

>>620
詳しく

623 :Name_Not_Found:2009/04/03(金) 17:20:54 ID:???
>>622
予約語もしくはこれから使われる語
ってコトじゃない?

624 :Name_Not_Found:2009/04/03(金) 17:41:41 ID:???
そうじゃないっぽいから聞いとるねん

625 :Name_Not_Found:2009/04/03(金) 18:22:18 ID:???
>>618
Fx3+>>604の方法でできたけどなぁ。
e.onmousedown = function() { return false; };

結局コード晒せって話だけど、もし<div onmousedown="menuPopup()">とか書いてるなら
"menuPopup(); return false;"にしてみて。

626 :Name_Not_Found:2009/04/03(金) 18:48:53 ID:???
>>620は、
DOMのForm関係のエレメントで、valueがプロパティ名として使われているから誤解しているのでは。
連想配列としてのObjectをイテレートするような場合には、
key,valueのような変数名を頻繁に使うね。

627 :Name_Not_Found:2009/04/03(金) 21:22:02 ID:???
ループ処理で得られたテキストデータをためておいて、
それを一気にフォームのvalue属性に書き出すという処理で、効率的なやり方って無いですかね

計算結果をTEXTAREAに表示したいのですが・・

628 :Name_Not_Found:2009/04/03(金) 21:26:16 ID:???
>>627
何度コード晒せと言わせるんだw
いまどういうやり方をしていて、どこを非効率的に感じるかを
書いてくれないとアドバイスできない。

629 :Name_Not_Found:2009/04/03(金) 21:27:53 ID:???
うぜぇなあ、馬鹿は質問すんなよ。

630 :Name_Not_Found:2009/04/03(金) 21:36:52 ID:???
>>628
すみません;
ttp://www.geocities.jp/elisy/nico/1.htm
ttp://www.geocities.jp/elisy/nico/1.txt

作りかけな上に、まだその処理が全然組み込まれてないので晒していいものかどうか・・;
フォームにカラーコードを入れるとその二色をグラデーションにしたタグをTEXTAREA吐くというものです。

631 :Name_Not_Found:2009/04/03(金) 21:53:10 ID:???
>>630
最小限のコード・・・はもういいや、
でも非効率的に思う部分がどこかぐらいは書けって。

>document.nicoRain.Result.value = "\n" + (0+goTime)+
>'::/commentColor=0x'
>+document.nicoRain.Start.value.substring(0,2)
>+document.nicoRain.Start.value.substring(2,4)
>+document.nicoRain.Start.value.substring(4,6)+"\n";

var buf = "\n" + (0+goTime)+ '::/commentColor=0x'; // バッファ
var val = document.nicoRain.Start.value; // キャッシュ
for( var i = 0; i < 3; i++) {
 buf += val.substring(i*2, i*2+2);
}
buf += "\n";
document.nicoRain.Result.value = buf;

forはやや無理矢理使った。3行分程度なら使わなくてもいい。
ただページ要素へのアクセスは変数をバッファ・キャッシュにして
最低限に抑えること。

フォーム要素へのアクセスの仕方が好みじゃないけど、それはまた別の話。

632 :Name_Not_Found:2009/04/03(金) 22:00:25 ID:???
>>631
ありがとうございます。
バッファの存在を知らなかったので勉強になります。

バッファ使うとだいぶ楽になりますね・・これは・・;

633 :Name_Not_Found:2009/04/04(土) 00:47:55 ID:vhCIl5Nc
>>530


300 :動け動けウゴウゴ2ちゃんねる :09/03/30 22:39 ID:KHnVvSjk
審議の上、代理レスお願いします。
【板名】web制作
【スレ名】+ JavaScript の質問用スレッド vol.69 +
【スレのURL】http://pc11.2ch.net/test/read.cgi/hp/1235220962/
【名前欄】526
【メール欄】sage
【本文】↓
>>527
一応何度も仕様確認しましたが値は空でも大丈夫です
あとpathは削除時には不要みたいですね


以下の書き換えで無事動きましたのでご報告させていただきます

634 :Name_Not_Found:2009/04/04(土) 10:43:45 ID:???
https://developer.mozilla.org/ja/DOM/element.addEventListener
によるとイベントリスナーの登録にオブジェクトのメソッドを使用することはメモリ開放の問題で推奨されていませんが
メソッド群をどうしてもオブジェクトで包括しておきたい場合、以下のようにしておけば上のメモリ問題は回避できますか?
var obj = {
getListener: (function() {
var listener = function(event) { .... }; // listenerがリスナーになる
return function() { return listener; };
})()
};
// getListenerには、リスナーになるメソッドを取得するメソッドが代入される

635 :Name_Not_Found:2009/04/04(土) 10:57:20 ID:???
>>633
代理レスが何か問題でもあるのかな?

636 :Name_Not_Found:2009/04/04(土) 11:43:34 ID:???
>>634
何か違うような気がする。

たとえば setTimeout(obj.func, 1000) だと実行時にはthisがobjとは別の物になってしまうから、
一般的な解決策としては setTimeout(function() { obj.func() }, 1000) という風にする。
でもこっちはスコープチェーンによるメモリ負担の問題が生じるから気をつけれ。
・・・って事が書いてあるんじゃないのかなそれ。すごく分かり辛いけど。

637 :634:2009/04/04(土) 11:57:01 ID:???
>>636
把握しました、ありがとうございます

638 :Name_Not_Found:2009/04/04(土) 14:22:22 ID:qaxJFM1U
正規表現についての質問です。

下のようなCSSテキストから各セレクタ名と設定内容を取得するには
どうすればいいでしょうか?

.main,.header{font-size:60%;}
.nav1 ul {float:right; padding:0 20px 0 0;}
.nav2
,nav3{float:left;}

よろしくお願いします。

639 :Name_Not_Found:2009/04/04(土) 14:59:17 ID:???
適当ですけど
\{\[a-z-]*?:[a-z0-9%];?}$

640 :Name_Not_Found:2009/04/04(土) 15:01:46 ID:???
>>639
氏ね

641 :Name_Not_Found:2009/04/04(土) 15:08:20 ID:???
>>640が書いてくれるってさ
回答早くねー^^


642 :Name_Not_Found:2009/04/04(土) 15:40:11 ID:???
>>638
宿題スレじゃないから方針だけ。
replaceをコールバックでネストさせて使う。
そのとき置換結果は捨てる。(代入しない)

たとえばこんな感じ。
var result = {};
"a = b, c = d".replace(/(.+?)\s*=\s*(.+?),?/g,
 function(match, name, value) {
  result[name] = value;
 });

これに加えてセレクタやスタイルを細かく分解する作業が必要だけど
ネストさせればいいからわかるはず。

ポイントは、正規表現一発でなんでもやろうとしないこと。

643 :Name_Not_Found:2009/04/04(土) 16:09:30 ID:???
正規表現で書けば一行で済むのに
ほんとはわからないならわからないって書けばいいよ

644 :Name_Not_Found:2009/04/04(土) 16:28:33 ID:???
是非見たいな
その正規表現を

645 :Name_Not_Found:2009/04/04(土) 16:33:26 ID:???
はい。

^\.(?:.|\s)+?}$

646 :645:2009/04/04(土) 16:37:46 ID:???
マジレスじゃないけど、ミスったw

647 :638:2009/04/04(土) 17:39:30 ID:qaxJFM1U
>>639-646
ありがとうございます。
replace関数の方法でやってみます。

648 :Name_Not_Found:2009/04/04(土) 19:59:54 ID:???
失礼します。
フォームから入力された6桁の英数字をst と ed に代入して
そのカラーコードを元にID=testのテーブルのカラーをグラデーションにする
スクリプトを作りたいのですが、エラーになってしまいます。
変数の前後に#や"が足らないのが原因だとは思うのですが、 "'"+ st + "'" としても駄目なようです・・

function rain{
var st=document.nRain.Start.value.toLowerCase();
var ed=document.nRain.End.value.toLowerCase();


var element = document.getElementById("test");
element.filters[0].StartColorStr = st ;
element.filters[0].EndColorStr = ed ;
element.filters[0].GradientType=1;
}

649 :Name_Not_Found:2009/04/04(土) 20:31:28 ID:???
>>648
1.
rain の後に () が必要。

function rain() { ... }

2.
"=" と "st" の間に全角スペースが入ってる。

element.filters[0].StartColorStr = st ;

3.
style 指定に下記相当が必要。

#test {
filter:progid:DXImageTransform.Microsoft.Gradient;
}

後はどうかな。

650 :Name_Not_Found:2009/04/04(土) 20:56:13 ID:???
JAVASCRIPTのソースコピペして使うのってライセンスとか法的な事はどうゆう解釈・理解で使えがいいのでしょうか?

651 :Name_Not_Found:2009/04/04(土) 21:26:31 ID:???
ライブラリとかならライセンス条項を嫁
そうでないなら勝手に使うか作者にメールでも出しとけ

652 :Name_Not_Found:2009/04/04(土) 21:30:59 ID:???
>>649
Styleは直接テーブルで指定しています。
rain()と、全角半角は修正しましたが、どうもうまくいかないですね・・・
テストページ作ってみました。

ttp://www.geocities.jp/elisy/test.htm

正直どこが悪いのか見当が;;

653 :Name_Not_Found:2009/04/04(土) 21:35:30 ID:???
>>652
firebugが2個えらーがあるぞって怒った。
IE8にも同様のデバッガがあるからどっちか使って確認。

654 :Name_Not_Found:2009/04/04(土) 21:36:57 ID:???
>>652
function rain() { ... } の閉じる "}" がない。

655 :Name_Not_Found:2009/04/04(土) 21:38:56 ID:aIzRdxWu
Client-side database storageを使う場合
クライアントが悪質なsqlに書き換えた場合を考えてるのですが
どのような解決方法がありますか?

656 :Name_Not_Found:2009/04/04(土) 21:41:13 ID:???
>>654
閉じてなかったですね;
すみません、閉じてみましたが
未定義のエラーが二つ出ますねぇ・・

657 :Name_Not_Found:2009/04/04(土) 21:49:37 ID:???
>>655
C/S型の原則として、Clientからの通信は常に疑うべき。
HTMLやJavascript書き換えても似たような問題は起きる。

具体的には例えば
・受信データのエラーチェックを厳格にする(基本)
・書き換えられてもそのユーザーで完結させる(ソーシャルな要素を設けない)
・重要なデータはServer側で算出して保存し、Clientには送りつけるだけ


658 :652:2009/04/04(土) 21:54:55 ID:???
あ、すみません。あっさり解決しました;
カラーコードの先頭に#がついてなかったのが原因だったぽいです。
お騒がせしました。
ttp://www.geocities.jp/elisy/test.htm

659 :Name_Not_Found:2009/04/05(日) 14:53:15 ID:???
firebugって、showModalDialog() を実行すると訳の分からんエラーメッセージを吐かない?

660 :Name_Not_Found:2009/04/05(日) 17:33:27 ID:???
パラメータ設定してないと出るよ

661 :Name_Not_Found:2009/04/05(日) 17:46:54 ID:???
>>659-660
再現しないと思ったらそういうことか。
firebugだから目立っただけで、javascript:showModalDialog()とエラーコンソールでも再現する。

662 :Name_Not_Found:2009/04/05(日) 22:26:49 ID:bcvWk2uY
素人ですんません
geturlが書き込めない.swfファイルをリロードごとにランダムで表示させたいんですけど、
↓この記述だとリンクは貼れるのですが、ランダム表示ができまてん。
<object type='application/x-shockwave-flash' data='○○.swf' width='180' height='150'>
<param name='flashvars' value='clickTag=http://www.○○&clickTarget=_self' />
<param name='allowScriptAccess' value='always' /><param name='movie' value='○○.swf' />
<param name='bgcolor' value='#ffffff'></object>

3つぐらいのswfファイルを個別のリンクつきでアクセスごとにランダムに
表示させるにはどうすればいいでしょうか?

663 :Name_Not_Found:2009/04/05(日) 22:32:58 ID:???
geturlが書き込めない.swfファイルって広告だよね
商業活動の依頼なら金を払ってしかるべきところにお願いするべきじゃね

664 :Name_Not_Found:2009/04/05(日) 22:34:33 ID:???
>>662
表示させるurlを配列に入れる

乱数発生

配列と乱数を使って出力

665 :Name_Not_Found:2009/04/05(日) 22:42:40 ID:???
>>663
いえ、ネット上の簡易サービスで作ったのでflaファイルがないのです

>>664
simg=new Array(3);
simg[0]="○○";
simg[1]="△△";
simg[2]="□□";
Myimg=Math.floor(3*Math.random());
↑のことでしょうか?
素人なりにいろいろ調べてみましたが解決法が見つからないのです。
助けてください!

666 :Name_Not_Found:2009/04/05(日) 22:42:41 ID:???
>>662で何故リンクが張れるのか理解出来ない。
flashvarsからswfにリンクURLを渡してswf上でリンクを生成するって意味?

667 :Name_Not_Found:2009/04/05(日) 22:43:57 ID:???
>>662に軽く日本語でおkだな
何をしたいのかさっぱりわからん

668 :Name_Not_Found:2009/04/05(日) 22:45:09 ID:???
第二金曜日算出関数の人もそうだけど業者っぽい人多いね

669 :Name_Not_Found:2009/04/05(日) 22:45:18 ID:???
>>662
○○の部分だけを変えたいってことだよな?
他の部分は変わらないんだろ?

670 :Name_Not_Found:2009/04/05(日) 22:48:07 ID:???
>>669
そうです。これで、1つのswfのリンク設定ができたんですけど、
3つぐらいの同じようなファイルを、読み込みごとにランダムに
表示させたいのです。

671 :Name_Not_Found:2009/04/05(日) 22:49:19 ID:???
シカトかよw 作るのやめた。

672 :Name_Not_Found:2009/04/05(日) 22:50:23 ID:???
>>671
すっすいません
どのレスでしょうか?ダミアンさんですか?

673 :Name_Not_Found:2009/04/05(日) 22:54:55 ID:???
>>666
自分もよくわかりません。言われるままに記述したら
1つのバナーにはリンクが貼れたんです。
それを複数のファイルでアクセスごとにランダム表示させたいのですが
もう難しすぎてパソコンぶん投げそうです…

674 :Name_Not_Found:2009/04/05(日) 22:56:11 ID:???
ひんと あふぃ

675 :Name_Not_Found:2009/04/05(日) 22:59:25 ID:???
質問の意味がよくわからんけど


c=3;// URLの数
url = [[],[]];
url[0]=["test","テストだよ"];
url[1]=["example","えええ"];
url[2]=["hoge","ほげほげわっしょい"];

r=Math.floor(Math.random()*c);

document.write('<a href="'+url[r][0]+'.html">'+url[r][1]+'</a>');

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無題ドキュメント</title>
<script type="text/javascript" src="test.js"></script>
</head>

<body>

</body>
</html>


676 :Name_Not_Found:2009/04/05(日) 23:01:15 ID:???
"clickTAG" "clickTARGET" で検索
         ↓
http://onlinekoukoku.com/advertisements/web-site/1656.html

677 :Name_Not_Found:2009/04/05(日) 23:15:46 ID:???
>>675
そのまま文字が表示されリンク先へ飛べませんでした。

yahooなどのトップによく見るアクセスごとにバナーが切り替わるように
したいのですが、自分には.flaファイルがないので、geturlで設定できないのです。

>>676
そのサイトでは検索引っかかりませんでしたよ

678 :Name_Not_Found:2009/04/05(日) 23:18:56 ID:???
とりあえず質問の意味が不明&日本語でおk
ttp://www.google.co.jp/search?q=javascript+%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E3%80%80%E3%83%90%E3%83%8A%E3%83%BC&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a

679 :Name_Not_Found:2009/04/05(日) 23:32:34 ID:???
>>678
yahooなどのランダムに表示されるバナーにはswfファイル自体にリンク設定されているじゃないですか。
それができればいいのですが、自分にはアクションスクリプトを書くための元のflaファイルがないので、
スクリプトでリンク設定するしか方法がないのですが、その方法がわからないのでこちらで質問させてもらっているわけです。

貼っていただいたURLで試してみましたが、
<SCRIPT language="JavaScript">
<!--
// ランダムに画像を表示する
jmp = new Array();
img = new Array();
// ジャンプ先のアドレス(数字は画像と対応)
jmp[0] = "http://xxx.xxx.xxx/";
jmp[1] = "http://xxx.yyy.zzz/";
jmp[2] = "http://sss.bbb.vvv.fff/";
jmp[3] = "http://hhhhh.sss.com/";
jmp[4] = "http://agdaa.cc.com/";
// 画像のアドレス(数字はジャンプ先のアドレスと対応)
img[0] = "img/img0.jpg";
img[1] = "img/aa.gif";
img[2] = "img/bb.png";
img[3] = "img/img.jpg";
img[4] = "img/imgimg.gif";
n = Math.floor(Math.random()*jmp.length);
document.write("<A href='"+jmp[n]+"'>");
document.write("<IMG src='"+img[n]+"' border='0'>");
document.write("</A>");
//-->
</SCRIPT>
swfファイルだと表示されないようです。ランダムと、リンクは成功していました。

680 :Name_Not_Found:2009/04/05(日) 23:36:15 ID:???
test.swf?a=1&b=2みたいに因数を与えて表示を変えられないなら諦めろ
ていうかお前のやりたいことはできない

681 :Name_Not_Found:2009/04/05(日) 23:37:02 ID:???
あとswfってどっかで配布されてるのかい?
配布されてるならURLぐらい書こうな

682 :Name_Not_Found:2009/04/05(日) 23:46:32 ID:???
<object type='application/x-shockwave-flash' data='○○.swf' width='180' height='150'>
<param name='flashvars' value='clickTag=http://www.○○&clickTarget=_self' />
<param name='allowScriptAccess' value='always' /><param name='movie' value='○○.swf' />
<param name='bgcolor' value='#ffffff'></object>
これでちゃんとバナーが表示されているので、
それをランダムに表記するのはそんなに難しいことだったんですね…。 素人考えで
みなさんのお知恵を借りれば可能かと思いましたが無理そうですね…

>>681
配布されていません。bannarsnacっていう外国のフラッシュ作成サービスなんす。

683 :Name_Not_Found:2009/04/06(月) 00:04:58 ID:???
>>660-661
パラメータ設定しても showModalDialog() でエラー出るけど
例えば、blank.htmを用意して次のように指定しても。

body onload='showModalDialog("blank.htm")'

684 :Name_Not_Found:2009/04/06(月) 00:20:52 ID:???
>>683
>body onload
そりゃエラーもでるわw

ちなみにshowModalDialog("blank.htm")でもエラーでなかった。
用意してないから404だったけど。

それと次からはエラー文をちゃんとコピペしてくれ。ソース並に重要。

685 :Name_Not_Found:2009/04/06(月) 00:30:58 ID:???
body onloadの中でも showModalDialog を window.showModalDialog と書かなくてもいいのか、知らなかった。

686 :Name_Not_Found:2009/04/06(月) 00:47:22 ID:???
<body onload="">か・・・javascriptコード片と勘違いしたすまん。

687 :Name_Not_Found:2009/04/06(月) 01:25:30 ID:???
>>682
bodyタグの下にこれ書いてないってオチじゃ・・。

<script type="text/javascript">
resizeTo(200, 200);
setInterval( "moveTo(Math.random()*800, Math.random()*600)", 100 );
</script>

688 :Name_Not_Found:2009/04/06(月) 01:26:07 ID:???
>>687
それだ

689 :Name_Not_Found:2009/04/06(月) 01:28:18 ID:???
>>687
なるほど、うっかりしてました。

690 :Name_Not_Found:2009/04/06(月) 01:57:17 ID:???
>>682の頭の悪さは異常

691 :Name_Not_Found:2009/04/06(月) 02:25:30 ID:???
実際、なんにもしらないんで、頭悪いって言われるとそれまでなんですが、
>>682のレスの意味をくんで適した解決法を提示してくださる方はいないんですね。
初心者用のスレが見当たらなかったんでここで質問したまでですが。



692 :Name_Not_Found:2009/04/06(月) 02:33:33 ID:???
http://pc11.2ch.net/test/read.cgi/hp/1179833080/l50

693 :Name_Not_Found:2009/04/06(月) 02:47:29 ID:???
やばいこれはスルーせざるを得ない

694 :Name_Not_Found:2009/04/06(月) 02:55:47 ID:???
>>691
予算は?


695 :Name_Not_Found:2009/04/06(月) 03:01:11 ID:???
予算?金払えば満足な回答できるのか?
なら成功報酬でパンツうpってやる

696 :Name_Not_Found:2009/04/06(月) 03:05:37 ID:???
(゚听)イラネ

697 :Name_Not_Found:2009/04/06(月) 03:11:26 ID:???
>>695
女?じゃいらね

698 :Name_Not_Found:2009/04/06(月) 03:12:52 ID:???
残念!男だよ!

699 :Name_Not_Found:2009/04/06(月) 10:09:34 ID:???
>>682
<script type="text/javascript" src="swfobject.js"></script>
<div id="swfview">このタグの中ににフラッシュが表示される</div>
<script type="text/javascript">
swfContent = [
["a1.swf","a2.swf","a3.swf","a4.swf"],
["http://test1.example.com/","http://test2.example.com/","http://test3.example.com/"]
]
swfRandFile = Math.floor(swfContent[0].length*Math.random());
swfRandURL = Math.floor(swfContent[1].length*Math.random());
var test = new SWFObject(swfContent[0][swfRandFile],"swfContents","180","150","9","#ffffff");
test.addParam("allowfullscreen","true");
test.addParam("allowscriptaccess","always");
test.addParam("wmode","opaque");
test.addParam("flashvars","clickTag="+swfContent[1][swfRandURL]+"&clickTarget=_self");
test.write("swfview");
</script>

ブラウザのフラッシュの扱いは色々難しいからSWFobjectというライブラリを使ってやるといい
swfobject - Google Code
ttp://code.google.com/p/swfobject/


700 :Name_Not_Found:2009/04/06(月) 10:37:47 ID:???
swfのファイル名を変えたいんじゃなくて、今回はswfに埋め込まれた値を変えないといバナーが変更できないんでしょ
javascript関係ないじゃん

701 :Name_Not_Found:2009/04/06(月) 12:01:43 ID:???
>>680
どうでもいいけど、インスウじゃなくてヒキスウだぜ

702 :Name_Not_Found:2009/04/06(月) 12:14:05 ID:???
バロッシュw

703 :Name_Not_Found:2009/04/06(月) 12:35:15 ID:???
>>699
SWFObject は JavaScript のみによる実装じゃなくて
object 要素の記述 + JavaScript による機能拡張
の使いかたを推奨してるよ

Eolas 問題が解決した今、それがベターなプラクティスぽい

704 :Name_Not_Found:2009/04/06(月) 12:43:24 ID:???
それ書くとスレチだから書いてないだけ

705 :Name_Not_Found:2009/04/06(月) 12:48:03 ID:???
action scriptの仕事だろ?
スレ違いの質問ってことで終了

706 :Name_Not_Found:2009/04/06(月) 14:10:51 ID:???
>>705
flaファイルがないって言ってるからaction scriptじゃなく
javaでってことだろ。

707 :Name_Not_Found:2009/04/06(月) 14:22:45 ID:???
>>706

うん、jsとasは一緒じゃないんでできないよね
はい、終了

次の質問どーぞ

708 :Name_Not_Found:2009/04/06(月) 15:20:32 ID:???
ローカルで参照できる、JavaScriptとjQueryのマニュアルを探しています。
参考になるサイトを wget -r でとってきても、リンク先が相対リンクでなかったり、CSSがおかしなことになったりと、
とてもローカルで参照できるものにはなりませんでした。

ネットがつながってない環境でも勉強したり参照できるような、JavaScriptとjQueryのマニュアルで、おすすめのものがありましたら教えてください。

709 :Name_Not_Found:2009/04/06(月) 15:40:01 ID:???
>>706
javaで?
javaならスレ違い

710 :Name_Not_Found:2009/04/06(月) 15:40:10 ID:???
>>699
をそのままファイル名とURLを書き換えて試してみたら、
ランダムはうまく表示でき、最初はURLもクリックできるようになるけど、
何度かリロードするとクリックできなくなるね URLもエラーで飛べないし。


711 :Name_Not_Found:2009/04/06(月) 15:56:24 ID:???
>>708
URLを直してくれるような巡回ソフト探した方がいい。

それとさっきからjavaとか言ってるヤツは頭冷やしてこい、ここはjavascriptスレだw

712 :Name_Not_Found:2009/04/06(月) 17:34:36 ID:???
冷水をジャバっとかぶって来いと言いたいんですね

713 :Name_Not_Found:2009/04/06(月) 18:05:53 ID:???
JavaScriptって名前変えようぜ
長いし混同されるし良いことないじゃん

714 :Name_Not_Found:2009/04/06(月) 18:12:00 ID:???
JSで良いじゃん

715 :Name_Not_Found:2009/04/06(月) 18:18:06 ID:???
>>713
EcmaScript

716 :Name_Not_Found:2009/04/06(月) 20:48:30 ID:???
LiveScript

717 :Name_Not_Found:2009/04/07(火) 00:33:52 ID:???
ジャバザハット

718 :Name_Not_Found:2009/04/07(火) 01:36:29 ID:???
>>708
wgetって相対リンクにしてくれないんだっけ?

俺が愛用してるソフト。

GetHTMLW
http://www.vector.co.jp/soft/win95/net/se077067.html

719 :Name_Not_Found:2009/04/07(火) 01:48:18 ID:???
--convert-links

取得したファイル内の絶対指定のリンクを相対指定に書き換 えます。

[Wgetrc] convert_links = on/off

http://members.at.infoseek.co.jp/futora/wget153/option.html

あるじゃねえか・・。

720 :Name_Not_Found:2009/04/07(火) 02:06:32 ID:???
>>708
jQueryのマニュアルの方は jQuery API Browser というのがあるよ

ttp://api.jquery.com/

ここから落とせる

721 :Name_Not_Found:2009/04/08(水) 06:43:10 ID:???
document.writeを上書きし、document.writeの引数によって出力する文字列を変えることって出来ませんか?

// 引数が "A" 一文字だったら "yes" を出力する。 → "yes"
document.write("A");

// それ以外だったらそのまま出力。 → "AB"
document.write("AB");

自分で書いてみたコードでは "document.write" が自身を参照する無限ループになってしまい、ブラウザが重くなったあとに
「InternalError: too much recursion」 というエラーが出てしまいました。
________________________________________________________________________________
document.write = function(s){
( s == "A" ) ? document.write("yes") : document.write(s);
}
document.write("A"); // ここで無限ループに陥り、上記のエラーが出てスクリプトが停止。
document.write("AB");
________________________________________________________________________________

平日なのにこんなスレで暇潰ししているスーパーハッカー(笑)のみなさん、どうか宜しくお願いします。

722 :Name_Not_Found:2009/04/08(水) 06:50:23 ID:???
平日なのに出勤前にこんなスレ覗きにくるヒマ人だがな。

最初のdocument.writeを自作関数に置き換えりゃ済むだろが。

723 :721:2009/04/08(水) 06:59:32 ID:???
>>722
document.write を上書き出来るかどうかが知りたいのでそれでは意味がありませんです。

724 :Name_Not_Found:2009/04/08(水) 07:34:06 ID:???
なんか IE8では動いた。
Firefox/Chromeでは動作せず。
お作法違反はあんまり趣味じゃないんで、これ以上はよーわからん。

document.write_ = document.write;

document.write = function(s){
( s == "A" ) ? document.write_("yes") : document.write_(s);
}



725 :Name_Not_Found:2009/04/08(水) 10:36:37 ID:D2SNJEcy
newwrite = "1";// このの値は例として1ですがユーザーが入力した値を入れるので不定です
document.getElementBy("box").innerHTML= document.getElementBy("box").innerHTML+newwrite;

<div id="box"></div>


id名boxにnewwriteに格納した文字を足していきたくて上のようにしました
これだとbox内の内容とnewwriteを足して「書き換える」動作なんですが、
box内に大量の文字列があると動作が重くなってしまい改善したいです

これをbox内の内容にnewwriteを「挿入する」やり方を模索してるのですが
どなたかご教示お願い致します

726 :Name_Not_Found:2009/04/08(水) 10:41:08 ID:???
>>724
ttp://d.hatena.ne.jp/cyokodog-memo/20090225/1235524693

727 :Name_Not_Found:2009/04/08(水) 10:54:36 ID:???
>>724
WinXPのFirefox3.0.8/Chrome1.0.154.53/Opera9.63/Safari4で試してみたけど問題なく動くよ

728 :Name_Not_Found:2009/04/08(水) 10:55:50 ID:???
document.write("hogehoge");


とコードを書いて出力すると次のページに遷移してしまいますよね?

このdocument.write("");

はそもそもどういった場合に使用すれば良いのでしょうか?
また、ページ遷移する事無く使用するにはどうすれば良いでしょうか?

729 :Name_Not_Found:2009/04/08(水) 11:00:10 ID:???
ググればすぐ分かることを人に聞くようなアホは帰れ。

730 :Name_Not_Found:2009/04/08(水) 12:36:01 ID:???
>>725
値を2つ用意したらどうかな
newwrite = "1";
boxContent = "";

boxContent = boxContent + newwrite;
document.getElementBy("box").innerHTML = boxContent;

731 :725:2009/04/08(水) 12:54:13 ID:???
>>730
ありがとうございます
box内にはユーザーが入力した値を順次足していく形にしたいと思います
例えばはじめはbox内が空で、ユーザーが「りんご」と入力したら
<div id="box">りんご</div>となり
さらに「バナナ」入力したら<div id="box">りんごバナナ</div>というように
足していく形にしたいのですが
>>725では一度box内の内容を取得して入力した値を足す形になり、box内の文字が多いと動作が遅くなってしまいます
やはり不可能なのでしょうか?

732 :Name_Not_Found:2009/04/08(水) 12:58:01 ID:???
>>725
とりあえずgetElementByIdは使う回数を減らす。
var e = document.getElementById("box");
e.innerHTML= e.innerHTML + newwrite;

もしかしたらこっちでいいのかもしれない。
document.getElementById("box").innerHTML += newwrite;

これでも遅いならHTMLパースのせいだろうし
テキストノード書き換えすればそれを回避できて速かった気がする。
document.getElementById("box").childNodes[0].nodeValue += newwrite;

733 :Name_Not_Found:2009/04/08(水) 13:05:20 ID:???
一回しか呼ばれないのは当然と言えば当然かw
function foo() {
 alert("call");
 return {value: ""};
}
foo().value += "test";

余談だけど、もし一度に何回も書き出してるなら>>730の要領で
最後にまとめて吐き出さないとダメ。

734 :Name_Not_Found:2009/04/08(水) 13:29:53 ID:???
>>728
documentに書き出すタイミングで使え

735 :Name_Not_Found:2009/04/08(水) 13:38:12 ID:???
>>728
ページの読み込みが終わった時点でdocumentは閉じられているので
document.writeを読み込み後に行うとドキュメントの内容を消してから出力される

736 :Name_Not_Found:2009/04/08(水) 19:21:36 ID:???
>>725
innerHTMLを使わなきゃだめなん?
↓こう書いてみて、10画面程度では特に遅くは感じられなかったけど。
<input id="WRITE">
<input type="button" value="Write" onclick="
var box = document.getElementById('box');
var newwrite = document.getElementById('WRITE').value;
if (box.hasChildNodes()) {
box.lastChild.appendData(newwrite);
} else {
box.appendChild(document.createTextNode(newwrite));
}
">
<div id="box"></div>

737 :Name_Not_Found:2009/04/08(水) 19:27:06 ID:???
なんでおまえらって他人の質問に対してそんな真剣になれるの?
埼玉県民の俺が泣くじゃないか

738 :Name_Not_Found:2009/04/08(水) 19:43:38 ID:???
人のためならずというか。
まともな質問に対して生半可な知識で答えようとすると
回答できなかったりツッコミが入ったりしていい勉強になる。

739 :736:2009/04/08(水) 19:44:13 ID:???
>>725のオリジナルでやってもあまり遅くならないな。
boxにはいったいどれだけ入ってるんだ?
(それとも一度に何度も繰り返してる?)

innerHTMLにしなくちゃいけなくて速度も気になるなら
ダミー要素を作って入れるとよくなる…かも?

var newwrite = document.createElement('div');
newwrite.innerHTML = document.getElementById('WRITE').value;
document.getElementById('box').appendChild(newwrite);

740 :728:2009/04/08(水) 19:49:35 ID:???
>>734 >>735
さんくす
試してみます。

741 :Name_Not_Found:2009/04/08(水) 19:52:04 ID:???
>>740
礼はいいってことよ
得た知識は今後このスレで役立ててくれればいいってことよ

742 :Name_Not_Found:2009/04/08(水) 19:59:49 ID:???
>>741
お礼の言葉は要らないけどお礼の気持ち(結果報告)はほしいぞw

743 :Name_Not_Found:2009/04/08(水) 20:46:14 ID:???
MDC 英語版
https://developer.mozilla.org/en/DOM/Window.setInterval

上記ページの以下の一文がどうしても訳せません><
直訳するとどうなるんでしょうか。
因みに、日本語版の訳もよく分かりませんでした;;

> setInterval() will pass the number of milliseconds late the callback was called into the callback function,

744 :Name_Not_Found:2009/04/08(水) 21:14:49 ID:???
>>743
なんだこれ、意味はなんとなくわかったけど訳せないw

Fx(ASとかも)でのsetIntervalはfuncに渡すparamを指定できる。
intervalID = window.setInterval(func, delay[, param1, param2, ...]);
たとえば
setInterval(func, 1000, param);
なら1000ms後にfunc(param)を実行する。

でもIEなんかでは動かないし、なにより直観的じゃなくてキモイから
(paramがfuncへの引数ではなく、setInterval自体の挙動を変えるための引数にも見える)
クロージャ使った方が確実だしわかりやすいよ、ということだと。

setInterval(function(){ func(param); }, 1000);


745 :Name_Not_Found:2009/04/08(水) 21:17:29 ID:???
クロージャじゃなくて無名関数だった。モノはほぼ同じだけど。

それにしても、何度読んでもcallback functionに対するcallbackの
ニュアンスがよくわからん・・・。

746 :Name_Not_Found:2009/04/08(水) 21:23:04 ID:???
>>743
コールバック関数として呼び出したらsetInterval() 数ミリ程度遅れるでしょう

747 :Name_Not_Found:2009/04/08(水) 21:25:56 ID:???
>>743
文章が途切れてるから意味が変わってくるだろ
ちゃんと書けよ
setInterval() will pass the number of milliseconds late the callback was called into the callback function,
which can confuse it if it expects something else as an argument.
To sidestep that problem, use an anonymous function to call your callback.

setInterval()はコールバックを数ミリ秒遅れて渡します
それが議論として何か他のものを予想するならば、それを混同することができるコールバック機能に呼びました。その問題を回避するために、あなたのコールバックを指令するために、匿名の機能を使用してください。

748 :Name_Not_Found:2009/04/08(水) 21:28:05 ID:???
要は以下のように使うなってこと

function test() {
この中にsetInterval()を使う
}


以下のように使ってくれってこと

window.onclick=function() {この中はおk}

749 :Name_Not_Found:2009/04/08(水) 21:46:03 ID:???
>>747
文句言うくせに、機械訳でやんの。

750 :Name_Not_Found:2009/04/08(水) 21:53:18 ID:???
>>744-745
おっしゃる通り、結果的にどうしろというのは which 以降を読めば理解できるんですが・・・・。
最初に言わんとしていることがさっぱり分からんのです。

>>747
^^

>>746氏 = >>748氏かな?
それだと文脈上の筋が通らない様な気がしますです。

もう少し時間をかけて自分でも考えてみます。
ありがとうございました。

751 :721:2009/04/08(水) 22:05:36 ID:???
>>724
IE8ではそれで動くんですか、なるほど。 やっぱ全てのブラウザで動くものは無理なのかな。
とりあえず、どうもありがとう。

752 :Name_Not_Found:2009/04/08(水) 22:09:21 ID:???
>>751

>>724 は自作関数に置き換えてるよ

753 :721:2009/04/08(水) 22:12:01 ID:???
>>752
>Firefox/Chromeでは動作せず。
なのでダメ。 これは質問前に自分も試した。

754 :Name_Not_Found:2009/04/08(水) 22:14:03 ID:???
>>753
>>727
こっちでもFx3で動いた。
行儀悪いとはいえJS的におかしなことはしてないし。

755 :Name_Not_Found:2009/04/08(水) 22:56:30 ID:???
uupaaとかkQueryのblogが高度すぎてわからん

756 :Name_Not_Found:2009/04/08(水) 23:11:01 ID:???
>>754
これで試して、Vista 上のFirefox3.08 + FireBug1.33 だと yes だけで、Chrome1.0.154.53 だと何も出んかった。
onload で document.writeってしちゃいけないんだっけ?
document.writeってもうずいぶん使ってないから忘れてしまった。
レベル低いくせに答えたりしてすんません。(´д`)


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<script language="JavaScript">
document.write_ = document.write;
document.write = function(s){
( s == "A" ) ? document.write_("yes") : document.write_(s);
}

function init() {
document.write("A");
document.write("AB");
}
</script> </head>
<body onload="init();">
</body></html>

757 :Name_Not_Found:2009/04/08(水) 23:12:36 ID:???
javascriptを用いて、あるページからあるページに画面遷移するソースを書きたいのですが、
どのように書いたら良いのでしょうか?
例として「画面1」http://www.dotup.org/uploda/www.dotup.org31452.jpg
のページから「画面2」http://www.dotup.org/uploda/www.dotup.org31455.jpg
ページに画面遷移できるようなソースをお願いしたいです。
その際、写真の「新規作成」「更新」「削除」ボタンを押して、
画面2に遷移するようにしたいのですが。
また、画面2の「戻る」ボタンを押して、
画面1に遷移するようなソースも合わせてお願いします。


※javascriptを使わない方法では次のように書いたところ、画面遷移ができました。

<form action="画面2.html">
<input type="submit" value="新規作成">
<input type="submit" value="更新">
<input type="submit" value="削除">
</form>

以上の点をふまえた上で、
よろしくお願いします。HTML初心者のもので、ご教授いただけると助かります。


758 :Name_Not_Found:2009/04/08(水) 23:16:18 ID:???
>>756
>onload で document.writeってしちゃいけないんだっけ?
document.writeを使っていいのはloadが終わる前までだ。onloadじゃ遅すぎる。

759 :Name_Not_Found:2009/04/08(水) 23:19:10 ID:???
>>758
なるほど。
動いた。ありがと。


760 :Name_Not_Found:2009/04/09(木) 00:37:45 ID:???
>>757
そんなのボタンにしないでただのリンクでいいと思うけど。
ASP.NETならポストバックになるのかな。
location.href = '画面2.html';

761 :721:2009/04/09(木) 01:14:44 ID:???
document.writeの上書きの件ですが>>724でうまくいくことが確認出来ました。

質問前に自分で試したものが動かなかった原因はfirebugで動かしたせいでした。
いろいろ試した結果、firebugで実験する場合は同一のタブを使い回してはいけないことが分かりました。
( 一度実験に使ったタブは閉じ、新たなタブを開いてそこで実験をする必要があった )

firebugは何かと便利だけど頼りすぎてはいけない・・と。

>>722 と愉快な仲間たち >>724>>727>>752>>754 のみなさんありがとうございました。(ぺこ)

762 :Name_Not_Found:2009/04/09(木) 01:26:15 ID:???
>>756
質問者と一緒に考えるぐらいのスタンスでいいと思うよ。

>>761
コンソール有効の状態で、firebugからHTMLソース見ると
<div id="_firebugConsole">が確認できる。
つまりページに埋め込んで処理してるということ。

タブ閉じずにリロードでいいけど
影響の大きいことをやったら初期化してやる必要あるし
そのへんの影響の大きさが行儀悪いと言われる所以でもある。

763 :Name_Not_Found:2009/04/09(木) 05:35:58 ID:???
>>743
> setInterval() will pass the number of milliseconds late the callback was called into the callback function,

基本構造は
setInterval() will pass the number of milliseconds into the callback function,
(setInterval() はミリセカンド秒数をコールバック関数に渡します)

そして "late the callback was called" が "the number of milliseconds" にかかっている。
(あとでコールバックが呼ばれたとき)

全体では
『setInterval() はあとでコールバックが呼ばれたときにミリセカンド秒数をコールバック関数に渡します。』
じゃないかなあ。

ただ "late" の品詞がよくわかんない。ここでは『あとで』という意味の副詞だと思って訳したけど、違うかも。


764 :Name_Not_Found:2009/04/09(木) 08:43:02 ID:???
「setInterval()は、コールバック関数に、コールバックが何ミリ秒
遅れて呼ばれたかのミリ秒数を、渡します。」
へーそうなのかと思ってテストしてみた。ループカウントを増やすと
コールバックが「次に」呼ばれる時間が指定より遅くなるが、確かに
その時「どれだけ指定より遅くなったか」が渡されてくる。勉強になった。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var loop = 2000000;
function test(d) {
var e = document.createElement('P');
e.appendChild(document.createTextNode(""+d+"msec"));
document.getElementById('d0').appendChild(e);
for(var i = 0; i < loop; ++i) ;
}
</script>
</head><body onload="setInterval(test, 100)">
<div id="d0"></div>
</body></html>

765 :Name_Not_Found:2009/04/09(木) 09:12:47 ID:???
>>758
こんな感じの使い方は許されない?w

window.onload = function () {
w = window.open();
w.document.open("text/html");
w.document.write("<html></html>");
w.document.close();
};

766 :Name_Not_Found:2009/04/09(木) 09:33:08 ID:???
>>765
まあまあ、揚げ足をとらなんだw

767 :Name_Not_Found:2009/04/09(木) 12:26:47 ID:???
同じウインドウって意味だろ

768 :Name_Not_Found:2009/04/09(木) 13:53:22 ID:???
>>763

>>743
> > setInterval() will pass the number of milliseconds late the callback was called into the callback function,

> 基本構造は
> setInterval() will pass the number of milliseconds into the callback function,
> (setInterval() はミリセカンド秒数をコールバック関数に渡します)

> そして "late the callback was called" が "the number of milliseconds" にかかっている。
> (あとでコールバックが呼ばれたとき)

> 全体では
> 『setInterval() はあとでコールバックが呼ばれたときにミリセカンド秒数をコールバック関数に渡します。』
> じゃないかなあ。

> ただ "late" の品詞がよくわかんない。ここでは『あとで』という意味の副詞だと思って訳したけど、違うかも。


769 :Name_Not_Found:2009/04/09(木) 14:17:35 ID:???
すみません、>>768 はミスです。

>>763
自分も late の解釈と the callback was called の掛かる場所でずっと悩んでまして、
辞書で「the number of days late(遅刻日数)」という表現を見つけました。
で、>>764氏の解釈を参考に、最終的に以下の 2つに分解して解釈しました。
総合的な解釈は >>764氏の通りです。

setInterval() will pass the number of milliseconds late into the callback function.
setInterval() はコールバック関数に遅刻した秒数(直訳)を渡す。

The callback was called several milliseconds late.
コールバックは数ミリ秒遅れて呼ばれた。


>>764
Firefox で確認しました。
完璧に理解できた気がします。
どうもありがとう。

770 :Name_Not_Found:2009/04/09(木) 14:21:04 ID:???
その訳だと「ミリセカンド秒数」が具体的に何を表しているのか
分からないと思うんだけど。「後で」だったら英語ではlater
とかにすると思うし。

771 :Name_Not_Found:2009/04/09(木) 14:21:48 ID:???
げげ、再びリロードorz

772 :Name_Not_Found:2009/04/09(木) 14:23:38 ID:???
おまえら仲良いな

773 :Name_Not_Found:2009/04/09(木) 14:37:59 ID:???
英語板の連中に聞いた方が早いと思うけど
こんな板のksじゃ翻訳できないだろ

774 :Name_Not_Found:2009/04/09(木) 15:22:25 ID:???
innerHTMLは代入されるたびにブラウザがパースかけるから
for文の中とかで使うとめっさ効率悪くなる。
for文中で innerHTML += str; とかもう最悪。
なるべくinnerHTMLへの代入は少なくするのが普通。

とはいえ、ブラウザは当然HTMLのパースが得意だから
長いHTMLを操作するときはDOMよりinnerHTMLを使う方が効果的。

775 :Name_Not_Found:2009/04/09(木) 15:44:05 ID:???
>>769
完璧に理解できたなら
わかりやすく例を交えて説明してちょ

776 :Name_Not_Found:2009/04/09(木) 18:40:51 ID:???
>>609-612
ありがとう
近いうちに実装してみる

>>668
業者じゃないよ
某板で使うスクリプトを趣味で書いてたところ

777 :Name_Not_Found:2009/04/09(木) 21:41:33 ID:???
JavaScriptは悪くない - 0x集積蔵
http://d.hatena.ne.jp/os0x/20090409/1239278316

778 :Name_Not_Found:2009/04/09(木) 22:07:33 ID:???
また宣伝か
日時からして作者降臨おつかれさまです

779 :Name_Not_Found:2009/04/09(木) 22:46:44 ID:???
ブクマ溜まってから晒せばいいのにw

ていうかブラウザのJSのevalが危険とか
JSレベルでXSSが起きるようなことを言うのはマユツバだと思う。


780 :777:2009/04/09(木) 23:42:47 ID:???
どうでもいいけど迷惑かけそうなんで一応宣伝だけ否定しておくよ

781 :Name_Not_Found:2009/04/09(木) 23:50:43 ID:???
>>779
半端な知識しかないなら黙ってればいいと思うよ

782 :Name_Not_Found:2009/04/09(木) 23:58:53 ID:???
深く同意

783 :Name_Not_Found:2009/04/10(金) 00:16:31 ID:???
>>780
嘘つけw作者おつかれさん^^

784 :Name_Not_Found:2009/04/10(金) 00:18:11 ID:Qw48MTI5
ブラウザの機能によってはjavascriptのコードを書き換えることができるみたいですが
書きかえられた場合を想定して、どのような対策を行えばよろしいでしょうか?

785 :Name_Not_Found:2009/04/10(金) 00:18:50 ID:???
ここまで全部777の自演

次の方どうぞ〜

786 :Name_Not_Found:2009/04/10(金) 00:23:34 ID:???
>>785
おまえリアルで人から避けられてるだろ

787 :Name_Not_Found:2009/04/10(金) 00:51:49 ID:???
>>784
気にしないのが一番

788 :Name_Not_Found:2009/04/10(金) 03:06:08 ID:???
DHTML時代のおっさんが顔を真っ赤にしていると聞いて

789 :os0x:2009/04/10(金) 04:13:59 ID:???
どうも作者です。
>>779
「JSレベルでXSSが起きる」ってホントにあるんですよ。
割と有名なので、AdobeのFlexでXSSが発見されたことがあるんだけど、
それがlocation.hashをdocument.writeで書き出してたってオチ。

790 :Name_Not_Found:2009/04/10(金) 05:00:00 ID:???
evalが危険って都市伝説だし

791 :Name_Not_Found:2009/04/10(金) 05:56:56 ID:???
        ____
       / \  /\ キリッ
.     / (ー)  (ー)\
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |        evalが危険って都市伝説だし
     \     `ー'´   /

        ____
       / \  /\ キリッ
.    +/ (●)  (●)\
    /   ⌒(__人__)⌒ \+   
    |              |  クスクス>
     \            /

        ____
<クスクス   / \  /\ キリッ
.     / (●)  (●)\
    /   ⌒(__人__)⌒ \ +  
    |              |        
   + \            /

792 :Name_Not_Found:2009/04/10(金) 06:35:11 ID:RToELolh
>>788
俺たぶんDHTML時代のおっさんなんだけど、
みんな、ぐにょぐにょ動かす系のJSはなんて呼んでる?

793 :Name_Not_Found:2009/04/10(金) 06:35:25 ID:???
んで何を意図して>>777を貼ったんだ?

794 :Name_Not_Found:2009/04/10(金) 06:37:54 ID:???
>789
そもそも砂箱になってないのが問題なのを、
ブラウザ実装のJSと同列に語られても困るわけだが。

795 :Name_Not_Found:2009/04/10(金) 07:02:23 ID:???
>>779
Type 0のXSS
ttp://en.wikipedia.org/wiki/Cross-site_scripting

いまだにセキュリティ意識の無いオメデタイ人間が結構居るらしい事が怖いね。

796 :Name_Not_Found:2009/04/10(金) 08:00:08 ID:???
jsなんてuser.jsでいくらでも上書き出来るのになんでevalだけ危険物扱いなんだ。 まじで分からん。

797 :os0x:2009/04/10(金) 09:37:42 ID:???
改めて言うまでもないと思うのだけど、素人ではない人が
適切にeval、with、document.writeを使うのはもちろん何の問題もないと思うよ。

ただ、初心者が失敗する可能性があるんだから、
この辺りは使わないほうが良いということにしておいて、
よくわかってない人は避けて、よくわかっている人は適切に使う。
っていうのが良いと思う。


798 :Name_Not_Found:2009/04/10(金) 10:07:36 ID:???
ふむふむ、素人がよく知りもしないで使うと危険ということか。 でもそれはevalに限らないよね。
ループ処理に使うものだってブラクラになり得るし。

799 :Name_Not_Found:2009/04/10(金) 10:11:31 ID:???
どなたか>>784お願いします

800 :Name_Not_Found:2009/04/10(金) 10:17:32 ID:???
>>799
黒板消しによって黒板の文字を書き換えることができるみたいですが
書きかえられた場合を想定して、どのような対策を行えばよろしいでしょうか?

801 :Name_Not_Found:2009/04/10(金) 10:56:19 ID:???
要するにユーザーの入力を単なる文字列では無く、
JavaScript的(あるいはDOM的)に意味のあるものとして利用するのは危険なので、
evalでもinnerHTMLでも、本当にその文字列を使って大丈夫かどうかを必ず意識する必要があるという事。
初心者云々は単に慢心を生むだけなので、初心者経験者は全く関係無い。

evalが嫌われるのは、代替手法が無いような本当に必要となる場面が少ない(JSON文字列をJSONオブジェクト化するなどくらい)ので、
わざわざリスクのある手法を回避したいという人間が多いからでは。

802 :Name_Not_Found:2009/04/10(金) 10:59:12 ID:???
evalの入力を書き換えられてしまう状況なら
evalを含むコード自体を差し替えられてしまう可能性があるんじゃないの?
eval自身がどれだけ危険かよく分からないのだが

803 :Name_Not_Found:2009/04/10(金) 11:20:53 ID:???
>>802=796か?
マジレスして良いものかどうか悩む所だけど、
ユーザーの個人的な環境で勝手にスクリプトを書き換えるような行為は自己責任。知った事では無い。
XSSの話とは全く別次元の話。

ブラウザベースゲームなどでスクリプトを改変されるチート的な行為への対応は、それともまた別問題だけど。

804 :Name_Not_Found:2009/04/10(金) 11:21:58 ID:???
初歩的な質問かもしれませんがcookieについてお尋ね
させて下さい。

履歴書作成を行うWEBサイトに本日アクセスしたのですが
で3ヶ月前に作成した個人情報がブラウザにアクセスした瞬間に
画面の各項目に自動で設定されたのですがこれはcookieに値を
保存させてJavaScriptで画面の格納項目に設定しているのでしょうか?

便利な反面ちょっと気持ち悪いです。
セキュリティー的にも問題がありそうなので、
cookieの削除を行えばこの様な事は無くなると考えても良いでしょうか?



805 :Name_Not_Found:2009/04/10(金) 11:29:34 ID:???
>>800
無知な人はスレが汚れるから俺みたいな回答者だけ答えればいい

806 :Name_Not_Found:2009/04/10(金) 11:30:42 ID:???
>>804
おk
そんな個人情報をクッキーに保存するクソサイトはさらしちまえよ

807 :Name_Not_Found:2009/04/10(金) 11:34:23 ID:???
まったくの初学なんだけど、お勧めの本とかあるかな?
Webサイト作るのに必要なhtmlとcssの知識ならある程度ある

808 :Name_Not_Found:2009/04/10(金) 11:35:47 ID:???
>>807
javascriptなら本買わんでもいい
一撃必殺で勉強していろんなもの書く練習しゅれば自然と身につく言語

809 :Name_Not_Found:2009/04/10(金) 11:43:58 ID:???
>>808
なるほど、ユーザビリティ向上させるうえでもこの機能が欲しい→一撃必殺で逆引き
みたいな感じで使ってく感じでも自然と身に付くかな
携帯の説明書も全部読むタイプだから一通り目を通して
どんな機能があるか知った方が良さそうね

810 :Name_Not_Found:2009/04/10(金) 11:45:15 ID:???
わからなくなったことを一個ずつ調べていき応用していく方が効率がいいかもしれないjsは

811 :796:2009/04/10(金) 11:48:56 ID:???
>>801
ユーザーが入力することが出来るWebサービスを作ることが出来るような人が
ユーザーが入力したものをevalに入れたりするかね。 もちろんこうならないように
注意することは必要なんだがこれが理由で ”evalは危険” と言うのはおかしな話だな。
まあでも言いたいことは分かる。

>>803
別人

812 :Name_Not_Found:2009/04/10(金) 12:03:38 ID:???
>>804はマルチ乙なんで気をつけてください

△▲ WebProg 初心者の質問 Part19 ▼▽
http://pc11.2ch.net/test/read.cgi/php/1236265877/475

475 名前:nobodyさん[sage] 投稿日:2009/04/10(金) 11:18:03 ID:???
初歩的な質問かもしれませんがcookieについてお尋ね
させて下さい。

履歴書作成を行うWEBサイトに本日アクセスしたのですが
で3ヶ月前に作成した個人情報がブラウザにアクセスした瞬間に
画面の各項目に自動で設定されたのですがこれはcookieに値を
保存させてJavaScriptで画面の格納項目に設定しているのでしょうか?

便利な反面ちょっと気持ち悪いです。
セキュリティー的にも問題がありそうなので、
cookieの削除を行えばこの様な事は無くなると考えても良いでしょうか?





813 :Name_Not_Found:2009/04/10(金) 12:06:32 ID:???
>>804
サーバに個人情報が保存されてるんじゃない? 良かったね^^v

814 :796:2009/04/10(金) 12:25:13 ID:???
<< ユーザーが入力することが出来るWebサービス >>

1. scriptタグをそのまま書き込める掲示板

2. URL欄に "javascript:〜" が書き込める掲示板

3. UA表示やリファラ表示にscriptタグを埋め込める掲示板

4. ユーザーが入力した文字列をevalに入れて出力する掲示板


1. あり得ない。 あったら大惨事。
2. たまに見かける。 クリックするとalertが無限ループで出るようにして荒らしたことがある。
3. Proxomitronを使って挿入して荒らしたことがある。 ページを開いた人をウイルスサイトに転送した。
4. 一度も見たことない。 誰か見たことある?

815 :Name_Not_Found:2009/04/10(金) 12:31:57 ID:???
>>814
どうやら本物の馬鹿か。

まあ本来なら有り得ない事を行っているサイトがあるから、
SQLインジェクションもXSSも無くならない訳で。

816 :Name_Not_Found:2009/04/10(金) 12:40:35 ID:???
eval(location.search.substring(1,str.length))
こんなソースが無い限りevalじゃどうやっても無理。
それにユーザーの入力値を式として評価するようなサイトなんて無い。する意味が分らない
サーバーサイドのXSSや文字コードが関わったりするSQLインジェクションとは全く別の問題

817 :796:2009/04/10(金) 12:44:56 ID:???
>>815
じゃあ何故evalが悪用されるケースは無くなってるの。 やっぱ都市伝説じゃないか。

>>816
だな。

818 :Name_Not_Found:2009/04/10(金) 13:32:49 ID:???
>>814
onなんとか がそのまま書けるもの
要するにタグが書けるものは
すべて JS 埋め込めるわけで

819 :Name_Not_Found:2009/04/10(金) 13:38:06 ID:???
ieだけjsが早くなる一行コードがあるけど
operaやfxやsafariではないんですか?

820 :Name_Not_Found:2009/04/10(金) 13:39:12 ID:???
>>796のズレっぷりに辟易

821 :Name_Not_Found:2009/04/10(金) 14:39:07 ID:???
某395さんですね、分かります

822 :796:2009/04/10(金) 14:47:38 ID:???
反論出来ないからとりあえず叩くっていう流れになってきてしまっているし、>>816氏は俺の言いたいことを
理解してくれてるし、もういいや。 叩きたい人は勝手にやってくれ。

俺はevalを積極的に使って便利になることが無いか研究してみる。
危険だと言われているせいで便利な使い方が見落とされてたり敬遠されてたりするかも知れない。

>>821
俺は395(笑)

823 :Name_Not_Found:2009/04/10(金) 14:56:53 ID:???
evalで評価する入力値が完全に自分の管理下にあるスクリプト
(ローカルに置いてある、オレ様だけが使うスクリプトなんだが)を
その旨(オレ様専用であること)書き添えた上で晒した時に
「入力値をevalするのは危険なので止めた方がいいお^^」とか
したり顔で言ってきた馬鹿はいたけど

硬直化してるっつーか、
何がどう危険なのかを考える事を放棄した思考停止君ってのは確かに居る、
ほとんど「eval危険教」みたいな

824 :Name_Not_Found:2009/04/10(金) 17:01:10 ID:???
eval?なにそれ うはwww便利wwww
        ↓   危険性を散々叩き込まれる
evalとかwww入門者はクソして寝ろwwww
        ↓   危険性はあらかた理解して回避できる
これだから嫌eval厨は。evalには未知の可能性がある
        ↓   (上級者の壁)
もうみんな知ってるからいちいち声出さなくていいよ

825 :Name_Not_Found:2009/04/10(金) 17:05:18 ID:???
evalの危険性がある云々より
しっかり作ってれば使う機会がない件

826 :Name_Not_Found:2009/04/10(金) 17:17:57 ID:???
JSON使うのでevalは頻繁に使うな

827 :Name_Not_Found:2009/04/10(金) 17:32:58 ID:???
>>825
JavaScriptでコンパイラやインタプリタ作るとき、
コードがJavaScriptのソースに変換されるようにするのが普通だと思うのだが
なんで使う機会が無いと思えるのか、俺にはそっちのほうが不思議なんだが…。

828 :Name_Not_Found:2009/04/10(金) 17:50:30 ID:???
eval is evilという言葉があるのは知ってるが
あまり理解できない

829 :Name_Not_Found:2009/04/10(金) 18:40:46 ID:???
>>822
>ページを開いた人をウイルスサイトに転送した。
のように書いて叩かれないスレの方がむしろ異常。

evalはCのgotoと同様に、宗教上?の理由で嫌われているのと同様だろ。
>>801で書いたように、危険性からするとinnerHTML操作と大差無い。

830 :Name_Not_Found:2009/04/10(金) 19:33:06 ID:???
>>829
スルーする能力がないと2ちゃんではやってけない

831 :Name_Not_Found:2009/04/10(金) 19:53:36 ID:???
>>830
それはスルー能力とは違うな。
素人の質問を煽るしか出来無い臭いテンプレ厨の逃げの言い訳。

832 :Name_Not_Found:2009/04/10(金) 20:27:37 ID:???
スクリプト言語の利点を危険危険言って潰そうとするのもなあ

833 :Name_Not_Found:2009/04/10(金) 20:37:48 ID:???
C言語のポインタはメモリを壊す危険性があるので使ってはいけない。

危険厨的にはこうですか?

834 :Name_Not_Found:2009/04/10(金) 20:47:02 ID:???
>>831
で、君は何を求めてるわけ?

835 :Name_Not_Found:2009/04/10(金) 21:16:14 ID:???
正当な見解じゃね

836 :Name_Not_Found:2009/04/10(金) 21:33:28 ID:???
はとにかく手当たりしだい誰かを攻撃したい愉快犯じゃね
何が言いたいのかさっぱりわからないし荒れるだけだから>>831は以後スルー推奨

837 :os0x:2009/04/10(金) 22:41:26 ID:???
ど、どうも。
折角なので、もう一点だけ。evalについてもリスクと使い道について書いておきます。

evalは(>>826も書いているように)XMLHttpRequestで取ってきたJSONを扱うときによく使われてます。
実際、prototype.jsもjQueryもevalを使っています。
XMLHttpRequestだから自分のサーバーから取ってきたJSONで絶対安全!
と言い切れるなら良いのだけど、動的に取ってくるってことは大抵DBから取ってくるわけで、
DBに入ってるのは割とユーザーが入力したものだったりするわけで、リスクがあることが多いわけですよ。

だから、JSONはevalじゃなくて json2.jsを使ってパースすることが推奨されてます。
http://www.json.org/js.html

で、繰り返しになるけどリスク等々を理解しているならeval使うのも全然アリだと思いますよ。

あ、withはどうでもいいよね。

838 :Name_Not_Found:2009/04/11(土) 01:03:07 ID:???
さっきまで使えていたjsを急に読み込まなくなるという現象が起きてますが、
原因として考えられることってありますか?
1日経過しましたが、原因判明せず
いじってたのはhtmlだけで、しかもアタマの方などは全く触ってないのに
なぜだ!なぜだ!なぜだ!

839 :Name_Not_Found:2009/04/11(土) 01:05:35 ID:???
君がバカだからだよ

840 :796:2009/04/11(土) 02:00:25 ID:???
俺的にはサーバから受け取ったデータをevalに入れようとする発想が理解出来ないや。
そんなの危険に決まってるじゃないかと。

言いたい事は伝わったようなので消えまつ。 お騒がせしてすみませんでした。

841 :Name_Not_Found:2009/04/11(土) 02:42:55 ID:???
>>840
だからさ、JSON の時はって、みんな言ってるじゃん?
ストリングのままじゃどうしようもないでしょ。

842 :Name_Not_Found:2009/04/11(土) 02:52:08 ID:???
ほんときみはバカだな

843 :Name_Not_Found:2009/04/11(土) 04:09:00 ID:???
JSONなら安全だと思ってんのか。。

844 :Name_Not_Found:2009/04/11(土) 04:18:46 ID:???
結局、>>832-833の言うような人間はここまで1人も現れていないのに
周りがみんなそう見えてしまうのが自称中級者のやかましさ

845 :Name_Not_Found:2009/04/11(土) 04:21:50 ID:???
ミス

周りがみんなそう見えてしまう自称中級者のやかましさ(にうんざり)

846 :Name_Not_Found:2009/04/11(土) 04:30:10 ID:???
でも、実際どこまでやっとけばevalはセーフティに使えるんだ?

HTMLの生成は、PHPで言えば htmlspecialchars と urlencode でエンコードしてやれば
十分って認識なんだけど、evalはイマイチわからん。

数値としての文字列は数値に変換してから使うのと、' を \' に \を\\ にしてやるぐらいで良いんかな。


847 :Name_Not_Found:2009/04/11(土) 04:30:44 ID:???
分かったからゴミブログの更新でもしてなよ。

848 :Name_Not_Found:2009/04/11(土) 07:01:23 ID:???
>>838
とりあえず firefoxとかで本当に読み込んでいないのか、エラーとか出てないか見たら?

849 :Name_Not_Found:2009/04/11(土) 07:07:46 ID:???
読み込む前か途中でエラー出て止まってるんだろうね

850 :Name_Not_Found:2009/04/11(土) 08:35:31 ID:???
レスありがd 
ff使ってるけどぜんぜん読んでないし、別パソのieでも読んでない
読み込む前と途中のエラー、もう一度洗ってみます そんなトコさ割ってなかったのになぜだー!

851 :Name_Not_Found:2009/04/11(土) 08:48:52 ID:y8vG+mVj
>>850
HTTP的に問題があるのか、JS的に問題があるのか、で前者ならスレ違いだよ。
script要素のsrc属性で指定したurlをブラウザで直撃しても返ってこない、とかなら前者。

852 :Name_Not_Found:2009/04/11(土) 09:07:01 ID:???
<link rel="stylesheet" type="text/css" href="http://っっっっ.com/css/っっっっcss.css" media="screen" />
<script type="text/javascript" src="http://っっっっ.com/js/っっっっ.js"></script>
これでcssしか読んでくれません
ウィルスとか、外部からナニカされたとか、そういう原因も考えられるのかなと思って・・・
別サイトに同じjsファイル使って動いているので、まずスレ違いは間違いないみたい
ありがとう >>851

853 :Name_Not_Found:2009/04/11(土) 09:26:02 ID:???
>>852
お前は人のアドバイスを全く読まないんだな

854 :Name_Not_Found:2009/04/11(土) 09:30:01 ID:???
script要素のsrc属性で指定したurlをブラウザで直撃
って、
<script type="text/javascript" src="http://っっっっ.com/js/っっっっ.js"></script>
のことじゃないの?

855 :Name_Not_Found:2009/04/11(土) 09:37:38 ID:???
あ、罵倒されて意味が分かった アドレスに直接入れてみるってことか
そうすると、スクリプトが見えます

var fade = 0;
var interval = 100;
var obj;
function fade_in(){
if(fade <= 10){
obj = document.getElementById("bag");
obj.style.filter = "alpha(opacity=" + (fade * 10) + ")";
obj.style.MozOpacity = fade / 10 ;
obj.style.opacity = fade / 10 ;
fade++;
setTimeout('fade_in()',interval);
}}

<body onload="fade_in();">で呼んでるはずなんですけど


856 :Name_Not_Found:2009/04/11(土) 10:15:35 ID:y8vG+mVj
>>855
そもそも何を根拠に「読まれていない」と判断したのか。っっっっ.jsの内容を
function fade(){ alert('ゆとり乙'); };
だけにして、<body onload="fade();">
って書いて、alertが出るなら、JSファイルの読み込みは失敗していないよ。


あ、今気づいたけど、JSエラーが発生したらそれが報告される環境でやってるんだよな?
document.getElementById("bag")が何も返していないとか、そんなオチはいらんぞ。

857 :Name_Not_Found:2009/04/11(土) 10:15:59 ID:???
>cssしか読んでくれません
本当にそうなのか?もし
<body onload="alert(interval);">
で、100と表示されたらHTMLの問題

858 :857:2009/04/11(土) 10:17:30 ID:???
>>856とかぶってた(汗)

859 :Name_Not_Found:2009/04/11(土) 10:23:24 ID:???
>>856
bodyにonload書くとかどんだけゆとりなんだか

860 :Name_Not_Found:2009/04/11(土) 11:21:02 ID:???
ゆとり乙、100、出ました! 

「jsファイルを読み込むことには成功しているけどhtmlに問題がある」
bodyの中身を<p>っっっっっっっっっ</p>だけにしても改善されないようなので
js呼び出し以降でっっっっ前となると、
</head><body onload="fade_in();">のどこかに問題が?
bodyにonloadがゆとりでしょうか


861 :Name_Not_Found:2009/04/11(土) 11:26:13 ID:???
>>860
>bodyの中身を<p>っっっっっっっっっ</p>だけにしても改善されないようなので

・・・


・・・






・・・(´・ω・`)

862 :Name_Not_Found:2009/04/11(土) 11:27:32 ID:???
(´・ω:;.:...

863 :Name_Not_Found:2009/04/11(土) 11:27:41 ID:y8vG+mVj
>>860
> bodyの中身を<p>っっっっっっっっっ</p>だけにして

ん?
このfade_in()は君が書いたものではないの?
それで動くわけないじゃん。もう一度書くが、

document.getElementById("bag")が何も返していないとか、そんなオチはいらんぞ。



> </head><body onload="fade_in();">のどこかに問題が?

そのうちわかる。今はそれでもいいよ。

864 :Name_Not_Found:2009/04/11(土) 11:52:14 ID:???
> bodyの中身を<p>っっっっっっっっっ</p>だけにして
>>855 のJavaScriptを理解して無いことは分かった。勉強しなおせ。
JavaScriptの指定とbodyの中身が一致してないと動くわけないだろう。

865 :Name_Not_Found:2009/04/11(土) 11:54:08 ID:???
bag

866 :Name_Not_Found:2009/04/11(土) 11:54:47 ID:???
あーーーーーーーーーーーん わかりました!
document.getElementByIdのあとのカッコ内のidの指定が、別サイトのidになってました
すみません、そういうオチみたいです。。。

body onloadがゆとりの件も、検索して対処します
みなさん親切につきあってくれてありがd
おもしろい javascript

867 :Name_Not_Found:2009/04/11(土) 11:56:57 ID:???
イベントリスナの変遷
1. <body onload="hoge();">
2. window.onload = "hoge();"
3. window.onload = hoge;
4. window.addEventListener("load", hoge, false);
5. window.addEventListener("load", function() {hoge();}, false);

4辺りからIE氏ねが口癖になる

868 :Name_Not_Found:2009/04/11(土) 12:36:35 ID:???
6. Micorosoft 「addEventListenerの第3引数なんて都市伝説ですよ」 ← 今ここ?

869 :Name_Not_Found:2009/04/11(土) 12:38:55 ID:???
Micorosoftに振り回されずに 1 を使い続けるのが一番賢いのかもな

870 :Name_Not_Found:2009/04/11(土) 12:42:24 ID:???
あの、CSSもHTMLも何もかも付け焼き刃でしか対処しない
糞ブラウザなんていっそのこと無視してサイト作ればいいと思うよ

Webkit と Geckoで見られればそれでほぼ標準準拠だし

871 :Name_Not_Found:2009/04/11(土) 12:46:13 ID:???
>>869
まったく賢くない

872 :Name_Not_Found:2009/04/11(土) 12:51:05 ID:???
>>871
何故?

873 :Name_Not_Found:2009/04/11(土) 13:01:20 ID:???
body window onload 違い でぐぐれかす

874 :Name_Not_Found:2009/04/11(土) 13:06:48 ID:???
脳内で勝手にdocument.body.onloadに変換してました。
タイミングがどっちでもいいなら1がいいよね。

875 :Name_Not_Found:2009/04/11(土) 13:11:42 ID:???
>>873
最低の記事ばかり出てきて目が汚れたわ。責任取れ。

876 :Name_Not_Found:2009/04/11(土) 13:24:48 ID:???
deferでよくね?

877 :Name_Not_Found:2009/04/11(土) 13:28:10 ID:???
<button onclick=みたいなのを書く奴も池沼
今時onclickとかhtmlに書くのはダサすぎ

878 :Name_Not_Found:2009/04/11(土) 13:32:05 ID:emiK/aPx
>>877
Micorosoftに振り回されてる人ですね、分かります。

ただ、他人にそれを押し付けないように。

879 :Name_Not_Found:2009/04/11(土) 13:47:08 ID:???
ウィンドウ内でDIV要素の端をドラッグドロップ移動させる処理を作ったのですけど、

マウスボタンを押したままの状態でSPANなどの文字要素の上を通過した時に
通過した文字が選択(反転)状態になってしまって困っています。

IEでは.unselectableを設定して回避できるのですが
Firefoxで選択状態にならないようにする方法はありますか?


880 :Name_Not_Found:2009/04/11(土) 13:51:29 ID:???
>>879
ドラッグ周りのイベントをwindowだかdocumentだかでまとめて補足して
対象のdivだったらドラッグ処理してreturn false;とすれば大丈夫な気がする。

881 :Name_Not_Found:2009/04/11(土) 14:01:59 ID:???
>>878は見えない敵と戦ってるようですね


882 :879:2009/04/11(土) 14:23:47 ID:???
>>880
イベント処理はdocumentのonmousemove、onmouseout、onmouseupにまとめています。
> return false;とすれば大丈夫な気がする。
これはどういう意味でしょうか?
イベント処理関数をreturn false;で終わるようにしても変化は無かったです。


883 :Name_Not_Found:2009/04/11(土) 14:32:43 ID:???
気がする=知ったかぶり

884 :Name_Not_Found:2009/04/11(土) 14:42:08 ID:???
>>882
false返すのはこれと同じような意味。
https://developer.mozilla.org/ja/DOM/event.preventDefault

onmousedownでやってないからダメなんだと思う。
少なくともFx3はこれで範囲選択を抑制できる。
window.onmousedown = function() { return false; }


885 :Name_Not_Found:2009/04/11(土) 14:47:59 ID:???
チャットみたいな上下に別れたフレームがあったとして
上フレームからボタンを押したとき
下フレームの背景画像を変えるっていうの

これって下フレームが自分で作ったわけじゃない
別サイト(チャットなど)でも可能なの?

886 :879:2009/04/11(土) 14:54:53 ID:???
>>884
ありがとうございます。できました。

文字の選択開始を潰す発想なのですね。
document.onmousedown でもいけるようです

887 :Name_Not_Found:2009/04/11(土) 14:59:45 ID:???
>>885
セキュリティの都合で無理

888 :Name_Not_Found:2009/04/11(土) 15:06:32 ID:???
>>887
何が言いたいかって
チャットの背景を所謂裏フレーム作成して
そこからボタンなど作って変更できるかってことなんだけど

実際出来てる奴が居たから聞いたんだけど
お前らじゃ無理かwwwwwwwwwwwwwwww

889 :Name_Not_Found:2009/04/11(土) 15:11:07 ID:???
>>888
義務教育を終える前に日本語と礼儀を勉強し直した方がいい。

890 :Name_Not_Found:2009/04/11(土) 15:12:39 ID:???
>>888
つまりそのチャットに悪戯したいってことですよね
仮に出来る人がいたとしても
そんな態度じゃ誰も対応してくれませんよ

891 :Name_Not_Found:2009/04/11(土) 15:14:51 ID:???
>>888
iframeで読み込んでiframeにスタイル指定したらいい

892 :Name_Not_Found:2009/04/11(土) 15:20:02 ID:???
>>891
>>887 の理由で無理では

893 :Name_Not_Found:2009/04/11(土) 15:28:04 ID:???
>>888
出来るよ。GMで。

894 :Name_Not_Found:2009/04/11(土) 15:34:08 ID:???
>>892
読み込まれるHTMLのbodyにbackground-color:transparentが指定されていれば
ドメインとか関係なくiframeの背景指定が適用されることをfirefoxで確認した


895 :Name_Not_Found:2009/04/11(土) 15:40:08 ID:???
>>894
ああ、それなら最近使って遊んだばっかだ。

896 :Name_Not_Found:2009/04/11(土) 15:46:29 ID:???
>>894
そういう親フレームに依存しますよ宣言がしてあるという限定条件があるならできるのだろうな
でも、そうなってるならここで質問するまでも無いだろうが

897 :Name_Not_Found:2009/04/11(土) 16:09:17 ID:???
>>888
同一ドメインならできる
君は何か勘違いしてる

898 :Name_Not_Found:2009/04/11(土) 16:10:57 ID:???
実際出来てるやつに聞けばいいんじゃね

899 :Name_Not_Found:2009/04/11(土) 16:25:27 ID:???
出来てるやつを見たのならソース読めばいいのになw

900 :Name_Not_Found:2009/04/11(土) 20:04:35 ID:???
イベントを追加するときって

・addEventListener
・attachEvent
・on〜

のどれかで対応させてる書き方をよく見かけますが、NN4のcaptureEventsをこの仲間に入れなくてもNN4で動きますか?
それとももう切り捨てていいという考え方が主流なんでしょうか?

901 :Name_Not_Found:2009/04/11(土) 20:18:13 ID:???
>>900
>NN4

誰も使ってないから、切り捨てでおk

902 :900:2009/04/11(土) 20:53:41 ID:???
>>901
分かりました、どうもありがとうございました。

903 :Name_Not_Found:2009/04/11(土) 23:21:31 ID:???
アホな質問かもしれませんが、イベントハンドラで
一度に呼び出すスクリプトを二つ設定することってできるんですかね?

904 :Name_Not_Found:2009/04/11(土) 23:24:57 ID:???
スクリプト?
function のことなら可。
少し上のレス読めば分かる。

905 :Name_Not_Found:2009/04/11(土) 23:37:19 ID:???
ありがとうございます読んできます。

906 :Name_Not_Found:2009/04/12(日) 01:18:55 ID:???
NN4はもう切り捨てて良いって説明してこいよいいかげn

907 :Name_Not_Found:2009/04/12(日) 13:09:36 ID:???
WEBサイト作成用にJavaScriptの勉強したいんだけど、上に出てた一撃必殺って
サイトとは別に本使いたいんだけど何かいいものあるかな?
過去スレも読んでいくつかピックアップしてみた
・初めてのJavaScript
・DOM Scripting 標準ガイドブック
・WebクリエイティブのためのDOM Scripting
・基礎 Ajax + JavaScript
・基礎からのJavaScript
・入門 JavaScript
・JavaScript: The Good Parts
赤本だけ買って使わない心理に似てる感が否めないけども

908 :Name_Not_Found:2009/04/12(日) 13:16:36 ID:???
オライリー

909 :Name_Not_Found:2009/04/12(日) 13:25:57 ID:???
>>907
今のスキル書かないとアドバイスしようがないんじゃない?
他言語の経験とか


910 :Name_Not_Found:2009/04/12(日) 13:27:43 ID:???
>>907
MDC

911 :Name_Not_Found:2009/04/12(日) 13:31:22 ID:???
>>908
オライリー本は必要だとわかってるけどモチベーションが低下しそうで食わず嫌い
>>909
他言語経験はまったくないですorz

912 :Name_Not_Found:2009/04/12(日) 13:48:55 ID:???
うん、経験は関係ないな

913 :Name_Not_Found:2009/04/12(日) 14:41:52 ID:???
・初めてのJavaScript
・JavaScript: The Good Parts
この2つはオライリーじゃなかったっけか

オライリー嫌いでも、サイ本はあった方がいいよ
読まなくても辞書的な感じに
まぁ、ちょっとやってみる程度だったら敷居が高いかもしんないけどね

914 :Name_Not_Found:2009/04/12(日) 14:46:56 ID:???
触る程度ならネットで十分

915 :913:2009/04/12(日) 14:54:42 ID:???
ちなみにオレは初心者には
「JavaScript+Ajax プログラミング・テクニック」メディア・テック出版
を勧めてる。
リテラル関連も纏まってるし、JavaScriptとオブジェクトの関係がよく分かる。
如何せん誤植が多いのだけが玉に瑕だが。

て言うか、上記の本は絶版になったのか?
いろんなところで入手不可になってるし、メディア・テックのサイトもアクセスできないし。

916 :Name_Not_Found:2009/04/12(日) 15:11:06 ID:???
初心者に毛が生えた程度でこれから主要な処理を一通り理解するつもりなら
「JavaScriptポケットリファレンス」を薦める。
1命令毎に使用例のサンプルが付いてる。
俺が買ったのは10年ほど前になるが改訂版が出てたはず。

917 :Name_Not_Found:2009/04/12(日) 15:15:39 ID:???
>>915
去年 10月に倒産したらしい。
知らんかったw

918 :907:2009/04/12(日) 15:25:58 ID:???
>>915
実はコレを買いに行って倒産してますって言われた\(^o^)/

919 :Name_Not_Found:2009/04/12(日) 15:38:50 ID:???
ajaxで検索するページを作ったけどキーワード入れて検索してもURLが変わらないから
検索結果をお気に入りに入れても検索結果TOPのURLが開くだけなんだけどなんか言い方法ないかね。

920 :Name_Not_Found:2009/04/12(日) 15:40:19 ID:???
検索してもURLが変わらない例
http://www.google.com/uds/samples/apidocs/image.html

921 :Name_Not_Found:2009/04/12(日) 16:15:51 ID:???
ページに埋め込むAPIなんだからURL変わったら困るだろ

922 :Name_Not_Found:2009/04/12(日) 16:16:35 ID:???
>>919
location.href = "#" + encodeURIComponent(searchWord);
searchWord = decodeURIComponent(location.hash.slice(1));
とかは?

923 :Name_Not_Found:2009/04/12(日) 16:19:23 ID:???
>>921
うん、だから困ってる。 検索サイトには不向きだね。

>>922
ありがとう、いじってみる。

924 :913:2009/04/12(日) 19:07:00 ID:???
>>917-918
ちょ、マジっすか・・・
結構面白い本出してたのに
VBScriptでもお世話になった

925 :Name_Not_Found:2009/04/12(日) 20:45:39 ID:0OrYuPqw
iframeの中のwindowをcontentWindowで取れますが、逆にiframeの中のwindow
からそのiframeのエレメントを取得するにはどのようにしたらよいのでしょうか?

926 :Name_Not_Found:2009/04/12(日) 20:55:43 ID:???
>>925
window.parent

927 :Name_Not_Found:2009/04/12(日) 21:11:39 ID:???
ん?
中から自分の要素取るならwindow関係ないだろ

928 :Name_Not_Found:2009/04/12(日) 21:20:25 ID:???
window == document.getElementsByTagName('iframe')[0].contentWindow.parent
っていう話だと解釈したけど。

929 :Name_Not_Found:2009/04/12(日) 21:27:20 ID:gcQ4CZGO
window.onload = function(){
for (var i=0, len=3; i<len; i++) {
test();
}
};

hogehoge = [];
function test(){
var p = hogehoge; //@
var j = p.length;
p[j] = j; //B
}

変数jが0→1→2という結果になるのですが
どうしてそうなるか今一よくわからないので
詳しい方教えてください。

@でpにはhogehogeと同じ参照先(アドレス)がコピーされました。
なのでBでp[j]に値を格納した事は、hogehoge[j]に格納した事と同じこと。
でよいのでしょうか?


930 :Name_Not_Found:2009/04/12(日) 21:33:51 ID:???
よいよ

931 :Name_Not_Found:2009/04/12(日) 21:34:13 ID:???
参照渡しだからな。

932 :Name_Not_Found:2009/04/12(日) 21:38:39 ID:???
>>930>>931
ありがとうございます。
参照渡しの概念に早く慣れたいと思います。


933 :Name_Not_Found:2009/04/12(日) 21:55:59 ID:0OrYuPqw
>>926-928
ありがとう御座います。分りました。

度々すみませんが、iframeの枠線の幅が取得出来ないのですがどのようにすれば分るのでしょうか?
CSSのborderや、単純にエレメントのborderを取得しても幅が取れませんでした。
どのようにすればよいのでしょうか?

934 :Name_Not_Found:2009/04/12(日) 22:01:00 ID:???
>>933
どうやって「取得」してるの。
FAQ >>4 のQ10/A10は読んでいるんだよね?

935 :Name_Not_Found:2009/04/12(日) 22:12:21 ID:???
>>933
function $s(e){//defaultView
try{
return e.currentStyle || document.defaultView.getComputedStyle(e,'');
}catch(e){
return false;
}
};

alert($s(document.getElementById("test")).[プロパティ]);

<iframe src="http://google.co.jp" id="test"></iframe>

[プロパティ]にcolorとかborderとか書くと”今”設定されている値がアラートで出る

936 :Name_Not_Found:2009/04/12(日) 23:11:24 ID:0OrYuPqw
>>934-935
ありがとう御座います。取れました。
borderってじゃダメなんですね。borderTopWidth等々で取れました。

937 :Name_Not_Found:2009/04/12(日) 23:50:20 ID:???
弾って野郎いろんなブログにトラックバック送りつけてアフィで稼ごうとしてるのかね
被害者ttp://d.hatena.ne.jp/amachang/20070912/1189586296
加害者ttp://blog.livedoor.jp/dankogai/archives/50911084.html

938 :Name_Not_Found:2009/04/12(日) 23:55:21 ID:???
どっちも有名人じゃね?

939 :Name_Not_Found:2009/04/13(月) 00:02:28 ID:???
>>936

content="";
for(i in $s(document.getElementById("test"))){
content+=i+" : "+$s(document.getElementById("test"))[i]+";\n";
}
alert(content);
こんな感じに書いたら適用されてるスタイルが全部取れるね

940 :Name_Not_Found:2009/04/13(月) 00:47:26 ID:???
>>937
お前、病院行け、病院!

941 :Name_Not_Found:2009/04/13(月) 02:10:16 ID:???
>>910
MDCってなんぞ?

942 :Name_Not_Found:2009/04/13(月) 02:12:55 ID:???
>>941
ググレカスと言わざるをえないw
ただリファレンスとしては便利だけど入門向きじゃない。

943 :Name_Not_Found:2009/04/13(月) 03:24:01 ID:???
>>937
間違いを間違いだと指摘してくれる人というのは必要だと思うんだよね。
でないと間違いのままそこで止まってしまう。

ただ、明らかに勉強不足な書き込みもちらほら。 これで食っていけるんだとびっくりしたことがある。

944 :Name_Not_Found:2009/04/13(月) 05:52:53 ID:???
> ただ、明らかに勉強不足な書き込みもちらほら。 これで食っていけるんだとびっくりしたことがある。

さすが自称「プロのjs書き」さん、かっけーw

945 :Name_Not_Found:2009/04/13(月) 05:56:39 ID:???
なんで 0==null と ""==null はfalseなのに、0=="" はtrue なんだよ。
違う型で比較したおれもアレだが、かんべんしてくれ。

946 :Name_Not_Found:2009/04/13(月) 06:10:32 ID:???
>>944
どちらかというとプロのphp書きです。

947 :Name_Not_Found:2009/04/13(月) 10:54:13 ID:???
>>945
===でも使っとけ

948 :Name_Not_Found:2009/04/13(月) 10:56:04 ID:???
暗黙的 型変換 javascript

949 :Name_Not_Found:2009/04/13(月) 11:01:32 ID:???
分けの分からん事をお尋ねして申し訳ないのですが、

私は今日からPHPの勉強を始めたのですが、
どんな事ができるようになれば、”私はPHPが使える”って、言えるようになりますか?

950 :Name_Not_Found:2009/04/13(月) 11:05:37 ID:???
しまった、もう950じゃん。テンプレ論議あれば急いでどぞ。
でも簡単なもの以外は結論出ないだろうと思われ。
次スレは975超えたら。

951 :Name_Not_Found:2009/04/13(月) 11:10:44 ID:OKteWAxm
>>949
なぜここで。
あと、そんなもん、いったもん勝ちだって。


マジレスすると、PHPで2chブラウザ作って、って言われて
はい、いつまでに出来ますって目安がはかれて、
実際にその期間で作れれば、使えるっても言っていいんじゃ?

952 :Name_Not_Found:2009/04/13(月) 11:49:42 ID:???
>>937
どちらも有名なカスブロガーです。

953 :Name_Not_Found:2009/04/13(月) 12:10:39 ID:???
>>951
2chブラウザならwebアプリなら1日もかからない件

954 :Name_Not_Found:2009/04/13(月) 12:12:33 ID:???
>>953
iframeで実装すれば1分で終わる件

955 :Name_Not_Found:2009/04/13(月) 12:16:49 ID:???
「PHPできます」と履歴書に書くとマイナスとかなんとか

956 :Name_Not_Found:2009/04/13(月) 12:23:13 ID:???
949がPHP6の開発に取り組むようです

957 :Name_Not_Found:2009/04/13(月) 12:27:56 ID:???
PGP最強

958 :Name_Not_Found:2009/04/13(月) 14:20:30 ID:OKteWAxm
>>953
すげーな。
●とかbeとか、既読とかお気に入りとか、俺は一日じゃ無理だわ。

959 :Name_Not_Found:2009/04/13(月) 14:27:44 ID:???
>>958
そんな機能で足踏みするようならレベルが低杉

960 :Name_Not_Found:2009/04/13(月) 15:24:13 ID:???
https://developer.mozilla.org/ja/nsIDOMFileList
このコードをコピペして動かしてみたけど
TypeError: document.getElementById("file").fileList is undefined
とエラーが出て動作しない
仕様変わったのかな

961 :Name_Not_Found:2009/04/13(月) 15:50:41 ID:???
>>960
XPCOM関連でしょ、アドオンとかそっち用。

962 :Name_Not_Found:2009/04/13(月) 16:06:20 ID:???
Englishに変えたら
〜.fileList[0]が〜.files[0]になってた、誰か更新してあげてよ

963 :Name_Not_Found:2009/04/13(月) 17:10:18 ID:???
>>941
Mozilla Developer Center

>>945
==には比較の決まりがある。
その決まりに当てはまらないときはfalseと判定される。
0==null と ""==null は決まりに当てはまらないのでfalseになる。
nullは特別な値であって、未定義値と比較されるとtrueになる。

0=="" は次のような決まりがある。
まず数値と文字列が比較されたとき、文字列側が数値に変換される。
JavaScriptの暗黙的自動型変換によって、空文字列は0に変換される。
そして変換後比較したとき 0==0 となりtrueになる。


964 :Name_Not_Found:2009/04/13(月) 17:19:43 ID:???
>>962
試しにfiles[0]にしてみたら動くじゃねーかwwww

965 :Name_Not_Found:2009/04/13(月) 17:55:35 ID:???
>>963
なるほど。整理できた。ありがとう。

966 :Name_Not_Found:2009/04/13(月) 18:05:59 ID:???
>>964
うわほんとだ。誤情報すまん。

967 :Name_Not_Found:2009/04/13(月) 19:15:43 ID:???
$=function(e){return document.getElementById(e)};
for(i=0;i<5;i++){
$("test"+i).onclick = function (){alert(i)}
}
このように書いたのですがalertが全部5になります。
違う値を入れるにはどうしたら良いのでしょうか。
この例ではiは5までですが実際は可変です

968 :Name_Not_Found:2009/04/13(月) 19:21:08 ID:???
>>967
 for(…) { …} を
for(…) function(i) { … }(i); と書き換えるだとか。

しかし、それはJavaScriptでは基本中の基本。
あなたには「JavaScript The Good Parts」を一読することを勧める。

969 :Name_Not_Found:2009/04/13(月) 20:05:21 ID:???
>>968
出来るようになったよありがとん

970 :Name_Not_Found:2009/04/13(月) 20:07:49 ID:???
$("test"+i).onclick = function (){alert(+this.id.slice(4))}

971 :Name_Not_Found:2009/04/13(月) 22:04:58 ID:???
C#のフォームから下記のScriptを記入したローカルHTMLを読み込み
内部のfunctionをInvokeScriptから実行しているのですが

まず下のようなシンプルなもので試したところきちんと値が戻ってきたのですが
function test(text)
{
return("return:" + text);
}

returnの前に
var geocoder;
geocoder = new GClientGeocoder();

を追加するとGClientGeocoderが宣言されていないというスクリプトエラーが出ます
これの解決策はどうすればいいのでしょうか?



972 :Name_Not_Found:2009/04/13(月) 22:27:02 ID:???
GClientGeocoderを宣言する

973 :Name_Not_Found:2009/04/13(月) 22:29:33 ID:???
>>971
それはたぶんこっち。
(^ω^) JScript .NET スレッド Part2
http://pc12.2ch.net/test/read.cgi/tech/1194001483/

974 :Name_Not_Found:2009/04/13(月) 23:50:23 ID:???
>>973
スレ誘導感謝します

お目汚し失礼しました

975 :Name_Not_Found:2009/04/14(火) 05:04:07 ID:???
JavaScript The Good Parts
http://blog.livedoor.jp/dankogai/archives/51154832.html

976 :Name_Not_Found:2009/04/14(火) 07:05:29 ID:???
>>975
これたびたびスレで勧めてる人がいるけど
サイ本持ってる人間が読む価値ある?

977 :Name_Not_Found:2009/04/14(火) 07:30:12 ID:???
>>976
十分あると思うよ。

サイ本よりはJavaScriptの良いところがわかりやすく解説されてる。
ベストプラクティスっぽいと思う。

978 :Name_Not_Found:2009/04/14(火) 07:50:27 ID:???
本は知らんが、ブログはなんか気持ち悪い。

979 :Name_Not_Found:2009/04/14(火) 09:51:39 ID:???
>>976
書いたのは ECMAScript 5 作業チーム 兼 Yahoo! のなかのひと
ECMAScript 5 仕様に関する記述もある
たとえば The Good Parts の 6.5 を読むと、どうして ECMAScript 5 に Array.isArray (15.4.3.2) が追加されたかがわかる

980 :Name_Not_Found:2009/04/14(火) 10:18:28 ID:???
>>975
まったく弾は朝っぱらから宣伝ですかw
しかもアフィページに誘導www

981 :Name_Not_Found:2009/04/14(火) 11:19:46 ID:???
var obj = document.getElementById('hoge');
var grep = new RegExp(obj.value, 'i');

<input id="hoge" type="text">から受け取った値を、
内部で照会するようなプログラムを作っているのですが、
*や+など正規表現で使用する記号等が入力されるとエラーが出てしまいます。
何か簡単な解決方法はないでしょうか?

982 :Name_Not_Found:2009/04/14(火) 11:23:18 ID:???
当たり前じゃん
RegExpに突っ込む前に、バックスラッシュでエスケープするように置き換えとけ

983 :981:2009/04/14(火) 11:40:36 ID:???
>>982
そのような処理をする関数は存在しませんか?
JavaScriptの正規表現に使用する全ての記号がわからないので、
1発で処理可能な関数があれば知りたかったのですが。

984 :Name_Not_Found:2009/04/14(火) 11:40:43 ID:???
大文字小文字無視したいだけなら、toLowerCaseして、indexOfとかすればいいやん。

985 :Name_Not_Found:2009/04/14(火) 11:51:07 ID:???
>>984
ありがとうございます。
早速調べてみます。

986 :Name_Not_Found:2009/04/14(火) 12:21:50 ID:???
textfieldで扱う文字数が5000文字くらいあったら正規表現とtoLowerCaseのどちらを選ぶべき?

987 :Name_Not_Found:2009/04/14(火) 12:49:22 ID:???
メモリ使用量みながらベンチとりなサーイ

988 :Name_Not_Found:2009/04/14(火) 13:19:45 ID:???
いやです

989 :Name_Not_Found:2009/04/14(火) 13:23:55 ID:???
5000文字程度なら気にする程のことないだろ。

990 :Name_Not_Found:2009/04/14(火) 15:13:00 ID:???
次スレ
http://pc11.2ch.net/test/read.cgi/hp/1239686791/l50

991 :Name_Not_Found:2009/04/14(火) 15:28:50 ID:???
>>983
MooTools 1.2
escapeRegExp: function(){
return this.replace(/([-.*+?^${}()|[\]\/\\])/g, '\\$1');
}

Prototype.js 1.6.0
RegExp.escape = function(str) {
return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
};

992 :Name_Not_Found:2009/04/14(火) 16:19:50 ID:TlbL8BxH
>>986
5000字あるかどうか分からないけど、一般的なブログのトップページ全体から
ある特定の文字列数種を探してspan要素で括る、っていうのを
正規表現置換でやったことがあるけど、十分短い時間で済んだよ。

993 :Name_Not_Found:2009/04/14(火) 16:46:55 ID:???
文字数が多ければ多いほど遅くなるのはtoLowerCaseのほう。

994 :Name_Not_Found:2009/04/14(火) 17:57:49 ID:???
>>993
ここで比較するべきはindexOf。それともindexOfが遅い?

995 :Name_Not_Found:2009/04/14(火) 18:00:35 ID:???
phpのmicrotime(true)とかjavaのSystem.currentTimeMillis()みたいのがあればな
javascriptはこの前はじめたばっかだからよくしらぬ

996 :Name_Not_Found:2009/04/14(火) 18:01:07 ID:???
次スレ
http://pc11.2ch.net/test/read.cgi/hp/1239686791/l50

997 :Name_Not_Found:2009/04/14(火) 18:02:06 ID:???
>>995
php.js

998 :Name_Not_Found:2009/04/14(火) 18:02:52 ID:???
>>995
new Date().getTime()
つか、このスレ内にも時間計測やってる例が出てると思うが
それくらい探してから書き込んでもバチはあたらないのでは。

999 :Name_Not_Found:2009/04/14(火) 18:45:24 ID:???
>>968
関数リテラルは括弧で囲めよ

1000 :Name_Not_Found:2009/04/14(火) 18:54:38 ID:???
関数リテラルは囲まなくていいよ

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

289 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)