+ JavaScript の質問用スレッド vol.93 +
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4 のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 質問にならない投稿はご遠慮ください。(煽り、コード制作依頼など)
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 長い間連続して質問する場合にレス番を名前にしてあれば、質問の流れが回答者に伝わりやすくなります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は
http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。質問テンプレートを活用してみてください。
■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。(ex: IE8, Firefox4)
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。(Windows なら「コピット」を活用)
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
1レスに収まらないならコード投稿サイトを利用してください。
http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/
■主要FAQ (全部は
http://fiddle.jshell.net/vSqKr/27/show/ )
Q1. 別窓・フレーム内容やローカルファイルを読み書きしたいのですが…
A1. 別サーバのページやファイルの内容はセキュリティ制約でアクセス不可です。
Q2. document.write()でページ内容を追加したいのですが…
A2. 一度表示完了後にwriteするとページ内容が消去されます。DOM等別手段を。
Q3. table内容のinnerHTMLやDOMでの変更がうまく行かないのですが…
A3. IEではtable/tbody/trのinnerHTML書き換え不可です。DOMを使いますが、
DOMの場合tableの直下にはtbody要素が(作らなくても)あることに注意。
Q4. フォーム部品名を変数にした「...myform.変数名.value」が動きません…
A4. 「document.forms.myform.elements[変数名].value」でどぞ。
JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。
グローバル変数はwindowのプロパティなので「x」と「window['x']」も。
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
IEでは要素オブジェクトのプロパティcurrentStyleを使う。
Q6. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません…
A6. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。
Q7. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが
「"...this..."」とか「function(){...this...}」ではうまく行きません。
A7. 実行時にthisが別のものを指してしまってる。以下のようにthisを束縛保存。
「function(x){return function(){...x...};}(this)」
Q8. input type="file"の値を設定(参照)できないのですが…
A8. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。
Q9. getElementById('ID名')や$('ID名')で要素が取れないのですが…
A9. コード実行時点でHTMLがそこまで読まれてない。window.onload 中でやるとか。
<a href="javascript:document.photo.src = 'img/item/hoge1.jpg'; void(0);"> あるサイトのソースを見ていたら、このようなコードを発見したんですが この書き方って一般的によく使われているんですか?オンクリックイベントを書くより楽そうですね
古い書き方なのでおすすめしない
disabled selected checkedなどの値が無いプロパティをセットする場合 option.selected = true; option.setAttribute('selected',''); option.setAttribute('selected','selected'); //XHTML などの方法がありますが、どの方法でいくのが無難でしょうか?
更に以下も追加 option.setAttribute('selected','true'); option.setAttribute('selected',true); どの指定の仕方が正しく、どの指定の仕方が互換性が高いのか分かりません
option.setAttribute('selected', 'selected') でDOM操作すると狂うから option.selected = true を使った方が良い 一者択一の属性値だから、それ以外の3つのやり方はおかしい HTMLに書くときは、属性値が無いわけじゃなく、SGMLの省略タグ機構で属性名の方を省略してる
jQuery UI のdialogで、iframe方式で別ページを指定して表示した時、 そのdialogの別ページ内のイベントから、呼び出し元のページのDOM要素を操作したい場合は どうしたらいいでしょうか?
>>10 ありがとうございます ずっとひっかかっていたものがとけました
14 :
Name_Not_Found :2011/12/11(日) 18:58:15.79 ID:IeRT93jj
15 :
Name_Not_Found :2011/12/11(日) 19:47:52.42 ID:O05++akw
function append(arg){ if(typeof arg==="String"){ this.innerHTML=elms; }else{ var df = document.createDocumentFragment(); for(var i=0, l=arguments.length; i<l; i++){ df.appendChild(arguments[i]); } this.appendChild(df); } } 上記のようなthisとしてバインドされたHTML要素に対して 要素の追加を行う関数をつくろうと思っています。 関数の引数がstringであれば、それをinnerHTMLでthisに流し込み、 document.createElement()などで作成されたHTML要素が引数にきたら appendChildでthisに追加するようにしたいのですが、 後者の処理の前に 「引数がHTML要素かどうか」 を判定したいのですが、 どうしたらうまくそのような判定ができるでしょうか?
エレメントノードだけがほしいなら arg.nodeType===1 でいいんじゃねすか
>>15 テキストノードとかコメントノードとか、要素ノード以外はどうするの
18 :
Name_Not_Found :2011/12/11(日) 21:18:26.69 ID:O05++akw
>>16 ありがとうございます
nodeタイプでいけそうな感じはしますね
クローンノードも欲しいので、そのnodetypeも判定条件にいれてやればうまくいくかな・・・
>>17 df.appendChild で追加できるものであれば・・・と思いましたが
テキストノードなんかもappendChildで追加できるんですかね?
とりあえずは要素ノード、クローンノード、documentFragmentノードあれば十分かなぁという感じです
>>11 で思ったんだけど、jQuery UIって皆使ってるもん?
そんなメジャーになった?全く触れてないんだけど
>>12 あんたがスゲーのはもうわかったよ
だけどそこダウンロードしなきゃ実行できねえんだよ
なんとかしろよ
せめてHTMLとしてうpってくれ
22 :
Name_Not_Found :2011/12/12(月) 00:02:58.25 ID:pENH4A4b
$("a").onclick(function(){ //ここでのthisと$(this)ってそれぞれ何が入ってるんですか? }) 全く見当違いな質問だったらごめんなさい
HTMLAudioElementか
チョー解りやすく言うと <a>全体じゃなくてそのクリックされた部分だけの<a>
>>18 DOMにはクローンノードというnodeTypeはない
www.w3.org/TR/DOM-Level-3-Core/core.html
>>26 $("#a").offset().top;
28 :
26 :2011/12/12(月) 07:42:22.22 ID:???
>>27 すみません・・・、$("#a").offset().top;だとbody上での位置になってしまうんです
29 :
26 :2011/12/12(月) 07:48:07.18 ID:???
<body>白い部分 <div id="g">水色の部分 <div id="a">赤い部分 </div> </div> </body> こんな感じです
昔はHTMLうpったらそのまま開けてたけど今そーゆーロダないのな
>>30 そりゃ、いろんなものの温床になるからでしょ。
dropboxは?
34 :
Name_Not_Found :2011/12/12(月) 14:53:00.69 ID:rE3ZKdoB
前スレ995でスレ立ての相談をした者です。
http://hibari.2ch.net/test/read.cgi/hp/1321414111/ 995 Name_Not_Found sage 2011/12/11(日) 07:05:15.41 ID:???
すいません。JS関連でスレ立てをお願いしたいのですが、どこに頼むべきでしょうか?
運営とは違うようですし・・・
999 Name_Not_Found sage New! 2011/12/11(日) 12:13:20.35 ID:???
まずスレタイと内容を書いてみてください
----------
ということなので、下記の内容を希望します。
(仮)【JSで】 SVG描画ライブラリRaphael(ラファエル) 【ベクター描画】 ←仮タイトル
・・・本文は次レスにて
36 :
35 :2011/12/12(月) 17:59:33.32 ID:???
SVGスレでいいんでないの
38 :
35&36 :2011/12/12(月) 18:41:06.58 ID:???
>>37 SVGスレってあったんだ。でもRaphaelは従来のタグによる記述ではなくて
JSコードそのもので挙動をしています(JSの正規表現も普通に使えます)。
一応、【XML】SVGってどうなの2【DOM】を見たけどコーディングにJSは殆ど関係なさそうです。
SVGはXMLなんだしもともとJavascript使ってDOM操作もするもんでしょ SVGスレ内にもJS+DOMの話があるじゃない どうせ過疎る汎用性のないスレを乱造せずに既存のスレを活用しよう
質問させてもらいます pのclass=typoe1の指定は $("p.type1")ですが id=typeDの中にあるclass=type1の指定なども出来るのでしょうか?
$("#typeD .type1") というかほぼCSSの質問じゃないか
>>41 ごめんなさい、1日中
$("#typeD,.type1")や$($("#typeD").(".type1"))で試してた自分が馬鹿でした
スペース空けてなかったと予想
>>40 jQueryクックブック買えば。勉強になるよ。
>>44 Javascript入門書は買ってそれの1/3位jQuery載ってたので使ってる感じです
ライブラリについての本とかもあるんですか、何か不思議ですね
情報系の学部なんてjpegの圧縮について研究したり学んだりするんだぞ 数学なんて一人の天才が考えた数式について何十年も研究してるし
真面目にやってる奴なんてどれ程いるのか謎だけどな
なぜそういう流れに
49 :
Name_Not_Found :2011/12/12(月) 22:06:20.36 ID:rE3ZKdoB
>>46 突然どうしたw
でもエクセルでJPEGの実験したの思い出して懐かしくなった
テスト
JSONの質問 var person={"first-name":"Jerome"}; のようにプロパティ名の文字列はダブルクォテーションで囲む 決まりがありますが、Javascript The Good Partsによると プロパティ名がJSの名前に則っているときは省略可能とあります。 first_nameなら"が省略可能で var person={first_name:"Jerome"};となるますが、以前ここにプロパティ 名の"をつけず書きこむと、JSONではないと言われましたが、これも JSONなんですね。Ajaxなどのときは、プロパティ名の"は省略可能な 時は省略するのでしょうか?それとも会社によって"が省略するかどうか 細かな規約があるのでしょうか?
jQuery Mobileで質問です。
<select タグで選択した内容によって,ダイアログを出そうと思った下記のようなスクリプト(抜粋)を書いたのですが,選択してもダイアログがでてくれません。
body中に書いたjQueryオブジェクトをクリックしたのと同様のことをスクリプトでやろうともくろんだのですが...
<script type="text/javascript">
function change(index){
switch(index - 0){
case 1:
$("<a href='dialog1.html' data-role='button' data-inline='true' data-rel='dialog' data-transition='pop'></a>").click();
break;
case 2:
$("<a href='dialog2.html' data-role='button' data-inline='true' data-rel='dialog' data-transition='pop'></a>").click();
break;
}
}
</script>
<select name="select-choice-5" id="select-choice-5" data-native-menu="false" onChange="change(this.value)">
<option>Choose…</option>
<option value="1">Selection 1</option>
<option value="2">Selection 2</option>
<option value="3">Selection 3</option>
</select>
参考にしたのは,
ttp://dev.screw-axis.com/doc/jquery_mobile/components/pages_dialogs/dialogs/です 。
54 :
Name_Not_Found :2011/12/13(火) 18:17:11.89 ID:8VG+3OFl
<script type="text/javascript"> function push(x){ var com; com = j+":"+x; }; function namae(){ while (name == "" || name == "null"){ name = window.prompt("名前を入力してください", ""); }; </script> <body> 名前:<script type="text/javascript"> namae(); </script> コメント:<input type="text" id="comments" value=""> <button onclick="push(document.getElementById('comments').value);">書き込み</button> 上記のcomをサーバー側に送る場合、サーバー側の関数を書けばいいの? それとも別に方法があるの? 出来れば良い方法が知りたいです. サーバー側はnode.jsを利用しています
XMLHttpRequestってこと?
56 :
54 :2011/12/13(火) 19:17:52.33 ID:8VG+3OFl
<script type="text/javascript"> var name; function push(x){ var com; com = j+":"+name; }; function namae(){ while (name == "" || name == "null"){ name = window.prompt("名前を入力してください", ""); }; </script> <body> 名前:<script type="text/javascript"> namae(); </script> コメント:<input type="text" id="comments" value=""> コードを書き間違えていました このクライアントで動かしているcomをサーバー側で使えるようにしたいのです.
57 :
Name_Not_Found :2011/12/13(火) 19:57:32.46 ID:OsM/v5aE
jQueryなんですが、 foo.find(bar).hoge().find(baz).piyo() みたいにしたあと、一気にfooに戻りたいときはどうすればいいですか? foo.find(bar).hoge().end().find(baz).piyo().end() と毎回小刻みに戻っておくか foo.find(bar).hoge().find(baz).piyo().end().end() と最後で.end()を繰り返すかしかないですか? 前者は意味が違ってくるので使えるときと使えないときがありますが
58 :
Name_Not_Found :2011/12/13(火) 22:04:37.69 ID:ImNywRHT
tableの行数を知るときには、「tableタグのID.childNodes.length」とやっても出ず、 「tableタグのID.childNodes[0].childNodes.length」とやると行数が表示されたのですが、 これはtableの中には暗黙的にTBODYタグが入っていることになっていると いうことなのでしょうか?
>>58 です
よくよく調べてみたりfirebugで見てみるとやはりtbodyが暗黙で挟まるようですね
ありがとうございました
どういたしまして .rows.length でええんちゃう
質問です。 IEでリンクをクリックした時にまわりに出る点線を消したいです。 Javascriptでなら消せると聞いて調べ、 window.onload=function(){ a=document.getElementsByTagName("a"); for(i=0;i<a.length;i++){ a[i].onfocus=function(){this.blur();} } area=document.getElementsByTagName("area"); for(i=0;i<area.length;i++){ area[i].onfocus=function(){this.blur();} } } をCSSに書いたのですが、点線が消えてくれません。 キャッシュを消してみたりしてもダメでした。 何か書き方が間違っているのでしょうか?教えて頂けるとありがたいです。 ちなみに、リンク一つ一つに onfocus="this.blur();" を付けるやり方だと点線は消えるのですが、手間が半端ないので できれば一括でやりたいのです。 ブラウザはIE9を使っています。OSはwindows7です。 よろしくお願いします。
>>61 面倒臭いから突っ込まないけど、
CSS に a { outline: none; } って書けば消えるはず。
63 :
61 :2011/12/14(水) 07:18:43.31 ID:???
65 :
61 :2011/12/14(水) 10:35:28.13 ID:???
>>64 ドキュメントモード指定したら消えました!!ありがとうございました!
67 :
Name_Not_Found :2011/12/14(水) 15:40:59.23 ID:iNwFsJI3
>>59 忘れがちだが、HTMLでtbody要素が省略可能なだけだからね
同様に、html要素やbody要素を省略しても、DOMにはいるでしょ
IEで正規表現は使えない? matchでエラーが出るんだけど
IEのバージョンとそのスクリプト書いてくれ 基本使えるよ
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ServerSentEvent</title>
</head>
<body>
<script type="text/javascript">
var a = { comments: 'kom' };
var b = a.match(/[0-9a-zA-Z_]/);
document.write(b);
document.write(a);
</script>
</body>
</html>
IE9で上記のHTMLを起動するとmatchが云々言われる
http://www.dotup.org/uploda/www.dotup.org2380051.png
matchはStringオブジェクトのメソッドじゃね? aはObjectオブジェクトじゃね?
うむ、aはオブジェクトだわな 対象は文字列にしないと
配列だったとしてもa[0].matchとかってやらないとダメよん
どうやら勉強不足のようだ ありがとう 出た単語を調べてくる
node.jsスレとのマルチポストだったのか
あとvipでも・・・
77 :
Name_Not_Found :2011/12/14(水) 22:26:40.31 ID:iNwFsJI3
VIPのどこw
var a = 0; var kotae = if (a==1); または return if (a==1); みたいに直でtrueやfalseってどやって手に入れるんでしたっけ?
var kotae = true; ん?ちょっと何がやりたいのかよくわからん
ifがいらない var hoge = a == 1; これでhogeにはboolが入る hoge = a == 1 && true || null; こんな書き方もできるけど解り辛いわな
質問です。 下の場合firefoxではp1、p2とも動作するんですがIE(7.0 8.0)の場合p1のみしか反応しません。 原因として何が考えられるでしょうか? <p id="p1">test1</p> <p id="p2">test2</p> <script type="text/javascript"> p = document.getElementById("p1"); p.onmouseover = setColor; p2 = document.getElementById("p2"); p2.onmouseover = setColor; function setColor() { this.style.backgroundColor = "black"; this.style.color = "white";} </script>
>>82 IE8のthis値が書き換わらなかった気がする
85 :
Name_Not_Found :2011/12/15(木) 02:10:31.07 ID:0LqeIJIw
JavaScriptで任意のキーボードを押下したのと同等のコードは書けますか? 例えば、あるフォームにフォーカスした際、「無変換」キーを押下したと同じように IMEをカタカナ入力モードに切り替えるとかなんですが・・
86 :
85 :2011/12/15(木) 02:18:23.04 ID:0LqeIJIw
よく考えたら、そんなことできたらセキュリティ的にやばい気がします。 やっぱ無理ですよね・・・?
id振ると勝手にグローバル変数みたいにしてくれるのは知ってたけど
そのまま新しい値を代入しようとするとIEはエラーまで出してくれるのか。
>>82 var p2 = にしたら動いたよ。
まずエラーが出てるかどうかくらい確認すれ
88 :
35&36 :2011/12/15(木) 02:51:42.71 ID:???
(スレ立て依頼について)
>>37 >>39 了解しました。 今回の依頼は取り止めと致します。
ただ、Raphael自体は簡単に始められて面白い技術なので、皆さん是非使ってみて下さい。
89 :
82 :2011/12/15(木) 02:59:00.43 ID:???
>>83 そういう性質があったとは知りませんでした。
ありがとうございました。
>>84 ありがとうございます。
解決しました。
>>87 ありがとうございます。
「var p2 」場合はグローバル変数ではなく、ローカル変数ということになるんでしょうか?
エラーも確認しました。
ちなみに document.write(p2); を書いた場合、firefox8.0だと下のエラーが出ましたが、
p2 = document.getElementById("p2");の実行はエラーを吐きません
IE8,0では逆のようですね
「警告: グローバルスコープで ID または name 属性値により要素を参照しています。
代わりに W3C 標準の document.getElementById() を使用してください。」
90 :
Name_Not_Found :2011/12/15(木) 03:24:26.20 ID:OtqKLU2h
>>83 > that はアレ(手が届かない)。 this はコレ(手が届く) という
> 距離感の意味合いもあり、クロージャの中から上位の this に
> 触れないというもどかしさを、self に比べて的確に表現できています。
なんていうか、詩人だな
ちょっと感心した
自分はいつも大文字一文字だ
<p class="a1">で囲まれた部分をクリックするとalert("い")とアラートするスクリプトを作っています $(".a1").click(function(alert("い"))}); で正常に動作しますがappendToで追加したclass="a1"には動作しません a1をappendした直後もう一度$(".a1").click(function(alert("い"))});と記述すれば解決するのですが その場合二重に関数を書くことになるのでどうしてもゴチャゴチャしてしまいます 何かスッキリさせる方法とかありますでしょうか?
$(".a1").live('click', function(alert("い"))});
>>92 liveなんてあったんですか、ありがとうございます
しかし標準でliveのような仕様じゃ無いという事はliveに何かデメリットでもあるんでしょうか?
>>92 liveよりonの方がいいらしいよ
>>93 後から追加される要素は、それを監視する工夫が必要
行ってるように、追加直後にイベントも追加する方が分かりやすいような気がするけど
liveってまだ未完成なだけじゃなかった?
liveは1.7からon置き換わり
マジか 1.6で満足してたから知らなかった
jQueryに関しちゃ常に最新のものにしとけよー
>>93 標準ではバブリングを利用する
liveの内部コードも同じ
jQueryバージョン上げたら古いブラウザへの対応が切れちゃうから上げられないところも多いんじゃないか
jqueryはリリースノート読まずにバージョンアップできんだろ
更新したかどうか判断する方法はないですか?
ちょっとまて、何の話だ更新って
そこでエスパーの出番ですよ。
ブラウザを更新する度に配列の中身が更新されてしまうからどうにかならないものかと
ブラウザの更新ってブラウザのヴァージョンアップのこと?
F5って事か? それはもうクッキーとかでどうにかするしかなくね? POSTとかできないし
109 :
Name_Not_Found :2011/12/16(金) 04:02:04.18 ID:+eyjB7Rm
web strage とか
以前無料のレストラン作ったら違法だけどネットでは問題ないって言われてた意味がよくわかった Google怖すぎ。本当にネット征服してるじゃん
111 :
Name_Not_Found :2011/12/16(金) 09:47:36.28 ID:+eyjB7Rm
なんで無料は違法なの? 他が潰れるから?
AKB商法とか独占禁止法を取り締まる公正取引委員会ってのがいるのよ AKBはちょっと違うけど
クッキーってのに保存してF5を押して更新する度に保存していた物を引き出すようにしたら良いんですね
クッキー=メモリーカードって思えばOK
116 :
106 :2011/12/16(金) 14:11:25.46 ID:???
<html> <head> <meta charset="UTF-8"> <title>test</title> <script type="text/javascript"> var i = 0; function mon(){ if (i === 0){ str = document.cookie; for (var j = 0; str.length > j; j++){ document.getElementById("list").innerHTML += str[j] + '<br>'; }; i = i+ 1; }else{ var e = "kom"; document.cookie = escape(e); document.getElementById("list").innerHTML += e + "<br>"; }; }; </script> </head> <body onload="mon();"> <div id="list"></div> <input type="submit" value="追加" onClick=mon()> </body> </html> Cookieを調べたらいけると思ったけど最初のkomしか保存されなかった・・・
そりゃそうだろ Cookieに追加するコードが無いし
んまークッキーの保存とか追加とかに関しては調べりゃ出てくるから
どんなに古くてもどんなにヘボくても著作権が存在する
入門サイトでコード流用禁止してるやつなんておるんか
公開するサイトに組み込んだらアウトじゃね?
GPLかBSDLか
俺はjsファイルとかにちゃんとMITライセンスだよって明記してる心優しいプログラマ
やっぱライセンスの記載があったら気にしたほうがいいのか
ライセンス記載されてるプログラムのライセンス無視はありえんわw ライセンス書かれてないプログラムなら無視する事もあるけど 仕事とかで使う場合ならそんなの使えねぇな
書いたコードが偶然にも過去に誰かがライセンスつきで発表したコードと一致してまった場合
128 :
106 :2011/12/16(金) 15:38:15.13 ID:???
>>119 のサイトは見ていけど出来たよ
ありがとうございます
それはよかった
ライセンス無視なんてバレることなんてないよ
コピペはやめとけ
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ServerSentEvent</title> <script type="text/javascript"> var am; var source = new EventSource('/events'); source.onmessage = function(e) { if (am !== e.data){ document.body.innerHTML += e.data + '<br>'; }; }; </script> </head> <body> </body> </html> サーバーサイドから変数を受け取って表示させるんだけど、もしおんなじ言葉なら弾きたいんだ でも同じ言葉を送ってif文を使っても弾けない 多分何か違う言葉がくっついてきてると思うんだけどそれを調べる方法がわからない どうしたらおんなじ言葉を繰り返し送ってもif文で弾くように出来ますか?
amが空のままのような
見落としてました すみません
ライセンスの記載がなかったら制作者に尋ねるのが当然だと思ってた
そりゃ製作者に尋ねるのが当然だろう? 何にだってルール違反やマナー違反や法律違反やイモラルな奴らはいるもんだよ 無免許で車運転する奴とか 著作者に許可なく画像や音楽を頒布する奴とか そういうのがいるんだから コードを無許可流用する奴がいることは何ら不思議でない
137 :
Name_Not_Found :2011/12/16(金) 21:13:10.30 ID:+eyjB7Rm
ついにIE6終了のお知らせがきましたな! 今夜は朝まで飲むことにするわ!
>>137 砂糖より甘すぎ
あれ自動アプデオフにしてたら適用外だぞ
企業なんかは自動アプデonだと思うけど
IE6から変わるとなるとオフにする可能性もありうる
>>137 しかしそれでもXP使いはIE8を使い続ける
>>137 IE9「 ククク… 奴は四天王の中でも最弱… 」
IE8はブラウザ四天王最弱 IE6はIE四天王最弱
IE6は別の意味で最強だろ。 まだ生き残ってるんだぞ。
基幹系のWebシステムでIE6縛りってあるもんね。うちもそうだ。 IE以外はUA偽装しても動かないし、7や8ですら怪しい動作したり…
>>143 俺が前居た会社、結構デカイ所のwebサイト制作委託やってんだけど
jQueryやAjaxはIE6使ってる人じゃ見れないから
ぜーんぶCGI、Flashだけだったな。というかJavascript自体ほとんど使わなかった
こんな所に何十年居ても自分の技能が上がることは無さそうだから1ヶ月で辞めて他に行ったけど本当に良かった
ソースコードに色をつけるライブラリありませんか?
>>144 そういう所はそういう所なりに学べる物があると思うけどな
>>144 jQueryやAjaxもIE6で動く範囲で使えばいいと思うんだけどね。
IE6はデザイン合わせるのが面倒だけど。
149 :
Name_Not_Found :2011/12/16(金) 23:59:15.16 ID:Hokc1L3i
現在表示しているページの左上の座標と右下の座標を topから何pixなのかをスクロールのポジションなどから算出したいのですが どうやったらよいでしょうか?
どれだけスクロールしたか?→左上のポジション その座標に今見えてるブラウザの大きさを足す→右下のポジション
tableの中のcellをクリックすると、 新しいrowが生成され、クリックされたcellがあるrowの一行下に追加される。 というプログラムを作っています。 すべてのcellのオンクリックイベントに以下のように指定しています。 var row = table.insertRow(lineNum+1); var cell = row.insertCell(0); cell.innerHTML = lineNum; はじめのひとつをクリックしたときは想定通りに動くのですが、 クリックするごとにrowが追加され、rowの行数が増えてしまい、 table.insertRow(lineNum+1)で指定した場所からズレて行ってしまう問題が起こります。 アルゴリズムが悪いのだと思いますが、どうすれば解決できるのかアドバイスをお願いします。
クリックされた後、そのクリックされたセルは何行目なのかを調べ なければ「絶対に駄目」だよね。だって何行目なのか分からないまま 正しい位置に挿入なんてできないから。
>>151 何行目かを判定する必要は全くない
クリックされた要素から見て insertBefore もしくは appendChild すればいいだけ
あと、cells にイベントを貼り付けるやり方だと insert する度にイベント定義しなくちゃいけないから tbody あたりにイベント定義する方がいいと思う
> クリックされたセルは何行目なのかを調べなければ「絶対に駄目」 そうでもない。
oh... かぶりやがた
156 :
Name_Not_Found :2011/12/17(土) 13:01:55.81 ID:QNHKWrpi
以下のような状態で、spanタグがクリックされたら 変数clickWordにspanTagのテキストを入れたいのですが 最もシンプルな方法はどのような手段でしょうか また、clickされたspanのDOM要素自身を関数の引数に渡すことは可能でしょうか var clickWord; <span onclick=” ”>あんぱん</span>
157 :
Name_Not_Found :2011/12/17(土) 13:16:15.95 ID:6Hc/MEvJ
ウェブアプリケーションという不幸 】 現在、多くのプログラマ(素人)が ウェブアプリケーションというものが ベストな正しい方向だと勘違いしている。 ソフトウェアの作るにおいて そのアプリケーションに応じた 状態遷移を実装するというのは 基本中の基本である。 その点においてウエブブラウザという ある状態遷移が実装されているアプリケーションの上に また別のアプリケーションを実装するのは 論外である。 そこまでするなら普通にアプリケーションを実装 してダウンロードして使って もらえばいいのである。 ウェブアプリケーションとは 虚構にしか他ならない。 ウェブアプリケーションを 作ろうとしているあなた。 今すぐ普通のアプリケーション とし設計し始めては いかがだろう。 そうすればきっと後悔しないですむ。
158 :
Name_Not_Found :2011/12/17(土) 13:16:32.41 ID:6Hc/MEvJ
HTMLやHTTPを悪者にはしていない。 TCP/IPができあがり、その応用として、ファイルを送ったりするようになった。 ファイルの中身のテキストにデータ構造をもたせ、それはつまりツリー構造なわけだが その実装としてのハイパーテキスト、つまりHTMLという送る側と送られる側で決め事(プロトコル) をつくり、画像や音楽など表現の幅を広げることは当然の成り行きだっただろう。 そして、その送る側としてのHTMLファイルサーバ、つまりWebサーバ、送られる側としてのプロトコルの解釈・表示系としての ブラウザというアプリケーション。 ここまではいい。 だが、そこから先が素人の発想というか、いそがばまわれを忘れた者の愚かな発想。 つまりブラウザ上で、アプリケーションを動かすという発想なのである。 ブラウザというのは、おくられてきたステートレスな通信内容の一瞬の表示手段でしかない。 つまりアプリケーションのためのひとつのパーツなのである。 Windowsでいえば、コントロールのひとつ。(実際WebBrowserというコントロールがある。)JavaならWebClietnだ(これは、ブラウザではないが。)。 包含関係が逆なのである。 ブラウザ上にアプリケーションを作るのは愚かなブームである。
>>156 その場合 this がその要素を指す
clickWord = this.textContent || this.innerText || '';
現在はes5はまだまだでes3が一般的だと思うんですが、firefox js (mozilla仕様のjs)だと現在どのバージョンが一般的に使われてる(許容されてる)んでしょうか?
>>161 IE8以下を除けばES5の実装は整っていると思うけどなあ
>>156 this.firstChild.data かねえ
短いコードが必ずしもいいわけではないんだけどね
this よりも event.target や event.currentTarget がDOMらしいと思うし、場合によっては textContent が適切
>>157-158 スレ違いだけどWebアプリのデメリットのみを強調してる恣意的な主張だな
デメリットとメリットを秤にかけてメリットが大きいと見るからWebアプリ選択するものだろうに
>>157-158 google先生にも言って今後webアプリ作らないよう説得してください。
>>161 >>3 のCompatibilityのリンクを見てみるといい
FirefoxならMDNを参照するのが確実だけどな
mozilla rhinoを使っているので実際のところバージョンに神経質になることはありません。 しかし未だにes3が一般的だとgenerator式やタプル渡しなどがes3系のブラウザだと使えないので、このままだとrhino jsで書いたコード修正が必要になりかなり面倒になります。 es5がまだ一般普及してないなら旧式の構文で書こうかなっているので普及してるjsのバージョンは気になります。
169 :
Name_Not_Found :2011/12/17(土) 15:13:29.72 ID:yc85Pnxp
<div style="position: relative; overflow: scroll"> <p>hello world</p> <p>hello world</p> <p>hello world</p> … </div> このようなdiv要素の中でスクロールが発生したときに、そのイベントを取得したいです。 組み込みのscrollイベントはdocument要素にしか適用されてないので… 自分でdivの中のスクロール位置を監視して、カスタムイベントを発火させる以外に方法はあるでしょうか?
MDNではタプル渡しじゃなくて分割代入と翻訳してましたね。 このスレでバージョンやjs1.6以降についての反応がないところを見ると未だにes3のままでes5系のコードはまだ普及もしてないようですね。
>>168 見下してるようには見えませんでしたが・・
>>170 他の人が使ってるから使うのか、流行に乗りたいだけ?
普通はブラウザが対応しているかで決める
ES5使ってるが、他の人が使っているかを気にしたことはない
ES5は流行ってるんですか?
流行ってるよ
マニアの間で
なんで流行っているかに拘るの?
ここは ECMAScript の話題を制限してないよ
同じjsを扱うようですけどそもそも板が違うので内容や目的はまったく違うと思いますよ
182 :
Name_Not_Found :2011/12/17(土) 20:17:13.00 ID:lTOut/xl
YUI2のDataTableでカラム幅を0にするにはどうすればいいんでしょう
>>180 ES5の質問しかないように見えるけど、どの辺が問題?
<div id="P"> <div class=a>aaa</div> <div class=b>bbb</div> </div> $('#a').click.(function(){ クリックしたaと同じ要素内にあるid=bのhtml } とやりたいのですがprentやthisの指定が上手くいきません 本当に初歩的な質問ですみません
失礼します。 jQueryで非同期POSTをする場合このようなサンプルがありますが $.post("hoge.php", {"hoge1" : 1, "hoge2": "hoge"}, my_func); 引数に自分のform要素内のinput要素すべてを一括して送信するにはどうしたらいいでしょうか? 簡単に言えば普通にsubmitしていたページを非同期で更新したいのです。 したがってform要素すべてをtargetのURLに送信し、もどってきたhtmlDomを自分自身に適用したいのです。 ヒントだけでもお願いいたします。
186 :
Name_Not_Found :2011/12/18(日) 11:17:21.90 ID:tZYRCi4V
Firefox8.0.1 WindowsXP です。 setTimeout()で時間的にずらして引数を持つ関数を実行したいのですが うまくできません。 function anim_func(引数){ // 処理 } として、 anim_func(0);//@ setTimeout(anim_func(1), 2000);//A としたところ、Aは2秒後に実行させたいのですが、@と同時に 実行されます。 どうすべきでしょうか?
>>186 setTimeout(anim_func, 2000, 1);
俺毎回思うんだけど、処理でsetTimeout(func,1)ってあるけど setTimeout(func,0)でよくね? 俺毎回そうやってるんだけどコレもしかて悪いやり方? マウスアウト→マウスオーバーって動作が行われるとき var a=1 マウスアウト{ a =0 setTimeout(alert(a),0) } マウスオーバー{ a=1 } ってやるとちゃんとaは1になってるし
189 :
Name_Not_Found :2011/12/18(日) 12:20:22.70 ID:dDd8L01n
さっき気付いたのですが $("#id").append(<span class=\"class1\" class=\"class2\">); とするとclass1しか追加されず結果は <span class=\"class1\"> が出力されるのみです。これは仕様なのでしょうか?そしてclassを二つ追加する場合適応させるにはどのような方法があるのでしょうか?
>>189 class="class1 class2"
半角スペースで区切る。id 属性なども同じ
193 :
Name_Not_Found :2011/12/18(日) 12:34:38.38 ID:dDd8L01n
なんでそんなトリッキーな書き方してるかわからないが HTMLは基本class="class1 class2"って書くのがデフォだから そんな書き方やめんしゃい 気になってチンコムズムズしてるんだろうけど正規じゃない書き方はいつの時代も弾かれる
195 :
186 :2011/12/18(日) 13:07:30.74 ID:???
>>188 それだとsetTimeout使う意味がなくね?
>>196 もしも、setTimeoutの中身が無いときと同じような順番で実行されるとしたら
a=0の直後に実行されるわけだから0がalertされるわけじゃん?
んでもマウスアウト→マウスオーバーの順番に実行されるような状況下でもちゃんとマウスオーバーのaの値が適応される
var a=1
マウスアウト{
a =0
alert(アウト)
setTimeout(alert(a),0)
}
マウスオーバー{
a=1
alert(オーバー)
}
ってやるとアウト→オーバー→1ってなる
最小値設定されてんのか、そうなんか。処理の優先度だと思ってた
>>197 ごめんsetTimeout(alert(a),0)とalert(a)の違いがわからなかった
初歩的な質問すいません。 var year = 2011; var name; name = year; var nextyear; nextyear = name + 1; alert(nextyear); この結果が20111になるのは何故でしょうか?
DOMのwindow.nameがstringだからやね
LightBoxは一枚の画像が表示されて、その画像に次の画像、前の画像へのリンクがつきますが、 画像の下に画像一覧を表示させることはできませんか? できればLightBoxの状態で下に画像一覧が表示されそれを選択したら上に表示されるというような ものがあればと思っています。
>>200 ありがとうございます。
DOMでぐぐったところ、なんとなく意味がわかりました。
nameはあらかじめ使い方が指定されている単語でそういう単語がいくつかあると覚えておきます。
ありがとうございます。
質問です 関数 a と b があって、a で受け取った引数を b に渡したいのです a は可変長引数で、引数の数が変わります どうすればいいでしょうか
>>197 一応いっておくが、その順番は保証されてないぞ
>>197 setTimeout にalertの戻り値を入れてるから期待通りに動作しないはずなんだがな…
>>205 まあ、そのへんは擬似コードだろうから…
>>202 (function(){
ここにコードを書く
})();
のように、グローバル変数に影響しないされないように書くのも手だよ。
>>203 (function () {
a.apply(this,Array.prototype.slice.apply(arguments));
})("a","b")
sliceいらん argumentsそのままでOK
それはES5以降限定だろ
>>208-210 ありがとうございます。下のコードで解決しました!
function a() {
b.apply(this, arguments);
}
>>212 すまんargumentsがES5か6あたりからただの配列になるという事もあって
applyがargumentsそのままを受け取れることをすっかり忘れてた
あやまってもゆるさない
>>213 arguments がただの配列になるだと?!
arguments.callee 無くなるんか
>>205 setTimeoutって個人的に使いづらいから邪道だけど独自でsleep関数作ってやってる。
下のソースだと負荷もかからないからオススメ 引数はミリ秒
function sleep(time) {
var d1 = new Date().getTime();
var d2 = new Date().getTime();
while (d2 < d1 + time) {
d2 = new Date().getTime();
}
return;
}
>>216 時限付きなだけで、割り込みのできないスクリプトは
>>1 - (2)にも引っ掛かるし、よく考えてからオススメした方がいい。
218 :
Name_Not_Found :2011/12/19(月) 02:22:49.07 ID:ZWVi2EvX
yield使えばインラインでsetTimeout出来るんだっけ? そうなるとC#5のawaitが欲しくなるな・・・
質問させてください。 随分昔に、ブラウザはサーバへ文字列データを送る時に、 文字コードは一定ではなく、ブラウザによって違う場合があるというのを読みました。 基本、そのwebページがshift-jisの場合は、shift-jisを。 utf-8の場合は、utf-8の文字コードで文字列をサーバへ送るらしいのですが・・・ これは今のブラウザでも言える事なのでしょうか? サーバで文字列をさばく時には、文字コードを常に調べておかないといけないのでしょうか?
それってブラウザじゃなくてHTMLファイルじゃね? UTF-8で記述されてるHTMLファイルからのデータはUTF-8だもの、転送されるのはUTF-8の形式で送られるよ
>>220 それじゃ、そのページが文字コードutf-8で書かれている場合は、
送られる文字列の文字コードもutf-8が保証されているのですね。
ブラウザによって文字コードが違う場合があるというのは昔の話なんですね。
ありがとうございました。
っつーかshift-jisなんて使うなよ 絶対にだぞ
使えないものが沢山あるから
何かでパーセントエンコーディングはUTF-8でって規定されて無かったっけ
HTMLの文字コードをShift_JISにしたらなんでダメなの?
shift-jisという文字コードはありませんよ
アジャックスが代表例だな
アジャックスって今でも流行ってるの?
これからの時代はアジャックスだよ
ajaxって読み方統一してほしいよな。 アジャックスなのか、エイジャックスなのか・・・
質問です ライトボックスを入れていたページに 「Useful Peel Back With jQuery」というサイトの四隅がページのようにめくれるJavaScript を後から入れたところ ライトボックスが機能しなくなってしまったんですけど、両方とも機能させる解決策はないでしょうか?
>>216 そのコードで負荷が掛からない?
sleep(99999999999999999999999999);
>>223 ,228
少しは自分で考えろ
>>226 漢なら黙って utf-8
でも、shift_jis を使いたいのなら使えばいい
>>232 Ajax は、エイジャックスって呼んでる
>>234 > そのコードで負荷が掛からない?
>sleep(99999999999999999999999999);
クソワロタwwww
で、setTimeoutで同じ数値でやる方が負荷が掛からないの?w
> Ajax は、エイジャックスって呼んでる
エージャックス
キムジョンイル死んだらしいな
アヤクスとばかり…
>>235 >>234 ではないが
setTimeoutはブロックしないから見た目上はスムーズ。
>>216 に書かれているコードだとブロックしちゃうから、
ユーザ的にはブラウザが固まって見える。
よくwhileとかで回してるブラクラがあるけど、whileをやめて setTimeoutとかIntervalとかにすると死ねるよねw
var div = document.createElement('div'); var p = document.createElement('p'); p.innerHTML = 'hoge'; div.appendChild(p); div.setAttributes('class', 'message'); こういうcreateElementとかcreateDocumentFragmentとかを見やすく短く書く方法ってありませんか?
jQuery使う。
>>240 create("div", "p", "hoge", "class", "message")
function create(ele, ele2, text, attr, value)
{
var div = document.createElement(ele);
var p = document.createElement(ele2);
p.innerHTML = text;
div.appendChild(p);
div.setAttributes(attr, value);
}
>>240 innerHTMLじゃなくてtextContentじゃねそこは
javaScript:randomJump()をリンク先に指定して、ランダムジャンプさせたときって リンク先に逆アクセス反映されない? abc.comってページからランダムジャンプでcba.comにジャンプしたときcba.comには abc.comからリンクが飛んできたってなるのかな。 なんか、逆アクセス反映されないんだよね…
関数の中身がわからんけど「javascript リダイレクト リファラ」等でぐぐってみては
248 :
Name_Not_Found :2011/12/20(火) 16:00:41.06 ID:sZ2BIWf9
申し訳ない。関数書くの忘れてた。
function randomJump()
{
theURL = new Array();
theURL[0] = "
http://abc.com ";
theURL[1] = "
http://cba.com ";
linkCount = 2 //
num = Math.floor(Math.random() * linkCount);
location.href = theURL[num];
}
location使ってないんだけどな…
あ、使ってたわ… ダメなのか…
a要素にjavascript:は無いわ
お礼も言えない糞アフィ厨
皆さん覚えてますでしょうか ずいぶん前友達がJS上でJAVAを動かす試みをしてる事で相談したものですが、 報告までに、一応彼なりに満足できるものができたみたいです どうもありがとうございました
IE8以下向けにカスタムイベントを作ろうとしていますがエラーが出て動きません doument.attachEvent(''onhoge",function(){alert(window.event.result);}); function test() { var e = document.createEventObject(); e.result = "OK!"; document.fireEvent("onhoge",e); } モダンブラウザ用のcoreateEventでは可能ですが、IEでは不可能でしょうか?
257 :
Name_Not_Found :2011/12/20(火) 20:28:00.40 ID:JUVXyYET
>>248 これでどうよ
function randomJump(a){
var theURL = [
"
http://google.com ",
"
http://yahoo.com "
];
a.href = theURL[Math.floor(Math.random() * theURL.length)];
}
あとは<a>要素にonclick属性でも、addEventListenerでもいけるじゃろ
261 :
Name_Not_Found :2011/12/20(火) 20:57:34.43 ID:JUVXyYET
>>259 まず表示するための要素をつくる
これはJSでやってもHTMLに書いてもいい
myMoji関数が発火したら
外部ファイルをajaxで読み
上記の要素のinnerHTMLに入れるか、
textNodeにしてappendChildする
という手順でやればいいけど、多分わからないことがあるだろうから
とりあえずやってみてから、また聞いてみてください
×innerHTML ○textContent
>>258 ちょっと試してみたけど、window.open()でもリファラのこらないね > IE8
265 :
Name_Not_Found :2011/12/20(火) 22:09:21.53 ID:MNIbedjD
すみません、教えて下さい。
jQueryを使用しているコンボボックスに対して、Bookmarkletで選択を変更することはできますか?
例えば下記ページのようなコンボボックスです。
ttp://rmm5t.github.com/jquery-flexselect/ document.getElementById("president").selectedIndex=3;
とかだと、内部的には3が選択されているようですが、表示が変わりません…
266 :
Name_Not_Found :2011/12/20(火) 23:48:44.37 ID:MNIbedjD
>>265 javascript:(function(){$("#example1").text("Franklin Pierce");})();
とすると、コンボボックスが消えてFranklin Pierceのみが表示されるようになりました…。
けども、これだと再選択できないです...
267 :
Name_Not_Found :2011/12/21(水) 01:02:11.00 ID:KPLVWtgv
配列について、 a=new array(10,2)をa=[10,2]と書き直せますが、a=[10,2]と いう配列の書き方はJavascriptの用語で何て言うのですか?
268 :
Name_Not_Found :2011/12/21(水) 01:08:06.99 ID:qkE2Jd9V
selectedIndexを変えるだけじゃ テキストフィールド書き換えを発火させるイベントにはならんのじゃないか? HTMLにデフォルトで装備されてないフォームコントロールを 手作りしてるわけだから、こっちの事情を押し付けても上手くは動かんと思う
269 :
Name_Not_Found :2011/12/21(水) 01:08:25.76 ID:qkE2Jd9V
>>265 document.getElementById('president_dull').selectedIndex = 3;
>>267 配列初期化子 or Array初期化子
272 :
245 :2011/12/21(水) 01:24:38.10 ID:???
皆さん色んな案をありがとうございます。
>>251 IEだとやはりリファラが空になってしまうみたいです。
>>257 リンクが飛ばない…
何かやり方が間違っているのかな。
>>258 window.open()もIEだけリファラが空になってしまう見たいです…
結局
<a href="javaScript:randomJump()">リンク</a>
の形でリファラ付のリンクを外部に飛ばしたいときは、javascriptでは難しいと言うことなのかな。
色々試してみたけどIEはリファラ空なんだよな…
273 :
Name_Not_Found :2011/12/21(水) 01:35:02.23 ID:KPLVWtgv
274 :
250 :2011/12/21(水) 01:49:11.60 ID:???
275 :
245 :2011/12/21(水) 02:15:58.74 ID:???
>>274 a要素を使えばというのはこういうことだったんですか。
わざわざありがとうございます。
しかし、ページ内に複数リンクを付けると全てリンク先が一緒になってしまいます。
idをsample1.2.3と増やしていっても同じでした。
これは何かやり方が悪いのでしょうか。
>>275 >>274 を見ていないのでわからないが、こういうのはどう?
function randomJump() {
var list = ['
http://www.example.com/ ']; // リンク群
return list[Math.floor(Math.random() * list.length)];
}
var a = document.getElementById('foo'); // ID "foo" を取得
a.href = randomJump(); // href の設定
a.attachEvent('onclick', function () {
a.href = randomJump(); // href の再設定
});
>>275 偶然同じになってるだけじゃないの
てかサーバーサイドでやれ
278 :
Name_Not_Found :2011/12/21(水) 10:27:16.30 ID:P+yZsaqn
aa#bbd@i$ 区切り文字に #@$が使えて、これを["aa#","bbd@","i$"]に変換するにはどうすればいい?
/[^\#\@\$]*?[\#\@\$]/g
>>279 それだと最後になにか文字列あった時破棄されると思うのだが
ついにで[]内だとそこらの文字に\要らない
>>278 "aa#bbd@i$a".match(/[^#@$]+[#@$]?/g)
こんな感じか
区切り文字要らないなら
"aa#bbd@i$a".match(/[^#@$]+/g)
あーでも "aa#bbd@@@@@i$a" こういった文字列の場合@@@は 空白若しくは@のみにしてやる必要があるんだろうか・・・ 正規表現は正規表現スレいったほうがいい気がする
>>279 何か目の血走ったメガネかけてる顔文字かと思わせる。
正規表現はいつも顔文字チックだ・・・
正規表現が顔に見えると思ってたの俺だけじゃなかったか 正規表現って最もややこしいものの一つだけど、これ以上解りやすくする方法が無さそうなのが酷いよね
284 :
250 :2011/12/21(水) 12:18:57.49 ID:???
>>275 >>274 は id="Sample" のリンクを切り替えるだけだから、全てのリンク先が切り替わるわけない
再現できるコード出して
285 :
278 :2011/12/21(水) 13:18:08.40 ID:P+yZsaqn
やっぱ一文字づつ見ていくしかなさそうだね。ありがとさん。
>>285 必ず区切り文字付いた文字のみ/[^#@$]*[#@$]?/g
末尾も含む/[^#@$]+[#@$]?/g
区切り文字は結果に含めない/[^#@$]+(?:[#@$]?)/g
>>286 最後のはやれば解るがそれだと区切り文字も含まれるよ
すまんうろ覚えだった /[^#@$]+(?=[#@$]?)/g
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>test</title> </head> <body> <script type="text/javascript"> var b, c, d, e; a = window.prompt("数字入力", ""); b = a / 365; c = (a % 365) - (b / 4); d = c / 30; e = c % 30; document.write(b + "年" + d + "月" + e "日生きています"); </script> </body> </html> 数字を入力したいんだけど入力してくれってでない なんでだろ
canvasで1ドットずつ色を塗る場合、fillRect(i,j,1,1)よりも高速に描写する方法はありますか?
>289 よく見返してみろ
293 :
257 :2011/12/21(水) 14:26:20.26 ID:qkE2Jd9V
>>272 えー
ようは、ユーザには普通に<a>要素をクリックさせるだけで
JSには<a>要素のhref属性値の書き換えだけをやらせればいい
というつもりで書いたのだけど
そもそもリファラのとり方自体は間違っていない?
素のHTMLに<a href="hoge.html">って書いて、リファラはちゃんととれてる?
>>289 エラーメッセージが読める人でないと(ジャバスクリプトを使うのは)無図化しい
e の隣に + がなかった・・・ すみませんでした
javascriptによるevalのリスクって 無限ループや重たい処理によるフリーズとかクッキー全削除とかくらい?
phpみたいに$_GETというグローバル変数作ってそれに引数を入れてる
function getRequests(){ $_GET = new Array(); var p = location.search; var sp = null, sp2 = null; if (p.length > 0) { sp = p.substring(1).split("&"); var i; for (i in sp) { sp2 = sp[i].split("="); if (sp2[1]) { $_GET[sp2[0]] = sp2[1]; } else { $_GET[sp2[0]] = true; } } } }
jQuery使えよ
>>296 セキュリティが一番の問題だな。evalは事情がない限りは使うな。
どんなセキュリティ?
iPhoneのユーザーが拡大した値って、javascriptで初期化できないかな? ユーザーが拡大していても、端末を縦にしたり横にしたりする毎に表示倍率を100%に戻したいんだが・・・。 切り替えのタイミングはorientationでイケるけど、調べてみても表示倍率っていじれなそう。
>>290 です
>>291 ありがとう
色々試してみた結果、ブラウザ間で差はあるものの256*256の1pxずつの書き換えは以下の順で早かったです
putImageData(imageDataを書き換えまとめて描写) - Firefox:80ms, Safari:130ms, IE9:180ms
putImageData(1pxずつ描写) - Firefox:700ms, Safari:170ms, IE9:630ms
fillRect - Firefox:750ms, Safari:1030ms, IE9:450ms
moveTo-lineTo - Firefox:860ms, Safari:1440ms, IE9:860ms
>>304 jsonとか規則的なコードの実行には役立つけどな。
そういった局所的な需要は認めた上で、「避けるべき」と表現したほうがいいかもね。
306 :
245 :2011/12/21(水) 17:58:34.15 ID:???
皆さんホントにありがとうございます。 いろいろな案や助言を頂けてうれしかったです。 しかし、自分のレベル的になんだか訳が分からなくなってきたので もう少し勉強してから出直します。 ありがとうございました。
>>305 JSONはJSON.parse使え。
JSONオブジェクトないならダグラス先生作のJSON2.jsなりそこらを使え。
でもJSON2.jsってたしかevalだっけか。
JSON-parse.jsみたいなのがあったはず。
>>307 eval使ってセッションハイジャック出来るなら
誰でもコード埋め込み方法解ってたらハイジャック出来るじゃないか
evalのせいではないよね
309 :
Name_Not_Found :2011/12/21(水) 20:12:56.14 ID:Rx3r7pho
>>308 局所的なんだから大方がライブラリ実装レベルでの話な。
jsonは正規表現でバリデートしてからevalに渡すのが一番忠実だってこと。
それから規則的なコードはFunction#bindが有名かな。
eval使えばいいじゃん インタプリタの最大の長所を捨てることないのに
>>309 分からん。利用調査とかでクローラが拾っていくのかな?
それと外部ファイルのURLが固定だからグローバルに変数宣言しなくても値は拾えるね。
>>309 普通に考えりゃパラメータとして読み込んでるんじゃないの
javascriptのeval関連のセキュリティの問題って実のところeval直接関係なくね? セキュリティコードはeval通さなくっても
315 :
Name_Not_Found :2011/12/21(水) 21:39:43.03 ID:Rx3r7pho
>> 312
ん?
{lang: 'ja', parsetags:'explicit'}
この値JavaScriptでどうやって拾うわけ?
>>313 この値読み込めるの?
この質問、前にもあったろ。 getElementsByTagName("script") したときの最後の要素が 自身の script 要素になるから、それから取得できるって話。
> gadgets.config.get これで拾ってる
>>316 一回でもレンダリング挟んだら無理だしdeferもあるし万能ではない。
>>315 ボタンパーツなんだからスクリプトのURLが固定だろ。
script要素拾ってsrcで特定すれば事足りるじゃん。google+の仕様はしらんけど。
319 :
Name_Not_Found :2011/12/21(水) 23:21:17.31 ID:Rx3r7pho
>> 318 なるほど・・ でもscript要素ひろったあとの、その中身の取得の仕方がわからん・・w innerHTMLでもないし、なんなの・・・
textContentとかじゃないの?
>>319 innerHTMLでもいけるぞ。気持ち悪いならtextContentを使えばいいし。
あとはjsonとして解析すればいい。でも、こんな不安定なことするなら普通はID付けるわな。
322 :
Name_Not_Found :2011/12/22(木) 00:21:35.75 ID:94TYwXzl
var accordion=function(){ var tm=sp=10; function slider(n){ this.nm=n; this.arr=[];} slider.prototype.init=function(t,c,k){略 }; slider.prototype.pro=function(d){略 }; 中略 return{slider:slider}; }(); とソースでreturn{slider:slider};って何ですか? return{関数名:関数名};って文法を初めて見ました。
>>322 普通の連想配列でしょ
左側は関数じゃなくてキーだよ
>>324 オブジェクト初期化子でしょ
JavaScriptに連想配列はない
え?
え?
「え?」は割とよく見るんだが、「え?」といえば誰かが解説してくれると思っているのだろうか
JavaScript 連想配列でググれば山ほどでてくるからわざわざ解説とか必要ないでしょ
330 :
Name_Not_Found :2011/12/22(木) 05:00:11.95 ID:94TYwXzl
最近、グーグルの検索設定を英語にして, javascript sampleって入れて検索して英語サイトの 解説サイト読んでるんだが、なんかよく分からんのばっか。 Googlemapの技術ってすごいな。
Firebugのコンソールでゴニョゴニョしてます ターゲットとなるWebPage内のiframe(id,name無し)をリロードしたくて 以下のように記述してみたのですが上手くいきません var w = typeof unsafeWindow != 'undefined' ? unsafeWindow : window; var target = w.document.getElementsByTagName('iframe')[0].contentWindow; target.location.reload(); // ココでアクセス権限が無いと怒られる どこがいけないのでしょうか? よろしくお願いします
>>331 一旦removeしてcreate、appendしろ
キャッシュが効かないようにURL気をつけろよ
({hello: 'world', foo: 'hoge'}).concat([0, 1, 2]); // TypeError: Object #<Object> has no method 'concat'
>>334 オブジェクトと配列の違いを調べてみては如何?
{} instanceof Array === false
JSのオブジェクトは全部連想配列だよ。 Arrayはその拡張に過ぎない。 [] instanceof Object
>>337 なぜそこで配列という言葉が出てくるのでしょう?
配列と連想配列の違いを調べてみては如何?
341 :
Name_Not_Found :2011/12/22(木) 13:49:40.92 ID:posT6JIQ
一般的には、まず配列ありきで、添字に数値以外をとる配列を連想配列としてるけど JS的にはObjectオブジェクトがすべての先祖で Arrayはその拡張版(キーが数値で、lengthなどのプロパティがメソッドがある)になってる 前者の考え方でいけば、Objectオブジェクトは連想配列と呼んでも問題ないけど 後者だとそうもいかん そのへんの立ち位置をはっきりさせずに、連想配列のあるなしだけを書くから まとまらんのではないでしょうか?
for (var i=0; i<arr.length; ++i) print(arr[i]) 以外にes3縛りで配列要素をループ処理するのはどういうコードがありますか?
whileとかにループ方法が変わるぐらいで ES3縛りなら他に無いと思う
そうですか ありがとうございます まだまだms ie6とかも現役なのでes3縛り絶対が現状です
>>344 確かArray.prototype.sortの性質を利用してできたはず
連想配列?オブジェクトのインスタンスをキーに出来ないのに?
>>346 それはPerlでもそうだが…
"__proto__" をキーにできないとかそっちを突っ込んだほうがいい。
連想配列のはじまりはAwkだから、オブジェクト指向なんて一般にはないころからある。 だから連想配列の定義そののものでいえば文字列や数値だけのキーでもアリだよね。
連想「配列」というからには配列の機能を全て有してないとおかしい
>>342 ES3でも Array.prototype.forEach を拡張すれば出来ると思う
pineappleと言うからにはappleの味を全て有してないとおかしい
配列の拡張が連想配列だと思う JSは逆だから連想配列はしっくりこないわ 連想配列を拡張したらnew RegExpやnew Functionができるのはなあ
質疑応答スレから議論討論スレに
ECMAScript ではオブジェクト初期化子が正しい 連想配列という用語はない オブジェクトリテラルさえもない
>>350 そして for (var i in arr) とかしてハマると。
このスレは最新htmlや最新ブラウザのことが多くてついていけないのでム板のjsスレに移動します
お前らこまけえな 連想がついてろうがついてなかろうが配列は配列な はい、議論は以上ここまで! 以下質問どーぞ
>>355 せっかくforEach拡張したのにfor-in使う奴はいないだろ
使うとしてもprototype辿らない方法もあるしな
一部の煽りはともかく有意義な議論だと思うが
ここは質問スレ 議論ならもう一つの方でやってくれなイカ |ヽ∧_ ゝ __\ ||´・ω・`| > /  ̄ ̄ 、ヽ __________________________________________________ └二⊃ |∪=| |────────────────────────────────────────────── / ヽ⊃ー/ノ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  ̄`´ ̄
あっちでは板違いとか言われているのにw
んじゃあ議論専用スレ立てやるからテンプレ考えるか?
html,dom,cssなどを駆使してブラウザをいじってる程度なら、jsのes3,es5実装状況や連想配列と配列の区別を議論するなどまったくどうでもいいと思うが?
>363 少なくともここで議論するのはおかしいよな >364 ならム板にたてようか?
>>365 大したネタもないし、議論を続けられるわけでもないのだから、単発スレたてないでjs雑談相談スレでやれよ
ム板のjsスレが過疎っていて誰もいないならここでもいいけど、向こうの板では議論したくてウズウズしてる暇人さんがてぐすね引いて待ち構えてるんじゃないの?
>>354 オブジェクトリテラルはECMAScriptの仕様書に書いてあるよ。
連想配列はECMAScriptの仕様書にはないが、Mozillaのリファレンスにはあるし
オライリー本などでも慣用的に使われている。少なくとも「用語」としては確実に存在する。
正規表現でどうしてもどうしてもどうしても(?<=x)を使いたいのですが どのように実装すればいいですか?
>>370 そうですか……残念です
JavaScriptみたいな言語には絶対あった方がいいのに
どうして(?=x)までしか対応してないのかとても不思議です
このぐらいなら実装ないし拡張できそうに思うんだけどなあ
否定ならともかく肯定なら、()つかって取り出せばいいのでは。 (?<=x)y なら x(y) で$1の部分を使う 否定でも正規表現を駆使すればなんとか…
>>375 位置にマッチすることが大切。幅を取られるから代用できない。
正規表現スレの話題だけどな。
>>368 書いてないぞ
「リテラル風表記」として文法ルールのラベルにならあるが
そもそも途中に式を埋め込めるリテラルなんて形容矛盾だろ
だから初期化子なんだよ
俺は初期化子なんて使わねえ。舌が回らねえよ。 連想配列だって用途として捉えてるわけだし、クラスもそう、そういう語に文句いってたらきりがない。
>>368 ECMAScript の用語ではない
他の言語から持ってくるなら「連想配列」も「クラス」も「オーバーロード」も用語としてはある
用語の混乱を防ぐためにあえて「ECMAScriptでは」と書いているのに広義に捉えて「用語としてはある」といわれても困る
すみません質問です。 $(function(){ $("#result2").click(function(){ $("body").children().animate({opacity:"0.3"},"slow"); $("#find-form").animate({height:"toggle", opacity:"1"},"slow"); }); }); <form name="form"> 略 <button id="result2">見積もりを依頼する。</button> </form> としたときに、result2をクリックするとjavascriptが作動せずに index.html?へ移動してしまいます。 その後result2をクリックするとjavascriptは動作するのですが。 ?へ移動ないようにするにはどうすればいいでしょうか?
>>376 なるほど、たしかに
xxx
で
(?<=x)x なら2ヶ所だけど、x(x) だと1ヶ所になるね。
まあ、パターンによっては代用できる(実は後読みを使わなくても良かった)かもしれないけれど。
最悪、後読みのチェックをRegExp.leftContextつかって後でやることになるのかな。
>>380 IE?
<button type="button" id="result2">見積もりなんたら</button>
>381 gフラグを立てたとき()は意味なくなるからな
>>381 >>383 replaceに関数を渡すと左側や右側の文字列が毎回渡されてくるから、そこから取り出す
ようにすればgフラグがあっても扱えるんじゃないかな。
>384 でもそれって結局後から取り出すのとあんまり変わらなくね 正規表現だけでスッキリ表したいってことでしょ?
windowでのスクロールは $(window).scroll(function () { になりますが、これが<div id="i">などの要素でのスクロール時のイベントとなるとどうなるのでしょうか? 一応$('#i').scroll(function () { とかで試してみたのですが
ライブラリの使い方だけについて質問は専用スレにどうぞ
え?なんて?
389 :
386 :2011/12/23(金) 16:36:33.72 ID:???
自己解決しました?
もうえ?って言ってる奴には自分で考えろボケでいいよ
え?
JavaScript初心者なのですが数値にメゾッドを繋げるとき ドット演算子(?)を2つ繋げる必要があるのはどうしてなのでしょうか?
質問です XSSの勉強しているのですが下のコードは脆弱性のあるコードと呼べるのでしょうか? parlやphpを使っている訳ではなくhtmlにただスクリプトを埋め込んでいるコードです <form name="test"> <input type="text" name="box" value="入力" onChange="changeStr()";> <input type="button" name="btn" value="実行" onClick="clickButton();"> </form> <script text/javascript"> <!-- var str; function changeStr(){ str=document.test.box.value; } function clickButton(){ document.write(str); } //<b onmouseover="javascript: alert('スクリプトが実行されました')">ここにカーソルを</b> //↑テキストボックスに打ち込む //--> </script>
jQuery.post()を使ってデータを送信したいのですが 持たせられるdataが連想配列です。 var postData = {}; $("form :input").each(function(){postData[$(this).attr("name")] = $(this).val();}); ところが、form内のname属性が重複している場合上書きが発生してすべてをPOSTできません。 なんとかして名前が重複している値をPOSTすることはできないでしょうか?
396 :
386 :2011/12/23(金) 16:45:49.09 ID:???
>394 キツイ言い方するが そんなコード書く奴がそんな高度なこと気にする必要ない まだ時間に応じた挨拶とか出力して遊んでるようなレベルだろ? >395 jQuery使うな >396 コテつけな
>>395 ちょっ、おま、ありえねえ……
formのname属性の意味調べてみろよ、おいおいおい……
>>392 『数字.』までが数値と扱われるからだね
0..toStringとかだと(0.0).toStringと同じ
10スペース.toString(16); // a っていうのもあり
>>397 うぐぐ・・・やはりjQuery敗北か・・・
>>398 実は最初はそう思ったんですがサーバー側は余裕で受け取れるんですよねえ
サーバー側のプログラムを弄りたくないってのがありまして・・・
>399,400 たいへん勉強になりました どうもありがとうございました
>401 回して1つ1つ追加するしかないな でも簡単にできると思う
>>401 >jQuery敗北か
敗北したのは、jQueryじゃなくてお前だろw
>>401 a=1&b=2 の形式でもいけるはずだから、.serialize() つかえばいいんでないの?
jQuery.post() のページにサンプルのっとるぞ。
>>407 ナイス! さっそく調べてみます!
ありがとうございます
>>408 ちなみに、自分で構築するときは、単に値を配列にしてやればいい。
>>395 のコードでは無条件に突っ込んでるが、
キーが存在してたら、値を調べる。
値が配列なら追加。文字列なら、配列をつくって前の値と共に追加。
かな。全然検証してないけど。
>>409 submit.valueが取れない以外は.serialize()で行けそうです。
[{"a":a},{"a":b},{"a":c},{"a":d},{"a":e}]
こんな感じすか?
>>410 .serialize() の例の一つ上にあるじゃろ。
> $.post("test.php", { 'choices[]': ["Jon", "Susan"] });
choices[]の[]はサーバがPHPのためだから気にすんな。
this.slに、kがあればkを代入、なければ""を代入。 this.sl = k || ''; でもよさそうな
this.sl=k?k:''; ↑ 等価 ↓ this.sl=(Boolian(k)?k:'');
>>414 表したいニュアンスが微妙に違うんじゃね
まあ好みや周りとのバランスの問題でもある
>>413 そうですそのコードです。
this.sl=k?k:''; を
(this.sl=k)?k:''; と読んでました。
>>417 演算子の順序一度調べてみることをオススメする
419 :
Name_Not_Found :2011/12/23(金) 20:15:16.91 ID:e7b7pxP/
javascriptにおいて「式」と「文」はどういうものをさすんでしょうか? また、javascriptでの式と文の定義って存在するんでしょうか?
>>419 function foo(){}がfunction文
var function foo){}がfunction 式
function 式を省略したのがfunction文
ミスった var function foo(){}がfunction 式 ってJavascriptに載ってた。 function文とfunction式は挙動がやや違う。
> var function foo(){} はじめて見た
ようは function foo(){} だけなら文、特殊な扱いされる x=function foo(){}とか (function foo(){})とか !function foo(){}とか X(function foo(){})とか ちょっとでも演算子等を使うと式として扱われる
>>420 >>421 ☓var function foo(){};
◯var foo=function(){};
>>421 ,422
俺もはじめて見たが、それ間違ってると思うわ
JavaScriptって約10年前からあるのに 未だにこういったレベルで議論ができるのは 深いというか面白いな
var foo = function foo (){}; こんなのは存在するけどね var function foo () {}; これは構文エラー
>>426 自由度が高い分、個人単位で細工がしやすいのでは?
>427 >423みたいに値として評価するって表したかったのかな >428 5年くらい前にjQueryみたいなもの作る発想なかったのかな
便乗して聞いておこう。 var twoNumAverage = new Function("x", "y", "return (x + y)/2") document.write(twoNumAverage(3,7)) のvar 〜=new function();って何ですか?
コントラクタ
>>429 5年くらい前っていうと、JavaScriptはかなり遅かったしなあ
それでも、工夫して色々やってたけど
>432 ああ、なるほど
>>429 jQueryの初版が5年ちょっと前の2006年8月26日
それ以前の1年ぐらいはprototype.jsが頑張ってた
正確にいうと、function文とかいうのはないよ。
h=document.getElementById(t).getElementsByTagName('dt'); なんてのが、文法的に可能ってことに衝撃を受けた
438 :
Name_Not_Found :2011/12/23(金) 21:55:39.95 ID:e7b7pxP/
>>435 サイ本を見返してみたら、
式⇒評価して値が生成されるもの
文⇒javascriptに何かをさせるもの、動的な振る舞いをするもの
というように書いてありました。
>>423 の通り、()演算子や=演算子があるために式として評価されるのは分かりましたし、
a();
b();
function a(){
var a1=1;
}
var b=function(){
var b1=2;
}
よくある上記のようなコードで、 b が呼び出し時点ではundefinedなためにエラーが出るけど a は普通に呼び出せるという挙動から、
function(){}は動的な振る舞いをしない、したがってfunction文というのものはないということも理解できます。
が、そうなるとfunction(){}とは何なのでしょうか?
そもそもプログラムというのは式と文のみから成り立つと(僕が)思っているのが間違いなのでしょうか?
>>436 tのIDがついたエレメント以下からdtタグを探すってことだから、不思議でもないとおもうけれど。
>>438 その他に、関数定義ってのがあるんだよ。
んで、文の中に式文ってのがあって、式は文になれるんだけど、
この関数定義とややこしいから functionからはじまる式文は認められていない。
その例で行くと、aは関数定義だけど、bはbに関数式を代入しているってことだね。
442 :
441 :2011/12/23(金) 22:10:26.92 ID:???
かぶった・・・しかもそっちのほうがくわしいな。
>>439 function aa(t){
h=document.getElementById(t).getElementsByTagName('dt');
h.length;
略}
idとタグネームでオブジュクトとして取得を同時に使う発想がなかった。
簡単なJavascriptの初心者向けの本読んだあとは、jQuery使った、
非同期通信(Ajax)と主にphpの勉強してたからな。ライブラリなしのJSって
あんまり勉強してなかった。
>>443 だが、それは t のIDのエレメントがないとエラーになるよ。
あるのが前提ならいいけど。
>>443 Selectors API を使ってみたらどうかな。
var dts = document.querySelectorAll('#' + id + ' dt');
>>438 > そうなるとfunction(){}とは何なのでしょうか?
質問の意図がよくわからないんだけど、それは関数式だよ。
>>446 を補足すると、関数定義は関数名(Identifierの部分)を省略できないので、その形だと関数式な。
>>438 の文脈だと関数定義のfunction a()の方を指して質問していると思うが。
newは使うなって理由がJS初めて2年目のオレにはさっぱり理解 できません。簡単に説明してください。とりあえず、配列は 配列リテラルでvar a=[22,3,2]ってしてます。
newは使え
new Array() のことじゃね? 引数一つの時が…
new忘れたときに意図しない場所にプロパティ追加されたりするとかってやつじゃないか
453 :
438 :2011/12/24(土) 03:40:42.95 ID:tKfWd17z
>>453 そう。式はそのままでも文ともいえるってこと。
この概念がないと、たとえば大昔のBASICみたいな
LET 文ってのを導入して LET 式 ならば文みたいなことをしなくてはいけなくなる。
3;
とかしても、エラーにならないのはこのせい。評価された値が捨てられるから意味が無いけど。
でも function とか { で始まる式文は他の構文と紛らわしいから認められていない。
{a:1};
の場合、ブロックでaというラベルと1という式があると解釈されてエラーにならない。
{"a":1};
の場合、"a"っていうラベルの書き方が無いのでエラーになる。
…これは余談だけど。オブジェクト初期化子という式(式文)とは解釈されないってことね。
functionで始まる場合も必ず関数定義となる。
関数定義も一応文として見れるんじゃない? つうか実装レベルでみてみると定義しづらいね
オブジェクト指向の書き方がいまいち分かりません 関数をベタ書きで書いたりprototypeを乱用してます 良いオブジェクト指向の書き方で参考になるサイトを教えてください
document.getElementById().〜 これ使えばOK
関数や制御構文はメソッドの中にしか書いてはならない
>>457 良いオブジェクト指向で書こうと思うのが誤り
良いJavaScriptを書こう
>>460 ありがとうございます
良いJavaScriptを書こうと思います
添削をお願いしてもいいでしょうか?
var a = new Object();
a.time = new Date();
alert(a.time);
という書き方は良いでしょうか?
まあ好みの範囲で悪くないと思うよ 一つ言うならtimeって明確な名前の子を持ってる オブジェクトの名前がaって素朴過ぎる感じがする 場合によるけどこれなら別に var time = new Date(); でいいんじゃないかと思う
本当に大丈夫ですかね?子飼弾先生に指摘されたら怖い
俺ならこうするわw alert(new Date())
おそらく以降の処理でも使うんじゃないかな。 だから変数に入れているわけで。
>>463 コードが短すぎて良いコードか判断できないよ。
あえていうならオブジェクト初期化子にした方がいい。
var a = { time: new Date() }; こう?こうでいいんすね?怒られないすね?
まぁ、経験
469 :
Name_Not_Found :2011/12/24(土) 13:44:45.53 ID:55qjskI1
せっかくブログを作っても大物にディスられたら人生積むじゃん
>>467 だからコードが短すぎて判断できないんだってば。
jsfiddleに全部のコードをUPして評価して貰った方がいいよ。
prototype乱用ってわりにprototypeを全然使ってないし、正直意味がわからない。
>452を参考にするといいかもね。ひょっとして同じ人?
$('#button'').click(function(){ }); のような関数はwindow.onloadなどで読み込むと使えるようになりますが 逆に停止したり、関数を消す方法とかあるのでしょうか? 今までそうしたい場合 a=true $('#button'').click(function(){ if(a){ function } }); とやっていたのですが
>>463 > 子飼弾先生に指摘されたら怖い
もしかして: 小飼弾
本人に直接聞いた方がいいよ。その人がどう判断するかをここの住人が知ってるわけないんだから。
(小飼弾氏はjavascripterとしては大物ではないと思うけど。)
>>473 だってあの先生はJavascriptのブログをディスりまくってるじゃないすか
俺みたいなザコが先生のブログで質問したらまず囲いユーザーに潰されそうで怖いです
>>474 続けるなら名前を 457 にして。文脈から全部追うのは難しい。
>>472 そういうとこで躓くのは、いきなりjQueryからはじめるからか?
ヒント、$('#button').bind('click', callback);
479 :
472 :2011/12/24(土) 14:01:13.03 ID:???
480 :
438 :2011/12/24(土) 14:02:57.60 ID:tKfWd17z
>>454 ,456
ありがとうございます。
letは初めて知りましたが、なんとなくイメージがつかめました。
ただ、function test(){…} は関数定義というところもあれば
function文というところがあって、混乱しています。
サイ本でも
「function文は厳密には文ではありません。(略)function文はプログラムの静的な構造を定義するだけなのです」
という感じで、それを関数定義としながらも、同本の別章では
「function文は、構文上は文であり」
とか言ってるのでよく分かりません…
そもそも、javascriptの式と文の違いはどういう文脈というかタイミングで意識すべきなのでしょうか?
散々聞いておいてこんなこと言うのもアレなんですが、これらの違いを理解していて嬉しいときっていうのはどういうときなんでしょう?
上に書いた「構文上は」ということからも、デバッグ時にセルフJSLintというか自分で構文解析する場合か
メモリリークなどの解決時に、実行時にプログラムのどの部分がヒープやスタックや静的領域に入ってどう作用していくかと考えるときとか・・・
>>472 jqueryなら
function test(){…}
$("#button").bind("click", test});
$("button").unbind("click", tset);
のようにbindで要素に登録した関数(test)をunbindではずせます。
481 :
457 :2011/12/24(土) 14:03:45.83 ID:???
すいませんでした457ってコテハンつけます var a = { "name":"坂本", "age":"16", "func":function(x){return x * 100;} }; alert(a.func(10)); っていうのと var a = function(){} a.prototype.name = "坂本"; a.prototype.age = "16"; a.prototype.func = function(x){return x * 100;}; var obj = new a(); alert(obj.func(10)); っていうのと var a = new Object(); a.name = "坂本"; a.age = "16"; a.func = function(x){return x * 100;}; alert(a.func(10)); この3つの中で良い書き方と悪い書き方を教えてください
>>481 質問の仕方だけど、コードを比較する場合は名前つけたほうがいいよ。上からabcにしようか。
aとcはほぼ同じだけど、普通はaの書き方をする。そんで、aとbの違いはそれがクラスかどうかってこと。
>>460 に反するけどオブジェクト指向は必須だぞ。オブジェクト指向の概念、クラス定義、継承、このあたり勉強してこい。
>>481 状況によるから一概に良い・悪いは決められない。
その例題だとname,age,funcがバラバラだからa以外はありえないが。
>>480 はっきり言うけど、どーでもいい。こう書いたらこうなる、それが分かれば問題なし。
485 :
457 :2011/12/24(土) 14:41:11.77 ID:???
>>482-483 なるほど
ありがとうございます
基本はaで書くようにして必要に感じたときにbcで書きたいと思います
486 :
Name_Not_Found :2011/12/24(土) 14:45:45.81 ID:55qjskI1
>>482 安易にクラスって言葉使うと噛み付かれることがあるから気をつけなはれ
わかってる人はいいけどね
>>480 サイ本のページ数も示していただけると参照しやすく助かります。
(P96) "function文は厳密に言うと文ではありません。"
(P125) "function文は、構文上は文であり、関数名が必要です。関数リテラルは、構文上は式であり、関数名が不要です。"
ここでいわれる "構文上は" はおそらく Syntax を表しています。
"function文" は FunctionDeclaration に相当するので「構文上は関数定義」が正しいですね。
"関数リテラル" は FunctionExpression に相当するので「構文上は式」で合っています。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/13_Function_Definition.html#section-13 ただし、その後の "関数名が不要です" は誤りです。
FunctionExpression では Identifier (関数名) がオプションであり、省略することも命名することも可能です。
var a = function b () { // 名前付き関数式
alert(b); // b はこの関数内でのみ呼び出せる
};
名前付き関数式は IE8- でスコープが漏れるバグがありますが、関数名を付けるとデバッグ時に有効だそうです。
また、再帰処理するときにも有効です。
ES5 の Strict Mode で arguments.callee を使えなくて困っている人は命名しておけば便利だと思います。
# サイ本は比較的仕様に忠実な方ではありますが、完全ではありません。
# ECMAScript として見ればおかしいと感じるところはいくつかあります。
# 「function文」や「関数リテラル」はその一つで ECMAScript にない用語です。
# 説明の便宜上、あえてそう表現しているのでしょうが、その用語が仕様から来ているのか便宜上のものなのかを認識してから判断しないといろいろ混乱するところが出てくると思います。
>>487 外からも呼び出せるぞ
var a = function b() {
console.log('OK');
};
a(); // "OK"
b(); // "OK"
489 :
457 :2011/12/24(土) 14:57:59.62 ID:???
ちょっと疑問なんですが aの場合はコンストラクタはどう書けばよいのでしょうか?
490 :
Name_Not_Found :2011/12/24(土) 15:01:17.47 ID:55qjskI1
>>489 いろいろ勘違いしている気がする
コンストラクタ関数は普通にfunctionで書くしかなかろう。
Object.create()が使えるならそれで
>>489 データとメソッドをまとめるならオブジェクト指向でbの書き方なんだよ。
aはただの集合体に過ぎない。
chromeのjavascriptのコンソールで入力するたびにフォーカスがコンソールから外れちゃうんですけど ショートカットかなにかでコンソールにフォーカスを合わせる方法ありませんか? いちいちマウスでコンソールをクリックしないといけないのが面倒くさいです
>>491 の補足。
メモリリークではありませんが、「クロージャを多量生産しない」とはよくいわれますし、賛同します。
必要以上にメモリを占有させる必要はありませんから。
>>481 var Ningen = function(name, age){
this.name = name;
this.age = age,
this.func = function(){ return this.name + "は" + this.age + "歳です。";};
};
var sakamoto = new Ningen("坂本", 16);
alert(sakamoto.func());
var a = { // オブジェクト初期化子 name: "坂本", age: "16", func: function (x) { return x * 100; } }; function b () { ; } // コンストラクタ関数 b.prototype = { name: "坂本", age: "16", func: function (x) { return x * 100; } }; var c = new Object(); c.name = "坂本"; c.age = "16"; c.func = function (x) { return x * 100; }; 単一オブジェクトを生成するなら、a 複数オブジェクトを生成するなら、b c は不要
ECMAScript 5がいま話題じゃないですか これってどのブラウザが対応しているかわかりますか?
jQueryのthickboxで開いたiframeの中でもjQueryを使っています。 ChromeとIEでは正常に動くのですがFireFoxで以下のエラーがでます。 c.defaultView.getComputedStyle(h, null) is null [このエラーでブレーク] (function(a,b){function cw(a){return f...a:a+"px")}}),a.jQuery=a.$=f})(window); jquery.min.js (16 行目) jQuery is not defined [このエラーでブレーク] g[c][1].apply(f.element,a)}},contains:...b.ui.isOverAxis(g,c,i)}})}})(jQuery); jquery-ui.min.js (17 行目) jQuery is not defined [このエラーでブレーク] })(jQuery); jQuery...kbox.js (155 行目) $ is not defined [このエラーでブレーク] $(document).ready(function(){ addres...s=true& (78 行目) iframeを読み込んだとたんにこのエラーが出てiframe内のjavascriptが 動作しません。 確かFireFoxで最初に動き出してChromeでデバッグしてるうちに いつの間にか動かなくなっていました。 ちょっとしたことのような気がするのですが、チェックポイントなど 教えていただけると嬉しいです。 よろしくお願いします。
単純にjQuery読み込めてないんか読みこむ前に読み込んでるかじゃないの
エラーの出ている順番から見るとライブラリ読み込んでエラー出してる気がするんですが iframeやめて別窓にすると出ないし、IEやChromeでも出ないから困りました。 経験が少ないからこういうときアタリが付けられないのがダメですね。
>>502 そのiframeのscript部分のHTMLを書いてみて。出来ればその前後の部分も
>>500 iframeの中でjquery.jsを読んでないんじゃないの
htmlの中の特定のタグをコメントアウトする方法はありませんか?
507 :
Name_Not_Found :2011/12/24(土) 17:13:28.41 ID:55qjskI1
>>506 何したいのかようわからんが
removeChildしちゃえばいいんじゃなイカ?
509 :
506 :2011/12/24(土) 17:18:27.86 ID:???
>>507-508 html中の全てのp要素を非表示・表示を切り替えられるようにしたいのです
<a><b><c><d>hoge</d></c><b></a>
↓
<b>タグだけ除きたい
↓
<a><c><d>hoge</d></c></a>
>>506 はこんな感じの質問とか?
>>508 var $=document.getElementsByTagName(tagName);
for(var i=0;i<$.length;i++){
$[i].parentNode.removeChild($[i]);
}
>509 htmlファイルを全パターン用意してlocationで切り替えるのはどう?
>>509 jQueryで
$('p').hide();
とかは?
514 :
509 :2011/12/24(土) 17:25:09.73 ID:???
>>510-511 あくまでボタンを押したらpが非表示になり、またボタンを押したらpが表示されるようにしたいんですが
removeChildだと要素自体がきえてしまいます
>>505 どうやってiframeのページを呼び出してる?class="thickbox"とか?
Firefoxで試してるけど、再現できないな。きちんと動いてる
>>495 ちょっと違う
API設計をちゃんとやればコールバック地獄、クロージャー地獄にならない
ドシロウトの作るAPIは実行コンテキストの理解が足りずに地獄を召還する
メモリーリークもひとつの現れに過ぎない
>>515 その通りです。
正直自分もできないことが不思議で一度PC再起動しようかと思いつめてます
>>505 FireBugのネットパネルをつかって、ちゃんと読み込んでいるか、確認してみよう。
520 :
509 :2011/12/24(土) 17:29:49.25 ID:???
すいませんdisabled trueでできました
hidden
523 :
509 :2011/12/24(土) 17:54:14.65 ID:???
すいませんjavascriptを切りたいのでscriptタグを検索してにdisabled = trueを設定したんですが切れません 一度スクリプトを読み込んだから切れないということでしょうか?
>>518 >>505 の中にはないけど、prototype.jsは使ってる?
jQueryと併用すると$の関係で問題が起きることがある。でもIEとChromeでは動いてるからなあ
>>500 はiframeのエラーで間違いない?親フレームの方だったりはしない?
iframeのエラーだとHTML自体は呼び出していることになるんだよね。わかんねえ
525 :
Name_Not_Found :2011/12/24(土) 18:04:40.46 ID:55qjskI1
>>523 >javascriptを切りたい
それはサイト側がどうこうする問題じゃないからなあ
自分で実行した内容を無効にしたい時は
予めもとに戻す用意もしておくのが俺のジャスティス
ありがとうございます。
パネルで確認しましたが、読み込んでるようです。ドメインが違うのでグレーになってますが中身も見えます。
>>524 prototype.jsはコンフリクトがあるので使ってません。そのためにthikbox選択しました。
>>526 一度削除したりローカルに置いてみたりminiじゃない方使ってみます。
また報告します。
再起動しましたが再現します。orz
配列から重複を取り除くためのメソッドってありませんか?
ありません。
>528 順番が崩れていいのなら Array.prototype.重複削除=function (){ var a=this,i=a.length-1; a.sort(); while(i)if(a[i]===a[--i])a.splice(i,1); } A=[5,6,4,6,7,8,5,6]; A.重複削除(); alert(A); //[4,5,6,7,8]
値がオブジェクトだとややこしくならないか。
>>527 サーバ側がきちんと MIME タイプを設定していないと読み込めない JavaScript があるらしい
AddHandler server-parsed .js
AddType text/javascript .js
とりあえず、.htaccess 等でこれを設定してみて
>>531 普通オブジェクトが無意味に重複してて
それを取り除かないといけないようなことなんてないと思うけどな
どういった場合が考えられる?
>>533 配列は順序が命だからそれを壊してしまうのはナシかな。
それと汎用的な関数だから色々なユースケースを考えないといけない。
>>528 遅いが既存のメソッドである程度カバーできる
Array.filter
hoge.filter(function checkIndex(value, index, array) {
return array.indexOf(value) === index;
});
Array.reduce
hoge.reduce(function pushUnipueValue(argArray, value) {
if (!~argArray.indexOf(value)) {
argArray.push(value);
}
return argArray;
}, []);
どちらも非破壊的
>534 汎用的とかいっても重複の判断なんかはケースバイケースじゃん? それに重複を削除するような場合は順番関係ないこと多いと思うよ
>>537 === で比較するだけだしケースバイケースって事もないと思うけど…。
539 :
Name_Not_Found :2011/12/24(土) 23:46:51.64 ID:Z6s6LIru
今、簡単な麻雀ゲームを作ろうとしていますが、分からない所があるのでご教授ください。 とりあえず、牌がランダムに配られる関数はできたのですが、それを <input type="button" onClick="処理"> の”処理”部分に記述するとクリックした瞬間ページがリロードされてしまいます。 私としては、ボタンはそのままあって、ボタンが表示されている下に牌を表示されるようにしたいです。
>>539 type="button"なら送信されないと思うけどねー。とりあえず、その
処理の中にalert()入れて、処理までちゃんと到達しているか確認して
みては。処理の中でフォーム送信とかしてないよね。
>>537 配列ってのは順序があって初めて成り立つんだよ。ただの"値の集合"と勘違いしてない?
順序がないものはそれは連想配列。
function getElementsTN(nm) { return document.getElementsByTagName(nm); } function chFtColor(color) { var element=getElementsTN('body'); element[0].style.backgroundColor = color;// 引数で設定したcolorを使う。 } <button onclick="chFtColor('gold')">black</button>は動きますが、 <form> <input type="radio" name="bg" value="#000000" onClick="chFtColor(this)" checked><strong>Black</strong> <input type="radio" name="bg" value="gold" onClick="chFtColor(this)">Gold <input type="radio" name="bg" value="#ff0000" onClick="chFtColor(this)">Red <input type="radio" name="bg" value="#0000ff" onClick="chFtColor(this)">Blue <input type="radio" name="bg" value="#008000" onClick="chFtColor(this)">Green </form> ラジオボタンが動きません。どうしたらいいのですか?
>>543 色々言いたいことはあるが、chFtColor(this.value)にすれば動く。
>538 いやいや、例えばオブジェクトとかになると どこまで重複と認めたいかなんてケースバイケースじゃん >541 勘違いしてるのはあんただよ 配列でも順序が問題にならないようなことも多いよ 特に重複を削除して詰めても問題ない場合の話なんだから
,. /ノ (\;''~⌒ヾ, ~'ミ ・ ェ) ヤギだよ .,ゝ i" 自動でみんなを癒してくれるすごいやつだよ ヘ'""~ ミ ,) ノ,,_, ,;'ヽ) し'し' l,ノ
549 :
Name_Not_Found :2011/12/25(日) 10:35:05.36 ID:q8H6sGLK
jqueryのdraggableで着せ替えゲームを作ったんですが 服が多くなったので服を引き出しに入れようとスライドするdivに入れたらドラッグできなくなってしまいました。 服を引き出しに入れ、なおかつdivの外の体まで持っていくようにするにはどうしたらいいでしょうか。
var $ = parent.$; だけではダメみたいです コードに問題があるわけではなく、なにかFireFox向けにコードを追加しないといけないようです。 親でも子でもjQuery読み込んで最初は動いてたんだけどなあ・・・
ここでよくわからんような質問する人全員に言っておきたいが まずは小さなことや部分的なことから始めて どこがうまく言ってなくてなにを聞きたいかだいたい説明できるような大きさの事しかするな なんか動きませんとかくらいじゃ答えようがない
>>547 分かってないようだから質問。
順序を維持して重複を削除、順序を破壊して重複を削除、どっちが正しい?
最初に出されたコード(
>>530 )は論理を無視して単にコードを短くしたいだけように思えるが。
重複の条件なんて===で調べればそれで十分。必要なら任意で判定用のコールバックを受け取ればいいし。
オブジェクトの重複を検査出来ないなんて言い訳にすぎない。
>>553 ===で調べれば十分だと俺も言ってるだろが
だがオブジェクトの場合ややこしい(中身が同じでも別参照はtrueにならないんじゃないか)って言われたから
それに対してそこまで汎用的に使えるライブラリといっていいようなものを作れとか面倒見きれん
配列の中身総当たりで調べるのは特にdeepならそれこそ重過ぎて使い物にならないから
今回はわざわざsort使ってやっただけでこれは『一例』としていいんだ
って意味でケースバイケースって言ったんだよ
不満なら俺に文句いうよりも自分が思うような『一例』を挙げてやれよ
>>530 おめえこれ人様のコードをコピペしてもってきただけじゃんw
558 :
Name_Not_Found :2011/12/25(日) 11:39:39.28 ID:xf3N5PSJ
>>553 >重複の条件なんて===で調べればそれで十分
こんな場合とか、どうすべ?
var a = [
function(){ alert("hello"); },
function(){ alert("hello"); }
];
>>554 勘違いしすぎ。オブジェクトの場合ややこしい(
>>531 )ってのは参照レベルでの話だよ。
var a = {x:3};[a, {x:0}, a, {x:5}].sort(); これで確かめるといいよ。
>>558 それはLIKEであってEQUALではないだろ。
>559
ああそうか、なるほど
それはすまんかったな
>>330 は正直値が文字列か数値としかイメージできてなかった
その場合の『一例』として見てください
値型は完全な一致、参照型は先の一致、これがイコールだな。値型と参照型を混同してる奴がいるな。 (1.5 === 1.5) ({} !== {})
もう誰かが全部総合したライブラリ作ればそれで済むだろ 誰か作れよ functionとかオブジェクトはJSONに変換すればいいかな
564 :
Name_Not_Found :2011/12/25(日) 11:48:32.02 ID:xf3N5PSJ
>>560 いや、質問が「重複」だったから
必ずしもJS的に===であることにこだわる必要があるのかと思って
>>564 [true,1]が[true]になったらみんな泣いちゃうよ。
まず型で分けてJSON化して比較するのが答えかな 使い物になるのかは別問題だけど でもprototype関連とか一工夫いるし メソッドが列挙できないように隠されてたら無理かもしれない
565は全然わかってねえな
分かってないのはお前だボケ
これはひどい
画像をGoogle画像検索からランダムに取得して 少し暗め等その時の設定にあった雰囲気のものを選別して 一定時間毎に背景に表示することは可能でしょうか? 可能であればどのようなコードを書けばいいのかアイディアをください
再現性のある最小限のコードで確認しました
&TB_iframe=trueオプションを外せば動きますが・・・
直接iframeをjQueryで挿入してもエラーが出るのだろうと思います
test.html
<html lang="ja" xml:lang="ja" xmlns="
http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<link rel="stylesheet" href="../css/thickbox.css" type="text/css" media="all" />
<script type="text/javascript" src="
http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js "></script>
<script type="text/javascript" src="../js/thickbox.js"></script>
</head>
<body leftmargin="0" marginheight="0" marginwidth="0" topmargin="0">
<a href="iframe.html?keepThis=true&TB_iframe=true&height=500&width=600" class="thickbox" title="" target="_blank">
<input type="button" value="編集" onclick="" />
</a>
</body>
</html>
iframe.html
<html lang="ja" xml:lang="ja" xmlns="
http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<script type="text/javascript" src="
http://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js "></script>
</head>
<body leftmargin="0" marginheight="0" marginwidth="0" topmargin="0">
hello!!
</body>
</html>
>>566 functionが比較出来なくなるし、オブジェクト初期化子に変換されるような
valueOfとかtiStringが後で書き換えられたら正しく比較出来なくなる
>>544 やっと動きました、ありがとうございました
もう「配列から重複を取り除く」に必要な情報をコールバック関数に提供。 削除は末尾に近い要素。これでよかろ。 仕様の決定権が実装側にあるなら別だけど テキトーな仕様に付き合ってあれこれやってたらきりがない。 テキトーに実装して、あとは使うヤツに任せりゃいい。
自転車置場の議論でググってみましょう
<body> <dl class="a1" id="s1"> <dt>2007年1月1日</dt> <dd>ここに2007年1月1日の日記の内容を書きます。</dd> </dl> <dl class="a2" id="s2"> <dt>2007年2月1日</dt> <dd>ここに2007年2月1日の日記の内容を書きます。</dd> </dl> <script type="text/javascript"> var Slider=function(kp,popo){ var a,h,d; a=document.getElementById(kp); h=a.getElementsByTagName('dt'); for(i=0;i<h.length;i++){ var d=h[i]; d.onclick=function(){alert(popo)}; } } var slider1=new Slider("s1",'hello'); slider1();//動く var slider2=new Slider("s2","see you"); slider2();//動かない </script> </body> なぜ動かないのか分かりません、教えてください
slider1(); でエラーになってる。slider1の値は関数オブジェクトじゃない。 newがどう振る舞うのか。new Sliderが返す値が何なのか。 この辺調べて、Slider関数を呼出すのにnewが必要かどうかよく考えること。。
578 :
Name_Not_Found :2011/12/25(日) 16:03:32.73 ID:PNvclf7i
eval()メソッド中にエスケープシーケンスを利用することはできないのですか? 例えば、eval('alert(\'こんにちは\');');といった感じです。 どうしてもうまくいかないので教えてください。
580 :
Name_Not_Found :2011/12/25(日) 16:27:49.50 ID:PNvclf7i
>>579 eval('alert(0);');なら実行されますが、文字列になって"や'が含まれるようになると上手く行きません。
すいません。どうしても動かない原因がわからなかったので質問させてください。
[環境]ブラウザ:firefox9、OS:Windows7、鯖:Apache
ajaxでurl先にアクセスしたいのですが、「var options」内の「url」をlocalhostにすると
「success」側のメソッドが呼ばれ、問題ないのですが、
http://www.google.co.jp等のl ocalhost以外の場所へのURLにするとerror側のメソッドが呼ばれます。何か見落としている点があるのでしょうか?
[このページへのURL"
http://localhost/testHtml.htm "]
(略)
<script type="text/javascript" src="./js/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(function()
{
var page = "
http://localhost/ ";
//var page = "
http://www.google.co.jp/ ";
var options =
{
type:"GET",
url:page,
success:function()
{
alert("成功");
},
error:function()
{
alert("失敗");
}
}
$.ajax(options);
}
);
</script>
(略)
583 :
Name_Not_Found :2011/12/25(日) 16:47:37.21 ID:xf3N5PSJ
584 :
Name_Not_Found :2011/12/25(日) 16:54:28.01 ID:PNvclf7i
>>579 ,582
\マークで打っていたのをバックスラッシュをコピペしたら実行されるようになりました。
お手数おかけいたしました。
>>572 内蔵のtoJSONを使うか
一度toStringのバックアップをとっといてdeleteすればOK
functionも大丈夫
このスレの住民って本気出したら、グーグルマップ作れるレベルなん?
いいえ ただ本で得た知識を披露してるだけです まともな本を5冊ぐらい読めば回答にもいちゃもんつけれるレベルになるので本を読みましょう
できるけどパフォーマンスは最初数分の一くらいになりそう あと地図は開発者の家の周りだけになる
ここの連中ってさFirefox前提で回答してない?
いいえ、IE9が前提です
俺はnetfront前提 netfrontが一番きちんと抑えるべきところは抑えた実装してるからな
僕はネスケ4.0が好きです
自分はCaviarっていう多分誰も使ってないマイナー高機能ブラウザ
―――――――――――― ↑↑↑↑↑↑↑↑↑↑↑↑ 〜ここまでFirefox無し〜 〜ここからも無し〜 ↓↓↓↓↓↓↓↓↓↓↓↓ ――――――――――――
男は黙ってChromeっしょ
私iPhone使いだからSafariかな
>>590 古いIEに対応させたいならprototype拡張してやれば
ひどいじえんをみた
ブラウザなんて用途で使い分けるもんだいないのか
日本のIT企業はホリエモンのように既得権益にしがみつくジジイに 潰されるから全然だめだな。 海外のアノニマスみたいな高い技量の匿名集団→IT企業 って感じにならないかな?既得権益どもにはハッキングして表に 出たら不味い情報で牽制してさ。
>>601 まず、手始めにスレの名無しさんをアノニマスさんに変えようか
>>601 そういう社会は有り得ないよ
なぜなら潰す側で成功したら潰される側になっちゃうから
結局長くは続かない
ライブドアって技術とかあったんかw
>>604 技術らしい技術はなかったが、日本にも世界的に有名なIT企業が
育っていくかもしれないって矢先にホリエモンが逮捕された。
しかも、どこの会社もやってる粉飾決算で何故か堀江だけ
刑務所にぶち込まれる。
ほかにもwinnry開発者を逮捕するとか、日本の法律はIT企業作る
には厳しいな。優秀な日本人が海外でIT企業を起業とか無理なんかな?
モバゲーとグリーは出会い系だが、ライブドアはIT企業っぽかったやん。
堀江なら、技術者が〜やりたいですって言ったら金出してくれそうだし。
実態はブラック企業のでかいのだろ
今、大学生で、グーグルドキュメント、グーグルマップで有名なAjaxの Javascript+サーバーサイトプログラムでwebアプリケーション作ってる 会社に働きたいと思ってるのですが、どこかいいとこありますか? 学生が企業して作ったベンチャー企業等ありますか?
>>571 再現した。
んで、1.7.1にしたらでなくなったよ。試してみて。
jqueryのバグかね…? コードを追いかける気はないが。
610 :
Name_Not_Found :2011/12/25(日) 23:16:50.80 ID:xf3N5PSJ
>>604 エッジの頃には出来る人いたと思う
有◯さん出てった頃から怪しいのかも知れない
611 :
Name_Not_Found :2011/12/25(日) 23:17:40.56 ID:xf3N5PSJ
>>608 >Javascript+サーバーサイトプログラムでwebアプリケーション作ってる
どこ行ってもそれはやる
>>611 わかりました。
今のwebアプリケーション開発で普通なんですか。
今3年で、来年4年なのですが、研究室は画像系になりました。
画像系のC言語で処理してた事柄をwebアプリケーションで簡易版
になるかもしれませんが、できるような研究する予定です。
んなことかいて、特定されね?
んなこたーない
615 :
Name_Not_Found :2011/12/26(月) 01:27:19.79 ID:Im+f/h7N
>>612 大雑把すぎたすまん
web系の会社ならどこでもやる、が正しいです
どこでもやってるのは確かだけれども・・・ 誰もができる、ってわけではないよね C言語書けます、っていう奴の技術力がピンキリなように、 JavaScript書けます、っていう奴の技術力もピンキリだし
背景の色変えるのからグーグルマップまでだもんなぁ
なんでグーグルマップが最終到達点みたいになってんだよ
とりあえず、webでよく見かける、jsといえば、オセロゲーム、 アコーディオンメニューくらいは余裕で作れないと、 Javascriptできるって言えないな。
620 :
Name_Not_Found :2011/12/26(月) 05:25:16.33 ID:Im+f/h7N
>>616 ああたしかに
会社によっては、分業が進んでサーバサイド専門と
フロントエンド専門にわかれているところも多かろうけど
エンジニア個人としては、どちらかを専業としてやらないだけであって
出来ない・知らないのでは困るなあ、という個人的な所見にしておきます
両方ひとりでやってて、例えばPHPとJSとASを交互に書いている時とか
たまに混乱して、ぬぁぁ!ってなります
プログラマの行き着くとこっていったら 通信やデータベース管理とかはもちろん、 グラフィックもサウンドもシナリオも全て自分一人で熟せて そこそこ大作のゲームが一人で作れるようになること やろうと思えばそこまでチャッチャとできるよって言えて始めて一流 なにか一つが超長けてる奴は山ほどいるけど平均的にできる奴は少ないからな おまえらもそこを目指せ
社畜共の椅子取りゲーム論かよ。
実力付けたいならベンチャー系行くのがオススメだぞ、意見出し合って一人で何でもやることになるからな 結構有名なところ行ってたが本当に流れ作業の単純作業だったからスキルアップは望めない
>>622 逆だろ
本当にプログラミングが好きで趣味でもやってるなら
なんでも自分でやってみたくなるもの
それが仕事として割り切ってない真のクリエーターの志
ゲームとかは自分で作った割合が大きい(と思ってる)ほど感動が大きい
なんでゲームが最終到達点みたいになってんだよ 偉そうなことはコンパイラやVM作ってから言え
>625 ようはプログラマーにはいろんな力がいるよねって言いたかっただけ 総合力がいるという意味でゲームはわかりやすいでしょ
jQueryって必要な機能だけを取り出してファイルサイズを小さくすることってできますか?
jquip
ありがとうございます 検索してみます
すみません、ここで聞くようなことじゃないかも知れませんが 通信するアプリを監視して特定のドメインと通信を始めた場合は アプリを強制終了させてログファイルに記録したいのですが 調べたらよくわからない言語で、自分が唯一知るJavaScriptでなんとかできないでしょうか?
631 :
570 :2011/12/26(月) 10:39:04.40 ID:XQXp6IIH
>>609 あなたにはなんとお礼を申し上げていいか・・・
どれだけ言っても感謝しきれません
ありがとう ありがとう 。・゚・(ノ∀`)・゚・。
あなたの人生も感謝と尊敬に溢れますように
おう!
こうやってありきたりな言葉で人を褒めて その余韻に浸る奴っているよな
すまんごばくしたw
>>631 >画像をGoogle画像検索からランダムに取得して
google apiのドキュメントを読みながら取得できる方法を探しましょう。
指定した範囲の整数を返す処理を書いて見ましょう。
>少し暗め等その時の設定にあった雰囲気のものを選別して
>一定時間毎に背景に表示することは可能でしょうか?
>可能であればどのようなコードを書けばいいのかアイディアをください
637 :
Name_Not_Found :2011/12/26(月) 16:14:17.98 ID:fUxGE/Jx
Google+の「もっと見る」みたいに、追加の読み込みの完了を検知するにはどうしたらいいんでしょう
>>632 お、おう
ちなみに、
var $ = parent.$;
は親のフレーム(window)で既に定義されているだろう $ を使おうってことだね。
ちゃんと書こうとすると window.$ = window.parent.$; か。
んで、そのままだと親のコンテキストで動いてしまうから
$(セレクタ, document).なにがし(); で使おうと。
jqueryに付随するライブラリがそれで動くかは別問題だけれど。
あなたが試されたときには子フレームでもjqueryを読み込んでたんじゃないかな。
それだとかぶるからだめかと。
>>638 ありがとう ありがとう ぺろぺろ (^O^)
640 :
Name_Not_Found :2011/12/26(月) 17:22:53.32 ID:UJ5V9q9U
質問させてください。 Jquery のdraggableで、handle要素を持たせつつ Containで親要素内だけでしかドラッグできない ようにするにはどの様にすれば良いのでしょうか?
javascriptでテストってどうやるのでしょうか?
>>638 重ねてありがとうございます。
var $ = parent.$;の件。
うすぼんやりと意味はわかってましたが、ご説明いただいて霧が晴れました。
関数を定義して使わないとダメなんですね。
そして、子フレームでも読み込んでたからダメだったですね。
何度も繰り返しになりますが本当に感謝してます。 本当に本当にどうもありがとうございました。
きもい
645 :
Name_Not_Found :2011/12/26(月) 18:00:15.91 ID:Im+f/h7N
646 :
Name_Not_Found :2011/12/26(月) 18:06:04.01 ID:Im+f/h7N
>>637 >読み込みの完了を検知
くわしく
status 200とreadyState 4以外になにか必要なの?
指定要素が画面の真ん中に来るようにスクロールさせる jqueryプラグインてありますか?
>>640 $("セレクタ").draggable({ handle: "セレクタ", containment: "parent" });
こんな感じでやってみ。
649 :
Name_Not_Found :2011/12/26(月) 19:22:12.33 ID:UJ5V9q9U
>>648 ありがとうございます。
帰ったらすぐ試して見ますが
Handleとcontainmentの二重指定が駄目って怒られそうな気が...
650 :
Name_Not_Found :2011/12/26(月) 19:27:40.55 ID:WudbcZMU
Chrome Extensions APIのchrome.cookies.onChangedみたいに cookieが変更されましたよイベントみたいなのってできますか? 同一ドメインの別のウィンドウ(タブ)で変更されたcookieを ページをリロードせずに知りたいんですが方法があれば教えてください
キーが数値の連想配列をfor inでループさせると、キーの数字が小さいものからループするんですが キーの数値で降順にソートしたときなどにその順序のままループさせたい場合は どうやればできるのでしょうか?
>>650 Web Storage使ったほうが良いんじゃない
653 :
650 :2011/12/26(月) 21:44:18.65 ID:???
>>652 レスどうもありがとう
cookieってのは外せない条件で・・・
タイムアウトとかインターバルとかで定期的にチェックするしかないですかね・・・
>>651 for-inは順序に規則性がないよ
たまたま実装が足並みを揃えてくれているだけ
順序が必要なら配列を使うべき
<div class="aa" id="ki">I love you.</div>で、 I love you.をJavascriptで取得ってどうするのですか?
>>655 getElementById
textContent
658 :
Name_Not_Found :2011/12/26(月) 23:47:39.08 ID:101euok8
>>648 普通にできました。
もっと勉強しないと…
とにかく、本当に助かりました。ありがとうございます。
javascriptの短縮形のJSって出会い系の隠語のJS(女子小学生) みたいで卑猥だよな。 「昨日、JS(女子小学生)の勉強したぜ」 「昨日、JS(Javascript)の勉強したぜ」
やっぱりJSは最高だぜ!
ページの文字数? 容量を取得するにはどうしたらいいでしょうか?
XMLHttpRequest
セミコロンなくても動くJSの適当なとこが好きです。
664 :
637 :2011/12/27(火) 00:40:50.81 ID:???
>>646 やりたいことは、「もっと見る」を叩いて新たに読み込まれたノードを探索することで
探索対象として配列を作るタイミングを、確実に要素の読み込み完了後にしたい
ツイッターやGoogle+みたいにページ遷移せずに要素が追加されるようなページだと
loadやら教えて頂いたstatusやらを見ててもうまくいかないのです
>>662 すみません
自身のドキュメントのサイズが知りたいのですが
firefoxではdocument.fileSize が使えないのでやはり文字数数えたほうがいいのでしょうか
666 :
612 :2011/12/27(火) 01:24:44.03 ID:???
>>613 >>614 特定は難しいと思います。
研究室の備品にニンテンドウ3DSがありますが、画像系なら
ニンテンドウ3DSが普通に置いてあるはずです。
このニンテンドウ3DSが研究室を決めた決め手になりました。
667 :
Name_Not_Found :2011/12/27(火) 01:37:28.50 ID:xPxTRM6f
>>664 > 読み込まれたノード
> 要素の読み込み
て何のことを差してますか?
何かしらのデータをXHRで読んで、それを元にノードを生成して
ドキュメントのどこかにappendChildする、もしくは
HTMLソースをテキストで読んで、ドキュメントに書き込む
てのが一般的かと思うんじゃが
>>665 そのページ自身をajaxして
responseTextのlengthではいかんの?
668 :
Name_Not_Found :2011/12/27(火) 01:38:08.22 ID:xPxTRM6f
>>666 >画像系なら
>ニンテンドウ3DSが普通に置いてあるはず
んなこたー(ry
669 :
665 :2011/12/27(火) 01:40:07.24 ID:???
>>667 なるほどそういうことでしたか
ありがとうございましたm(__)m
670 :
Name_Not_Found :2011/12/27(火) 01:43:17.11 ID:xPxTRM6f
>>669 すみませんアホなこと書きました
レスポンスヘッダにファイルサイズが書いてあると思います
ごめんなさい
ごめんなさい
ごめんなさい
672 :
Name_Not_Found :2011/12/27(火) 02:35:36.24 ID:vsWvYN/V
>>667 ノードと要素はツイッターで言うとポストを指します
ツイッターでページ最下部にスクロールするとポストが追加で読み込まれるんですが
この読み込みが完了するのを待ちたいなあと
XHRでのデータの受信状況はブックマークレットとか外からでも監視できますか?
673 :
Name_Not_Found :2011/12/27(火) 02:54:51.13 ID:xPxTRM6f
>>672 あーあー
自分でそういうのを手作りしているわけではなく
ツイッターやらで実際に動いているスクリプトの
挙動をコントロールしたいのか
>>1 にも書いてあるけど、オレオレ用語は混乱するっすよ
ソース読んで、該当箇所を探してくだされ
そこにアクセスできるオブジェクトがグローバルにあれば
そこからたどって監視なり割込みなり出来ると思う
674 :
637 :2011/12/27(火) 10:46:23.57 ID:???
>>673 できないことがわかった
どうもありがとう
675 :
Name_Not_Found :2011/12/27(火) 12:11:05.30 ID:UDecYAKk
676 :
234 :2011/12/27(火) 16:59:14.60 ID:F4ifona4
677 :
Name_Not_Found :2011/12/28(水) 02:10:34.59 ID:FRQ1l/Ei
jqueryのdraggableでドラッグ中の要素のcssで指定したシャドウの効果が無くなってしまうのはどうして?
サンプルとかないと答えにくいんじゃないか?
データベース関係で、 最終的に50^3+30^3≒50^5くらいの数の外部スクリプトを用意して使う予定なのですが タグの生成と読み込みに時間が非常にかかり、読み込みが終わった後でもブラウザが不安定になります 解消策を教えていただけますでしょうか
すみません50^3+30^3≒15万個の間違いです
その対象スクリプト全部読み込ませてるわけ? 必要なのだけ選定して読み込ませたらいいんじゃないの 15万個全部必要なスクリプトとか見てみたいわw
textareaに以下の3行の文字列があります この中の@が出現する位置を2行目4番目といった感じで取得する方法はありませんか aaaaaaa bbb@bbb ccccccc
各行を改行で分割すればあとは二次元配列の要領でできる
配列ですか たとえば1万行ぐらいあるとメモリがやばいことになるのですが 配列以外で方法ないですか?
3行がいつの間にか1万行に
1万行のテキストで別に大変なことにはならんでしょ。 3MBのテキストをgフラグ付きのexecで多重配列を作っても 256MBのマシンでなんともなかったし。ローカルでの運用だったけど。
>681 全部読み込ませます 管理の都合上これ以上減らせないのです
ブラウザからローカルファイルにどうやってアクセスしたんですか?
誤爆
>>688 ローカルでの運用=全部ローカル。
ChromeはローカルのHTMLからでもfileスキーマを許可しないと無理らしいけど。
どうしても配列を作りたくないなら、0から「@」の文字が現れる添え字までを切り出して
その中から改行文字を数える→何行目かがわかる
その切り出した文字を、さらに改行文字が最後に現れる添え字から終端までを切り出して長さを見る→何文字目かがわかる
691 :
Name_Not_Found :2011/12/28(水) 16:51:37.78 ID:3acANatO
google画像検索のAPIを使えばJSONPで取得できるじゃん
返信無いからもういないよ
694 :
Name_Not_Found :2011/12/28(水) 17:14:36.60 ID:3acANatO
将来的にはプラグインはjQueryが主流になるのでしょうか? Prototype.jsってバージョンアップしてましたっけ? Prototype.jsはなくなっていくのでしょうか?
jQueryは変態、色物
もしかしてプラグインってjQueryとかPrototype.jsみたいのばかりだと思ってる? これらはプラグインとかライブラリーと言うよりフレームワークでしょ ライブラリーって本当に沢山あって使い分けるものでなくなったりするものでもないでしょ
Javascript始めた早々でつまづいた。 下のコードを書いて動かしてるんだけど デバッグするとなぜかJavascriptなんてないと言われてしまう。 すごくしょうもないことで動かないと思うんだけど・・。 <html> <head> <title>Javascriptテストページ</title> <script type="text/javascript"> a = new Array(5); a[0] = "0"; a[1] = "1"; a[2] = "2"; a[3] = "3"; a[4] = "4"; b = (a == 0;) ? "aの値は0" : "aの値は0じゃない"; alert(b); </script> </head> <body> <p>aaaa</p> <HR> </body> </html>
> b = (a == 0;) ? "aの値は0" : "aの値は0じゃない"; 「a == 0;」の「;」いらなくね あと行末の「;」これ全角じゃね
>>695 すでに主流だと思うよ。
してるよ。
そんなこと誰も分からないよ。
>>699 動いた!!
プログラム初めてなんでもう1時間も見直してた・・・
助かったよ。
>>698 > なぜかJavascriptなんてないと言われてしまう
デバッガ「JavascriptじゃないJavaScriptだ!」
> (a == 0;)
;) ウィンクかわいい
>>684 indexOfを何度かつかって、@の位置までの \n の数を数える。+1したものが行。
@の位置から@直前の\n の位置(ない場合は-1)を引いたものが列。
これだと文字列を切り貼りせずに数えられるかな。
charAtで走査してもいいんだろうけれど。
704 :
438 :2011/12/28(水) 22:36:27.63 ID:zUA8iGxS
>>704 「ソース要素 (source element) 」とはソースを構成する要素。
要素とは「文と関数宣言」。
ECMA的には関数式も関数を定義する構文。関数式と区別するなら関数宣言。
関数式と関数定義を区別する流れはどうなのかね。
何で企業はjqueryの更新しないのですか? 1.3か1.4使ってるところしか見たことないんですがバージョンアップしない理由あるんですか?
バージョンアップしたら動かないプラグインを使ってるからだろ 目先しか考えないバカばっかりだからな
メジャーバージョンアップはなかなかなあ
15万の外部script全読み込みすごいな 管理の都合上減らせないって、単に適切な実装をする能力がないからアホなことしてるだけだろ
つうか、15万のscript要素が書かれているHTMLとか見たことねーよ! どうせ、ひとつひとつは短いコードだったり 必要ないものや内容が重複してたりするんだろうな
変数fooにプロパティが追加されたときだけ通知が欲しいのですが foo.o = 0; // alert('fooにoが追加されました'); foo.o = 0; // 既にoがあるので何も起きない setTimeout何かで監視しないとダメでしょうか
15万の外部スクリプトとか無茶させても一応動くんだw ひとつ賢くなりました。
毎回typeofで追加されたかどうか確認して追加されたときだけ通知
>>712 javascriptでscript要素を生成してってことでしょう。多分。
717 :
713 :2011/12/29(木) 02:50:23.52 ID:???
>>715 t、typeof??
「毎回」ということは結局、setTimeoutあたりで監視するってことですよね?
それをしない方法があれば教えてください
ないお。 IE8を切ってもいいなら別だが。
そのプロパティが変更(追加)をされる地点より前に そのプロパティが存在するかどうかの比較を追加して 通知するのじゃいけないの?
ゲッターロボ! ワッチャウト!
そのプロパティが特定のものだったら watch とか セッターとか方法あるだろうけれど。 任意のとかなると、 foo.o = 0; というかたちではなく foo.setProperty("o", 0); の形に統一してそこで検知するしかないような。 (setProperty(foo, "o", 0); みたいなのでもいいけど)
ユーザーエージェントを書き換えられている状態も含めて IEはバージョン7以下でアクセスしたらバージョンアップを施すメッセージを表示させたいのですが こういうのはどうやるのでしょうか? IE8から対応しているcssプロパティが使えるか使えないかチェックする方法って良いと思いますか?
最近はそうするのが主流でないの?フィーチャーディテクションとかいう名前が付いてる
IE7以下なら条件付きコメント使えカス
条件付コメント使いますども
>>712 サーバー側でもう少し減らせるとは思うのですが
その操作にきつい制約があったりいろいろな事情でこれが(管理上)ベストだという結論になりました
一つ一つ重複のない別のデータで、今は一つ〜数百Bほどでローカルでテストしていますが
将来的に〜数百KBにになる予定です
モバイル回線とかだと接続が途切れるからそんな巨大なファイルをちゃんと読み込めないことがあるんだよね〜
728 :
Name_Not_Found :2011/12/29(木) 12:22:16.79 ID:opalKHLr
>>726 一つで数百KBのJSってのもなかなか壮観だが、それが15万ってw
平均100KBで15万ファイルあったら
それだけで14GBを超えるんだが、それを全部ダウンロードさせるなんて
全然現実的じゃない
サーバー死にますわ
おそらく多くのファイルがデータをいつまでもほとんど入れられず 数十Bくらいになると思うのでそこまではいかないと思いますが 将来的にどのファイルにどれだけ入っていくのか全く予測ができないので バランス良くまとめようもなく 一応これでも50^3+30^3の50、30と^3までまとめたのですが
予言しようwww 99%はタイムアウトして終了www
必要なデータだけをその都度取り出す設計に直すべき できないならできる人を呼ぶべき
一回のアクセスで15万も読み込ませるとかバカだろ
ちょっと調べてたのですが Node.jsを使えば大丈夫なのでしょうか?
あ、Node.jsはサーバー建てないとダメなんですね……
736 :
713 :2011/12/29(木) 14:05:05.69 ID:???
>>718 IEは眼中にないので、ぜひ教えてください!
>>719 if (!('o' in foo)) {
// 通知
}
foo.o = 0;
こういうことですよね?
すみません、それを入れない条件で。
>>721 特定のものだとgetter/setterで判定できるのですが…
アドバイスありがとうございます。
>>736 サポートプラグイン入れて演算子オーバーロードしろ
>736 window.watch("foo",func,true);
740 :
713 :2011/12/29(木) 15:08:03.42 ID:???
>>737 >>721 さんの言うように不特定のプロパティだとgetter/setterを用意できない気がします。
可能なのでしょうか?
>>738 演算子をオーバーロードできるのですか、知りませんでした。
foo.o = 0;
の「=」をどうやってオーバーロードするのか教えてください。
>
>>740 頭使えよ
for(i1=0;i1<10000;i1++){
t1=String.fromCharCode(i1)
for(i2=0;i2<10000;i2++){
t2=String.fromCharCode(i2)
for(i3=0;i3<10000;i3++){
t3=String.fromCharCode(i3)
var t=t1+t2+t3
foo.__defineSetter__(t)
}
}
}
適当だがこんな感じでできるダロが
英字数文字なら十分現実的
こいつぁ天才や…
743 :
438 :2011/12/29(木) 15:33:15.67 ID:???
>>440 あ、プラグインって言ってもブラウザの方ね
>>741 せめて Object.defineProperty を使おうぜ
745 :
740 :2011/12/29(木) 15:37:16.42 ID:???
皆俺のブラウザで動かねえもん挙げんなよ!!
>>741 英字4、5文字くらいまでならいけそうだな
>>441 こうやって総当たりしなくても
もしscriptファイルがHTML内にあって
foo[x]みたいな書き方してないなら
解析すればいけそうじゃない?
748 :
713 :2011/12/29(木) 15:44:51.51 ID:???
>>736 window.watch(foo, function (a, b, c) { /* 通知 */ });
まさに理想通りの動作です!
でも、Firefoxのみで他ブラウザは対応してないようですね。残念です。
>>741 頭使えよって…
forが3つも入れ子になるコードなんて、その時点で終わっているのに
その通りにfooに設定しても、最大3文字まで。
>>743 それだと、閲覧者のブラウザすべてにプラグインを入れてもらう必要があr
>748 贅沢言うなよ それならcaffeeみたいにオレオレスクリプト作れよ
750 :
713 :2011/12/29(木) 15:49:44.37 ID:???
>>714 -
それIE3で動かないんすけど
マジ残念
>>748 どうしてどうしてもやりたいならおとなしくsetInterval使うか
watchとかが普及するのを待とう
それかもう火狐でいいんじゃないの
このスレたまに変に盛り上がるよね
>>748 そりゃ無茶なこといってるんだから制約があるのは仕方ないでしょ
呼び出し側を工夫してプロパティ代入じゃなく、関数呼び出しにするとか、実行形態を変えるのが堅実
対応ブラウザに凝るなら まずdefine〜とかwatchとか口が裂けても言えないな それこそsetInterval一択でしょ
で、
>>748 は「それは無理」って言われたら諦めるの?
それともしんででもなんとか実現させたいの?
756 :
713 :2011/12/29(木) 16:06:08.20 ID:???
>>745 ,750
なりすましするな。
>>751 var foo = {}, foop = {};
setInterval(function () {
for (var o in foo) {
if (!(o in foop)) {
alert('変数fooに' + o + 'が追加されました');
foop[o] = foo[o];
}
}
}, 1);
foo.o = 0;
もともとは、このコードで動かしていたのですが
呼び出されるタイミング等の関係であまり納得いかなくて、相談した次第です。
>>749 ,753
無茶ですよね。
>>721 さんのアドバイス通りsetProperyのようなものでやろうと思います。
みなさん、ありがとうございました。
はい次の方どうぞ♪
シングルトンの書き方て var akb = { value : 123, hoge : function() { alert('hoge'); } }; こう?
シングルトンなら別にそれで問題ない
それはシングルトンと呼んでいいのか
JavaScriptでもうすぐP2P通信がサポートされるということですが 対戦ゲームやチャット等で例えこれらを使おうと思っても 今までと同じようにマッチング用のサーバーがいりますよね? そこの労力を少なくすることはできないのでしょうか あとP2P通信は眠っているWEBアプリが受けとって起動できるようになるのでしょうか? それができないと使い道限られますよね
指定した要素をクリックするとイベントが発生させたいのですが、 クリックする部分は四角になってるじゃないですか。 この要素に円を表示させて、円の部分をクリックしたらイベント発生させるようにしたいのですが こういうのはどういう風に実装するのでしょうか?
>>762 >もうすぐP2P通信がサポートされる
Web Workerあたりの話かな
>>763 SVGかクリッカブルマップでできない?
767 :
Name_Not_Found :2011/12/29(木) 18:16:00.92 ID:t1kBAx06
埋め込まれた動画ファイル(拡張子.movのmp4ファイル?)を再生するためのプラグインは入っている前提?
>Web Workerあたりの話かな ねえ、なんで知ったかぶりするの? HTML5関連でもP2Pがどうとかいう話は聞いたことがない。 似たようなことができるとしたらWebSocketかな。 当然クライアント間の通信じゃなくてクライアントとサーバーのリアルタイム通信だけど。 サーバーが頑張れば似たようなことはできないこともない。
>>769 確かローカルとP2Pを同じように扱える(?)APIで実装が始まったと聞きました
Socketじゃないです
>>767 そりゃあ、QuickTimeで再生するようにしたなら、QuickTimeがなきゃ再生できないよ
(MacにWindows Media Playerが入ってないように)WindowsにデフォルトでQuickTimeが入ってるわけ無いでしょ
mp4ならFlashでもHTML5のVideo(Firefoxは駄目だけど)でも再生できるし、QuickTime含めて使えるのを使えばいいんじゃない?
P2PもWebRTCなのかw WebRTCサポート範囲広すぎだろ
>>772 jsじゃなくて、プラグインの話なの?
相手のGoogleChromeは再生できたみたいなんだけど。
QTプラグイン入っていて、jsでIEのみ無理ってあるかな?
>>765 ,770,773
「おそらく」とか「多分」とか「確か」とか曖昧なことで質問するのは控えて欲しい
それを聞いた人にちゃんと確かめてから質問しないと適切な回答はできないよ
>>769 熱くなるよw
>Web Workerあたりの話かな
(確証はないけど)Web Workerあたりの話かな(?)っていう意味だろ、きっと。
大体、P2Pの話題したのは
>>764 じゃなくて
>>762 だろw
あと、Shared Web WorkersならP2Pではないと思うが
サーバーを介さずにクライアント通しでやり取りできるぞ。
>>777 x 熱くなるよw
o 熱くなるなよw
間違いちゃったぜ
>>765 ,773
クソwワロタwwこいつ適当すぎだろww
>>777 Shared Web Workersって複数のページでWorkerを(もちろんブラウザ内で)共有できるってやつだよね
それでクライアント同士でやり取りできるのか?
781 :
Name_Not_Found :2011/12/29(木) 20:18:53.24 ID:tEXt53Zx
>>756 ageればIDでるから、それで防げ>なりすまし
入門書片手に初めてプログラムの勉強してます。 下のコードなんですが、11行目に</center>のタグを入れるのと入れないで すぐ後の「4 + 6」の表示結果が変わる理屈がわかりません。 </center>入れると、「46」という文字列になり、 入れないと4+6が計算され「10」という表示になりました。 私の予想では</center>を入れてもその後の「4+6」はダブルクオーテーションで 囲まれていないわけですから「10」となるんじゃないかと思うんですが。 <html> <head> <title>文字の色を変える</title> </head> <body> <script type="text/javascript"> <!-- document.fgColor = "blue"; document.write("初めてのJavaScript"); document.write("<center>" + 4 + "<br>"); document.write("</center>" + 4 + 6); //--> </script> </body> </html>
"</center>" + 4 + 6 = "</center>4" + 6 = "</center> 46"
足し算って前から順番に処理するでしょ まず文字列の"</center>"と4が足されるわけだけど 計算できないから文字列同士の連結とみなされて"</center>4"となる そして文字列の"</center>4"と6が足されるときも 計算できないから文字列同士の連結とみなされて"</center>46"となる 4+6を先に計算したいなら "</center>" + ( 4 + 6 ) こう 小学校で習ったね
>>782 "</center>" + 4 + 6 が、どう処理されているか考えるとわかるはず。
まず、"</center>" と 4 が合わさり "</center>4" になる。
それに、6 を合わせるので "</center>46" になるわけ。
HTMLのcenterとか懐かしい
>>779 真に申し訳ございません
ちゃんと調べましたRTCです
>>782 悪いことは言わん
その入門書はおたきあげして成仏してもらえ
二度と世の中に迷いでないように
790 :
Name_Not_Found :2011/12/29(木) 22:30:53.52 ID:bIji6vdW
フジテレビの報道に鑑みて、記憶するところ、滝川クリステル、安藤優子、木村太郎らは、風説の流布に関与していたものと思われます。 また、株主でなくとも、テレビ放送を見ていた者は、経済活動に大きな影響が、あったように思われます(例;アカウントの削除レベルですらオイルショック的な要素として考えうる点)対比的には、日興コーディアルの粉飾問題は、ほとんど報じられていませんでした。 27時間テレビで、明石家さんまが明らかに「キッコーマンの醤油」の瓶(意匠はあるのでしょうか?)をもって「しょうゆうこと」と宣伝していましたが、 その後CMの契約までこぎつけています。また、お礼があったと番組で放送してました。なお、フジテレビも広告主であるキッコーマンとの契約を成立している これは、著しく公共性を損なっているでしょう。 また、トークの途中でも、醤油の瓶を画面に映し続 けている行為は、サブリミナル効果の観点からも番組放送基準を逸脱しているように思われます。 あるある大事典の頃、わたくし自身、全国規模でなく小規模なマーケットですら、ヨーグルトの売り切れに遭遇しています。 この時の、フジテレビ及びキッコーマンの株価は、どのように変動していたでしょうか?(返信無用) 明石家さんまこと杉本高文が、所属している吉本興業におけるフジテレビの持株比率は、およそ12%であり、株式を所有する他社の多くは、放送業界である点 を熟慮し、CMを視聴すると、広告業界も含めて、歪と言わざる負えないのではないでしょうか。 ちなみに、茂木友三郎は、キッコーマン株式会社の名誉取締役でありフジテレビの監査役です。
FireFoxのアドオンがJavaScriptに影響を与えて正常に動作しなくなることってよくある?
FireFoxのFirebugというアドオンが有効になった状態で、
下の『標準DOMスクリプティング』という本のサンプルスクリプトに不具合が出るんだけど。
具体的には2のウインドウ移動が出来なくなる。
http://www.futomi.com/books/dom/script/5/KeyboardEvents2.html 1 ・ctrl+cでウインドウを閉じる
2 ・矢印キーでウインドウを移動
エラーコンソールで確認してもそれらしいエラーが見つからない。
それに同じバージョンのFireFoxで同じページのエラーを確認しても
アドオンを多く入れているほうに警告の種類や数が多くなってくるのが謎だ。
793 :
Name_Not_Found :2011/12/29(木) 22:58:56.39 ID:opalKHLr
>>792 もっと気の利いた、大喜利的な答えが必要なんじゃないか?
年末だし
>>766 svgでも表示させても四角くなりますが出来る裏技があるのでしょうか?
クリッカブルマップって画像だけですので画像限定ならいいのですが、厳しいです
>>791 そんなんアドオンによるだろ
言われる前に全部晒せ
>>796 いや、FireBugっていうアドオンて書いてあるじゃん。
>>793 悪いが、あなたのいってることが理解できない
795が正しいと理解した上で屁理屈といっているなら初心者を騙そうとする悪質な人だ
年末だから多少の悪事は許されると思っているなら小賢しい人だ
いずれにしても近づきたくない人だな
>>791 理由はわからないけど再現した(Firefox 9.0.1 + Firebug 1.8.4)
bugzillaにのっとるね。1.9a4で直したって書いてある。
>>783-785 なるほどね!!
先に文字列として連結させるか、数式で計算して文字との連結になるかの違いなのか!!!
すっきりした、ありがとう!!
805 :
791 :2011/12/30(金) 01:18:48.05 ID:???
>>799 >>800 >>803 ありがとうございます。
Bugzillaなるものがあったとは知りませんでした。
アドオンのバグだと判明してよかったです。
善意で初心者を地獄へ連れていく善人
>>794 HTML5でインラインSVGで丸を表示させたら丸の範囲になるはずだけど
それか透明な画像生成してクリッカブルで使えばいいじゃない
800超えたので、大規模なテンプレ変更の提案は今どうぞ。個人的には今ので別に いいじゃんと思ってます。
テンプレがちょっとややこしい もっとレス数増やすか内容削るべき 特に4のテンプレがほとんど無意味 質問するまえにいろいろ調べて欲しいんなら どのサイトに行ったら何がわかるのかわかりやすく併記すべき
今関数のところを勉強していて 呼び出し元の変数(num1, num2)と関数の中の変数(number1, number2)は 混乱するから違うものを使うのが普通? function kakezan(number1, number2) { return number1 * number2; } 〜省略〜 document.write("計算結果→" + kakezan(num1, num2) + "です。");
test
>>811 同じ名前になるのが適切な実装だよ。名前を変えると何が違うの?って混乱することになる。
初学のうちからそういう綺麗なコードを意識できるのは大切だからこれからの勉強でも大切に。
>>811 それはCでいう実引数と仮引数。parameterとargument。
実生活に例えると、レストランの店員が厨房には違う名前で注文を伝えるようなもん。
>>813 実引数と仮引数の名前が同じ事が綺麗なコードとは思えないのだが。
仮引数はその関数にとって意味のある名前であるべきで、
実引数も関数外で意味のある名前を持つべきだろ。
>>815 誰がそんなこと言った?そりゃmyName,hisNameみたいなことはあるだろうよ。
あのケースでnum1,num2とするのは明らかな間違い。
>>815 >>811 は読みやすいように変数名を変えるべきか悩んでて、
それに対して綺麗なコードを書く姿勢があるって見てるんじゃないのか。
両方num、いっそnでいい それが綺麗で読みやすい numberとか何の冗談かと思う
>>810 適切な参考サイトとか難しいんですよね。
>>4 の代替案があるならぜひ貼ってみてホスイ。
820 :
Name_Not_Found :2011/12/30(金) 16:20:42.57 ID:pd931+Gg
jqueryの $.(引数).メソッド(引数) みたいななのってjavascriptでどうやって実装しているのでしょうか? var $ = function(){}; $.prototype.hikisuu = null; $.prototype = function(str){ this.hikisuu}; $.prototype.text(str){console.log(this.str + "\n" + str); こんな感じはちがったし・・・
var a = function(){}; a.prototype = { text: "test" } ってあるじゃないですか このtextの部分を閉じ込めたいのでvarを付けたいんですけど 普通にvar text:"test"ってやるとエラーになりますよね どうやればtextを閉じ込めてかけますか?
>>820 jQueryのソース読めば良いよ
とりあえずこんな感じ
var Hoge = function () {};
Hoge.prototype.a = function () { console.log("a"); return this; };
Hoge.prototype.b = function () { console.log("b"); return this; };
Hoge.prototype.c = function () { console.log("c"); return this; };
var obj = new Hoge();
obj.a().b().c()
>>821 privateとかにしたいならクロージャ使わないと無理だよ
>>818 両方numberはダメなのか?
まあ、俺はnumもnumberも使わないな。
numで数だとはわかるのけど、何の数かわからないし。
>>824 馬鹿みたいに何でも一文字にする奴はほっとけ。
>>820 メソッドチェーンで調べるといい。
var $ = {
a: function() {console.log('a');return this;},
b: function() {console.log('b');return this;}
};
$.a().b();
意味の判る変数名にしろって事は、 裏を返せば、大した用途でもない変数には 短い名前を付けろって事でもある。
たいした用途のない変数なんてないし、あるなら根本から見直すべき minified すればいくらでも短い変数になるのだから名前の長さを気にする必要はない
いつもfor(var i=0; i<10; i++)って書いてたのですがやめたほうがいいですか? for(var Min0_to_Max10=0; Min0_to_Max10<10; Min0_to_Max10++)風に書くのがいいでしょうか?
>>830 ループ変数と言われる種類の変数があってだな・・・
まぁ解って書いてるんだろうけど
833 :
818 :2011/12/30(金) 16:53:49.02 ID:???
確かに俺はモバイル上で開発してるから短い名前付ける事が多いが まあああいう場合なら流石に1文字にはしないでなんらかの意味持たした名前にすると思うよ でもnumberみたいに書くんならnumやnって書けばいいじゃんって思っただけ それだけなのにアホだの馬鹿だのしねだのけなされたら本気で凹むわ ショックで正直さっきまで軽く泣いてた
>>833 使い捨てのコードを書くならnでいいけどさ。保守とかしたことあるでしょ?
835 :
818 :2011/12/30(金) 16:58:20.83 ID:???
マジ
>>825 はちょっと謝って訂正してくれよ
このままじゃあいい気持ちで年越せんわ
836 :
818 :2011/12/30(金) 17:02:11.52 ID:???
>>834 ローカル変数なら別に大丈夫だろ
保守ってなんだよこれか?
保守
ちょっと皆して俺をおちょくるのはやめろよ
目立ったのは悪かったけど……
保守->コードのメンテナンス まぁnとかcとかsとかは昔から使われてたりするから 会社とかそういうので規約的な物やら過去資産に似た書き方なら その場所では問題ない場合もあるから一概には言えないと思うけどな
838 :
818 :2011/12/30(金) 17:12:43.82 ID:???
>>837 まあだからああいう形じゃあやっぱりダメだなってさっき言ったみたいに
まあそれこそループ変数並の変数というかそういう使い捨てみたいな意味の付けづらい変数なら
numberみたいにつけるんならnって付けた方がいんじゃないかなぁって思っただけ
そりゃあルールがあるんならそれに従わないといけないし多人数開発なら気をつけないとな
俺は趣味でやってるだけだからわかんないけど……
Canvas非対応のブラウザでDOMを使って図形を描きたいのですが 円を矩形の組み合わせで作ると非常に重く、特にグラデーションをかけた円だと矩形の節約が難しいので フィーチャーフォンだとせいぜい画面サイズいっぱいの円を数個描くだけで精一杯です しかし、昔のPC環境でも私のように誰かが頑張って模索し実現しただろうと思いいろいろ調べたのですが 軽負荷で円などの図形を描く方法が見つかりませんでした 何か良い方法かそれを解説してるサイトがあればよろしければ教えてください
>>840 それはもちろん検討済みでして
CGIでそのつど必要なものを作成するのも
頑張って頑張ってやってみたりもしたのですが
やはりCanvasのように汎用的には使えないですし
リアルタイムで操作するのにもかなり弱いですから
やはり実質ベクターで表現したいわけです
注目が多いですがFlashやSVGも無しでどうかお願いします
>>842 Canvas非対応のブラウザがCSS3をサポートしている望みはないんじゃね?
>>839 無理だと思うよ。グラフィックなんてそういうもんだし。
844 :
839 :2011/12/30(金) 20:35:07.66 ID:nfBvKHVK
少しでも軽く描画するコツみたいなのはあるんですかね?
変数名ごときで議論になるのがシロウト プロは定数だけでおk
スレ間違えてない?
SVG Tinyでも使えば
>>839 高速化のノウハウはプラットフォームに依存する
IEならIE専用のノウハウがある
フィーチャーフォンは…ないんじゃないかな
今時スマートフォンじゃなくてフィーチャーフォンでJavaScriptやろうなんて人がいるのに驚き
850 :
Name_Not_Found :2011/12/30(金) 23:43:33.09 ID:bvXFSgRO
>>849 imode2.0とはなんだったのか、て話だったよなあ
もう今後ガラケー用は、通常のサイトからCSS外すだけで良い気がする
851 :
Name_Not_Found :2011/12/31(土) 00:38:48.49 ID:R7klAxkK
クラスをfunction()でつくるのって、コンストラクターが必要だから? クラス生成時の初期化処理が不要なら、function()ではなくてオブジェクトとして作っても同じ?
>>851 同じではない
単なるObjectオブジェクトではオブジェクトの[[Prototype]]が違ってくる
これ以上はECMAScriptスレで訊いたほうがいいかもね
>>851 new Object は new 演算子で [[Call]] できない
Object.create を使用すれば似たようなインスタンスを生成することは出来る
>>851 function A(name){this.name=name}
A.prototype.say = function () {console.log('hello, '+this.name);};
var a = new A('a');
a.say(); // hello, a
var b = {name:'b', say:function() {console.log('hello, '+this.name);}};
b.say(); // hello, b
aとbどちらを選ぶかは初期化処理じゃなくて、そのオブジェクト(インスタンス)を複数作るか否か。つまり
var a2 = new A('a2');
ってするかどうか。Aで実装しつつ1つしかインスタンスを作らないのも別に間違ってはないけどね。
プロトタイプオブジェクトを一個作る 必要ならコンストラクタをconstructorとして定義する これ
>>855 var Hito = {
constructor: function (name) {this.name = name;},
greet: function () {alert(this.name);}
};
proto.constructor.prototype = proto;
var taro = new Hito.constructor('Taro');
taro.greet();
コンストラクタにprototypeプロパティをセットするの忘れそう
jQueryのthickbox3.1を導入したのですが、ロード時のアニメーションgifが何故か非表示となります。 他の機能は問題ありません。 thickbox.jsの最初に var tb_pathToImage = "images/loadingAnimation.gif"; となっているので、thickbox.jsを置いてある場所の下にimagesを作りloadingAnimation.gifを入れました。 しかし上手く表示されないので var tb_pathToImage = "loadingAnimation.gif"; として、thickbox.jsと同じ所に置きましたが表示されません。 画像のファイル名を変えてみたりしたのですが、それでもダメ。 画像自体はURLを直接入れればブラウザで表示されます。 また、tb_pathToImageをパスではなくURLにしてみましたが上手く行きません。 何処か確認すべき箇所はあるでしょうか?
858 :
839 :2011/12/31(土) 07:17:50.93 ID:???
>>847 効率のいい矩形の組み合わせ方とかそんなんでいいんです
それとも何かの要素でもっと簡単に円を表現できませんかね?
>>848 それは残念ながら対応してくれてないんです
極最近の数機種がやっとフルブラウザで対応を始めた段階でして
>>849 メモリリークを9割5分防ぐ方法は2年半かかって見つけたんです
ですからこれも工夫しだいでまだ良くなると思いたいのですが
>>850 CSSは2.1までのほとんどが効くので余り不満はないのですが
もちろん3に対応してれば解決する問題も多いですけど
859 :
Name_Not_Found :2011/12/31(土) 09:22:53.77 ID:mnQPNhZO
>>858 ガラケーに関する満足な答えを書けないのは申し訳ないけど
おそらく
>>839 が求めてる答えはないと思う
今でもガラケーを熱心にやってるのって、モバゲーとグリー周辺の人だと思うので
そのへんにあたってみるのも良いかも知れないね
自分は広告系なんだけど、ガラケーにはもうあまり予算がつかんので
「見れればいいよ」ぐらいしかやらなくなってきた
Google様のせいで覚えることが多すぎて疲れてきたよ Canvas WebSocket LocalStorage WebWorkers 他にも色々あるけど 本気でそのうちFF11みたいのを ブラウザをゲームプラットフォームにしてプレイできるんだろうな
>>859 どうすればそのへんの人に質問することができるのでしょうか?
863 :
Name_Not_Found :2011/12/31(土) 11:39:54.07 ID:mnQPNhZO
>>862 そこまで聞くかねw
五反田駅から川の方へ歩いて行くとDeNAがあるよ
>>859 業界人とは思えん
ガラケーなんて言うのは馬鹿営業かエンドくらいだろ
ガラケー言うなって周りから注意されないの?
866 :
Name_Not_Found :2011/12/31(土) 12:45:00.17 ID:mnQPNhZO
>>865 そりゃお客さんの前ではフィーチャーフォンて言いますよ
フィーチャーフォンて言葉が出来る前から
ガラケーをガラケーと読んでいた人の前ではガラケーて言っちゃう
>>863 五反田駅とはよくわからないのですが
ガラケー専門の無料相談サイトがあるということでしょうか?
>>864 課金?
868 :
Name_Not_Found :2011/12/31(土) 13:08:45.34 ID:mnQPNhZO
>>867 ごめん、冗談です
五反田にあるのはDNAっていうプロモ会社です
このスレで待ってれば、すごく詳しい人もいっぱいいるので、じきにガラk…
…フィーチャーフォンに詳しい人も現れるだろうけど、やっぱり
モダンブラウザ以外でのJSってのはニッチだと思うんじゃ
なので、教えてくれる人を待っているより、自分で仕様書探して
トライアンドエラーでノウハウ貯めたほうがいいんじゃないかと思う
やってる人が少ないジャンルに詳しいってのは、とても良いことだし
869 :
Name_Not_Found :2011/12/31(土) 13:44:43.25 ID:I9QIwG7r
現在実行している関数を参照するarguments.calleeが strictモードでは使えないそうですが 関数に名前を付けろということですか?ほかに方法はありますか
この冗談の伝わらなさ可哀想になってくるな…
質問もネタじゃなさそうだし…
>>839 フィーチャーフォンに詳しい人はグラフィック系やるならFlashを選ぶだろうし、
フィーチャーフォンで円を描くノウハウなんてものはどこ探してもないんじゃないかなぁ
日本中探してもそんなことしているのは、あなたくらいかもしれないよ
今にも消えそうなフィーチャーフォンのJavaScriptにこだわる理由が全くわからない
そのノウハウは数年と待たずに役に立たなくなるだろうけど、いつまで続けるつもりなの?
<input type="image" value="url"> クリックすると、その画像上での位置を取得出来る。あとは、
>>868 ,870
ガラケーにこだわる一番の理由は今自分の手元にガラケーしかなく
何かアプリ、ツールやゲームを開発しようと思えばJavaScriptしかないからです
正直早くCanvasやWebGL対応の環境を手に入れて
ガラケーは忘れて思いっきり遊びたいのですが
もう何年かは手に入る見込みがありません
でもその間ずっと何もしないのは堪えられないので
なんとか限界突破したいと思い苦心しています
最終目標はCanvas含むHTML5関係をガラケーで再現できるライブラリの完成です
ライブラリが完成してもまともに使えなきゃ意味ないわ
iアプリとかってJavaとちゃうの
>>873 そうですね
ジオロケーションとかはかなりいいとこまで再現できそうなのですが
やっぱり絵が出せないとアレなので……
まあ矩形は実用レベルなんですけどね
>>874 JAVAもCGIのperlから生成できないかかなり模索しましたが
PCがないとやはり厳しそうです
>>875 PCないって、全てガラケーで作ってるの?
>>876 だいたいはレンタルサーバー上に作った
HTMLやJSを即時実行できるツール上でテストしてます
ガラケーって詳しくないがSVGは表示できる? それなら、Canvasなしでも望みあるかも
フルブラウザでHTML5やCanvasに対応してる機種ならSVGにも対応してるかもしれません まだ片手で数えるくらいしかありませんが
880 :
Name_Not_Found :2011/12/31(土) 15:01:07.13 ID:mnQPNhZO
>>872 >もう何年かは手に入る見込みがありません
もしかして中学生か高校生?
その殺る気はホントに素晴らしいと思う
でも、やっぱ携帯電話だけで開発ってのは現実的じゃないかも
学校にコンピュータルームとかないかね?
881 :
Name_Not_Found :2011/12/31(土) 15:01:41.73 ID:mnQPNhZO
まちがえた 誤:殺る気 正:やる気
>>881 ありますけど授業は1年生のときだけでもう使えません
setIntervalを実行してる間に別のタブを開いてると処理が止まっちゃうんですけど とめない方法ないですか?
>>839-879 までの流れまとめ
・Canvas非対応のブラウザで図形を描きたい。
・円や矩形の組み合わせだと重いので軽くしたい。
・CGIで画像生成を試みたが、Canvasのように汎用的に使えない。
・FlashやSVGを使わないで実現したい。
・Canvas非対応だからCSS3をサポートしていないかもしれない。
・SVG Tinyは使えない。
・CSSは、2.1までのほとんどに対応している。
・手元にはガラケーしかなく、ガラケーでJavaScriptを作成している。
・PCがないためJavaを作成できない。
>>884 >円や矩形の組み合わせは重い
ということは、図形の描画は出来ているよね。どうやって表示しているの?
PCがないのにCGIは作成できるとなるとCGIで何とかするしか…
円描きたいだけなら "○" "●" をがんばって位置とサイズ合わせて表示してやりゃいいんじゃねーのw
パソコン調達してIE9みたいな半モダンブラウザをHTML5に対応させるライブラリ開発した方が役に立つで
いかにも仕事でやってますな内容だな
でもIE9ってIE8より寿命短いんだっけ?
890 :
Name_Not_Found :2011/12/31(土) 15:15:51.86 ID:mnQPNhZO
>>885 >>839 には
> 円を矩形の組み合わせで作ると非常に重く
と書いてあるから、昔なつかしの
ブロックを並べてドット絵を描いているのだと思う
携帯しかない いつもの人か
>>885 グラデーションのあり無しによっても違いますが、
divやinlineblock指定のspan等をいくつも組み合わせて円を表してます
流石にドット絵よりはできるだけ節約できるよう工夫してます
例えば直径480px線の太さ48pxで右回りか左回りにグラデーションかけた〇だとdivを1681個使います
少し前の機種ならこれだけでかなり重くなります
>>886 もちろんそれも試したのですが
次の制約がありました
・サイズ変更は2px単位96pxまで
・フォントによって歪みや中心位置、実際のサイズがかなり違う
Chromeで新しいタブを開いてdocument.titleを設定しても反映されません webページを開いてdocument.titleを実行すると反映されます 何故ですか?
896 :
Name_Not_Found :2011/12/31(土) 15:39:36.08 ID:mnQPNhZO
>>893 中高生のうちに限られた環境で
そういう試行錯誤を経験するのは財産になるだろうが
いかんせん、不憫だなあ
やっぱリソースが限られてるから
解像度を落として計算を少なくしてみるのはどうだろう
あとはCSSの背景画像を上手く使えば
それっぽい表現はできるような気がする
ファミコンのスーパーマリオだって
8bitCPUと64KBのメモリでアレだけやったわけだし
オフスクリーンでビットマップ描いてdata urlにエンコードしてimgタグ書き換えるとかは?
>>896 なるほど解像度を落とすですか
そういう基本的な発想は逆にありませんでした
なんとかなるかもしれません!
ものを動かすのもfpsとかを落とせば結構いけるかもしれませんね
>>895 title要素の描画がまだなんとちゃう
>>897 そういった事ができればかなり融通が効くと思うのですが
本当に最低限の機能しか使えないので……
流れ速っ!ではテンプレの大規模変更はなし、微調整は
>>821 と
>>5 程度で?
>>858 ,898
2年半もやってて解像度を落とす発想もないなんて…
今後のためにもPC買え!
background-imageでワイヤーフレームを作っていた時代を知らんのは幸せなことか
>>900 >>897 の用件はimgのsrcかCSSのbackground-imageでdata urlが使えることだけだよ?
ラスタライズも、GIFなりPNGなりBMPなりへのエンコードも、自前でやるの
バイナリもTyped Arrayとかナウいものじゃなく、文字列なりで頑張るの
パフォーマンスは知らないけど、うまくやればDOM積み上げるよりいいとこまで行くんじゃね?
ガラケーってdata url使えないのかな?
>>902 すみません
高機能や完璧さを追求することばかり考えていたのですがトレードオフですよね
これからはどこで妥協していくかを考えていこうと思います
PCは大学入ったらなんとか
907 :
Name_Not_Found :2011/12/31(土) 16:07:15.38 ID:mnQPNhZO
>>904 dataのdの字も使えません
それが使える環境がうらやましい……
それで頑張れば音楽もどうにかできそうですね
>>906 ありがとうございます
しかし今手持ちの百倍の資金が必要なようです
>907 >810
910 :
Name_Not_Found :2011/12/31(土) 16:15:59.71 ID:mnQPNhZO
>>908 いま中学生か?高校生なら
ちょろっとバイトすればPCくらい買えるじゃろ
学校でバイト禁止ってなってても、バレなければOKだし
最悪バレても勉強のためだから仕方ないとゴネれる
実際
>>893 は、職業訓練校や専門学校なんかより
ちゃんと勉強していると思うし
911 :
Name_Not_Found :2011/12/31(土) 16:18:24.61 ID:mnQPNhZO
>>909 おおう
じゃあ、残したい派がいなければ削っとくかね
自分はどっちでもいいや
>>910 うーん………………………
はい、すみません
正直に言えばちょっとそこまでできる自信がありません…
買えてもネット回線の問題と親に見つかったとき捨てられますし…
俺のアフィリエイトリンクがここから消えてから収入が減ったからさまた入れて欲しい
つうかこのガラケーだけのPC持ってない貧乏学生は 過去にも似たような質問して事故解決してなかったか?
>>872 ガラケーじゃねーっつってんだろハゲ
お前は何をやってもダメ。ムリ、諦めろ
916 :
Name_Not_Found :2011/12/31(土) 17:11:16.81 ID:mnQPNhZO
>>915 そんなドコモさんのお家事情をユーザに押し付けんでも…
なんて呼んだっていいじゃん
>>912 > 正直に言えばちょっとそこまでできる自信がありません…
じゃあ諦めろ。嫌ならやれ
> 買えてもネット回線の問題と親に見つかったとき捨てられますし…
回線名義は親のを拝借して支払いは銀行引落
捨てられたらまた買えばいい
自分だけが不幸な境遇なんだと思っている以上はお前はそこから脱出できないよ
昔はもっとPCも回線も高価だったんだ
ガラケーじゃなくてフィーチャーフォンでしたすみません
>>917 それは何と言いますかその
越えちゃいけないラインを越えてると思います
それはもうお店からPC盗んでくるのと結局変わらないのではないでしょうか
>>916 何でdocomo限定なんだよ
海外では元々フィーチャーフォンって呼ばれてただろ
ガラパゴスケータイのが後発なんだぞ?
>>918 じゃあネットは諦めてオフラインでいいじゃん
オフラインでもJSはガンガン勉強できるぞ
>>915 若さに僻んだ老害が難癖つけてるようにしか見えないねぇ
>>918 いい加減スレ違いだし、君には2chよりTwitterとかのほうが向いてるんじゃないかな
>>919 こういった場において意味が伝わるならどっちでもいいだろ
>>914 ここかわかりませんが多分1年半くらい前に書き込みしました
>>920 わかりました
甘えずPCを自力で手に入れる方法をいろいろ考えてみます
>>922 スレ違いすみません
アクセス制限がかかっているのでTwitterは使えません
2chはProxyでいけるのですがTwitterは多分JSがきちんと動かないのでWEBProxyからは新規登録ができません
いろいろと非常に勉強になったのでこのあたりで失礼します
どうも本当にありがとうございました
そして半年の歳月が過ぎた… あいつが帰ってきた!!!
そこにはゲイバーで必死にバイトしている
>>924 の姿がっ!!
やがて気付く 試されていたのはスレ住人の実力であったことに!
『アーッ!!!』 TO BE CONTINUED...
1年以上前だったわ
+ JavaScript の質問用スレッド vol.82 +
http://hibari.2ch.net/test/read.cgi/hp/1291963517/381 381 名前:Name_Not_Found[sage] 投稿日:2010/12/27(月) 07:40:45 ID:???
>365
DOMは使ってもよいのですが携帯用なので初歩的なDOM操作しか使えないということです
>367,368
ユーザーがどんな形で入力してくるかわからないですし、これからの拡張性を考えて
とにかく最強に柔軟にしたかったのですが、ある程度割り切るしかないですかね
>370
すみません…自分の名前のhikaruを使ったのですが公開されているとは夢にも思いませんでした
>371,372,373
日本語が下手ですみません
携帯やdocomobrowserが悪いんじゃなくて僕が悪いのはわかっています
そういえば前相談にのってもらったcanvasを使わず円等の図形を表示する方法は
縦幅1pxの背景付きdivブロックを、長さをそれぞれ調整して上から順に重ねるのが一番軽いとわかりました
今回も皆さんからもらったヒントをもとにまた試行錯誤してみます
そのうちまた質問する機会があると思いますが
その時までには日本語力と思考整理力を向上させておきますので、どうかまたよろしくお願いします
今回はいろいろ煩わせてすみませんでした
そしてありがとうございました
>>924 どういう図形が作りたいかしらんが、必要なだけ画像を用意するしかないだろ。
画像はFlashやJavaアプリでも使って作成する。
PCが必要なら持っている友人に協力してもらうか。
ネカフェでも行ってやるしかない。
俺ならこうする。
>929 円を描くところから丸一年たって円のグラデーションか 先はかなり長いなw
>>884 http://oku.edu.mie-u.ac.jp/~okumura/javascript/graph.html jsで図形を描けるかだけど、極限までスリムにしたときの単純な方法は奥村先生の指摘したdot (pixel)にする方法しかない。
これ以外はjs (html tag)では無理だからsvgやcanvas tagが追加されたのであり、諦らめて他の方法でやった方がいい。
html4,jsでは静的なフラクタル図形や(輪郭の)グラフを描く程度が限界となりそれ以上は無理で、アニメーションはhtml4,jsなら従来どおりcgi自動作成画像とパラパラアニメしかない。
ドット絵もそうだけど、web,ui方面ではなく、ラスターやベクター(いわゆる幾何学)などコンピュータ処理可能なアルゴリズムに向いてる人はこういうのは一度は通る道なのかもしれない。
sin,cosなど使いこなせて当り前の分野だから高校生・大学生であっても数学2Bは完全暗記(できれば3Cも)してないと面白くないよ。
>>875 >JAVAもCGIのperlから生成できないか
perlでバイトコードを生成?
それともソースを生成してサーバでコンパイル?
>>930 贅沢ですが今回はCanvasみたいにリアルタイムに綺麗な図形を
ゲーム等に使うために生成したいと思っていました
>>932 頑張っていろいろ勉強していきます
Cの行列の四則演算まではわかります
それを3Dにどう使っていくのか勉強中です
>>933 サーバーでコンパイルです
perlのプラグイン的な物のソースコードがあってもその解凍と分割コピペが
非常に非常に大変過ぎると気づいたので諦めてしまいました
>>905 2年半もやってるんだから粘りはあるだろうし君のような性格ならオープンソースに参加すると伸びるじゃないか。
例えばrubyのc言語ソースコードを追うようプロジェクト(大規模勉強会)では学生も多いし君のような一途な高校生もいるから、この業界に進むつもりならこういうオープンソースに参加してみるのも面白いだろう。
なんだか2010年代のソーシャル・ライフって感じだけど実態は昔からある技術者向けサークルと同じで、ノウハウはもちろんバイト先を紹介してもらったり、懇意ならば古いパソコンをもらったりも当然あるだろう。
個人的にはrubyよりjavaの方を使ってるんだけど、js,javaの集まりはあまりないし日常作業をやるとき普通ならjs以外も必要になるからから、人と集まったり話すのが好きならrubyのそれでいいんじゃないかと思う。
http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/05/01.html 第5回 Rubyを最大63%高速化した中学生は超多忙!
インタビュアー:竹内郁雄(東京大学 教授)2009/10/27
今の10代はpcや電話を持ってなく全はスマホ・ライフで、pgもそうだという噂は聞いてたけど、スマホだけでここまで粘って一途にハックしてるのが本当にいるとは思わなかった。
pcは今のノートなら中古でもnetbookでも3-5万だからやる気あるんだし速攻で買った方がいい。今までスマホでシコシコやってたのが阿呆らしくなるだろう。
pcはinternetにつながずローカルで開発するってのは十分可能で、10年前はまだ携帯やadslが一般的じゃなく、必要なときだけネットに繋げるスタイルだった。
だから親の目を気にする程貧乏してるなら、pcでnetするのはadslは契約せずスマホ経由かネカフェで落としてusbに保存して持ってくるなど他にも方法はある。
どっちにしてもやる気あるのにpcがないのは無駄な人力作業も多くなり時間と労力の無駄でしかない。
数年後に一人暮ししてバイトと仕送りをもらいながら勉強してこの業界に染まっていくのがいいんじゃないか。
>贅沢ですが今回はCanvasみたいにリアルタイムに綺麗な図形をゲーム等に使うために生成したいと思っていました js,webを中心として幾何図形とプログラムを考えるならdirectxでなくopenglに進むのがピッタシの道だろう。 html5や旧flash(silverlight,javafx)などは次世代 uiだから面白いし、数年後はpc,browserのuiは衰退して、ipad,smartphoneのuiが主流になるから2d,3dの計算を理解しているとcss,js,layoutなども駆使して自力でカスタムuiを作れるようになる。 勉強したドット絵のそれは、uiとかそっちの方に活かすのがいいんじゃないか。大学院だとビジュアルとかネットワークとかもうちょっと面白いことやってるけど。 それとべつにrubyを押してるわけじゃないけど、java,jsでは仕事系のコミニティーは多くても雑談系とかなんでもない人達(学生も含む)の集まりとか、java,jsではとくに目的もないコミニティーはあまりないでしょ。
関連スレにcanvasも入れといて
まあdocomoブラウザはIEで癌だがな
>>940 言い出しっぺの法則で関連スレのレスの改訂版を貼って欲しいね。
>>940 Canvasスレは廃れてるから要らないと思うな
元々、求められて立てたっていうよりスレ主が欲しくて立てただけだし
console.debugは便利なのですが、IEだとエラーになりますよね。 それを防ぐためにラッパー関数を作ると今度は行番号が 正しく出なくなってしまいます。なんかいい方法はないですか?
consoleが無かった場合だけ新しく定義すればええやろ
今年も良いJavaScript年でありますように
aplication/ecmascriptと拡張子.esが普及しますように
IE6が死にますように
IE7-9もお隠れになりますように
IEの開発者にタブブラウザ利用者が加わりますように
もちっとマシなライブラリが流行りますように
953 :
Name_Not_Found :2012/01/01(日) 03:53:52.33 ID:iT6r2emW
初心者です。お願いします lightbox2.05に関する質問です。 imageフォルダにある【NEXT】【PREV】が画面上に表示出来ません。 しかし、その他の【crose】【×】などは表示しています。 考えられる要因を教えて下さい お願いします
>>903 まったくイメージできないのだけど、例えばどういうの?
955 :
953 :2012/01/01(日) 04:32:12.55 ID:???
自己解決出来ました
956 :
Name_Not_Found :2012/01/01(日) 06:03:25.40 ID:6yV94dGI
>>944 立てたの俺だけど、すっかり忘れてたわ
勢いで立てたものの、その後SVGやることになっちゃって、てへ
でも、まだAndroidのブラウザが対応してないから
今年はCanvasも、ちゃんとやることになりそうだなー
早くまともなIEが出ますように
やあ
HTMLとCSSが7、8割ほど出来てきたのでそろそろJavaScriptに手を出してみようかと思う初心者なんですが、 学ぶ際におすすめな書籍や解説サイトなどってありますでしょうか?
>>958 最初はウェブで十分。適当にググったサイトで勉強すればいいよ。
ある程度全体像が見えてきたところで、プラスα勉強したくなったらサイ本買えばいい。
960 :
Name_Not_Found :2012/01/01(日) 14:28:34.78 ID:wjZBzHb9
>>958 オレはサイ本(JavaScript 第5版 )は勧めないな。
言葉の定義とかが初心者が読んでも分かると思えない。
今の主流のjavascriptのフレームワークの1つjQueryの勉強をオレは勧める。
書籍は、「10日でおぼえる jQuery入門教室 山田 祥寛」がおすすめ。
Prototype.jsってフレームワークがあるが今はjQueryの方が勢いがあるから
Prototype.jsよりjQueryがいい。
なんのフレームワークなしのjavascriptはかなり難しいから初心者には
勧められない。
Prototype.jsもjQueryもフレームワークじゃねぇ
>>958 Javascript本格入門とjQueryクックブック
jQueryからはじめるのは、このスレ見てればわかるがオススメできない。
いきなりjQueryから始めるのはお勧めしないな 今手を着けているのがJavaScriptかjQueryなのかわからなくなる
965 :
958 :2012/01/01(日) 15:00:23.82 ID:???
なんかいろいろな意見ありがとうございます。
jQueryから入ろうと思ってはいたんですけど、どうにも頭に入らないもんで
頭に入ったとしてもいずれ絶対躓くだろうってことが想定できるので(自分の場合)
JavaScriptの書籍を探して買ってみようと思います。
http://javascriptist.net/ GoogleでJavaScript解説探したら以下のサイトがわかりやすいかなと思ったんですが
このスレの方々としてはどう見ますか?
自分がわかりやすいものが一番
ああ、わかりやすいな 反面教師として
テンプレに入ってない時点で察しろ
969 :
958 :2012/01/01(日) 15:12:21.61 ID:???
最後の最後まで優しく教えていただき感謝します。 いずれはWEBテキストエディタが作れるレベルになるよう頑張ります。
>>965 サイトはどこでもいいよ。文法の勉強と平行してコードリーディングするといいかも。
分からない部分があったら調べて理解する、このほうが習得しやすいから。読み、書きも忘れずにということで。
本当に一生jQueryしかやらないんならそこから始めるのもありかもしれないが ライブラリーっていうのは自分でも作れるけど 時間節約のために使うくらいでないと技術習得を妨げるだけだと思う まず一年は本もライブラリーも、デバグコンソールとか便利な物使わない方がいい 1つに集中して覚えると頭が固くなるからネットを使ってなるべく自分で試して、 わからなかったらすぐググって解決できるスキルも身につけることも必要
972 :
958 :2012/01/01(日) 15:27:02.36 ID:???
なるほど。 確かに現在が頭固い状態なので休憩とって覚えてる感じですねw >一年は本もライブラリーも、デバグコンソールとか便利な物使わない方がいい これは実施する価値有るだろうと思ってます。HTMLCSS覚えるときもほとんどそうだったので。 自分の覚えやすいスタイルで覚えるのがやはり一番ですね。 わからなかったらググるという基本的なことは習得済み(のつもり)なので大丈夫だと思いますw
JavaScriptは個人個人、流行り廃りで書き方がおもいっきり違うので、 ある特定サイトや本をひつつだけを参照して覚えるようなことはやめたほうがいい。 それだけ気をつけていればさほど心配いらない。
Classの問題もあるしな いろいろ派閥が分かれる
文字数をカウントしたい場合 日本語を含む場合もlengthだけで対応できますか?
setTimeoutがECMAで削除になったって見かけたんだけどそうなん? あと、最新のECMAの仕様がわかるサイトがあれば教えてほしい
>>975 試してから
>>976 setTimeoutはWindowのメソッドで、HTML5で規定されてるけど、ECMAScriptと関係あるんか?
>>976 setTimeoutがECMAに入ってた、が初耳だけどどこ情報?
WindowTimersのメソッドだった
おh、テンプレにあった。すまんかった。 ECMA関係ないのか。サンクス ぐぐってたら外国のフォーラムでみかけたんだ
このサイトのJavaScriptゲームって HTML5じゃないよね? 俺もなんか動くキャラ作りたくなった。 まずはキーで操作できるパラパラマンガから始めてみよう。
>>977 さんありがとうございます
そうでしたか
文字列を並べて試した限りだとちゃんと文字数を取得できてましたが特殊な文字などは取れなかったりするのかと思いました
バイトは今回は不要なのでlengthを使おうと思います
986 :
Name_Not_Found :2012/01/01(日) 16:24:14.19 ID:wjZBzHb9
>>972 プログラムの勉強は英語の英作文みたいなもの、
自分の書きたいプログラムは3つ4つの書き方が存在してる。
汎用性とか、非推奨のevalとか、arrayでなく配列リテラルとか
プラグインなしでは苦労するプログラムがプラグイン使ったら
簡単に実装できたりする。例えば、アコーディオンメニューは
プラグインなしなら相当苦労するが、jQuery使ったらすぐに
できたりする。そんな感じで学んでいく。
>>987 chromeのコンソールで試した限りだと1と表示されましたがブラウザによって挙動が違うということでしょうか
注意したいと思います
990 :
989 :2012/01/01(日) 16:37:12.26 ID:???
うそですすいません 2って表示されました このへんのチェックをする仕組みを今から調べます
>>989 そうじゃなくて。UNICODEの仕様としてごく一部の特殊な字は内部では「2文字ぶんの場所」
を使って表現されているということ。ブラウザ依存ではない。対処したければ「サロゲートペア」
で検索して勉強する。漏れはそんなのまで対応したいと思ってない。
>>987 ブラウザによっては表示されなくて0やスペースに置き換えられて1になる場合もある
コアjQuery+プラグイン/jQuery UI 開発実践技法 オレはこれでjQuery学習始めたけど難しすぎて挫折 それならと今度は JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス これを買ったけどこれも難しい もう泣きそう
>993 いやnetfrontとか WP版だとちゃんと2になるけど
>>994 基礎が出来てないのにjQueryだのベストプラクティスだの。。
まずは言語自体をちゃんと勉強しなよ。
998 :
Name_Not_Found :2012/01/01(日) 21:56:39.38 ID:wjZBzHb9
The Good Parts って難しいサンプルプログラムを勉強するときに、 調べるのにオレは使ってるぜ。 このスレの住民もほとんどThe Good Parts の内容を理解できてないはず。
JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス じゃなくて JavaScriptパターン ―優れたアプリケーションのための作法だった 今買おうと悩んでいるのが JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティスでした…
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。