+ JavaScript の質問用スレッド vol.100 +
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/33/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 中でやるとか。
質問の意図や前提をくみ取れない糞質問
が多い。それで回答者が逆質問をしたり
悪口を言ったりする。それを前もって思
い描く力が絶望的に欠如してるに違いない。
スーパーハッカーだけが意図を理解できる。
レアなそういう神が颯爽と登場する予感。
お前それ好きだな。
7 :
Name_Not_Found:2012/05/07(月) 21:58:51.08 ID:KKuhX6IU
ページを移動せずにURL欄を書き換える方法についてです。
http://yahoo.com/page.html#hash のhashの部分はlocation.hashで書き換えることが出来ますが
page.htmlの部分を書き換えるにはどうしたらよいでしょうか
もう少し具体的に言うと、Chromeでニコニコ動画にアクセスし、ゼロバージョンにして、動画視聴ページ(/watch/sm\d+)を開きます
そして視聴ページをデベロッパーツールであれこれ書き換えます。
そして動画説明文から別の動画にアクセスすると、デベロッパーツールで書き換えた箇所がそのまま、URLが切り替わります。
これを再現したいのです。
このニコニコ動画の例だと、視聴ページの動画説明文の「sm123」のリンクをクリックすると
ajaxでリンク先の情報を読み取り、ページ内容を書き換えているらしいです。
ajaxでデータを受け取り、ページ内容を書き換える事は出来るのですが
URL欄を書き換える方法が分かりません。
普通それが出来ないからajaxのページはURLのハッシュ部分を書き換えているのだと思っていたのですが、ファイル名の部分もスクリプトから変更可能なのですか?
例えば URL がどう変わってんの?
多分やってるとしたらpushstateだと思う
10 :
Name_Not_Found:2012/05/07(月) 22:21:57.24 ID:KKuhX6IU
history.pushState、その通りでした。
履歴は関係ないやろ〜と思っていましたが、今のページを変えることも出来たのか
勉強しよう。
document.getElementById().onclick=function(){
処理};
のような使い方の時のonclickはdocument.writeのwriteと
同じメソッドなのでしょうか?
手元の本に、
document.writeはwriteメソッド
document.bgColorはbgColorプロパティと載っているのですが、
これは間違いですか?
jQueryとかああいうライブラリ系を作るのってJSをどこまで網羅すれば作れるようになるんですか
>>15 言語仕様を0から100まで覚えなくても、実際の開発で必要なのはせいぜい60程度。
あとは必要になり次第勉強すればいい。それよりも、保守のしやすいコードを書く、
ドキュメント・テストの整備、デザインの経験を積んだほうがいい。
phpみたいに配列の最後にカンマ付けたままでも大丈夫な仕様にならないんでしょうか
[
1,
2,
3,
4,
]
↑こう書きたいです
>>17 ie以外は大丈夫だったかと。本当は仕様ではあってもいい。
19 :
Name_Not_Found:2012/05/08(火) 02:49:39.97 ID:o514rrvD
jsからCSSを操作するには、DOMオブジェクトを取ってきて
obj.style.width="100%";と言う風にやればよいのですが、
この方法で擬似クラスのスタイルシートを書き換えるにはどうしたらよいのでしょうか
例えば、.obj:hover{} の様に。
<style></style>を書きだして〜と言った方法ではなく
DOMオブジェクトを直接操作する方法でお願いします。
また、例ではhoverと書きましたが、実際は別の擬似要素なので
「hoverならaddEventListenerでonmouseすれば」というのも勘弁して下さい。
また、.obj::beforeの様に疑似要素に対しても指定したいです。
・・・つまり
<style>
.obj:hover{〜}
.obj::before{〜}
</style>をjsだけで直接.objに指定したいのです。
>>19 document.styleSheets
>>18 おおおおIE8までがダメなんですね
ありがとうこざいました
>>21 カンマの有無で結果が変わるけど、それでもいいの?
ほう?
行単位でコメント化/コメント解除するのに便利なんだよな
学級委員が嫌だから次スレ立てないで!君が不憫・・
, 付けると空要素が付くらしいね
配列か連想配列かどっちかは忘れたけど
webworkerみたいなのを一枚のHTMLからできますでしょうか?
空要素が付いてlengthが増えたことはないな
ユーザースクリプト作ってて、スクリプトからページにあれこれ要素を追加しようと思って
空のファイルに「こんな要素をページに組み込むぞ」ってhtmlタグやスタイルシート、スクリプトを書き込んで開発して
その作ったhtmlを、スクリプトからページに組み込む形式にするのが面倒なんだけど、簡単な方法無い?
CSSやスクリプトはそのままテキストノードでぶち込んでやればいいんだけど。
divだのspanだのをあれこれ組み合わせて作るのはいいんだけど
それをcreateElementやappendChiledとか移植してると途中で分からなくなるし、バージョンアップで手を加えるのも一苦労。
大体二度手間すぎる。
作ったhtmlをそのまま変数にぶち込んでinnerHTMLは流石に汚すぎるし、何かいい方法教えてください
Google Chromeの拡張機能として開発したらいい
>>28 jQueryでinnerHTMLみたいに突っ込んでるけどなぁ
>>29 拡張機能であっても、contentsScriptはjsしか実行出来ないので
htmlをjsに移植する手間はかかるのではないでしょうか
jQueryを使うとかなり楽
チェーンを使うとさらに
HTMLをAjaxで取得して挿入するもよし
>>1 テンプレ短くしろよ
賛成多かったし
自演じゃないから
はいはい次スレまでがんばりましょうねー
煽るのが好きだな
つまらない人間
二行で自虐
39 :
Name_Not_Found:2012/05/08(火) 11:03:10.17 ID:2wbihr9/
インスタンスにじゃなくてクラス(コンストラクタ?)に対して
継承関係をチェックする簡単な方法を教えて下さい。
//FooはBarを継承したクラス。
foo = new Foo();
//インスタンスに対する継承関係チェック
alert(foo instanceof Bar);
alert(Bar.prototype.isPrototypeOf(foo));
//クラスに対する継承関係チェック
//alert(Foo isa Bar);
>>34 だからさー、短いテンプレ一式貼ってみてよ。別に反対じゃないけど
現物見なかったら検討できないじゃん。
>>39 よく理解してないんだけど、「Foo.prototype instanceof Bar」じゃだめ?
>>40 前スレの他スレのを参考にしてとにかく削ればいいんだよ
細かいの話してるとまた決まらないから
建てる人が適当に置き換えたらいい
テンプレ議論は無駄って立場だからな
次俺が建てることになったらそうするよ
どうせ900くらいから議論始めてもまたまとまらないだろ
>>40 お前以外の住人に提案してるだけだから気にしなくていいと思うよ
>>42 そんな書き込みするくらいなら実際に書けよ。餓鬼かよ。
46 :
Name_Not_Found:2012/05/08(火) 12:34:32.83 ID:MyZS9ULp
>>46 で、その1個でいいという人が多いの?本当に?FAQはまったくなしで?
ちなみに、その当時のテンプレは7レスくらいあったような。その議論があって整理された
結果が現状なわけです。
411は流れがあって読みやすいな
質問する前に、本当に必要な質問か自分で確認させてふるい落とす内容にして、
その後に、質問の書き方を書く流れにしたらスッキリするはず
だから、読まないだって。テンプレ嫁という指摘すらないんだから住人だって読んでない。
もちろん俺も読んでない。スレ立てる奴に自己満なんだからほっとくしか無い。
よしわかった、じゃあ今のところ短縮反対な人はいないので
>>46 案でいく?
52 :
Name_Not_Found:2012/05/08(火) 17:54:08.54 ID:MyZS9ULp
>>47 そんなことはないと思うっすよ
自分が思うに
テンプレの目的は
・回答者が答えやすい質問の書き方をしてもらうこと
・「自ら学ぶ」気持ちを理解してもらうこと
で、テンプレに必要なこと・要素は
・読みやすさ
・質問テンプレート
・典型FAQと、リファレンスへの(誘導の為の)リンク
かな、と。
53 :
Name_Not_Found:2012/05/08(火) 19:18:51.35 ID:MyZS9ULp
基本1レスではみ出る奴は外部リンク貼ればいい。
これで何か問題ある?
55 :
Name_Not_Found:2012/05/08(火) 20:39:50.43 ID:MyZS9ULp
あったほうが良い派の人もいる
>>1さえ簡潔なら、たかが数レス消費しても何の問題もないし
アリでいいんじゃないかい?
誰も読まないのに長々と貼るの面倒だし無駄じゃん
わざわざ2や3を読んでくれる人のためには1にwikiか何かのリンク張っとけばいいだけだし
テンプレ議論もそっちでやってくれた方がいろいろとよっぽど効率がいい
逆に言うとそんなに長々と貼る価値のあるテンプレじゃない
テンプレ議論もここじゃあその価値を保つまでまとまることないし
いい加減
「JavaScript の質問用スレッドのテンプレートを考えるスレッド」
でも立てれば?
ここまで来たらもうスレチレベルでしょ。
早速、JavaScript の質問用スレッドのテンプレートを考えるスレッドのテンプレを決めようぜ
風紀委員がイヤ!って人ががんばった結果全員風紀委員に
各自思い思いのテンプレを貼り付けていけばスレが埋まるさ
以前、外部URLにテンプレをまとめるべきと主張したら猛反対されたことがある。
「そのサイトはおまえが管理できるのか?」だそうだ。
声が大きいだけで他人任せにする人は信用に値しない。
@wikiとかにしてるスレは多いよね
>>62 スレにテンプレを書けば改善点がすぐ出せるといっていた人だね
66 :
Name_Not_Found:2012/05/08(火) 22:26:14.03 ID:MyZS9ULp
個人的にはwikiよりも現状のjsfiddleとかのほうが書きやすいと思う
それはさておき、いろんな人がいるわけだから
それぞれ少しずつ妥協して落とし所を見つけんといかんわな
>>62 テンプレを外部URLに置こうがスレッド内部に置こうが管理する気のない人は管理しないだろうな。
現実にそうなっている。
管理者が少ないことも問題点の一つといえる。
外部にしたらスレはコンパクトになるけどそっちは膨大な量になり結局全部読めねえよ!ってなる
長いから読めないわけじゃない
全部外に移せとか言ってるわけじゃなくて
要点を最初に書けと言ってるんだろう
要点:ググれ
早くJavascriptの質問きてくれー
かわいい初心者きてくれー
;付け忘れてるだけで上手く行かない人でもいいからー
73 :
Name_Not_Found:2012/05/09(水) 00:01:31.09 ID:jXlSiiQJ
ネタふりにひとつ
型変換でしたのようにやってるんだが、intの変換って|0でもいけるんだっけか?
まぁ、変換するような関数書くなとか言うつっこみはなしで。
string変換:""+s
number変換:0+n
boolean変換:!!b
int変換:n<<<0
普通に
String(s)
Number(n)
Boolean(b)
こうしろよこっちの方が可読性高いだろ
案としてはこれくらい?
(1) 1のみ「質問のしかた」+リンク1個くらい
(2) 2レス「質問のしかた」+「主要FAQ」
(3) 3レス「質問のしかた」+「主要FAQ」+「仕様」
(4) 現状の4レス構成「質問のしかた」+「関連スレ」+「主要FAQ」+「仕様」
>number変換:0+n
典型的なミスだな。n-0とでも間違えたのか?
そんなにわか知識をひけらかしてないで素直にNumber使いましょうね。
0+nで何の不都合が?
n|0
phpあたりと混同しているっぽい?
>>73もネタと書いているのにとんだとばっちりだなw
int変換: n
>>0 uint変換: n>
>>0 じゃねーの?
>>73 "4.3"-0 → 4.3
"4.3"+0 → "4.30"
0+"4.3" → "04.3"
"4.3"|0 → 4
"4.3">>0 → 4
JavaScriptにおいて型変換にNumber()とか使うのは気持ち悪いな
>>77にしろ
>>84にしろ
その程度は単なる好みの問題だ
いちいち噛み付く所じゃない
Numberを使うか使わないかの話だ
使うよ俺は
だって「ナンバー」だぜ?
一目で数値ってわかるじゃん
var s = "Infinity";
var n = new Number(s);
分かりにくいし、事故の元だな。
new は要らんかった。
元気出せ
function ナンバー(n) {
return Number(n);
}
なぜわざわざ関数を
Numberとかと書いた方が解読性が高まるというが
こういうちょっとした型変換にNumber(で挟んで)書いてたら逆に余分に大袈裟に目立つしわかりにくい
速度も無駄に食うしいいことナッシング
97 :
82:2012/05/09(水) 17:02:44.95 ID:???
>>89ではないが、
Number("Infinity") → NaN
Number("無限大") → NaN
Number("∞") → NaN
Number("ゼロ") → NaN
0+n としてバグを埋め込むのが好みのやつが居るとは驚きだな
Number=function(s){document.createElement("iframe").contentWindow.Number(eval(s))}
Number("Infinity") //Infinity
evalは使うな
Number=function(s){
if(s==="Infinity")s=Infinity;if(s==="-Infinity")s=-Infinity;
document.createElement("iframe").contentWindow.Number(s)
}
Number("Infinity") //Infinity
>>97 IE, Opera, Firefox で一番上は Infinity になるけど
Number=function(s){if(s==="Infinity")s=Infinity;if(s==="-Infinity")s=-Infinity;return +s;}
Number("Infinity") //Infinity
103 :
Name_Not_Found:2012/05/09(水) 17:18:05.13 ID:spqwuKiC
こういうときのジャッジ役のNetFrontもNumber("Infinity")→Infinity
>>97 下の 3つは何の意味があるんだ?
後、Number("Infinity") が NaN になる環境ってどんなの?
君の手で切り裂いて 遠い日の記憶を
悲しみの息の根を止めてくれよ
さあ 愛に焦がれた胸を貫け
明日が来るはずの空を見て 迷うばかりの心持てあましている
傍らの鳥がはばたいた どこか光を見つけられたのかな
なあ お前の背に俺も乗せてくれないか
そして一番高い所で置き去りにして優しさから遠ざけて
君の手で切り裂いて 遠い日の記憶を
悲しみの息の根を止めてくれよ
さあ 愛に焦がれた胸を貫け
>>104 わからない奴はこのスレ明日から来なくていいよ。
わかるようになったらまたおいで。
何だ、いつもの基地外か。
前に間違い指摘されて、「勉強しろ」とか言ってた馬鹿がいたっけ。
>>97 >>93へのレスか?数字でない文字列を数値化したらNaN,これの何がいけないんだ?
>>97 Number('Infinity') // Infinity
>>107,108
レス飽食が現れましたwwwwwwwwwwwwwwwwwwww
皆さん御注意をwwwwwwwwwwwwwwwwwwww
>>97 は Infinity を知らなかったんだろ
そして NaN になるというのは自分の知識の範囲内で未確認のまま書いたこと
だから他に無意味な比較もしてる
>>112 こんな簡単な日本語もわからないとか猿の脳以下だな
ミジンコ並だよお前
それから『無意味』の使い方間違ってるよワレス
>>111 わからない奴はこのスレ明日から来なくていいよ。
わかるようになったらまたおいで。
>114
お前自分の足良くみてみろよ
吸盤ついてね?
タコだwwwwwwwwwwwwwwwwwwwwタコだこいつタコ頭wwwwwwwwwwwwwwwwwwww水虫頭乙乙wwwwwwwwwwwwwwwwwwww
>>89ではないが、
Number("Infinity") → NaN
Number("無限大") → NaN
Number("∞") → NaN
Number("ゼロ") → NaN
プw
infinity loop
やっぱりまた例の単芝だったか。
自演乙。
お世話になります。
<div id="name1">
<p>ABC</p>
<p>DEF</p>
</div>
<div id="data1">
<p>123</p>
<p>456</p>
</div>
このようなとき、<div id="data1">の中にあるpタグについてgetElementsByTagNameで
コレクションの取得をしたいのですが、どのようにすれば良いでしょうか?
<div id="Infinity">
<p>Infinity</p>
<p>Infinity</p>
</div>
<div id="Infinity">
<p>Infinity</p>
<p>Infinity</p>
</div>
<Infinity Infinity="Infinity">
<Infinity>Infinity</Infinity>
<Infinity>Infinity</Infinity>
</Infinity>
<Infinity Infinity="Infinity">
<Infinity>Infinity</Infinity>
<Infinity>Infinity</Infinity>
</Infinity>
124 :
Name_Not_Found:2012/05/09(水) 18:26:37.00 ID:jXlSiiQJ
>>121 動くか試してないけどこんな感じでどうだ?
var collection = document.getElementById("data1").getElementsByTagName("p")
ID:jXlSiiQJ
もうそっとしといてやれw
テンプレ追加するほどではないとは思いますが、ネタで質問(>73)とか質問してくれ催促(>72)は止めて欲しいです。
質問したら回答を放置せずにレスしろと。ID:jXlSiiQJ は無責任すぎます。
Function::bindメソッド互換の関数を
IE8以下でも使えるように実装するとしたら
どんな感じになる?
勿論内部プロパティにアクセスは出来ないから
挙動としてほぼ同一を前提に。
131 :
Name_Not_Found:2012/05/09(水) 19:07:26.20 ID:jXlSiiQJ
>>128 ネタふり程度に責任云々言われるのも。。。
微妙な空気にそこそこ盛り上がって楽しめただろ?
一人が餌になっただけだったけどなw
楽しいのは煽って相手を言い負かした気になっている一部の人たちだけ。
それ以外は下らない争いにうんざりしてる。
テンプレ議論のことか。
まともな回答者はかなり減ってきたし、最近はアホばっかりだな。
>>128 > 質問したら回答を放置せずにレスしろと。
これが全てを物語ってる気がする
最近、空気を変えようと適当な質問しては放置する人が出てきてるんじゃない?
はっきりいって迷惑
またホームルームの時間すか?
>>130 そこ見たって出来ないよ。
やったことないのに勧めるとは無責任だなw
140 :
Name_Not_Found:2012/05/09(水) 19:34:37.79 ID:jXlSiiQJ
>>128,133,137
迷惑を掛けたのであれば申し訳ない。
>>140 2ch に居心地のよさを求めてる時点でどんな人種か察してやれ。
教えて下さい。
domで、
親フレームのtitleを操作したい場合、どう指定するのでしょう。
普通にparentやvalueではうまくいかず…
ドメインが同じなら出来るよ
parent.parent.documentとかでやってみた?
HTML5ではdocument.writeは使うな、innerHTML使えとか見た気がするんだけどどうなの?
>>142 他にもparent.parent.parent.document.titleとかparent.parent.parent.parent.document.titleとかの可能性もあるな
あとはparent.parent.parent.parent.parent.document.titleとか沢山ある
parent.parent.document.title
parent.parent.parent.document.title
parent.parent.parent.parent.document.title
parent.parent.parent.parent.parent.document.title
parent.parent.parent.parent.parent.parent.document.title
parent.parent.parent.parent.parent.parent.parent.document.title
parent.parent.parent.parent.parent.parent.parent.parent.document.title
parent.parent.parent.parent.parent.parent.parent.parent.parent.document.title
parent.parent.parent.parent.parent.parent.parent.parent.parent.parent.document.title
>>144 っていうよりdocument.writeは本当に文字を表示するだけだからHTMLに組み込むときは使わないだろ
正確にはDOMに影響あたえてバグの原因になりやすいとかだった気がする
>>139 出来ないという回答をしているのですが。
>>144 document.write使うなという人はinnerHTMLも使うなといいそうなものだけど、どこで見た?
var __s = '';
document.open = document.close = function() {
__s = '';
}
document.write = function(s) {
document.body.innerHTML = __s+s;
}
innerHTMLってその場にそれだけ書いて動くの?
元々あるタグの操作とかでしょ?
document.writeはいきなり書いても出力できるよね。
forでループさせてtableタグを一気に書きたい場合とかはどうするんでしょうか?
document.body.innerHTML = '<table>';
document.body.innerHTML += '<tr>';
154 :
142:2012/05/09(水) 21:02:49.29 ID:???
(親フレーム)
<title name="t1">フレーム使用例</title>
・・・
<frameset rows="100,*">
<frame src="fm3.html" name="ue">
<frameset cols="150,*">
<frame src="fm1.html" name="hidari">
<frame src="fm2.html" name="migi">
</frameset>
(fm3.html)
parent.document.getElementById("t1").value = "test frame";
ではないんでしょうか?
普通にtitleで書いても動かないです・・・
getElementById
>>148 それは単にそこのサイトの人の見解でしょw
なるほど
それで
>>142のような馬鹿な質問ができるのか
>>124 ありがとうございます。できました。
ただ、ちょっと分からないことがあります。
document.body.getElementsByTagName('p') は大丈夫なのに、
document.body.getElementById('data1') はダメなんですね。
なぜダメなんでしょうか。
それと、追加で質問なのですが、
<div class="data1">の中を取得したい場合はライブラリ等の関数が
必要になるということでしょうか。
>>158 どうダメなのかが分からない
ライブラリなど?これも意味不明
>>124に書いてあるじゃないの
>155
間違えました。
古いのコピった・・
親フレームは
<title id="t1">フレーム使用例</title>
です
>>156 コンストラクタをapply出来ないってことだろ?
確かにどう転んでも言語仕様上無理だな
>>185 IDは一意だから、DocumentにしかgetElementByIdは無い
getElementsByClassName
>161
コンストラクタそのものはapplyできないが
振る舞いだけ似せるなら実装可能
164 :
162:2012/05/09(水) 21:32:10.55 ID:???
>>163 中途半端な実装は避けるべきだぞ。タコ野郎。
166 :
Name_Not_Found:2012/05/09(水) 21:36:52.02 ID:jXlSiiQJ
>>158 document.body.getElementByIdがないのは、今まで気づきもしなかったのだが、確かにないねw
まぁ、予想するにHTMLドキュメント内に同一IDの要素なんてないからElementでid検索は不要だって理由ではないでしょうか。
つまり、
>document.body.getElementById('data1')
わざわざbody要素に特定してid検索する必要ないってことでdocument.getElementByIdを使えって事ですね。
それと、追加で返答なのですが、
イブラリ等の関数が必要になるということは内のではないでしょうか。
167 :
148:2012/05/09(水) 21:43:13.24 ID:vGwzdzW3
>>156 そのサイトの管理人と同じ見解だから紹介したまでです。
希望があるとすれば eval() や new Function() でしょうか。
そもそも、あなたはどう考えているのですか?
ライブラリは必須ではないが
>>152のようなtableの自動作成
みたいなのはjQueryを使えばエレガントに書ける
サーバーサイドでやれよ
>>163 >>129の目的は「Function::bindメソッド互換の関数をIE8以下でも使えるように実装する」なんだから振る舞いだけ似せても仕方ないんじゃないかな
>>158 var nodes = document.getElementById('name1').getElementsByTagName('p');
for ( var i = 0; i < nodes.length; ++i ) {
// nodes[i].childNodes[0].data がテキスト。表示するなり配列にpushするなりご自由に。
}
>>172 IE8+ には querySelector が存在します。
getElementsByClassName と違って not-live ですが、live である必要性がない場合には扱いやすい API です。
IE7- にはjQuery等のライブラリを利用するか、Selectors API や getElementsByClassName を自作するか、IE7- だけ処理を分けるしかないですね。
# ちなみに、getElementsByClassName は live ですので完全な互換性を持つライブラリは作成できません。
175 :
Name_Not_Found:2012/05/09(水) 22:20:07.44 ID:zjeI0ZJH
176 :
175:2012/05/09(水) 22:20:44.38 ID:zjeI0ZJH
あああああああリロードしてなかったー
すみません…
>>159 説明不足ですみませんでした。
例えばOperaでは、このようなエラーが出たのです。
Uncaught exception: TypeError: 'document.body.getElementById' is not a function
>>173 例をありがとうございます。
まだ試してみてませんが、nodes[i].childNodes[0].dataは大変参考になります。
今までは
F='innerText'in document.body;
としておいて、
F?nodes[i].innerText:nodes[i].textContent
のようにテキストを得ていました。
【やりたいこと】
要素の背景色(background)を1秒ごとに、黄色⇔灰色のように
変更して点滅のような効果を出したいです。
【試したこと】
デフォルトではcssで黄色(#FF0)に設定。
jqueryのsetIntervalと、if文を組み合わせて
flagが0なら灰色(#CCC)に変更して、flagを1にする。
次のif分岐の時は、elseの方に入るので、黄色(#FF0)に変更してflagを0にする…
というような方法。
【結果】
灰色に変更してから次の黄色に変更の動作に進んでくれません。。。
【ソース】
http://jsdo.it/hirorih/fhhc 【ひとこと】
お知恵おかしくださいませ。
>>174 liveとは、書き換えられた内容も反映されているということですね。
今やっていることはliveである必要がないので、いろいろな方法を検討してみます。
詳しい解説をありがとうございました。
>>154>>160です
parent.document.title.value = "test frame";
でも動きませんでした・・
182 :
Name_Not_Found:2012/05/09(水) 23:09:46.66 ID:jXlSiiQJ
>>180 ポケモンフラッシュをjsで移植してるんじゃね?
>>178 14,15行を入れ替えれば望み通りにはなるよ。
var flag=0;
setInterval(function(){
>>178 var flag=0 を setInterval の外に出す。
$('.hoge') も出した方がいいが。
それから、馬鹿の雑音は気にすんな。
>>178 一応補足しておきますが、blink 的な挙動は迷惑スクリプトと認識される場合があります。
嫌われる可能性があるという意味ではお勧め出来ませんね…。
>>183 >>184 ありがとうございます!できましたーヽ(*´∀`)ノ
はい、雑音は気にしませんw
>>185 アドバイスありがとうございます。
使い所気をつけます!
自演乙
でっていう
191 :
Name_Not_Found:2012/05/10(木) 00:28:46.49 ID:JZBpmWde
1秒間に3回以上の明滅(癲癇発作などの原因になる)をやらない
ってのはJIS X 8341-3や、そのベースのWCAG2.0の
シングルAの項目に入ってますな
アクセシビリティなんてクソ食らえ、なら関係ないけど
>>89ではないが、
Number("Infinity") → NaN
Number("無限大") → NaN
Number("∞") → NaN
Number("ゼロ") → NaN
やっべ俺ゲーム作る時全無視だ
195 :
Name_Not_Found:2012/05/10(木) 11:29:14.74 ID:7rka9thL
子供の頃、basicで画面の色を赤青緑マゼンタ…と変えるのをループさせると
画面が白く見えることに気づいて、順番とか変えながらずっといじってたら
ゲロ吐いて寝込んだことがあるのを思い出した
関係あるのかなあ
196 :
Name_Not_Found:2012/05/10(木) 12:06:47.84 ID:7w3edLEq
Javascriptで下記のベタ記述は動きますが、
var pic1 = document.all("pic1");
var pic2 = document.all("pic2");
var pic3 = document.all("pic3");
pic1.style.display = "block";
pic2.style.display = "none";
pic3.style.display = "none";
for文で回した記述は動きませんでした。
For(i=1, i<=3, i++)
{
id="pic"+i;
pic[i] = document.all(id);
if(i>1){ pic[i].style.display = "block"; }
else{ pic[i].style.display = "none"; }
}
何かいい方法はありますか?xmlファイルを読み出して
画像の表示をしようとしています。
>>196 連番の変数を作ったら勝手に配列になるとかあり得ないでしょ。
picという配列を作ってそこに要素入れるようにすれば。
すまん、ちゃんと読んでなかった。そのfor文があってるのかとか
外側で配列picを作っているのかとかエラー出てないのかとかを
確認するべきかと。
pic[i]の内容は確認したか?
>>196 動きませんじゃなくてエラーコード貼ろうぜ。
For じゃなくて for だし、picの宣言は見当たらないし、まずはエラーを確認しないと。
201 :
Name_Not_Found:2012/05/10(木) 13:28:39.44 ID:7rka9thL
>>196 >>1見てみて。コードアップサイトが書いてあるから
そこにアップしてみてくれると、回答者もわかりやすいです
シンタックスエラーは一目瞭然なのにアップする必要あるの?
スクロールの方向を取得するにはどうすればいいですか?上方向か下方向か区別したいです。
ホイールはブラウザごとに違って面倒
ホイールに限らないですよ。
違うとこをすべて列挙した方がよかったか?
>>203 「JavaScript イベント スクロール 方向」でググれ。
それが面倒だからここで聞いてるんじゃん
馬鹿じゃないの?
>>203 JavaScriptで書けば取得できるよ
調べ方を教えてくれるスレとかしょーもねえw
明快な答えが出たんで次の方どうぞ
212 :
Name_Not_Found:2012/05/10(木) 15:27:30.08 ID:7rka9thL
>>208 まあまあ、解決法よりも理解してほしいていうアレだから気にすんな
代わりに面倒を請け負うことも出来んし、それを望んでるわけでもないでしょ?
一般的にはブラウザ判別して、それぞれの値を返す関数を作っておいて
それを使い回すよ
作るの面倒だったら、出来合いのライブラリとかも色々あるから
お好みのものを探して使ったらいいよ
>>203 スクロールの方向を知りたいってのは、
・過去のスクロール位置を覚えておく。
・スクロール位置が変化したら、覚えておいた位置と比較してどちらへ動いたか調べる。
ってのとは違うのかな。
ホイールとは一言も書いてないからな
質問に不備がある
>>214 ダメな奴の決まり文句だな、そういうの。ガキの使いかってゆう。
おもんね
ポケモンフラッシュで眼が痛いとか言ってる馬鹿はシカトしておけ
関数の中で使われるthisはコンストラクタとして呼び出されない限り、必ずグローバルオブジェクトを指しますか?
apply, call, bind, event handler
strict mode, object method
var ob="hello";
alert(ob);//helloと出る
function aa(){var ob=69;alert(ob);}
aa();//69と出る
alert(ob);//helloと出る
グローバル変数とローカル変数が同じ名前ってまずいですかね?
上書きされうとかの事態にはならないみたいですが。
教えて下さい。
関数内からhelloにアクセスできない(隠蔽)が、
それで困らないなら問題ない
iとかjが重なるのは仕方ないが、
使い道も意味も型も異なるものを同じ変数名に入れるのはよくない。
デバッグしにくいし。
> グローバル変数とローカル変数が同じ名前ってまずいですかね?
質問とは全く関係ないな。
"hello"と69という全く異なるものを代入してて気持ち悪いとでも言いたいんだろう
挨拶も 69 も気持ちいいよー
var k=document.getElementById(nm).value
で取得したい値が数字の時、kが数字となっているが、
var k=document.getElementById(nm).value-0(-0で数字に変換?)
とする必要はあるのか教えてくだい。
Number("Infinity") → NaNw
Number("無限大") → NaNw
Number("∞") → NaNw
Number("ゼロ") → NaNw
>>231 上と下の型を調べたり===で比較してみたらわかるよ
chromeの拡張でページ内ベタ書きのscriptタグより先に発火させたいんだけどどうしたらいい?
DOMContentLoadedでaddEventしてもどうもうまくいかんのよね
>>234 デフォルトでは確かonload後実行、詳しくはググれ
ただし俺がそれでハマったときベタスクリプトで実行タイミング指定する方法見つかんなかったし
拡張にしてちゃんと指定してもバグなのか一部のイベントの挙動がおかしくて詰まったわ
>>234 Tampermonkeyを使うとそういうオプションがあるが
拡張でなければダメか?
>>236 document_startだとDOM取れないしdocument_endだと遅いしでなんともだね
なんかいい方法があればいいんだけど
>>237 「拡張で何ができるかな」中だから他の何かを使うのは趣旨と外れてしまうんだ
ページ内のスクリプト無視して色々できたら幅が広がると思ったんだけど難しいね
DOMContentLoadedで何してんの?
というかそれより前に発火するイベントなかったっけ
>>239 テスト中なので何してるというほどのことは何もしてないけどw
jsの解説サイトとかにある開くとalertするサイトとかを対象にして拡張側はaddEventListenerしてどっちが先に動くか見てるだけ
今はdocument.headにappendChildとかしてscript要素追加しようとしてて
run_atの設定をdocument_startにするとDOM構築前だからheadが取れず、document_endだとonloadよりは早いけどベタ書きのスクリプトより後になるから使えないって感じ
おもしろそうなんで解決したら報告頼むよ
>>236 > chromeの拡張でページ内ベタ書きのscriptタグより先に発火させたい
べた書きのscriptタグで定義されているイベントタイプは?
document.addEventListener('DOMContentLoaded', hoge1, false);
document.addEventListener('DOMContentLoaded', hoge2, false);
とすれば、hoge1 が先に発火する。それが答え。
空白四個以外のインデントはゴミと思うがどうよ?
なぜJavScriptにはsleep()またはwait()がないの?
必要性が皆無だから
でも「JavaScript sleep」とかでググると四苦八苦してる人がいっぱい見つかるよ?
試行錯誤した結果、
Flashに代わりにsleepさせて終わるのを待つ、
という答えを出した人がいる
JavaScriptでsleepが必要になるのは殆どの場合勉強不足
本当?
250 :
Name_Not_Found:2012/05/12(土) 18:34:54.52 ID:3ha7ztF/
>>243 closure compilerが出来てからはどうでも良くなった
個人的にはタブが好き
>>248 勉強不足というか、設計時点で回避できることが多いね
>>251 ある変数やあるオブジェクトがある状態になるまでひたすら待つとかの時にチェックのインターバルで
それやるならカスタムイベントハンドラやらsetIntervalで十分
あるいは、単純に一定時間待ちたい…その間他になにもやらせたくない…でもCPUリソース100%は嫌…とか
256 :
Name_Not_Found:2012/05/12(土) 22:40:28.98 ID:+vJFH0Id
pngやgifが透過する可能性があるかどうか(透明度が255でない事)を調べる方法はありますか?
JavaScriptでバイナリファイルを処理できるなら○
代わりに書いておく
alert('begin');
setTimeout(function() {
alert('end');
},10*1000);
そういうことを言ってるんじゃないと思う
時間待ちの後の仕事を別の関数に分離するのができないようだったら
JavaScriptの開発なんてやらない方が身のためだと思うんだよね。
単純に一定時間待ちたいんだろ?
他にどう書くんだ?
>>259 これだとalert('begin');のあと、alert('end');までのsetTimeoutの設定をして、
その後すぐ別の仕事に行っちゃうでしょう。
alert('begin');の後、alert('end');を出すまでの間なにもしないで待ちたいのよ。
言語を自分に最適化させるか、自分を言語に最適化させるかの違い
前者にしようとするからおかしなことになる
266 :
Name_Not_Found:2012/05/13(日) 00:46:08.77 ID:20/ul1ew
javaでも出来るとは思うよ
>>264 精神論はいいので、できればサンプルコードをひとつ。
JavaScript1.7とやらのyieldで万事解決
269 :
Name_Not_Found:2012/05/13(日) 02:21:28.81 ID:20/ul1ew
>>267 var isAvailable = false;
setTimeout(function(){
isAvailable = true;
},待ち時間);
じゃだめなん?
>>263 endの直後にすべての処理を書けばいいんじゃないの?
>>270 > JavaScript の非同期処理は絶対に同期処理にすることができない
つまりJavaScriptでsleep(類似の処理)は絶対に使えねえってことか。
273 の補足というか訂正
JavaScriptでsleep(類似の処理)は、setTimeoutやsetIntervalを使っては絶対に作れないということ?
仮にできたとしても、
JavaScriptはシングルスレッドだから、
クリックやスクロールしても反応しないなどの状況になって困る
という話だろう
定期
alert('10秒間まってね');
var from = new Date().getTime();
while (new Date().getTime() < from + 10 * 1000);
alert('今どんな気持ち?');
クリックに反応する必要があるから、
下のように書くしかないってことじゃない?
あるいはsetTimeoutの引数部分を別関数にするか
alert('begin');
setTimeout(function() {
alert('end');
// 続きの処理
},10*1000);
>>276 それだとループのところでCPUリソースを思いっきり独占しちゃうんですよ。やってみればわかる。
>>277 それだと処理待ちしたい箇所が複数あった時どうすればいいのかわからない…
276はそれを知ってて敢えて書いてるんだと思うぞ。
>>279 >>254 に、単純に一定時間待ちたいって書いてあるじゃないの。それの実装例だ。
281 :
Name_Not_Found:2012/05/13(日) 08:23:45.47 ID:20/ul1ew
269はsleepじゃなかろうもん
>>279 sleepがあると仮定して、
どんな処理をしたいか具体的なソースを
示すのが最低限の礼儀だろう
この話題前にも出ただろ
yieldとsetTimeoutで解決したはず
XMLHttpRequestで同期通信してサーバー側で10秒待つ
非同期を同期することは可能
ただし現状はnsThreadが必要
kwsk
ありがとうじゃねえよバカ
もとの質問てどれだよ。
>>244か
だからID出さない質問は全部釣りだって
sleep の元の質問者です。
どんな文字列を渡してもNaNになるね。
Number("Infinity") → NaN
Number("無限大") → NaN
Number("∞") → NaN
Number("ゼロ") → NaN
JavaScriptがまた好きになった。
>>286 >>290のsleepをwait(条件)みたいにして
排他的に非同期処理の完了を待てばいい
Number("無限大") → NaN
Number("∞") → NaN
Number("ゼロ") → NaN
相変わらずこの 3つがイミフ。
sleep の元の質問者です。
つまりこういう実装なんだね。
みなさんありがとう。
var Number = function() {
return "NaN";
};
293,298,299
今日は母の日だ。
こんなレスをしてると知ったら、母親が泣くぞ。
if(comm===" ")とif(comm==="")って動作が違うのですが、
空文字って""で判断できますが、スペースの入った" "って
スペースの入った文字列に対してfalseになってしまいます。
普通どっちを使うのですか?または正規表現使って、
===" "も===""も使わないのでしょうか?
>>301 スペースと空文字列は全く違うもの。
console.log(comm); でcommの中身を確認しよう。
>>301 sleep の元の質問者です。
試したらこうなった。
(""=="") → NaN
(" "=="") → NaN
(""==" ") → NaN
(" "==" ") → NaN
(""==="") → NaN
(" "==="") → NaN
(""===" ") → NaN
(" "===" ") → NaN
305 :
301:2012/05/13(日) 18:17:27.34 ID:???
===" "も===""って動作違うって言いたかったんです。
日本語でおk
307 :
Name_Not_Found:2012/05/13(日) 18:20:26.23 ID:jcm1xLLU
>>305 >===" "も===""って動作違うって言いたかったんです。
===" "(仮に甲)
===""(仮に乙)
甲も乙って動作違うって言いたかったんです。
日本語になってないんだ。。。
もう一度推敲してみてくれないか?
308 :
301:2012/05/13(日) 18:21:11.65 ID:???
===" "も===""っても動作も違うもって言いたかもったんですも。
309 :
301:2012/05/13(日) 18:22:39.93 ID:???
ちょっと間違えたくらいでひどいです!!
人を馬鹿にするのもいい加減にしてください!
お母さんに言いつけますよ!!
>>301 ===" "これで何をしたいの?
比較対象が" "ならfalseにはならない
===""だとfalseになる
含まれてるかどうかを調べるものでは無い
>>308-309 PHPスレに帰れ
311 :
301:2012/05/13(日) 18:34:58.17 ID:???
>>308-309は偽物
>>310 フォームに入力した文字列を、
空文字とスペースと改行のみなら、errorとalertしたかったので
正規表現を調べていたところ、===""でいけるんじゃね?
と考えて、===""を使って試していると空文字と場合とスペースが入った
場合で動作が違ったので、このスレに質問にきました。
そもそも空文字って何だよ
正規表現から離れちゃってるぞ。
1文字もない空っぽの状態だけ判断したい?
空白だけを判断するなら、1文字だけでいい?
連続した空白を含む空っぽなら /^\s*$/ でいける。
空白文字を無視する仕様なら、trim してから空文字列かどうか判定すれば?
315 :
301:2012/05/13(日) 18:52:40.88 ID:???
空文字、スペース、改行のみならばerrorとalertしたいです。
質問の意図や前提をくみ取れない糞質問
が多い。それで回答者が逆質問をしたり
悪口を言ったりする。それを前もって思
い描く力が絶望的に欠如してるに違いない。
スーパーハッカーだけが意図を理解できる。
レアなそういう神が颯爽と登場する予感。
>>315 if (comm == NaN) {
alert('error');
}
>>301 tabどうするの?まぁ正規表現使った方が楽だよ
tabや\0も削除してOKでES5以上で良いなら"".trim() === ""これでいけるけど
>>313のでいいじゃん。
comm.match(/^\s*$/)で。
だからsleepはyieldでsleepさせたい時間返してsetTimeout使えばできるって言ってんだろ
俺の言うこと聞けよ!!
>>320 おじいちゃん、夕ご飯はさっき食べたじゃない
JavaScriptでスリープを実装するのが簡単な質問らしいぞ。
答えは簡単出来ないってか?
>244Name_Not_Foundsage2012/05/12(土) 17:53:06.48 ID:???返信 (1)
>なぜJavScriptにはsleep()またはwait()がないの?
>245Name_Not_Foundsage2012/05/12(土) 17:58:09.03 ID:???
>必要性が皆無だから
即答で終わってるわけだが。
sleepの実装の話がまだしたいならJavaScriptスレでやれ。
変数宣言と、ホイスト(宣言の巻き上げ、巻き戻し)について教えてください
あの仕様(現象?)って何か使い道ってあるのでしょうか。
素人目には、どうせなら値の初期化も巻き上げてくれたほうが混乱しないと思うんですが
>>325 べつに使い道とかねえよ、ただそうだってだけで
\u形式の文字を元に戻すにはどうすればいいですか?
330 :
39:2012/05/14(月) 19:58:30.03 ID:+mh96eG1
fooがクラスFooのインスタンスで、FooがBarを継承しているとき
foo instanceof Bar
はtrueですが、
インスタンスではなくてクラス(コンストラクタ?)に対して
継承関係をチェックする方法を教えて下さい。
>>41は$.extendを使う方法だとダメでした。
var Foo = function(){};
var Bar = function(){};
//Foo.prototype = new Bar();
//Foo.prototype = Bar.prototype;
$.extend(Foo.prototype, Bar.prototype);
var foo = new Foo();
console.log(foo instanceof Bar); // => true
console.log(Foo.prototype instanceof Bar); // => false
>>329 \uの後が16進の文字コードになってるからこれを10進に直して
String#fromCharCodeに渡せばいい。var char = String.fromCharCode(parseInt(code,16));
拾い上げる部分は自分でやってみて。
importでまとめて記述した場合と直で一つ一つ記述した場合とでどっちが早い?
>>330 言語仕様に継承がないんだから自前で継承関数を用意するしかない。それから extend は
「拡張」であって「継承」に使うもんじゃないよ。継承関数は inherits という名前が無難だけど
コンストラクタに _super て感じのプロパティを付け足したらいい。継承関係のチェックはそれを使って。
336 :
333:2012/05/14(月) 20:56:36.13 ID:???
誰か教えてくれ
import.jsと記述して外部ファイルにまとめて読み込んだ場合と
直に記述した場合とでどっちが読み込み早いのか体感速度はどちらが上か教えてくれ
>>336 体感できるほどの差は生まれないと思うけど、基本的には外部ファイルにしておくべき。
外部ファイルならキャッシュが働くからね。
ごめん、聞き方が悪かった
javascriptは全部外部ファイルにしてるけど
それの二重化について聞きたかった
それと比べても大した差は無いのかな??
そりゃあ、メインのスクリプトを読み込んで、
その後、別にimport.jsを別にリクエストする必要があるだろ?
chromeのデベロッパーツールのNetworkタブとかで比べてみたらどうよ。
あれはtimelineでるし。
firebugでも似たような機能あったはず。
>>335 >>332に書いてあるような事をしなくても
文字列に戻るんだよ
だから好きにしろとレスしたんだよ
何も試してないだろ
>>341 すみません。そうじゃなくて文字列としての"\\u...."を元に戻す、ということです。
JSONなんかだとユニコードはエスケープされちゃいますよね。それを戻したかったんです。
JSONだったらJSON.parseすりゃそれで戻るだろ?
というかJS上で扱うなら何ら意識する必要は無いと思うんだが。
元に戻すの「元」って何だ?
>>338 何となく想像はつくけど二重化って何?
import.jsのコードがないと何ともいえないんじゃない?
二重化はオレオレ用語?
>>338 別呼び出しのが早い
cssのimportみたいにまとめてリソースのリンク置きたいんでしょ?
import.jsが余計なリソースになるから別々に呼び出した方が早い
てか、試せよ
349 :
Name_Not_Found:2012/05/15(火) 08:56:22.74 ID:bnGMps1o
<p id="hello">Hello World</p>
としておいて、
$("#hello").hover(function(){
$(this).append("<p class=hoge>hoge</p>");
}, function(){
$('.hoge').remove();
});
と書いて、hoverで追加、削除はできたんですが、
hogeをクリックした時にも削除したく、
$(".hoge").click(function(){
$(this).remove();
});
と書きましたが反応がありませんでした。
どうすれば hoge をクリックして要素を削除できますか?
$(".hoge").click(
した時点でclass="hoge"の要素が存在してるか考えろ
$(".hoge")で何が返ってきたか調べろ
>>350-351 ありがとうございます。
hoverのなかに書けば動きました。
$("#hello").hover(function(){
$(this).append("<p class=hoge>hoge</p>");
$(".hoge").click(function(){
$(this).remove();
});
}, function(){
$('.hoge').remove();
});
ただ、よくわからないんですがブラウザ上で要素が見えてるのに
実際の要素は存在しないのは何故なんでしょうか?
>>349の
$(".hoge").click(
を実行した時点で、存在する&見えてるなんて
なんで断定してんの?
根拠を教えてほしい。
>>351がいうように何が返ってきたか調べたか?
>>353 $('.hoge').mouseoverでマウスが乗ってるのに反応がなかったので。
[object Object]が返ってきてよくわかりませんでした。
最近JavaScriptの本を買って読み始めたのですが、本の通りに記述しても機能しません。
自分では何度も確認して誤植ではないかと調べたのですが原因がつかめません。
間違いがあれば教えてもらえませんか?
【環境】 Mac OS 10.7.3 GoogleChrome 18.0.1025.168 FireFox 12.0
【何をしたのか】参考書の通りコードを記述。
【期待する結果】記述したコードがページに反映される。
【サンプルコード】
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML作成の練習</title>
<!--ここからJavaScript-->
<script>
document.write("\
<style>\
body{\
background-color:#ff0000;\
}\
</style>\
");
</script>
<!--ここまでJavaScript-->
</head>
<body>
<h1>headにJavaScript</h1>
<p>今回はここのテキストは何の意味もありません。JavaScriptはheadの中に書かれていてdocument.writeしています。</p>
</body>
</html>
document.writeは時代遅れ
窓から投げ捨てろ
359 :
356:2012/05/15(火) 12:25:29.04 ID:???
>>357 あれ・・・・ちゃんと動いてますね。
半角スペースは入ってない事を確認してます。
jsfiddleで私も確認しましたが、テキストエディットからコピーorレスからコピーしても
動きませんね・・・
>>357さんのリンクからみるとちゃんと機能しているようなのですが。
参考書はHTMLとCSSで基礎から学ぶウンタラカンタラです。
360 :
356:2012/05/15(火) 12:26:49.21 ID:???
>>358 そうなんですか!?
去年発行の本だし情報は新しいものと思っていました・・・
書名、著者名、出版社を教えて。
>>356 コードには問題ないから手元のファイルにケアミスがあるはず。
参考書はそれで問題ないよ。
ウンタラカンタラとかよくそんな妖しいタイトルの本を買うよな
>>357-358 >>361 お前ら程度低いな。なにかを勉強するときには順番ってものがあるだろう。
書籍なんて
>>356の情報から調べればすぐ出てくるじゃん。その程度の検索もできないオバカさんか。
356の情報だけで分かるんなら書いてやれよ
366 :
356:2012/05/15(火) 12:42:07.77 ID:???
>>361 HTMLとCSSで基礎から学ぶJavaScript
園田誠
秀和システム
です。
>>362 そうですか。何度も確認したつもりだったのですが・・・もうちょっとミスが無いか探してみます。
ちなみに
>>356で書いたコードをコピペしてもちゃんと動きますか?
著者は元バイク便ライダー
いまは独立してライター
370 :
356:2012/05/15(火) 12:55:03.80 ID:???
>>367-368 解決しました!
エンマークをバックスラッシュに変えたら動きました;
エンマークで書いてあったのでそのままテキストエディットに同じように書いていたのですが、
それではダメだったんですね・・・
あーmacか見落としてたわw
372 :
356:2012/05/15(火) 13:04:26.25 ID:???
>>371 macだとエンマークとバックスラッシュは別物として扱われるんですか?
>>366 秀和システム はまともな本一冊もないよ。オススメはオーム社。
>>372 Windowsは同一として扱われるけどLinuxとかは別物の場合が多い
Linuxを巻き込むな
376 :
Name_Not_Found:2012/05/15(火) 14:04:23.84 ID:8d3VF4fA
描画のタイミングを教えて下さい。
何故以下のようになるのでしょう。
selectで枠だけ複数作っておいて、
domでoptionを一気に追加しています。
domはbodyの一番最後に書いていて、
そうすればformの描画は先に表示され、
要素の追加は水面下で行われる。
つまり見た目上の待ち時間を減らせるかと思ったんですが、
結局body最後のScriptが終わるまで画面全体が表示されません。
>>352 は全く分かってないな
clickが実行されるタイミングも、
オブジェクトの内容を知る方法も
bodyの最後にあっても意味なし
頭の中完全にWindowsだけで知識を蓄積してきてるやつが
「あーMacか、じゃあわからん」みたいな反応が結構好きな俺はドSなのだろうかw
逆も又然り。
日本語でおk
やつが、反応が、って
単に性格が悪いだけだろ。
S に失礼。
腐れマカーは迷惑かけるなよ
384 :
384:2012/05/15(火) 19:48:51.70 ID:???
insertRow・insertCellの挙動について質問です
■質問テンプレート
【環境】win7,IE9(64bit)
【何をしたのか】下記参照
【期待する結果】<table id="idName"></table>へセルを追加したい(仕様の確認)
【サンプルコード】
var tblId = document.getElementById("Table1");
for(var n=0; n<5; n++){
var row= tblId.insertRow(n);
for(var i=0; i<2; i++){
var cell= row.insertCell(i);
cell.innerHTML= "テスト";
}
}
テーブルA
<table id="Table1" border="1"><tr></tr></table>
テーブルB
<table id="Table1" border="1"></table>
テーブルC
<table id="Table1" border="1"><tbody></tbody></table>
テーブルD
<table border="1"><tbody id="Table1"></tbody></table>
上記のスクリプトを実行して下記のテーブルに追加する場合
テーブルAのみ追加挿入する事ができましたが他の記述だと追加されません
insertRowとinserCellの説明通り既存のテーブルから「追加」しかできないのでしょうか
jQueryを使えば解決
>>381 揚げ足取り乙w
>>383 レッテル貼り乙w
そういう回りくどい表現をするから周りを巻き込んで話がおかしくなるんだよ
>>382のように直接的な表現を使うべきだ
JavaScriptはじめてまだ間もないんですが、初心者がなるべく簡単に作れるものって何がありますかね?
HelloWorldはもう試しました。どういうのを作りたい!っていう明確な目標ができないのです・・・。
こういうのは初心者がなんとか頑張れば作れるんじゃねってのを上げてもらえると助かります。
簡単にモチベーションを高める為にはエロだな。
Picasa API を使っておっぱい画像を集めてこのスレで共有しなさい。
できました!
とてもよいおっぱいが集まるのでここにはアップしないでおきます
マジかよ
俺もjava勉強するわ
>>391 javascript と違って java にはテンプレート継承が無いから、おっぱい画像は集まらないよ
393 :
Name_Not_Found:2012/05/17(木) 10:35:40.40 ID:mmhG6JAj
現在のURLにquery stringをくっつけてリロードするようなJavaScriptを書いています。
通常は
document.location.search = '?key=value';
だけでリロードしてくれるのですが、IE7だとリロードされません。
document.location.search = '?key=value';
document.location.reload(true);
とすると、リロードはするのですが、「?key=value」がつかず同じURLをリロードしてしまいます。
というわけで、IE7でも指定したquery stringつきでリロードする方法を教えてください。
よろしくおねがいします。
location.href
395 :
393:2012/05/17(木) 11:28:11.25 ID:???
>>393 すみません、393は勘違いでした。document.location.searchは関係なかったです。
お騒がせしました。
OpenSpcを超えるサンプルサイトをおしえて
397 :
Name_Not_Found:2012/05/17(木) 11:57:22.47 ID:j3sMY+PC
【環境】windows7 home premium servicepack1, IE9
【何をしたのか】IEのコンテキストメニューに現在開いているページのURLを引数として外部プログラムを起動するメニューを追加する。
【エラーメッセージ】location.hrefを文字変換するところで"書き込み出来ません"となる。
【期待する結果】別のスクリプトでもいいので同様の機能を実現したい。
IEのコンテキストメニューに現在開いているニコ生ページのコメビュを開くメニューを追加しようとして、
レジストリの HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ キーに
メニュー名でキーを作成し、(規定)の値に"file:///(.htmlファイルのパス)"を設定、
その.htmlファイルの中に以下のコードを書きました。
<HTML>
<SCRIPT LANGUAGE="JavaScript" defer>
function runnicoTicker(location) {
var ws = new ActiveXObject("WScript.Shell");
ws.Run("\"P:\\AppFolder\\nicolive\\ncv\\NiconamaCommentViewer.exe\" \"" + location + "\"");
}
var oWindow = window.external.menuArguments.top;
while(true) if(typeof oWindow.document != 'unknown') break;
console.log(oWindow.location) ;
console.log(typeof oWindow.location);
console.log(typeof oWindow.location.toString);
console.log(typeof oWindow.location.href) ;
console.log(typeof oWindow.document) ;
runnicoTicker(oWindow.location);
</SCRIPT>
</HTML>
398 :
397:2012/05/17(木) 12:14:48.87 ID:j3sMY+PC
>>397 これを実行すると
6行目のlocationを文字列変換してコマンド実行文を作るところで"書き込み出来ません"というエラーが発生します。
コマンド自体は(URLの引数がない形で)実行されてコメビュも起動します。
http://blog.xole.net/article.php?id=649 の記事を参考に
10行目ででウェイトをかけているのですが、
コンソール出力が
console.log(oWindow.location) →(urlが出力)
console.log(typeof oWindow.location) →object
console.log(typeof oWindow.location.toString) →unknown
console.log(typeof oWindow.location.href) →unknown
console.log(typeof oWindow.document) // →object
location.hrefのコンソール出力でURLが出力されている記事の状況とはことなり、
location.hrefのタイプがunknownのままであるため"書き込み出来ません"エラーが発生するようです。
IEのセキュリティ設定で"ドメイン間のデータソースのアクセス"は「有効にする」にしてあります。
このエラーの回避方法か、別のスクリプトでの同様の機能の実現方法を教えて下さい。
399 :
397:2012/05/17(木) 12:26:49.74 ID:j3sMY+PC
>>397の追記。
レジストリのキー設定は
場所:HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\
キー名:(IEのコンテキストメニューに表示するメニュー名)
値名:(規定):REG_SZ:(スクリプトを記述する.htmlファイルのパス)
Contexts:REG_DWORD:0x21
Flags:REG_DWORD:0x0
このツールでも可能です。
→
http://www.gigafree.net/internet/context/iemenuext.html >>398の追記
IEの「F12 開発者ツール」でデバッグしたところ
ローカルタブで確認すると、
oWindow.location.hrefには種類:StringでIEで開いているページのURLが表示されています。
event.preventDefault();とreturn false;ってどっちが良いのでしょうか?
イベントの伝播はないものとします。
>>399 再現しない。
documemt.URL を試してみたら?
>>400 どちらも同じ。ブラウザによって方法が違うだけ。
1年でjavascript覚えるって目標立てたけど勉強し始めてから1ヶ月。
頭がごちゃごちゃして何を作ったらいいかわからず迷走中。
スマフォ用です。
以下のようにスクロールを禁止しているのですが、
//スクロール禁止
$('body').bind('touchmove',function(){
event.preventDefault();
});
あるタイミング(トリガーはユーザーアクションです)で、
スクロール可能状態に戻したいです。
何か手はありますでしょうか?
因みにAndroidの不具合でoverflowでのスクロール制御はできません。
初心者はmozillaのMDN見とけ
教えて下さい。
<a href="
http://example.com/aaa#bbb"></a>
このアンカーリンク以降(#bbb)をjQueryで取っ払う方法がわかりません。
自分なりにこんな感じまではやってみたのですが。
$(function(){
var clearanchor = $("a[href*='example']").attr("href");
clearanchor.str.replace(/#.*$/i, "");
});
すみませんが、教えてもらえると助かります。
407です
失礼しました、行ってきます
410 :
405:2012/05/17(木) 18:47:57.13 ID:???
失礼しました。
preventDefault()は元に戻せない(再開できない)のは分かりました。
スクロールを一時的に禁止して再開可能な処理を考えます。
分かりません。
411 :
397:2012/05/17(木) 19:23:54.02 ID:j3sMY+PC
>>401 ありがとうございます。
documemt.URL でいけました。
なぜ?
413 :
Name_Not_Found:2012/05/17(木) 21:35:31.48 ID:FnAYoLxT
>>410 逆に考えればいいんじゃね
ある特定の条件のときに、preventDefaultするって
414 :
405:2012/05/17(木) 22:18:52.50 ID:???
>>413 設計レベルから色々とおかしかったのでちょっと上と戦ってきます
お騒がせしました
シートが複数あるエクセルを読み込むことは可能でしょうか?
csvを読むみたいに、カンマ区切りとかで。
クライアントのjsだけで行いたいんですが、
中々いいサイトが見付からなくて。
それはWeb制作板の範疇?
ローカルの話なら ADODB.Connection を使えばいい。
カンマ区切りではないが、データベースとして操作できる。
サーバ上にファイルを置くなら、.xlsx は簡単に xml に変換できるから、
JavaScript から読み込める。
>>417 ありがとうございます
ひとまずそれらを調べて試してみます
度々すいません
ADOはSQLサーバーも何もないんですが、動きますか?
あるのは、エクセルとhtml、jsファイルだけです
何もいらんよ。Excel すら要らない。
ありがとうございます
エクセルすらいらない…
意味が分かるまで色々調べてみます
PCすら要らない
解脱さえできれば肉体すら必要ではなくなる…
jsfiddleってもっとフォント大きくできないのかな・・・。
見づらい・・・
javascript:void(0); がhrefに指定されてる要素をクリックすると隠し要素がでてくるっていう動作って何がどうなってるの?
URLを出せよ
ニコニコ動画の上部ナビゲーションのドロップダウン
hoverしたときに出てくるように指定してある。以上。
正確にはmouseover
あ、そういうことか、トンクスございます
iPhoneのブックマークレットを考えてるんですが、下のブクマを発動、して範囲選択してから二本指でタップして
Google検索ってのをやりたいんですが現状window.licationなので新しいウィンドウで開けないんですが
どこをどういじったら新しいウィンドウで開けるようになるのでしょうか…
window.openも試したんですが書き方が悪いのかなんか上手く行かないんです…
javascript:document.addEventListener('gesturestart',function()%7Bwindow.location='
http://www.google.co.jp/search?q='+encodeURIComponent(window.getSelection());%7D,false);
>>432 レスありがとうございます。
それは試してみたんですが、
iphoneは範囲選択からのブックマークレット発動ができないので
@ブックマークレット発動
A範囲を選択
B画面のどこでも2本指でタップ
C新しいウィンドウで選択した部分のGoogle検索が開く
って手順にしなきゃいけないみたいなんです。
どうすればいいのやら…。
434 :
Name_Not_Found:2012/05/20(日) 07:45:29.59 ID:8XYWTDlo
『朝鮮総連』は色々な企業のホームページからホストコンピューターに進入し、自分達が隠したプログラミングを引き出す…他人の会社のサーバーに『挺陝馗操作』や『改竄red-hat』のクラッカープログラム保管場所にしている。
配られたCD-R等のメモリ(記録メディア)のゲームは『ハッキング』だけでは無い『リアル銀行襲撃、窃盗、破壊と殺人プログラミング』も含まれる。
札幌市立啓北商業高校の野島(横濱)えり Microsoft USA co.tp.
弖十=TEN10(teto)=優多野手頭=野慈蚕=帝跿(徒)=衛鴉朧 笑狸乃雉匯
еёжЭЮЯабЧЦХЛθ γδεζηθ
еопое νξδεζηθ
Eleonora de' Medici.
A(E)rena Oda Medici Lancasta Vintevecom Yokohama
>>432 あっ、すみません、ほんとだ。
functionに設定したらいけました!
ありがとうございます(`・ω・´)
感謝感謝。
>>435 感謝もいいけど、完成したものを披露してほしいな。
>>437 すみません笑
選択部分をGoogle検索(選択>2本指タップ)
javascript:document.addEventListener('gesturestart',function()%7Bjavascript:window.open('
http://www.google.co.jp/search?q='+encodeURIComponent(window.getSelection()));%20%7D,false);
これで、あっ気になるけど打つの面倒だなって言葉を発見したら
このブックマークレット発動してもらって
んで気になる部分を選択してから
二本指でどこでもいいのでタップすると
新しいウィンドウで検索したい文字がGoogle検索として出ます!(`・ω・´)
あっ、すいません
上でもいけますが
JavaScriptがダブってますね
javascript:document.addEventListener('gesturestart',function()%7Bwindow.open('
http://www.google.co.jp/search?q='+encodeURIComponent(window.getSelection()));%20%7D,false);
これで。
>>439 いろいろ応用できそうだね。参考になります。
ご苦労さま。
>>436 jsfiddle.netの使い方が解ってないんだろうな多分
Choose Frameworkって所をonLoadからhead(no wrap)にすると動く
http://jsfiddle.net/zDf73/3/ onLoadはloadイベントを追加して、その中にjsウィンド内の内容を書き出すんだけど
そうなるとtooltip関数はそのloadイベント内の関数という扱いになる
なのでaaaaにマウスオーバーしても表示されない
欲を言えばaaaaに記述してあるonmouseoverを
addEventListenerやattacheEventで追加する事をおすすめする
no wrap(head)だった
テーブルのセルをソートしたいのですが
実装する仕組みが分かりません
流れをどなたか教えてください
JavaScript テーブル ソート
でぐぐれよアホ
わかんない時の〜でググレ
知識なくても回答できるって簡単だよな
なにいってんだこいつ
450 :
Name_Not_Found:2012/05/21(月) 12:24:20.37 ID:wuvhyASM
>>443 こんなの用意して
[
{ index : 0, row : <tr>要素, cel : [<td>1の中身,<td>2の中身,...,<td>mの中身] },
{ index : 1, row : <tr>要素, cel : [<td>1の中身,<td>2の中身,...,<td>mの中身] },
:
{ index : n, row : <tr>要素, cel : [<td>1の中身,<td>2の中身,...,<td>mの中身] },
]
sortメソッドの引数に比較用関数渡して、ソート対象にしたい列の<td>の中身でソートして、
indexが変わったところの<tr>を入れ替えてる
おいらのやり方だからもっといい方法はありそうなんで
詳しくはググるか、この後に出てくる賢人に聞いてw
cellだろクズ
おいらってのはタラコの遺伝か?
console.log("あ" < "い") // true
console.log("あ" > "い") // false
console.log("あ" == "あ") // true
javascriptでは文字列をバイナリセーフで比較できるんですか?
これたたまたまこういう結果になっただけですか?
アクセント付き文字が、バラと合成文字で同じになるかどうかは
規定があるんだっけ?
サロゲートペアの文字は大小関係がコードポイント順とは限らない。
"\x01">"\x00"
とかいろいろ試してみたら?
サロゲートペアで比較してると思っていい?
. と aを比較したらaが大きかった
. は \x2E、a は \x61 だからaが大きいのは自然じゃない?
ついでに
あ は \u3042
い は \u3044
>>456 サロゲートペアは、BMP以上の文字を16bit×2文字で表す方式。
例えば土吉のU+20BB7をU+D842、U+DFB7とするみたいに。
んでこれは実行しているファイルの文字コードに影響があるのかどうかkwsk
ファイルの文字コードに関係なくUnicodeで比較すると考えていい
漢字を比較したいときは、普通は漢字ではなくふりがなで比較する
と認識してるけどどうかな?
とりあえず文字コード順でのソート。
<!DOCTYPE html>
<html><head><title>???</title>
<script type="text/javascript">
function test(c) {
var t0 = document.getElementById('t0'), k0 = [];
for(var i = 0; i < t0.rows.length; ++i) k0.push(i);
k0.sort(function(i, j) {
for(k = 0; k < c.length; ++k) {
var s = t0.rows[i].cells[c[k]].innerHTML;
var t = t0.rows[j].cells[c[k]].innerHTML;
if(s < t) return -1; else if(s > t) return 1; }
return 0; });
var t1 = document.createElement('tbody');
for(var i=0; i<k0.length; ++i) t1.appendChild(t0.rows[k0[i]].cloneNode(true));
t0.removeChild(t0.firstChild); t0.appendChild(t1);
}
</script>
</head><body>
<table id="t0" border="2"><tbody>
<tr><td>あ</td><td>し</td><td>の</td></tr>
<tr><td>う</td><td>そ</td><td>な</td></tr>
<tr><td>お</td><td>し</td><td>な</td></tr>
</tbody></table>
<div><button onclick="test([2,1,0])">sort</button></div>
</body></html>
>>143 >>144 >>145 >>146 これってネタじゃなくて本当だったのか・・・。
prent.parent.parent.parent.documentを短縮する方法ってないですか?
parent^4.documentみたいな
javascriptは内部ではUTF-8で扱ってるから比較でもUTF-8なの?
UTF-8で比較されたら何か困ることでもあるのかね?
何があっても、容量がどーなろーと必ずUTF-8使え
もうこの世にはUTF-8しかないものと思え、BOMとかあるけど
466 :
Name_Not_Found:2012/05/21(月) 20:32:59.94 ID:wuvhyASM
>>462 function p(n){
var ret = self;
if(n > 0) (function(n){
if(!!ret.parent) ret = ret.parent;
if(n > 1) arguments.callee(n-1);
})(n);
return ret;
}
いま思いつきで書いたんで、動くかどうかすらわからんですがw
だって将来的にはUTF-16にwebは移行するじゃん
>>463 内部はどうか知らないけど、プログラムからは文字はUTF-16で返される。
UTF-8じゃない。
UTF16が返るとする根拠は?
UTF-8のバイトシーケンスが返ってくるでもなし、
U+FFFFを超える文字はサロゲートペアで返されるし。
UTF-16でしょ?
"Ch\u00E2terais\u00E9" != "Ch\u0061\u0302terais\u0065\u0301"
だった。そりゃそうか。同一視したければ自前で正規化しないといけないのね。
"Cha\u0302teraise\u0301"か、なるほど
いわゆる半角英数が2バイトになるのを嫌ったから
UTF-8(半角英数は1バイト、大部分の漢字などは3バイト)
といういびつなものが生まれたんだろう
いびつかなぁ。
ASCIIの範囲がそのままってのは、
プログラミング言語だの各種設定ファイルだのが
そのまま使えて便利じゃん。
で、UTF-16ってなんなの?JavaScriptはUTF-16だよって聞いたからファイルをUTF-16にしたら動かないし
結局、UTF-8なんでしょ?UTF-8でいいんでしょ?
HTMLやJavaScriptの記述はUTF-8(が多い)
Ajaxの通信はUTF-8
でもJavaScriptの内部的な処理(大小比較など)はUTF-16
UTF-16で記述しても動くよ
書き方が間違ってるんだろう
そもそもファイル上の文字コードと内部の文字コードや規格上の文字コードが
区別できないところが問題。だいいちUTF-16が何かってここで質問するような
ことかよ。それなりのトコいけば文字コードオタが沢山教えてくれるだろ。
まあググレカスくらいが無難だろうけど。
居酒屋で無口なA君
食べ物や飲み物に人に勧められてから出ないと自分から箸や手を動かせないおとなしい性格の彼
しかし、文字コードの話が出ると彼は豹変した
延々と文字コードについてこれは違うあれは違うこれはこうだと周りが付いていけない事を誰も聞いてないのに語りだす
こんなヲタが実際にいると思いますか
482 :
Name_Not_Found:2012/05/22(火) 12:52:13.94 ID:/MzyCb3P
思います!というか知っています!
普通におるだろそんな変な奴w
484 :
Name_Not_Found:2012/05/22(火) 13:36:36.70 ID:Khm3cklN
return this
486 :
Name_Not_Found:2012/05/22(火) 16:09:12.36 ID:Fx5UG5gX
Firefoxで
document.getElementById("test").previousSibling.previousSibling.previousSibling.firstChild.firstChild.firstChild.nodeValue;
document.getElementById("test").previousSibling.previousSibling.previousSibling.firstChild.firstChild.firstChild.data;
などで取得できるのを
document.getElementById("test").previousSibling.previousSibling.previousSibling.text;
と短縮して取得できるのですが、textで取得できる場合はnodeValueを使わなくても問題ないでしょうか?
textの仕様がよく分からないので検索したのですが要領を得なくて質問してみました。
var res = ~~(num - 0);
上の式の ~~ がなにかわかりません。
意味とできればどんなとき使うのかを教えて下さい。
num には小数点含む数字が入ります。
0を引くことで文字列型だったとしても浮動小数点数に変換される。
~はビット演算子の反転で~~は反転の反転だから元に戻るんだが
ビット演算子は浮動小数点数を整数に変換してから作用される。
つまり、馬鹿が調子に乗ってるということ。
var res = parseInt(num, 10);
と同じ意味。
num
num-0
~(num-0)
~~(num-0)
を出力してみた?
Math.floor(num);
の方がよかった。可読性もベンチも。
そりゃ一旦文字列に直した上でまた数値に戻すからな
当然floorの方が良いに決まってる
num = 'abc'; のときに…
ホントにベンチ取ったのか?
xは小数が入った文字列
早い
parseInt(x,10);
x|0
Math.floor(x)
遅い
xが小数(文字列ではない)だと逆で
早い
Math.floor(x)
x|0
parseInt(x,10);
遅い
496 :
Name_Not_Found:2012/05/22(火) 18:37:51.17 ID:ncYCQNBQ
最適化が上手くいく場合のみ関数でも演算子と代わらないくらい高速にできるだけで
いろんな環境を考慮したときに一番ベストなのは|0とかを使う方法
第一ただのたいしたことない計算式に大袈裟に関数使ってたら全体として可読性が落ちる
もっと言うとparseIntは第二引数が見苦しい
Mathなんてつくのもただの計算式のなかでは冗長過ぎて見える
せめてInt=Math.floorくらいにすべし
一番ベスト
などと意味不明な供述をしており動機は今だ不明であるものの余罪についても追及していく方針であります
>>488 厳密には、parseInt()と~~はちょっと違う。
~~は32bit整数、parseInt()は53bit整数。
500 :
Name_Not_Found:2012/05/22(火) 20:32:16.36 ID:/MzyCb3P
二番ベター
x|0は32bit整数、Math.floor(x)は53bit整数。
1番ベターはおかしくないだろおら、ベストだってことだよ
あとMath.floor()は一般的に64bit浮動少数だから
最近のブラウザで内部で100%整数になるのは32bit切るときだから
情弱がえばるなよw(笑
以上代弁してみた
×浮動少数
○浮動小数点数
×えばる
○威張る
威張る
えばる
eval()
eval イヴァゥュ
evaluate イヴァゥュエイトゥ
evaluation イヴァゥュエイシャン
>> 487 です。
みなさん回答ありがとうございました。
結局結果としては整数に直す、ただし文字列である場合を考慮して、ということですね。
勉強になりました。
Ajaxをアジャックスと読んでるのは俺だけじゃないはず
サッカー好きならアヤックス。
ゲーマーならエージャックス。
昔、A-JAXというSTGがあってな・・・
βακαのコード
x = Math.floor(x);
俺のコード
x|=0
超クール!!
算数苦手だから計算系のスクリプト書くの難しい
x|=0は32bit整数、Math.floor(x)は53bit整数。
計算するとき(((()(()()))()()))とかって書くのがめっちゃ好き
知り合いに「変数使えよ馬鹿」って言われるけど
同じ事を繰り返して貼ってる奴、大丈夫か?
ラー・カイラム級戦艦エイジャックスというのがあってだな
>>516 なるほど。
ガノタ、アニオタがエイジャックス読みするのか
大理石マニア、又は競争馬好きならアジャックス。
俺はmf=Math.floorってやってるわ
4..floor()とかできると楽なんだけどな
などと意味不明な供述をしており動機は今だ不明であるものの余罪についても追及していく方針であります
>>521の意訳としては「僕の理解出来ない事を語るな」でOKなんかね
523 :
Name_Not_Found:2012/05/23(水) 04:00:19.39 ID:GlUefz2G
ネイティブコード
ブラウザ内蔵のコード
ユーザがソースを見られないコード
>>525 Jesse James Garrettがガノタとは考えられないか?
エイベックスのステマ
ステマのステップマニア
window.addEventListener('keydown', function(e){〜}, false);
これを
window.attachEvent('onkeydown', function(e){〜});
って書いても変数eが渡りません
document
JSて3000行書いても結局のところ真と偽の集合体だから覚えるの簡単だろwww
とか思って未だ全然覚えきれてませんでしたすみませんほんと
MITやLGPL,Apache2.0ライセンスで公開されている、
圧縮されていないJavaScriptのライブラリを複数使ったサイトを作る際に、
全部のJavaScriptを圧縮と結合して配置する場合、
全部のライセンス表記を、たとえば圧縮結合されたコード先頭に付加すれば
ライセンス的に問題無いでしょうか?
>>531 「真と偽の集合体」って何だ?
デジタルだから0と1みたいな話?
safariだけpreventDefaultでF5をキャンセル出来ません
window.addEventListener('keydown', function(e) {
e.preventDefault();
}, false);
ググってもどれも解決してる記事が見当たらないんですがバグですよね?
>>534 と似たような認識。
自分の場合は頭にtrueとfalseしかない
まぁそりゃ最終的には全部trueかfalseだけどさぁ
それだったら英語も通じるか通じないかの2通りに
538 :
Name_Not_Found:2012/05/23(水) 17:22:29.62 ID:w3iKNJIl
【環境】WindowsXP-Pro,Firefox12.0
【何をしたいのか】
ブラウザからJavaScriptを介して同一フォルダのプログラム(アプリ)にアクセスしたい
【期待する結果】
ローカル環境でHTMLファイルからJavaScriptを介して同一フォルダで既に起動済みの
プログラムの関数(外部との連動が可能なように設定してる)を動作させたいです。
ブラウザ内に埋め込まれたFlash(SWF)なんかは str0 を abc.swf とかにして下記でブラウザ
に認知させることが出来ますが、別個に動いている場合のプログラムの参照方法が分かりません。
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[str0];}
else {
return document[str0];
}
構成を模式化すると、 フォルダ[ HTMLファイル →(値)→ プログラム(アプリ) ] となり、HTMLの
例えばJavaScriptで var nn が 1, 2, 3 ・・ → 100 で段階的に変化すると、コレに応じて
プログラムが10, 20, 30 ・・ → 1000 と計算&出力するようにしたいです
Socket接続は考えていますが、同一フォルダなのでもっと簡便な方法はないかと探しています。
また、ローカルでWebとは切り離されているのでセキュリティは考慮しなくて良いと思ってます。
条件分岐は昔友だちとゲーム作りしてた時に頻繁に使ってたからわかるけど配列とか{}とか[]とかの使い分けを理解しようとすると頭が逝かれそうになる。
今時の正しいオブジェクトの作り方を教えてください
var test = new Object();
test.title = "初めてのオブジェクト";
test.width = 100;
alert(test.title);
こういう書き方は古いですか?正しいですか?
別に古いとは思わないけど
var test = { "title" : "初めてのオブジェクト" , "width" : 100};
と書くことはできるね。
なるほど
その書き方いいですね
その書き方で書くことにします
a.jsに
var test = { "title" : "初めてのオブジェクト" , "width" : 100};
b.jsに
var test = { "title" : "そろそろ慣れてきたオブジェクト" , "width" :999};
って宣言したとします
これらはどっちも同じ変数にいれてるんで片方が上書きされてしまいます
これを上書きされないように共存する方法はありませんか?
無理
仮に共存できたとしてどう使い分けるんだ
546 :
Name_Not_Found:2012/05/23(水) 19:44:12.84 ID:N/Qa+Q/I
548 :
543:2012/05/23(水) 20:24:20.41 ID:???
たとえば
function a(){
var test = { "title" : "初めてのオブジェクト" , "width" : 100};
alert(test.title);
}
function b(){
var test = { "title" : "そろそろ慣れてきたオブジェクト" , "width" :999};
alert(test.title);
}
こんな感じでブロックの外にまで影響が及ばないって書き方はできませんか?
そうすればいいじゃん
ということで終了
550 :
543:2012/05/23(水) 20:37:29.64 ID:???
終了するときは自分で言います
関数名は定義したくないんです
AMD的な感じでやりゃできんじゃないかね
同じ名前の変数を別の内容で定義して何するんだよ
馬鹿か
553 :
543:2012/05/23(水) 20:56:18.87 ID:???
あれなんですよ
プラグインとか使うとごくまれに変数が被ることがあるのにちゃんとなりたってるじゃないです
例えばGreaseMonkeyで
変数名がかぶっても大丈夫なようにどんな対策をするのが一般的か知ってるか?
555 :
546:2012/05/23(水) 21:38:10.99 ID:???
初心者ですまん。
x++; や x--; という表記をよく見かけるが
記号部分が逆になった ++i; とかもたまに見かけるんだけどこれってどっちが正しいの?
var i = 3;
var j = 4;
var k = i+++++j;
>>558 i = 3;
j = 4;
k = i++ + ++j;
前後どちらでもやってることは変わらないのか。
どちらも正しいが、評価される順序が違うんだよ
全く同じならkは9になるはず
566 :
Name_Not_Found:2012/05/23(水) 22:25:04.85 ID:59bt/C+x
>>564 var a = 1;
alert(a++); // 1(足すはの後)
alert(a); // 2
alert(++a); // 3(足すの先)
alert(a); // 3
kの結果が最終的に8になるのはiまでは通常の処理が行われてjの処理は無視されてるのか・・・?
ぐぐっても「どちらも同じ動作をする」ってしか書いてないからよくわからぬ・・・
A.htmlからB.htmlへ遷移させるのですが
AにはBへ遷移するボタン。
Bにはアラートを出すボタンがあって、AとBのボタンは同じ位置にあります。
AでBへボタンを押下するとBへ遷移した直後にBのアラートが表示されます。
これはバブリングと関係ありますか?
対処方法はありますか?
>>566も書いてくれているが
k = i++ + ++j;
を計算順序に分解すると
i++; // 3+1→4
k = i + j; // 4+4→8
j++; // 4+1→5
遷移してるんならアラートが表示されるのはあり得ない
Bの処理がおかしいんだろ
そういうことか!
i++; // 3+1→4
j++; // 4+1→5
k = i + j; // 4+5→9
こういう認識だった。
ありがとうすっきりした
++を他の演算子と一緒に使うとわかりにくくなるだけだから
i++のように単独で使うようにしてるよ
++iを使うことはない
一般的に pre-increment の方が実行は速いと言われてるよ。
理屈は検索するとすぐ出てくる。
Perl みたいにコンパイル時に最適化されてると違いは出ないけど。
Opera と IE8 では、
for (var i = 1; i++ < 10000000;);
より
for (var i = 0; ++i < 10000000;);
の方が若干速いね。
i+=1のが速いやん
++の前後の話であって+=は違うだろ
var i = 1;
a(i++); // 1
i = 1;
a(++i); // 2
function a(n)
alert(n);
}
こうじゃないの?
うん
そのaいるのか?
絶対にいらないという理由を説明せよ
可読性を損ねる
var a = alert;
フラッシュプレーヤー上のクリックをJavascriptで実行させることはできますでしょうか?
そういう事はセキュリティ上できたらマズい。
AS側に用意があれば、JSからASのメソッドを叩くことは出来るよ
指定座標をクリックしたことにするのは無理
IEかFF、CRの拡張機能ならもれなく可能
>>584 フラッシュプレーヤーからjavascriptを呼び出してもらえばいい
そのためにフラッシュプレーヤーを自作する
さほど難しくもない
さほど難しくないなら作ってください
お願いします
具体的にどのフラッシュをクリックさせたいんだよ
フラッシュプレーヤー上のクリックをJavascriptでユーザに実行させることは簡単
objectかembedにonclickとか?
1秒ごとにalertを表示して、フラッシュプレーヤーをクリックするように命令すればいい
楽勝だ
そんなwebページに当たったら、二度と開く事は無いと思う
一回で完璧に仕留めれば問題ないと思う
なんの話してんだよww
598 :
Name_Not_Found:2012/05/24(木) 17:49:33.05 ID:rrYpWvDU
<クリックしたいオブジェクト>.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
これを関数で包んでAS側に置いておけば
JSからそれをコールすることでクリック出来る、かな
スレ違い甚だしいが
中学のとき、授業中自称天才ハッカーのヤツが無限アラートのHTMLを開かせて「俺がやった」とかクラス中に自慢して先生にバレて説教されてたな
ある意味天の才があったわけだがアイツ今どーしてんだろ
昔ハッスルキングという携帯エロ動画サイトがあったのを思い出した
おまえら本当に頭硬いな
透過に設定したフラッシュの好きな部分がマウスの下に来るように追尾させときゃいいじゃん
画面全体を透明なcanvasで覆っといてどこクリックしても発動
もしできたら洒落にならんな。
<html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<img src="./photo/3967.jpg">
</html>
?
何でマルチしてんの?ブラクラか宣伝?
ああ、確かに電子透かしとしてスクリプトが入ってるな
ありがとうございます
すいません早急に知りたかったので
マルチしてしまいました
どのようなものですかね
IP抜きといったものでしょうか?
いつからスクリプト鑑定スレになったんだ?
踏んでみたけどよくわからん。何もない気がする。ただただ画像があるだけ。
画像にスクリプトが仕込まれてる?とかだったらわからん。
そうですか
iPadからだと単独の画像ではなく
エロサイトに飛ばされるのですが
これはブラウザのエージェントによるのですかね
なんでそれを最初から書かないんだ?
お前馬鹿だろ?
リファラだろ。
ううあだろ
リファラなくても見れる
すみません、もう大分調べたのですが、自分では調べてもわからなかったので質問させていただきます。
メニューボタンを作っているのですが、
マウスオンで画像1から画像2へ切り替えて、
マウスアウトで画像1に戻さずに、
画像2を再びマウスオンすると画像1へ切り替わる
マウスオンのループを作りたいのですが、
これって作れるものなのでしょうか?
はい
調べ方が足りません
画像001.jpgと002.jpgだとして
if(画像のURL == 001.jpg){
画像のURLを002.jpgにする
}else{
001.jpgにする
}
マウスオンってマウスオーバーの事なんだろうけど、こうすれば
>>621 有難うございました。
若干ブログの仕様で画像ファイルを直接指定できなかったので、
変数でやってみたらできました。
>>621 お前O型だろってよく言われない?
解りやすくて良いとは思うけど
そういう切り替わり方するメニューボタンって迷惑だよな
>>623 O型よりもA型に間違われることのが多いですが、
実際O型で、正確もまんまO型だと思いますね。
そんなのCSSの属性フィルタで設定しておけば良いだけ
JavaScriptでロジック書く必要は無いだろ
CSSのほうが楽やね
マウスオーバー時に入れ替えられるかね?
質問は特殊なメニューボタンだぞ?
CSSだけでゲームも作れる時代なのにこれくらいのことが出来ないわけないだろ
そろそろCSSプログラミングのスレがいるな
「CSSだけ」って表現に違和感がある。
「CSSだけ」を使ってHTMLも使わずにやってみろ
FileAPIでテキストファイルを読み込んでみたいのですが
検索してみてもドラッグ&ドロップとと<input>を使った方法しか見つかりません。
直接URLを指定してファイルを開くにはどうしたら良いですか?
ファイルはc:\test.txtです。
自己解決
Inputしか無理みたいですね
そのとおり。よく気がついたね。
635 :
Name_Not_Found:2012/05/26(土) 13:08:38.44 ID:VOWhRWIF
Webサーバに情報を取りに行くXMLHttpRequestをつかったJavaScriptがあります。
IE9でデバッガ使わずに開いたときだけ取りにいってくれないんですけど、ここ調べてみろ的なことあったらおしえてください。
function json_reader(){
var req = req_generate();
req_exec(req);
}
コードは上のような感じでオブジェクトの生成と実行をわけているんですが
それぞれの関数の最初にalertいれたらreq_execのほうはポップアップでませんでした。
htmlからは↓で呼び出しています。
<script>
json_reader();
</script>
Firefox12、デバッガを起動したIE9ではとれました。
IE9デバッガはキャッシュの「常にサーバから更新する」はチェックがはずれており、ブレークポイントも設定されていません。
window.consoleでした。
テンプレ
>>633 出来ないこともない
基本的に簡単か難しいかで出来ないことはない
オブジェクトって
window
document
以外に何がありますか?
えっ?
あります
はい
えっ?
undefined以外オブジェクト
nullは意見が別れる所だけどtypeof上だとオブジェクト
オブジェクトって
window
document
以外に何がありますか?
はい
jsdo.it の初回表示が糞重いんだけどそんなもん?
ブラウザはChrome使ってるんだけど、アクセスしたら十数秒フリーズする。
その間HDのアクセウランプが点灯してる。すごい重いプラグインダウンロードしてるとか?
650 :
Name_Not_Found:2012/05/27(日) 20:42:51.26 ID:IZYlS1q5
アコーディオンタイプのメニューを作りたいときに
下記のようなスクリプトをつかって
「さらにカテゴリを増やしたいとき」
コピペではうまくいかなかったのですが
どうしたらうまくいくかご教授お願いします。
<script language="javascript" type="text/javascript"><!--
var flag=0;
function popShow1(){
if(!flag){
document.getElementById("prof").style.display="block";
flag=1;
} else {
document.getElementById("prof").style.display="none";
flag=0;
}
}
//-->
</script>
<a href="javascript:popShow1();"><b><font color="red" size=4>フード</b></font></a>
<div id="prof" style="display:none;">
<font color="red" size=4>
<a href="
http://life.mond.jp/tagx/肉類">肉類</a><br>
<a href="
http://life.mond.jp/tagx/魚介類">魚介類<br>
<a href="
http://life.mond.jp/tagx/米・雑穀">米・雑穀<br>
</div>
>>650 フンババ、ババイホ、グヌステラ、ラマイヌ
652 :
Name_Not_Found:2012/05/27(日) 21:18:12.77 ID:IZYlS1q5
>>651 フンババはFF6のボスキャラでした…
もうすこしわかりやすく教えていただけませんか><
あるプロパティが存在しないかチェックするのは以下のコードで問題ないでしょうか?
if (!window.alert)alert(0);
問題ないというとある気がする
問題あるというとない気がする
誰がこんなとんちクイズを出せと
window 自体がない環境だと。
>>655 window.alert === null でも true になる
in 演算子を使うべき
window が存在しない場合に備えるなら typeof 演算子も使うべき
ここはWEB作成板だからwindowメソッドがないことは有り得ませんwwwwwwwwwwwwwwwwwwww
おまえら全員不合格!!
window…メソッド…?
メソッド?
windowではなくWindowの事かな?
WEB…作成…?
Web=ワールドワイドウェブ
Web制作とは実に壮大である
それだとずっと続いてしまうだろw
ワールドワイドワールドワイドワールドワイドワールドワイドワールドワイド
web=ウェブを直すとこうなるぞ
あるプラグインのソートが空白が混ざると正しくソートしないので改良したいのですが
お知恵を貸していただけると助かります。
function naturalSort (a, b) {
// setup temp-scope variables for comparison evauluation
var re = /(-?[0-9\.]+)/g,
nC = String.fromCharCode(0),
x = a.toString().toLowerCase().split(nC)[0] || '',
y = b.toString().toLowerCase().split(nC)[0] || '',
xN = x.replace( re, nC + '$1' + nC ).split(nC),
yN = y.replace( re, nC + '$1' + nC ).split(nC),
xD = (new Date(x)).getTime(),
yD = xD ? (new Date(y)).getTime() : null;
// natural sorting of dates
if ( yD )
if ( xD < yD ) return -1;
else if ( xD > yD ) return 1;
// natural sorting through split numeric strings and default strings
for( var cLoc = 0, numS = Math.max(xN.length, yN.length); cLoc < numS; cLoc++ ) {
oFxNcL = parseFloat(xN[cLoc]) || xN[cLoc];
oFyNcL = parseFloat(yN[cLoc]) || yN[cLoc];
if (oFxNcL < oFyNcL) return -1;
else if (oFxNcL > oFyNcL) return 1;
}
return 0;
}
667 :
Name_Not_Found:2012/05/28(月) 14:22:52.10 ID:IHdux3Uw
ホームページの縦長のサイドメニューなのですが、javascriptでスクロール制御しています。
現状だと、それぞれ、クリックした先のページで、またメニューが一番上まで戻ってしまいます。
これを、メニューをクリックしたとき、そのページのメニュー名の上にスクロールを移動させたいのですが、何か良い方法はありませんでしょうか?
a nameの指定だとうまくいきませんでした。
どなたかご教授お願いいたします。
何を以ってナチュラルなんだ
そんな無駄な機能いらんだろ
閲覧者は次のページにいったら即座に勝手にスクロールが始まるのを期待してない
ハッシュで一気に飛ばすか何もしないのがナチュラル
>>669 「JavaScript 自然言語アルゴリズム」でぐぐるといいかも
<html>
<body>
<script type="text/javascript">
function addButton() {
var element = document.createElement("input");
element.type = "text"
var objBody = document.getElementsByTagName("body").item(0);
objBody.appendChild(element);
</script>
<input type="button" value="Add Button!" onClick="addButton()">
</body>
</html>
これはなんで動かないのでしょうか?
関数の中にalert("あ"); を入れてもメッセージが出てこないので、そもそも関数呼び出しすらできてないと思うのですが・・・
675 :
674:2012/05/28(月) 21:19:12.57 ID:???
すんません、自己解決しました
676 :
674:2012/05/28(月) 21:20:27.94 ID:/Qo5e1sv
すいません、解決してないのでお暇な人がいれば教えてください
はい
>>674 書き方が余りに古くて無駄過ぎる
取り合えず1年以内に大きく更新されたサイトか書籍使って
0から勉強し直さないと多分わからないだろう
じゃあ最新の無駄の一切無い書き方をレスしてください
680 :
674:2012/05/28(月) 21:39:29.96 ID:???
申し訳ないです。
Javascriptというかフロントサイド全般素人同然で、今早急に検証用で簡単なテストプロジェクトが欲しいのですが
せめてお時間があれば、どうして下のサンプルですらも動かないのか教えていただけないでしょうか。
簡単なキーワードだけでもいいので・・・
<html>
<body>
<script type="text/javascript">
function test() {
window.alert("test");
</script>
<input type="button" value="Add Button!" onClick="test()">
</body>
</html>
短期間で身につけようなんて甘い
フロントサイド以前にプログラムも素人だろ。
若しくはPythonとかしかした事無い人間か。
>674
古いとか無駄とか知らんけど、
function addButton() { hoge } ← この閉じるカッコが無いだけ
Firefoxでエラーコンソール開いて実行したら、「missing } after function body」だってお
>>682 すいません、JavaやC#は一応やってるんです・・・
ただ普段はIDE頼りでした
素人なのはその通りです
>>683 本当にありがとうございました
javaファイルを開こうとするとすぐ閉じちゃうんですが、
閉じないようにするにはどうすればいいか分かる方いますか?
開いて接着剤で固定
>>685 javaファイルって、ソース? クラス?
閉じるってのは、新規で開いた窓?
>>688 メモ帳で作成したコードに名前を付けて保存するときに「.java」を付けてjavaファイルにするじゃないですか
それを開こうとするとコマンドプロンプトの黒い枠みたいのが一瞬開いてすぐ閉じちゃうのです
スレ違い
>>691 まあすれちがいなんだけど、拡張子と関連づけでくぐるのが一番早い
YUI使ってる人いますか?
デフォルト以外のスキンの入手先ってどこかあるんですろうか
694 :
Name_Not_Found:2012/05/29(火) 10:50:04.29 ID:Ve4olBqX
教えてください。現在ライブカメラをISDN回線でしてますが、今度、光回線に変えようと思うのですが
回線工事は業者さんが行いますが、こちらのホームページ側の設定はどうすればよいのですか?
現在は固定IPですが、そこだけを変えればよいのでしょうか?
はい
すみません
今度秋吉台にキャンプに行きます
いってらっしー
火を起こすのにイベントの発火を用いようと思っているのですが
どのイベントで起こした火が一番美味しくご飯が炊けますか?
699 :
Name_Not_Found:2012/05/29(火) 20:03:12.22 ID:dFTNNAXA
JavaScriptを無効にするブックマークレット ってどうやるの?
700 :
699:2012/05/29(火) 20:08:01.79 ID:???
だいたい出来た。ありがとうございました。
全て無効にする事は不可能
例えばローカル変数内にフレーム作ってコンテントウィンドウ取れば1000%無敵
WWW=ワイルド・ワード・ウェブ
Ajaxの非同期の意味ってページ遷移があるかないかなんですか?
それともtcpセッション的な話なんですか?
Ajaxにページ遷移はある?
スレッド処理的な非同期
非同期=先輩&後輩
javascriptで好きな時にアクセスできるかどうかだろボケ
ページを憑移させないでサーバーからスクリプトを使ってデータを取ってくること
まあバズワードだよね
Ajaxと言いつつ別段XMLじゃなくてもいいんだし
用語だけが一人歩きしてる感がある
706と710の意味が分からない
ajaxでページ遷移とかって表面的な話しじゃないの?
UI画面はWeb鯖に置いたHTML&JSのみで構成。
JSからajaxでアプリケーション鯖とは描画用の
データ(JSON/XML)しかやりとりしない形にすると
疎結合で保守性も上げられると思うんだけど。
webデザイン担当と分業もしやすいし。
716 :
Name_Not_Found:2012/05/30(水) 15:04:03.04 ID:WtDsKCHj
関数内でのajaxでの実行結果を、その関数から返したいんだけど、
こんな書き方だと、nullが返ります。
これを、ajaxの実行結果を関数の実行結果として返すには、どう書けばいいでしょうか?
var func1 = function(){
var result = null;
$.ajax("example.php")
.done(function(respFromPHP, message){
alert("success=" + respFromPHP);
result= respFromPHP;
})
.fail(function(respFromPHP, message){
alert("failed=" + respFromPHP.readyState);
result= respFromPHP.readyState;
});
return result;
};
var valueFromPHP = func1();
alert("valueFromPHP: "+valueFromPHP); // ←nullが返る
>>716 ・setTimeoutでnullチェックする
・delegateを使う
・ポインタ渡しにしてポインタで受け取る
・同期にする
どれでも好きなやつで。
>>717 ありがとうございます。
>・同期にする
目的として同期処理なのに、非同期処理させてました。面目ない。
同期処理に書き換えてテストしてみます。
jsでの同期処理は愚策
<p id="t1">test</P>
t1.className = "st1";
t1.className = t1.className + " st2";
こんな感じで、条件を満たす時に、スタイルの追加(変更ではなく)をしていますが、
もうちょっとスマートに追加する方法ってありますか?
jQueryを使いたまえ
>>720 t1.className += " st2";
こういうこと?
まあjQueryを使うとスマートにはなるが
jQueryが泥臭い処理を代行してくれてるだけなんだよな
724 :
703:2012/05/30(水) 22:43:26.24 ID:???
いろいろありがとうございます。
結局、ブラウザの遷移とかhttpセッション開きっぱなしにしてどうこうは別の話で
同期、非同期はxmlHttpRequestのオブジェクトがsend()したあとに、httpレスポンス待って次の処理に移るか、待たずに移るか。単純にそれだけみたいです。
同期通信でも別にページ遷移せずにできるのに。自分は何でAjax=ページ遷移しないみたいに思い込んでたんだろ。
ちなみにMDNでは同期通信使うべきじゃないっていってますね。
>>720 t1.classList.add("st1");
t1.classList.add("st2");
>>725 ie7でうまくいかなかったんですが、対象ブラウザはいくつからでしょう…
古いIEでもMDNとかの互換用コード読み込んどけば動くよ
やはりDOMと属性操作はjQuery1択だな
<a href="" onclick="send()">送信する</a>
function send()
{
var a = this;
$(a).text("送信中・・・");
$.ajax({
url: '
http://mysite/r.php',
type: 'POST',
data: ああ',
success: function () {
$(a).unbind("click", send);
$(a).text("送信しました。");
},
error: function () {
$(a).text("送信失敗");
}
});
return false;
}
これってスマートですか!
・リンクのhrefが空欄なのはよくない
・リンクだとページ遷移しそうな印象を与える
Lightboxの類かと思ったけど、Pictlayerとかいうただ画像をポップアップするだけのプラグインだった
具体的な質問じゃなくて恐縮ですが
JSXって、みなさんてきにはどうですか?
>>737 知りませんが、あなたはどうなのですか?
DeNAに期待することは何もない。詐欺会社らしく広告でも埋め込む仕様なんじゃないの?
正直、名前にセンス無いから流行らないだろうな、ぐらいしか
JSExとか大胆な名前なら流行る
最適化で速度20%upとかいう詐欺広告を既に打ってるところがDeNA
もしかしたらスマホでモバゲやるときは速度アップさせるのかもしれんがw
743 :
Name_Not_Found:2012/06/01(金) 21:41:09.69 ID:PSc2Zwwj
>>743 上のサイトの場合、使用ブラウザの JavaScript サポート状況の
判定結果がページ上部に記載されてる。
↓Opera 11.64
Your browser may not support all of the functionality in this article.
ただ、そもそもどっちのサイトも画像を表示する様なデモではないと思うんだけどな。
おっぱいうpしてくれたら、全力で協力するyo!
745 :
743:2012/06/02(土) 00:06:12.24 ID:FaBLPp+c
743に書いたURLにはフラグメント識別子も付けていますが
その箇所のデモはカーソル近くに画像が表示されるデモだと思います
Chrome19だけど、ドラッグするとGoogle logoとかの半透明のやつが出てくるよ。
一回目は出なかったりしたけど。ロゴの読み込みが遅いのかな?
ブラジャー識別子をうpしてくれたら教える
どこで質問させていただけばよいのかわからなかったのでここで質問させて
ください。
隠れてしまっているURLを取得したいと思っております。
具体的にはFirefoxなどブラウザーのアドレスバーに表示されるURLを取得したいです。
ソースコード上はこんな風な感じで書いてあるのですが
<script type="text/javascript" src="
http://aaaa/script/aa.js?bb"></script>
<div id='tamago' ><img src='
http://ccc/cc.php?id=29' /></div>
実はカーソルを当てるとイメージにはリンクが設定されているものがあるのですが
その実リンクを取得したいです。
意味が分からない
アドレスバーに出てるならいいじゃない
750 :
743:2012/06/02(土) 07:30:44.38 ID:???
>>746 どうもありがとう
何度やっても表示されない・・・
>>749 わかりにくくてすみません。その実リンクをPerlかPHPでさらに処理させたいのです。
さらに分からない
画像のURLってことか?
JSでページ内画像をリンクタグで囲むように変形しているけれど、その動的に差し込まれた
リンクのURLを収集したいってことだよね。その動的処理をしているJSに手を入れるんじゃないの。
FireBugやchromeのデベロッパーツールなどでは、domをjsでいじったあとのHTMLは見れるが。
それでOK?
perlやphpってことは、自力で解析したいわけかい?
ブックマークレットでアンカータグを収集するようなの書くのがいいかも。
どのサイトのどの画像って書いた方がいいんじゃないか?
エスパーじゃないんだから
>>752 ごめんなさい
>>753 正確には画像にくっついているリンク先URLがしりたいのです
>>755 そうです!それです!まさにおっしゃているソレを
行いたいと考えております。
>>756 おっしゃるとおりわかりにくいですよね・・
喩えるとこの右上にある広告バナーの直リンク先URLを拾いたいのです
http://romch.net/read/toro.2ch.net/hack/1010416931/13 この部分です
<iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fromch.net
%2Fread%2Ftoro.2ch.net%2Fhack%2F1010416931%2F&
send=false&layout=button_count&width=100&
show_faces=false&action=recommend&colorscheme=light&
font=arial&height=21" scrolling="no" frameborder="0"
style="border:none; overflow:hidden; width:110px; height:21px;"
allowTransparency="true"></iframe>
iframe内が他のドメインなら無理
>>758 >>757はJSで動的に差し込まれてないけど、本当にわかってる?
何となく想像でいってるでしょ?
JSに挿し込んだって?
ソースも読めないクズかよ
よし!canvasスレで聞いてみろ
idでちゃんと分けたりしてるんですが
formって一つのHTMLに二つ作ってもいいんでしょうか?
javascriptだと非推奨だったりするんでしょうか?
1ページに複数のフォームがあるページ見たことある?
770 :
767:2012/06/03(日) 09:48:57.69 ID:???
あざっす!
出直してきます!
window.open(url,"_self")でページの読み込みが完了してからスクリプトを実行したいのですが、setTimeout以外に方法はありますか?
ハンドラを設定するだけ
>>773 HTML内にハイドラできない場合はどうすればいいのでしょうか?
訂正:ハイドラ→ハンドラ
よくscriptをキャッシュしないような方法が書かれてあったりしますが
更新が無いときのみキャッシュを利用させるような方法って無いのでしょうか?
更新の有無は何をもって判断するの?
last-modifiedヘッダなどは使えないのでしょうか?
>>774 var w = window.open(...); w.onload = function() { ....};
もちろん別鯖は駄目だよ。
_selfだから無理じゃねそれ
Ajaxで受信してスクリプト挿入して書き出せばいい
jQuery入れて
$(document).ready(function(){
/*実行したい処理*/
});
にすれば、DOM構築完了後に実行したい処理が走る
とは限らない
とは言い切れない
$(function(){
});
$(document).ready(function(){
});
window.onload=function;
この違いがあるような気がしたけど、どんな違いがあるのかは忘れた
どっちが先に呼ばれるか確認したら?
787 :
Name_Not_Found:2012/06/04(月) 17:04:58.24 ID:jSeVYhOQ
まず
document.addEventListener('DOMContentLoaded',function(){ /* どばーん! */ });
この話をしないと
jQuery.event.special.ready.setup() これが必要な時があるよって話だろ
それはどういうとき使うんだ?
ttp://www40.atwiki.jp/spellbound/pages/1904.html で紹介されているファイル読み込みライブラリ
PreloadJS の使い方で質問です。
【環境】 WindowsXP-Pro,Firefox12.0
【何をしたのか】
ライブラリ自体を
ttp://code.createjs.com/ の下部からDLし preloadjs-0.1.0.min.js の名前で
保存しました。
これと同じフォルダにサンプルコードのJSを含むHTMLを置き、対象のファイル(テスト.txt)も置いて
HTMLを起動しましたがテキスト内容を含むアラートが出ません。
【サンプルコード】
<script src="preloadjs-0.1.0.min.js"></script>
<script type="text/javascript">
var loaderObj;
window.onload = function () {
loaderObj = new PreloadJS();
loaderObj.onFileLoad = onFileLoadHD;
loaderObj.loadFile("テスト.txt");
}
function onFileLoadHD(evt){
// 読み込みが終わった時に呼ばれる。
var txt0 = evt.result
alert ("Txt: " + txt0);// 【期待する結果】 Txt: 〜〜〜〜 と出したい
}
</script>
このHTMLのJS部分にはJavaScriptでSVGを描画するライブラリ Raphaël(
ttp://raphaeljs.com/) で
ベタ塗り矩形を描くコードを書いていますがそちらは問題なく実行されます。
考えられる原因は何でしょうか?
ブラウザのセキュリティの問題。WebページのJavaScriptからローカルのファイルは開けない場合がある。
792 :
790:2012/06/04(月) 23:38:15.33 ID:???
ソース読め
そもそもブラウザがローカルファイルを読ませてくれなかったら、どんなライブラリ
だろうとローカルファイルに置いて使おうとしたら動かなくて当然。
間を取ってlocalhostに置けばいい
XAMPPとかあるし
796 :
790:2012/06/05(火) 11:26:36.75 ID:???
>>793-795 レスどうも。
createHttpRequest() での XMLHttpRequestオブジェクト生成でローカルの
テキスト'ファイルが難なく読み込めたのでこのライブラリーでもOKだろうなと思い
質問してみました。
いま取り組んでいるのはWebでもローカル(スタンドアローン)でもPCであれば
読み込み→解析できるようなシステムです。
そういうのはデスクトップアプリでやるのが良いかもよ?
今すぐVisualStudio買うんだ
そしてクラウディアたんは俺にくれ
買わんでいいだろ
クラウディアたんが欲しいだけだろ
俺も欲しい
・1のサーバーにスクレイピング用のCGI・PHPを置く
・2のサーバーでAccess-Control-Allow-Originを返すようにする
・(インライン)フレーム
ありがとうございます。
なるほど。iframeのsrc属性には他ドメインのコンテンツも読み込めるんですね
あとはこのiframeの内容を自動的にリロードしてやれればいいのか。。
>>796 status が 200 かどうかで正常/異常の判断してたら、
HTTP以外ではダメだと思う。
JavaScriptでファイルに書き込む方法を教えてください
ブラウザ依存でないやり方で(できれば
無理、クラライアント側だから
phpとか使えば見た目だけそういうことならできっけど
>>804 前提とか限定はないわけ?ふつうにWebサイトのJSでそんなことできたら、めぼしいファイルを
上書きしまくったりとかな迷惑サイト作り放題なわけだが、そんなこと許されてるわけないよね?
そんなことが出来たら北斗の拳みたいな世紀末になっちまう
IEでdirecX使えばできるんじゃないかな。
やっぱりできないですか
JacaScriptでテキストエディタのようなものはできないかな?と思って質問しました
できたら便利なのになあ
810 :
Name_Not_Found:2012/06/06(水) 00:40:40.33 ID:Le+aTIkx
<div id="ax"><div id="ay"><div id="az">a</div></div></div>
<div id="bx"><div id="by"><div id="bz">b</div></div></div>
<div id="cx"><div id="cy"><div id="cz">c</div></div></div>
<script>document.addEventListener("click",function(event){alert(event.target.id)},false)</script>
クリックすると「az(やbz、cz)」がアラートされますが
「ax(やbx、cx)」や「ay(やby、cy)」にも反応させるにはどうすればいいですか?
個別にイベントリスナーを登録するかリスナー関数内で祖先要素を順にたどるかしないといけませんか?
>>810 Perlでタグ解析させればできる。TreeBuilderとか。
>>809 JavaScriptをマクロとして実行できるエディタならあるけど。サクラエディタとか。
>>812 ネット上で使えるテキストエディタ的なものを用意したいということだと思ったよ
保存機能つきの。
通常編集時のtempファイルlocalStrageでも使えば良いんじゃないか
ロードはファイル参照orドラッグドロップ
ファイル保存したいときはdata:application/octet-streamでダイアログ表示で良いんじゃね
どこに保存したいのか補足したまえ
んなもんわかってるよ
URLみろよ
フフフ、我等javascriptスレの住民にそんな子供騙しが通じるとでも思うたか
ブラクラじゃなくておまんちんだった
>>810 divのスタイルのwidthが全部同じだから、一番内側のazとかのイベント拾ってるんだと思う。
スタイル設定してやれば、とりあえずイケたよ。
<style>
.outer{width: 100px; border: solid 1px;}
.content{width: 70px; border: solid 1px;}
.inner{width: 40px; border: solid 1px;}
</style>
<div id="ax" class="outer">
<div id="ay" class="content">
<div id="az" class="inner">a</div>
</div>
</div>
<div id="bx" class="outer">
<div id="by" class="content">
<div id="bz" class="inner">b</div>
</div>
</div>
<div id="cx" class="outer">
<div id="cy" class="content">
<div id="cz" class="inner">c</div>
</div>
</div>
<script>
document.addEventListener("click",function(event){
alert(event.target.id)
},false)
</script>
'aiueo'
の位置を指定して、2番目に'HHH'を入れて
'aiHHHueo'みたいな事ってjavascriptで出来ますか?
できますよ
824 :
Name_Not_Found:2012/06/06(水) 11:53:26.83 ID:I3KbAl91
スレチかもしれませんが、教えてください。
var width = 640;
var height = 480;
var data = new Array(width);
for (var x = 0; x < data.length; x++)
{
data[x] = new Array(height);
}
このような data[x][y] 配列がある時、
各 x と y の値を使ってUNIQUEな値は作れるでしょうか?
昔数学で習ったような気がするのですが思い出せません(・・・行列の平方根?違う・・・なんでしたっけ)。
もしあれば教えてくださいm(_ _)m
ハッシュ作ればいいんじゃない?
826 :
Name_Not_Found:2012/06/06(水) 12:02:22.95 ID:I3KbAl91
言葉足らずですみません。
data[x][y] = z;
という z の値以外に、 x と y を使ってUNIQUEな値が作れないかと考えているのです。
そのような数式を習った気がしますが、もしかしたら記憶違いかもしれません・・・。
意味が分からない
何をしたいんだか
ハッシュだろ?
xとyを文字列連結するのじゃいかんの?
831 :
Name_Not_Found:2012/06/06(水) 12:56:24.16 ID:I3KbAl91
どうやら行列の固有値のことを覚えていなくて勘違いしていたようでした。
お騒がせしました。
>>827 分かり辛くてすみません。
ハッシュとは連想配列のことですか?
それともハッシュ法のことですか?
x=2, y=3 と x=3, y=2 の時、UNIQUEな値はどのようにして算出できますか?
>>829 質問に書いてなくてごめんなさい。
intで欲しいのです。
でも勘違いしていたので多分無理だと思いますので別の方法でやることにします。
832 :
Name_Not_Found:2012/06/06(水) 12:58:40.89 ID:I3KbAl91
>>831 訂正
>x=2, y=3 と x=3, y=2 の時、
x=23, y=1 と x=2, y=31 の時
でも別の方法でやるので回答は結構です。
みなさんありがとうございました。
連番じゃダメなのかな
範囲が判ってるならintでも可能でしょ。
例えば0〜99に収まるのが判ってるなら
x*100+yとかさ。
ハッシュ関数のこと、な
2301と0231
837 :
Name_Not_Found:2012/06/06(水) 14:54:28.12 ID:HRMaeNdx
ゼロ削ってparseIntでいいじゃん
840 :
Name_Not_Found:2012/06/06(水) 15:33:19.44 ID:HRMaeNdx
>>839 ハッシュにかけたら、てことでしょ?
そのまま使えばいいやん
836だけちゃんとゼロを補ってるだろ?
何桁あるかさえ示さない質問者と同じで馬鹿だな
836もどうだかな
"230"+"1"と"0"+"231"にしてる可能性もあるしなんともいえんだろ
2ケタと仮定してるんだろ
質問者が曖昧な質問をする
↓
回答者がエスパーで複数回答
↓
それをめぐって暴走
↓
質問者置いてけぼり
いつもどおりだな
質問の意図や前提をくみ取れない糞質問
が多い。それで回答者が逆質問をしたり
悪口を言ったりする。それを前もって思
い描く力が絶望的に欠如してるに違いない。
スーパーハッカーだけが意図を理解できる。
レアなそういう神が颯爽と登場する予感。
>>846 そうかもしれないそ
うかそうか
で?
もんだいは
ないわけでもな
い
あれ、進むの速かったね。テンプレ論議あれば今どぞ。
849 :
Name_Not_Found:2012/06/06(水) 23:39:58.69 ID:HRMaeNdx
850 :
Name_Not_Found:2012/06/07(木) 00:11:33.89 ID:WPGDDDD6
var obj = {a:1,b:{c:2,d:{e:3}},f:4}; この中身を全部アクセスするにはどうすればいいですか?
851 :
Name_Not_Found:2012/06/07(木) 00:13:50.05 ID:Ue5itF0d
>>850 中味がオブジェクトか否かを見ながら再起
852 :
Name_Not_Found:2012/06/07(木) 00:14:07.62 ID:Ue5itF0d
まちがえた
再帰
853 :
850:2012/06/07(木) 00:19:53.95 ID:WPGDDDD6
すいません。わからないのでコード教えて下さい。
再帰しすぎるとよくないという話も聞きましたが。。多分、実際のコードでは階層が
千におよぶと思います。
854 :
Name_Not_Found:2012/06/07(木) 00:30:53.80 ID:Ue5itF0d
>>853 大雑把に書くとこんな
(function(obj){
for(var n in obj){
if( obj[n]がオブジェクト ) arguments.callee(obj[n]);
else obj[n]を煮るなり焼くなり;
}
})(走査したいオブジェクト);
オブジェクトが大きすぎて実行速度が現実的でないならば
再帰するときにsetTimeoutとか挟んで非同期実行的な感じにするとか
855 :
850:2012/06/07(木) 00:48:52.87 ID:WPGDDDD6
>>854 ありがとうございます。トライしてみます。
>>853 >再帰しすぎるとよくない
そんな、健康法みたいなw
古い言語や機械だと、再帰でスタックを食い潰す事があったから、
多分その事を言ってるんだと思う。
今時の言語や機械なら、よほど深くならない限りは大丈夫。
今時でも再帰しすぎはよくねーよアホ
858 :
Name_Not_Found:2012/06/07(木) 02:20:26.68 ID:Ue5itF0d
「再帰いくない」「いや問題ない」って聞いて
理由がわからないまま盲目的にどちらかを信じるのがよくねーですな
自分は深くなるときは
>>854のようにsetTimeoutで遅延させるんだけど
もっと賢いやり方を教えて欲しい
大きすぎるなら再帰なしで書くしかないでしょ。
構造が固定なら決めうちでいい
固定じゃないならセイウチ
関数呼び出しで時間くうからウン万回と再帰するなら強引にループに直したほうがいいぜ
JSON.stringify(obj) して、文字列検索を…なんちゃって。
>>849 いや、だからそれが発端でいろいろ整理された結果が現状なんだけど、またその発端の
方がいいということ?
今のでええよ
>>850-861 1000レベルの再帰はどのみち動かないでしょ。
>>861-862 文字列にしたら構造が取れなくなるし、1000レベルあるってことは何MBもの文字列?
スタックを使って再帰をループに変換とか定石だと思うんだけど、なぜか
スタックに言及する人が誰もいないという。
とりあえず、1000レベルの階層作ってスタックでたどってみました。
<!DOCTYPE html>
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
var obj = new Object(); obj.a0 = 0;
for(var i = 1; i <= 1000; ++i) {
var o = new Object(); o['a'+i] = i; o['b'+i] = obj; obj = o;
}
var stack = []; stack.push(obj);
while(stack.length > 0) {
var e = stack.pop();
for(var k in e) {
if(e[k] instanceof Object) {
document.writeln('prop ' + k + ': object'); stack.push(e[k]);
} else {
document.writeln('prop ' + k + ': ' + e[k]);
}
}
}
</script></pre>
</body></html>
テストデータとして、枝は2本以上ある方がいいのでは。
> new Object()
投稿しても無視だしもういいよ。勝手にやってろよ
<title>???</title> の人のテンプレがHTML5仕様になってて和んだ
所々で枝分かれするように変更してみますた。
<!DOCTYPE html>
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
var idn = 0, obj = {idn: 0}, level = 0, alt = false, thr = 0.05;
while(level < 1000) {
if(!alt) {
obj = {next: obj, idn: ++idn}; ++level; alt = Math.random() < thr;
if(alt) { obj.alt = {idn: ++idn}; }
} else {
obj.alt = {next: obj.alt, idn: ++idn, branch: true}; alt = Math.random() > thr;
}
}
var stack = []; stack.push(obj);
while(stack.length > 0) {
var e = stack.pop();
for(var k in e) {
if(e[k] instanceof Object) {
document.writeln('prop ' + k + ': object'); stack.push(e[k]);
} else {
document.writeln('prop ' + k + ': ' + e[k]);
}
}
}
</script></pre>
</body></html>
たとえばこういうテストデータを…
for(var i = 1; i <= 1000; ++i) {
var o = new Object(); o['a'+i] = i; o['b'+i] = obj; o['c'+i] = obj; obj = o;
}
…って、レベルを1000とかするとえらいことになるが。
>>874 それじゃ階層構造(木)じゃなくてDAGじゃん。DAGや一般のグラフを
たどるのだったら、それなりの手当てが必要だよね。大したことはないけど。
たらい回し関数を再帰呼び出ししまくるとわかる
877 :
Name_Not_Found:2012/06/07(木) 19:31:23.21 ID:Ue5itF0d
>>873 足がかりにして勉強します
ありがとうございます
jQuery mobileで、ページ要素ごとに使いたいJSファイルが異なる場合、
$('[data-role="page"]').live('pageshow', function(){
$.getScript("/js/page-1.js"); // jQMのページ単位で固有のJSをロードする
});
みたいに、getScript使わないと無理ですかね?
もっとスマートなやり方ってありますか?
>>878 各ページで全部読み込めばいいじゃんw
グロ汚染するなら切り替えれ
882 :
878:2012/06/08(金) 18:26:37.97 ID:???
>>879 誘導ありがとうございます。
>>880>>881 たしかにそうですね。
HTML単位で、必要なものをあらかじめ読み込むようにします。
ありがとうございました。
883 :
Name_Not_Found:2012/06/09(土) 06:27:04.21 ID:qOPArDxh
システム構成上、健康的ではありませんが、
window.onloadを2回に分けて実行する必要がありました。
しかし、普通に2度記述してもそれぞれを実行せず、後に書いたほうが優先されます。
調べたところ、
http://oshiete.goo.ne.jp/qa/5184328.html に解決策があり、No3の回答で解決できたのですが、
このコードの振る舞いが理解出来ません。
どなたか、解説頂けないでしょうか?
window.onload = function(){
alert(1);
}
var _onload = window.onload;
window.onload = function(){
(_onload)?(_onload)():0;
alert(2);
}
884 :
883:2012/06/09(土) 06:40:32.85 ID:qOPArDxh
投稿後に眺めてたら、閃いた!そういうことか!
最初のwindow.onloadにセットした関数が、上書きされるのを防ぐために、変数に一時退避してるんだね。
で、onloadの発火のタイミングで最初の関数を実行と。
条件分岐に深い意味があるんだと思い込んで、こんがらがってたよw
条件分岐のとこ_onload();だけでもいいのか。
解ればなんてことないコードだったwww
ダサいコード
>>883-884 いわゆるaddLoadEventだと思いますが、今ならaddEventListenerで充分なような。
IE8-用ですかね。
現場の流行ではこう書く。覚えておくといいよ。
window.onload = function() {
alert("bar");
};
window.onerror = window.onload;
window.onload = function() {
alert("foo");
null();
};
今更window.onloadを使うん?
addEventListener, attachEvent が普通だと思ってた
あれ?
動かないよ
試した?
いまさらも何も window.onload は普通に使うでしょ
動かない
実用のスクリプトには使ってない
window.onload は使う必要性がない
なんで?
使い分ける必要ないから楽やん
895 :
883:2012/06/09(土) 15:28:10.77 ID:qOPArDxh
すみません。後だしで申し訳ない。。。
複数の人が入ってるため、私が触れる箇所が限定されています。
<head>
〜js,css[リンク・コード]ぐちゃぐちゃ〜
-jsファイルリンク(ここにwindow.onload)
〜js,css[リンク・コード]ぐちゃぐちゃ〜
<< 私がさわれるところ >>
</head>
さらに、処理順序が最初のwindow.onloadがかならず最初に処理されないといけません。
あと、ターゲットブラウザは明確ではないのですが、IE8、chromeを抑えておけばいいかなと思っています。(現場の雰囲気的にw)
上記から、
>>887さんのでは、処理順が変わるのですが、こういう書き方も出来るのですね。フムフム。
addEventListener, attachEvent も調べてみましたが、逆にwindow.onload方が、
コードがすっきりするような気がしますし、
ちゃんと調べてませんが、attachEvent() は処理順がめちゃくちゃと、どこぞのwebページにありました。
私も、window.onload方が楽に感じました。
皆さん有難うございました。
var a=[ {x:1} ];
var b=[], c=[];
b[0]=a[0], c[0]=a[0];
b[0].x++;
c[0].x++;
~~~~~~~~~~~~~~~~~~~~~~~
上記のコードを実行すると、b[0].xとc[0].xの中身が
IE9とFirefox13だと2ですが、Chrome19.0.1084.52だと3になってしまいます。
そもそも上記の b[0]=a[0] っていうのは代入ではないのですか?
コピーされる側のa[0]の中身はプロパティ数が増減するため
一つ一つb[0].x=a[0].xのように代入していく以外の方法で、安全に
全プロパティをコピーする方法があったら教えて下さい。
896ですが、Chromeのバージョン確認したらアップデートがあって
19.0.1084.56になったら上記のコードの結果が両方とも2になりました…。
アップ前は確かに他ブラウザと同じコードで結果が3になっていた(参照渡しみたいに)のですが。
上のコードは問題ないって事でいいのでしょうか?
何度もすいません、やっぱりChromeでは3のままでした。連レス申し訳ないです。
コードの問題点があったら教えていただけるとありがたいです。
>>895 別の人が同じ方法でonloadに設定したら実行されないわけだが
>>896 IEでもFirefoxでも3になると思うんだけど?
>>896 代入ではなく参照
なぜ一つ一つコピーするのが嫌なのかは分からないが
めんどくさいという理由ならfor inで代入できる
ソースがほしけりゃディープコピーでggr
>>901 ありがとうございます、ググってみます。
ではー、テンプレ論議「軽微な修正」のものあればどうぞ。
過去スレ見てリンク変更しとけ
俺より先に寝るな
908 :
Name_Not_Found:2012/06/09(土) 21:52:24.34 ID:Xq3WzZsa
俺より後に起きるな
飯はうまく作れ
>>907-909 芸のないコピペ野郎共だな。
どうせ書くなら一ひねりして「俺より先に死ぬな」とでも書けよ。
ひねって無いじゃん
リンク集とか手直ししたいのならそっくり貼れる状態で用意してね。でないとこれで
いいとか悪いとかの議論ができないから。注文だけ喋ったらその通りになるとか我が儘だから。
>>912 前スレに貼ってあるだろ。やる気ないんなら最初からやるな。きえろ
このスレにあるじゃん。さっさと議論しろよ
>>912 のような仕切り野郎は消えろ
女子だったらごめん
テンプレ追加
Number("Infinity") → NaN
Number("無限大") → NaN
Number("∞") → NaN
Number("ゼロ") → NaN
NaNだってー
にゃん!
テンプレに入ったら逆に喜ぶだろ
あれ?今 isNaN(Number("Infinity")) やったらfalseだったぞ
927 :
Name_Not_Found:2012/06/10(日) 09:06:13.96 ID:uwigtzRS
ウインドウのリサイズ完了イベント取得で質問です。
リサイズ実行中は下記で処理出来ますが、完了を感知するにはどうしたら良いでしょうか?
window.onresize = function() {
// コード
}
window.onresized とかあったら便利なのですが無いので困ってます。
あと、変化するウインドウのサイズを配列にどんどん格納していって「最後の2つが同じならば完了」
とすることも考えましたがあまりスマートでは無いので・・・
928 :
Name_Not_Found:2012/06/10(日) 09:45:09.66 ID:VR5tQAI+
>>927 画面レイアウトならcssいじった方がいいと思う。
resizeで大きな処理しないなら、素直にonResize()で毎回処理させてしまってもいいと思う。
回答になるかは分からんが、
自分があえてやるなら↓みたいにするかな。
確実にonresizedを判定するのは難しいと思うが。。。
var handleId = null
function resize_handle(){
handle_id = null
/*処理*/
}
function onResize(e){
if(handle_id !== null){
cancelInaterval(handle_id)
}
handle_id = setInterval(resize_handle,200)
}
質問です。
onloadの後に、バッググラウンドで処理させる方法はないでしょうか。
フレームでページを構成していて、常に動きがあるのは子フレームの一つです。
なので、その子フレームが操作できるようになってから、
もしくは親フレームで操作に関わらないタイミングで、
他で必要なファイルを読み込んでおいたりしたいんです。
子フレームの遷移後の情報を先に裏で取得しておいたり、
情報を常に親フレームが保持していれば遷移の時間短縮になるので。
htmlの各div要素に値を持たせたくて
<div data="ab" class="a">ここです</div>
<div data="cd" class="a">ここです</div>
<div data="ef" class="a">ここです</div>
<div data="gd" class="a">ここです</div>
<script>
$('div .a').click(function(){
$(this).attr(data);
})
</script>
と無理やりdata=をつける方法を教わったのですが、jQuerymobileがどうのこうのでやめろと言われました
div要素に値を持たせるときはどんな方法がいいのでしょうか?
別にいいんじゃないの?dateで
dataとかdata-filterとか標準でないオリジナル属性に対応してるブラウザは知らんけど
classの中に紛れ込ませちゃうとか。
>>932 dateに日付時刻の文字列以外を設定しても大丈夫?
なんでdateなんだ?
data-filterなら標準だよ
937 :
927:2012/06/10(日) 23:19:32.85 ID:???
>>928 つまり、オリジナルのonresize関数ですね。
おい
TwitterのRT数とかあるだろ?
そういうの表示する方法おしえろよ
どうやって表示すればいいんだ?テキストでな
教えてくれ!!!シュシュシュ
>>932 data-属性は標準ですぜ
逆に標準にこだわらなければ、何だっていいわけだし
>>938 Twitterのサイトに書いてあるから、それ読んでくれ
人様の作ったAPIなんで、オリジナルの説明読むのが一番じゃよ
> data-属性は標準ですぜ
この-の後の部分はなんでもいいの?
data-unkoとかも標準?
うん
こ
ツイッターのURLをいれてRT表示する方法おしえてくれ
それだけでいい
URLでアクセスするほうほうな
どうぞ表示してください
教えろよ jsonでRT数返すとかねーの?
教えろ
HTML5はIE8+XPって黄金コンボがしつけーし、IE9はロクに対応してないし先行きが本当に不安だ
何よりロゴだっせーし、2012年勧告予定はどーなったんだよ、確か今年の5月って予定だっただろ
947 :
930:2012/06/11(月) 12:25:52.13 ID:???
948 :
Name_Not_Found:2012/06/11(月) 12:46:51.91 ID:JIid64jj
教えて
HTML5はIE8用の仕様みたいなもんだし
950 :
Name_Not_Found:2012/06/11(月) 13:09:48.58 ID:JIid64jj
951 :
Name_Not_Found:2012/06/11(月) 13:11:41.08 ID:JIid64jj
RTされてるやつのURLやっても
"trackback_total":0だぞ
では、次スレは975越えたらで、テンプレは基本同一、ただし
>>4 は
>>926 に更新、
ということでよいですか。
で、結局JavaScriptで継承可能なクラスを実装するにはどの方法が一番いいの?
いい加減決めてくれないと困る
JavaScriptにクラスなどないということを納得するのが先だな。
初歩的な質問ですが、prototypeでメソッド追加を実際に試しているのですが上手く起動しません。
以下のようなコードを書いたのですが、どこに問題があるのでしょうか?ご指摘お願いします。
function aiueo (x,y){
this.x = x;
this.y = y;
kakezan = new aiueo(x , y);;
alert(kakezan.add);
}
aiueo.prototype.add = function(){ return this.x * this.y; }
function aiueo()の中でnew aiueo()を呼ぶというその設計が普通でない
気がする。もうちょっと勉強して、普通の書き方を学んでからprototypeの
実験に進んではどうでしょうか。
>>957 関数であっても
toStringが呼ばれて文字列になる
959 :
Name_Not_Found:2012/06/11(月) 20:23:04.11 ID:NMiGYHFo
必ずエラーになるから無限ループではない
>>958 文字列になるが、それは意図した結果じゃないだろ
>>961 わからんぞ?関数が表示されるか試したのかもしれん
あれの意図がわかるのは本人だけだろ
963 :
Name_Not_Found:2012/06/12(火) 08:54:20.65 ID:CACn/P8A
誰か929にも返事下さい
965 :
Name_Not_Found:2012/06/12(火) 10:35:02.39 ID:6oMdqj9M
質問ですが、javascriptで生成したインプット要素に入力した値ってどうやって取り出すんですか?
input type="text" name="hoge[1]"
input type="text" name="hoge[2]"
input type="text" name="hoge[3]"
input type="text" name="hoge[4]"
input type="text" name="hoge[5]"
とかまあ適当なインプット要素の羅列があった時、これの値を配列で取り出したいとして
for (var i = 0; i < maxChange; i++){
var foo = document.....elements["foo[" + i + "]"].value;
}
とかなんとか書けば、htmlでマークアップしたフォームならもちろんうまくいくのですが
input type="text" name="hoge[x]"
の配列をjavascriptで自動生成して表示してやるとうまくとりだせなくなりました
javascriptで生成してcgiに受け渡すのではなく同じjavascriptに渡したいのですが
なにかいい方法はありませんでしょうか?
966 :
Name_Not_Found:2012/06/12(火) 10:37:35.70 ID:6oMdqj9M
すみません間違えました
var foo = document.....elements["foo[" + i + "]"].value;
は
var foo = document.....elements["hoge[" + i + "]"].value;
と読み替えて下さい
失礼しました
どうかご指導よろしくおねがいします
968 :
Name_Not_Found:2012/06/12(火) 12:03:44.99 ID:6oMdqj9M
今日も平和だ
>>964 ありがとうございます。
英語のページはすぐに全部理解できなそうですが試してみます。