[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 04/05 23:49 / Filesize : 164 KB / Number-of Response : 551
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



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

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

6 名前:sage mailto:まず >>2-10 読め! 続いて過去スレ全集を検索! [2009/05/20(水) 10:27:45 ID:???]
ECMA-262 ed.3
www.ecma-international.org/publications/standards/ECMA-262.HTM
www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/ (和訳)
W3C Document Object Model Technical Reports
www.w3.org/DOM/DOMTR
JavaScript 1.5 ガイド / リファレンス (Netscape/Mozilla)
developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Guide (和訳)
developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference
developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference (和訳)
E4X (ECMAScript for XML)
www.ecma-international.org/publications/standards/Ecma-357.htm
www.ne.jp/asahi/nanto/moon/specs/ecma-357.html (和訳)
Mozilla Gecko DOM Reference, Netscape devedge
developer.mozilla.org/en/docs/Gecko_DOM_Reference
developer.mozilla.org/ja/docs/Gecko_DOM_Reference (和訳)
devedge-temp.mozilla.org/central/javascript/index_en.html
MSDN Library JScript / DHTML (現在日本語版は古杉)
www.microsoft.com/japan/msdn/library/ja/script56/html/js56jsoriJScript.asp
msdn2.microsoft.com/en-us/library/ms533050.aspx

7 名前:まず >>2-10 読め! 続いて過去スレ全集を検索! mailto:sage [2009/05/20(水) 10:42:41 ID:???]
【チュートリアルサイト・サンプルサイト】
規格が読めないならまずはチュートリアル。サンプルサイトも沢山ある。
(以下は精選すべきとの議論あるが進んでいないので玉石混淆)
MetaGraphic Cell
www2u.biglobe.ne.jp/~oz-07ams/prog/
どら猫本舗のリファレンスカウンター
www.doraneko.org/
はぎさんちのページ Mozilla's DOM Sample Project
cgi.din.or.jp/~hagi3/JavaScript/JSTips/Mozilla/mds.cgi
一撃必殺javascript
www.openspc2.org/JavaScript/
【関連スレ】
板違い、スレ違いに注意!サーバ側での処理はWebProg板へどぞ!
Webサイト制作初心者用質問スレ Part 209
pc11.2ch.net/test/read.cgi/hp/1240770124/l50
CSS/DHTMLバグ辞典スレッド【第5版】
pc11.2ch.net/test/read.cgi/hp/1144494359/l50
役に立つ書籍は? 4冊目
pc11.2ch.net/test/read.cgi/hp/1172823674/l50
1行javascriptプログラミング
pc11.2ch.net/test/read.cgi/hp/1066750037/l50
WSH(・∀・)スレッド! Part 3
pc11.2ch.net/test/read.cgi/tech/1208948450/l50

8 名前:Name_Not_Found mailto:sage [2009/05/20(水) 13:15:44 ID:???]

ttp://image.posren.com/img2/00536000/00535528/4.jpg
ttp://image.posren.com/img2/00239000/00238952/4.jpg
ttp://image.posren.com/img2/00225000/00224558/4.jpg
ttp://pics.dmm.com/mono/movie/n_701tsdv41155r/n_701tsdv41155rpl.jpg


9 名前:Name_Not_Found mailto:sage [2009/05/20(水) 15:23:54 ID:???]
>>8
質問する前に最低限のことはググろうぜ。

10 名前:Name_Not_Found mailto:sage [2009/05/21(木) 00:28:17 ID:???]
すんません、グリースモンキー使って練習してるんですが、下のHPでスクリプトを走らせると

www.ne.jp/asahi/home/ramen/tokushima/jtoa.html

ページの一番上の部分↓しかヒット(match)しないんですが、何故なんでしょうか?
 
      【徳島市(徳島駅周辺)】

// ==UserScript==
// @name
// @namespace time
// @include www.ne.jp/asahi/home/ramen/tokushima/
// ==/UserScript==

var alltag = document.getElementsByTagName("FONT");

for(i=0;i<alltag.length;i++){

if(alltag[i].firstChild.nodeValue.match("徳島")){

alert (alltag[i].firstChild.nodeValue);
/*
if(i+1){
break;
}
*/
}
}



11 名前:Name_Not_Found mailto:sage [2009/05/21(木) 00:56:53 ID:???]
>>10
gmもコンソールにエラーメッセージ出さなかったっけ?
firstChildにnodeValueがないところで処理止まってる

12 名前:10 mailto:sage [2009/05/21(木) 07:32:13 ID:???]
>>11
ありがとうございます。
ちなみに、何を使って調べていただいたのか教えてもらえませんか?
firebugを入れたんですが、まだ使い方もよく分からないので。

13 名前:Name_Not_Found mailto:sage [2009/05/21(木) 08:34:51 ID:???]
あたまをつかいました

14 名前:Name_Not_Found mailto:sage [2009/05/21(木) 10:09:11 ID:???]
>>12
firebugならコンソールにスクリプト貼りつけるだけでエラーわかるよ。
for文で回した時にfirstChildにnodeValueがない場合があってエラーになる。
<font>タグ抜き出してるからそういうこともあるだろうけど、そもそも何がやりたいスクリプトかわからんな
<font>で囲まれた「徳島」って1,2個しかないように見えるし。

15 名前:Name_Not_Found mailto:sage [2009/05/21(木) 10:50:20 ID:???]
やっとテンプレからアフィ厨ks野郎のサイトがなくなって清々したぜ

16 名前:Name_Not_Found mailto:sage [2009/05/21(木) 19:53:04 ID:???]
質問です。
<script type="text/javascript">
function calc(b){
var r = 253.5;
return {str:r.toString(b).toUpperCase(),val:r};
}
window.onload = function(){
var que = [2,8,16];
for(var i in que){
var t = calc(que[i]);
document.getElementsByTagName("body")[0].innerHTML += t.val + "を" + que[i] +"進数にすると" + t.str + "<br />";
}
}
</script>
253.5を2,8,16進数に変換するスクリプトですがOperaで動作しません。Firefox,IE,Safariではきちんと動作します。

Firefox,IE,Safariではこのように表示される
253.5を2進数にすると11111101.1
253.5を8進数にすると375.4
253.5を16進数にするとFD.8

Operaでは
253.5を2進数にすると253.5
253.5を8進数にすると253.5
253.5を16進数にすると253.5

と表示されます。
253.5は例えであり実際はランダムな数になり、コードは最小限になるように短くしています。
何が駄目なのでしょうか

17 名前:Name_Not_Found mailto:sage [2009/05/21(木) 20:04:12 ID:???]
小数なのがだめっぽいけど

ttp://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/15-7_Number_Objects.html#section-15.7.4.2
>10 でないならば、結果は文字列で、実装依存の選択となる。

18 名前:Name_Not_Found [2009/05/21(木) 20:04:42 ID:+MtR0bgo]
var idname = 1;

for(i = selectnum; i <= 7 + selectnum; i++){
  var idname_mod = i;
  if(i > 7){ idname_mod = i - 7; }
  document.getElementById(idname).innerHTML = htmls[idname_mod];
  idname = idname++;
}

上記の場合、なぜかdocument.getElementById(idname)の部分でidnameが
NULLでエラーになります。最上部のidnameのvarをとりグローバルにして
も同様のエラーが出ます。

Perlの場合、my変数を使い同様の処理を行った場合はこのようなエラーは
出ないと思われるのですが、ご教示いただけますと幸いです。

宜しくお願いいたします。

19 名前:Name_Not_Found mailto:sage [2009/05/21(木) 20:11:14 ID:???]
>>17
ありがとう。小数点が駄目なのね・・
自分で実装するしかないな。

20 名前:Name_Not_Found mailto:sage [2009/05/21(木) 20:21:10 ID:???]
配列をfor-inで回すのってまた流行り出したのか

>>18はHTML仕様を三回朗読しろ



21 名前:Name_Not_Found mailto:sage [2009/05/21(木) 20:23:23 ID:???]
動作テスト用に早く書けるから使ってるだけです。実際はlength使ってます

22 名前:Name_Not_Found mailto:sage [2009/05/21(木) 20:44:28 ID:???]
きれい

23 名前:Name_Not_Found mailto:sage [2009/05/21(木) 20:47:26 ID:???]
>>18
document.getElementById(idname)の返値がnullだというエラー文だと思われ

24 名前:Name_Not_Found mailto:sage [2009/05/21(木) 22:03:29 ID:???]
ID番号って言うからねぇ♪

25 名前:Name_Not_Found mailto:sage [2009/05/21(木) 22:27:34 ID:???]
文法違反だが実際には数字だけでも取れるけどな
単にそのIDを持つよーそがないんだろ

26 名前:Name_Not_Found mailto:sage [2009/05/21(木) 23:52:46 ID:???]
Prototype.js(できれば1.6.*系を使いたい)とVSValidate(www.jsvalidate.com/)を
使用してサイトを作成したいのですが、jsvalidate_beta 04.zipをダウンロードして
HTMLをかいてみたところうまく動作しません。

以下HTML
----
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<script src="./prototype.js" type="text/javascript" charset="shift_jis"></script>
<script src="./effects.js" type="text/javascript" charset="shift_jis"></script>
<script src="./jsvalitdate.js" type="text/javascript" charset="shift_jis"></script>
</head>
<body>
<form id="foo" action="/" method="post">
<input class="jsrequired" id="bar" name="bar" type="text" value="" />
<input type="submit">
</form>
</body>
</html>
----
Prototype.jsは1.5.*系と1.6.*系両方試して見ましたがダメでした。
ブラウザはIE7でためしています。


27 名前:Name_Not_Found [2009/05/21(木) 23:53:57 ID:HOZFvioo]
配列に格納した文字列を5秒ごとにランダムに表示していくJavaScriptを組みたいのですが、
どのように組めばよいのでしょうか?
Math.randomをうまく使えば組めそうなのですが、わかりません。

28 名前:Name_Not_Found mailto:sage [2009/05/22(金) 00:05:56 ID:???]
Math.floor(Math.random()*5)で0以上5未満の整数が生成される
あとは分るよな

29 名前:18 mailto:sage [2009/05/22(金) 00:06:47 ID:???]
>>23
ご返答有難うございます。

document.getElementById(idname)のidname部分を例えば3にすると
エラーが出ずに動作します。
selectnumなどを試しにセットしても動作します。

idnameに値が入っていないのが原因だと思われるのですが、
なぜこの構文でidnameに何も入っていないのかがわから
なかったため、質問させていただきました。

変数のスコープの扱いの違いも把握はしているつもりで
すので、何度も確認しております。

教えていただけますと助かります。。

30 名前:Name_Not_Found mailto:sage [2009/05/22(金) 00:07:22 ID:???]
>>27
わかりませんでは解りません



31 名前:Name_Not_Found [2009/05/22(金) 00:18:30 ID:3b1/94FH]
>>27
var av = new Array(5) ;

av[0] = "蒼井そら" ;
av[1] = "麻美由真" ;
av[2] = "吉沢明歩" ;
av[3] = "RIO" ;
av[4] = "初音みのり" ;

function fuckYourself()
{
var randou = Math.floor(Math.random()*5)
 document.porn.bigtits.value = av[randou];
 setTimeout("fuckYourself()", 2500);
}
//-->
</script>

<BODY onLoad="fuckYourself()">
<FORM name="porn">
<INPUT size="10" type="text" name="bigtits">
</FORM>
</BODY>

32 名前:Name_Not_Found mailto:sage [2009/05/22(金) 00:28:57 ID:???]
>>29
この部分だけじゃidname自体がnullになるようには見えない。
ここ以外のコードを疑うことを薦める。

わかるのはせいぜい>>20,25と
idname=idname++という無駄な表記があることぐらいだ。

33 名前:Name_Not_Found mailto:sage [2009/05/22(金) 00:33:38 ID:???]
あとはFirebugでも使っておけ。原因不明のnullならステップで見ていくとだいたいわかる。

34 名前:26 mailto:sage [2009/05/22(金) 00:45:41 ID:???]
自己レスです。

<form id="foo" name="foo" action="/" method="post">

としたところ、Prototype.js1.5.0では動作することができました。
しかし1.6.*系では動作せず…

1.6.*系は無理なんでしょうか…

35 名前:10 mailto:sage [2009/05/22(金) 01:17:20 ID:???]
>>14 ありがとうございました。

36 名前:Name_Not_Found mailto:sage [2009/05/22(金) 02:32:00 ID:???]
>>18
質問の答になってないけど、気になった点をいくつか。

> var idname_mod = i;
エラーにならないけど、for ループの中で変数宣言はしない方がいいと思う。

> if(i > 7){ idname_mod = i - 7; }
もしも 7 で割った余りが欲しいなら、
idname_mod = i % 7;
でないと、仮に i が 14以上の値をとるときに意図した値にならない。
(本当に 7 を引くだけでいいなら、これは無視)

> idname = idname++;
これは変数 idname の値を変えない。
インクリメントするなら、
idname++(または ++idname);

37 名前:Name_Not_Found mailto:sage [2009/05/22(金) 02:55:00 ID:???]
変数宣言は同じスコープならどこに書いても同じ結果になる
falseをtrueにしてみると・・・

(function (){
a = 1;
if(false) var a = 2;
alert(a);
})();
alert(window.a);

まあキモイから後追いで宣言なんてしないほうがいいけど
初回がforの中でもそこで宣言して構わないかと

38 名前:Name_Not_Found mailto:sage [2009/05/22(金) 03:53:39 ID:???]
変数宣言の位置はやっぱ好み次第だったかな。

あと、7 で割った余りでなく、1 から 7 までの値が欲しい場合は、
(i % 7)? idname_mod = i % 7 : idname_mod = 7;
だったり。

でも、i % 7 を使うと、変数 idname_mod の値がループの最初と最後で同じ値をとるから、
やっぱこれは質問者の意図とは違うのかもと思ったり。
という訳で、>>36 は取り消し、取り消し。

39 名前:Name_Not_Found mailto:sage [2009/05/22(金) 05:25:53 ID:???]
i % 7 + 1
でいいだろうに

40 名前:Name_Not_Found mailto:sage [2009/05/22(金) 09:09:28 ID:???]
>>39
idname = 1 のときに idname_mod = 2 になるけどなw



41 名前:Name_Not_Found [2009/05/22(金) 10:04:54 ID:zC+md9GS]
クラスのインスタンスメソッドをイベントハンドラとしてonloadなどに渡すってどうですか?

 window.onload = hoge.piyo;

thisがhogeでなくwindowsになってしまっていつも対応に苦労してるんですが。

 window.onload = function(obj) { function() { obj.piyo }}(hoge);

42 名前:Name_Not_Found mailto:sage [2009/05/22(金) 10:08:28 ID:???]
idnameの数字だけ増やしていくうまい方法ありますよね。

43 名前:Name_Not_Found mailto:sage [2009/05/22(金) 10:34:02 ID:???]
>>41
うん?その例なら
window.onload = function(){ hoge.piyo(); };
で済む話だろう?
どうって何が?

44 名前:18 mailto:sage [2009/05/22(金) 11:47:45 ID:???]
皆さまご意見いただきありがとうございます。

恥ずかしながらまだ解決には至っておりませんが、色々試してみたいと思います。
現在のソースをのせておきます。

  if(cid == ""){ cid = 1; }
  var selectnum = cid % 7;
  if(selectnum == 0){ selectnum = 7; }
  if(selectnum != 1){
    var htmls = new Array();
    with ({i:0}) {
      for(var i = 1; i <= 7; i++){
        htmls[i] = document.getElementById(i).innerHTML;
      }
    }
    var idname = 1;
    with ({i:0}) {
      for(var i = selectnum; i <= 7 + selectnum; i++){
        var idname_mod = i;
        if(i > 7){ idname_mod = i - 7; }
        document.getElementById(idname).innerHTML = htmls[idname_mod];
        idname++;
      }
    }
  }

やはり現在も、 var idname = 1; をたとえばfor内に入れるとエラーなしで
動作します。


45 名前:Name_Not_Found mailto:sage [2009/05/22(金) 12:43:42 ID:???]
というか>>18>>44もエラーが再現できないんだよ
再現するコードを書けないならソース丸ごとうpしてほしい
ついでにエラー文のコピペも

id="7"が存在してないとかいうオチな気がしてきた

>with ({i:0})
本題とは関係ないだろうけど、こんなもん金輪際使うな


46 名前:Name_Not_Found mailto:sage [2009/05/22(金) 12:45:44 ID:???]
失礼、id="7"でささるならそれ以前にささるのか

47 名前:Name_Not_Found mailto:sage [2009/05/22(金) 14:12:08 ID:???]
>>41
Prototype.jsならbind/bindAsEventListenerという素敵な拡張がある
もしくはapplyでぐぐって関数作っておくと幸せになれるかも

48 名前:Name_Not_Found mailto:sega [2009/05/22(金) 22:38:19 ID:???]
数値の一番上の位の数字を文字として取得するのに
一番メモリ消費が少ない方法、および一番高速な方法って
どんなのが有名ですか?

49 名前:Name_Not_Found mailto:sage [2009/05/22(金) 22:45:43 ID:???]
文字列になおしてチャラット

50 名前:Name_Not_Found mailto:sage [2009/05/22(金) 23:10:13 ID:???]
正規表現



51 名前:Name_Not_Found mailto:sage [2009/05/23(土) 00:39:50 ID:???]
たったそれだけの処理をするのに
有名な方法なんてあるのかね

52 名前:Name_Not_Found mailto:sage [2009/05/23(土) 01:03:00 ID:???]
バッカス・ギルナー法

53 名前:Name_Not_Found mailto:sage [2009/05/23(土) 01:07:50 ID:???]
ホッタイモ・ジルーナ法

54 名前:Name_Not_Found [2009/05/23(土) 01:30:54 ID:zhcgrcoO]
ゆっくりスクロールしてジャンプするスクリプトを書いてくれ
10行ぐらいで出来そうだがJavaScriptは苦手なもんで頼みます

55 名前:Name_Not_Found [2009/05/23(土) 01:48:59 ID:v55uSy5X]
IE6を使用しています。
Ctrl + マウスホイールの制御を行いたいです。
どなたか教えてください。

56 名前:Name_Not_Found mailto:sage [2009/05/23(土) 02:28:14 ID:???]
>>55
マルチすんなハゲ

57 名前:Name_Not_Found mailto:sage [2009/05/23(土) 06:44:38 ID:???]
<script>

a="hello world!";
b=a.strike();
document.write(b);


</script>

こういうの見ると、ああ、OOPなんだな、って思うね。

58 名前:Name_Not_Found mailto:sage [2009/05/23(土) 06:52:22 ID:???]
>>57

このコードをeclipseで書くとき、
strike()の部分を、コード補完できないんだが、
みんなもそうか?

それとも自分だけ?

59 名前:Name_Not_Found mailto:sage [2009/05/23(土) 06:59:23 ID:???]
itpro.nikkeibp.co.jp/article/COLUMN/20061204/255844/

ここ読んで、

「メソッド名やプロパティ名を入力している途中
で「Alt」+「/」を押すと,まだ入力していない
部分を補完してくれます。」

って書いてあるので、試したらできた。

ctrl+spaceで補完する場合と、
alt+/で補完する場合と、2種類あるようだが、
どう使い分けているのか?

メソッドの場合はalt+?なの?

60 名前:Name_Not_Found mailto:sage [2009/05/23(土) 07:05:40 ID:???]
>>58
そのメソッドはECMA-262にない、つまりIE専でしょ。だから
補完できないんでは。



61 名前:Name_Not_Found mailto:sage [2009/05/23(土) 07:06:20 ID:???]
ちょっと勘違いしていたようだ。
すでに、コードの上の方の行で、
入力があれば、それを参考にして出るようだ。

初出だと、手で打たないとダメみたい。

62 名前:Name_Not_Found mailto:sage [2009/05/23(土) 07:08:36 ID:???]
JS1.0時代の非標準メソッドで非推奨のSTRIKEを生成する無知を何とかしろ、って思うね。

63 名前:Name_Not_Found mailto:sage [2009/05/23(土) 08:01:32 ID:???]
とりあえずIE専じゃねーから

64 名前:Name_Not_Found mailto:sage [2009/05/23(土) 09:40:00 ID:???]
Date オブジェクトの日付の範囲って西暦99年以前はダメなのでしょうか?

https://developer.mozilla.org/ja/Core_JavaScript_1.5_Guide/Predefined_Core_Objects/Date_Object
ここ↑には「Date オブジェクトの範囲は1970年1月1日(UTC)を基準に -100,000,000日から100,000,000日です。」とあるので、
単純計算で前後約273972年(=100,000,000÷365)を測定できる事になります。

しかし日付チェック関数(www.hoge256.net/2007/08/64.html)だと100/1/1以降はOKですが99年以前はプラス1900されているようでダメでした。

function checkDate(year, month, day) {
var d = new Date(year, month - 1, day);
if( d == null ||
d.getFullYear() != year ||
d.getMonth() + 1 != month ||
d.getDate() != day ) {
return false;
};
return true;
};

結果:
1970/1/1 => OK 木
1969/12/31 => OK 水
1000/1/1 => OK 水
999/12/31 => OK 火
100/1/1 => OK 金
99/12/31 => NG (1999/12/31になる)

↓だとgetFullYear は 「1000年から9999年までの日付に対して1995のような4桁の数字を返します。」とありますが、
999年でもtrueでOKでした。
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/Date/getFullYear

99年以前もOKなメソッドってあるのでしょうか? getUTCFullYear?

65 名前:Name_Not_Found mailto:sage [2009/05/23(土) 10:07:16 ID:???]
setFullYear

66 名前:64 mailto:sage [2009/05/23(土) 23:17:55 ID:???]
>>65
ありがとうございます。
99年以前も問題なく動作するようになりました。

function checkDate(year, month, day)
{
var d = new Date(year, month - 1, day);
if(d.getFullYear() != year) d.setFullYear(year);
if( d == null || d.getFullYear() != year || d.getMonth() +1 != month || d.getDate() != day) {
return false;
};
return true;
};


67 名前:Name_Not_Found mailto:sage [2009/05/23(土) 23:57:14 ID:???]
<script>

a="hello";
b=a.del();
document.write(b);
</script>

これだと動かないんだのう。

68 名前:Name_Not_Found mailto:sage [2009/05/23(土) 23:59:39 ID:???]
なんじゃそのメソッドは

69 名前:Name_Not_Found mailto:sage [2009/05/24(日) 00:10:12 ID:???]
a = function(){
  a.del = function(){
    return "hello";
  }
}
a();
b=a.del;
document.write(b);

70 名前:Name_Not_Found mailto:sage [2009/05/24(日) 00:13:22 ID:???]
>>69
function () { return "hello"; }

って出るだけだぞ



71 名前:Name_Not_Found mailto:sage [2009/05/24(日) 00:14:04 ID:???]
ようは、javascriptで打ち消し線を出したいだけなんだけど。
strikeは非推奨なんだよね?
じゃあなにを使うんだって言う。

72 名前:Name_Not_Found mailto:sage [2009/05/24(日) 00:24:52 ID:???]
そういやテンプレから「最低限のHTMLとCSSを理解する者」云々が消えてんだな

73 名前:Name_Not_Found mailto:sage [2009/05/24(日) 00:25:02 ID:???]
複数の変数 var subete = [test,hoge];
をstr.replaceを用いて置換したいです
どうすればいいですか?

74 名前:Name_Not_Found mailto:sage [2009/05/24(日) 06:37:35 ID:???]
forれば

75 名前:Name_Not_Found mailto:sage [2009/05/24(日) 10:38:39 ID:???]
>>73
日本語でおk

76 名前:Name_Not_Found mailto:sage [2009/05/24(日) 13:15:20 ID:???]
>>72
言われてみれば。それは入っていた方がいいよね。
>>1に入れるということでいいかな。

77 名前:Name_Not_Found mailto:sage [2009/05/24(日) 14:22:35 ID:???]
CSSをjavascriptで動的に変更させたいと思い作成したのですが
IE6では動作するのですがFirefoxでは動きません
IEで動くのでおそらくスクリプトには問題がないと思うのですが…

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-type" content="text/html; charset=Shift_JIS">
<title>ジャヴァスクリプト</title>
<link href="basic.css" rel="stylesheet" type="text/css" media="all" />
<script src="flams.js" type="text/javascript"></script>
</head>



78 名前:Name_Not_Found mailto:sage [2009/05/24(日) 14:27:38 ID:???]
>>77
どうやってCSSにアクセスしてるのかわからんけど
IEとFxではCSSのアクセス方法がまるで違うとだけ

79 名前:Name_Not_Found mailto:sage [2009/05/24(日) 14:28:03 ID:???]
>>77
スクリプトに問題ないならスレチ

80 名前:Name_Not_Found mailto:sage [2009/05/24(日) 14:44:30 ID:???]
>>78-79
すいません
今までは全く問題なかったのですが今回だけなぜか…

window.onload = init;
function init() {
for (var i = 1; i < 4; i++) {
document.getElementById("ram" + i).onclick = function() {
change(this.getAttribute("id"));
}
}
}

function change(id){
var r = parseInt(id.substring(3));
if (r == 1) {
ram1.style.background = "#a9a9a9";
ram2.style.background = "#ff69b4";
ram3.style.background = "#ff69b4";
} else if (r == 2) {
ram1.style.background = "#ff69b4";
ram2.style.background = "#a9a9a9";
ram3.style.background = "#ff69b4";
} else if (r == 3) {
ram1.style.background = "#ff69b4";
ram2.style.background = "#ff69b4";
ram3.style.background = "#a9a9a9";
 }
}





81 名前:Name_Not_Found mailto:sage [2009/05/24(日) 14:45:34 ID:???]
CSSです

/*CSS*/

#ram1{
background: #a9a9a9;
width: 174px;
border-left: 1px solid #a9a9a9;
}

