+ JavaScript の質問用スレッド vol.70 +
【質問を書く上で】 1)ユーザ(閲覧者)に迷惑がかかる性悪スクリプトは回答されない。 例: 別窓開きまくり、閉じる/戻るのを妨害、全画面占有、etcは最悪。 答えさせようと「分からねえんだろ」と煽っても無駄(過去スレが証明)。 2)言葉でぐだぐだ書かずにソースを貼る、ただし要点を整理して。 そのまま貼って動かせると試してもらいやすい(ただし回答者に連結さすな!) 長い(1レスに入らない)場合はアップロードしてURIを貼る。 3)初心者という言葉は危険なので使わない方がよい。 初心者を言い訳に自力で調べない/考えない奴が最悪に嫌われる。 4)自分で調べたこと/試したこときちんと書く(調べもしない奴は最低)。 ただ「動きません」「エラーです」は何も情報がないため嫌われる。 エラーは「どの行で何のエラー」を書く(ブラウザをそのように設定すれ)。 ブラウザの設定すらできんヤシはFFxのJavaScriptコンソールを使え!!! OS、ブラウザ、バージョン、うまく行かない条件を明記しエラー再現可能に。 5)特に古いバージョン限定の時は必ず明記! 回答もチグハグになり回答者に2度 手間を食わせる可能性大(現行Ver.:IE5.5-6、N6-7、Opera7-8) 6)どういう時にどういう動作をさせたいのかを脳内にとどめずきちんと書く。 例:「自動ポップアップしたい」←どういう場合(マウスオーバー、クリック、 ボタン押し、select選択)に何(別窓、レイヤー、その他)が出るのか書け! 7)質問はまっとうな(他人に理解できる)日本語で。 前項の例に限らず、他人に理解できない質問文は煽られるだけで時間の無駄
【FAQその1】 Q1. 開いた別窓/フレームの内容にアクセスできないのですが… A1. ページ内容が別サーバの場合セキュリティ制約により絶対無理です。 Q2. JavaScriptでローカルファイルを読み/書きたいのですが… A2. Webではセキュリティ制約により絶対無理です。できたら恐ろしいことに… Q3. 同じタグの中でonclick="foo()"とonclick="bar()"を同時に使いたいのですが… A3. セミコロンで複数の文を区切れます。onclick="foo();bar();"としましょう。 Q4. document.write(...)でページ内容を追加したいのですが… A4. 一度ページ表示完了後にwrite()すると内容はクリアされちゃいます。 部分的に内容変更するには(1)他フレーム/iframe/別窓への表示、 (2)textarea等への表示、(3)DOMでノード挿入、(4)innerHTMLのどれかで。 innerHTMLは非標準ですがIE、Opera、Safari、Gecko(N6/N7/Firefox等)で対応済。 Q5. table/tbody/tr要素のinnerHTMLを書き換えるのがうまく行かないのですが… A5. IEはそれらの要素のinnerHTMLは変更不能。DOMを使って書き換えるか <div><table>...</table></div>とでもしてdivのinnerHTMLを書き換えましょう。 Q6. DOMでtable要素にtr要素を追加しても表示されないのですが… A6. DOMでは(XHTML 1.x除く)tbody要素にtr要素を追加する必要があります。 tbody要素はtbodyタグを書いていなくても自動的に作成されます。 またはtable.insertRow()/tbody.insertRow()を使いましょう。 Q7. 変数w1、w2…を順にループで(番号をiに入れて)設定/参照したいのですが… A7. グローバル変数はwindowのプロパティだからwindow['w'+i]を読み書きすれ。 Q8. フォーム部品名を変数にした「...myform.変数名.value」が動きません… A8. 「document.forms.myform.elements[変数名].value」でどぞ。 JavaScriptでは一般に「obj.x」と「obj['x']」は同じ意味です。 Q9. Aタグのonclickで動作指定してるのですが時々動きません… A9. 「onclick="...;return false"」としないとページ移動しちゃうから。
【FAQその2】 Q10. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが… A10. 取得には document.defaultView.getComputedStyle() を使う必要あり。 IEでは要素オブジェクトのプロパティcurrentStyleを使う。 Q11. 100*1.15の結果が114.999…998となってしまうのですが… A11. コンピュータの実数計算は全て近似値だと思え。誤差が嫌なら整数で計算。 Q12. 任意のデータをサーバ(別鯖ではない)から取り寄せたいのですが… A12. IE7/Gecko/Opera/Safariのnew XMLHttpRequest()、IEの new ActiveXObject("Msxml2.XMLHTTP.6.0") (または"Msxml2.XMLHTTP.3.0") を使えばできます。古いブラウザだと隠しフレームに読むなどのワザが必要。 Q13. setAttribute("class","foo")、setAttribute("onclick","bar()")が動きません… A13. IEではそれは不可。「obj.className="foo"」「obj.onclick=bar」でどぞ。 複数の関数を呼びたいときは obj.onclick=function(){foo();bar();}; という風に無名関数を作りましょう。中に書かれたコードが実行されます。 Q14. タイマーやイベントハンドラに設定するコードにthisを含めたいのですが 「"...this..."」とか「function(){...this...}」ではうまく行きません。 A14. それらが実行されるときはthisは別のもの(window等)を指してしまってる。 「function(x){return function(){...x...};}(this)」のようにthisを別の変数に 束縛しその変数を使って。循環参照によるメモリリーク問題あり(この項記述検討中) Q15. 文字列の置き換えをするときにコードを使いたい(Perlのs///e)のですが… A15. string.replace(/.../,function(str,p1,p2,...,offset,s){...})としましょう。 正規表現にマッチした文字列がreturnで返された文字列に置き換えられます。 各引数はstrがマッチした部分文字列、p1,p2,...が1番目、2番目、…の()の中身、 offsetがマッチした位置、sが置き換え前の文字列全体になります。 Q16. input type="file"の値を設定(参照)できないのですが… A16. セキュリティ制約のため設定は絶対に不可。参照はブラウザにより不可。 Q17. getElementById('ID名')や$('ID名')で要素が取れないのですが… A17. コード実行時点でHTMLがそこまで読まれてない。onload中でやるとか。
【主張の対立:他人の嗜好は尊重。損得の議論は歓迎】 ・仕様を読む:回答者なら仕様の該当部分は読んでいるべき。質問者でも 仕様を読まずうだうだ書く奴は注意されて当然。読み間違いは生温く指摘。 ・英文文書:翻訳の努力を惜しむべからず。 読めないなら和訳を探し、 なければあきらめよう。翻訳サイトを知っている人はうまく誘導してあげて。 ・IE専用/アンチIE/クロスブラウザ:「○○は不要」「○○だけであと は無視」は不毛。質問者が分かって選択していれば尊重する。無知か らIE専なのは指摘してあげると親切。 ・標準準拠 vs 使えればよい:標準はブラウザが変わっても維持される 可能性大。非標準機能も損得を分かった上で使うならよい。 ・MS vs アンチMS:MS固有の情報はMSのサイトで見ないと分からないが、 そこだけ見ているとIE専になる。あとは上2件と同様。 ・別窓、イベント抑止など:一般には迷惑スクリプトだが質問者に正当 な理由があることも。尋ねて分かってないようなら煽っても可(w ・innerHTML vs DOM:それぞれに長所/弱点があるので理解した上で選 択するべき。一概にどちらは駄目、とは言えない。 ・on属性 vs addXXX():ハンドラが1つだけと分かっていればon属性 で簡単にハンドラを設定もあり。上書きが心配ならaddXXX()。
終了
thickboxについて質問なんだけど if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6 $("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>"); $("#TB_overlay").click(tb_remove); } という記述があったんだが if ($("#TB_HideSelect") === null) {//iframe to hide select elements in ie6 $("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>"); $("#TB_overlay").click(tb_remove); } とするのと何か違うの? 中途半端にjQuery使ったりしてるんだが・・・
/) ///) /,.=゙''"/ / i f ,.r='"-‐'つ こまけぇこたぁいいんだよ!! / / _,.-‐'~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ / ノ il゙フ::::::⌒(__人__)⌒::::: \ ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ /
>>10 jQueryの$()はid以外も受け付けるから若干無駄。
まあコメントからしてIE6特有の症状を回避させるためみたいだし
もらったパッチそのまま当てたとかで書いた人が違うんじゃね?
>ここで比較するべきはindexOf。 違うだろ。
違うな。スマン。
15 :
Name_Not_Found :2009/04/14(火) 20:06:29 ID:lcH7LDKF
質問:フォーム部品のtext入力フィールド内の文字列の表示を Firefox上でスクロールさせるにはどうしたらよいでしょうか? 例:IEやChromeの場合は scrollLeft などを使えばスクロールするのですが、 Firefoxではどうやっても全くスクロールしてくれません。 <!-- simple example --> <html> <head><script type="text/javascript"> function Scroll() {document.FORM.INPUT_TEST.scrollLeft = 80;} </script></head> <body> <form name="FORM" action="#"> Text: <input type="text" name="INPUT_TEST" value="1234567890" size="5"><br> Scroll to: <input type="button" value="RightSide" onclick="Scroll()"> </form> </body> </html>
16 :
15 :2009/04/14(火) 20:10:06 ID:lcH7LDKF
マウス操作による入力支援機能のJavaScriptを作ったのですが、上記理由のため Firefoxでは文字列が長くなった時にカーソル位置の文字が表示されなくなり困っております。 ヒント等ご助言よろしくお願いします。
Firebugではエラーなどは?
20 :
15 :2009/04/14(火) 20:49:59 ID:lcH7LDKF
>>17 Firefoxでは、 .scrollLeft に値を入れてもエラーにならず 0 のまま変化せず
無視されている感じです。
>>19 縦方向にテキストボックスを沢山並べて使っているので、
1行分に相当する太い横スクロールバーが出ると画面が崩れて困るんです。
前後の文字が見えないと困るので縦スクロールバーもイマイチ。
テキストエリアを使ってスクロールバーを強制的に出さない指定をした場合は、
JavaScriptの制御からはスクロールはするみたいなのですが
今度はキーボード入力の方でスクロールしなくなったので使えませんでした。
キャレット動かしても追従してくれないのか・・・
皆さん、どんな参考書で勉強されてますか? 市販の参考書って、ただ文字が羅列されているだけでとっつきにくくて困るんですが 何かいいのありますか?
ぐぐる→いろいろ覚える って感じ これで知識は蓄積していくから。
おぉ、マジですか? ネットで独学されているんですね? 自分、PCは目が痛くなるので基本的に本なのですが、30冊くらい本屋で探しても、どれも分かりにくくて・・・ どんな効果が出るのかという写真すら付いていない本が多いような気がします
おまいさんがとっつきやすい例を挙げてよ
やっぱ動作例が画像である方が分かりやすいです 後、HTML+CSSでは良くあるのですが、JavaScriptを使ったHPの作り方例とか 例えば、Yahoo!型のページではココにこういうJavaScriptを埋め込むと効果的なような それに、例えばFancymenuのカスタマイズなど急に出てきても、あれだけの文字列の中からカスタマイズ部分を見つけて編集するのは自分には難しいので、そういった少しレベルの高いものとかを扱っている本も知りたいです
PCで目が痛くなるからとか Javascript以前の問題だろ
スクリプトを一番先に読み込ませる方法とか無い?
>>28 一番上に<script></script>を置く。それだけ。もっとも<head>よりは
後でないとvalidなHTMLにならないんだっけかな。
JavaScript4.0で何が変わりますか?
とりあえず2chブラウザを1日で作れるって人は来週までに作って見せてもらいたいもんだ
<input type="file">で選択したファイル名を取ると IE8だとC:\fakepath\ファイル名を返してくる。 fakepathって何だよ
>>32 javascriptで取得出来る訳ねーだろ
IE5.5/6/7 / Safari3.2 / Opera9 / GoogleChromeはファイルのフルパスが取れた Firefoxはファイル名のみ取れる
>>32-34 その仕様はセキュリティのためだから、今後次第に厳しく
なる方向に行くと思われ。最終的には(実質)ファイル名だけに統一?
>>31 お前神経質って根に持つタイプって言われるでしょ
37 :
Name_Not_Found :2009/04/15(水) 11:00:14 ID:iCwtuj99
<form id="form1" runat="server"> <div> <input id="btn" type="button" value="無効" /> </div> </form> <script type="text/javascript"> document.getElementById('btn').onclick = setButtonState(); function setButtonState() { var flag = false; var btn = document.getElementById('btn'); //@ return function() { flag = !flag; this.innerText = flag ? "有効" : "無効"; //A }; } </script> @ITのサイトでJavaScriptを勉強中なのですが サンプルコードで理解できない箇所があったのですみませんが教えてください。 サンプルコードは有効/無効のトグルボタンを機能させるものです。 まず、@のコードの存在意味がわかりません。変数btnって使ってないですよね・・? そしてAのthisキーワードですが、document.getElementById('btn')のonclickイベントハンドから実行されているので、 ここでのthisはdocument.getElementById('btn')を指すという考えで正しいでしょうか? よろしくおねがいします。
38 :
37 :2009/04/15(水) 11:03:44 ID:???
>>38 thisはsetButtonState()で、
document.getElementById('btn').onclick = setButtonState();が宣言されてるから
thisはdocument.getElementById('btn').onclick
ってことかな、多分
ってかURL冒頭のhくらい抜いておけ、外部サイトなんだから
JavaScript標準とかないからないんじゃね?
皆ってJavaScript間違って機能しない時ってどうやって間違いの箇所見つけるの? 一つ一つ探すんだろうけど、長文だときつくない?
Firebug
44 :
37 :2009/04/15(水) 12:07:07 ID:???
>>39 次からはh抜きます。
thisについて調べて少しわかりました。
document.getElementById('btn').onclick = setButtonState();
で、btn要素ノードのプロパティとしてsetButtonState()を
代入しているから。と理解しました。
ありがとうございました。
>>37 @確かに使ってないね A正しい
>>39 >hくらい抜いておけ
なんか意味あるのそれ?エロ広告が挟まれるのはうざいけど
>>40 JSLintとか
>>45 2chやっててh抜く意味わからないやつとか初めて見た・・・。
直リンに対する配慮、マナー
>>46 今時h抜きにこだわってるヤツもひさびさに見たw
>>31 ネタというかテンプレ厨の虚言を信じる方がアホでは。
OSSでは大抵historyを公開しているので、個々のプロジェクトでどのくらい時間が掛かっているのかは判るだろ。
Webアプリならプロトタイプ(試作品)段階なら、少なくとも2,3日で形にしなければ駄目だけど。
個人のサイトならともかく @IT を h 抜きにしたって意味ないだろ
>>46 昔から2chでだけ見かける主張だけどいまいち意義が不明だったもんで。
マナーを言うならむしろReferer不明になるから相手にとって余計不気味なんと違う?
リファラが不明だ・・・ きっとブックマークから直接来てくれたんだ!
yahooとか大多数が見てるようなら抜かなくておk
>>50 通常のWebブラウザ利用での2chでは、httpからの文字列を貼るとそれがそのままリンクになるので、
アドレスバーへのコピペより遥かに容易にリンク先へ飛ぶ事が出来、
特に興味が無くても試しに見てみるかというユーザーからのアクセスも行われ、
リンク先の急激なトラフィック増加を招く可能性もあるから。
とはいえ現在ではブラウザで2chを見る人間の方が希少なので、
もはやそのような意味での直リン嫌悪は無いけれど、
相変わらず宣伝目的で直リンクを貼るアホが多いので嫌われるという状態。
jQueryの質問です。 <div id="A"><span>あいうえお</span></div> <div id="B"></div> で、$('#B').append($('#A').children()); とすると、Aの<span>あいうえお</span>がBに移動しますけど この場合のAの<span>あいうえお</span>を消さずに、コピーするような形で持ってくる方法ってありませんか?
$('#B').append($('#A').children().clone()); とかてきとーに言ってみる。
個人サイト相手でもないのにh抜きとか馬鹿じゃね。
洩れの解釈はちょっと違って、個人サイトでも企業サイトでも、 あるコンテンツが2chから直リンだと分かるとあわてて隠したり 改変したりされることがあるから、だから直リンは避けるのだと 思っていたけど違うのかな。
h入ってると宣伝かと思ってしまうな
h
前スレにeval禁止教徒(?)の話が出ていたが単純にリンク禁止教なんだと思うよ。 スレの性質に関係なく「sageろカス」とかいうのもその類。 言われてた当初はそれなりに意味があったのかもしれないけど 多くは思考停止して闇雲に追従しているだけみたいな。 「スクリプトのコードはコメントタグで囲わなきゃいけないんだよ^^」なんて 自称JSそれなりに知ってる人さんから優しく“指導”されたことがある。 そのくせ「Netscapeなんてもう誰も使ってないし切り捨てていいよ」みたいな。はぁ。 自称JSそれなりに知ってる人さんにとっては、Netscapeなんかよりも JavaScript非対応でコードが文字列としてずらずらと表示されちゃうブラウザ (NCSA Mosaicとかですかね?)の占めるシェアの方が無視出来ないらしいです。
>>62 そういう類の馬鹿が貼り付いてるのは確か。
Netscape(広く支持されたversion4まで)よりも新しい数年前の携帯機種(N900i)は、 body内のscriptの内容をそのまま表示してたな。 今はhead内のscriptはCDATAとして扱い、body内のscriptは相変わらず<!--でコメント化。
>>64 CHTMLブラウザにHTML食わせるほうが悪い
各ブラウザ別の仕様とかいちいちみてないから 適当に書いて各ブラウザで動くかで確認してるんだけど どの程度まで対応できればいい? 最新のIE Firefox Safari Opera Chromeで動けばおk? IEとFirefoxとSafariしか入れてないけど
>>66 そりゃ、あなたのサイトを見に来る人がどんなブラウザを使ってるか調べるのがいちばん良くわかる。
>>67 えーーいまどきアクセス解析なんていれたくないよう
まぁIEだけ特殊と認識してるから
IE+ほかのブラウザ1つで動けばいいよね・・・
>>66 IE6・7
FF2・3
Safari
Opera
これくらいかな
Chromeのテストはまだいらない感じ
chromeの需要は上がってきてるよ ie8もアップデーターで更新できるようになってるよ
IE8もうアップデーターきてるのか じゃあその2つも追加だな
ブラウザの別バージョンって共存できるのか しらんかった
スタンドアロン型の使えばいいんじゃね
Firefoxのシェア上がってきて嬉しいな
>>69 Fx2は要らないんじゃない?サポート終了してるし。
OperaがSafariより高いのが意外だな
Windows 7 に良いところないし IE8 もダメブラウザだから 後10年は IE6 切れないな。
Googleの携帯向けページに変換する機能便利
>>76 俺もそう思うが、今月納品の某大企業のサイトはIE6とFx2で要確認だった。
jsの同一ドメイン制限って abc.foge.com/ と efg.foge.com/ は同じドメインとして許可されるんでしょうか? あと、レンタルサーバでは foge.com/user1/ と foge.com/user2 のようにサブディレクトリ単位でユーザーに 貸し出しているサービスがありますが、これってXSSが可能ってことですよね?
新規サイトを制作するにあたって、以下の事を考えています。 1.リファラからURL取得 2.URLから検索キーワード抜き出し 3.検索キーワードから各ページへ遷移 これらはJavaScriptだけで実現可能でしょうか? 実現可能・不可能以前に、PHP使った方が一般的、 とか、その辺を知りたいのですが、よろしくお願いします! (大掛かりなFLOとかじゃなく簡易的なものとして)
>>85 できる。
3でURLをJSのみで生成できる範囲ならどっちでもいいと思う。
遷移先URLをサーバに問い合わせるなら
まとめてサーバサイドでやったほうが良いけど。
文字コードはどうすんだろ
とあるドメインでの話 外部ドメイン画像(絶対パスの画像)を含むHTMLをローカルで表示するには読み込み可能なんだけど、 そのHTMLをサーバーにアップした場合には画像が表示されない サーバーにアップした場合で画像を表示するようにできないかな? 言いたいことがうまく表現できなくてスマソ・・・
ヒント:リファラ
はてななんかが Google 検索のリファラ見て当該文字のハイライトやってるね。
何か覗かれてるみたいで癪だから無駄にアドレスバー直打ちで行くけど。
>>89 リファラを見て画像の直リンを弾くのは
1. 自社ドメインのリファラでない場合。
2. 他社ドメインのリファラの場合。
の2つのタイプがよく見られるね。
>>89 のは後者のタイプだね。
ローカルファイルに埋め込む分にはブラウザはリファラを発行しないから。
ブラウザの発行するリファラは JavaScript でコントロール出来るものではないよ。
自分用なら Proxomitron なんかでどうとでも出来るんだけどね。
92 :
83 :2009/04/16(木) 06:14:28 ID:???
>>84 なるほど、ありがとうございました。 最近のレンタルスペースが user1.example.com/ のようなURLで
レンタルしてるしてるのは理にかなってたのかー。
93 :
85 :2009/04/16(木) 08:43:21 ID:???
>>86 ,87
ありがとうございます。
なるほど、JSだけで出来そうですね。
文字コードの変換をどうするのかなっていうのが気になってたんですが、
decodeURIでいけるのか。
遷移先URLに関しては固定でよいので、
サーバーに問い合わせる必要はなさそうです。
>>91 なるほど。わかりやすい
つまり、やりたい事はできないってことですね(´・ω・`)ショボーン
プロキシCGI、またはそれと同じような振る舞いをするWEBサービスを悪用すれば出来なくもない
96 :
Name_Not_Found :2009/04/16(木) 19:50:17 ID:abl44l0y
>>91 数年前、リファラの検索文字列を見て、広告内容を振り分ける、
というのを思いついていい気になっていたら、
NTTDATAがそれの特許持ってるのがわかってあきらめた。
まさかみんなやるようになっても何も言ってこないなんて。
やったもん勝ちだなあ。
>>96 リファラでページの表示内容を変更するのは、インターネット誕生のころからある技術で
あって、独自性がないから、そんな特許は無効だと思うよ。
裁判してもNTTDATAはまず勝てないだろう。
むしろNTTDATAが取ってて良かったってことさ。 そういうしょうもない特許でも、誰も取ってないとどこかの馬の骨が取得してごねてくるからな。
NTT DATA だって、ハードディスクのバックアップすら出来ないカス企業だけどな
>>97 インターネットの誕生のころにはWWWなんてなくて、まして
リファラもないんだけどな。
JavaScriptはどういうものかという所から覚えられるサイトってありますか?
WikipediaのJavaScriptの項目が理解できないのなら JavaScriptでぐぐってでてきたサイトを片っ端からサーフィンする 英語が読めるなら外国のサイトのほうが有益な情報がいっぱいあると思う
JavaScriptはブラウザが実行環境のスクリプト言語
ブラウザで動作するので新しく用意するものが何もなくてお手軽
(ブラウザによって挙動が変わる可能性があるので本格的に始めると色々準備がいるけど)
クライアント側で処理を行うので閲覧者のPCに負荷がかかる(サーバにやさしい)
セキュリティ上クライアントにテキストを作成して情報を保存なんてことはできないので
情報を保存するにはクッキーやPHP等と連携してサーバ側に保存する必要がある
onイベントハンドラとHTMLのフォームを駆使してブラウザ上でGUIアプリケーションを構築できる
(やろうと思えばOSっぽいものも作成可能
http://osx.portraitofakite.com/ )
どういうものが向いてるかといえば
計算などのシミュレーション関連(サーバ側で多数で行うと負荷が高い&ページ遷移を行わないのでスムーズ)
視覚的効果を与えるもの
http://www.schillmania.com/projects/snowstorm/ http://highslide.com/ (写真をクリック)
リッチインターネットアプリケーション
GoogleによるAjax作品の数々
あれだ 普通のホームページ=絵本と考えたら ホームページ+JavaScript=飛び出す絵本だ
jQueryで質問です。 <script type="text/javascript">//[CDATA[ $(document).ready(function(){ $('[id*="slideText"]').css('display','none'); $('[id*="slideButton"]').hover(function(){ $(this).css('cursor','pointer'); },function(){ $(this).css('cursor','default'); }).click(function(){ //ここでID名など取得 }); }); //]]></script> </head> <body> <div id="slideButton1"><button>ああ</button></div> <div id="slideText1"> スライドされたテキスト1 </div> <br /> <div id="slideButton2"><button>いい</button></div> <div id="slideText2"> スライドされたテキスト2 </div> こんな感じでボタンの番号とスライドしたいテキストの番号を合わせれば そのボタンを押せば、テキストをスライドできるような仕組みを作りたいのですが 現在hoverしているIDの取得とかって可能でしょうか?
106 :
105 :2009/04/17(金) 13:22:53 ID:4ZWfjgC0
↑ID出すの忘れてました…すみません。
よくわからんけど$(this)がid知ってるんじゃないの?
108 :
Name_Not_Found :2009/04/17(金) 14:03:54 ID:4ZWfjgC0
>>107 ありがとうございますー!そんな感じでした。
自己解決しました、ご迷惑かけました
>>103 15年前ならそれでも良かったんだろうな
ジャバSCRIPTは ホームページに「現在の時刻は10:31分です」と表示したり プラウザーのステータスバーに 「☆★☆ よしおのHPへようこそ!\(^o^)/ ☆★☆」 という文字列を流したりして ホームページを豪華に見せる技術だよ!(*^_^*)
>>104 がいいたとえだと思う
最初は本当にそういうとこから始めるといい
>>109 15年前って1994年、JavaScriptが生まれる前だよ :-)
Windows3.1時代か あのころPC持ってたら今頃スーパーハカーだったのに
正直ハッカーって言っても大したことないよ
マジレスすると、各種フレームワークのサイトにあるデモを見て、 JavaScriptでは何が出来るのかを感じ、興味を持った機能のコードを読む事から始めた方が良さそうだけど。 相変わらず北米仕様(ブログ偏重)のGoogleだと、 微妙過ぎるブログや、ECMAScript3rd以前の化石サイトがかなりヒットするので、 正直百害あって5利有るくらい。
var x = function(){ } と function x(){ } は動作に何か違いが出るんでしょうか? 以下のようなコードを作ったときにa();もb();も動かなかったので、スコープの違いはないようです。 function container(){ var a = function(){ } function b(){ } } a(); b();
a(); //b(); error function a() {} var b = function() {};
120 :
Name_Not_Found :2009/04/18(土) 11:50:07 ID:rm1YcpHg
naoシフトってなんですか?
>>118 細かい違いは割とあるけど、
FunctionDeclarationはすぐに使えて、
FunctionExpressionは実行されるまで呼び出せないってのが大きく違う
try { FunctionExpression(1); } catch (e){alert(e);}
try { FunctionDeclaration(); } catch (e){alert(e);}
function FunctionDeclaration(){
alert(arguments.callee.name);
}
var FunctionExpression = function(c){
alert(c + ':' + 'Expression::' + arguments.callee.name);
};
FunctionExpression(2);
function f(x){ return g; function g(){ return x * 2 } } f(1)(); なんかキモイけどこんなんでも動くんだなw
普通の closure じゃん。
container(); function container() { b(); a(); var a = function() { alert("hoge"); }; function b() { alert("moge"); } }
クロージャを使いこなすのは一苦労じゃ
130 :
118 :2009/04/18(土) 15:39:44 ID:???
皆さんどうもありがとうございました。
>>122 さんのレスに参考になりそうなキーワードがたくさん入っているので
これをヒントにもっと調べてみます。
どなたかJavaScript教えてくれませんか?
出番だぞ、よしお
いいけど金
134 :
Name_Not_Found :2009/04/19(日) 03:54:28 ID:5QzCExFD
質問させてください。 onsubmitを使ってsubmitボタンを押したらformの内容をajaxでpostするようなコードを書いているのですが、 ajaxが起動する前に確認ダイアログを出し、そこで「はい」がクリックされた時だけajaxが走るようにしたいと思っています。 が、現状ではサブミットボタンを押したら確認ダイアログが出ると同時にajaxも一緒に動いてしまっています。 これを 確認ダイアログで「はい」押下→ajaxが走る のような順にしたいのですが、どうするのが一番うまい方法でしょうか? 確認ダイアログの中で「はい」が選択された後の処理にajaxでpostするように書けばいいのかもしれませんが、その処理の中でフォームを自動的に生成させる方法が分かりません。 (今はrailsのform_remote_tagヘルパを使ってhtmlにフォームやサブミットボタンを自動的に生成させている感じです。) どなたかアドバイス頂けると幸いです。
135 :
Name_Not_Found :2009/04/19(日) 04:05:21 ID:5QzCExFD
あ、formはrails側で生成して、それとは別にサブミット用のボタンを作っておいて、確認ダイアログで「はい」が押されたときにjavvascriptでフォームをsubmitさせるようにすればいい、のかな。。 とりあえず今日はもう寝ます。。
confirm("確認ダイアログ")===true ? ajax() : null; こんなのじゃ駄目なの
formの内容をajaxでpostすればいいのであって
submitする必要ないんじゃないのか
別に普通のボタンで onclick="ajax()" でajax起動すればいいじゃん
確認は
>>136 のやり方で
なんでnull?
falseでもtrueでも""でもいいだろ
>>138 なんでもいいけどなにもないと文法エラーになるから
もっとも三項演算子使う場面じゃない
confirm() && ajax();
というか素直に
if (confirm()) ajax();
141 :
138 :2009/04/19(日) 16:10:04 ID:???
いやでは===を使って型にこだわってる割にはその辺適当なのかと思って。
>>136 は直前にreturnが省略されてて、
こういう感じになっているのだと勝手に想定してたけど、前提が違うのかな?
onsubmit="return confirm('...') ? ajax() : false;"
まあ、
>>137 でいいよね、この場合
↑編集ミス
「では」の前に「
>>136 」を補って読みかえてください><
===使うのは癖ですごめん
144 :
Name_Not_Found :2009/04/19(日) 16:58:44 ID:2wx1eEfQ
>>137 イベントハンドラsubmitにしないとエンターキーで実行できないから使いにくいぞ
スタイルをボタンで変更するスクリプトを作ってるのですがIEのみエラーが出て動作しません。 該当箇所はこんな感じです var obj = document.getElementById('view_style'); var newstyle = document.createTextNode ( style_str ); if (obj.childNodes.length == 0) { obj.appendChild(newstyle); } else { obj.replaceChild(newstyle,obj.firstChild); } 4行目のところで「予期しないメソッドの呼び出し、またはプロパティ アクセス」と出るようです(DebugBarのメッセージです) これは<head>内の<style id="view_style"></styel>にスタイルを追加しようとしているのですが 文法的にどこかおかしいところがあるのでしょうか Firefox3(Mac/Win),Safari3(Mac/Win),Opera9.6(Mac),Google Choromeでは想定通りの動作をしますが IE7,IETester(5.5/6/7)でエラーが出ます
>>145 中身のある<style>でchildNodes.lengthが0だった。
DOM操作できない仕様なんじゃない?
innerHTMLなら中身取れたからそっち書き換えるとか。
148 :
134 :2009/04/19(日) 19:10:52 ID:5QzCExFD
たくさんレスありがとうございます。 railsのform_remote_tagメソッドで、フォームのonsubmit属性にprototype.jsのajaxUpdateを書き出してくれるのですが、その前にconfirmを挿入させるにはどうすれば分からないという状況だったんですが、 その後色々調べてform_remote_tagメソッドに:confirm => 'ok?' みたいにすることで、confirmのコードを付け加えてくれるようになるのが分かりました!rails便利だ・・ なんかrailsの話も混じってしまってすいません。ありがとうございましたm(_ _)m
149 :
145 :2009/04/19(日) 19:17:38 ID:???
>>147 もともとinnerHTMLで作っていたのですがそれだとSafariが操作できないようなので
テキストノードを追加する今の形に変更しています
この方法で進めるならIEかそれ以外かを判別して操作するってところでしょうか
>>146 stylesheet オブジェクトを操作する方法ですか
こちらも考慮してみようと思います
javascriptを記述したhtmlファイルをIE7で表示したところ、
何度やってもうまくいかず、<noscript>タグを使い確認したところ
javascriptに対応していないことが判明しました。
類似の質問に対する回答を参考に
ツール→インターネットオプション→「セキュリティ」タブ
→レベルのカスタマイズから、「Javaアプレットのスクリプト」
のところを確認しましたが、しっかりと「有効」になっており、
またフォルダとして参照して開いていることが原因かなとも思い、
Apacheをつかって
http://localhost/ ○○.htmlの形でチャレンジしてみましたがダメでした。
[スクリプト]項目の、[Javaアプレットのスクリプト]以外の、[アクティブスクリプト]、[スクリプトによる貼り付け処理の許可]の項目も[有効にする]にしています。
document.write()は使えますが、alert(document.all.innerHTML)を試してみたところ、"undefined"と表示されたことから、javascriptが全く動作しないわけではなく、スクリプト実行時に、DOMツリーが認識されていないことが原因ではないかと考えました。
そこでwindow.onload =〜の形にしてみたり、スクリプトの記述部分を一番最後に回してみたりしてみましたが、やっぱり表は"undefined"の
ままでした。
もう完全にお手上げ状態となっており、どうかご教授お願いします
document.all.innerHTMLって何? DOMでおk
document.all.innerHTML こんな書き方してるんじゃ動かないわ document.allはIEでしか動かない非標準 alert(document.getElementsByTagName("body")[0].innerHTML); これで動かしてみ
> <noscript>タグを使い確認したところ javascriptに対応していないことが判明 > document.write()は使えますが 上と下の文矛盾してるんだけど。 >document.all.innerHTML undefinedなのが正常だと思うが
>>152 > こんな書き方してるんじゃ動かないわ
> document.allはIEでしか動かない非標準
IE7だからいいだろw
>>150 document.all[0].innerHTMLにしてみれば
あと
>>1 JavaScriptはJavaとは別物な
無理に言葉で全部説明しようとせずにHTMLうp 初心者の自覚があるならなおさら
皆さんレスありがとうございます。
>>152 さんの言うとおり
alert(document.getElementsByTagName("body")[0].innerHTML);
で動かしてみたら成功しました。
javascript及びDOMに対する理解を深められるよう猛勉強します。
皆さん回答ありがとうございました。
がんばれ
>>156 なんか勘違いしそうだから補足するけどinnerHTMLは標準じゃないぞ。
全てのメジャーブラウザが実装してて代替もないから使われてるってだけで。
※HTML5は未勧告
正規表現について質問ですが 「0-9A-Fで構成された6文字の連続した文字をstringから検出して抜き出す方法 というのはどうすればいいのでしょうか? 2つ以上検出された場合は無視してかまいません。 かなり複雑なコードになりそうなので、質問もはばかれるのですが;
>>159 > 0-9A-Fで構成された6文字の連続した文字をstringから検出して抜き出す
例えば zzzzFFC0C0AAAA99xxxx から FFC0C0 を抜き出せば良いの?
>>159 str.match(/[0-9A-F]{6}/) とかではあかんの?
/[0-9A-F]{6}/i.test("000000文字列"); 000000とかAAAAAAみたいに同じ文字が6個って事ならこれだけ
>>160 6文字をオーバーした時は、空白等で変数を埋めた方が誤作動が少ないと思うので
「連続で6文字ジャストのみを検出」
するコードでお願いできるでしょうか?
>>161 ,162
ちょっとやってみます。ありがとうございます。
>>164 まず礼をしたほうがいいと思うぞ。人として
ちょっと意図がわからないけどこういうこと? var hex = str.match(/([0-9a-f]{6})/i)[1]; var integer = parseInt(hex, 16);
2chで礼とかいらないから matchだと文字列が入るから真偽値が入るtestのほうが使いやすいと思う
>>168 いや、元の文章が
> 検出して抜き出す
って書いてあるから、質問者は、真偽を判定したいのではないと思うんだ。
>>164 /(?:^|[^0-9A-F])[0-9A-F]{6}(?![0-9A-F])/i
かな?
>>167 ,170
重ね重ねありがとうございます。
正規表現は勉強不足なんで辞書片手にやってみますね。
\d
173 :
159 :2009/04/19(日) 21:11:51 ID:???
まず自分が書いたコードを疑え。 他人を疑うのはその後だ。
>>173 そう言えば、そっか。
hextmp = hex.match(/(?:^|[^0-9A-F])([0-9A-F]{6})(?![0-9A-F])/i)[1];
176 :
175 :2009/04/19(日) 21:40:25 ID:???
ああ、収拾つかなくなってきたw 一時撤退します。
>>175 何度もすみませんでした。勉強になります。
なかなかjavascriptの正規表現を解説したページがないので、
五里霧中でした。助かりました。
jsで色を取り出したいってことならもっとスマートな方法がありそうだが。
179 :
175 :2009/04/19(日) 21:47:22 ID:???
>>177 テストページだから良いけど、全角スペース入っているのと(hextmp のコメントアウトの前)、
あと、submatch とる前に test にかけるか、null でないことの確認が必要です。
>>179 返値チェックは必要だけど、同じ正規表現を同じ文字列に二度使うのは無駄w
181 :
159 :2009/04/19(日) 22:00:06 ID:???
>>167 でFAじゃないの?
0-9A-F以外をマッチさせる意味はないのだし
「ちょうど6桁」という後出し条件が付いたんだよ。
IE8入れてみたけどやっぱり所詮はIEでした
IE8いれて使いにくいからIE7に戻したらJavaScriptの挙動がおかしくなった フォームの値が取れなくなったり色々
JavaScript、独学でやろうと思って勉強していますが、チンプンカンプンです・・・ 参考書も分かりにくいし・・・皆、よくこういうのマスターできるね
マスターじゃなくて、必要な部分を必要なだけ DOM関連と、正規表現は覚えておけば便利だとは思う Ajaxとかはライブラリとか、既製のものを組み合わせ
JavaScriptを勉強始めて以来6年ぐらい経つが いまだにEcmaScriptレベルではとほほリファレンスが若干古いが一番わかりやすいと思うの俺だけ? その他DOMとかAjaxとかはまた別途勉強しなきゃならんが。
ってか、JavaScriptってHTMLやCSSとは段違いに難しくない?
ふつう、他の言語の習得経験があれば、JavaScriptみたいなもんは 2,3日あれば習得できるんだがな。 まあ、一から勉強しようとするといろいろ大変なんだろうけど。
習得出来てない人が言いそうなセリフだ。
すみません、初歩的な事だと思うのですが、 n = 0; for (i=0; i<10; i++) n = n + i; alert(n); この意味を知りたいのですが、nは最初は0で、処理が行われる度に i が1ずつ上がっていき、処理自体が9回行われるということでいいのでしょうか? つまり、nは 0+1=1 1+2=3 3+3=6 6+4=10 10+5=15 15+6=21 21+7=28 28+8=36 36+9=45 でn=45って事になるのでしょうか?
ループは 10周する。
0+0=0 が抜けてる
i = 0 から始まって i < 10 つまり、 i が 10 未満の間だけループだからね
これ動かせば分かる。 for (i=0; i<10; i++) alert(i);
CとかJavaを習得済みなら基本は同じだから簡単に覚えられると思うが、 侮ってるとプロトタイプとか関数オブジェクトの扱いとかでイミフなコードに出くわす。 つーかprototypeの使い方まで含めて、習得したと言い切れる奴はどれぐらいいるんだか。
JavaScriptはCの皮をかぶったLISP、とか外国の偉い人が言ってただろ C、Javaをやってた方が習得は早いかもしれないが、理解には時間かかりそう
html、cssの知識が必要な時点で相当かかるよ。
Class.create()で生成した関数をonloadでページ表示時に読み込むにはどうすればいいでしょうか? Firefoxやchromeでは正常に読み込んでくれるのにIEでは読み込んでくれません
>>201 書き方から察するにprototype.js?
Event.observeは使ってる?
答えが欲しいならちゃんと情報だせよ?
コンストラクタをイベントハンドラにするの?
>>203 DOM知らなきゃ使えんってことだろ
ECMAScriptだけならいいけどさ
エラーを吐くブラウザにはその行を無視させるコード というのは可能でしょうか? 都合が良すぎですかね
208 :
203 :2009/04/20(月) 23:13:54 ID:???
jQueryで、内容テキストと一致するh2要素を拾ってくるにはどうすればいいでしょう? $("h2:contains('aaa')")では <h2>aaa</h2>と<h2>aaaa</h2>の両方が拾われてしまうようで、 前者だけ取りたいんですが。
>>207 try ... catch はあるけど、普通は if 文使う。
>>210 try catchの方が楽そうなんで、今回はそっちで対処してみます。
ありがとうございました。
XPathなんて普段使わないから書式さっぱりだなー どうも使い慣れたDOM使っちまう IE8とFirefox3.1からのSelectorsAPIも使うかどうか・・・
DOMでもいいけど遅いし面倒 Selectors APIはまんまCSSだから苦労はしないのでは?
214 :
209 :2009/04/21(火) 09:16:20 ID:???
自己解決しましたすみません。 $("h2").filter(function(){return $(this).text()=="aaa";});
>>212 ライブラリ使ってりゃ、知らんうちに内部で使われてるだろ
XPath や Selectors API は高速化の手段として使えるからね
あと、表現力(特に親ノードを参照できるか否か)にかけては XPath のほうが上
ただ、XPath のほうが Selectors API と比較して長くなりがちだけれども・・・
まあ適材適所、ってことでしょ
IE6,7対応のために重そうなXPathライブラリをいちいち導入しなきゃならんのがめんどくさい。 IE7以前のシェアが落ちれば使いたいんだけどね。
217 :
Name_Not_Found :2009/04/21(火) 16:43:16 ID:YyIVAlQs
質問です function xxxxxxx(){ var box=d.createElement("div"); with(box.style){ position="absolute"; top="0px"; left="0px"; width="100%"; height="100%"; margin="0px"; padding="0px"; border="none"; } d.body.appendChild(box); } 実行されるとappendChild でdivが追加されるだけなんですが 3行目、with(box.style){の指定の仕方が初めて見た書き方だったので詳しく調べたいのですが なんというキーワードでぐぐればよろしいでしょうか? 「javascript 演算子 with」などではひっかからないようです。
219 :
217 :2009/04/21(火) 17:11:22 ID:YyIVAlQs
>>218 リンク先、難しいですが参考になりました!
最下段、「エラーが起きることなく、ただ予期しない結果が得られるでしょう。」
とメリットの項目をみてもそれほど魅力的ではなさそうなので
普通の書き方した方が良さげですね。
助かりました、ありがとう
withはレキシカルバインディングが台無しになるから、使うべきじゃない。
letと何が違う
1.7で導入されたかどうかじゃね?
スコープチェーンを拡張するのがwith ローカルスコープを提供するのがlet つまり全然違う。
ローカルスコープはスコープチェーンの拡張で実現されているんじゃねーの
withはstatement評価時に拡張と言うべきか。 letはれきしかる。withはちがう。そゆこと。
質問が途切れたので。 キーワードハイライトしてる<span class="highlight">text</span>ってのがあったとして どうやってこのタグ外す? document.body.innerHTML = document.body.innerHTML.replace(/text/gi, "text"); って外してるんだけどもっといい方法ってないのかな。
deleteキーで消す
span.removeNode(false)
>>226 var span = document.getElementsByTagName("span");
var i = 0;
while (i < span.length) {
var e = span[i];
if (e.className == "highlight") {
while (e.firstChild)
e.parentNode.insertBefore(e.firstChild, e.nextSibling);
e.parentNode.removeChild(e);
continue;
}
i++;
}
innerHTMLをreplaceしてもいいんじゃない?その引数はおかしいと思うけどw
CSS相手ならCSSで対応だ。 <style type="text/css">span.highlight{ 〜 }</style>
231 :
226 :2009/04/21(火) 22:33:31 ID:???
>228 そんなメソッドさっぱり覚えてなかったわー >229 書き間違えてたorz
232 :
Name_Not_Found :2009/04/21(火) 23:42:30 ID:1/UR8wGf
javascriptでguiっぽい画面を作りたいのですが ライブラリなどございましたら教えてください windowsのスタートメニューを作るライブラリは本日知りましたので除外させていただきます
<input type="button" value="2-10" />
関数内でstatic変数を使いたいのですが どのように実装すればよいのでしょうか?
var static変数;
237 :
234 :2009/04/22(水) 02:41:47 ID:???
>>235 var staticですか?
var staticHogeですか?
var static hogeですか?
いずれにしてもうまくいきませんでした
>>236 クロージャーって名前は聞いたとあるけどよく知りませんでした
wikipediaを見たところまさにこれのようですね
早速勉強して見たいと思います
XPPathを解説してるサイトってある?
ぐぐれよ
調べても分かんねえから聞いてんだろっ!!!
XPPathでぐぐったからじゃね
>>240 あほか、知りたいのは「わかりやすいサイト」だろうに
>>238 みたいなこと書いてるからそういう答えが返ってくるんだよw
でもいいサイトは知らない
@ITの記事で覚えたけどわかりやすいとは言えないしなぁ
XPathですね、分りやすく開設してるサイトってググっても殆ど無いですね
XPathとかcssセレクタとか正規表現を知らないと地味に苦労するよネ
XPath知らないでも苦労したことないけど どんなときに苦労すんのよ?
JavaScriptが使えるだけでも、りっぱに 「プログラマー」として呼べるよね?
JavaScriptって、ファイルにデーターを保存したりできないの? JavaScriptって、データーベースに接続したりできないの? JavaScriptって、Ajaxで通信してるときは、サーバーとデーターの やり取りをしてるんでしょう?それってXMLでデーターをとってきてるの? だったら、それってXMLデーターベースと通信してる、って表現でいいのかな? JavaScriptって、基本、クッキーにしかデーターを保存できないの?
まともにjs使えるなら他の言語もすぐ使えるようになるから jsしか使えないんじゃかなり微妙
程度によるな よく初心者向けの解説サイトでHello World表示させて これであなたも立派なプログラマーです! ってのをたまに見るけどあれは失笑もんだ
>>247 ファイルアクセスはセキュリティ上無理
仲介がないと接続できないのは、できる内に入らない
最近はブラウザ自体がローカルDBを持っていて機能提供してくれることもある
でも安定して使えるのはcookieだけ
言語の話なのかライブラリ(ホストオブジェクト)の話なのかはっきりしろ
>>247 Ajaxというか、XMLHttpRequestのリクエストはサーバとやり取りしてるけど、
サーバといっても相手はWebサーバであってDBサーバじゃない。
直接JavaScriptがSQLを発行したりするわけじゃないから、そうは言わないね。
直接DBサーバに接続していろいろできたら問題だろ?
何年前の話をしてるんだ?
>JavaScriptって、ファイルにデーターを保存したりできないの? JScriptならできたりするがセキュリティ上無理 >JavaScriptって、データーベースに接続したりできないの? 同一サーバであってもできない Ajaxでサーバと通信したらできるが 実際に接続してるのはサーバ側の言語(PHP等) >JavaScriptって、Ajaxで通信してるときは、サーバーとデーターの >やり取りをしてるんでしょう?それってXMLでデーターをとってきてるの? >だったら、それってXMLデーターベースと通信してる、って表現でいいのかな? よくわかりません >JavaScriptって、基本、クッキーにしかデーターを保存できないの? JavaScriptに限らずクライアント側に残したいなら基本クッキー サーバ側に残したいのならAjaxでサーバと通信してサーバサイド言語から保存する
>247 俺はどうしてもクライアントにクッキー以外で扱いたいってとこからXUL覚えたな 興味もったらやってみるといいよ
XULってIEで扱えたっけ?
つうか
>>247 の質問はクライアントかサーバかちゃんと書いてないんだよな
クライアントサイドの言語ということが理解できてれば
どういうことが可能でどういうことが無理かはわかると思うが
そんで普通のやり方では無理そうだったらその垣根を越える技術があるかどうかを探す
見つかったらハッピー見つからなかったら仕様だから仕方ないと諦める
255じゃないがXULはFirefox用と俺は認識してるな っていうかXULってそんなことできるのか? IEでも使えるなら面白そうではあるな だがクライアントにXULファイルをダウンロードさせないといけないとなると なんかマヌケな気もするが
現状のJavaScriptの制限に関しては、今後のECMAScriptの仕様(と個別レンダリングエンジンでの独自先行仕様)に期待するしか無いな。 なんだかんだ言っても、現在最も高速化への研究が活発であろう言語でもあるからね。JavaScriptは。
>>259 JavaScriptの制限はセキュリティーの関係上ついた制限だから無理でしょ
261 :
Name_Not_Found :2009/04/22(水) 21:55:04 ID:CB4RWPh1
>setAttribute("onclick","bar()")が動きません… >「obj.onclick=bar」でどぞ。 i = <上位関数で設定した値>; setAttribute("onclick", "bar(" + i + ")") みたいな感じで、 指定した値をイベント処理の引数として設定するように記述することはできませんか?
0からプログラムやるならjsじゃなくてCとJAVAを先にやるべきだな。
他の言語を例に出して解説してるような言語は嫌だ
>>261 obj.onclick = function() { bar(i); }
265 :
Name_Not_Found :2009/04/22(水) 22:21:36 ID:CB4RWPh1
>>264 その書き方で、設定した時点の i の値が期待通り定数の引数として設定されるんでしょうか?
例えば、
i=1; obj.onclick = function() { bar(i); }
は
obj.onclick = function() { bar(1); }
と同じ動作をしますか?ぱっと見違うように感じるんですが
その例なら同じ。ただonclickが発生した時のiの値を使うから i=1; obj.onclick = function() { bar(i); }; i = 2; だと異なる。 定義時点のiで処理したかったら少し細工がいる。 function callback(i) { return function() { bar(i); } } obj.onclick = callback(i); 手っ取り早くやるならこれでもいいけど obj.onclick = "bar(" + i + ")";
それが問題になるようなら、 obj.onclick = (function(_i){ return function(){ bar(_i); })(i); で確実に閉じ込めりゃいいのでは?
268 :
Name_Not_Found :2009/04/22(水) 23:01:32 ID:CB4RWPh1
>>266 説明どうもです。
>>264 は 異なる訳ですね。使えませんね。
>これでもいいけど obj.onclick = "bar(" + i + ")";
これが使えるなら楽なのですが、この使い方はIEでは使えないのでは?
>obj.onclick = (function(_i){ return function(){ bar(_i); })(i);
function を return するなんて荒業が許されてるんですか?
(最後の箇所は }})(i); の間違いですかね?)
試してみたけど、ちょっとうまく動かないです。
無名関数、クロージャ、prototypeプロパティ の使い方は自力で学習しておくべき。
javascriptの特徴とも言えるもので荒技なんかじゃない。 キーワードはファーストクラス(オブジェクト)、ついでにクロージャ。
>>268 何が荒業だ・・
closureなんてJavaScriptの基本中の基本だし、どんなJavaScriptの入門書にだって書いてあるだろ。
あんたは一体、何を勉強したんだ?
>obj.onclick = "bar(" + i + ")"; 動くのか?これ。
273 :
Name_Not_Found :2009/04/22(水) 23:15:55 ID:CB4RWPh1
言いたかったのは、return function(){ bar(_i); } と書いたら、 _i に代入されずにそのままの式が帰ってくるように思ったのですが 違うの?
よくは知らんが、 return function(i){ bar(i); }; の間違いじゃねーの?
なんで馬鹿が回答者やってんだよ。
277 :
274 :2009/04/22(水) 23:25:18 ID:???
>>275 ああ、元のソース見てなかった。元のソース
> obj.onclick = (function(_i){ return function(){ bar(_i); })(i);
これか。これなら俺なら
obj.onclick = (function(i){ return bar(i); }) (i);
こうするわ。
279 :
Name_Not_Found :2009/04/22(水) 23:29:14 ID:CB4RWPh1
>>277 それだと代入した瞬間に bar() が実行されてしまいますが...
prototypeプロパティって OOPでクラスベースっぽい書き方をするために使う っていう認識であってる? Class.prototype = { hoge: null, setHoge = function(){ this.hoge = "hoge"; }, getHoge = function(){ return this.hoge; } }
結局、ちゃんと動くようにするには > obj.onclick = (function(_i){ return function(){ bar(_i); })(i); をどう直したらいいんだ?
onj.onclickなんて書いてたら
>>226 みたいなので全部消える
春ですなあ
>>277 は「自分だったらどうするか」を言ってるだけだから別に良いじゃん。
意図した通りに動くかどうかは別にして。
(爆笑)
>>280 たしかに継承のためのものだけど
prototypeこそがプロトタイプベースの所以だから
クラスベースの延長で考えようとするとたぶん躓く
こんなん作って、ムリくり継承してる。 function inherit(subClass, superClass) { for (var prop in superClass.prototype) { subClass.prototype[prop] = superClass.prototype[prop]; } }
ES3.1で継承用の関数が標準で追加されるとかなんとか
function inherit(subClass, superClass) { var tempFunc = new Function; tempFunc.prototype = superClass.prototype; subClass.prototype = new tempFunc; subClass.prototype.constructor = subClass; }
JavaScriptで継承する機会なんて滅多になくない?
ゲーム作ったりすれば使うぞ。
あーActionScript向けか Flashは使ったことないからわかんないけど
as向けじゃねえ。 jsでも普通に使うだろ。
DRYをきっちりやろうとすると必須だな。 実際は手抜きして同じ名前のメソッドを作るだけのこともあるが。 むしろ自分は(function(){...})()が書けない。 function XXX(){...} XXX(); でいいじゃん、って思ってしまう。
JavaScriptの開発するときに、 IDEとかエディタはなにを使うの?
>>295 EmEditor
デバッグはFirefoxの拡張のFirebugで済ませてる
DW
ぐぐれ 最悪メモ帳だけでも作れる
自分は秀丸+Firebugだな。それとHTMLエディタにez-HTMLと。
>>296 これってコードの補完はどうやるの?
色分けは自動でできてるみたいだけど。
Meadowをphp-modeで使ってる。 なんか所々インデントが狂うんだけど、直し方分からんし、我慢して使ってる。(´・ω・`)
303 :
Name_Not_Found :2009/04/23(木) 11:09:33 ID:47vRBo/p
テーブルのヘッダを固定したいのですが それに特化したライブラリはございませんか? <table> <thead> <tr> <th>ID</th> <th>name</th> </tr> </thead> <tbody> <tr> <td>1</td> <td>tanaka</td> </tr> <tr> <td>2</td> <td>sakamoto</td> </tr> </tbody> </table>
ヘッダを固定、の意味がわからないんですが。
ばぁさんや、テーブルレイアウト者が最後の抵抗を見せているのぉ。
308 :
304 :2009/04/23(木) 11:56:12 ID:???
なんだよtbodyスクロールのことか。ただのテーブルのどこに動く要素があるのか考えちまったぜ。
>>298 メモ帳ってXP以降変なバグあるんじゃなかったっけ?
>>307 レイアウト用途でテーブルを強引に使うのが時代遅れなだけで、
表形式のデータの表現としてテーブルを使うのは問題無い。
むしろ表であるべきデータをtableでタグ付けしないバカがいたら HTML勉強してこいと突っ込むべき、だな。 多いけどさ…。
自分の頭が悪くなったので質問させてください。 var re = /\$\{([0-9]+)\}/g; alert(re.test("${0}")); //true alert(re.test("${1}")); //false alert(re.test("${2}")); //true alert(re.test("${3}")); //false 以下trueとfalseが交互に続くんですが、どういうことなのか教えてください。 全部trueにする改善策もあればお願いします。
>>314 gオプションを外せばいい。直接の原因はlastIndex。
317 :
314 :2009/04/23(木) 20:42:57 ID:???
なるほど。replace用の正規表現を流用したかったんですが、やめた方がよさげですね。 つまり、gオプションがある場合、マッチがfalseになるまでlastindexがクリアされないが、 1つ目のマッチのあと残り文字列がないので2つ目に移ったがそのときlastindexがクリアされてない、 って理解でいいですか?
微妙に違う気がする
>>317 微妙にずれてる気もするけどだいたいそんな感じ。
一言で言えば使い方が間違ってる。
gオプションがあろうとtestやexecは一回しかマッチしないから
gオプションの目的を果たすには複数回実行する必要がある。
そのためにRegExpオブジェクトは前回の終了位置を記憶する。
https://developer.mozilla.org/ja/Core_JavaScript_1.5_Reference/Global_Objects/RegExp/lastIndex >このプロパティは、正規表現が、グローバルサーチを示す"g" を使用した場合にのみ、セットされます。(以下省略)
var re = /a/g;
var str = "aaaa";
var i = 0;
while(re.test(str)) { i++ }
alert(i);
というわけだからg付きの正規表現で真面目に書くなら
falseが返るまで繰り返す必要がある。
function test(re, str) {
var flag = false;
while(re.test(str)) { flag = true; }
return flag;
}
(このままでgなしを渡さないようにw)
正しい使い方をすればいいだけの話。
gつきでもcompileすれば、今回想定してるだろう動きをしそうな予感。どうなんだろ? 仕様的にどうなのかとか全然おさえてないけど。
>>303 こんなの本来はCSSの話でJavaScriptは関係ないんだよな。
>>295 サクラエディタでよくない?
わざわざ専用のエディタを用意するのもなんだし。
コード補完はできるよ。
>>323 re.compile() とかってやるかんじ。
エクマ準拠じゃないとは思う。どの程度非標準なのかもうろ覚え。
たぶんgフラグ無視で動く。メリットがあるとしても正規表現リテラルに手を入れなくてすむかもしれない程度。
じゃぁ言うなとか言われそうだが。
JavaScriptにもあるよ
非推奨機能かも
とほほはないわ
とほほってリファレンスとか作ってる割に自分のページのHTMLも満足に書けない初心者
>331 ブラウザ戦争以前の遺物に、なにをエラそうに語ってるんだお前は?
役立ちより害悪の方が大きいので皆叩くんでは。 「とほほで覚えた奴はまっとうな理解に到達しないので このスレの困ったちゃんになって迷惑だ」みたいな。
335 :
333 :2009/04/24(金) 11:21:51 ID:???
>>334 俺もとほほからjs覚えた口だけどクロージャとかもちゃんと理解してる。
未だにとほほ以上に分かりやすい入門サイトはないよ。
とほほを批判する理由を教えてくれ 具体的によろ
広告料良さそうだから
とほほを批判する奴はそれ以上に良いサイトを 作らない、作れない、紹介すらできない
具体的も何も
>>334 で語られているだろ。
あんな化石サイトを参考にするのは完全に時間の無駄。
frameworkのデモやプラグインのソースを読み、
判らない点があれば、developer.mozilla.orgで調べ、
さらに深く知りたいならオライリーのJavaScript本を読む、でok。
英語のドキュメントを読めないという人間は知らん。
次スレのテンプレの一番上にとほほ追加。
引くのは便利なんだけどな 内容はちょっと
自分の上ってきた階段のことなどすっかり忘れ 自分がさも最初からその高さにいたかのように 後続に「さぁ、ここまでジャンプしろ!!」なんて言うんだもんなぁ。
>>343 ってさっきから一人で批判してる奴じゃね?
いや別人 とほほ自体を批判するつもりないよ
jsしか書けないアホの末路。
古いんだよ情報が
しかしモジラのそこって何でいちいちSSLで繋がせるんかね。
とほほだけに間違いがあるわけじゃないという証明になってる。 仕事として書かれた解説サイトにも間違いは多い。
MDCはボランティアだろ?
Microsoft Platform SDK - Windows Server 2003 R2をリファレンスに使ってる俺も叩かれちゃう><
とほほのどのページのどの記述が間違っているか言わないとただの見栄張るクンですよ
一番解り易い好きなとこ使えばいいよ。 ただ記事が古い事は併記されてるブラウザのバージョンだけ見てもわかるだろう。
>>339 はただ煽りたいだけの厨房だから逃亡して二度と降臨することはないか・・・
とほほのJavaScriptリファレンスでDocumentを見るとまず fgColor、bgColorとか出て来て、要素取得のとこ見るとdocument.all だけでgetElementByIdは形もない。これだけでもう即死だと思うが。 見やすそうで読みやすそうで、ところが中身は古く、しかもどれだけ古いか 知らない奴には分からないので喜々として覚える。極めて有害だと思うよ。
古い=情報が間違ってると思ってるの?
間違っているというよりその古いの基準で理解するのは 本人にとって悲惨なことだと思うから有害だと。
最初は代入とかfor文とかを覚えるのが大変なんだよ。 document.allかDOMかなんて後でどうにでもなる。
熟知してる奴が見やすさのためにとほほを引くのは別に 有害じゃないと思う。ただ、それをここで言及すると、 初心者が勘違いして見て被害をこうむるので、それは可哀想。 だからとほほが言及されたら一応叩くようにしてるだけで、 別にとほほが憎いとかじゃないんだよね。
>>364 そういう奴はこのスレの対象じゃないね。普通に本とかで
勉強するべきだろ。
勝手に決めんなよw 初心者が被害をこうむるとか馬鹿じゃねw とほほ見てそこで終わるような奴は最初からダメだろ。
それを言うならあんたもとほほで無問題とか勝手に決められないわけで。
小学校の算数の教科書には微分積分が載ってないから小学校の教科書はダメ みたいな論理。
入門サイトとして良いかと言うと微妙なんだよな 例文が少ない上、あまり真似してほしくないものだったりする 変数が全部グローバル変数だし リファレンスとしてなら良いかというとこれまた微妙 包括的でない上に、標準と独自拡張が混在していて それを見分ける目印が(e4/N406)なんてのしかないから 結局他のと見比べることになる あれはとほほの個人的なメモだと思った とほほと思考を共有できる奴なら、あれで十分なんだろう
ヒ素飲んでも死なないで回復して健康になる奴もいるからヒ素飲んだって 無問題、みたいな論理。 ね、水掛け論だろ。いつまでやる気か知らんけど。
>>370 と言うよりは10年前の歴史の教科書みたいなもんだ
初心者がとほほだけしか見ないと思い込んでる理由が分からない。
>>370 微積が載ってないのは別に問題じゃない。とほほの場合、
足し算するのに指折って数えましょう、みたいに行きどまり
というか先にいって苦労するようなものを覚えてしまうから有害。
>>374 とほほ以外のまともなものを見るんならそれだけ見れば
いいじゃん?わざわざヘンな癖がつくサイトを勧める理由が分からない。
アンチとほほは要するに馬鹿なんだろ。 学習能力が低いから初心者もとほほの間違いにつまずいて終わってしまうと 思ってる。 おまえと一緒にするな。
では、とほほが「間違いにつまずかせる」ようなサイトであることは お認めになるのですね。よかったよかった。
感情論じゃなくお前らのサイト評価のポイントを教えろよ そうすりゃテンプレ入りを決める時の基準になるだろ
君が馬鹿だってことは認める。
そこで「オマエモナー」ですよ。オレモナーか。
いやー盛り上がったねえ。やんややんや。
スレの無駄遣いだからもう刺激しないでホスイ。
>>379 テンプレに入れるのに必死なアフィ厨がわくじゃん
試しに次スレのテンプレに入れてみよう。
テンプレの
>>8 (ないしその前半)に載せるサイトのリスト一式という
形で提案してほしいな。それで合意するものがあれば次回差し替えようよ。
>>390 あれ、いつのまに広告が載ってるんだ?
これはアウトだろ
>>387 >の方が先に書いてあるから
それはABC順じゃないかな。
と、勘で書いてみる
今は非推奨とかそういう情報が無い時代のものだから古いのはしょうがない。
とほほ先生のサイト>>>>越えられない壁>>>2ちゃんねらーじゃない人のサイト>>>>アンチとほほ(笑)のサイト
395 :
387 :2009/04/24(金) 18:49:04 ID:???
>>393 そうそう。だから古いからダメってみんなが言ってるのも納得。
更新してないってことはそれだけそのコードをコピペする人が増えるわけだから。
ググって、グローバル変数をガンガン使ってるJavaScriptのソースコードがあったら
それをコピペして動かないってここに質問するのが初心者って考えると、
そういうページをここで推奨しないっていう意見も納得できるなと思ったわけです。
>>390 レンタルスペースだから広告が付いてるだけじゃん。
>>396 それ無料コースじゃなくて有料コースだよ
HP管理者が意図的にアフィ入れてる
うお、マジか 作者が俺たちのスレにテンプレに入れて稼いでたっぽいな
いいものを提供してるんならアフィでも別にいいよ。 どうせ広告フィルタで見えないし。
いいものを提供してるわけでもないからテンプレから除外で
それに今時アフィなんて儲からないよ。 サイトを作る労力と比較して割に合わない。 カネになるならみんな同じようなサイト作るだろうし。
アフィリエイトはあろうがなかろうが、コンテンツが良質ならいいんだよ。 とほほが残念ながら未だに有用なのは あれ以上わかりやすくて網羅的なECMAScriptリファレンスを置いてるサイトがないことだと思う。 DOMならoz-07amsのはリファレンスになるが、ECMAScriptについては仕様書の訳だからわかりづらくてしょうがない。 別にアフィリエイトあっていいからさ、誰か作って。
ちょっと未稿箇所多くないか?
とほほはポケットリファレンス 網羅的でも分かりやすくもないが思い出すには使える
アフィ付けたって割に合わない解説サイトをボランティアで頑張る奴なんかいない。 ボランティアと言えば聞こえは良いけど結局は金儲けでやってる団体にタダで使われてるだけだし。
いい機会だから参考サイトのリスト一式で提案してほしいなー。
DOM Level2にも対応していないサイトをリファレンスに使うなんて、
酔狂としか言いようが無いな。
>>407 まるでOSS全面否定発言だな。
世の中には利益云々抜きで動く人間も居るという事を知っておいた方が良いね。
GPLのコードを密かに利用していた事が露見し、バッシングされるアホも相変わらず多いが。
タダ働きしてくれる人がいっぱいいたら仕事しなくていいのに。
>タダ働きしてくれる人がいっぱいいたら 会社も給料を払わなくていいな
>>406 うん。軽いし見やすいから色とかタグとか確認する時よく開くわ。
さすがにJSに関しては他当たるが。
jsの古さは気になるのにHTMLタグの古さは気にならないのかw
Cだと main() { /*式*/ } のように書くけど なぜJavaScriptは function(){ /*式*/ } のように波括弧の始まりは分の終わりに置くの?
俺はCでも後者を使う。 なんとなくカッコいいと信じてるから
417 :
395 :2009/04/25(土) 00:56:44 ID:???
一行短くなるからCでもJAVAでも後者。
Cだって if(hoge) { } って書くしむしろそっちのが謎
昔はCだと関数を void func(n) int n; { } とか書いてたから、その名残じゃないの。 てか、久々にかいたら違和感ありまくりだな。間違ってないよね。
話題がそれ始めてるw
>>366 それ買ったけど、全然網羅的じゃないから。
レベルも高いので、JavaScriptがすでに十二分にわかってる人が買うものだと思う。
++や--も使うなって言ってるのはわけがわからなかった。
そんなんでバグが増えるとは思えないので俺は使い続けるけど
>415 短いから、だろうなぁ。 この話は「個人のスタイルだから、統一されてるならどっちでもいいよ」 がどこでも結論になるね。 ちなみに、俺はどの言語だろうとどの文だろうと前者だけど。 入れ替え書き換えしなきゃならん時に楽だし、 いまどき数行長くなった程度で見通し悪くなるようなエディタ使う機会もないし。
GNUのコーディング規約は、もっと異常だがなw
423 :
Name_Not_Found :2009/04/25(土) 23:57:26 ID:mTb7+2C4
些細なことかもしれませんが...少し気になることがあります。 function a(){ var now = new Date(); return { hour: now.getHours(), min: now.getMinutes(), sec: now.getSeconds() }; } var intervalId = window.setInterval(function(){ //適当なフォームに現在の時刻を表示 },1000); このとき、a関数ではnow変数を毎回ローカル変数として宣言していますが、 パフォーマンス的にはどうなんでしょうか? (作成して破棄しての繰り返しですよね) 以下のようにa関数を定義した場合とどちらかが推奨されるのでしょうか... var now; function a(){ now = new Date(); return { hour: now.getHours(), min: now.getMinutes(), sec: now.getSeconds() }; } よろしくお願いします。
結合オブジェクトでぐぐれ もしくはECMA-262「13.1.2 Joined Objects」「13.2 Creating Function Objects」を読め
ベンチ取ってみたらどうだろう
426 :
395 :2009/04/26(日) 00:22:11 ID:???
returnで毎回オブジェクトを生成してるのは気にならないのかな。
427 :
423 :2009/04/26(日) 00:30:36 ID:6PcMv657
>>424-426 仕様書に目を通してみましたが、いまいちよくわからないですね。
言われてみれば気になりますね。ざっと書いたコードだったので
now変数にしか注目していませんでした;
質問は解決に至りませんでしたが、結局グローバル変数は避けるように
したほうがよさそうですね。パフォーマンスもそこまで大変するような
ものじゃないですし。
ありがとうございました。
>>427 後者の方がFirefoxではいくらか早いみたい
>>423 のコードを50000回実行した結果
(run(1)=前者 run(2)=後者)
>>> run(1)
1070 ms
>>> run(1)
1078 ms
>>> run(1)
1078 ms
>>> run(1)
1237 ms
>>> run(2)
877 ms
>>> run(2)
880 ms
>>> run(2)
880 ms
>>> run(2)
903
よく見たら前者と後者逆だったスマン
430 :
423 :2009/04/26(日) 00:39:29 ID:6PcMv657
>>428 わざわざありがとうございます。
やっぱり破棄しなくて済む分、いくらか早くなるんですね。
431 :
423 :2009/04/26(日) 00:42:05 ID:6PcMv657
>>429 あれれ、、、そうなんですか。
となると考えられるのはスコープの違いですかね。。。
いろいろありがとうございました。
結局どっちだよw スコープチェインを関数外まで探索する方が遅くなりそう
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322) 1 : 1641ms 1 : 1672ms 1 : 1609ms 1 : 1609ms 1 : 1594ms 1 : 1594ms 1 : 1594ms 1 : 1578ms 1 : 1610ms 1 : 1593ms 2 : 954ms 2 : 953ms 2 : 953ms 2 : 953ms 2 : 953ms 2 : 953ms 2 : 953ms 2 : 937ms 2 : 954ms 2 : 953ms IE7でも毎回var付けてあげた方が早いみたい
しかし毎回オブジェクトを生成して、メモリ使用量が増え続けないのかな?
毎回オブジェクトを生成してんのはどっちも
>>433 へー、スコープチェーン辿るだけでこんなに違うんだ。
関係ないけど.NET入れるとUAがとんでもない事になるんだなw
仮に速くなったとしても、オブジェクトの生成回数も変わらないのにグローバル変数にするのは絶対嫌だな。
グローバルで用意して、引数として渡せば良いよ。 試してないけど。
>>439 どつちもアクティベーションオブジェクトのプロパティ扱いでも、変わんないんじゃね?
試してないけど。
質問です 処理内容にもよると思うのですが、 たとえばDIVのstyle.leftを変更してアニメーションさせるような簡単なループを作るときに しょぼめのPCを考慮するとsetTimeoutの無難なミリ秒数はどのくらいですか? こんな感じ。 function move(e, x) { var obj = $(e); var cx = (obj.style.left) ? parseInt(obj.style.left) : 0; var nx = Math.ceil( cx + ((x - cx) * 0.1) ); if (nx >= x) { obj.style.left = x + 'px'; } else { obj.style.left = nx + 'px'; setTimeout("move('" + e + "', " + x + ", " + y + ")", 20); } }
442 :
395 :2009/04/27(月) 12:56:23 ID:???
>>441 DIVの大きさやDIVの中身によって全然違ってくると思いますよ。移動後の画面描画処理が
最大のネックになるので描画領域が広ければそれだけ重たくなります。
しょぼめのPCというのがどの程度のPCを指してるのかもよく分からないなあ。
$()使ってる時点でしょぼいPCを相手にしてないことは分かるから安心しろ
javascriptって sleep関数、無いんだよね。
だよねー。
yield や setInterval/setTimeout で sleep もどきを実装、みたいな話ならググれば見つかった気がする ただ yield は現状 Gecko だけだし、setInterval/setTimeout だと問題もあるぽいから、完全な代替は難しいのかも
forループで 1 2 3 4 5 って出すのを勉強して、これをゆっくり出したい、って 思ったんだけど、普通のやり方ではムリなのね。
forループを再帰に直してsetTimeout()に落とすだけ 関数型言語を触ったことがあれば何も難しくない
>>443 確かにw
なんで毎回取得しなおしてんだろうな
javascriptで再帰なんてできるのか?
むしろなんで再帰できないと思ったのかが知りたいw
>>448 のやり方だとコールスタックに積み重ねないから末尾再帰最適化のように無制限になる
yieldの使い方がいまいちよく分らない function testYield(){ alert("Hello world !"); yield; alert("JavaScript vol.70"); yield; }; var y = testYield(); y.next() //alert("Hello world !");が実行される y.next() //alert("JavaScript vol.70");が実行される これであってる?
>>453 合ってる
ちょうどいいから
>>448 をyieldで書いてみると面白いと思う
ところでfirebugのコンソールでjs1.7や1.8を使う方法ってある?
>>454 1.8対応してない?
alert((function() [b for([a,b] in Iterator(["a","b","c","d"]))])().join(":"))
458 :
Name_Not_Found :2009/04/28(火) 11:22:34 ID:973sOR9i
初心者なんだが ブログにタブメニューを付けたく,jqary入れてみたけど、なんか初期起動が変なんですよ 全てのメニュー表示した後で、各タブメニューになります 説明へたですみません 簡単に言うと 最初 javascript オフ状態→0.5秒後→javascript オン状態になった感じです
日本の借金をカウンターで表示するページを作りたいのですが Javaスクリプトで出来ますか?
460 :
Name_Not_Found :2009/04/28(火) 11:38:45 ID:QwbUcK/P
getComputedStyleについて質問です
var d = document;
function getTextNodes(node){
for(var i=0,len=node.childNodes.length;i<len;i++){
var childNode=node.childNodes[i];
if(childNode.nodeType==3){
if(vacuumTarget(node)){
targetTextNodes.push(childNode)
var fontSizeStyle=document.defaultView.getComputedStyle(childNode, '');
document.write('<div id="auto-div'+i+'" style="font-size:'+fsize+'px; color:'+fcolor+'">');
document.write(childNode.nodeValue);
document.write(fontSizeStyle);
document.write('</div>');
}else{
notTargetTextNodes.push(childNode)
}
}else{
if(childNode.nodeType==1){
getTextNodes(childNode);
} } } };
getTextNodes(d.body); //実行
という感じの関数をつくり、テキストノードの一覧を書き出すまではいけたのですが各ノードにあたっているスタイルを取得するのにgetComputedStyleを使おうと、調べたところ、どのサイトさんも
var str=getelementbyid('id');
var style= getComputedStyle(str);
のような感じで、getComputedStyleの引数にはgetelementbyidの返り値をつかっていらっしゃるようでした 。ページにある要素すべてに対して実行したいので、できればchildNodesでぐるぐるしたいのですが、この場合、上のような方法ではスタイルは採れないのでしょうか…
とりあえずは
[email protected] 環境で動けばと思っております
>>460 getElementByIdで何が取得できてるか考えれば解決しないか?
462 :
460 :2009/04/28(火) 11:57:26 ID:QwbUcK/P
(js1.8を)「指定する方法」って書いたつもりだったのに
(yieldを)「使う方法」とごっちゃになってたらしい
>>457 すまんかった
>>462 同じもの。「要素」というのはHTMLの用語で、「ノード」というのは
プログラミングにおけるデータ構造の用語。不統一なのは頂けないけど
どちらも「要素に対応するノード(の並び)」を取得するということ。
>>466 書いてから間違いに気がつきました、失礼しました。
テキストノードとかもぶら下がってましたね。
468 :
460 :2009/04/28(火) 14:23:00 ID:QwbUcK/P
>>468 window.dumpって単なるメッセージ出力じゃなかったっけ
それならfirebug入れてconsole.log()使えばいい
中身見たいならfirebugのコンソールからgetElementByIdの結果を出して
それを右クリック→DOMで調査
友紀子供は岩津天神さんとふくしまのことを知らない。 千尋と村田はその子の事を知らない。
ノード(Node)を継承したインタフェースのうちの1つが要素(Element)。 childNodes[i]はノードを返すし、getElementById(id)は要素を返す、名前通りに。 Firefox限定のtoSource()とIE限定のouterHTMLはDOMのデバッグにはそこそこ便利かと。
あ、ごめんtoSource()はDOM関係なかった。XMLSerializerかな似たようなのは。
>>468 for(i in x = document.getElementsByTagName('body')[0]){
alert(i + " : "+ x[i]);
}
こんなかんじでprint_rもどきっぽいものが
>>474 xがグローバルになるのはキモイけど一回しか評価されないのか
知らなかった
むしろfor inの中で代入してるのがキモい この場合はただのdocument.bodyでいいし
477 :
Name_Not_Found :2009/04/28(火) 21:54:01 ID:/NTmFmGS
質問致します。 JavaScriptはウィンドウやモニタの解像度を取得する機能がありますが、 「ブラウザがフレームに対応しているかどうか」を判別するものなどはあるのでしょうか? 対応なら「フレーム機能あり」、未対応なら「機能なし」とテキストを表示させたいのです。 どうかご教示宜しくお願いします。 (Googleでそれらしい言葉で検索、過去ログも読んでみましたが見つかりませんでした。既出でしたらすみません)
>>476 キモいのは同意だけど例に過ぎないbodyへの指摘はさすがに筋違い
>>477 未対応だけでいいなら<noframes>でおk
フレーム未対応のブラウザはDOMへの対応も半端で操作がしにくいから
あんまり込み入ったことはしないほうがいいと思う
479 :
477 :2009/04/28(火) 22:28:59 ID:/NTmFmGS
大変失礼しました。説明が悪かったです。 ・左右2つに別れたサイトです。 ・左に目次、右に本文を表示します(目次欄の特定の場所をクリックすると右に出てくる) ・hrefタグにtarget属性を仕込んである つまり、フレーム対応ブラウザならばtarget属性がソースに出るが、未対応の場合は出ないという そういったものを作りたいのです (画面の横幅が小さい場合もそうしたいですが、そちらは既に見つけてあります) お手間を取らせて申し訳ありません。
>>479 <noframes><script>remove_target();</script></noframes>
こうでいいのか <script>supportFrame = true;</script> <noframes><script>supportFrame = false;</script></noframes> <script>if(supportFrame) { 〜 }</script>
482 :
477 :2009/04/28(火) 22:55:08 ID:/NTmFmGS
supportFrame
なんかすごく普通な感じですね。私の探し方が悪かったのかな…
とにかくありがとうございます。
>>480 さんもありがとうございました。
さっそく試してみます。
supportedFrameのほうがよかったんじゃないかってぐらい即興なのに・・・w
フレーム未対応なら、まずスクリプトも動かないから、 noframes内で別途targetのないメニューを出すべきだと思うんだ。 てか、framesetでメニューを出すのが普通だから意味なくない?
フレーム未対応ブラウザにスクリプトで対処しようってのが間違ってるよな
spryのデータのいじり方ってどこで聴けばいいですか?
>>15 ですが、解決策が出そうに無いので
もうしばらくしてから2ch外で聞いてみることにします。
マルチは良くないのでご報告までに
JavaScriptでブラウザ上で選択した文字列のコピーをしたいのですが、Ctrl+Cを送ればいいのではないかと思っています。 JavaScriptでCtrl+Cのキーを送るにはどうすればいいのでしょうか?
alert("Ctrl+Cを押せ!");
window.event.keyCodeを使えばいいのでしょうか?
そんな風に勝手にキーを操作されたらとても怖くないか
IEってkeyCodeに数値代入してできたような。。。
あ、でもIEだったらクリップボードを直接弄れたっけ。
IEだけでいいなら教えるけど
IEだけでかまいませんので、お願いします。
IE JavaScript クリップボード でぐぐったら?
JavaScript と Flash ムービーの連携でいろいろ出来るライブラリがたくさんあるんでそういうのを探したら良いと思う。 クリップボード操作とかもあるでしょう、きっと。
特定のIDでのみ、新しい窓で開きたいのですが、複数IDを指定するにはどうすればいいでしょうか? window.onload = getSrc; function getSrc() { var x = document.getElementById('sample').getElementsByTagName('a'); for (var i=0; i<x.length; i++) { x[i].onclick = function () { return openWin(this.href); } x[i].onkeypress = function () { return openWin(this.href); } } } function openWin(target) { open(target); return false; }
499 :
Name_Not_Found :2009/04/30(木) 11:31:13 ID:BtnNQ7g1
変数を宣言するときにvarを使うのをよく見ますが これってどういう時に使いたくなるものなんでしょうか?
>>495 document.selection.createRange().text
504 :
Name_Not_Found :2009/04/30(木) 13:59:07 ID:ddrc8+su
以下のような書き方をしたのですが正常に値がプラスされません var i = 100; i += 50; alert(i); // 150と表示されない PHPでいうと $i = 100; $i += 50; echo $i; // 150と表示される どなたかご教示お願いします
>>504 150と表示されるよ?
scriptタグで囲ってる?
すいませんcssファイルに書いてました
507 :
504,506 :2009/04/30(木) 14:09:09 ID:ddrc8+su
id出し忘れました
508 :
Name_Not_Found :2009/04/30(木) 14:14:57 ID:OmjlFRWK
test.js内に hensu = [1,2,3,4,7,11]; alert(hensu.lenght); とかいて<script type="javascript" src="test.js"></script>とやってみたのですが 配列の数を取得できずundefinedと表示されてしまいます alert(1)とやるとアラートが出るのでパスは合ってます どなたかご指摘お願い致します
lenghtでググってみるとか
lenght
>>508 もう少し自分で考えてから質問しような。
<head> <SCRIPT language="JavaScript" type="text/JavaScript"> <!-- function wopen1(){ win=window.open("crabanime2.html","new","width=350,height=250"); win.moveTo(100,100); } // --> </SCRIPT> </head> <body> <a href="javascript:wopen1(〜.html)">ボタン</a> </body> この記述でウィンドウ出てこないんですが何がいけないのでしょうか?
ワンクリ詐欺業者乙
>(〜.html) これは何? () に直せ。
新しい窓を開く方法でもっともスマートなのはどんな記述ですか? 出来ればhtmlを汚さない方法でお願いします。
open()
>>515 window.open でどうにかする
「htmlを汚さない方法」とあるけど、HTML/XHTMLの文書型にもよる
俺様のブラウザをポップアップで汚すんですね
519 :
Name_Not_Found :2009/04/30(木) 17:30:15 ID:QXrrTY4/
divにinput内の文字列123をinnerHTMLで書き変えたいのですが書き変えられません どなたかご指摘お願い致します window.onload=function() { document.getElementById("henkou").innerHTML = document.getElementById("text1").value; } <form action="" id="textform"> <input type="text" name="text1" value="123" /> </form> <div id="henkou"></div>
name≠id
>>514 〜.htmlは、その部分に開きたいhtmlファイルを書くのではないのですか?
その部分が()なら開きたいファイルは何処に書いたらよろしいのでしょう?
>>519 window.onloadだとformを読み込む前に実行されるのでは
>開きたいファイルは何処に そんな所に書いても反映されない。window.open()の中 各行の意味とか理解してないで質問してるだろ。 基本的な所は自分で勉強して理解してから、どうしても自力で解決できないことだけ聞くこと
524 :
Name_Not_Found :2009/04/30(木) 17:41:11 ID:QXrrTY4/
>>520 様ありがとうございます
inputにidを付けました
>>522 様ありがとうございます
window.onloadははずしました
頂きましたアドバイスを元に以下のようにしましたが書き換えができません
たいへん恐縮でございますがご指摘お願い致します
document.getElementById("henkou").innerHTML = document.getElementById("text1").value;
<form action="" id="textform">
<input type="text" name="text1" id="text1" value="123" />
</form>
525 :
Name_Not_Found :2009/04/30(木) 17:42:48 ID:QXrrTY4/
</body>の手前に置いたら解決できました これをhead内に入れておきたいのですが どのような手法がございますでしょうか?
>>498 そういうときは ID でなく class で。
なんか適当なアドバイスしてるやつがいるな
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd ">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>テスト</title>
<script type="text/javascript">
window.onload= function(){
document.getElementById("henkou").innerHTML = document.getElementById("text1").value;
}
</script>
</head>
<body>
<form action="" id="textform"><input type="text" name="text1" id="text1" value="123"></form>
<div id="henkou"></div>
</body>
</html>
528 :
519 :2009/04/30(木) 18:04:42 ID:???
>>527 ありがとうございます
そのまま貼り付けましたところ無事書き換えできました
>>530 このサイト見て勉強すれば解るよってサイトあったら教えてください
または、なんてググッタラいいですか?
>なんてググッタラいいですか? もう少し自分で考えろよ。 つ javascript 入門
おれは、どっちかどういうと <a href="hoge.html" onclick="WinOpu(this.href); return false;">リンク</a> が好きだな
うちもそう書くわ
>>533 それだとピンポイントでないよね
例えばロールオーバーのやり方知りたい人にHTML・CSS入門で検索しろと言ってるのと同じ
わからない人はロールオーバーの言葉自体も知らないのだから
ロールオーバーのやり方知りたい人は、ロールオーバーの言葉自体は知ってるんじゃない?
>>537 俺の場合まだ全然知識なかった時はHP作ってく上で他のHP見たり参考にしたり
まあ今でも良くするけど、その時HP見てこの技術はどうやるんだろう?
本の目次見てもその技術の呼び名も知らなかったから検索もそうだし本の何ページ見たらいいのかも
探すのに一苦労だったわw
>>537 因みにロールオーバーの言葉もどんな技術かも知っててここで教えてくれ何て言う奴は論外
ボタンをこんな風にしたいんだけど的な質問には勉強するヒントくらいは与えないと
この掲示板の存在理由自体なくなる
そういう簡単な質問に答えれば過去スレに残るんだから答えればいいんでない?
答えんのもありでしょ ただ、HTMLで検索しろやCSSで検索しろJavaScriptで検索しろはどうかと
"文字列" すらわからないのなら 入門からやった方がいい
「"×× yyy"でググって最初の10件読んだけもどれも自分のやりたいことじゃなかった。どんな用語を足してググればいいか?」とかなら分からなくもないけど。 ググる前から尋ねるようなヤカラであれば、答えないのがよろしかろう。
俺はコレ見て勉強しろよとピンポイントなサイト教えてやるくらいOKかな だってよならこの掲示板の存在理由ってなんなのよ わかんねー奴が質問しに来るとこだろ まっどうでもいいや
545 :
533 :2009/04/30(木) 23:05:18 ID:???
つーか、「javascript 入門」でぐぐって一番上にヒットしたリンク先を 読めば知りたいことが書いてあるんだが。 知ってることは飛ばしていいから、知らないことがあればちゃんと読め。 教えて君だと皆に迷惑がかかる。
教えるの嫌なら来なければ済むこと
ここは質問してもマニュアル君やググレカス君しかいないんだよ 毎日マニュアル〜ググレカス〜を言うために来てる人っているよねww
なんだかんだ言って、決して教え直さない、という肝心な点で足並みが完全にそろってるんだなw
なかよくしましょう
もしかして知らない人相手にググレカスと上から目線を言いに来て 優越感にでも浸りに来てるのかwww
Prototype.jsで <select id="hoge" name="hoge"> <option value="1">huga</option> のhugaを取得するにはどうしたらよいのでしょう。 ご教授願います。
Prototype.js使ってないんだけど想像するに $('hoge').options[0].innerHTML とか?
ご教授は狩られ終わった言葉だw アホっぽくみえるからやめれ
教えて下さい の丁寧語だっけ?
>>554 いちいちその程度の言葉につっかかるお前の方がアホっぽいわ
自分の無知っぷりがいつ露呈して叩かれるかとビクビク。 だかそれを悟られたくないので攻撃的に。 わかります。
×教授 ○教示
次テンプレに「言葉狩りは時間の無駄でスレ違い」とか 入れたい気分。今回もこれだけで7レスも無駄にしてる。 「言葉の指摘等は質問自体に関する応答など意味のあるレスの中に 含める場合のみ許される」とかどう?
マニュアル君の許可を取れればおkだと思います
ご教授下さい君の許可を取得れればおk だと思います
563 :
552 :2009/05/01(金) 12:04:14 ID:???
下手にでてりゃ調子こきやがって 氏ねカスども!
>>555 教えを求める側が言うなら
ご教示〜。
だろうけどね。
566 :
Name_Not_Found :2009/05/01(金) 13:02:20 ID:RNQYjc+g
textをtest関数に渡し、test関数内でstrとして使用できるように書きました このときstrはtest関数内だけ使用できるようにし、returnで返すようにしたいと思ってます strにはvarを付けた方がいいのでしょうか? 下の書き方でやってますが function test(str) { str=str+"22222222"; retrun str; } var text = "こんにちは"; test(text); または function test(var str) { str=str+"22222222"; retrun str; } var text = "こんにちは"; test(text); または function test(str) { var str=str+"22222222"; retrun str; } var text = "こんにちは"; test(text); どれがただしいでしょうか?
宿題は自分でやれお( ^ω^)
>>566 function test(str){
str+="22222222";
return str;
}
test("こんにちは");
alert(str);
これでも実行してみれば?
569 :
Name_Not_Found :2009/05/01(金) 14:18:18 ID:HMCUHm5k
配列に入れた値すべてを正規表現で数字であるかチェックしたいのですが 動作しませんでした どなたかご教示お願い致します var hairetu = new Array(); hairetu = ["123","12e","ewd"]; var kekka = ""; for(i=0;i<hairetu.length;i++) { if(hairetu[i].match("/[0-9]/g")) { kekka += "正規表現です<br>"; }else{ kekka += "正規表現です<br>"; } alert(kekka);
if文の意味がねw 量指定子で検索汁
571 :
Name_Not_Found :2009/05/01(金) 14:40:10 ID:HMCUHm5k
すみません量指定子いれてみました どうしても動作しません var hairetu = new Array(); hairetu = ["123","12e","ewd"]; var kekka = ""; for(i=0;i<hairetu.length;i++) { if(hairetu[i].match("/[0-9]+/g")) { kekka += "正規表現です<br>"; }else{ kekka += "正規表現です<br>"; } alert(kekka);
hairetu = ["123","12e","ewd"]; kekka = /^\d+$/.test(hairetu.join(""))? "ウホッ" : "アッー";
>>571 まずテンプレ読み直してからだな。「動作しません」じゃ言葉足らず。
質問の文章まとめるころには解決する。
エスパーしとくとソースが小汚いのが根本原因な。
配列リテラル代入するなら、new Arrayは不要。if 文の意味がねえ。他
574 :
Name_Not_Found :2009/05/01(金) 15:14:48 ID:SAJnB8r0
すいません書き直しました ifの正偽にかかわらずアラートをだします 12eとewdのときは結果で、123のときは前者の結果とは別のようになるように動作させたいのですが アラート事態がでません var hairetu = ["123","12e","ewd"]; var kekka = ""; for(i=0;i<hairetu.length;i++) { if(hairetu[i].match("/[0-9]+/g")) { kekka += "A<br>"; }else{ kekka += "B<br>"; } alert(kekka);
575 :
569 :2009/05/01(金) 15:15:31 ID:SAJnB8r0
すいませんISDN回線なのでID変わりましたが同じ人です
>match("/[0-9]+/g") 文字列リテラルじゃなくて正規表現リテラルなんだから""要らない。 もし文字列を自動変換させるなら"[0-9]+"とやるはずで /\/[0-9]+\/g/にマッチさせようとしてることになるだろうから全部失敗する。 alertが実行されないのはforが閉じられてないから。
ブラウザ内蔵のでも何でもいいから、デバッガ使った方がいいと思われる。 アラート自体出ないなら、それ以前にエラーがあるって推測できる。 閉じカッコがたりないようだ。
ちゃんと読んでなかった。数字のみのときだけ分岐なら正規表現もおかしい。 /^\d+$/ 「文頭から文末まで隙間無く1個以上の数字がある場合」 gオプションは性質上不要。
お前ら熱すぎて感動しちまったよ!
YUIのライブラリって読み込む順番で動作しなかったりする?
まだサンプルを動かしてみてる程度なんだけど
YUIのasyncRequestが
http://からのURL (他サイト)だと動かない
data/test.txtとか相対パスだと動く
なんでだろう?
583 :
582 :2009/05/01(金) 19:56:53 ID:???
自己解決。 クロスドメインは出来ないらしい
IDでないのであれですが、552です。
>>553 さん
ありがとうございます。試して見ます。
確かにに「ご教授」はおかしいですね、日本語不自由ですみません。
585 :
Name_Not_Found :2009/05/02(土) 12:27:40 ID:G2kx1/BA
配列に代入された値をすべて足したいので以下の2通りのパターンで書きました var h = [1,3,5,7,10]; var sum = h[0]+h[1]+h[2]+h[3]+h[4]; または var sum = 0; for (var i in sum) { sum += i; } 配列の値が不定なので前者のパターンは使いずらいです for inの組み合わせはしっくりきません PHPでいうarray_sumのように簡単に書くことってできませんでしょうか?
>>585 for (var i in sum)は
for(var i in h)の間違いだとして、
後者で何がまずいのかよくわかんないのだけど。
あとは、eachが使えるなら
h.each( function(e){ sum += e} );
とか?
>>585 PHPは似たようなことをするために多数の命令を用意しているが、
他の多くの言語はそんなものを用意しない。
プログラマが自分で作るものと考えているから。
どうしても短縮表記したいのであれば、
そういった機能を詰め込んだライブラリを自分で作るか、どこぞで探すかすること。
そこで俺の出番ってことか
589 :
Name_Not_Found :2009/05/02(土) 13:10:48 ID:VMuiK2Go
以下のような書き方で動きません !というのは使えないのでしょうか? // vの中身はユーザーが入力した値です if(!isNaN(v)) { alert("falseでした"); }
>>585 javascriptは比較的コンパクトな言語で、最低限に近い関数しか持ってないから
簡単に書きたいなら簡単に書けるようにするかライブラリを使う。
rubyあたりをどっぷりやったあとに素のjsやろうとすると
こんなのも一発で書けないのかと思ってしまう時があるw
function array_sum(ary) { var sum = 0; for (var i in ary) { sum += ary[i]; } return sum; }
PHPは知らないけどたとえばこんなのを用意するとか
eachを定義してくれるprototype.jsやjQueryを使うとか。
isNaNていまいち使いどころがわからんよね
>>592 例えば在庫の数が書いてあるテキストを動的に読み込んだとき、
JavaScriptで数字に変換して何らかの処理をしたいとする。
そのとき、もしそのテキストに文字列が書かれていた場合、
parseFloat の戻り値を isNaN で調べることで判別できるから、
文字列だった場合 0 に強制変換したりもできる。
>>592 >>591 リンク先の
>x == NaN と x === NaN は、常に false です。
>x が何であるかに関わらず、 たとえ x が NaN であっても、です。
この仕様のせい。
form由来等の文字列をparseInt等でNumberに変換できたかどうかと
(基数の指定が要らない場合に)変換できるかどうかの事前チェックに使える。
普段手抜きしてしまうけど、非数をisNaN使ってデフォルト値に補正してやらないと
たいてい計算結果がundefinedになる。
>>585 Array.prototype.reduce
PHPの関数の多さは異常、覚えきれない
バカだろ?全部覚える必要はない 必要なものだけ覚えろks
Javaの全クラスのメソッドの多さのほうがもっと異常 継承してるから入り組んでるし だがそんなのすべて覚えてるやつはいない
JS 1.6のforEachではなくライブラリ拡張のeachとか言ってる奴は どんだけ遠回りしてんだとは思う それともJS 1.5まで覚えとけばいいのか?
保険的な意味合いで1.5(ECMA-262)で説明してる。 1.6ってどのぐらい普及してるもん?
Array拡張ならOperaもWebkitも実装済(ジェネリックなのは除外) IE用ならMDCにコードが載っている ECMAScript 3.1にも入っている わざわざeachを使うのはフレームワーク内に引き蘢るときくらい
>IE用ならMDCにコードが載っている それじゃライブラリ使うのと変わらんわw
そう、変わらないから仕様化されている方を使うという話
PrototypeのeachとjQueryのeachは別物だしな。
そういうことか。まあクロスブラウザの話を説明に持ち込みたくなかったから 同じライブラリ読み込ませれば環境問わず使える方を選んだだけのこと。
それは分かってるが、同じライブラリってのはMDCでも同じことだ そこで非標準形を持ってくる所が何だかなあと思っただけ まぁどうでもいいさ
607 :
Name_Not_Found :2009/05/03(日) 16:30:00 ID:rBpJ7Gz5
指定範囲をIDで囲んで、チェックボックスをクリックしたときに、IDで囲んだ範囲を表示しないようにしたいのですが、良い方法があったら教えてください。
onchangeのときにチェックボックスの状態を見て idの要素のstyle.displayをnoneにしたりblock等にしたり。
609 :
Name_Not_Found :2009/05/03(日) 17:29:51 ID:rBpJ7Gz5
>>608 途中まで書いてみました。
function text() {
if(document.form.check.checked == true) {
}
else {
}
}
<form name="form">
<input rype="checkbox" name="check" onChange="text()" />
</form>
あとは、#timeのスタイルにdisplay: none;とdisplay: block;(元に戻す)適用させたいのですが、方法がわかりません。
よければ教えてください。
610 :
神様見習い :2009/05/03(日) 17:45:05 ID:J7l6Dgar
難題に遭遇中。。。ふぅぅ。。。
>>609 あれで十分なヒントのはずなんだけどなw
「javascript style display」でググってごらん。
612 :
Name_Not_Found :2009/05/03(日) 18:06:14 ID:dugR32mY
>>609 「getElementById」 もヒント。
それから、 XHTMLで書くのなら、 属性名はすべて小文字で書きましょう。
×onChange
○onchange
613 :
Name_Not_Found :2009/05/03(日) 18:37:20 ID:rBpJ7Gz5
なんか余計に面倒な方法を選んだように見えるんだが
な、ぐぐってもろくなことないだろ
あれー、一番目にそのまんまなコードがあったはずなのに・・・orz
ポイント時に画像を切りかえたいのですが、「あいうえお」の部分コメントでなく写真にしたいのですが 出来ますでしょうか? 「あいうえお」を写真に変えてその写真にマウスを持っていった時に上にはその写真の拡大写真にしたいのです □にマウスを当てた時に上の写真が切り替わるようにしたいのですが ■ ←大きい写真--- |------同じ写真だがサイズが違う □ ←小さい写真--- <p><img src="image/写真.jpg" alt="写真" name="def"></p> <p> <a href="change3.html" onMouseOver="On('img1')" onMouseOut="Off()">あいうえお</a> | <a href="change3.html" onMouseOver="On('img2')" onMouseOut="Off()">かきくけこ</a> | <a href="change3.html" onMouseOver="On('img3')" onMouseOut="Off()">さしすせそ</a> </p>
ズレたので書き直します ■ ←大きい写真--- .................................................|---同じ写真だがサイズが違う □ ←小さい写真---
>>620 HTMLの話なんだけど、もしそれすらわからないならスレ違い
>>621 HTMLですか?
<img src="image/〜.jpg" />でしょうか、それでは出来ませんでした。
普通に画像に置き換えりゃいいじゃん <a href="change3.html" onMouseOver="On('img1')" onMouseOut="Off()"><img src="image/〜.jpg" /></a>
>>623 その方法でダメだったので質問しに来たのです。
これがヘッドの中です。 <script type="text/javascript"> <!-- if (document.images) { // 設定開始(使用する画像を設定してください) // 通常の画像 var img0 = new Image(); img0.src = "image/start.jpg"; // ポイント時の画像1 var img1 = new Image(); img1.src = "image/newyork.jpg"; // ポイント時の画像2 var img2 = new Image(); img2.src = "image/london.jpg"; // ポイント時の画像3 var img3 = new Image(); img3.src = "image/yokohama.jpg"; // 設定終了 } これと
// ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> </script> 626とこれがヘッドの中です。
これがボディーの中です。参考サイト
http://www.tagindex.com/javascript/link/change3.html <body>
<p><img src="image/start.jpg" alt="start" name="def"></p>
<p>
<a href="change3.html" onMouseOver="On('img1')" onMouseOut="Off()">NEW YORK</a>
|
<a href="change3.html" onMouseOver="On('img2')" onMouseOut="Off()">LONDON</a>
|
<a href="change3.html" onMouseOver="On('img3')" onMouseOut="Off()">YOKOHAMA</a>
</p>
</body>
それリンク先のコピペにしか見えないんだけど・・・
>>624 の「その方法でダメだった」ときのソースをうpしてくれ
>>629 おおむねリンク先のコピーです、試した時に変えたのは写真だけです。
ヘッドの中に書いたソースは上記の通りで(試した時は写真は変えましたけど)
<a href="change3.html" onMouseOver="On('img1')" onMouseOut="Off()">NEW YORK</a>
これのNEW YORKの部分を<img src="image/〜.jpg" />に変えて
<a href="change3.html" onMouseOver="On('img1')" onMouseOut="Off()"><img src="image/〜.jpg" /></a>
で試したら出来ませんでした。「〜」はもちろん写真のファイル名です。
>>624 のやり方でできたから言ってるんだよ
もう一度やってみてそれでも上手くいかないなら
「ダメ」「出来ない」じゃなくて「どうなったか」の説明を添えつつ
そのコードを張って
<script type="text/javascript"> <!-- if (document.images) { // 設定開始(使用する画像を設定してください) // 通常の画像 var img0 = new Image(); img0.src = "image/〜スタート.jpg"; // ポイント時の画像1 var img1 = new Image(); img1.src = "image/〜1.jpg"; // ポイント時の画像2 var img2 = new Image(); img2.src = "image/〜2.jpg"; // ポイント時の画像3 var img3 = new Image(); img3.src = "image/〜3.jpg"; // 設定終了 }
// ポイント時の処理 function On(name) { if (document.images) { document.images['def'].src = eval(name + '.src'); } } // 放した時の処理 function Off() { if (document.images) { document.images['def'].src = img0.src; } } // --> </script>
しかしまた古臭いコードだな
<div id="mainContents_photo"> <div class="photo_box1"> <div class="phto_b_box"> <p><img src="image/〜1.jpg" alt="start" name="def"></p> </div> </div> <div class="photo_box2"> <p> <a href="change3.html" onMouseOver="On('img1')" onMouseOut="Off()"><img src="image/〜1.jpg"></a> | <a href="change3.html" onMouseOver="On('img2')" onMouseOut="Off()"><img src="image/〜2.jpg"></a> | <a href="change3.html" onMouseOver="On('img3')" onMouseOut="Off()"><img src="image/〜3.jpg"></a> </p> </div> </div> あ、出来ました、タイポでした、タイポ・・・orz コレ書いててタイポに気づきました・・・orz はぁ疲れた。 お手数掛けました。ありがとうございました。
告白デバッグだな、説明で手抜きするからそうなるんだw
なんにせよお疲れ
>>635 evalとかうずうずしてたけど、動くからいいんじゃね?w
>>637 古いって書いたソースは非推奨ですか?
新しいやり方の参考になるサイトあれば頂きたいのですが
主要ブラウザで動くんなら意味も無く書き換える事も無いよ。
古いのを考慮してもセンスがない
<!--(笑) new Image(); (笑) document.images(笑) eval(笑) // -->(笑)
このぐらい自分で書いてしまうからそういうサイトは知らない。 良いものとは思わないけど別に悪いものでもないだろうし ぶっちゃけると代替案を提示するのがめんどくさかったからスルーした。 JSを学ぼうとしてる人が、学習過程はともかく成果として 今時こんなコード書いたら恥ずかしいとは思う。でもそれはまた別の話。
JavaScriptにコメントセクション付けちゃうおとこのひとって…
ES4って死亡したらしいけど定期的に出没してた「JSは終了ASやれよ」って人は これを踏まえた自爆ネタだったの?
JScript.NETがある限り死亡することはない 第二のJavaになろうとしてJavaと同じ末路を辿った
JScript(失笑)
モダン(笑)なJavaScript
new Image()ってダメなの? むしろ律儀に思えるくらいなんだが
今も同じようにやってるんか知らんが、Googleがクリックされたリンク情報送信するのに new Imageってやってるの見て、へーって思った。 気持ち悪いことしてるなぁとも思ったが。
確かにそういう使い方はイヤかも。
画像の先読みにはnew Image()するのが一番スマートなんじゃね? あとdocument.imagesだってDOM level 0だしdocument.getElementsByTagNames('img')ってやるより高速そうだ
document.imagesについては、ソース見る限り配列で取得する必要ないんだからgetElementById使えよってことじゃないかな。
DOMはcreateXXXを使うAbstract Factoryでnewを見せないようにしていた しかし、WebIDLのinterfaceにNamedConstructor属性が導入されたし new XMLHttpRequestとかnew Audioみたいなのは今後増えるんだろう
innerHTMLに代入するのってやってることとしてはevalっぽいのに evalと違ってcreateXXXとかappendChildとかするよりも高速なのな
そりゃブラウザにとって他の何よりHTMLパーザが一番作り込まれてるしな
656 :
Name_Not_Found :2009/05/04(月) 22:32:39 ID:C/uxkEMv
Javascriptでサンドボックス作ろうとしましたがうまくいかず・・・ どうにかならないものか sandbox = {window: null, document:{getElementById:function(a){return document.getElementById(a)}}, __proto__:null, __parent__:null, (ry }; with(sandbox){ // 誰の書いたか分からないコード document.getElementById('hoge') // 以下は安全 document.cookie //==null // セッションIDがとられて困るorz document.__parent__.document.cookie }
__parent__とかwindow.documentとか変更できないからなぁ・・・無理じゃない?
Firefox3.5でのJSONネイティブサポートがどのくらい高速化するのか気になるね。 Forefox3.0.xでのJSONストリングからJSONオブジェクトへのevalはかなり低速だから。
Firefoxは3.5でTraceMonkeyが搭載されてJavaScript自体の動作がかなり高速になるから期待
660 :
Name_Not_Found :2009/05/05(火) 10:31:00 ID:7vHWm2aT
Google AJAX Feed APIを使って日付を表示させると「2009年5月5日」になるんですが 「(2009/05/05)」と表示させたいと思っています。 やり方教えてください。
帰ってくれるかな
>>660 API自体はそうはならないようだけど。
どっかのコードをコピペしただけだろうからURLうp
663 :
660 :2009/05/05(火) 20:48:53 ID:???
様々なサイトを参考にさせていただき、下記のコードを使っています。 お願いします。 <script type="text/javascript"> google.load("feeds", "1"); function initialize() { var feed = new google.feeds.Feed("○○○"); feed.setNumEntries(10); feed.load(function(result) { if (!result.error) { var container = document.getElementById("feed1"); for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; var dd = new Date(entry.publishedDate); // now var yearNum = dd.getYear(); if (yearNum < 2000) yearNum += 1900; var date = yearNum + "年"+(dd.getMonth()+1)+"月"+dd.getDate()+"日 "; container.innerHTML += " " + date +"<a href='" + entry.link + "' title='" + entry.title.substr(0,40) + "'>" + entry.title.substr(0,40) + "</a>" + "<br>"; } } }); } google.setOnLoadCallback(initialize); </script>
>>663 一、JavaScriptはJavaとは別物であると知っている者
一、自ら学んでJavaScriptコードを書く意思を持つ者
一、ユーザに迷惑となるスクリプトを書かない者
一、質問を分かる日本語できちんと説明できる者
一、トラブルを再現する最小限のサンプルを貼れる者
一、テンプレ+FAQ
>>2-10 /過去ログ/関連資料を読める者
えー、toLocaleDateStringが潜んでるんだろとエスパーしてたのに
そこまであからさまな処理かよw
>>663 初歩中の初歩だから自分でやって。もしくは宿題スレへ。
>>663 - var date = yearNum + "年"+(dd.getMonth()+1)+"月"+dd.getDate()+"日 ";
+ var date = yearNum + "/0"+(dd.getMonth()+1)+"/0"+dd.getDate()+"/";
ミスった。こうな。 + var date = yearNum + "/0"+(dd.getMonth()+1)+"/0"+dd.getDate();
斬新な表示だな
その0は何なんだ
テーブルをソートするライブラリならそこらに落ちてると思うが どこにぶら下げるかだけならさして難しくないだろう
>>667 2009/05/05だから0つけてみたんだろうがそれだと2009/010/010とかむちゃくちゃな表示になるよね頭悪いの?
>>670 今現在、世の中で一般的に「JavaScript」と呼ばれている
プログラミング言語はHTMLの操作が得意だし、
お前が作った程度のことは簡単にできる。
つまり、お前の頭の中にある「JavaScript」というラベルを
お前が勝手につけた、たぶんプログラミング言語っぽいだろう何かは、
この世に存在するどんな言語とも全く違うシロモノだってことだ。
1日ごとに背景色を変更させたいのですが JAVAスクリプトで出来ますでしょうか? (1日おきに青→赤→青→赤→…) どうしても31日ある月のところで躓きます 31日と1日が同じ背景色になってしまいます 30日の月なら簡単に出来るのですが
>>670 IEで見ると文字化けしてレイアウトも変
初歩的な質問増えたね
>>674 day値/2の余りで処理しようとするからうまくいかない
month値や年単位でのday値を使う様にするとうまくいく
>>674 getSeconds() を 24*60*60 で割って int にキャストして % 2 すればいけそうな気がする
素直に曜日で分けたら?
>>674 var d = new Date();
var bg = (Math.floor(d.getTime()/86400)%2)==1 ? "red" : "blue";
document.getElementsByTagName("body")[0].style.backgroundColor = bg;
これでどう?
ああすまん getSeconds() は 0-59 だった getTime() を 24*60*60*1000 で割って int にキャストして % 2 すればいけそうな気がする
>>676-681 ありがとうございます
試してみます
曜日で分けると7日なので絶対に連続して同じ色に
なる日があるんです…
あ、1日ごとに交互に変わるのね。勘違いしてたごめん
jsでintにキャストっていうと変な感じだな
端数切り捨てって言えばいいのに回りくどい
>>682 の質問をした者なのですが
31日と1日では同じ色になってしまわないでしょうか?
勘違いしていたらすいません
>>686 起算日からの通算日数で処理しろってこと
>>688 ありがとうございます
ようやく理解できました
お手数をおかけしました
690 :
660 :2009/05/06(水) 03:52:53 ID:???
すいません 自力で頑張ってみます
ソース内に「あいうえお」と言う文字があった場合 「かきくけこ」と置き換えるにはどうすればよいでしょうか?
正規表現でぐぐれ
「あいうえお」を「かきくけこ」に置換するのに正規表現使うバカがいるのか。 それとも一度上から目線で「ぐぐれ」と言ってみたかっただけなのかな。
でも、全ての「あいうえお」を置換するとなると、正規表現の形にしないといけないんだよな。
697 :
Name_Not_Found :2009/05/06(水) 21:21:03 ID:ndKc0jCH
>>696 それはよく嵌った
ところで、サンドボックスはやっぱ無理?
698 :
697 :2009/05/06(水) 21:24:45 ID:???
sage忘れた。ごめん。
JSからアプローチしてる限りReadOnly属性の壁は厚い。 別ドメインにしたら?
hash = {"hoge":0 , "bar":1 , "baa":2 , "foo":3} というハッシュがあって、これをキー順にソートして [["baa", 2], ["bar", 1], ["foo", 3], ["hoge", 0]] という配列にしたいです。ここで、 var ary=[]; for(var key in hash){ ary.push([key, hash[key]]); } ary.sort(function(a, b){return a[0]>b[0];}); と書いたのですが、ソート部がFirefoxでしか正しく動かないようです。 クロスブラウザでこれをする方法ありませんか?
>>700 比較関数の返値はboolじゃなくて整数
>>700 function(a, b) { return (a[0] > b[0]) ? 1: -1; }
かな。
そのままでもウチの環境だと上手くいったけど。
ググったらbool返してるサンプルもあったのでいいかと思ったんですけど。 a[0] > b[0] ? 1 : -1; なら動きました。すいません。
ちなみに動かなかったのはIE6とOpera9でした。
ExtJS勉強中なのですが、詳しい方アドバイスをお願いします。 Panelの中身をautoLoadで読み込んだ場合、 そのページ内ではJavaScriptが動作しないようなのですが、 これを回避する方法はないでしょうか?
707 :
705 :2009/05/08(金) 00:00:58 ID:???
画像を順番にスライドショーさせてるのですが、 IEの7を使ってみると、画像の中に白いドットが入ったりします。 ほかのブラウザでは問題ありません。 またすべての画像に入るわけではなく、入るものと入らないものとがあります。 Smooth SlideShow Libraryというものを利用しています。
ID出せばいいのに
712 :
Name_Not_Found :2009/05/08(金) 21:33:51 ID:kX0L1WbJ
RegExpについての質問です。 以下のコードで前者ではマッチするのですが、後者ではマッチしません。 両者にはどんな違いがあるのでしょうか... アドバイスよろしくお願いします。 var txt = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"; var a = "MSIE"; alert(txt.match(/MSIE\s*[0-9]+/)); //マッチする alert(txt.match(new RegExp(a+"\s*[0-9]+"))); //マッチしない
>>712 alert("\s")すればわかると思う。
・・・わからないかもしれない。 Stringオブジェクト生成時に\が解釈されて消えるから RegExpオブジェクト生成時にはただのsになって渡される。 だからRegExpに\sを渡したいなら"\\s"とするのが正しい。
715 :
712 :2009/05/08(金) 21:44:11 ID:kX0L1WbJ
Javascript文において、或るタグ要素に対して設定したイベントは、その要素内にある別の要素に対しても同様に効果を発揮する。例えば、或るブロックの親要素に設定したonmouseoutは、それに内包される子・孫要素においても効果を発揮してしまう。 親要素からmouseoutするその時だけ発生して欲しいイベントが、任意の子孫要素からmouseoutした場合にもまた発生してしまうのだ。 これは支障を生じる場合が多い。mouseoutで隠蔽し、mouseoverで表示するような組み合わせのイベントを設定した場合には、子孫要素間をマウスが移動する度に、mouseoutとmouseoverが繰返し発生してしまう ので、親要素共々画面が「ちらついて」しまうのだ。 すみません上記の問題はどうすれば解決できますでしょうか? 宜しくお願いします
>>717 windowのイベントハンドラだけ使って、関数内で分岐処理する。
window.onclick = function(e) { alert(e.target.tagName); } 手抜きだからIEじゃ動かないけど、少し複雑なHTMLにこれ足していろいろクリックしてごらん。
>>720 ありがとうございます
また勉強しなおしてがんばります
722 :
Name_Not_Found :2009/05/09(土) 01:20:36 ID:U6c99JmA
お世話になります。 IE6を使用してwindow.openを行ったときにブラウザの右上にある 「最小化」「最大化」「閉じる」ボタンを非表示または非活性に したいのですが、どのように書いたらよいか解りません。 教えてください。
>>722 showModelessDialogでそれっぽいことは出来るけど
閉じるボタンについてはセキュリティ的に無理なはず
724 :
Name_Not_Found :2009/05/09(土) 01:51:52 ID:U6c99JmA
>>723 ありがとうございます。
確認してみます。
Google AJAX Feed APIのサンプルを動作させてみたんですが(サインアップ後に表示される短いサンプルです)、 指定したRSSのすべてのエントリが表示されないのは仕様なんですかね? 試された方いらっしゃいます?
726 :
Name_Not_Found :2009/05/09(土) 12:33:01 ID:BBAdXFHt
変数名を動的に指定したいのですが、どのようにすればよいのでしょうか? イメージとしては↓みたいなかんじなのですが・・・ (hoge+連番という変数を作る) var hoge + i = 'fuga'; よろしくお願いします。
hoge[i]
>>727 それでhoge1とかhoge2とかにはならないよね。配列を使った
方がよいだろうというアドバイスならそう書かないと。
eval("var hoge"+i+"='fuga';");
>>731 ドロップ先がわかっているなら、座標計算しといて、
ドラッグし始めた瞬間に透明度100%のレイヤーを画面全体に張る方法はどうか?
>>732 ありがとうございます
しかしそれだとプルダウンメニューみたいな時とかには応用
できないし何か喉に骨がつまった感じです
Firefoxがoumouseleaveを実装してくれるまでの間の対策
として我慢すればいいのですが…
oumouseleaveなんて初めて聞いたわ
>>717 質問の意図とあってるか、若干不安だけど、自分はこんなん作って、イベントハンドラからeventとthisもらって処理してる。
function isMouseLeave(event, element) {
var element2 = event.relatedTarget || event.toElement;
if (isChildElementOf(element2, element.id)) {return false;}
return true;
}
function isChildElementOf(element, containerId) {
while(element) {
if (element.id == containerId) { return true; }
element = getParentElementOf(element);
}
return false;
}
function getParentElementOf(element, targetTag) {
return (element.parentElement? element.parentElement: element.parentNode);
}
>>735 訂正
>function getParentElementOf(element, targetTag) {
targetTagは無視して。ソースの切り出しミス。
>>735 ありがとうございます!
一番問題になるのはプルダウンメニューを作ったときに
子要素になるリスト(項目)を選択するたびにいったん消えて
また現るのでちらつくような現象になることなんです
いろいろとonmouseoutが子要素にも及ぼさないよう回避する策は
あるようなんですがどれもけっこうな量の記述をしないと
いけないのでそれだとフラッシュとかとあまり変わらないし
ライブラリを素直に使ったほうがいいのかなあとも思って…
IE7以降だとli:hoverが使えるので全然問題ないんですが
IE6では使えないし、FFだとonmouseleaveが使えないし…
つーかそういう車輪の再発明なら、ライブラリのコードに答えが載ってるだろw
>>737 子要素を「HTML的に」親要素の内側に置いてないでしょ。
洩れ昔それで悩んだよ。
>>739 いや、子要素にカーソル移すだけで、親に対してmouseoutは発生したはず。
>>737 うろ覚えで済まないが、documentのmouseoverで解決出来なかったかな
ASとごっちゃになってるかもだから
違ったら華麗に叩いてください。
ああ、ごめん…そこらへんちゃんと読んでなかった 華麗にありがとう
理解が足りんのかも知れんが、これってイベントが発生するタイミングの問題でしょ?
>>720 は捕まえ方の話じゃないの?関係ないと思うんだけど。
下記URLにあるじゃんwwwwwwwwwwwww なんだおまえwwwwww
747 :
745 :2009/05/09(土) 20:51:28 ID:???
>>746 アホですか?
自己解決したのでもういいですw
mouseleave/mouseenter まわりなら jQuery 界隈でコードいろいろ出てた気がする 調べてみれ
イベントデリゲーションはアホ外人がうんたらかんたら
199+4 :名無しさん@お腹いっぱい。 [sage] :2009/05/09(土) 11:05:39
なぁなぁ、感染してるっぽいサイトをGoogleで検索しただけでavast先生が警告するんだが
これってどうなってるの?
ひょっとして対策してなかったらググっただけで即感染するのか?
例)「村民」で検索したら一番最初に出てくる村民バスのうんたら〜ってサイトが感染してる
らしくavast先生が反応する。
※当然だけど試すなら対策してからやってくれ
--------------------------------------------------------
209+2 :名無しさん@お腹いっぱい。 [sage] :2009/05/09(土) 16:27:43
感染するかは分からないけど、先読み無効に出来るみたい。
ttp://www.google.com/help/features.html リンク先読み機能 - プリフェッチ
一部の Google 検索については、ユーザーがクリックする前に最上位の検索結果のダウンロードを開始しています。
そのため、最上位の結果をクリックすると、リンク先ページが高速で読み込まれます。
この特殊なプリフェッチ機能は Firefox および Mozilla ウェブ ブラウザだけで、Internet Explorer などの他のブラウザではご利用いただけません。
Mozilla のプリフェッチ FAQ に記載されているとおり、プリフェッチ機能はウェブ ブラウザの設定で無効にできます。
Firefox でプリフェッチを無効ににする方法:
アドレス バーに「about:config」と入力します。
「network.prefetch-next」の設定まで下にスクロールし、値を「False」に設定します
だからなに
Firefoxなら攻撃サイトは自動でブロックされるから何も問題ない
mouseleave/mouseenter で質問していた者ですが 結局jQueryでhoverを使うことにしました すいませんでした
こんにちは。あたしはカウガール。 AAとして成り上がるため、スレを巡る旅をしています。 __ ヽ|__|ノ モォ ||‘‐‘||レ _)_, ―‐ 、 /(Y (ヽ_ /・ ヽ  ̄ヽ ∠_ゝ ` ^ヽ ノ.::::::__( ノヽ _/ヽ /ヽ ̄ ̄/ヽ
757 :
Name_Not_Found :2009/05/11(月) 00:27:48 ID:6bn3r32r
>>726 this["hoge" + i] = "hoge";
759 :
Name_Not_Found :2009/05/11(月) 11:21:26 ID:0f2GFA1E
質問します。教科書で習ったときにはdocument.open()とclose()は必ず入れ ることとありました。自分は正直に守っているのですが、だれも書いていな いようなのです。教科書は正しいんですか。最近疑問に感じ始めました。 よろしくお願いします。
openとかcloseって何?
document.openが書いてある教科書が何なのか純粋に興味がある 古い本なのかな
763 :
Name_Not_Found :2009/05/11(月) 12:17:55 ID:YSt4Nmes
ソースをみせずにJavascriptを機能させたいのですが。 できますか?
できますん
>>763 マジレスすると
javascriptのソースをクライアントがダウンロードしてそれを実行する形だから100%見られる
暗号化するなりすればおk
ま、暗号化したコードも見せない方法もあるが、それでメシ食ってるので教えはしない(知識ある人にはばれますが)
>>763 画像の右クリック禁止とどっこいの発想じゃないですか。
元ソースがある限り結局はあぶり出せます。逆に意欲を誘発
させること必至だしそんあコードって大したことない場合
が多いんじゃないでしょうか。
document.writeで出力してるだけのページで右クリ禁止の自称ハッカーのUGサイト(笑)
シンボル情報を全部スクランブルすれば、十分だと思うけどね。 ただ、変数名とかに動的にアクセスしたりしてると上手くいかんが。
javascript書くときの エディターって何使うんだ? ec;ipseみたいに 自動補完してほしいんだけど?
>>769 マジレスすると補完キーワードなんて大した数ないんだから
テキストエディタに登録すればおk
document.writeln って、意味なくない? <br>を出力しないと、改行しないよね?
無いっちゃ無いが html を出力するとは限らんよね
プリフォーマット済みテキストを出力する時に使える
>>769 Emacs+js2-mode オススメ
先日ふと、マンコの数が気になったので数えてみることにした。 1マンコ2マンコ3マンコと私は順調にマンコを数えていった。 そしてそれがある数に達したとき突然異変は起こった。 それは、9997マンコ…9998マンコ…9999マンコ…と数えた後である。 9999マンコのあと、次の数を数えようとしたところ、なんと1マンコに戻ってしまったではないか! 不思議に思い、また最初から数えなおしたのだがまたしても9999マンコの次で最初に戻ってしまった。 その後数回繰り返し実験してみたが、結果は同様であった。 試しにチンポを1から数えてみたところ、そのような現象は起こらなかった。 この発見を次の学会で発表するつもりである。
>>773 var i = 10, j = 100;
<pre><script type="text/javascript">
document.write("i = ");
documwnt.writeln(i);
document.write("j = ");
document.writeln(j);
</script></pre>
779 :
Name_Not_Found :2009/05/12(火) 10:18:42 ID:md97Jvpu
FireFoxでdocument.readyStateの使い方が良くわかりません。 <html><body> <script type="text/javascript"> document.write("readyState:"+document.readyState); </script> </body></html> っていうhtmlファイルを作ってFireFoxで表示させると readyState:undefined になってしまいます。 FireFoxではdocument.readyStateを使えないのでしょうか? ちなみにFireFoxのバージョンは Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 です。
山田と入力すると 別のフォームに平仮名で やまだ と表示させたいのですが どうすればいいですか?
>>780 すべての名字に対応する読みがなを予め持たせるということでいい?
読みがながなければ表示もされないということで。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
<script type="text/javascript">
var i0, i1, tbl = {}, a = ['山田','やまだ','山田内','やまだうち'];
function init() {
for(var i = 0; i < a.length; i += 2) tbl[a[i]] = a[i+1];
i0 = document.getElementById('i0'); i1 = document.getElementById('i1');
setInterval(chg, 300);
}
function chg() {
var s = tbl[i0.value]; if(s) i1.value = s; else i1.value = '';
}
</script>
</head><body onload="init()">
<div><form action="#" onsubmit="return false">
<input id="i0" type="text"><input id="i1" type="text">
</form></div></body></html>
>>781 質問者が書いた山田は一例に過ぎないと思うよ
ローマ字の対応表を配列で持っておいて Keyupのイベントを受けて反映していく…って感じ?
786 :
780 :2009/05/12(火) 16:34:11 ID:???
>>781 遅くなってすいません
サンプルコード作っていただきありがとうございます。
じっくり読んできます
>>786 <head>
<script type="text/javascript">
var characterData = [];
var characterIndex = 0;
window.onload = function(){
var intr;
document.getElementsByTagName("input")[0].onfocus = function(){intr = setInterval("getKana();",10);};
document.getElementsByTagName("input")[0].onblur = function(){clearInterval(intr);};
}
function getKana(){
var echoElement = document.getElementsByTagName("span");
var getHiragana = document.getElementsByTagName("input")[0].value;
if(getHiragana){
(/^[あ-ん]+$/.test(getHiragana)==true)&&(getHiragana!=characterData[(characterData.length-1)]) ? characterData.push(getHiragana) : "";
echoElement[0].childNodes[0].nodeValue = getHiragana;
echoElement[1].childNodes[0].nodeValue = characterData[(characterData.length-1)];
}
}
</script>
</head>
<body>
<input type="text" value="ここに入力" />
<span>変換後の漢字</span><span>ひらがな</span>
</body>
気になったので作ってみた。
思いつきで作ったのでひらがな以外が入力されてることを想定していないから 記号とか含んでいると正しく表示されないので注意
今日は良いコードをみることができた。 なんか嬉しい。
配列にしてるけど使うのは1つだけだから配列じゃなくても良いかな
や、これはちょっと目から鱗だった。
【質問】 アルファベットの連番を作るのに簡単な記述法ってありますか? PHPだとこういうの $value = 'aaaa'; $value++;
str = [a..z];
参考にしてください for ($i=97;$i<=122;$i++){ for ($ii=97;$ii<=122;$ii++){ for ($iii=97;$iii<=122;$iii++){ for ($iiii=97;$iiii<=122;$iiii++){ for ($iiiii=97;$iiiii<=122;$iiiii++){ echo chr($i). chr($ii). chr($iii). chr($iiii). chr($iiiii). "\n"; } } } } }
chrがスペシャルヒントです 3行かかりますがjavascriptでできます
<script type="text/javascript"> var c = ""; for(i=10;i<36;i++){ c = i.toString(36); } alert(c); </script> こんなのでいい?
<script type="text/javascript"> var c = ""; for(i=10;i<36;i++){ c += i.toString(36); } alert(c); </script> ごめんこうだ
i をvarで宣言しないのが気持ち悪い
変換操作中でもリアルタイムに文字列取れるってのはおもしろいな
ただ確定一回で済ませてくれればいいけど
姓名で二度確定させるようなケース考えると
前回の状態と比較させながらじゃないとダメそうだ
>>800 function外ならvar書いても書かなくても変わらない
>>785 ほんとだ... orz
みんなどうやってるんだろう...
拙い質問で恐縮なんですが 以前、色々とアドバイスを貰いながら ウェブサイト用のプルダウンメニューをなんとか仕上げたことがあります それはhtmlで言う_blank、新しいウィンドウでリンクを開く挙動になってます ただ、最近のタブブラウザだと挙動がまちまちで具合が悪いので これを同一のウィンドウで開く挙動に変更したいと思っています 添削、或いは教示を頂けないでしょうか 現在のコードは以下の様になっています
<!--
function newLocationWindow(uri) {
if (uri)
window.open(uri, 'link','toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes');
}
//-->
<form name="hogehoge" id="hogehoge" action="action">
<select name="menu" tabindex="5" onchange="newLocationWindow(this.value)" style="width:400px;">
<option value="" selected="selected">リンク</option>
<option value="
http://headlines.yahoo.co.jp/hl ">Yahoo!ニュース</option>
<option value="
http://news.google.co.jp/nwshp?ned=jp ">Google ニュース</option>
</select>
</form>
if (uri) location.href = uri;
if(uri) document.write("<丶`∀´>");
813 :
Name_Not_Found :2009/05/13(水) 14:32:04 ID:PW3/kn2w
テーブル内に文字列だけの列と数字だけの列が入り混じってます これをjavascriptで文字列の場合は左寄せ、数字の場合は右寄せにすることはできますか? colgroupにcssでtext-alignを使ってもIEにしか使えず(IEのバグらしいですが)、javascriptで代用できる方法をどなたかご教示お願い致します <table> <tr><td>id</td><td>name</td><td>age</td></tr> <tr><td>1</td><td>田中</td><td>17</td></tr> <tr><td>2</td><td>山田</td><td>40</td></tr> <tr><td>3</td><td>木下</td><td>60</td></tr> </table>
やっぱ、とほほが便利
>>813 その列のtypeは決まってるの?childNodeの順番とかで。
>>812 >(とほほは間違いが多いため
(とほほは古い内容が多いためこのスレでは批判的意見が多い)
ついでだから角が立ちにくくしておかない?
>>810 FireFoxのアドオンの開発やってます。
アドオンを起動すると新しい画面を開いて、(例えば)グーグルのトップを表示させます。(ここまではできる。)
で、グーグルのトップページの読込みが完了したらalertを表示させて、読込みが完了するまでにかかった時間を表示させる。
ということをやりたいんです。
そこで、新しい画面でページの読込みが完了したことをreadyStateで確認しようと思った次第です。
>>817 Firebugじゃダメ?そのまま使うなりヒントにするなり。
まあたぶんnsIWebProgressListener使ってonStateChangeのときに
aStateFlagsにSTATE_STOPとSTATE_IS_DOCUMENTが立っているかを
見ればよさそうなんだけど、斜め読みすぎて自信はない。
819 :
Name_Not_Found :2009/05/14(木) 00:00:57 ID:4Wcj33ci
http://chaichan.web.infoseek.co.jp/qa3500/qa3623.htm にあるように、
framesetのhiddenのvalueを読み込みたいのですが、
最近のブラウザでは無理な話ですか?
#最近と言っても確認に使ったのは、FireFox 2.0ですが。
-- index.html --
<html>
<head>
</head>
<FORM name=f>
<INPUT TYPE="hidden" NAME="username" VALUE="abcde">
<INPUT TYPE="hidden" NAME="password" VALUE="fghij">
</FORM>
<FRAMESET ROWS="100%,*" >
<FRAME SRC="a.html" NAME="a">
<FRAME SRC="b.html" NAME="b">
</FRAMESET>
</html>
-- a.html --
<html>
<head>
</head>
<body onload="alert(top.document.f.username.value)">
hoge
</body>
</html>
別ドメイン以外に読めない理由はなさそうだけど
とほほを入れるか外すかどっちかにしろ 厳選するなら外せ ポケット辞典的なものも入れるんなら昔外したのも含めて全部入れろ
入ってないだろ
なら古いとか書くこともない。全消去でおk
テンプレから消された物についての言及がとほほだけしかないのは不自然じゃね
あまりにも有名で言及がないと毎回「なんで入れない」になるから。 毎回そういう話になってもいいのなら言及を外すことにするけど。
今回も話題になったしな。
"とほほ"は網羅的なので素人に有難がられてるわけだけど、欠点は古すぎる ということ。ベンダのリファレンスがあれば充分だし、スレに入れる存在理由 は皆無と思ってる。
>>829 でも mozillaのサイトってなんか見にくいんだよね。
ほとんどの場合関数名のド忘れとか、引数の順序の確認ぐらいしかしないんだけど、
どうもぱっと引きにくい。
テンプレにとほほ入れてないんだからわざわざ()付けて書かなくてもいいのでは 不要な文章は省いていこう
>>830 それは言えるね。Appendixってのはそのためにあると思う。あと、とほほの危険
なところは廃止や廃止予定のメソッドなんかが何の注釈もなく並べられているこ
とだね。中・上級者の度忘れ確認にはよいとしても、あれを初心者が何の背景も
知らずに信じ込んで勉強するとopenspecと同じように危険じゃないだろうか。
一撃必殺javascriptが入ってないのはなぜ?
一撃は新バージョンのは新しいブラウザ向けに書かれてるからテンプレに入れていいんじゃねえのかね
入門、中級、上級別にURLを分けてみるとか mozillaなんて入門者が見てもわけわかめでしょw
一撃の例文は最悪だけどな
自演に乗せられるなよ
オブジェクトなJSの基礎講座の作者さん降臨乙です
GENOのjavascriptはどんな動作してるんだ?
>>818 firebugのソースを参考にするって手がありましたね。
やってみます。ありがとう!
IE にはXMLhttprequestにはoverrideMimeTypeがなくて途方にくれてるんですが、 同じようなことをするための方法は無いでしょうか?
843 :
Name_Not_Found :2009/05/14(木) 21:22:02 ID:m7pry5bo
あげ
さげ
>>3 にあるようなFAQはもうwikiとかにまとめない?
そんなことするとますます読まれない
うん。
848 :
842 :2009/05/14(木) 23:08:08 ID:???
なんとかなりました
クッキーを参照して、 1回目の訪問者にはこのバナー、2回目の訪問者はこのバナーといったような切り替えができるサンプルスクリプトはないでしょうか?
FireFoxで動作確認中なんですが、
↓たったこれだけのxul+JavaScriptが動作しません orz
sample.xul ====
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="Controler" xmlns="
http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul " align="start">
<script type="application/x-javascript" src="sample.js" />
<textbox id="txt"/>
<button label="go" oncommand='test();' />
</window>
sample.js===
function test()
{
var textbox1=document.getElementsByTagName("txt").value;
alert(textbox1);
}
やりたいことはsample.xulのテキストボックスに入力された文字をalertで表示したいだけです。
上記を実行すると、"undefined"と表示されます。
どこがおかしいんでしょうか?
よく知らないけどvalue指定してないしユーザー入力もまだだからじゃない?
getElementsByTagNameなら配列になるので指定する必要があるし txtというタグはソース見た限り無いし
document.getElementById("txt").value;
お前にXLUは早い
855 :
819 :2009/05/15(金) 08:10:30 ID:El3wKIeL
> 820 もちろん同じサーバ内です。 819のソースでちゃんと動作する方っていらっしゃいます?
>>851-853 解決しました。ご指摘のとおり
× document.getElementsByTagName("txt").value;
○ document.getElementById("txt").value;
でした。ありがとう!愛してる!
>>854 うっせーよバーカ 何様のつもりだよお前
ここはあれか。なつかしのあのセリフが必要か。
>>856 半年ROMってるべし。
不特定多数のユーザーがいる掲示板では、
お前の思考の方がおかしいからな。
ここは顔突き合わせて長く付き合う場所じゃないぞ?
ママ〜ぁ!ね、見て。ここおもしろいよ。朝からケンカしてる。 まだ早いんだって。
860 :
Name_Not_Found :2009/05/15(金) 10:30:59 ID:lOeaaKYU
ブログの本文作成時の文字装飾みたいに、テキストエリアの文字をboldなどのボタンを押したら適用させる。みたいな機能を実装したいと考えています。 JSのライブラリとか、jQueryなどのプラグインにそういうのってないですかね?
XMLHttpRequestのクロスドメイン規制というのはJavascriptのファイルがあるドメインと取得先ドメインが異なる場合を示しているのか それとも、そのJavascriptを呼び出しているドメインと取得先ドメインが異なる場合のことなのかどっちでしょうか?
862 :
861 :2009/05/15(金) 12:31:28 ID:???
自己解決しました 後者が問題になるようですね
863 :
861 :2009/05/15(金) 12:35:09 ID:???
867 :
861=862 :2009/05/15(金) 18:28:51 ID:UVDv3mFd
とりあえず
>>1 読め
このスレで Java って聞くといらいらする
Javaスレでやれ
MTがなんなのかも知らなさそうな様子だ
>>867 JSONPでできるけど、返値いらなさそうだし画像読ませる形でURL叩いてもよさそう
どちらもキャッシュには注意
<a href="javascript:〜>という形でリンクを別窓に表示させるにはどうすればいいんですか? window.openだとサイズ指定しないとうまくいかないのですが、サイズ関係なく開かせたいです
>>869 JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
JavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJavaJava
どうでもいいこと鴨で済まんが返値は返り血って読ませたいのかな。 学校出の東風虎としては戻値っていう方がしっくり来るんだけど。
かえりち ひきすう
前よりちょっと勉強したみたいだね でも今度は クライアントサイドとサーバサイド それぞれの役割について勉強してね そしたら恥ずかしくてそんな投稿できなくなるから
>>876 1週間以上かかって、変えてきた内容がそのレベルかよwww
クソワラタwwwwwww
>>876 とりあえず </body> に修正しような。
はずかしいから。
>>879 作れるわけねーだろwwwww
データーをどこに保存するんだよwwwww
VBscriptと絡めればデータ保存できるよ
どうせローカルに保存するっていみだろ
>>881 えーと、お宅さん無能ですよね無能
ヒント:サーバー
但し万一のハッキングの危険性を考慮し●●データでw
JSでってんならserver side javascript使えば seamonkeyでCGIやってるのもいる ASPならJScript JSDBなんて開発してるのもいる
seamonkeyはブラウザだ spidermonkeyの間違い
CookieとかSessionStrageとか有るだろうに・・
さーばーに保存したいらしい
これって統計みたいなのとりたいんじゃないの? それだとサーバーじゃないとだめじゃね?
>876を素直に解釈すれば、「鯖にデータ保存するようなシロモノ」だろうな。
んで、このスレは主にブラウザのJSを対象にしているわけだから、
できないっちゃできない。
こう言やいいんだよ。
>>876 GoogleやYahooの地図見てみ? あれは操作にJS使ってる。
JSは画面遷移なしでシームレスな操作をするのが得意。
PHPだけじゃ画面遷移なしのインターフェースなんて作れない。
お前がやってるのは、携帯持ってるやつにFAX電話見せて
「お前のじゃFAX受信して印刷することできないだろ」って言ってるのと同じ。
「『FAX電話じゃ持ち運びできないだろ』と返されたら反論できない」ことを知らない。
使いどころが全く違う2つを比べてどうこうとか、
ただ自分の無知を晒してるだけ。アホ。
バカがバカである理由をバカに説明しても意味ないよ
>>876 のレス番が青いままだったら面白かったのに
「ウェブはバカと暇人のもの」って本面白かった。新書なので立ち読み可。
>>895 そうか? 「だから?」って程度のもんだったけどな。
パソコン通信の頃からPCいじり回してる世代ならちゃんと認識していることなんだが、
インターネットでは、それを自覚せずに自分が何してるかわからんまま騒ぎたてるガキが増えただけ。
ぶっちゃけこの著者も同類ッぽ。
897 :
Name_Not_Found :2009/05/17(日) 12:46:38 ID:dG2lnxdr
if(document.getElementsByName("sttype")[0] =! void(0)){ seleNo = document.getElementsByName("sttype")[0].selectedIndex; dat6 = document.getElementsByName("sttype")[0].options[ seleNo ].value; } firefoxでは動くのですが、ieでは動きません if文で処理がストップしてしまうようです ちなみにfirefoxではちゃんとデータが取得できています
そのif文要らないんじゃないの?
select.value
900 :
897 :2009/05/17(日) 14:02:31 ID:dG2lnxdr
記述が正しくないだけでした。なので自己解決しました もう一つieだけでうまく行かないところがあるので、お願いします split_data = top.log.document.getElementById("log_area").innerHTML.split("<hr>"); var lines = split_data.length - 1; alert('lines:' + lines); 分割して、分割された配列が何番目まであるかを調べようとしたのですが 同じデータを扱っているのに 狐は7 ieは0が帰ってきました なぜなのでしょうか?
そういうときは一気に処理しないで、処理を分割して出力してみな 予想では<HR>になっていてsplitが想定通りにできてない
その通りでした innerHTMLで書き込む際に<hr>で書き込んでるのに ieが勝手に大文字にしてるみたいです innerHTMLにデータを渡したすぐ後に 勝手に大文字にしているみたいなのですが、 小文字のままにすることは出来ないのでしょうか?
>>902 皆に迷惑がかかるから、質問をしまくる前に、もうちょっと勉強してきた方がいいよ。
そういうのに適した関数があるから、文字列処理の関数一覧を眺めてからまたおいで。
Firefoxってclick()効かないの?
click = function(){ alert("効いたよ!"); }
>>902 それはIEのDOMレベルでの仕様
JSレベルで小文字に変換することならできる
でもcase-insensitiveで処理するほうが一般的
具体的にどうやるかはあえて言わない
縦にスクロールしないとおさまりきらない高さのページで その真ん中あたりにjavascriptを使用してボタンを押すと隠れていた画面が でてくるものを作ったのですが そのボタンを押すたびにそのページの一番上まで戻ってしまいます またスクロールして下にいかないといけないのですが 何とかならないでしょうか?
>>909 ソースがないとなんとも言えん
lightboxでも参考にすればいいんじゃない?
>>910 ありがとうございます
たとえばadobeのspryのブラインドアップとかのエフェクトでも
同じようなことになります
スクロールしなくてもいい狭い範囲だったら問題ないんですが
広い(高い)範囲だと強制的にスクロールされてページの一番上
まで戻されます
CSSに問題があるのかもしれないんですが
ソースは貼るとけっこう多いんですがどうしましょう
すいません
>>909 ですが初歩的なミスをしてました
自己解決しました
申し訳ないです
ボタンに<a href="#">のリンクはってたからでした
アホでした
すいません
カーソル:ポインターに修正しました
javascriptの文章構造 document-window-form とかと、DOMで決めた文書構造と、 ぴったり一致してるの?
お前は何を言ってるんだ
おれもよくわからんがとりあえず構造は window-document じゃないのか
916 :
Name_Not_Found :2009/05/18(月) 13:55:05 ID:DqOtmS6D
プロンプトって使ってますか?
IE8だと警告が出るぞ
918 :
916 :2009/05/18(月) 16:44:16 ID:???
>>917 あ、やっぱり。どうしようもないインタフェイスですね。
ありがとうございました。
promptって始めは便利な気がしてた
920 :
Name_Not_Found :2009/05/18(月) 19:34:45 ID:Qefdby7g
new Ajax.Request(url, {method: "get", onSuccess: method1}); function method1(http) { method2 = function() { alert("hoge"); }; alert("piyo"); Event.observe(window, "load", method2, false); } ↑でpiyoは出るけどhogeがでません。 どこが問題でしょうか? エラーコンソールにJavaScriptのエラーも出ていません。
イベント発生順序
ライブラリ使って JavaScript 書いてる人って、2種類に分かれるよな。
ライブラリを使えばモダンだと勘違いしてるのが大杉
ブラックボックスの積み木を積むだけで、自分では書けない動作を実現できるんだからこ
インターネットを使ってる人って、2種類に分かれるよな。
929 :
Name_Not_Found :2009/05/18(月) 22:13:30 ID:PFcTv43c
△ 一、ユーザに迷惑となるスクリプトを書かない者 ○?一、ユーザに迷惑となるスクリプトを質問する者 △ 一、質問を分かる日本語できちんと説明できる者 ○?一、分かる日本語できちんと問題を説明できる者 △ 一、トラブルを再現する最小限のサンプルを貼れる者 ○? 一、エラーを再現する最小限のサンプルを貼れる者 (※トラブルは人によって差がある。あるものには全てがトラブル)
930 :
929 :2009/05/18(月) 22:15:08 ID:PFcTv43c
シマッタ ×○?一、ユーザに迷惑となるスクリプトを質問する者 ○○?一、ユーザに迷惑となるスクリプトを質問しない者
めんどいから該当レスの改訂版をそっくり貼ってよ。もう 931だからそれで反対なければそのまま採用、反対あれば 今回は保留。
「スクリプトを質問」ってのはヘンだ
934 :
Name_Not_Found :2009/05/19(火) 01:00:09 ID:1heAEQ4I
935 :
929 :2009/05/19(火) 01:00:28 ID:???
>>933 確かに。要点は「ユーザに迷惑となるスクリプトを書かない者」だとその
人間の属性として定義しているように感じたからで、問題はこの板にそう
いう系の質問を行為としてしない人間であるはずではないかと。
なに!?
937 :
934 :2009/05/19(火) 06:39:25 ID:???
スレ違い失礼しました
>>935 もともと
>>1 が「道場訓」スタイルなので属人的な
ことを挙げるのはそこから来ているというか。別に
気にしないでいいんじゃないかな?
939 :
Name_Not_Found :2009/05/19(火) 13:39:23 ID:pkHpFSGg
new Date()について質問です。数字がたくさん並んで返ってきますが、 この数字は機械の中で足し算をしているのでしょうか。見ていなくてもやってい るのですか?
940 :
Name_Not_Found :2009/05/19(火) 13:41:30 ID:qm3+LYnj
初歩的な質問ですいません。 $(".pop a").hover(function() { 〜〜〜 をhoverでなくて、onMouseOverに書き換えるにはどうしたら良いのでしょうか。
$(".pop a").onMouseOver(function() { 〜〜〜 と書き換える
>>939 コンピュータは起算日からの通算秒数(ミリ秒)で日時管理をしてる
人間に見せる時は読みやすいように変換をする
だから変換を省くとそうなる
>>940 リファレンス読め
bindぐらい覚えとけ
つーかjQueryだってことぐらい言え
943 :
Name_Not_Found :2009/05/19(火) 14:35:53 ID:MzHrZdjz
window.opener及びwindow.closeで質問です。 子ウィンドウを新しく表示し、親ウィンドウを閉じる処理をJspファイルで以下のように 実装を行ったのですが、外部からのアクセスを行うとウィンドウが親ウィンドウ及び子ウィンドウが瞬間的に開いてから、 すぐに、閉じてしまいます。ローカルからのアクセスでは問題ありませんでした。 window.open('{pageContext.request.contextPath/********.do','_blank',menubar=no,****); window.opener = "dummy"; window.close(); よろしくお願い致します。
問題なかったんだ
たかがjsでエラそうにwwww
>>945 ここは君の居場所じゃないよ。
おうちへお帰……家にいるんだろうなw
たかがjsされどjs js is js.
奥が深いか浅いか、どれだけ活用出来るか否か関係無く、 導入までのハードルが低い言語が何故か軽視されるのは、相変わらずな悪い伝統。
jsだろjsjsjs
isだよjsisjs
jsを見ると、どうしてもウィルス関係だと思ってしまう・・・悪い子かしら?
悪い子ね jsisjs
悪い子でいいの。良い子の合言葉 hello world
hell work
ふぅ、アレじゃないのか、助かったぜ・・・・
ボタン1を押すとボックス1がブラインドダウンして出現 ボタン2を押すとボックス2がブラインドダウンして出現 ボタン3を押すとボックス3がブラインドダウンして出現というのを Spryを使用して作成したのですが ブラインドダウンする関数をいちいち3つ作成したのですが これを一つにまとめるようなスマートなプログラミングはできますか?
それなら作成したものを見せてもらおうか
うそついてますた。jsisjs
>>958 省略するとこんな感じですが
もっと記述量を減らすようなスマートな書き方はできないですかね?
window.onload = init;
function init() {
BlindDownA = new Spry.Effect.Blind("box1",
{duration: 1000,
from: "0%",
to: "100%"}
);
BlindDownB = new Spry.Effect.Blind("box2",
{duration: 1000,
from: "0%",
to: "100%"}
);
BlindDownC = new Spry.Effect.Blind("box3",
{duration: 1000,
from: "0%",
to: "100%"}
);
document.getElementById("id1").onclick = BlindDownBoxA;
document.getElementById("id2").onclick = BlindDownBoxB;
document.getElementById("id3").onclick = BlindDownBoxC;
var builder = function(id) { return new Spry.Effect.Blind(id, { duration: 1000, from: "0%", to: "100%"}); }; BlindDownA = builder("box1");
>>961 ありがとうございます
それを3つ記述する(box1、box2…)のが一番スマートなやり方
なんですね
javascriptってさ、 大文字と小文字の区別をするのがウザイよね。
>>963 JavaScript って書けよ、ゆとり。
漢字でも使っとけ
Math.random() の、 () の中には、通常、何を入れるの?
ランダムの幅じゃない?
何も入れない 他言語ではシードを引数にとる場合もあるかも
(i)
遠慮せず好きなもん入れとけ
(気合い)
複数のdeleteを一発で実行できますか? delete (a[1],a[3])とか思い付きでやってもできません。
(function(props){for(i in props)delete props[i]})([a[1],a[3]]) やった!一発だぜ!
>>962 間違いを言うつもりはないがテキトーに答えてるから鵜呑みにすんなよw
そもそもセンスが絡む部分だからどれが一番とは決めがたい
var builder = function(id, box) {
document.getElementById(id).onclick = new Spry.Effect.Blind(box, { duration: 1000, from: "0%", to: "100%"});
};
ここまでは異論はないと思うが
var label = [{id: "id1", box: "box1"}]
for (var i = 0; i < label.length; i++) {
builder(label[i].id, label[i].box);
}
これは数がある場合ならともかく3個程度ならやりすぎ
だから一番は自分で決めれ
978 :
Name_Not_Found :2009/05/20(水) 16:48:16 ID:yjX/LFjd
DOMでテキトウフィールドの値を取得する場合ですが、nodeValueでうまく 取れないときがあります。テキトウフィールドにはinnerHTMLが使えるよ うになりますか。
テキトウフィールドについて詳しく
>>979 > テキトウフィールドについて詳しく
読み直して仕事中に吹いたじゃねーかw
うふぃっ!
>>975 a.splice(1, 3, undefined, a[2], undefined);
それundefinedを代入しちゃうだろ
>>977 for(var i = 0; i < label.length; i++)
より
for(var i in label)
のほうがきれい
>>984 この例でなら妥当だしわかってて使う分にはかまわないけど
Arrayにfor-in使うのには罠があるからお勧めは出来ない
>>984 「きれい」かどうかよりそれはものすごく危険なのでは?
>>984 がPrototype.jsなんか使っていないことを祈る
>>984 おそらく意味もわからず使ってるんだろうな
時代はforEach()
>>991 うん。このスレはオブジェクト指向も知らねえバカばっか、ってことを
みごとに露呈してるよなw
jsスレでオブジェクト志向とかw
jsは関数型言語に決まってるよなw
プロトタイプだろ?
インタプリタだお
ノイマン型ですわ。
ラムダ言語でちゅ。
ume
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。