#ram2, #ram3,
#ram4{
background: #ff69b4;
width: 174px;
border-left: 1px solid #a9a9a9;
}

82 名前:Name_Not_Found mailto:sage [2009/05/24(日) 15:16:49 ID:???]
ああ、cssファイルを切り替えるとかの話じゃないのか

>ram1.style.background = "#a9a9a9";
Fxではwindow[id]は定義されない
ちゃんとgetElementByIdしとけ

というかエラーメッセージ見ろ

83 名前:73 mailto:sage [2009/05/24(日) 18:34:42 ID:???]
ありがとうございます!
こんな感じに単語帳を作ってます。
forを使ってみたのですがエラーがでます。添削お願いします
var subete = [test,hoge];
var test = {
"YES": "はい"
};

var hoge = {
"お茶": "tea"
};

function convertStr(txt){
str=txt;
for(i=0;i<subete.length;i++){
str=str.replace(subete[i],subete[i])
}
return str;
}


84 名前:Name_Not_Found mailto:sage [2009/05/24(日) 18:52:01 ID:???]
>>83
いろいろ酷いなw

>var subete = [test,hoge];
>var test = { "YES": "はい" };
順序が逆。代入が済んでない変数を呼んでいるから、結果的にこれと同じ。
var subete = [ undefined, undefined ];

>var test = { "YES": "はい" };
testはObjectオブジェクト(ややこしい)であってStringオブジェクトではないから
そのままでは文字列としては扱えない。

for ( var k in test ) { alert(k);, alert(test[k]); }
こんな感じでやれば中身のStringオブジェクトにアクセスできる。

とはいえ、そもそもそこで連想配列的なObjectオブジェクトにする必要があるのかを
まず考え直した方がいい。

85 名前:Name_Not_Found mailto:sage [2009/05/24(日) 18:52:39 ID:???]
携帯で画像をランダム表示したいのですが
どのようなスクリプトが使えるのでしょうか?

86 名前:Name_Not_Found mailto:sage [2009/05/24(日) 18:56:59 ID:???]
>>85
普通の携帯はスレチ、JSうごかねーもん。
フルブラウザ限定でいいなら動くけど
ライブラリにするまでもないから自作するしかないだろうなぁ。

87 名前:Name_Not_Found mailto:sage [2009/05/24(日) 19:00:31 ID:???]
>>86
レスありがとうございます
どこのスレ行けばよいでしょう?
CSSスレあたりですか?

88 名前:Name_Not_Found mailto:sage [2009/05/24(日) 19:05:25 ID:???]
サーバーサイドならご自由に。
要は画像差し替えたHTMLをその都度作れってことだから。
PHPあたりが妥当とは思うけど、レンタル鯖使ってるならなにが使えるかをまず調べて。

89 名前:Name_Not_Found mailto:sage [2009/05/24(日) 19:21:43 ID:???]
>>82
ありがとうございます
無事動きました
しかしエラーコンソール?を使っても全然エラーはでなかったんです…
firebugを見てもよくわかりませんでした

90 名前:Name_Not_Found [2009/05/24(日) 22:16:03 ID:gL6yyyeI]
<html><head><title></title></head><body><form>

<script type="text/javascript">
var count = 0;

window.attachEvent("onload", function(){
setInterval(setText, 1000);
});

function setText() {
document.getElementById("text1").value = count++;
}
</script>

<div>
<br />
<input name="text1" type="text" id="text1" style="width:100px;" />
<br />
</div>
</form></body></html>

一定期間である処理をさせたいのでsetIntervalを使用してみたのですが、
ブラウザ上で右クリックメニューを出したり画面上部のメニュー部から何らかのポップアップ画面を出すと
setInterval の処理が止まるようです。

ブラウザ上でどんな操作をされようと、一定期間で必ず処理を実行させるように
する方法って無いでしょうか?

使用ブラウザ:IE7



91 名前:Name_Not_Found mailto:sage [2009/05/24(日) 22:22:43 ID:???]
>>90
そこまで制限した物を動かしたいのならバイナリ作るなりするべきじゃないか?

カウントするだけ(実際は違うんだろうが)なら、
処理が止まろうが時間という絶対値が取得できるんだからそれを利用するべきだろ

92 名前:73 mailto:sage [2009/05/25(月) 00:36:04 ID:???]
>>84
返事ありがとうございます
今回は連想配列は不要と解釈してよろしいのでしょうか?

93 名前:Name_Not_Found mailto:sage [2009/05/25(月) 01:33:12 ID:???]
必然性がないってことでしょ。

94 名前:Name_Not_Found mailto:sage [2009/05/25(月) 02:31:07 ID:???]
eclipseで、JavaScriptを編集しているとき、
strikeは補完はされないの?

95 名前:Name_Not_Found mailto:sage [2009/05/25(月) 02:41:17 ID:???]
そこまでstrikeを愛してるなら自分で拡張しろ

96 名前:Name_Not_Found mailto:sage [2009/05/25(月) 04:48:16 ID:???]
<strike>strike</strike>

97 名前:Name_Not_Found mailto:sage [2009/05/25(月) 08:28:21 ID:???]
ムリしてStringのメソッドでタグ付けしなきゃならない理由が無いよ

98 名前:Name_Not_Found mailto:sage [2009/05/25(月) 09:14:02 ID:???]
大半の人がよく使うモノなら、ソフトが標準で用意するのが当たり前。
あるべき機能がないソフトは「時代遅れ」と呼ばれる。
一部の人だけがよく使うモノなら、その人が自分で用意するのが当たり前。
プラグインだのライブラリだの、そんなものはゴロゴロしてる。

言語だろうが開発環境だろうが、この基本は変わらん。

99 名前:Name_Not_Found mailto:sage [2009/05/25(月) 18:23:32 ID:???]
jsってJScriptのことですよね。

100 名前:Name_Not_Found mailto:sage [2009/05/25(月) 18:30:15 ID:???]
じゃあjkは何だ



101 名前:Name_Not_Found mailto:sage [2009/05/25(月) 18:36:32 ID:???]
JKousei

102 名前:Name_Not_Found mailto:sage [2009/05/25(月) 19:57:37 ID:???]
JK flip-flop

103 名前:Name_Not_Found [2009/05/25(月) 23:04:28 ID:WB2FkpcL]
ちょっとお聞きしたいのですが、javascriptをドリームウィーバーで使って
写真を違う写真に移る時のフェードイン、フェードアウトをモザイクを使いたいのですが
ネットで調べたら以下の様なscriptがあって使ってみたのですが、
画像を挿入しても写らないのですが、何が間違っているのでしょうか?
誰か教えて下さい。


104 名前:Name_Not_Found [2009/05/25(月) 23:07:28 ID:WB2FkpcL]
<body>
<!--■以下のタグをbody内に入れてください-->
<a href="javascript:kawaru()">
<img src="oferia1.jpg" name="kirikae" width="300" height="300" border=0 style="filter:progid:DXImageTransform.Microsoft.Pixelate(MaxSquare=25,Duration=3)"></a>
<!--■↑上記 img src="oferia1.jpg" に最初の画像名を入れてね-->
<!--■↑上記 width="300" height="300" に画像の幅と高さを入れてね-->
<!--■↑MaxSquare=25 の数値を変えることでモザイクの大きさが変わる 適宜変えてみてね-->
<!--■↑Duration=3 この3を1や2や4や5にすると切り替わり方が変わる 適宜変えてみてね-->

<!--■以下スクリプトをbody内の上記タグの下に入れてください-->
<script language="JavaScript">
<!--
/*myako.net/ ako's cyberpage*/
var hayasa=4000;//■切り替えの早さ 現在4秒設定 お好きに変えてね
var Ga=new Array("oferia1.jpg","uminonakaa1.jpg","yousei811a.jpg","uma1b.jpg","himawari1.jpg")
//■上記のようにいくつでも画像名を並べてください

var tobisaki=new Array("myako.net/java/javanewn2.cgi","myako.net/ufu/jsguest.cgi","myako.net/java/javanewn.cgi","myako.net/java/jsfaq.cgi","myako.net/")
//■画像をクリックした時に飛ばしたい先のURLを画像の順番に合わせて順番に入れてください



105 名前:103 [2009/05/25(月) 23:09:04 ID:WB2FkpcL]
続きです

var GaH=new Array(); var IE=window.createPopup;
for (kazu=0;kazu<Ga.length;kazu++){
GaH[kazu]=new Image()
GaH[kazu].src=Ga[kazu] }
function kawaru(){
window.location=tobisaki[add] }
var add=0; var akoGa=0;
var okure=(IE)? document.images.kirikae.filters[0].duration*1000 : 0
function sl(){
if (!document.images) return
if (IE) document.images.kirikae.filters[0].apply()
document.images.kirikae.src=GaH[akoGa].src
if (IE) document.images.kirikae.filters[0].play()
add=akoGa; akoGa=(akoGa<Ga.length-1)? akoGa+1 : 0;
setTimeout("sl()",hayasa+okure) }
sl()
//-->
</script>
<!--■ここまでbody内に入れること-->

<br><br>画像は入っていません ソースを開いて御自分の画像名をお入れください<br>
■から書かれているコメントに従って書き換えて下さい<br><br>
スクリプトご使用の際は以下リンクタグをお入れください<br>
<a href="myako.net/" target="_top">Script by ako's cyberpage</a>


106 名前:Name_Not_Found mailto:sage [2009/05/26(火) 02:05:07 ID:???]
filter
論外

107 名前:Name_Not_Found [2009/05/26(火) 02:09:39 ID:RxqbxoRv]
>>106
どうしたらよいのでしょうか?

108 名前:Name_Not_Found mailto:sage [2009/05/26(火) 02:50:48 ID:???]
>>107
IE以外お断りな時代遅れのJScript使うより、まともなJavaScriptライブラリ使うかFlash使おう
ttp://youmos.com/news/lightview
ttp://youmos.com/news/itunes_coverflow
ttp://youmos.com/news/flash_simpleviewer
ttp://youmos.com/news/swfir
ttp://youmos.com/news/script_aculo_us
こういう類のものは色んな人が作っていて無数に存在するから自分にあった物を使うと良いよ

109 名前:Name_Not_Found mailto:sage [2009/05/26(火) 02:57:26 ID:???]
ttp://youmos.com/news/flash_xml_gallery
ttp://youmos.com/news/loupe_js
ttp://youmos.com/news/tjpzoom
ttp://youmos.com/news/dfgallery
ttp://youmos.com/news/jw_image_rotator
使えそうなものはこのぐらいかな

110 名前:Name_Not_Found mailto:sage [2009/05/26(火) 05:41:48 ID:???]
JavaScript切だと紹介記事すら読めないってのは何かの嫌がらせなのかなあ
NoScriptオンにしたけど変わった様子もなかったし



111 名前:Name_Not_Found mailto:sage [2009/05/26(火) 10:02:57 ID:???]
そういや、JS終わった君最近見ないね

112 名前:Name_Not_Found mailto:sage [2009/05/26(火) 10:57:45 ID:???]
ASと共に爆死したそうだ

113 名前:Name_Not_Found mailto:sage [2009/05/26(火) 11:36:17 ID:???]
変数宣言時はvarつける習慣があるのですが、つけない方が良いときもあるみたいな記事を見ました。

codezine.jp/article/detail/3855
> 関数の宣言時にローカル変数の頭にvarキーワードを付けると、関数の範囲外でも値が維持されます。こうすると、何がまずかったのか判断しにくくなります。

関数の範囲内にスコープを限定するためにvarつけると思っていたのですが、
その理解が間違っているのでしょうか?


114 名前:Name_Not_Found mailto:sage [2009/05/26(火) 11:44:50 ID:???]
>>113
勃起した。

115 名前:Name_Not_Found mailto:sage [2009/05/26(火) 11:50:14 ID:???]
×付けると
○付け忘れると

なんだろうか?よくわからん

116 名前:Name_Not_Found mailto:sage [2009/05/26(火) 12:44:52 ID:???]
>>115
どゆうこと?全然ちがうじゃん

117 名前:Name_Not_Found mailto:sage [2009/05/26(火) 12:47:55 ID:???]
明らかに記述ミスだろう。悩むところじゃない。

118 名前:Name_Not_Found mailto:sage [2009/05/26(火) 12:48:31 ID:???]
つまりvarつける習慣をやめろと

119 名前:Name_Not_Found mailto:sage [2009/05/26(火) 14:05:46 ID:???]
でも、スコープ内はつけるようにと先生が…
何を信じたらいいの

120 名前:Name_Not_Found mailto:sage [2009/05/26(火) 14:10:13 ID:???]
信じるな、考えて判断しろ
つーかその程度のウソもウソと見分けられないならこんなところ来るなよw



121 名前:Name_Not_Found mailto:sage [2009/05/26(火) 14:49:30 ID:???]
必要なところに必要なものを書けばいいだけじゃないのか、
一律全部付けるとか付けないとかそういう問題じゃないはずだが

122 名前:Name_Not_Found mailto:sage [2009/05/26(火) 15:26:19 ID:???]
つける習慣をやめるようなものがなんであるの?

123 名前:Name_Not_Found mailto:sage [2009/05/26(火) 15:34:51 ID:???]
後方互換

124 名前:Name_Not_Found mailto:sage [2009/05/26(火) 15:59:45 ID:???]
変数宣言するときに必ずつけるもんだ、と思い込んでるならその考えを改め直すべき

125 名前:Name_Not_Found mailto:sage [2009/05/26(火) 16:08:08 ID:???]
最手前のレイヤーで半透明で大きな雪の結晶を大量に降らせるエフェクトをかけつつ
リンクのクリックには全く支障が無いページを作りたいのですが、可能でしょうか?

126 名前:Name_Not_Found mailto:sage [2009/05/26(火) 16:08:51 ID:???]
>>123
NN2.0で使えるもので後方互換って何を想定してんだw

>>124
誤解を招く表現だぞ?
「変数を宣言する時に、その変数のスコープを把握できてないのが問題。
 その変数の意味を理解してプログラム組んでいるなら、
 付けるか付けないかなんて考えるまでもない」と、こうだろ。

127 名前:Name_Not_Found mailto:sage [2009/05/26(火) 16:10:33 ID:???]
>>125
描画する範囲を計算しといて、降らせる雪1つ1つをCSSかなんかで
個別に位置指定してやればいいんじゃね?

128 名前:Name_Not_Found mailto:sage [2009/05/26(火) 16:13:45 ID:???]
>>113
ベンチ作って試せばいいじゃん

129 名前:Name_Not_Found mailto:sage [2009/05/26(火) 16:37:25 ID:???]
>>127
リンク等にかぶらないように雪を降らせるという事ですね。
マウスが雪のオブジェクトと重なったらhiddenするような方法もありますね。

実は、1年以上前に同じような質問をしたことがあるのですが、
その時はイベントの発生位置から下のオブジェクトを見つけてイベントを受け渡すという
複雑な方法を教えていただいたのですが、IEでは上手く動かなくて断念しました。

やはり、ページ全体にエフェクトをかけるようなダイナミックな表現をするなら
全部Flashで作れという事でしょうか。
ありがとうございました。

130 名前:Name_Not_Found mailto:sage [2009/05/26(火) 16:39:30 ID:???]
だから
どうして雪降りをわざわざ動作が遅く・重いJavascriptなんですか
Flashでしょ

適材適所って知ってます?



131 名前:Name_Not_Found mailto:sage [2009/05/26(火) 16:47:25 ID:???]
>>126
NNで使えたからstrikeとかvar(笑)とか残ってるってことだろ

>>128
どうでもいいけど組込分野の人?

132 名前:Name_Not_Found mailto:sage [2009/05/26(火) 16:56:38 ID:???]
>>130
ページ全体を半透明オブジェクトで覆って紺色(夜)やオレンジ(夕方)のような表現をしてみたり
24bitPNGをタイル状に指定したオブジェクトをゆっくり動かして霧や雲や陰を表現したり
既存のHTML上にエフェクトがかけられたら面白いと思っただけですね・・・w

133 名前:Name_Not_Found mailto:sage [2009/05/26(火) 16:56:58 ID:???]
>>131
初期仕様から今後の方針まで全部見渡して、
varをあえてはずす理由なんてどこにもないと言いたかったのだが。
varに前方も後方もねーよ。

134 名前:Name_Not_Found mailto:sage [2009/05/26(火) 16:58:42 ID:???]
>>133
ネタにマジレス

わざわざ(笑)付けたのに・・・

135 名前:Name_Not_Found mailto:sage [2009/05/26(火) 17:04:53 ID:???]
varがますます分からなくなってしまいました(泣

136 名前:Name_Not_Found mailto:sage [2009/05/26(火) 17:23:40 ID:???]
>>135
自分で実際に試すのが一番手っ取り早いことを覚えよう。

「varキーワードを付けると、関数の範囲外でも値が維持されます。」
こんなわけのわからん文章で混乱してる時間があるなら、
さっさと適当なサンプル作って確かめて、
「なんだやっぱりIEでもFirefoxでもSafariでもOperaでも(略)
 範囲外では保存されないじゃん。
 この記事担当者、校正もしてないのかよ。バカだなー」
で終わらせればおk。

137 名前:Name_Not_Found mailto:sage [2009/05/26(火) 17:24:46 ID:???]
varをキーワードとかいってる時点で気づこうな

138 名前:Name_Not_Found mailto:sage [2009/05/26(火) 17:25:42 ID:???]
>>134
ネタ(笑)

139 名前:Name_Not_Found mailto:sage [2009/05/26(火) 17:29:33 ID:???]
後方痴漢

140 名前:Name_Not_Found mailto:sage [2009/05/26(火) 19:00:59 ID:???]
>>113の記事書いた人が間違ってるだけのこと



141 名前:Name_Not_Found mailto:sage [2009/05/26(火) 19:32:26 ID:???]
>>124
揚げ足取りだが、varは変数宣言するときは必ず付けるもの
宣言しないで代入するとグローバル変数になる
それともletとかconstとかのことを言ってるならごめん

142 名前:Name_Not_Found mailto:sage [2009/05/26(火) 20:14:43 ID:???]
結論出ました、>>113は今までどおり変数宣言時にvarつける習慣のままでOK

143 名前:113 mailto:sage [2009/05/26(火) 22:03:06 ID:???]
こんなにレスがつくなんて!
やっばり記事が間違っているようですね。安心しました。

144 名前:Name_Not_Found mailto:sage [2009/05/27(水) 10:13:23 ID:???]
やっばり

145 名前:Name_Not_Found mailto:sage [2009/05/27(水) 11:52:25 ID:???]
携帯っぽい打ち間違いだな。

146 名前:Name_Not_Found mailto:sage [2009/05/27(水) 12:06:36 ID:???]
あってはならない間違いとはこのことだろ

147 名前:Name_Not_Found mailto:sage [2009/05/27(水) 12:26:42 ID:???]
かな打ちだとよく間違えるよ

148 名前:Name_Not_Found mailto:sage [2009/05/27(水) 14:31:48 ID:???]
今からカナ打ちにしようと思ってもできないな、カナ打ちできる人は尊敬するわ
そのままだと英語全く打てないから両方できるってことだろうしね

149 名前:Name_Not_Found mailto:sage [2009/05/27(水) 17:53:57 ID:???]
JavaScriptって名前付き引数を使えないの?

150 名前:Name_Not_Found mailto:sage [2009/05/27(水) 18:05:41 ID:???]
>>149
使えないが、オブジェクトを渡すという手はあるな。
function f(o) { ... o.x ... o.a ... }
f({x:10, a:[1,2,3]})



151 名前:Name_Not_Found mailto:sage [2009/05/27(水) 22:27:22 ID:???]
>>139
後ろから前から、ってか。

152 名前:149 mailto:sage [2009/05/27(水) 23:49:03 ID:???]
>>150
d!

153 名前:Name_Not_Found [2009/05/28(木) 19:51:27 ID:0BJAZQDO]
質問いたします。
画面解像度によって違うページに飛ぶ機能を作ってみたのですがどうもうまくいきません(具体的には、解像度の横幅が1024以上ならページA、未満ならページBへと飛びます)。
以下にコードを示します。


<script type="text/javascript">
//<![CDATA[
var w = screen.width;if (w >= 2024) {var x= 1;}else {var x = 2;}//ここで解像度を取得、xに代入
//]]>
</script>

<script type="text/javascript">//xの値で行き先が変化
//<![CDATA[
if (x = 1) {
document.write("OK");
}else {
document.write("NG");
}
//]]>
</script>

 ・
 ・
 ・


つまり、最初に解像度が1024以上でxに1を代入、
後のコードでxが1ならページA、それ以外ならページBという風にしようとしたのですが…
本来ページBに飛ばされる環境なのにページAに行ってしまうという状況に陥っております。
皆様のお知恵を拝借したく存じます。宜しくお願い致します。

154 名前:Name_Not_Found mailto:sage [2009/05/28(木) 19:52:31 ID:???]
if (x = 1)

155 名前:Name_Not_Found mailto:sage [2009/05/28(木) 19:56:07 ID:???]
1024なの2024なのどっちさ。コードでは2024と比較してるが。
あとふつう、var x;を外側においてifの中ではxに入れるだけ
にするんでは。この場合はこれでも大丈夫なんだろうけど気持ち悪い。
そして最後にif(x = 1)では「常にxに1を代入して、1は真偽値と
しては真だからOKの枝を選ぶ」になるけど。比較なら「==」を使う。
まとめると「もっと修練積み直して来い!」だな。

156 名前:Name_Not_Found mailto:sage [2009/05/28(木) 20:00:13 ID:???]
まともなコードを書こうと思うならBrian W.Kernighan , Rob Pike 著のプログラミング作法を読むことをお勧めする


157 名前:Name_Not_Found mailto:sage [2009/05/28(木) 20:15:21 ID:???]
>>153
(screen.width >= 2024) ? document.write("OK"): document.write("NG");

158 名前:153 [2009/05/28(木) 20:16:41 ID:0BJAZQDO]
>>154-156
「=」を「==」に直したら、意図通りに動きました!本当にありがとうございます!!
取り敢えずはこれで動かしますが、もっと修行します。
>1024なの2024なのどっちさ。
1024です、失礼しました。
未熟は言い訳になりませんね…申し訳ないです。
もっとがんばります。

159 名前:153 mailto:sage [2009/05/28(木) 20:52:14 ID:???]
>>157
せっかく書いていただいたのにすいません。それではだめなのです…
「xの値で変化」のコードが何十個も続きますので
(xの値次第で何十個ものリンクが一度に変わる、ようなものを想像してください)

ところでこれ、IE6では無理なんでしょうか。解像度を満たしていてもNGのまま…
JavaScriptはONにしてるのに…

160 名前:Name_Not_Found mailto:sage [2009/05/28(木) 21:15:41 ID:???]
>>159
> 「xの値で変化」のコードが何十個も続きますので

そしたら>>153の↓部分も何十個も続かない? 
var w = screen.width;if (w >= 2024) {var x= 1;}else {var x = 2;}



161 名前:153 mailto:sage [2009/05/28(木) 21:49:31 ID:???]
>>160
その部分は一個でOKですね。
(というかその部分は外部ファイル化しました)

それにしてもレスポンス速いですね。一日ぐらい待つことを覚悟してたのですが。

162 名前:Name_Not_Found mailto:sage [2009/05/28(木) 23:11:47 ID:???]
つまり、分岐はあくまで「1024以上」「1024未満」の2つだけだけど、
それによって変わる部分はたくさんあるってこと?


変更する部分をまとめて配列に突っ込んどいて
インデックス変えれば済むプログラムなんだろうという予想はできるがw
まあ、それを言うのはヤボなんだろうなあ。

163 名前:Name_Not_Found mailto:sage [2009/05/29(金) 09:32:23 ID:???]
>>153
何のサイトなのか知らないけど、ユーザーに
buttonクリック等の明示的な選択肢を与えるべきじゃないの?

ページ飛ばされる理由がわからないと
ユーザー混乱するよ。



164 名前:Name_Not_Found mailto:sage [2009/05/29(金) 13:10:05 ID:???]
だいたい解像度別にページ作ったら大変じゃねーの?
1つのページでCSS切り替えるようにした方がよくない?

165 名前:Name_Not_Found mailto:sage [2009/05/29(金) 13:26:02 ID:???]
>>159
あぁ、ページにある<a href="1024未満用のリンク"></a>が<a href="1024以上用のリンク"></a>に置き換わるってこと?

それならそのリンク変えたい<a>タグにrefとかclassでも付けて、
onloadの時点で「それが付いてるやつはリンク変える」とかにしたら良いのでは?

166 名前:Name_Not_Found mailto:sage [2009/05/29(金) 13:56:16 ID:???]
IE4ってもうUA分岐で切ってもOKですか?

167 名前:Name_Not_Found mailto:sage [2009/05/29(金) 14:51:19 ID:???]
率先して IE6 を見限って行こうぜ。

168 名前:Name_Not_Found [2009/05/29(金) 15:48:09 ID:s2G+LjiY]
jQueryで、loadで読み込んだphpの中にあるpタグに.css('padding','10px')とかしたいんですが。

要は動的に読み込んだものにjQueryでホゲホゲしたいんだすが、どうしたらよいか分かる猛者はいますか。

169 名前:Name_Not_Found mailto:sage [2009/05/29(金) 16:11:15 ID:???]
IE6を見限ることによってIE6使ってる人に対してプレッシャーを与えていこうぜ

170 名前:Name_Not_Found mailto:sage [2009/05/29(金) 16:12:32 ID:???]
>>168
ちょっと言ってる意味がわかんないです

動的とか関係あるの?JavaScriptが実行される時にはHTMLは固定されてるでしょ?



171 名前:Name_Not_Found mailto:sage [2009/05/29(金) 16:19:06 ID:???]
>>168
要するにAjaxで読んだコンテンツ内のpに対してCSSはめたいって事かな

jQueryよく知らないけど、loadのコールバック関数内で
$("#id p").css( なんちゃら )
とかすれば良いのでないかしら?

172 名前:Name_Not_Found [2009/05/29(金) 17:41:12 ID:s2G+LjiY]
できました!!
ありがとーです!

173 名前:Name_Not_Found [2009/05/29(金) 21:37:24 ID:mKwqMK/s]
var item = document.form1.length

とすれば、フォーム(form1)内にあるinput要素を取得できますが、
「form1」という名前を固定ではなく、任意の名前にする場合
どのようにすればいいのでしょうか?


174 名前:Name_Not_Found mailto:sage [2009/05/29(金) 21:51:41 ID:???]
document.forms[form_name].length

175 名前:Name_Not_Found mailto:sage [2009/05/30(土) 02:57:04 ID:???]
部長「今度上層部が刺殺に来るぞ」
ぼく「えっ」
部長「といっても、良くあることだからな」
ぼく「よく人が死ぬんですか」
部長「えっ」
ぼく「えっ」
部長「ああ、普通にしてたらクビは斬られないから安心しろ」
ぼく「えっ」
部長「えっ」
ぼく「クビ以外を斬られることはあるんですか」
部長「減俸とかは時々あるな」
ぼく「そうなんだこわい」
部長「まあ、失敗をしなければ刺殺団はそのまま帰るさ」
ぼく「失敗したらどうなるんですか」
部長「事によるが、まあ悪くても定食くらいだろう」
ぼく「なにそれおいしそう」
部長「えっ」
ぼく「えっ」
部長「コツは死後に気を付けることだな」
ぼく「死後はどうなるんですか」
部長「刺殺室に呼ばれて、色々と悪い点を刺されるかもな」
ぼく「なんだやっぱり死ぬのか」
部長「えっ」
ぼく「えっ」

176 名前:Name_Not_Found mailto:sage [2009/05/30(土) 03:02:25 ID:???]
クリッカブルマップで、
マウスオーバーで色が赤くなるのって
どうやるの?

177 名前:Name_Not_Found mailto:sage [2009/05/30(土) 08:35:18 ID:???]
何の上にマウスが乗ったとき?そして何の色が赤くなるんだ?
アンタが赤くなるのならペンキでもかぶれば。

>>1 一、質問を分かる日本語できちんと説明できる者

178 名前:Name_Not_Found mailto:sage [2009/05/30(土) 16:13:05 ID:???]
ペンキわろた

179 名前:Name_Not_Found mailto:sage [2009/05/30(土) 16:51:35 ID:???]
読解力の無いヤツめ。
要するに
マウスオーバー→赤面しちゃうような写真が登場
ってことだろ

180 名前:Name_Not_Found mailto:sage [2009/05/30(土) 16:54:19 ID:???]
>>179
空気嫁



181 名前:Name_Not_Found mailto:sage [2009/05/30(土) 18:05:03 ID:???]
(//)

182 名前:Name_Not_Found mailto:sage [2009/05/30(土) 20:33:15 ID:???]
イベントデリゲーションでやるんだよ

183 名前:Name_Not_Found mailto:sage [2009/05/30(土) 21:04:41 ID:???]
画像バラしてhoverでおk。
JS関係ないからスレ違い。

184 名前:Name_Not_Found mailto:sage [2009/06/01(月) 03:27:01 ID:???]
グーグルのajaxって
IMEで入力中の単語すらも
取得してるんだけど、これって
どうやるの?

確定してないのに、取得するのは、どうやるのかってこと。

かくてい

↑この状態なのに、グーグルのサーバーに
送信できるっておかしくない?

185 名前:Name_Not_Found mailto:sage [2009/06/01(月) 03:28:06 ID:???]
なんか昔はケンカばかりだったおまえらが
オモロな事を競う合うスレまで昇華したか

氏ねw

186 名前:Name_Not_Found mailto:sage [2009/06/01(月) 03:30:13 ID:???]
全然ぐぐるも利用しないしソースも見てないけどなw

キー入力じゃねーの?


通りすがる


187 名前:Name_Not_Found mailto:sage [2009/06/01(月) 03:59:53 ID:???]
ka

って入力されたら、

「か」じゃないかなー?

って推測してるだけ?

188 名前:Name_Not_Found mailto:sage [2009/06/01(月) 04:05:35 ID:???]
前スレにキー入力のサンプルあっただろ

189 名前:Name_Not_Found mailto:sage [2009/06/01(月) 09:30:45 ID:???]
>>184-187
setIntervalとかで定期的に入力欄のvalueを取得すれば、
未確定の文字列も取り出せるから。

190 名前:Name_Not_Found mailto:sage [2009/06/01(月) 09:59:20 ID:???]
keyup だろ



191 名前:Name_Not_Found mailto:sage [2009/06/01(月) 12:19:44 ID:???]
>>190
Win IEは取れるんだけど、Linux FFxでonkeyupでは取れない。
setIntervalだと取れる。以下テストページ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var elt;
function chk() { document.getElementById('d1').innerHTML = elt.value; }
function init() {
elt = document.getElementById('d0').firstChild;
//elt.onkeyup = chk;
setInterval(chk, 100);
}
</script>
</head><body onload="init()">
<div id="d0"><input name="i0" type="text"></div>
<div id="d1"></div>
</body></html>

192 名前:Name_Not_Found mailto:sage [2009/06/01(月) 12:50:40 ID:???]
未確定の文字を取れるってやばくない?
サーバーに送信してるんだよ?

193 名前:Name_Not_Found mailto:sage [2009/06/01(月) 12:53:40 ID:???]
>>191
すげええええ
今実験してみた。

未確定でも取得できとる

194 名前:Name_Not_Found mailto:sage [2009/06/01(月) 12:57:58 ID:???]
ホントにサーバに送信してるのかな。

195 名前:Name_Not_Found mailto:sage [2009/06/01(月) 13:10:21 ID:???]
某ブラウザでクリップボードの内容まで取れてた事に比べればどうという事はない

196 名前:Name_Not_Found mailto:sage [2009/06/01(月) 13:12:13 ID:???]
>>194
サーバーに送信しなかったら
データーを取ってこれないだろ。

197 名前:Name_Not_Found mailto:sage [2009/06/01(月) 13:17:36 ID:???]
たとえば

「せっくす」

とかって入れて、確定してない状態でも、

「ああ、こんなはずかしいキーワード送信しないでおこう」

とかって思っても、グーグル様は許してくれません。

もうとっくに送信されちゃってますから!

198 名前:Name_Not_Found mailto:sage [2009/06/01(月) 13:56:55 ID:???]
>>197
じゃあ、確定した直後に「送信しないでおこう」と思って削除する場合は?
確定後なら送信されちゃっていても納得するの?

199 名前:Name_Not_Found mailto:sage [2009/06/01(月) 14:01:58 ID:???]
グーグル様はこの世のすべてのデータを蓄積しなくちゃいけないという勝手な使命感に駆られてるからな

200 名前:Name_Not_Found mailto:sage [2009/06/01(月) 14:42:17 ID:???]
Ajax使ったインクリメンタルサーチとかそんなもんだろ
むやみやたらにやられたらキモイけど技術的におかしいとは思わない



201 名前:Name_Not_Found mailto:sage [2009/06/01(月) 15:24:46 ID:???]
googleのキーワード入力欄を最後に使ったのが
いつだったかなんて思い出せないが、ここ見て久しぶりに使ってみた。
いつのまにか変な機能つけてたのな。



……つかまだ存在してたんだこれ。
ここ数年、URL入力欄以外に検索キーワードを
入力する必要を感じたことなんてないし、
どこかのWebサイト見てて単語を検索する時は
選択して右クリックメニューだし。

202 名前:Name_Not_Found mailto:sage [2009/06/01(月) 15:35:08 ID:???]
複合キーワードのヒントにはなるかも。

どんなに恥ずかしいキーワードを入れても、
データを見るGoogle様はプログラムで人間じゃないから安心!
かもしれない。

203 名前:Name_Not_Found mailto:sage [2009/06/01(月) 19:10:57 ID:???]
ナレ : やがて現れた肉は 牛タン
      何やら、手に持った次の瞬間

             _,,..,,,,_        ビダァァァン!!
           / ;' 3 ヽヾヽ       ビダァァァン!!!
     〃     i     ,l           ビダァァァン!!!
 ‘  ,_,,..((,,_  〃ゝ U  j! _ )))_ ∴ ,“    ビダァァァン!!!
 ,J∵/ ;' 3  `ヽーっ )  ソノ'"   ヽ从/; ’
 ) : l   ⊃ ⌒_つ,..ェ‐'´  ⊂  j! ゞ・,‥¨
 .¨ ・`'ー---‐'''''"    ̄゛'''''‐---ー '¨・:‘ .

ナレ : なんと、牛タンを 床に 力一杯叩きつけ出した
      いったい何の為なのか

店員 : あっこれ 叩くのは、  伸びるし 商品化のために
      少し肉が 柔らかくなるし  皮むくために、叩きますね

ナレ : 確かに叩く前のと比べると2倍近くに伸びている
         _,,..,,,,_
        ./ ,' 3 `ヽーっ
        l   ⊃ ⌒_つ
         `'ー---‐'''''"
         _,,..,,,,______
        ./  ,'  3       `ヽーっ 
        l       ⊃    ⌒_つ
         `'ー---‐---------'''''"

ナレ : 確かに叩きつけることで 皮も剥がしやすく 肉も柔らかくなるということだ

204 名前:Name_Not_Found mailto:sage [2009/06/01(月) 19:58:37 ID:???]
>>191
Linux でアウトなのは知らなかったけど、じゃあどうするかと聞かれたら
俺なら keyup → setTimeout(hoge, 0) にするな

205 名前:Name_Not_Found mailto:sage [2009/06/01(月) 20:25:41 ID:???]
クロスドメインに対応したファイルアップロードできるライブラリないですか?


206 名前:Name_Not_Found mailto:sage [2009/06/01(月) 20:43:59 ID:???]
action属性の値を変えろ

207 名前:Name_Not_Found mailto:sage [2009/06/01(月) 22:23:07 ID:???]
>>204
だからそもそもkeyupイベントが発生しないという問題では。
まあいいや、>>191 を直したのを作ってみてよ。試してみるから。

208 名前:Name_Not_Found mailto:sage [2009/06/01(月) 22:34:03 ID:???]
input methodが何かにもよるだろ
Linuxなら尚更

209 名前:Name_Not_Found mailto:sage [2009/06/01(月) 23:31:16 ID:???]
>>208
おおせの通り。洩れのとこはkinput2だな。

210 名前:Name_Not_Found mailto:sage [2009/06/02(火) 02:29:40 ID:???]
onforcusが発生したら定期的に内容が変わらないかチェックしてみたら動くかも



211 名前:Name_Not_Found mailto:sage [2009/06/02(火) 03:24:48 ID:???]
<問題>
0〜12間の間の任意の駅で向上した場合の普通乗車運賃を計算するスクリプトを作成しなさい。

入力: 乗車駅(選択),降車駅(選択),乗車人数[おとな,こども]
出力: 駅間営業キロ数,普通運賃,こども運賃,運賃合計
※JRの運賃は,乗車駅区間の営業キロ(距離)に応じた料金体系となっている。
「こども」の乗車券は,「おとな」の半額(5円の端数は切り捨て)
<html>
<head>
<script>
function calc_fare(){
//変数の初期化
var total=0;
var basic_fare=0;
var add_fare=0;
var night_fare=0;
var dist_discount=0;
var km=0;
var i=0;
// 配列
var k = new Array(0,1.3,2.2,1.8,1.5,2.2,1.6,2.2,3.6,1.4,2.0,2.3,3.4);
// 計算処理
if(document.form1.jyousya.value<document.form1.kousya.value){
for(i=document.form1.jyousya.value,d=document.form1.kousya.value;i<d;d--){
km+=k[d]*1000;
}
}
if(document.form1.jyousya.value>document.form1.kousya.value){
for(i=document.form1.jyousya.value,d=document.form1.kousya.value;i>d;i--){
km+=k[i]*1000;
}
}

212 名前:Name_Not_Found mailto:sage [2009/06/02(火) 03:25:52 ID:???]
km=km/1000;
if(km>1&&km<=3) basic_fare=160;
if(km>3&&km<=6) basic_fare=200;
if(km>6&&km<=10) basic_fare=210;
if(km>10&&km<=15) basic_fare=260;
if(km>15&&km<=20) basic_fare=350;
if(km>20&&km<=25) basic_fare=440;
if(km>25&&km<=30) basic_fare=530;

add_fare=document.form1.distance.value;

night_fare = basic_fare/2;
if(night_fare%10==5) night_fare=night_fare-5;

dist_discount=document.form1.time.value;

total=(basic_fare*add_fare)+(night_fare*dist_discount);

// 計算結果を出力
document.form1.km.value = km;
document.form1.total.value = total;
document.form1.basic_fare.value = basic_fare;
document.form1.add_fare.value = add_fare;
document.form1.night_fare.value = night_fare;
document.form1.dist_discount.value = dist_discount;

}
</script>
</head>
<body>

213 名前:Name_Not_Found mailto:sage [2009/06/02(火) 03:27:17 ID:???]
<form name="form1">
乗車駅:
<SELECT NAME="jyousya">
<OPTION value="0" selected>0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
<OPTION value="5">5</OPTION>
<OPTION value="6">6</OPTION>
<OPTION value="7">7</OPTION>
<OPTION value="8">8</OPTION>
<OPTION value="9">9</OPTION>
<OPTION value="10">10</OPTION>
<OPTION value="11">11</OPTION>
<OPTION value="12">12</OPTION>
</SELECT>
→降車駅:
<SELECT NAME="kousya">
<OPTION value="0" selected>0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
<OPTION value="5">5</OPTION>
<OPTION value="6">6</OPTION>
<OPTION value="7">7</OPTION>
<OPTION value="8">8</OPTION>
<OPTION value="9">9</OPTION>
<OPTION value="10">10</OPTION>
<OPTION value="11">11</OPTION>
<OPTION value="12">12</OPTION>

214 名前:Name_Not_Found mailto:sage [2009/06/02(火) 03:27:59 ID:???]
</SELECT>
<br/>
おとな<input type="text" name="distance" size="5" value="">人
こども<input type="text" name="time" size="5" value="">人
<input type="button" name="calc" value="計算" onclick="calc_fare();"><br />
<br /><br />
営業キロ<input type="text" name="km" size="7" value="">キロ<br />
運賃合計:<input type="text" name="total" size="7" value="">円
内訳(
大人<input type="text" name="basic_fare" size="7" value="">円
×<input type="text" name="add_fare" size="7" value="">人
+こども<input type="text" name="night_fare" size="7" value="">円
×<input type="text" name="dist_discount" size="7" value="">人)
</form>
</body>
</html>

こうすると、例えば 0で乗って1で降りるという風にすると1.3と正しい計算結果がでるのですが
12で乗って9で降りると9.1と出したいのですがが1.4と出てしまいます。
何かおかしいところはあるでしょうか?

215 名前:Name_Not_Found mailto:sage [2009/06/02(火) 04:27:45 ID:???]
学校の宿題か?1行ずつ値をチェックしていったら分かるだろう。

考えるのがメドいので細かい質問があれば問題発生箇所を絞り込んでからするように。
絞り込んだらコードは1/4以下にはなるだろ

216 名前:Name_Not_Found mailto:sage [2009/06/02(火) 05:09:30 ID:???]
最初は絞ることも考えたんですけど
何が間違ってるのかわからないので全部見てもらうほうがわかるかなと思いまして・・・

最初のif文の中のfor文が辺りが怪しいとにらんでるんですが・・・

一応絞ってみます・・・

217 名前:Name_Not_Found mailto:sage [2009/06/02(火) 08:34:09 ID:???]
var k = new Array(0,1.3,2.2,1.8,1.5,2.2,1.6,2.2,3.6,1.4,2.0,2.3,3.4);
if(document.form1.jyousya.value<document.form1.kousya.value){
 for(i=document.form1.jyousya.value,d=document.form1.kousya.value;i<d;d--){
  km+=k[d]*1000;
 }
}
if(document.form1.jyousya.value>document.form1.kousya.value){
 for(i=document.form1.jyousya.value,d=document.form1.kousya.value;i>d;i--){
  km+=k[i]*1000;
 }
}
<form name="form1">
<SELECT NAME="jyousya">
<OPTION value="0" selected>0</OPTION>
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
<OPTION value="4">4</OPTION>
<OPTION value="5">5</OPTION>
<OPTION value="6">6</OPTION>
<OPTION value="7">7</OPTION>
<OPTION value="8">8</OPTION>
<OPTION value="9">9</OPTION>
<OPTION value="10">10</OPTION>
<OPTION value="11">11</OPTION>
<OPTION value="12">12</OPTION>
</SELECT>
<SELECT NAME="kousya">
上と同じ
</SELECT>
営業キロ<input type="text" name="km" size="7" value="">キロ<br />

218 名前:Name_Not_Found mailto:sage [2009/06/02(火) 08:38:27 ID:???]
手取り足取りスレって無かったっけ?

219 名前:Name_Not_Found mailto:sage [2009/06/02(火) 08:45:53 ID:???]
あるんですか?

220 名前:Name_Not_Found mailto:sage [2009/06/02(火) 08:46:55 ID:???]
HTMLレベルから手取り足取り教える気はないな



221 名前:Name_Not_Found mailto:sage [2009/06/02(火) 08:59:50 ID:???]
>>2
2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。
 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!)
 長い(1レスに入らない)場合はアップロードしてURIを貼る。

222 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:06:02 ID:???]

<html>
<head>
<script type="text/javascript">

var list_station = { '乗車' : null, '降車' : null };
var list_usertype = { 'おとな' : null, 'こども' : null };
var list_view =
{
'合計km' : null, '合計運賃' : null,
'おとな運賃' : null, 'おとな人数' : null,
'こども運賃' : null, 'こども人数' : null
};

function main()
{
 var div = window.document.getElementById('draw_area');
 div.appendChild(createFormArea());
 div.appendChild(createViewArea());
};

window.attachEvent('onload', main);


223 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:08:24 ID:???]
function createFormArea()
{
 var form = window.document.createElement('form');
 if (1)
 {
 var separator = false;
 for (var key in list_station)
 {
 form.appendChild(window.document.createTextNode(key));
 form.appendChild(window.document.createTextNode('駅:'));
 var sel = form.appendChild(window.document.createElement('select'));
 for (var i = 0; i <= 12; i++)
 {
 var opt = sel.appendChild(window.document.createElement('option'));
 opt.innerText = i;
 }
 sel.firstChild.selected = true;
 sel.onchange = calcCharge;
 list_station[key] = sel;
 if (separator){ continue; }
 separator = true;
 form.appendChild(window.document.createTextNode('→'));
 }
 }
 form.appendChild(window.document.createElement('br'));


224 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:09:16 ID:???]
 if (1)
 {
 for (var key in list_usertype)
 {
 form.appendChild(window.document.createTextNode(key));
 var input = form.appendChild(window.document.createElement('input'));
 input.size = 5;
 input.value = 0;
 input.onchange = calcCharge;
 list_usertype[key] = input;
 }
 }
 return form;
}

function createViewArea()
{
 var para = window.document.createElement('p');
 if (1)
 {
 para.appendChild(window.document.createTextNode('営業キロ:'));
 list_view['合計km'] = para.appendChild(window.document.createElement('span'));
 para.appendChild(window.document.createTextNode('キロ'));
 para.appendChild(window.document.createElement('br'));
 }
 if (1)
 {
 para.appendChild(window.document.createTextNode('運賃合計:'));
 list_view['合計運賃'] = para.appendChild(window.document.createElement('span'));
 para.appendChild(window.document.createTextNode('円'));
 para.appendChild(window.document.createElement('br'));
 }

225 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:11:16 ID:???]
 if (1)
 {
 para.appendChild(window.document.createTextNode('内訳('));
 var separator = false;
 for (var key in list_usertype)
 {
 para.appendChild(window.document.createTextNode(key));
 list_view[key + '運賃'] = para.appendChild(window.document.createElement('span'));
 para.appendChild(window.document.createTextNode('円×'));
 list_view[key + '人数'] = para.appendChild(window.document.createElement('span'));
 para.appendChild(window.document.createTextNode('人'));
 if (separator){ continue; }
 separator = true;
 para.appendChild(window.document.createTextNode('+'));
 }
 para.appendChild(window.document.createTextNode(')'));
 }
 for (var key in list_view)
 {
 list_view[key].innerText = 0;
 }
 return para;
}


226 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:11:17 ID:???]
気が向いたのでKY気味に採点してやんよ

・変数dがvar宣言されてない(グローバルスコープになっている)
・kmを×1000して足して÷1000するのはおそらく丸め誤差対策だろうが、
 コードを読む人(他人や将来の自分)にその意味が伝わらないので好ましくない。
 コメントを付けるか、関数を分けてわかるような名前をつける。
・kmをbasic_fareに変換するところはif〜else if〜elseを使う方が保守性が上がる
・input要素に付けられた名前がイミフすぎる。
 たぶん他の問題からコピペして直してないのだろうが、
 直さないとプログラムが読みにくくてしょうがない。
・add_fare、night_fare、dist_discountの各変数名も同様。
 変数の名前と中身が一致してないからプログラムが読みにくい。
・ところで、"12"と12の違いって知ってる?(大ヒント)

227 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:13:17 ID:???]
function calcCharge()
{
 // 駅間距離?
 var arr_k = [0, 1.3, 2.2, 1.8, 1.5, 2.2, 1.6, 2.2, 3.6, 1.4, 2.0, 2.3, 3.4];
 // 営業距離料金表
 var list_charge = { 3 : 160, 6 : 200, 10 : 210, 15 : 260, 20 : 350, 25 : 440, 30 : 530 };
 // 合計キロ, おとな・こども運賃
 var sum_km = 0;
 var adult_charge = 0;
 var child_charge = 0;
 // 入力を取得
 var station_in = list_station['乗車'].selectedIndex;
 var station_out = list_station['降車'].selectedIndex;
 var adult_num = parseInt(list_usertype['おとな'].value);
 var child_num = parseInt(list_usertype['こども'].value);
 if (station_in == station_out)
 {
 sum_km = 0;
 adult_num = 0;
 child_num = 0;
 }
 else
 {

228 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:17:08 ID:???]
 // 営業距離
 if (station_in < station_out)
 {
 var i = station_in;
 while (i < station_out)
 {
 i++;
 sum_km += arr_k[i];
 }
 }

 else if (station_in > station_out)
 {
 var i = station_in;
 while (i > station_out)
 {
 sum_km += arr_k[i];
 i--;
 }
 }
 // 距離 → 基本料金
 var adult_charge = 0;
 for (var dis in list_charge)
 {
 if (sum_km > dis){ continue; }
 adult_charge = list_charge[dis];
 break;
 }
 // こども料金
 child_charge = Math.floor((adult_charge / 2) / 10) * 10;
 }

229 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:18:01 ID:???]

 // 表示
 list_view['合計km'].innerText = sum_km;
 list_view['合計運賃'].innerText = adult_charge * adult_num + child_charge * child_num;
 list_view['おとな運賃'].innerText = adult_charge;
 list_view['おとな人数'].innerText = adult_num;
 list_view['こども運賃'].innerText = child_charge;
 list_view['こども人数'].innerText = child_num;
}

</script>
</head>
<body>
<div id="draw_area"></div>
</body>
</html>


230 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:19:59 ID:???]
丸写し防止版
いろんな意味で



231 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:23:24 ID:???]
>>222-230
氏ね
こんな糞コードしか書けない奴は回答する資格なし

232 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:26:02 ID:???]
>>226
お前どこが間違ってるか分かってないだろ。

233 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:27:52 ID:???]
>>232
>>226の最終行

234 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:34:48 ID:???]
何で>>231がいきなり怒ってんのかと思ってコピペしてFxで見てみたら白紙だった
attachEventかよ。>>230の通りだな

235 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:39:39 ID:???]
あのさあ、スレ無駄遣いだから複数レスのソース貼るの
やめてくんない?2つならまだしも4分割とかもう阿呆かと。

236 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:44:37 ID:???]
7だな。4じゃない

237 名前:Name_Not_Found mailto:sage [2009/06/02(火) 09:56:43 ID:???]
おまけにXHTMLでforms[name]だしな。JS以前。

238 名前:222 mailto:sage [2009/06/02(火) 10:08:22 ID:???]
>231
ライブラリ使って書いて、使わないように適当に置き換えたらこうなった。
ライブラリ使って片っ端から置き換えること前提で見てもらうしか。

>235
ここって数日で1スレ使い切るような
活気のあるスレだっけ?

>237
眼科紹介しようか?

239 名前:Name_Not_Found mailto:sage [2009/06/02(火) 10:16:00 ID:???]
テンプレに異論があるのならテンプレ論議のときに言え。
以後スルーで。

240 名前:Name_Not_Found mailto:sage [2009/06/02(火) 10:17:13 ID:???]
if(1)
無闇に連想配列を使いたがる
マジックナンバーがメンテしづらくなるぐらいに散らばってる

もうこれどうしたらいいの?



241 名前:Name_Not_Found mailto:sage [2009/06/02(火) 10:19:42 ID:???]
なんだなんだ。
過疎スレで喧嘩するのはやめろ

242 名前:Name_Not_Found mailto:sage [2009/06/02(火) 10:21:32 ID:???]
コードは捨ててまず機能を抽出し、その機能を実現するように
新たにコードを設計し制作し直す。終了。

243 名前:Name_Not_Found mailto:sage [2009/06/02(火) 10:26:04 ID:???]
kmの足し算の所だけ抽出してみたよ
乗り降りは距離だけしか見ないならfor文2つ必要ないんじゃね?
って言うのと、宿題だったらevalとか使って先生の反応が見てみたいというのと。

var k = [0, 1.3, 2.2, 1.8, 1.5, 2.2, 1.6, 2.2, 3.6, 1.4, 2.0, 2.3, 3.4];
var kTmp = (function(){ // 丸め誤差防止用
  var array = [];
  for (var i=0,l=k.length; i<l; ++i) {
    array.push(k[i] * 1000);
  }
  
  return array;
})()
var add = function(a, b){
  var a = parseInt(a);
  var b = parseInt(b);
  var distance = (a < b) ? kTmp.slice(a, b+1) : kTmp.slice(b, a+1);
  
  return eval(distance.join('+'))/1000; // (kTmp[0] + kTmp[1] + ... + kTmp[n])/1000
}

var km = add(document.form1.jyousya.value, document.form1.kousya.value);

244 名前:Name_Not_Found mailto:sage [2009/06/02(火) 10:52:58 ID:???]
そこでreduceですよ。IEでは動かないけどw

245 名前:Name_Not_Found mailto:sage [2009/06/02(火) 11:01:08 ID:???]
244の補足
さすがにここでevalはバッドプラクティスとしか言いようがない。
先生のツッコミ能力を見る意味では面白いけど。

246 名前:Name_Not_Found [2009/06/02(火) 15:15:47 ID:HlujiDAB]
質問です
ttp://javascript.eweb-design.com/0516_so.html
ここのサンプル1と同じようなことをしたいのですが、
IE8の場合だけサブウィンドウは開くが、サブウィンドウのURLを
subwindow.location.hrefで変更が出来ません。

これの対応策をご存知の方いますか?
ちなみにIE8でもwindow.location.hrefで自身のURLは変更可能です。

247 名前:Name_Not_Found mailto:sage [2009/06/02(火) 15:26:40 ID:???]
>>246
IETesterでwindow.open()の返値がnullになるってやつ?

248 名前:246 mailto:sage [2009/06/02(火) 15:36:29 ID:???]
>>247
Testerではなく通常のIE8を使用しています。
バージョンは8.0.6001でした。

親からのwindow.open(違うURL, 同じウィンドウ名)でうまく動作しました。
今度は他のブラウザが心配・・・

249 名前:Name_Not_Found mailto:sage [2009/06/02(火) 15:45:09 ID:???]
javascriptでファイル選択のダイアログ表示→リクエスト発行の一連の処理をしたいんだけどうまくいかない。
↓のコードでやるとファイル選択ダイアログは表示されるけど、そのあとsubmitしてくれません。(webサーバにアクセスログなし)
手動でクリックした場合はうまくいきます。
javascriptでsubmitするにはどうしたらいいのでしょうか?

ブラウザ:IE8

<script src="jquery.js" type="text/javascript"></script>
<script type= "text/javascript">
$(document).ready(function(){
 $("#click1").click(function(){
  $("#file1").click();
  $("#form1").submit();
 })

});
</script>
<form id="form1" action="localhost/upload.cgi" method="post"
encType="multipart/form-data">
<input id="file1" name="file1" type="file">
</form>
<br>
<div id="click1">ファイル選択/送信</div>



250 名前:Name_Not_Found mailto:sage [2009/06/02(火) 15:50:10 ID:???]
>>249
セキュリティの問題上、type=fileなinput要素のvalueにはアクセスできないが、
そういうことではないのか?
ローカルのディレクトリ名がJavaScriptで取得できちゃまずいでしょ。



251 名前:249 mailto:sage [2009/06/02(火) 16:06:26 ID:???]
確かにsubmitの行をコメントにして、javascriptでファイル選択後に手でクエリ送信をクリックしたら、inputの中が空になりました。
用はinputもボタンも見えないようにして、ファイル選択後すぐにリクエスト発行するようなものを作りたいのですがヒントください。

252 名前:Name_Not_Found mailto:sage [2009/06/02(火) 16:09:05 ID:???]
すまん関係なかった。

JQueryでの書き方は覚えてないんで適宜翻訳してほしいんだが、
ダイアログでのファイル選択は手動でやるということならこれでいいな。
ファイル選択まで自動でしようとするのは無理だ。

<script>
function clicked(){
document.getElementById('file1').click();
}
function filechanged(){
document.getElementById('form1').submit();
}
</script>
<form action="#" id="form1">
<input type="file" value="" id="file1" onchange="filechanged();" />
</form>
<div>
<input type="button" onclick="clicked()" value="select file" />
</div>

253 名前:252 mailto:sage [2009/06/02(火) 16:17:48 ID:???]
俺のアホォ
252でも動いてなかった。無視して。

254 名前:Name_Not_Found mailto:sage [2009/06/02(火) 16:26:04 ID:???]
>>251
: inputもボタンも見えないようにして、ファイル選択後すぐにリクエスト発行

それができたらユーザの任意のファイルを鯖側に吸い上げて盗むことが
できてしまうよね。それができるブラウザは存在しない(存在したら
大問題で即回収)と思うが。

255 名前:Name_Not_Found mailto:sage [2009/06/02(火) 16:57:27 ID:???]
つまりこゆこと?
ttp://labs.gmo.jp/blog/ku/2007/05/gmail.html

256 名前:Name_Not_Found mailto:sage [2009/06/02(火) 18:13:56 ID:???]
input="button"でfile属性って古典的な問題だよね。居間皿。

257 名前:249 mailto:sage [2009/06/02(火) 18:28:28 ID:???]
iframeを使ったajaxっぽいことはもう実装済みなんです。
そんな感じであとはpathが入るBOXを消せたら理想なんですけどね。

これはどういう仕組みになってるんですか?
Ajax upload
ttp://valums.com/ajax-upload/



258 名前:Name_Not_Found mailto:sage [2009/06/02(火) 18:50:52 ID:???]
>>257
なんだ。じゃあCSSでdisplay:noneするだけじゃないのか?

259 名前:249 mailto:sage [2009/06/02(火) 19:01:43 ID:???]
そうすると「参照」ボタンも見えなくなってファイル選択すらできなくなると思うのですが。

260 名前:Name_Not_Found mailto:sage [2009/06/02(火) 19:12:09 ID:???]
画像の上にinputをstyle=opacity:1でかぶせたら?



261 名前:Name_Not_Found mailto:sage [2009/06/02(火) 19:25:28 ID:???]
>>257=259
つーかiframe+Ajaxとか高度なことができるだけの力があるなら、そこのソースも読めよな。
と思いつつ興味あったので自分でソース読んできた。

ただのボタンをHTMLとして配置しといて、
初期化時にfile属性inputをdisplay:none, opacity:0, z-index:2147483583でボタンの真上に作成
ってしていた。面白いな。

262 名前:249 mailto:sage [2009/06/02(火) 19:29:34 ID:???]
なるほど、スタイルシートで透明にしてたのか〜。
とりあえず解決しそうです。
ありがとうございました。

263 名前:211〜214 mailto:sage [2009/06/03(水) 02:14:19 ID:???]
丸め誤差だとかグローバルスコープだとか聴いたことない単語や見たことない関数だらけで苦労しましたがなんとか作成することができました。
ありがとうございました。

ところで続けて質問ですがevalはなぜバットプラクティス?なのでしょうか

それとif〜else if〜elseというのはこういうことですか?

if(km>1&&km<=3) basic_fare=160;
else if(km>3&&km<=6) basic_fare=200;
if(km>6&&km<=10) basic_fare=210;
else if(km>10&&km<=15) basic_fare=260;
if(km>15&&km<=20) basic_fare=350;
else if(km>20&&km<=25) basic_fare=440;
if(km>25&&km<=30) basic_fare=530;

264 名前:Name_Not_Found mailto:sage [2009/06/03(水) 02:33:51 ID:???]
eval is evil

265 名前:Name_Not_Found mailto:sage [2009/06/03(水) 02:41:06 ID:???]
eval を使わないで書けることがほとんどだし
中身の安全性を誰かが保証しなければならない

else の場合に if が解釈されるんだから && とかいらない
if(km <= 1){
  // エラー処理
}else if(km <= 3){
  basic_fare=160;
}else if(km <= 6){
  basic_fare=200;
    :
}else{
  // エラー処理
}

266 名前:Name_Not_Found mailto:sage [2009/06/03(水) 03:28:14 ID:???]
'use strict'

267 名前:Name_Not_Found mailto:sage [2009/06/03(水) 06:56:52 ID:???]
>263, >265
それ、3まで160、6まで200、10まで260...と
法則あるんだから、ループで処理すりゃいいだろ。
変更ごとに分岐増やすつもり?

268 名前:Name_Not_Found mailto:sage [2009/06/03(水) 07:42:33 ID:???]
どんな法則?w

269 名前:Name_Not_Found mailto:sage [2009/06/03(水) 08:06:14 ID:???]
>>268

var f = { 3 : 160, 6 : 200, 10 : 210, 15 : 260, 20 : 350, 25 : 440, 30 : 530, -1 : 0 };
var basic_fase = -1;

for (var a in f) {
if (km <= a){ basic_fase = f[a]; break; }
}

if (basic_faee == -1){ /* エラー処理 */ }


こんな法則。

>263の連続if見て思いつかない方が不思議だが。

270 名前:Name_Not_Found mailto:sage [2009/06/03(水) 08:10:00 ID:???]
あ、最後の -1 : 0 いらなくなってたっけ。
無視でよろしく。



271 名前:Name_Not_Found mailto:sage [2009/06/03(水) 09:18:02 ID:???]
>>269の問題点と改善点を3個以上挙げよ(10点)

272 名前:Name_Not_Found mailto:sage [2009/06/03(水) 09:47:34 ID:???]
・売りモノシステム作ってるわけじゃないから
 変数名だのの保守性はこの際問題にならない。

・prototypeをいじられてる可能性を指摘するなら
 prototypeをいじるようなプログラム組んでる時点で、
 そいつが自分の責任で対処するべきこと。

・この程度の書き換えで「ifベタ書きよりも分かりにくい」とか
 いうなら、そいつがプログラムに鳴れてないだけ。


あと何があるかな。

273 名前:Name_Not_Found mailto:sage [2009/06/03(水) 09:48:45 ID:???]
1. 数字はキーにできない
2. for inでの列挙順は保証されないから、本来より高い金額が出る可能性がある。
3. 変数名ミスりまくりw

むりやり改善すると、
var basic_fare = -1;
var f = [[3,160],[6,200],[10,210],[15,260],[20,350],[25,440],[30,530]];
for (var i = 0; i < f.length; i++){
if (km <= f[i][0]) {basic_fare = f[i][1]; break;}
}
if (basic_fare == -1){ /* エラー処理 */ }

かな。でもこんな2次元配列はキモくてできるだけ使いたくないから
else ifを書きまくるんでいいと思う派。

274 名前:Name_Not_Found mailto:sage [2009/06/03(水) 09:50:53 ID:???]
あー、Object.prototype.xxx対策だ。3つめ。

275 名前:Name_Not_Found mailto:sage [2009/06/03(水) 10:02:55 ID:???]
改善点だのウダウダ言うより書き換えてみた方が早い


var f = { 3 : 160, 6 : 200, 10 : 210, 15 : 260, 20 : 350, 25 : 440, 30 : 530 };
var basic_fase = -1;

var f_keys = [];

for (var a in f) {
var x = parseInt(a, 10);
if (x){ f_keys.push(x);}
}

var nsort = function(a, b){ return a - b; };

f_keys.sort(nsort);

for (var i = 0; i < f_keys.length; i++) {
if (km <= i){ basic_fase = f[i]; break; }
}

if (basic_faee == -1){ /* エラー処理 */ }

276 名前:Name_Not_Found mailto:sage [2009/06/03(水) 10:04:22 ID:???]
あーミスってる

if (km <= f_keys[i]){ basic_fase = f[f_keys[i]]; break; }

277 名前:Name_Not_Found mailto:sage [2009/06/03(水) 10:08:10 ID:???]
if (km <= f_keys[i]){ basic_fase = f[f_keys[i].toString()]; break; }
じゃないのか


278 名前:Name_Not_Found mailto:sage [2009/06/03(水) 10:09:08 ID:???]
普通にelse ifのが読みやすいだろw

279 名前:Name_Not_Found mailto:sage [2009/06/03(水) 11:31:01 ID:???]
ところで、作ったJSの動作確認依頼スレとかないのかな。
個人開発だとなかなか準備できない環境もあるしさ。

280 名前:Name_Not_Found mailto:sage [2009/06/03(水) 13:16:44 ID:???]
依頼スレなら有料だろな。ロクでもないソース突っ込まれての売春みたいなもんだ。



281 名前:Name_Not_Found mailto:sage [2009/06/03(水) 14:01:49 ID:???]
>>278
連続if見て>>269思いつかない方が不思議だが。

282 名前:Name_Not_Found mailto:sage [2009/06/03(水) 14:12:04 ID:???]
2個とか3個で表とループにする奴はいないし、30も40もあるのに
else ifを書き続ける奴もいない。両方知らないと駄目なのは当然。
「いくつから」戦略を切り替えるかは好みも入るんでいいと思うよ。

283 名前:Name_Not_Found mailto:sage [2009/06/03(水) 14:28:02 ID:???]
>>281
>>269見てバイナリサーチを思いつかない方が不思議だが。

284 名前:Name_Not_Found mailto:sage [2009/06/03(水) 14:40:52 ID:???]
6個でバイナリサーチはやめた方がいいんじゃないの。
線形探索の平均探索数が3、バイナリサーチの探索数が3弱、
変わらないじゃん。ロジックは複雑になるから損かも。
さらにバグが出やすくなるだけ大損。

285 名前:Name_Not_Found mailto:sage [2009/06/03(水) 15:38:27 ID:???]
ループにする一番の利点は保守性。
配列なら別ファイルにするのも簡単。
設定ファイルの仕様をデッチ上げて、プログラム全く知らない
素人担当者に「変更はこのテンプレ通りで」と言ってしまうこともできる。

if else は、変更があるたびにプログラムのメイン部分を書き換えることになる。
勉強や個人の私的なものならかまわんが、
少人数でも複数の人が関わる程度のプロジェクトになると
コストが一気に跳ね上がる。

もひとつ加えると、普通の会社じゃ、プログラムのメイン処理書き換えたら、
そのたびに処理の全項目再テストだかんね。

286 名前:Name_Not_Found mailto:sage [2009/06/03(水) 15:56:01 ID:???]
宿題ごときでこんなにレベルアップできるだなんて質問者がうらやましいな。
色々考えなくても一旦配列に入れたらいいと思うのだけど。
ただの配列なら要素数増えてもそんなに処理重くならないでしょ。

var f = { 3 : 160, 6 : 200, 10 : 210, 15 : 260, 20 : 350, 25 : 440, 30 : 530 };
var fMap =[]; // [undefined, undefined, undefined, 160, undefined, ... , 530]
for (var key in f) {
  fMap[key] = f[key];
}

for (var i=0,l=fMap.length; i<l; ++i) {
  if (typeof fMap[i] == 'undefined') continue;

  if (km <= fMap[i]) {
    fMap[i];
    break;
  }
}

287 名前:Name_Not_Found mailto:sage [2009/06/03(水) 16:13:35 ID:???]
>>265以外動作しないじゃねぇかよw


288 名前:Name_Not_Found mailto:sage [2009/06/03(水) 16:32:45 ID:???]
せめて正常系のテストぐらい通してから貼るんだ

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>テスト</title>
<script type="text/javascript">
function calc_fare(km){
//ここに書け
return 0;
}
var result = true;
result = result && calc_fare(0.1) == 160;
result = result && calc_fare(3) == 160;
result = result && calc_fare(3.1) == 200;
result = result && calc_fare(6) == 200;
result = result && calc_fare(6.1) == 210;
result = result && calc_fare(10) == 210;
result = result && calc_fare(10.1) == 260;
result = result && calc_fare(15) == 260;
result = result && calc_fare(15.1) == 350;
result = result && calc_fare(20) == 350;
result = result && calc_fare(20.1) == 440;
result = result && calc_fare(25) == 440;
result = result && calc_fare(25.1) == 530;
result = result && calc_fare(30) == 530;
alert(result);
</script>
</head>
<body>
</body>
</html>

289 名前:286 mailto:sage [2009/06/03(水) 16:47:32 ID:???]
レスするために変数名変えた時にミスったw
  if (km <= fMap[i]) {

  if (km <= i) {
これで正常系は通りました!
あ。テスト用にifの中は下のように変えた。
    return fMap[i];

290 名前:Name_Not_Found mailto:sage [2009/06/03(水) 18:39:29 ID:???]
result &=



291 名前:Name_Not_Found mailto:sage [2009/06/03(水) 19:03:36 ID:???]
>>290
それは意味が違う
JavaScriptにはなんで&&=がないんだろ?

292 名前:Name_Not_Found mailto:sage [2009/06/03(水) 19:12:41 ID:???]
>>291
そうだった
^= をよく使うからノリで書いちゃった

293 名前:Name_Not_Found [2009/06/04(木) 10:29:44 ID:fZ/H8/MV]
複数のhtmlファイルの共通したidの<span></span>の中身の文字列を
外部.jsファイルなどから一括参照、入力することは可能ですか?

いくつものhtmlの日付を一つ一つ直すのはとても骨が折れるので…
ソフトではなく、javascriptでの参照、入力が簡単にできる方法があれば
お教え願えないでしょうか?

294 名前:Name_Not_Found mailto:sage [2009/06/04(木) 10:47:00 ID:???]
>>293
日本語でおk

295 名前:Name_Not_Found [2009/06/04(木) 10:56:49 ID:fZ/H8/MV]
>>294
分かりにくい文章ですみません・・

複数のhtmlファイルの、共通したid要素の中身の文字列を
外部.jsファイルから一括入力することは可能ですか?

296 名前:Name_Not_Found mailto:sage [2009/06/04(木) 11:25:24 ID:???]
察するにこんなかんじ?

<script type="text/javascript" src="setdate.js"></script>
(中略)
<span id="date">日付</span>
ってHTML側に書いておいて、

setdate.jsで、

window.onload = function(){
 document.getElementById('date').firstChild.nodeValue = "2009/06/04";
}
とかするのかな。そうすればsetdate.jsさえ書き換えれば、
setdate.jsを読み込んでいるHTMLは全部書き換わって表示される。

297 名前:293 mailto:sage [2009/06/04(木) 12:10:53 ID:???]
>>296
完璧です。一生あなたに頭向けて寝ます。
ありがとうございます!

298 名前:Name_Not_Found mailto:sage [2009/06/04(木) 12:44:30 ID:???]
>>297
>296がブラジルにでも行ったらどうする気だw

299 名前:293 mailto:sage [2009/06/04(木) 13:26:05 ID:???]
もちろん逆立ちしながら寝ます

300 名前:Name_Not_Found mailto:sage [2009/06/04(木) 13:56:05 ID:???]
ブラジル行ったとどうしてわかるw



301 名前:Name_Not_Found mailto:sage [2009/06/04(木) 17:25:51 ID:???]
テキストエディタか何かでgrepしたら良いだけだろ…

302 名前:Name_Not_Found mailto:sage [2009/06/04(木) 17:39:25 ID:???]
js使えない環境は無視、と。ひどいな。


303 名前:Name_Not_Found mailto:sage [2009/06/04(木) 18:30:43 ID:???]
俺は個人サイト作って2年くらい。ボチボチ更新続けてるが、
いま、ざっと数えてもページ数300以上ある。
俺が>293と同じ問題抱えてたとしたら、テキストエディタでgrepするよりは、
1か所書き換えて済ませたいと思うだろうな。
置き換え忘れや置き換えミスが防げる。


個人サイトなら、最終更新日が出ない程度のことで
ひどい呼ばわりされる筋合いはないだろうな。
個人サイトはあくまで趣味の範囲。
ある意味ブラウザ切りと同じで、サイト作成者の裁量を尊重すべきこと。
企業の広告としてのサイトなら、最低でも拡張見込んで、
最初からPHPあたり使って作ってるだろうから、そもそもこんな問題は起きないな。



俺が言いたいのは、だ。
>301,302
>293の質問内容が10年前レベルなのは確かだが、自分でサイト作ってみようと思えば
誰しも通る道なのも間違いない。
各個人の知識なんてバラバラなんだから、今現在>293の段階にいる人だって、
そりゃ居て当たり前だろうが。
そんな試行錯誤して方法探してる段階の人間に、何かアドバイスでもするでなし、
ただ批判だけとか、お前らハタ目にはただの根性悪でしかないぞ。

304 名前:Name_Not_Found mailto:sage [2009/06/04(木) 18:35:27 ID:???]
>>293のやり方が更新日時の表示なら
その対象ページを全部更新したことになるけど
そんなことあんの?

305 名前:Name_Not_Found mailto:sage [2009/06/04(木) 19:43:27 ID:???]
実行環境の違いに気付かない奴は一生気付かん
段階どうこうではない

306 名前:Name_Not_Found mailto:sage [2009/06/04(木) 20:11:40 ID:???]
>>305
プ(w
お前の頭の中では、小学生と大学生の学力は同じなんだなw

知識が増えれば自然と考える幅も広がるのが当たり前。
まだ知識が足りてないだけかもしれないものを、
それが学習能力が足りないからだと言い切れるお前の頭は大したもんだよ。

307 名前:Name_Not_Found mailto:sage [2009/06/04(木) 20:22:19 ID:???]
ほう、これが“知識が足りてる”ということか

308 名前:Name_Not_Found mailto:sage [2009/06/04(木) 20:34:13 ID:???]
「知識が足りない」で許されるのは中学校までだよねー

309 名前:Name_Not_Found mailto:sage [2009/06/04(木) 20:39:48 ID:???]
実行環境は、考えてうんぬんというより知識の部類かと。
そして、知識がアッサリ増えなく奴とかいるんだよね。悲しいことに。
その意味で>>296の回答は少し不親切かなぁ

310 名前:Name_Not_Found mailto:sage [2009/06/04(木) 21:19:47 ID:???]
JavaScriptオフに対応できるどうかは知識の問題だが、
オフの環境もある、と気付くだけなら知識は関係ないと思う。
気付けば他の方法を探すだろうから、>>301-302は優しい奴らだと思ったがな。

しかし何度言っても気付かない奴も多いのは事実。



311 名前:Name_Not_Found [2009/06/04(木) 22:01:41 ID:8HVMklyL]
質問です
<header></header>内部のjavascriptを、ajaxによって変更することは可能でしょうか?
今とりあえず<span id=**>で書き換えることはできるのですが、そのjavascriptが動かず、
「'functionName' is not defined」ってエラーがでてしまいます。
そのページをfireFoxのFireBugでみてみると、きちんと定義がされているのですが・・・
<span></span>で囲まれたjavascriptは起動しないのか?と思うと、動くfunctionもあります。
一体なにが原因なのでしょうか?
ご存知の方がいらっしゃったらお教え願います。

312 名前:Name_Not_Found mailto:sage [2009/06/04(木) 22:04:13 ID:???]
functionの定義とどう使ってるか見せてー。
あと<header>ってのはXMLとかで自分で作ったの?

313 名前:Name_Not_Found [2009/06/04(木) 22:22:05 ID:8HVMklyL]
ありがとうございます。
とりあえずheaderはXMLではなく、<header><body>の<header>です。
ちなみにfunction定義は、
<html lang="ja">
<head>
<title>材料概要-検索</title>
<span id="headerJS">
<script type="text/javascript" src="/ajaxJava/prototype/prototype.js"></script>
<script language="JavaScript"><!--
function Chart_pageChange(id,url){
document.zaiGaiChart.pageNum.value = id;
document.zaiGaiChart.ajaxType.value = "pageChange";
var pars = Form.serialize("zaiGaiChart");
var myAjax = new Ajax.Request(url,{
method:"post",
parameters:pars,
onSuccess:showResponse
});
}
って感じです。いかがでしょうか?

314 名前:Name_Not_Found mailto:sage [2009/06/04(木) 22:55:36 ID:???]
>>313
基本的な話、文法上headの中にspanタグを書くことは認められていないよ。
今のブラウザで動くかどうかは別にして

それだと、自分自身を書き換えることになるのでどんな暴走をするか分からない。

そもそも、何でjavascriptを書き換えなければいけないかもさっぱり分からん。
他にもっとマシなアプローチの仕方もあると思う。

315 名前:Name_Not_Found [2009/06/04(木) 23:04:40 ID:8HVMklyL]
>>314
そうなんですか。文法上無理なんですね。
お教えいただきありがとうございました。
ちなみに何で、こういうことをしようと思っているかと言いますと、
極力Ajaxにて、何ページにもわたる、pageを更新できるようにしたいと思っているのですが、
そのためには、最初のページの読み込み時に、かなりの数のjavascriptのfunctionを
定義しなければならないため、上記の様なことができるのであれば、
「今このページに必要なfunctionのみを読み込む」ことができると思ってなのです。

上記みたいなやり方ではなく、もっとスマートなやり方をご存知でしたら、お教えいただきたいのですが・・・
よろしくお願いいたします。

316 名前:Name_Not_Found mailto:sage [2009/06/04(木) 23:12:15 ID:???]
>今このページに必要なfunctionのみを読み込む
dcument.write('<script src=〜 を書いたら簡単に出来ると思うけど

317 名前:Name_Not_Found [2009/06/04(木) 23:27:57 ID:8HVMklyL]
それが、functionはPHPにて動的に作成しているため、srcで読み込むのはちょっと・・・
srcファイルの指定以外でないでしょうか?
情報を小出しにしてしまい、大変申し訳ありません。

318 名前:Name_Not_Found mailto:sage [2009/06/05(金) 00:06:00 ID:???]
> PHPにて動的に作成しているため、srcで読み込むのはちょっと・・・

前半と後半でつながりがないな
src で php で生成したのを読み込めるわけで

でも
動的にうんたらするよりは
固定の外部 js 作った方がいろんな意味でまともだと思う

319 名前:Name_Not_Found [2009/06/05(金) 00:51:07 ID:a1W/XvL7]
>>318
でもPHPで作成したFileを読み込む場合、同一FIle名だと、他の人が読み込んじゃう危険性もあるし。
作ったものを直接、その人が見ているPageに書き込むのが、最上かと。
また自分のページは、一つのページに、その状況に応じて複数の表(現在最大8つですが、今後拡張予定)を表示して、
それぞれの表に、ページャーをつけているので、固定の外部ファイルよりも、
表の名称のみを書き換えるようにした、一つの固定ファイルを書いておいて、
表の名称に従って、書き換えるようにした方が良いように思っているため、そういったことをしています。
なので、固定の外部jsは、できれば使いたくないのですが・・・

320 名前:Name_Not_Found mailto:sage [2009/06/05(金) 01:06:22 ID:???]
> 他の人が読み込んじゃう危険性

そんなセキュアな話だったの!?

でもなんかもやもやするのは
php が使えるんだったら
自分なら
データは鯖側で保持してその都度 html に埋め込み|から呼び出し
js は見られても良いライブラリとして外部にするな

感覚の違いかな…



321 名前:Name_Not_Found mailto:sage [2009/06/05(金) 01:06:26 ID:???]
提示して貰ってるのに試そうともしないんだからここで聞く意味ないんじゃね

322 名前:Name_Not_Found mailto:sage [2009/06/05(金) 01:19:07 ID:???]
ぶっちゃけ php にべた書きしちゃえばやりたいことはできると思うんだよ

323 名前:Name_Not_Found mailto:sage [2009/06/05(金) 06:36:16 ID:???]
サーバ側で動的にjsを生成するって初めて聞いたのですが一般的なんですか?


324 名前:Name_Not_Found mailto:sage [2009/06/05(金) 06:52:06 ID:???]
Googleドキュメントとか普通にやってなかったか

325 名前:Name_Not_Found mailto:sage [2009/06/05(金) 06:53:29 ID:???]
JSONPなら既にいろんなとこで使われてるけど

326 名前:Name_Not_Found mailto:sage [2009/06/05(金) 08:01:03 ID:???]
そうなんだ。

327 名前:Name_Not_Found mailto:sage [2009/06/05(金) 13:44:17 ID:???]
<script src="hoge.php"></script>ぐらいなら全然ありじゃないか?

328 名前:Name_Not_Found mailto:sage [2009/06/05(金) 14:17:08 ID:???]
なしの方向で。

329 名前:Name_Not_Found mailto:sage [2009/06/05(金) 14:48:37 ID:???]
ありに右折。

330 名前:Name_Not_Found mailto:sage [2009/06/05(金) 16:20:04 ID:???]
行き止まり。バックします。



331 名前:Name_Not_Found [2009/06/05(金) 18:46:16 ID:042dcs0/]
親ウィンドウのフォームにdogというnameの要素が複数あります。
で、それの0番目の要素の値を取得したいんですが、
以下のスクリプトが動きません。 どこが問題でしょうか?

var vId=0;
var emt="dog["+vId+"]";
urlX=window.opener.document.fm.elements[emt].value;



332 名前:Name_Not_Found mailto:sage [2009/06/05(金) 18:53:41 ID:???]
["dog[0]"]じゃなくて["dog"][0]じゃないの?

333 名前:Name_Not_Found mailto:sage [2009/06/05(金) 19:22:00 ID:???]
ラジオボタン以外で同じnameのものが複数ってOKだっけ?

334 名前:Name_Not_Found mailto:sage [2009/06/05(金) 19:30:37 ID:???]
NO

335 名前:Name_Not_Found mailto:sage [2009/06/05(金) 19:50:28 ID:???]
チェックボックスというのがあってだな

336 名前:331 mailto:sage [2009/06/05(金) 20:09:10 ID:???]
解決しました
>>332
それとは原因違いましたが、ありがとうございました
他のひとも、どうもです

337 名前:Name_Not_Found mailto:sage [2009/06/05(金) 20:19:31 ID:???]
ラジオボタン以外で同じnameのものが複数、どこが悪い。責任者出て来い!

338 名前:Name_Not_Found mailto:sage [2009/06/05(金) 20:33:29 ID:???]
>>335
チェックボックスからvalueを取得したりはしないだろう

339 名前:Name_Not_Found mailto:sage [2009/06/05(金) 21:08:55 ID:???]
>>337
どこが悪いって、1つのページに <a name="xxx"> が複数あると
ブラウザが困る。だから悪い。

フォーム部品のnameとその他のnameは、
本質的に別のもの(後者は最初からidとするべきだった)ってことだが、
この辺深く考えずに仕様決めちゃった責任者は、
たぶん、Webではお前さんよりよっぽど有名人だと思うぞ。
もし呼べたとして何か言えるのか?w

340 名前:Name_Not_Found mailto:sage [2009/06/05(金) 21:47:48 ID:???]
俺だったらキャバクラに連れてくな



341 名前:Name_Not_Found mailto:sage [2009/06/05(金) 21:55:28 ID:???]
>>327
<script src="data:text/javascript,function A(){alert('でおk')}"></script>

342 名前:Name_Not_Found mailto:sage [2009/06/06(土) 00:06:04 ID:???]
>>341
<script src="data:text/javascript,function A(){alert('それIEで動かない上にUnicode限定だから')}"></script>

343 名前:Name_Not_Found mailto:sage [2009/06/06(土) 00:32:58 ID:???]
すみません。質問です。
JavaScriptを勉強したいのですが、テキストエディターはなにが良いのでしょうか。
ご存知の方はいませんか。

344 名前:Name_Not_Found mailto:sage [2009/06/06(土) 00:56:36 ID:???]
釣れますか

345 名前:343 mailto:sage [2009/06/06(土) 01:03:43 ID:???]
釣りのつもりはありません
ごめんなさい

346 名前:Name_Not_Found mailto:sage [2009/06/06(土) 01:30:29 ID:???]
otbedit

347 名前:Name_Not_Found mailto:sage [2009/06/06(土) 01:43:42 ID:???]
秀丸

348 名前:Name_Not_Found mailto:sage [2009/06/06(土) 02:06:59 ID:???]
terapad

349 名前:Name_Not_Found mailto:sage [2009/06/06(土) 03:12:59 ID:???]
何でもいいんじゃない?EmEditorあたり。
自分はMIFES使ってる。

350 名前:Name_Not_Found mailto:sage [2009/06/06(土) 04:56:48 ID:???]
js2-mode最強説



351 名前:Name_Not_Found mailto:sage [2009/06/06(土) 05:40:22 ID:???]
EDLIN

352 名前:Name_Not_Found mailto:sage [2009/06/06(土) 07:51:52 ID:???]
結論なんて出ない。
使い慣れたのが最高ってことで。

353 名前:Name_Not_Found mailto:sage [2009/06/06(土) 09:48:03 ID:???]
メモ帳 最高

354 名前:Name_Not_Found mailto:sage [2009/06/06(土) 11:39:44 ID:???]
メモ帳最低

355 名前:Name_Not_Found mailto:sage [2009/06/06(土) 11:53:36 ID:???]
最低はcopy conだなw

356 名前:Name_Not_Found mailto:sage [2009/06/06(土) 12:09:35 ID:???]
nani sore kwsk

357 名前:Name_Not_Found mailto:sage [2009/06/06(土) 12:56:23 ID:???]
Emacs

358 名前:Name_Not_Found mailto:sage [2009/06/06(土) 13:09:04 ID:???]
macだけどcot Editorがいいよ
パーミッションなくても無理矢理開いて編集できる

359 名前:Name_Not_Found mailto:sage [2009/06/06(土) 14:56:34 ID:???]
>>349
おおリッチ
今EmEditor使ってるんだけど、比較してどう?
500行超えだすあたりからキー入力すらもたつき出すんだよなー

360 名前:Name_Not_Found mailto:sage [2009/06/06(土) 15:37:07 ID:???]
だからメモ徴が最高



361 名前:Name_Not_Found mailto:sage [2009/06/06(土) 15:50:23 ID:???]
500……?


「使ってるのは1.27です」とかいうオチ?

362 名前:Name_Not_Found mailto:sage [2009/06/06(土) 16:42:53 ID:???]
>>356
copy conは最速のプログラミング方法。
※ ツールではなく"方法"ってのがミソ

インストールどころか、エディタそのものが必要ないという
素晴らしいメリットがある。

スペースや改行を含めて、一文字も間違えることなく、
先頭から一気に入力しなければならないというデメリットもある。

363 名前:Name_Not_Found mailto:sage [2009/06/06(土) 18:23:16 ID:???]
javascriptとVBって似てる?

364 名前:Name_Not_Found mailto:sage [2009/06/06(土) 18:29:21 ID:???]
文法がという意味なら、あんまり似てない

365 名前:Name_Not_Found mailto:sage [2009/06/06(土) 18:30:45 ID:???]
ボタンを押すと、フォームの中の
テキストの部分に[a]って表示される、
とかのコードはよく似てると思うけど?

366 名前:Name_Not_Found mailto:sage [2009/06/06(土) 19:03:33 ID:???]
まったくにてない

367 名前:Name_Not_Found mailto:sage [2009/06/06(土) 20:45:11 ID:???]
JavaScriptの関数で引数の受け渡しは
call by value ですか call by reference ですか
それとも call by name ですか?
関数を引数にして渡すとcall by nameのような気がしました。
数値や文字列を渡すとcall by valueのような気がしました。

実際はどうなんですか?

368 名前:Name_Not_Found mailto:sage [2009/06/06(土) 20:47:44 ID:???]
Cと同じ

369 名前:Name_Not_Found mailto:sage [2009/06/06(土) 21:03:53 ID:???]
>>367
変数に格納されている情報のみを値渡し
格納されてる情報っていうのは所謂オブジェクトID

・・・一言でどう言うのかわからないけど(参照の値渡し?)
参照渡しのように変数いじっても呼び出し元には影響しないし
変数の値であるオブジェクトを破壊的にいじれば呼び出し元に影響する

数値や文字列も不変(破壊的なメソッドが存在しない)
その性質以外は、実装はともかくユーザーには他のオブジェクトと同じように振る舞う

370 名前:Name_Not_Found mailto:sage [2009/06/06(土) 21:21:01 ID:???]
プロミティブ値は値、オブジェクトは参照



371 名前:Name_Not_Found mailto:sage [2009/06/06(土) 22:22:22 ID:???]
"a" と new String("a") が違うってちょっと理解に苦しむよね

372 名前:Name_Not_Found mailto:sage [2009/06/06(土) 22:56:00 ID:???]
値だろ。参照のコピーが値として渡されてるだけ。

373 名前:Name_Not_Found mailto:sage [2009/06/06(土) 23:00:43 ID:???]
>>371
プリミティブとそのラッパーだと思えばおk

374 名前:Name_Not_Found mailto:sage [2009/06/06(土) 23:34:29 ID:???]
>>373
でもプリミティブがメソッド持ってるんだぜ?

alert((new String("abc")).charAt(2));
alert("abc".charAt(2));
alert((new Number(100)).toExponential());
//alert(100.toExponential()); //エラー

String.prototype.hoge = function(){
alert("hoge");
}
(new String("abc")).hoge();
"abc".hoge();

なんか腑に落ちない。

375 名前:Name_Not_Found mailto:sage [2009/06/06(土) 23:36:08 ID:???]
"abc".hoge();もエラーだった

376 名前:Name_Not_Found mailto:sage [2009/06/06(土) 23:46:30 ID:???]
>>374
そう見えるってことと、そうであるってことは違う。
プリミティブがあたかもオブジェクトとして振舞うよーに内部的にラッパーが生成されてメソッドがキックされてるだけ。
ブリミティブにメソッドはない。

377 名前:Name_Not_Found mailto:sage [2009/06/07(日) 01:25:16 ID:???]
100 .toExponential()
(100).toExponential()

378 名前:Name_Not_Found mailto:sage [2009/06/07(日) 01:39:21 ID:???]
Shadowboxを使いたいと思って解説サイト見ながらやってみたけど、
FireFoxではしっかり使えるのにIEだと18192文字目「引数が無効です」エラーが出る。
他のサイトのShadowboxはしっかり表示される。
同じ現象がCSSのposition:fixedを使おうと思った時も起こる。
誰か分かりませんか?

379 名前:Name_Not_Found mailto:sage [2009/06/07(日) 01:47:34 ID:???]
まず質問の文章をなんとかしろ。話はそれからだ。

380 名前:Name_Not_Found mailto:sage [2009/06/07(日) 02:05:13 ID:???]
Shadowbox公式(www.shadowbox-js.com/download.html)からダウンロードしてきて、
解凍、そのままアップロード
prototype.jsとshadowbox.jsをヘッダーに入れる
IEだとエラーが何故か起こる

って事なんですけど…



381 名前:Name_Not_Found mailto:sage [2009/06/07(日) 02:15:24 ID:???]
まぁ、ソース見せちゃった方が話が早いから・・・

382 名前:Name_Not_Found mailto:sage [2009/06/07(日) 02:20:18 ID:???]
cybercraft.my-sv.net/shadowbox/shadowbox.js
これでOK?

383 名前:Name_Not_Found mailto:sage [2009/06/07(日) 02:26:54 ID:???]
おまいが書いたソースをさらせ、と言われてるのがわからんのかなあ・・・
質問投下する前に、読み手の視点で自分の質問が理解されるか推敲した方がいいよ。


384 名前:Name_Not_Found mailto:sage [2009/06/07(日) 02:31:43 ID:???]
<link rel="stylesheet" type="text/css" href="shadowbox/shadowbox.css">
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript" src="shadowbox/shadowbox.js"></script>
<script type="text/javascript">Shadowbox.init({players:['img', 'html', 'iframe', 'swf']});</script>

俺が書いたと言うかコピペした部分はここだけ

385 名前:Name_Not_Found mailto:sage [2009/06/07(日) 02:39:58 ID:???]
>>346-362
とても参考になりました。感謝です。

とりあえず、ntemacsとmeadow3を使っていたのでjs2-modeでがんばってみようと思います。
いろいろな意見いただき、勉強になりました。ありがとうございます。

386 名前:Name_Not_Found mailto:sage [2009/06/07(日) 04:29:19 ID:???]
>>384
FAQをちゃんと読め

387 名前:Name_Not_Found mailto:sage [2009/06/07(日) 04:57:50 ID:???]
>>386
なるほど!解決しました!ありがとうございます!

388 名前:Name_Not_Found [2009/06/07(日) 11:48:57 ID:vcLPLoRc]
runtime errorって何ですか。どんなときに起こるのですか。

389 名前:Name_Not_Found mailto:sage [2009/06/07(日) 12:38:27 ID:???]
質問が漠然としすぎて、実行環境でエラーが起きた時としか言えん

390 名前:Name_Not_Found mailto:sage [2009/06/07(日) 12:41:19 ID:???]
>>388 googleで検索してみたかい?



391 名前:Name_Not_Found mailto:sage [2009/06/07(日) 12:42:13 ID:???]
>>387はどう解決したかくらい残してけよ。ksg

392 名前:Name_Not_Found mailto:sage [2009/06/07(日) 12:48:22 ID:???]
>>376
コードを書く上でリテラルによるオブジェクト(プリミティブ値)と
明示的にnewしたオブジェクトに注意すべき違いはあるの?
内部的云々はこの際考えないこととして

393 名前:Name_Not_Found mailto:sage [2009/06/07(日) 12:55:52 ID:???]
typeofの結果が違うよ。そのくらいかな。

394 名前:Name_Not_Found mailto:sage [2009/06/07(日) 12:57:27 ID:???]
内部的云々も考えれば
パフォーマンスに違いが出るシチュエーションがある
はず。

395 名前:Name_Not_Found [2009/06/07(日) 13:14:07 ID:eSNbO/Oi]
html文書内でtableがいくつ使われてるかカウントすることはできますでしょうか?

396 名前:Name_Not_Found mailto:sage [2009/06/07(日) 13:17:57 ID:???]
>>393-394
サンクス
>>369-371の流れからもっとはっきりした違いがあるのかと思って

>>395
document.getElementsByTagName("table").length

397 名前:Name_Not_Found mailto:sage [2009/06/07(日) 13:40:56 ID:???]
>>392
プリミティブはオブジェクトではないから質問の前提からしておかしい
===の結果が違う

398 名前:Name_Not_Found mailto:sage [2009/06/07(日) 13:53:07 ID:???]
>>397
プリミティブ値は概念的にオブジェクトとして見なすことはできないのか
という質問だと解釈してくれると

でもtypeofが違うなら===が一致しないのは失念してた
これは痛い

399 名前:Name_Not_Found mailto:sage [2009/06/07(日) 17:23:06 ID:???]

element.innerText+='Hello, world!';
element.textContent+='Hello, world!';

と併記しとけばIEとfirefoxはいいんですけど
Operaはどうしたらいいんでしょうか

400 名前:Name_Not_Found mailto:sage [2009/06/07(日) 17:27:29 ID:???]
innerHTML



401 名前:Name_Not_Found mailto:sage [2009/06/07(日) 17:36:25 ID:???]
>>399
とりあえず IE, Firefox, Opera だけを対象として考えるなら

if (!window.document.all)
{
window.HTMLElement.prototype.__defineGetter__('innerText', function(){ return this.textContent; });
window.HTMLElement.prototype.__defineSetter__('innerText', function(val){ this.textContent = val; });
}

先頭にこれ書いておけば、Firefox も innerText だけ変更でおk。

402 名前:Name_Not_Found mailto:sage [2009/06/07(日) 17:59:07 ID:???]
>>401
ありがとうございました
今までIEとfirefox用に
いちいち併記して書いてたんですが
こっち方が格段に楽ですね

403 名前:Name_Not_Found mailto:sage [2009/06/07(日) 18:45:52 ID:???]
>>402
>>401 の方法は「innerText をデフォルトにする」から、IE JScript の非標準プロパティ(とその代替品)を使ってるんだ、ということは忘れないほうがいい

つまり、 >>5 読んどけよ、というちょっとした注意喚起
わかってたならおせっかいでスマンかった

404 名前:Name_Not_Found mailto:sage [2009/06/07(日) 19:29:37 ID:???]
innerTextの有無をdocument.allで調べるアホさはともかく
innerTextとtextContentは動作が違うからな

405 名前:Name_Not_Found mailto:sage [2009/06/07(日) 19:56:24 ID:???]
「こうするべきだ」ってな何かを言いたいなら、遠まわしにしないでそれ書けばいいんじゃ?

というか、わざわざレスするなら、むしろそれを最初に書くべきだと思う。
「違うからな」なんて書いたって、質問者は問題が起こらなきゃスルーだろうし。書く意味ないよそれ。

406 名前:Name_Not_Found mailto:sage [2009/06/07(日) 20:00:22 ID:???]
天然か

407 名前:Name_Not_Found mailto:sage [2009/06/07(日) 20:06:10 ID:???]
>>405=>>399=>>402

408 名前:Name_Not_Found mailto:sage [2009/06/07(日) 20:19:16 ID:???]
>>407
ざけんなw
なんでこんなとこで自演なんぞせにゃならん。

409 名前:Name_Not_Found mailto:sage [2009/06/07(日) 20:24:30 ID:???]
IEで擬似textContentを使う方法を書いたらよかったかもね。
できるか知らないけど。
それなら信者が出てくることはなかったかと。

410 名前:Name_Not_Found mailto:sage [2009/06/07(日) 20:44:07 ID:???]
document.allで分岐すなってのに信者もクソもあるかよw



411 名前:Name_Not_Found mailto:sage [2009/06/07(日) 21:01:51 ID:???]
そこはUA見るでもtry-catchでも好きにすりゃいい部分だろ。
書いた本人はブラウザ限定を明記してるし、手っ取り早い方法書いただけだろ?

Object.prototypeをいじってるってのなら影響も大きいが、
document.allのダミーでっち上げるようなプログラム書く奴なんて、さすがにいるとは思えんから、
判別だけなら十分じゃないか?

412 名前:Name_Not_Found mailto:sage [2009/06/07(日) 21:08:05 ID:???]
手っ取り早い方法ってのはそいつのセンスがモロに出るんだよな

413 名前:Name_Not_Found mailto:sage [2009/06/07(日) 21:37:08 ID:???]
便乗で、>409のようなプログラムがあれば便利そうなんだけど、
どなたか教えてもらえませんか?

414 名前:Name_Not_Found mailto:sage [2009/06/07(日) 21:54:33 ID:???]
空白を保存するという意味ならキツいな

415 名前:Name_Not_Found mailto:sage [2009/06/07(日) 22:15:46 ID:???]
>>414
前後の空白考慮は不要です。
>401の逆で、textContentを使うようになるだけでいいのですが、できるでしょうか?

今書いてるプログラムが、IEだけ特別扱いする方向で書いてる部分が多いので、
>401のような「IEにあわせる」のではなく「IEがあわせる」ように
できるプログラムがあれば、楽になる部分が増えるかなと思ったもので。

416 名前:Name_Not_Found mailto:sage [2009/06/07(日) 22:41:05 ID:???]
IE8ならElement.prototype

IE5-7なら
wing2.jp/~mirrorhenkan/2ch/javascript/read.php/1194265231/
834-838

あるいはtoString()->replace(/textContent/g, 'innerText')->eval()

417 名前:Name_Not_Found [2009/06/07(日) 22:58:32 ID:YdCDrg8w]
夜分すいません。配列ソートなんですが、ソートしたとき左に順番の番号
つけることできませんか。要素がバラバラのときソートして、
1.apple
2.banana
3.cola
4.doburoku
5.egg
見たいな感じで連番振りたいです。

418 名前:Name_Not_Found mailto:sage [2009/06/07(日) 23:07:50 ID:???]
ソートした後番号をつけるだけなら、難しいこと何もないと思うけど?

419 名前:417 [2009/06/07(日) 23:11:25 ID:YdCDrg8w]
>>418
夜分のご回答恐れ入ります。言われて分かりました。ばかでした。
ありがとうございました。

420 名前:Name_Not_Found mailto:sage [2009/06/07(日) 23:14:50 ID:???]
>>416
ありがとうございます。


まず、3番は考えないとして。

2番の<PUBLIC:METHOD>は、むしろ手間が増えそうなのでやめときます。

1番はIE8のみということですが、とりあえず試してみようと思って、
'Element.prototype' でググったページをいくつか見て、
自分でサンプルを試したら Element.prototype.__defineGetter__ がなくてエラーになります。

※ エラー: オブジェクトでサポートされていないプロパティまたはメソッドです。
  が表示されます。

IE8でしか使えないってことで、とりあえず使う予定はないのですが、
なんか気持ち悪いので、理由が分かれば教えてもらえないでしょうか。



421 名前:Name_Not_Found mailto:sage [2009/06/07(日) 23:30:02 ID:???]
msdn.microsoft.com/en-us/library/dd229916(VS.85).aspx

422 名前:Name_Not_Found mailto:sage [2009/06/08(月) 00:05:41 ID:???]
definePropertyでしたか。
ありがとうございました。

423 名前:Name_Not_Found mailto:sage [2009/06/08(月) 07:35:42 ID:???]
>>404

> innerTextとtextContentは動作が違うからな

どう違うの?
おれ名が違うだけで挙動は一緒だとおもてた

424 名前:Name_Not_Found mailto:sage [2009/06/08(月) 08:37:08 ID:???]
>>423
改行のことじゃないかな?

element.innerText="hello\nworld"

hello
world

element.textContent="hello\nworld"

hello world

425 名前:Name_Not_Found mailto:sage [2009/06/08(月) 09:37:08 ID:???]
OperaのinnerTextはtextContentの別名に過ぎないが
WebKitのinnerTextはIEのように空白を除去したり色々

ふつうに使う分には問題にならないが汎用化するとハマる奴がでる
textContentを持っているならそっちを使うのが無難

textContentは全ノードが持っていることも違うっちゃ違う

426 名前:Name_Not_Found mailto:sage [2009/06/08(月) 09:57:53 ID:???]
>>425 ★★

427 名前:Name_Not_Found mailto:sage [2009/06/08(月) 10:43:16 ID:???]
そんなとこで嵌ってないでDOMつか……いやなんでもない。

428 名前:Name_Not_Found mailto:sage [2009/06/08(月) 12:48:53 ID:???]
>>427 ★☆

429 名前:Name_Not_Found mailto:sage [2009/06/08(月) 14:49:09 ID:???]
JScriptとJSバージョンの対応表ってどこかにありますか?

430 名前:Name_Not_Found mailto:sage [2009/06/08(月) 15:04:00 ID:???]
>>391
Why does the Shadowbox window open up halfway down the page in Internet Explorer?

The answer to this problem may be that you are not using a strict or transitional DOCTYPE as explained on the support page. In short, placing either of the following code snippets at the top of your HTML page should help:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"www.w3.org/TR/html4/strict.dtd">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"www.w3.org/TR/html4/loose.dtd">

この後半部分をコピペした



431 名前:Name_Not_Found mailto:sage [2009/06/08(月) 15:15:27 ID:???]
>>429
wikipediaのjavascriptかecmascriptあたりで
ブラウザと対応バージョンの表を見かけた記憶がある

432 名前:Name_Not_Found mailto:sage [2009/06/08(月) 15:17:14 ID:???]
だから、ソース見せろと言ったのに

433 名前:429 mailto:sage [2009/06/08(月) 16:30:25 ID:???]
>>431
そっちの方向へ行ってみます。ありがとうございます。

434 名前:Name_Not_Found mailto:sage [2009/06/08(月) 17:30:41 ID:???]
失礼します。
YOUTUBEなどで、ページを読み込んだ時点では画像はすべてダウンロードさせずに、
ウィンドウをスクロールしたときに順次画像をダウンロードする仕組みはどのような機能?なのでしょうか。
後学のために知っておきたいのですが

ttp://www.youtube.com/results?search_type=&search_query=javascript
たとえばこのページのような感じです。最近ではニコニコ動画とかyourfilehostなんかも採用してますが。

435 名前:Name_Not_Found mailto:sage [2009/06/08(月) 17:55:16 ID:???]
ね、callerってIEじゃ不可だっけ?

436 名前:Name_Not_Found mailto:sage [2009/06/08(月) 18:21:44 ID:???]
>>434
そのページ見てもウチの環境じゃわからなかった
けど、内容的には下のような感じかな。
ttp://labs.unoh.net/2008/01/lazy-loading-of-images.html
やり方は他にも色々あるけど、時間だとか、スクロールで判断するのが一般的じゃないかな

437 名前:Name_Not_Found mailto:sage [2009/06/08(月) 18:43:20 ID:???]
だからスクリプトブロックされると空白になってたのか

438 名前:423 mailto:sage [2009/06/08(月) 19:10:05 ID:???]
>>424,425
トンクス!


439 名前:Name_Not_Found mailto:sage [2009/06/08(月) 19:28:08 ID:???]
>>436
ありがとうございます。勉強になります。
スクロールでファンクションを呼び出すイベントハンドラというのはあるんでしょうか。
初めて見る挙動なので少し興味がありますね。

440 名前:Name_Not_Found [2009/06/09(火) 01:29:23 ID:Jw70WnkQ]
javascriptにjspって書き込めるんですか?

誰か教えてください…



441 名前:Name_Not_Found mailto:sage [2009/06/09(火) 01:46:40 ID:???]
コーディング知らないでデザインやる方が効率悪いけどな

442 名前:Name_Not_Found mailto:sage [2009/06/09(火) 02:07:52 ID:???]
>>439
ニコ動はnicolib.jsをlazyimageで検索
というか聞くよりも該当サイトのソースを眺めてみろって
後学のため云々ならなおさらだ

>>440
content-typeを正しく指定して吐き出せば由来は関係しない
くれぐれも鯖側できっちりJSP処理するんだぞ

443 名前:439 mailto:sage [2009/06/09(火) 03:26:57 ID:???]
>>442
分かりました。ありがとうございます。

444 名前:Name_Not_Found [2009/06/09(火) 04:32:53 ID:mS9+yTYu]
pc11.2ch.net/test/read.cgi/gamedev/1238520070/692

692 :名前は開発中のものです。:2009/06/09(火) 00:57:34 ID:2fI/sHFo
何言ってんだ。プログラマにまともな精神持った奴がいた試しなんてねえよ。
第一プログラマと精神科なんてほとんどセットなのに今更それを語るとか情弱以下だろ。

445 名前:Name_Not_Found mailto:sage [2009/06/09(火) 05:40:29 ID:???]
>>444=情弱以下

446 名前:Name_Not_Found mailto:sage [2009/06/09(火) 11:14:25 ID:???]
そんな生ゴミ持ち込むなよ

447 名前:Name_Not_Found mailto:sage [2009/06/09(火) 17:26:22 ID:???]
質問です。

FirefoxやOperaだと、HTMLElement.prototypeにメソッドを追加すれば
全ての要素にメソッドが追加でき、このHTMLElementはwindowの子として存在します。
IE8で同じことをするには、Element.prototypeをいじればよいことは分かったのですが、
このElementはどこにあるのか(orグローバルなのか)、親子関係はどうなっているのかなどについて、
msdnなどを探してみたのですが、そのような情報を見つけられませんでした。
IE8についての、この辺のリファレンスが乗っているサイトをご存じの方がいたら、
教えていただきたいです。よろしくお願いします。

448 名前:Name_Not_Found mailto:sage [2009/06/09(火) 21:34:14 ID:???]
あったお

Document Object Model Prototypes, Part 1
msdn.microsoft.com/en-us/library/dd282900(VS.85).aspx
Document Object Model Prototypes, Part 2
msdn.microsoft.com/en-us/library/dd229916(VS.85).aspx

449 名前:Name_Not_Found mailto:sage [2009/06/09(火) 21:54:40 ID:???]
>>448
ありがとうございます。

そうか、よく考えたら>441の前ページ探すべきでしたね…。




しかし…なんだこれ。

450 名前:Name_Not_Found mailto:sage [2009/06/09(火) 21:56:14 ID:???]
×441 ○421
ミス訂正。



451 名前:Name_Not_Found mailto:sage [2009/06/09(火) 23:25:53 ID:???]
質問です。jsファイルを楽に実行する方法はありませんか。
入門書のサンプルプログラムを楽に実行する方法がわかりません。
今は、01.jsを実行するために01.htmlを作っています

<html>
<head><title>01</title></head>
<body>
<script language="JavaScript" src="01.js">
</script>
</body>
</html>

良い方法はありませんか。

452 名前:Name_Not_Found mailto:sage [2009/06/09(火) 23:37:11 ID:???]
超初心者っぽいのでマジレスしてやろう。

HTMLをいちいち手書きするのが面倒だという趣旨かな?
だったらHTMLエディタを使おう。
だいたいのHTMLエディタなら、
テンプレートとかでほとんどの骨格は書いてくれるはず。

scriptタグだけは真面目に書かなきゃいけないが、
タグ補完機能のあるHTMLエディタを使うと、そのめんどさもだいぶ軽減される。

自分はez-HTMLを使ってる。他にも使いやすいのあるかもしれないけどね。

あと関係ないかもしれないけど、
コードは必ずしもjsファイルに書かなくてもいい。
サンプルプログラムの実行ぐらいだったらscriptタグ中にそのままコード書いた方が楽かも。

453 名前:451 mailto:sage [2009/06/09(火) 23:50:16 ID:???]
>>452
ずばりのお答えありがとうございます。
HTMLエディタは知りませんでした。
その他のアドバイスも助かります。

454 名前:Name_Not_Found mailto:sage [2009/06/10(水) 05:10:42 ID:???]
質問す。

class="foo bar"
というのを
class="foo"
class="bar"
のように扱いたいんだけど、どうしたらいいの?

455 名前:Name_Not_Found mailto:sage [2009/06/10(水) 05:24:08 ID:???]
>>454
何を望んでるのか良くわからん

456 名前:Name_Not_Found mailto:sage [2009/06/10(水) 06:18:45 ID:???]
>>454
(1) classというのは予約語だから変数名にできない。仮にclass1とする。
(2)
class1 = "foo"; ... class1に「"foo"」が入る
class2 = "bar"; ... class1に「'bar"」が入る(前の値は消える)
というわけでそれは「class1="bar";」だけと同じなのでは?

457 名前:Name_Not_Found mailto:sage [2009/06/10(水) 06:35:21 ID:???]
あれ、失敗した。入れる先が1つの同じ変数名なら上書き、
違うなら別々の変数に入れるだけ、という意味でした。

458 名前:Name_Not_Found mailto:sage [2009/06/10(水) 06:41:01 ID:???]
>>454はJSじゃなくてhtmlです。
こういう書けばよかったかな。
<p class="foo bar">

459 名前:Name_Not_Found mailto:sage [2009/06/10(水) 06:58:10 ID:???]
そもそも <p class="foo"> に相当することはできているの。

460 名前:Name_Not_Found mailto:sage [2009/06/10(水) 07:50:37 ID:???]
>>458
いやだからそれに対してどんな処理がしたいのかって。
getElementsByClassName的なことがしたいのか、
スタイルをあてたいのか。とか。
よくわかんないけどとりあえず判定メソッドだけは書いてみたよ。

function matchClass(element, className){
 var classNames = element.getAttribute('class').split(" ");
 for(var i = 0; i < classNames.length; i++){
  if (classNames[i] == className) {return true;}
 }
 return false;
}



461 名前:Name_Not_Found mailto:sage [2009/06/10(水) 08:09:38 ID:???]
IE7以下切り捨てか

462 名前:Name_Not_Found mailto:sage [2009/06/10(水) 08:13:03 ID:???]
ちょっといけてなかったんで書き直そう。

function matchClass(element, className){
 var classAttr = element.getAttributeNode('class');
 if (!classAttr || !classAttr.value){return false;}
 var classNames = classAttr.value.split(" ");
 for(var i = 0; i < classNames.length; i++){
  if (classNames[i] == className) {return true;}
 }
 return false;
}

463 名前:Name_Not_Found mailto:sage [2009/06/10(水) 08:31:55 ID:???]
どうすんだよこれ

464 名前:Name_Not_Found mailto:sage [2009/06/10(水) 09:00:54 ID:???]
getElementsByClassNameならいちいち自分で実装しなくてもコードはあちこちにあるだろ

465 名前:Name_Not_Found mailto:sage [2009/06/10(水) 12:32:18 ID:???]
 すみません御教示ください。

 一定時間で2枚のリンク画像が入れ替わる、
 ということをやりたくサンプルを探していたところ、
 ttp://auone-net.okwave.jp/qa3871525.html
 の回答ひとつめ(良回答20pt)の書き方が、
 bodyでリンクを指定できるため一番しっくりきました。

 ただ私の場合、一ページに複数設置したいと考えてます。
 回答者も「複数使う場合はsetTimeout()を使った方が良いので」と書いているので、
 「setTimuout」でググっていろいろ見たのですが、初心者のためわかりませんでした。

 ●<script>にリンクを入れてbodyでsrc=""指定という方法ではなく、上記回答のようにbodyに<div>などでくくって直接リンクを記述。
 ●それで一ページに複数使用。

 ということは可能でしょうか。
 可能な場合、ここなんか初心者でもじっくり読んだらわかるんじゃない、
 というような参考になるページがあれば教えていただけないでしょうか。
 お手間かけますが、よろしくお願いいたします。

466 名前:Name_Not_Found mailto:sage [2009/06/10(水) 15:20:55 ID:???]
2行各2セルで四分割な構造のテーブルがあり、その右下のセルに、全く同じ構造のテーブルがn個入る
無限変則入れ子のテーブルがあります。んで、そのテーブル内の入力項目を再帰的にチェックするスクリプトを書いてます。

function fReflexiveCheck(sID) {
 var iBit = true;
 var rURL = document.getElementById("url:" + sID);
 if (rURL.value.length == 0) {
  rURL.style.backgroundColor = "yellow";
  iBit = false;
 } else {
  rURL.style.backgroundColor = "white";
 }
 var rTable = document.getElementById("tbl:" + sID);
 if (rTable.rows.length > 1) {
  rCell = rTable.rows[1].cells[1];
  for (var i in rCell.childNodes) {
   if (typeof rCell.childNodes[i] == "object") {
    if (rCell.childNodes[i].nodeName == "TABLE") {
     var aID = rCell.childNodes[i].id.split(":");
     aID.shift();
     iBit = fReflexiveCheck(aID.join(":"));
    }
   }
  }
 }
 return iBit;
}

チェックは途中まで上手くいくのですが、↓のような構造の場合、何故か途中で処理が終了してしまいます。
ttp://up2.viploader.net/pic/src/viploader1047047.jpg
変数は全部ちゃんとvar宣言してるので、カウンタが壊れちゃってるとかも無いと思うんですが…
わかる方いらっしゃいましたら、ご教示お願いしますm(_ _)m

467 名前:Name_Not_Found mailto:sage [2009/06/10(水) 15:40:12 ID:???]
>>465
<div id="links1">
<div><a href="1-1">1-1</a></div>
<div><a href="1-2">1-2</a></div>
<div><a href="1-3">1-3</a></div>
</div>
<div id="links2">
<div><a href="2-1">2-1</a></div>
<div><a href="2-2">2-2</a></div>
<div><a href="2-3">2-3</a></div>
</div>
で、それぞれ今表示中のdivをdisplay:noneにして次のdivをdisplay:blockにすれば
いいだけなんじゃないの?

>>466
for inはそこでは使うな。
forの中でalert(i)してみた?

468 名前:466 mailto:sage [2009/06/10(水) 16:06:13 ID:???]
>>467
ありがとうございます!

iの中身を表示したら、添え字に数字以外の文字がたくさん入っていました
ですので、 for (var i=0; i<rCell.childNodes.length; i++) { に変更しました。
ですが、再帰処理復帰後にループが終わってしまう現象は改善しませんでしたorz

ループ中に再帰処理を呼び出して、そこでまたループ処理をした場合
iのカウンタがおかしくなってしまうんでしょうか…
var宣言してるから常に新しい実体が出来ている、というつもりで作成しているんですが
うーむうーむ

469 名前:466 mailto:sage [2009/06/10(水) 16:18:31 ID:???]
連投すみません

検証として下記のようにしてみたのですが、改善しませんでした。(sIDは全体で一意)
------
 aCt = new Array();
 for (aCt[sID]=0; aCt[sID]<rCell.childNodes.length; aCt[sID]++) {
------
ですので、カウンタは原因では無いようでした。

470 名前:Name_Not_Found mailto:sage [2009/06/10(水) 16:18:48 ID:???]
関数実行時にその関数内でvar宣言したものは新しくなるって解釈で間違ってない

エラー出て止まってるとかじゃないの?



471 名前:466 mailto:sage [2009/06/10(水) 16:20:47 ID:???]
IEと、firefoxのコンソールで確認しながらやってます。
ブラウザの表示では、エラーは出てないです。

472 名前:Name_Not_Found mailto:sage [2009/06/10(水) 16:39:21 ID:???]
それじゃxhtmlのせいでnodeNameが大文字とは限らないとか

473 名前:Name_Not_Found mailto:sage [2009/06/10(水) 16:43:31 ID:???]
>>460
>>454す。
class名を抽出してリストを生成したい。

<p class="foo bar">ほげほげ
<p class="baz">ぴよぴよ



<ul>
<li>foo
<li>bar
<li>baz
</ul>

474 名前:Name_Not_Found mailto:sage [2009/06/10(水) 16:56:49 ID:???]
>>466
var rCell

>>465
「複数設置したい」の意味が、1ページ内にバラバラに置きたいのか、
固めて置いてしまっていいのか、どっち?
固めて置くでいいのなら、>467でおk。
まあ、たぶん違うだろうけどw

バラバラに置きたい場合は・・・すまん時間がない誰か任せた。

475 名前:Name_Not_Found mailto:sage [2009/06/10(水) 17:02:20 ID:???]
>>474
バラバラに置いてもいいんじゃない?
というより、バラバラなタイミングで変化させるのだと>>467ではできないかと。

476 名前:466 mailto:sage [2009/06/10(水) 17:07:49 ID:???]
>>474
あ…ありがとうございます(´;ω;`)ウッ…直りました!!
私が言うのもなんですが、良くこんなところ気が付きましたね…(´;ω;`)
ほんとにありがとうございました!

>>472さんも、ありがとうございました!

477 名前:Name_Not_Found mailto:sage [2009/06/10(水) 17:41:47 ID:???]
>>475
時間じゃなくて位置の問題でしょ。
>467を1ページの中にバラバラに置くと、
最初の設定時間まではページの上に画像を3つ表示して、
次の時間からは、上の3つが消えて下に画像を3つ表示とかになる。

478 名前:465 mailto:sage [2009/06/10(水) 17:57:23 ID:???]
>>467

 どうもありがとうございます。
 ためしてみました。教えていただいた方法はsetIntervalの場合でよろしいんですよね。
 ただ、setIntervalとsetTimeoutの違いを調べていて、
 setIntervalは処理に関わりなく実行すると知ったため、
 処理を終えてから次の処理を実行するsetTimeoutのほうが、
 こちらの都合でありがたいんです。

 あと、おしえていただいたものを試したところ、>>477さんもかいておられますが、一番最初に画像が6枚表示さてれしまってから、処理が始まりました。
 最初の6枚表示されないほうがありがたいです。

>>474
>>475
 すみません。
 >1ページ内にバラバラに置きたいのか、固めて置いてしまっていいのか

 やろうと思っているのは、
 一列td5つのtableタグが、ページ内に3つ上から順に近接してある。
 こちらの都合でtr2段とかにはしていません。
 このtd5つそれぞれに、2枚がいれ変わるリンクした画像をいれる。

 というものですので、
 この場合はバラバラになるのでしょうか、固まっているのでしょうか。
 またタイミングはすべて同じです。意図的に右端にいくにつれて5秒ずつ増やしたりなんてことはありません。

 返事が明日になってしまいますが、よろしくお願いいたします。

479 名前:465 mailto:sage [2009/06/10(水) 17:59:46 ID:???]
 すみません。
 上の文中>>477も書いていますが、とか書きましたが違いますね。


480 名前:467 mailto:sage [2009/06/10(水) 18:09:51 ID:???]
理解されてないので書き直す。

<div id="links1">
<div style=""><a href="1-1">1-1</a></div>
<div style="display:none"><a href="1-2">1-2</a></div>
</div>
(中略)
<div id="links2">
<div style=""><a href="2-1">2-1</a></div>
<div style="display:none"><a href="2-2">2-2</a></div>
</div>



<div id="links1">
<div style="display:none"><a href="1-1">1-1</a></div>
<div style=""><a href="1-2">1-2</a></div>
</div>
(中略)
<div id="links2">
<div style="display:none"><a href="2-1">2-1</a></div>
<div style=""><a href="2-2">2-2</a></div>
</div>

がいったりきたりすればいいんじゃない?



481 名前:Name_Not_Found mailto:sage [2009/06/10(水) 18:44:22 ID:???]
>>480
>>465のリンク先を見た上で>>467を書いたんだよな?

>>465のリンク先の1に、お前さんの書いた>>467を組み込んだとしたら、
どう考えたって>>480にゃならんだろうが。

482 名前:467 mailto:sage [2009/06/10(水) 18:52:01 ID:???]
読んだけど、1つ1つにidふって面倒だなあって感想ありきで書いたからな。
別の解釈があることを想定してなかったんだよ。悪いな。

483 名前:Name_Not_Found mailto:sage [2009/06/10(水) 22:45:42 ID:???]
document.write("value1 = " + value1 + "<br />");
document.write("delete value1: " + delete value + "<br />");
for (var value1 = 0; value1 < 2; ++value1) {
document.write(value1 + "<br />");
}

484 名前:483 mailto:sage [2009/06/10(水) 22:47:11 ID:???]
>>483 は誤爆です
ごめんなさい

485 名前:Name_Not_Found mailto:sage [2009/06/11(木) 03:42:02 ID:???]
<html><head>
<script type="text/javascript">
window.onload = function() {
var banner_set = []; var banner_num = [];
var div = document.getElementsByTagName('div');
for (var i = 0; i < div.length; i++) {
if (div[i].className != 'bannerset'){ continue; }
var link = div[i].getElementsByTagName('a');
banner_set.push(link); banner_num.push(0);
}
setInterval(function(){
for (var i = 0; i < banner_set.length; i++) {
banner_set[i][banner_num[i]].style.display = 'none';
banner_num[i] = (banner_num[i] + 1) % banner_set[i].length;
banner_set[i][banner_num[i]].style.display = 'block';
} },5000);
}
</script>
<style type="text/css">
.banner { display:none; }
</style>
</head>
<body>
<div class="bannerset"><a href="URL1-1"><img src="画像1-1"></a><a href="URL1-2" class="banner"><img src="画像1-2"></a>
<a href="URL1-3" class="banner"><img src="画像1-3"></a></div>
<div class="bannerset"><a href="URL2-1"><img src="画像2-1"></a><a href="URL2-2" class="banner"><img src="画像2-2"></a>
<a href="URL2-3" class="banner"><img src="画像2-3"></a><a href="URL2-4" class="banner"><img src="画像2-4"></a></div>
<div class="bannerset"><a href="URL3-1"><img src="画像3-1"></a><a href="URL3-2" class="banner"><img src="画像3-2"></a></div>
</body></html>

486 名前:Name_Not_Found mailto:sage [2009/06/11(木) 03:50:09 ID:???]
>>465
↑ざっと書いてみた。

idはいらない。リンクをまとめてるdiv に class="bannerset" と、
それぞれのリンクの2番目以降に class="banner" を書いておくこと。

切り替える数は↑の通り、それぞれバラバラでかまわないけど、
切り替えるタイミングは全部同じだから、数が少ない方が1周するのが
早いってことになるんでよろしく。

487 名前:Name_Not_Found mailto:sage [2009/06/11(木) 07:35:32 ID:???]
>>485
★☆☆☆☆

488 名前:Name_Not_Found mailto:sage [2009/06/11(木) 07:42:07 ID:???]
>>487
未提出←採点不可。論外。



動くプログラム>>>>>>>>動かないプログラム>>>(越えられない壁)>>>批判厨=雑魚

489 名前:Name_Not_Found mailto:sage [2009/06/11(木) 13:36:26 ID:???]
>>485
あとはスクリプトOFF時にどうしたいかぐらいだね。
必ず表示バナーを1つにして見栄えを確保したいのであればこのままだし、
全部バナーが表示されないと困るときは、
.banner{display:none}じゃなくて
onloadの中で1つ1つdisplay:noneを設定していけばいいし。

490 名前:465 mailto:sage [2009/06/11(木) 16:38:30 ID:???]
 返事遅くなり、もうしわけありません。

>>467,480

 ご指導ありがとうございます。
 理解力のない頭ではありますが考えてみますので、
 お時間いただき試してみます。
 
>>486

 ご教示ありがとうございます。
 467さんのを考えて試してみてから、
 参考にさせていただきます。
 
>>489

 そこまで気が回りませんでした。
 ご教示ありがとうございます。


 急ぎの作業ではないので、腰をすえて考えてまみます。



491 名前:Name_Not_Found mailto:sage [2009/06/12(金) 01:55:25 ID:???]
chromeのJSについて質問です。

location.search がchromeだと取得できないみたいなんですが
そういう仕様ですか?それとも俺だけ・・・?

例えば
localhost/?test というURI上で
if(location.search.match("test")) alert("TRUE");
は、chrome 以外ではtestがマッチしません。

また
if(location.search == "") alert("TRUE");
の場合、chromeのみ通ります。

これについで誰か、仕様なのかどうか知りませんか?

ちなみにchromeは最新2.0.172.31。
他はIE8、Fx3、Safari3でテストしてます。

492 名前:Name_Not_Found mailto:sage [2009/06/12(金) 01:57:05 ID:???]
ごめん

> は、chrome 以外ではtestがマッチしません。
                        ↓
                       します。

493 名前:Name_Not_Found mailto:sage [2009/06/12(金) 06:25:27 ID:???]
で、実際にlocation.searchに何が入っているかは確認したのか

494 名前:Name_Not_Found mailto:sage [2009/06/12(金) 07:12:17 ID:???]
厳密比較演算子使いましょう

495 名前:Name_Not_Found mailto:sage [2009/06/12(金) 10:39:28 ID:???]
>>491
XP、chrome2.0.172.31で試してみたけど、
if(location.search.match("test")) alert("TRUE");
if(location.search == "") alert("TRUE");
両方alertが出なかったよ。else付けたしたらelseの方が実行されたし。

alert(location.search)で何が入ってるか確認した?

496 名前:Name_Not_Found mailto:sage [2009/06/12(金) 15:09:34 ID:???]
確認した範囲ではlocation.searchの仕様は他と同じだった

たぶんalert(location.href)してみたほうがいい
エラーページに対してブックマークレットで動作確認してる気がするんだけど

497 名前:Name_Not_Found [2009/06/12(金) 20:20:32 ID:Wxbu78+q]
すいません、色々とググってみたのですが、解決できずに質問です・・・。

以下のような記述をすると・・・。

<div id="hoge" onmouseover="func1" onmouseout="func2">
 <div id="hoge_left">
  <a href="huga"></a>
 </div>
 <div id="hoge_right">
  <a href="fuga"></a>
 </div>
</div>

子要素にマウスが移動してもfunc1やfunc2が発動してしまいますよね。
これを何とか、発動しないようにして、一番外のhoge要素のみ反応するようにしたいんです。
event.target.idで指定してみても無理でした。

jqueryを使ってみたら、なぜか以下のようにhoverでバインドしても、ピクリとも反応しません。

$("div#hoge").hover(func1, func2); // これもダメ。

何か手はないものでしょうか・・・・。

498 名前:Name_Not_Found mailto:sage [2009/06/12(金) 20:33:02 ID:???]
function func1(event) {
 if(event.target.id != "hoge") return true;

このままだとIEで動かないだろうけど、こんな感じで


499 名前:Name_Not_Found mailto:sage [2009/06/12(金) 20:57:22 ID:???]
>>498

ありがとうございます。
やってみましたが、子要素間でマウスを移動させると、やはりfunc1、func2が呼ばれてしまいました。

うーむ・・・。

500 名前:Name_Not_Found mailto:sage [2009/06/12(金) 21:02:53 ID:???]
targetがaの可能性もあるんだから上も確認しないと駄目に決まってんだろ



501 名前:Name_Not_Found mailto:sage [2009/06/12(金) 21:40:20 ID:???]
>>500
いや、どうもA要素とかいう問題でもなさそうです・・・。

targetをコンソールに書きだしてみたら、

子要素のDIVを行き来させると、なぜか親要素のDIVのeventも呼び出されてしまいます。

つまり、>>497でいえば、

<div id="hoge_left"></div>にあるマウスカーソルを、
<div id="hoge_right"></div>に移動させると、
<div id="hoge">からは出てないし、入ってもいないのに、
<div id="hoge">のイベントが呼び出されます。

502 名前:Name_Not_Found mailto:sage [2009/06/12(金) 21:41:07 ID:???]
んなの当たり前

503 名前:Name_Not_Found mailto:sage [2009/06/12(金) 21:45:38 ID:???]
>>502
すいません、読解力が足りず・・・。
ということは、>>498の方法では回避できないということですか?

504 名前:Name_Not_Found mailto:sage [2009/06/12(金) 22:50:31 ID:???]
onなんとかをやってるタグの直下のタグでも同じonなんとかのイベントを拾って
そこでcancelBubbleをfalseにするなりreturn falseするなりしないといけなかったような。

505 名前:Name_Not_Found mailto:sage [2009/06/12(金) 22:53:52 ID:???]
そのへんめんどくさくなって、対象エリアの座標を計算をした上で
カーソル位置を捕捉して出入りをチェックしたことあるなぁ

506 名前:Name_Not_Found mailto:sage [2009/06/12(金) 23:11:47 ID:???]
そうそうw
昔画像を入れ替えて遊んでいたのを今風に書いてみるとどうなるのって事で調べてて
cancelBubbleが出てきてめんどくさくなってやめたw

507 名前:Name_Not_Found mailto:sage [2009/06/13(土) 00:06:23 ID:???]
e.targetがdiv#hogeに包含されているかいないかを調べれば良いだけ
IEならcontains、Fx、OperaならcompareDocumentPosition、そうでなくとも祖先チェック
過去ログに何度も出て来たぜ


508 名前:Name_Not_Found mailto:sage [2009/06/13(土) 00:16:13 ID:???]
なんという。。。

509 名前:Name_Not_Found mailto:sage [2009/06/13(土) 00:26:15 ID:???]
>>504-507

ありがとうございます〜!
なるほど、contains、compareDocumentPositionで実現できるのですね・・・。

>>505にインスパイヤされて、
対象のdiv要素の位置と幅、高さを取得して、
マウスの位置がそこに重なったらfunc1を、出たらfunc2を呼ぶようにして力技で実現しました・・・。笑

常にマウスの位置情報を取得してるのが、若干気持ち悪いですが・・・。

可能であれば、>>507さんの方法で書き直して見たいと思います。

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

510 名前:Name_Not_Found mailto:sage [2009/06/13(土) 00:33:15 ID:???]
>>507
e.relatedTargetが、だな



511 名前:491 mailto:sage [2009/06/13(土) 02:11:02 ID:???]
返事遅くなってすみません。

>>493-496
alert(location.search) ではダイアログに何も表示されません。
if(location.search == "") alert("TRUE"); でアラート:TRUEが出るので""が返ってるんじゃないかと。

とりあえずバグでも仕様でもなさそうなので、再インスコとかしてみます。
ありがとう

512 名前:Name_Not_Found mailto:sage [2009/06/13(土) 02:19:23 ID:???]
ローケーションバーにJavaScript入れてやっているという落ちだろどうせ

513 名前:Name_Not_Found mailto:sage [2009/06/13(土) 02:32:10 ID:???]
だからlocation.href見てみろって
きっとエラーページの内部URLだから

514 名前:Name_Not_Found mailto:sage [2009/06/13(土) 02:58:39 ID:???]
>>513
あ、書くの忘れてたんだけど
location.href は ちゃんと localhost/ を返すよ

>>512
や、.jsに記述 -> .htmlから呼び出し

515 名前:Name_Not_Found mailto:sage [2009/06/13(土) 03:03:02 ID:???]
>>512
それでもlocation.search拾えたっていうかそれで確認した

>>514
そうなのか、それは失礼

・・・ってダメだろ、?testついてないじゃないかw


516 名前:Name_Not_Found mailto:sage [2009/06/13(土) 03:21:27 ID:???]
>>515
そういえばそうだね、気づかなかった・・・


まあ普通はちゃんと動作する事が分かったし
FxなりSafariなりでは問題ないからテストはできるし
再インスコとかしてなんとかしてみます。

まじお前らありがとうございます

517 名前:Name_Not_Found [2009/06/13(土) 18:09:35 ID:WQ1/H40I]
valueofってなんですか?教えてください。

518 名前:Name_Not_Found mailto:sage [2009/06/13(土) 18:52:08 ID:???]
アルファベット

519 名前:Name_Not_Found mailto:sage [2009/06/13(土) 19:36:00 ID:???]
English

520 名前:Name_Not_Found mailto:sage [2009/06/13(土) 19:59:53 ID:???]
綴りミス



521 名前:Name_Not_Found mailto:sage [2009/06/13(土) 21:28:14 ID:???]
すまん、Engrishだった。

522 名前:Name_Not_Found mailto:sage [2009/06/14(日) 02:46:42 ID:???]
もう許してやれよ

523 名前:Name_Not_Found mailto:sage [2009/06/15(月) 20:02:18 ID:???]
関数の中に関数を入れることはできますか?
下のようなソースを見せたら気持ち悪いしそんなのできないと言われたんですが。

<html>
<head>
<script>
function calc_fare(){
var i=0;
var distance =0;
var k = [1.3, 2.2, 1.8, 1.5, 2.2, 1.6, 2.2, 3.6, 4.4, 2.0, 2.3, 3.4];
//配列を足し算する関数
var add = function(a, b){
var a = parseInt(a);
var b = parseInt(b);
if(a < b) distance = k.slice(a, b);
return eval(distance.join('+'))/1000;

}
//引数を受け渡して、返り値をkmに代入
var km = add(document.form1.jyousya.value, document.form1.kousya.value);
document.form1.km.value = km;
}
</script>
</head>
<body>
</body>
</html>

524 名前:Name_Not_Found mailto:sage [2009/06/15(月) 20:07:24 ID:???]
やってみればいいじゃない

525 名前:Name_Not_Found mailto:sage [2009/06/15(月) 20:14:21 ID:???]
計算はできました。

けどなにかjavascriptの文法的に何かおかしいのかなーと

526 名前:Name_Not_Found mailto:sage [2009/06/15(月) 20:24:54 ID:???]
何の問題もないよ

527 名前:Name_Not_Found mailto:sage [2009/06/15(月) 20:25:59 ID:???]
強いて言えば>>523はそうやる意味がわからないから気持ち悪い

528 名前:Name_Not_Found mailto:sage [2009/06/15(月) 20:29:15 ID:???]
できないなんて事は全く無いけど
addの部分を関数にする必要ある?それ
気持ち悪いのは正しいかも

529 名前:Name_Not_Found mailto:sage [2009/06/15(月) 20:45:07 ID:???]
なるほど、つまりこうすればいいわけですね

<html>
<head>
<script>
function calc_fare(){
 var i=0;
 var distance =0;
 var k = [1.3, 2.2, 1.8, 1.5, 2.2, 1.6, 2.2, 3.6, 4.4, 2.0, 2.3, 3.4];

 var a = parseInt(document.form1.jyousya.value);
 var b = parseInt(document.form1.kousya.value);
 if(a < b) distance = k.slice(a, b);
 var km=eval(distance.join('+'))/1000;

 document.form1.km.value = km;
}
</script>
</head>
<body>
</body>
</html>
</head>
<body>
</body>
</html>

関数の中に関数を入れることはできないとはっきり否定されたので何かあるのかと思いましたが一応できることはできるんですね。

お早い回答ありがとうございました。

530 名前:Name_Not_Found mailto:sage [2009/06/15(月) 21:08:45 ID:???]
>>523
ネタで書いたのにホントに>>243のevalの状態で出したのか
すごいな



531 名前:Name_Not_Found mailto:sage [2009/06/15(月) 21:29:14 ID:???]
evalにつっこまないし、関数宣言についての知識は間違ってるし、
あんまりその先生はJavaScriptについてはあてにしちゃいかん気がする。

532 名前:Name_Not_Found mailto:sage [2009/06/15(月) 21:35:43 ID:???]
生徒「先生!ECMAScriptって何ですか?」
その先生「…」
生徒「クロージャって何ですか?」
その先生「…」
生徒「ラムダ言語って何ですか?」
その先生「…」

533 名前:Name_Not_Found mailto:sage [2009/06/15(月) 21:43:45 ID:???]
ちょっと気になったんで聞いてみたいんだが、

function A(){
 var X = B(x);
 ...
 var Y = B(y);
 ...
}

とかするとき、関数Bはどこで宣言する?
自分はA以外でBを使うならAの外、Aでしか使わないならAの内部で宣言してるが。

534 名前:Name_Not_Found mailto:sage [2009/06/15(月) 21:45:14 ID:???]
>>243のevalは絶妙だから突っ込まれなくても間違いじゃないかと
だから自分も反応に興味があった

でもなぁ、「そんなのできない」と言ってのけるレベルでevalはスルーだなんて酷いw

535 名前:Name_Not_Found mailto:sage [2009/06/15(月) 21:48:35 ID:???]
>>533
その関数の性質と長さによっては埋め込むこともあるけど
for (var i=0, l=array.length; i<l; i++)
for (var i=0; l<array.length; i++)
こういう違いがあるはずだから、基本は外かと

536 名前:Name_Not_Found mailto:sage [2009/06/15(月) 22:03:56 ID:???]
前の宿題の子か

537 名前:Name_Not_Found mailto:sage [2009/06/15(月) 22:26:01 ID:???]
>>530
あんまりよくないと言われたので他にも考えたんですがなぜかどれも計算が合わなくて・・・
思いつかないので仕方ないかなと・・・

<html>
<head>
<script>
function calc_fare(){
var i=0;
var distance =0;
var k = [1.3, 2.2, 1.8, 1.5, 2.2, 1.6, 2.2, 3.6, 4.4, 2.0, 2.3, 3.4];

var a = parseInt(document.form1.jyousya.value);
var b = parseInt(document.form1.kousya.value);
for(i=0;a<b;a++){
km+=k[a];
}


document.form1.km.value = km;
}
</script>
</head>
<body>
</body>
</html>

確かこんな感じでだめだったはずです

ソースを見ないで回答例とあってるかどうかだけ確認してるみたいですので、evalとかは気付かないみたいです。
人が多すぎて中身まで見る余裕がないようですね

538 名前:Name_Not_Found mailto:sage [2009/06/15(月) 22:46:07 ID:???]
素朴に、kmはドコから北の?

539 名前:Name_Not_Found mailto:sage [2009/06/15(月) 22:59:00 ID:???]
ああ、すいません即席で作ったやつなので色々抜けてます。

計算結果が1.3+2.2を足して3.5のはずなのに答えが3.1になったりといろいろぐちゃぐちゃになってしまいまして
結局evalになりました

540 名前:Name_Not_Found mailto:sage [2009/06/15(月) 23:46:22 ID:???]
途中経過をalert()で表示してデバッグぐらいしようぜ、少年



541 名前:Name_Not_Found mailto:sage [2009/06/16(火) 06:51:31 ID:???]
色々抜けた動かないコードを貼るのなら我々もできることはないな。
ところで parseInt() --- 整数用、parseFloat() --- 実数用だけど
それは大丈夫なんだろうか。

542 名前:Name_Not_Found mailto:sage [2009/06/16(火) 08:14:02 ID:???]
我々・・?

543 名前:Name_Not_Found mailto:sage [2009/06/16(火) 08:31:14 ID:???]
できることはない・・?

544 名前:Name_Not_Found mailto:sage [2009/06/16(火) 08:33:17 ID:???]
━━━本スレに書く事を許される者は以下の通り━━━━━
 一、JavaScriptはJavaとは別物であると知っている者
 一、自ら学んでJavaScriptコードを書く意思を持つ者
 一、ユーザに迷惑となるスクリプトを書かない者
 一、質問を分かる日本語できちんと説明できる者
 一、トラブルを再現する最小限のサンプルを貼れる者
 一、テンプレ+FAQ>>2-10/過去ログ/関連資料を読める者

545 名前:Name_Not_Found mailto:sage [2009/06/16(火) 09:55:30 ID:???]
こんな奴に構ってやるなんて、お前ららしくないな。
暇なのか?

546 名前:Name_Not_Found mailto:sage [2009/06/16(火) 13:51:43 ID:???]
お前ら・・・?

547 名前:Name_Not_Found [2009/06/16(火) 17:32:12 ID:I1I9/SC9]
お取り込み中すいません。outerHTMLって使ってますか?
inner...とどう違うんですか?

548 名前:Name_Not_Found mailto:sage [2009/06/16(火) 17:36:36 ID:???]
自分自身を含むHTML片
イメージで言えばCSSのmarginとpaddingみたいな関係
互換性低いから使ってない

549 名前:547 [2009/06/16(火) 18:13:47 ID:+VajhknI]
>>548さん
なるほど、だからなんですね。ありがとうございました。

550 名前:Name_Not_Found mailto:sage [2009/06/16(火) 19:43:08 ID:???]
IEでデバッグをするときには便利








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<164KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef