+ JavaScript の質問用スレッド vol.90 +
1 :
Name_Not_Found :
2011/10/26(水) 21:59:23.95 ID:9NHChTR2 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/
2 :
Name_Not_Found :2011/10/26(水) 22:02:03.25 ID:9NHChTR2
3 :
Name_Not_Found :2011/10/26(水) 22:02:50.30 ID:9NHChTR2
■主要FAQ (全部は
http://fiddle.jshell.net/vSqKr/26/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 中でやるとか。
4 :
Name_Not_Found :2011/10/26(水) 22:03:08.83 ID:9NHChTR2
6 :
1 :2011/10/26(水) 22:07:51.79 ID:9NHChTR2
ごめんなさい ごめんなさい ごめんなさい ごめんなさい ごめんなさい
あやまってもゆるさない
またお前かw
>>6 乙。
それよりも、ギリギリまで立たない方が問題だろ。
前スレで宣言した者だけど、今ようやくレベル上げが終わったところさw
いいてことよ
テンプレ改変でスレ立て直せ厨が出たからこれは
ブラウザの戻るボタンで戻ってきたとき、強制的にリロードさせることはできますか?
無理な気がする。 リロードはうざいからやるなら、認証必要なページみたいに、毎回POSTが必要にするとか。
IE なら戻るボタンで戻ってきたときにもonloadが動き出すんだけどね。
16 :
Name_Not_Found :2011/10/27(木) 02:38:12.26 ID:dy39gQPi
>>13 ちょいちょい見かける質問だけど
リロードさせないほうが良い解決策だったりするよ
なんでリロードさせたいの?
>>14-16 ありがとうございます
一部動的なデータが含まれているのでリロードさせて書き換えさせたいな・・と
どう考えても設計が悪いとしか思えん
>17さんではありませんが、外部jsファイルを更新させるときはどうするのがベターですか? 今はタイムスタンプを使ったりブラウザの更新ボタンを押すように促したりしてますがおかしいですよね
質問したとき、なぜそんなに意図を聞いてくるのかと思ったけど、なんとなくわかった気がする
21 :
Name_Not_Found :2011/10/27(木) 04:20:10.44 ID:dy39gQPi
>>19 キャッシュ?
リクエストの最後に適当な文字列つけちゃえば?
foo.js?123456
みたいに
jqueryのプラグインboxyをつかってます。 外部のページをダイアログ表示した後、リンクでダイアログ内ページを遷移したいのですが可能せしょうか? 調べたのですが、わかりませんでした。
別鯖のページは表示はさせられても中身を操ることは不可能。
Python の for i in range(0, 10) とか Ryby の 10.times do に比べて、JSは for (var i = 0; i < 10; i++) とか for (i in [0,1,2,3,4,5,6,7,8,9]) とか 書くのが面倒臭いです。他の方法か、for文を変態的に短く書く方法を教えてください。
>>24 for(;i<10;i++)alert(i);
関数を作るとき function hoge(){ piyo(); } とやるのと var hoge=function(){ piyo(); } とやる方法があるのはわかったのですが、それぞれはどのように使い分ければいいのでしょうか?
>>24 これを伝授してやろう
for(i=10;i--;)
>>27 なるほど、iをインクリメントして使う必要がないときはこれでよさそう
>27 それダメじゃね for(i=0;i<n;i++){} だと一秒に約1000万回まわせてたのが for(i=n-1;n--;){} だと一秒に約550万回になる netfront
32 :
31 :2011/10/27(木) 18:00:25.18 ID:tYLectLe
n--はi--の間違い
>>31 IE8だと--の方が二倍近く早く
Fx8だと++の方が二倍近く早かった
なんらかの最適化が働いてるんだろうな
if (!!!hoge)ってなってるコードがあったんですが、if (!hoge)との違いはありますか? 挙動は同じような感じでした。
isnanかundefinedかnullでないか判断する方法を教えてください
分かりやすさの為にはあった方が良いんじゃ?
そう言うことじゃないのか。 確かにいらないわ。失敬。
>>21 ありがとう
その方法では別ファイルとしてキャッシュされてしまうので無駄があると思い
何か別の良い方法が用意されているのかもしれないと思ったのですが、そういうことは無さそうですね
>>34 二重否定の否定って意味を表したかったんじゃない知らんけど
var hoge=null; window.onload=function(){ hoge=document.getElementsByClassName('hoge'); } 読み込みが終わってからじゃないと使えないらしいので こんなかんじにグローバル変数に入れてるのですが もっといい書き方ないでしょうか?
</body>の直前に書けばいいじゃん。
45 :
Name_Not_Found :2011/10/27(木) 23:05:41.93 ID:QfVip5T3
>>43 それだけだと、アドバイスのしようがない。
onload以降で、使いたい時にgetElementXX()すればいいだけだからグローバルにとる必要はなさそうにみえるが、
絶対的にグローバルにとりたいならそれでいいんじゃないですか?
</html>のあとに<script>〜を書くのはだめですか?
>>43 そんなことを言う奴を無知という
getElementsByClassNameはlive-NodeListを返すのだから
onloadなんて不要すぐる
無知だから質問してるのにいちいち煽る人ってなんなんだろうね
>>50 htmlさんがscriptさんを呼んでくれるんだけど
いくらhtmlさんでも呼び出せる範囲が決まっているのよ
テキストの折り返し地点のキャレット位置を得ることは 可能でしょうか
>>51 そういうことでしたか
htmlさんに合わせたいと思います
css3の特定のプロパティを実行しているブラウザが対応しているか調べるオンラインwebサービスがありますが どのようにして調べているのでしょうか?
文法的に駄目かどうかじゃないの? タグの位置に関わらず、インタプリタを呼び出すブラウザなら実行されるし、 実際、動作するよ?
>>54 そのWebサービスを見ないことには予測もできない
element.style を読んでいる可能性はある
61 :
51 :2011/10/28(金) 12:15:06.50 ID:???
>>59 57は別人
htmlの文法の事です
そもそもjavascript:alert('HOGE');とurl入力すればJS自体は機能しますしね
>>60 各チェック項目について、try...catch を繰り返して実行してみて、
サポート/非サポートを判定している様に見える。
詳しく見てないけど。
63 :
62 :2011/10/28(金) 12:40:29.24 ID:???
try...catch で試してエラーが起こるかみたり、style の各プロパティに対する 値の書き込み/読み出しを実際に行ってみて、返ってきた値で判定したり、とかかな。
>>3 のテンプレにあるが、
Q5. CSSで設定した背景色がe.style.backgroundColorで取得できないのですが…
A5. 取得には document.defaultView.getComputedStyle() を使う必要あり。
IEでは要素オブジェクトのプロパティcurrentStyleを使う。
//001指定タグのエレメント全取得
function getElements(nm) {
return document.getElementsByTagName(nm);
}
//002背景色を変える
function chabgc(color) {
var element=getElements('body');
element[0].style.backgroundColor = color;// 引数で設定したcolorを使う。
}
で背景色を変えてるが、document.defaultView.getComputedStyle()
なんて使うのか?
仮に質問がなくても、そのコードだけで初心者さんだと分かりますよ。
だいたいそれ取得じゃないよね
テンプレを読んでるのは偉いが、残念ながら理解できていないという、 今までにない想定外のパターンだな。 我々のリスク管理が甘かったということだ。 どうする?
>>49 残念ながら無知なのに偉そうな回答者に向けて言ってる
>>68 それなら言いたい相手に直接レスアンカーをつけろよ
71 :
Name_Not_Found :2011/10/28(金) 17:00:29.14 ID:eTYofWI/
質問です canvasで円を書いたりするとき、現在のサブパスの座標がどこにあるのかを 知りたいのですが、これは数学的に計算して割り出す以外に javascriptに用意されている方法はないのでしょうか?
document.createElement("div").onmouseover = function() {alert("a")}; を document.createElement("div").onmouseover = "b()"; function b(){ alert("a"); } こんな感じにしたいのですが、どうもb()が実行されません "b()"のようにするにはどうすればいいのでしょうか?
document.createElement("div").onmouseover = b; b();にすると即時実行でたいてい意味がない。
document.createElement("div").onmouseover = b(); function b(){ return function(){alert("a")}; }
>>73 そうやるよりaddEventListnerが推奨じゃなかったっけ
createElement→appendChild→addEventListnerって流れが一番良いと思うんだが
手間を増やすことが大事
そろいもそろってaddEventListnerかよ 使ったことないだろ
var def = { a : function () { console.log('def no a dayo'); }, b : function () { console.log('def no b dayo'); } }, add = { a : function () { console.log('add no a dayo'); } }, newDayo = {}; こんなおぶじぇくとがあった時にnewDayoを def = { a : function () { console.log('add no a dayo'); }, b : function () { console.log('def no b dayo'); } } としたいんだけど newDayo.__proto__ = add; newDayo.__proto__.__proto__ = def; 以外に適切な方法ってないですか?
80 :
72 :2011/10/28(金) 19:42:43.05 ID:???
ありがとうございます 色々あるようなので、それぞれ調べて使うようにします
newDayo = { a:add.a, b:def.b };
>>81 レスありがとうございます。
ですがプロパティが増えていけば記述量も増えますし、
ループで上書きしていけばもっと楽はできますが、
ループで上書きさせるぐらいなら
>>79 で書いた方法の方が適切な気がします。
一部ブラウザでは動かないですが。
var proto = { prop:"aaaaaa", alert:function(){ alert(this.prop); } }; var base = function(){ this.prototype=proto; }; var test = new base(); test.alert(); これを実行すると最後の行で test.alert is not a function というエラーが出てしまいます。 this.prototype=proto; をコメントアウトして base.prototype=proto; をnewの前に入れてやるとうまくいくのですが、これらの違いは何なのでしょうか? prototypeというプロパティにさえぶちこめばプロトタイプチェーンを検索してくれると思ったのですが・・・
this.prototype=proto; の this には、インスタンスが入るだろ。
×: test.alert(); ○: test.prototype.alert(); これは、冗談だけど、サイ本読めば目から鱗がバラバラ落ちると思うよ。 英語で 6版出てるのに、日本語の 5版買うのは時期が悪いけど。
5版はWebで読める テンプレサイトの本にリンクある
あれをブラウザで全部読むのはなぁwww
88 :
83 :2011/10/28(金) 21:32:50.85 ID:???
インスタンスの…という意味がよく分からなかったのですが、
http://d.hatena.ne.jp/m-hiyama/20050909/1126235062 ここを読んでやっと意味が分かりました。
インスタンスのprototypeプロパティを参照したところで、というか参照できないので
コンストラクタ関数の__proto__にprototypeとなるオブジェクトを入れるようにしなきゃいけないのですね。
ということはprototype使いたいときは確実にnewしないといけないということでしょうか?
newを使わないような記述を書いてみるみたいなブログがあったけど すごくめんどくさかった気がする
>>83 ,88
>ということはprototype使いたいときは確実にnewしないといけないということでしょうか?
目的と手段が逆になっているような気がする。
一部のプロパティ・メソッドが共通(で一部は異なる)のオブジェクトをたくさん作りたいならnew。newのためにはprototypeが必要
newを使わなくていい構造ならfor inとかでプロパティメソッドをコピーすればいいんじゃないの?
prototype.jsだとこんなの使ってる。
Object.extend = function (A, C) {
for (var B in C) {
A[B] = C[B];
}
return A;
};
var test = 〜でnewを使いたくないなら、
function base(){}
var base1 = function(){
return new base();
};
base.prototype=proto;
これはjQueryが応用してる。
>>40 403を使えばキャッシュ管理は出来ると思うよ
>>82 とりあえずdeprecatedな__proto__をいじくるのはまったく適切ではないと思う
ルートの計算ってjavascriptにないのですか?
>>93 あるよ。
Math.sqrt()かMath.pow()で。
>>92 だから適切な方法を探してるんです。
Object.create(def)とすればnewDayoの__proto__にdefは入るけど
このnewDayoとdefの間にaddを加えるとすればどうすれば良いのかがわからない。
こうかなぁ・・・ makeSub = function(parent) { var F = function() { }; if (parent) { F.prototype = parent; F.prototype.constructor = F; } return F; }; var def = { a: function () { console.log('def no a dayo'); }, b: function () { console.log('def no b dayo'); } }; var add = new (makeSub(def)); add.a = function() { console.log('add no a dayo'); }; var newDayo = new (makeSub(add)); newDayo.a(); newDayo.b();
>>95 こ・・・こんな感じですか?
var def = {
a: function(){console.log('def no a dayo');},
b: function(){console.log('def no b dayo');}
};
var add = Object.create(def, {
a: {value:function(){console.log('add no a dayo');}}
});
var newDayo = Object.create(add);
newDayo.a();
newDayo.b();
prototypeを単にぷろぱてぃを自動的にコピーしてくれる便利ツールのように
使うのは間違ってるんじゃないかな。論理的繋がりがあるかどうかで使用を検討するべき。
あら、かぶったかスマソ
ボタンを押した時にアラートでランダムな数字を出したいのですが Firebugなどでalertを出す前に数字を書き換えてしまうことは可能ですか? もし可能な場合、これを対策する為の方法はございませんか?
alertを書き換えれば可能 対策はdefineProperty でも、なぜ困るんだろ 見た目が代わるだけで実害はないと思うけど
javascriptでゲーム作りたいのです
>>101 Firebugでゲームが進行できなくなるのは自己責任なんじゃないの
書き換えられるのが嫌ならクライアントサイドスクリプトを使うべきじゃない
>>82 ,95
(forと__proto__の比較で)何をもって適切としてるの?
短くかけること・論理性・わかりやすさ・一般的etc
少なくとも一部ブラウザで動かないのは適切じゃないと思うから、forで回せばいいと思う。
prototype.jsもObject.extend()
>>90 でオブジェクト複製しまくってるし悪く無いと思うよ。
var newDayo = Object.extend(Object.extend({}, def), add);//元のdefは変化なし
delete newDayo.aの後でnewDayo.a===def.aにしたいなら、newで複製。
var makeNewDayo = function(){};
makeNewDayo.prototype=def;
var newDayo = Object.extend(new makeNewDayo(), add)
不明瞭極まりないな。 拡張か継承のどちらかの手法に統一した方がずっと分かりやすい。
105 :
Name_Not_Found :2011/10/29(土) 22:32:57.29 ID:yek76yjY
質問させてください google.maps.Map をnewでインスタンス化したオブジェクトを console.log()してみると W{ gm_accessors= ... } のようなものが表示されたのですが、 このW{} ってなんなのでしょうか? jQuery の $.extend で MyMap.prototype = $.extend({}, google.maps.Map.prototype, { .. みたいなことがしたくて、継承して作ったMyMapをnewしてconsole.logすると、普通の object { ... } のようなW{}とは異なるものになっていて、地図が表示されないのです 教えていただけますと幸いです。
>>102 enchant.jsとか触ったことはないけど
やっぱりjsだから書き換えたり変数覗いたりできちゃうし
スコアの送信も手動やれば捏造できちゃうね
jsでゲームってどうなんだろう
(I'm not
>>101 )
難読化するんじゃね?
以下のように書くと挿入位置の右側に若干のマージンが できるのですが、これを修正する方法はないでしょうか var spanTag = document.createElement("span"); spanTag.style.backgroundColor = "#bfdaff"; range.surroundContents(spanTag);
>>106 処理やデータ保持はサーバーで行うようにし、ブラウザはビューワーとして使うように設計すればチート出来ないでしょ。
サーバークライアントのゲームじゃないとそういうのは防げない。
でも企業のブラゲってjavascript使ってるジャン
>>109 そうするとレイテンシの問題で遊べなくなるものがおおそうなんだよね
まあこの辺がjsの限界かなあ
F12
jQueryのShadowboxを用いて、画像を表示出来るようにしたのですが、 右クリックで行える「画像を保存する」を禁止にしたいのですが どうしたらいいのでしょうか?
javascript 右クリック 禁止 ggrks
e.targetがどうなってるか調べれば解決しそうじゃね?
Bubbling フェーズでイベント定義して、resize ハンドラ内で stopPropagation() すれば?試してないけど。
こんな本人しかわからない覚書みたいなのよく読むな
与えられたいくつかの文字(「あかさたな」など)から、考えられる全ての組み合わせ(かさなあた、など)を列挙するプログラムを考えているのですが、 文字数が限られている場合はループのネストで簡単に出来ると思いますが、入力される文字数がいくつになるかがわからない場合、どのようなプログラムを組めば良いのでしょうか? アルゴリズム的な話になってしまって申し訳ないのですが、ご教授いただけるとありがたいです。
ファーストインスピレーションだと、ループしながら再帰かなぁ。
http://jsfiddle.net/55v3u/2/ このようなとき、もう片方のブロックにD&Dすると移動要素のスタイルのpositionがrelativeなので
appendした瞬間にもとのブロックのpositionを維持したまま移動するので、画面外に行っちゃいますよね
http://jsfiddle.net/55v3u/3/ positionをfixedにすると、要素の配置のときに要素が宙に浮いた状態になって気持ち悪いし、
最初のpiyoブロック内や要素をappendしたときに要素を配置するのも大変です。
positionをabsoluteかrelativeの状態で、appendしたときにどっかにすっ飛んでいかないようにしたいです
何かよい解決方法はありますか?よろしくお願いします。
function test() { var a = "あ"; window.addEventListener("DOMContentLoaded", function (event) { alert(a); }, false); } これってイベント登録した時にaがコピーされているんですか?
124 :
Name_Not_Found :2011/10/31(月) 08:16:04.10 ID:Z9OvPxS2
>>123 コピーされません。たとえばtest()の中でそのイベントハンドラを
複数箇所に登録したときも1つの変数「a」が共有されます。それが
クロージャというもの。その説明で分からないならクロージャの勉強
してからもっかいどうぞ。
>>120 string.length で文字数を取得すればいい
>>125 全然質問の答えになってないじゃん。たとえば長さが5だと分かったあと
それでどうするのかって聞いてるわけで。
>>120 ホレ。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML//EN">
<html><head><title>???</title>
</head><body>
<pre><script type="text/javascript">
function perm(s, t) {
var l = s.length;
if(l == 0) { document.writeln(t); return; }
for(var i = 0; i < l; ++i) {
perm(s.substring(0,i)+s.substring(i+1,l), t+s.charAt(i));
}
}
perm('あいうえお', '');
</script></pre>
</body></html>
var e = function(){ this.a = function() { return "aaaaa"; } } alert(e.a()); クロージャを実行しても動きません どこがいけませんか?
>>128 もしe.a()と書きたいのであれば
var e = {
a : function () {
return "aaaaa";
}
};
と書かないと。
そのままの書式で保ちたいなら
var e = new function(){
this.a = function()
{
return "aaaaa";
}
}();
とする。
その書き方であればe().a()であれば実行できる。
レスに書かれてる時点でのeは関数オブジェクトなので
this.a = function(){}
はまだ実行されていない。
おお、まちごうとるな この場合new Exampleでないと動かんのや
clientWidthというのはIEではpaddingを含まず Firefoxではpaddingを含めて取得するものですか? IEのマニュアルにはpaddingを含まないと書いてありますが MDCにはpaddingも含まれてました
>>126 文字数がわかっている場合の方法は知ってると読めるんだが
あなたも茶々入れるぐらいなら回答したら?
まるで噛み合ってないなw
アホかw
>>134 文字数が10の場合はforを10個用意しようとしてる奴に文字数の取得方法だけ教えて何がどう解決するんだ?
alert()のようにwindowの表記を省略できるものについて このwindowの省略するかしないかで結果が変わるものってありますか?
window.open(); document.write("<script>alert(1);</script>"); document.close(); これでアラートがならないのですが何故ですか? h1とかそれ以外のタグは有効なのにscriptタグだけ反映されません
>>138 基本的には、無い。ただ、コードのソースを取って来て、自分の
動いてるところのソースを調べるとかもできるので、そこに
windowと書いてあるかないかでわざと違う動作をするような
ものも作れなくはないという点で、絶対無いとまでは言えないかも。
>>139 エラー出てるかどうかまずチェックしてみ。エラー見れない奴は
質問以前の段階だからね。
142 :
139 :2011/10/31(月) 15:53:15.98 ID:???
書き方を代えます scriptタグだけエラーになる原因が分らないという事です
143 :
139 :2011/10/31(月) 15:57:03.19 ID:???
すいません自己解決しました
>>143 ほーらその原因をちゃんと書いてから帰れって。それが嫌ならもう来るな。
盛り上がってると思ったらまた煽り厨が沸いたのか
ちゃんと解決させたげてるじゃん。
たいしたレベルでもないのにドヤ顔する奴ってきめえw 昔からこういうのいたけどさw
> document.write("<script>alert(1);</script>"); ここの </script>ってのでscriptタグが閉じてしまうからだろ。 document.write("<script>alert(1);</scr" + "ipt>"); とかすればいい。
以下のような感じでハイライトをした場合 このハイライトを除去するにはどうすればいいでしょうか var sel = window.getSelection(); if (!sel.isCollapsed) { var selRange = sel.getRangeAt(0); document.designMode = "on"; sel.removeAllRanges(); sel.addRange(selRange); document.execCommand("HiliteColor", false, "#ffffcc"); sel.removeAllRanges(); document.designMode = "off"; }
150 :
122 :2011/10/31(月) 19:08:06.54 ID:???
たいして煽ってもないのに偉そうにパトロール面する奴もきめえな。
>>148 そりゃダサイって。"....<\/script>" と書くのが普通だろ。
なんでわざわざ実行時に連結して読みづらくするのさ。
今回のGoogleのロゴはどうなってるのかね ヘッダ見る限りYouTubeから動画をとってきてるみたいだけど html5動画が見れない環境で右クリしてもFlashの設定画面が出ない
最近のIE以外のブラウザってブラウザごと閉じるとunload発動しないような気がするんだが気のせいか
unloadなんてGCに使う程度でしょ 閉じるときにサーバに送信的な使い方されるけど そういうのは真っ当な設計じゃないと思う
>>>=ってなんですか?
シフト演算子じゃないの
>>155 アプリのように閉じるときにフォームの状態を保存したかったんだが、もっと適切なタイミングがあるのだろうか
setIntervalで30秒ごととか onChange時に1/50の確率とか
それが真っ当な設計か?
入力をキャッチすりゃいい
operaはリロードでも発生しない。 >onunload
>>152 どうにかして上にエレメントかぶせてるだけっぽいです
166 :
Name_Not_Found :2011/10/31(月) 22:06:25.68 ID:WUerl3Lc
多次元配列配列への挿入がうまくいきません どのように挿入できるのでしょうか? var a = [[]]; for (var n=1; n<=4; n++) { for (var i=0; i<2; i++) { a[n][i] = n + "-" + i; } } alert(a[0][0]);
こーかな var a = []; for (var n=1; n<=4; n++) { a[n] = [];
シフト演算子はオーバフローしそうで恐ろしくて使えない
>>168 var a = [];
for (var n=1; n<=4; n++)
{
a[n] = [];
for (var i=0; i<2; i++)
{
a[n][i] = [n,i];
}
}
alert(a[0]);
このように書き直してみましたが挿入されませんでした
n=1から始めてるんだから a[0]は空だよそりゃ a[1]をみてみ
176 :
105 :2011/11/01(火) 00:05:21.65 ID:T2WTC6Ug
どなたか
>>105 アドバイスいただけると幸いですm(_ _)m
いまだ解決せず・・
>>176 それだけだと怪盗できません
コピペしてすぐ動かせる最小のソースコードをのせてください
>>177 免責事項書けばなにやってもいいというわけではない
>>179 アメリカのようにプログラム製作者が日本では保護されていない
のは分かってます。youtube等で簡単にポケモンショックの動画
が見れる状況ですが、やっぱ免責事項書いとけばOKにはなりませんかね。
大画面で見るとかなり目に刺激が予想外にきて驚きました。
>>105 Wはたぶんコンストラクタの名前
グーグルマップの事は知らんけど
prototypeコピーすれば動くというのは目算があっての事なの?
コンストラクタの処理は把握してるの?
>>180 そういう問題じゃないでしょ
アメリカでも被害があれば訴訟になるよ
法的に保護されていれば倫理的な問題は度外視して良いと思ってる?
あまりプログラムに詳しくないものですが質問させてください ブログにアップロードした画像を20枚ほど投稿するときに自動的に1,2,3・・・などと記載してくれる プログラムなどあるのでしょうか? 今上げた画像を投稿する際に手打ちで1枚上げるごとに「1」と自分で打っているのですが 他の人のブログ見るととてもこの面倒な作業をしていると思えなくて 簡単なスクリプトでできるのであればご教授願いたいです
何をいってるのか意味がわからないけど たぶんJavaScriptとは無関係だな 状況もよくわからないし ただ連番とか順番にってのはループ文で簡単に実現が可能
79 名前:Trackback(774)[sage] 投稿日:2011/10/19(水) 10:45:23.08 ID:OFsUwmGx 画像を記事に入れる際に、画像番号を自分で[1.]とか付けてるんだけど これを自動でつける事ってできる?
>>183 >面倒な作業をしていると思えなくて
してるんだよ。
その程度の枚数、自力でやれ。
人に物を見せたいというモチベーションで。
面倒だってのは、その程度の目的意識しかないって事だ。
っつーか、投稿を受ける側のプログラムを書く立場の人でないと
それは解決しないだろ。投稿する側ではなく。
188 :
Name_Not_Found :2011/11/01(火) 12:55:10.34 ID:2Tlsc0Vp
>>183 <ol>つかえばいいじゃん
詳しくはHTMLスレとCSSスレで聞いておくれ
以下のようなhtmlで"ラーメン"を選択状態にさせてwindow.getSelection()で <span>ラーメン</span>というinnerHTMLを取り出したいのですが どのような手段があるでしょうか おいしい<span>ラーメン</span>です
下のスクリプトを実行すると1、2、3と表示されるのですが これはつまりJavaScriptでは<!--は//と全く等しい意味をもつということで正しいのでしょうか? 何故どこにもこのコメントアウトの仕方が載ってないのでしょうか? またブラウザ以外の実行環境では動くのでしょうか? ブラウザはNet Front 4.0です <script> <!-- W=alert; <!-- W("a"); W(1); <!-- W("b") -->; W(2); <!-- W("c"); W(3); -->-->--> </script>
191 :
Name_Not_Found :2011/11/01(火) 16:25:14.91 ID:2Tlsc0Vp
エラってるだけじゃなくて?
文字列が選択されるたびに選択文字列の背景を着色し、以前の選択文字列の背景をクリアしたいのですが 以下のようにするとspanタグが実行するたびに増えてしまいます。この解決策はないでしょうか var spans = document.body.getElementsByTagName("SPAN"); for(var i=0;i<spans.length;i++){ spans[i].style.backgroundColor=""; var selection= window.getSelection(); if (selection.toString()!=="") { var range = selection.getRangeAt(0); var span = document.createElement("span"); span.style.backgroundColor="#ffff00"; span.innerHTML = range.toString(); range.deleteContents(); range.insertNode(span); }
<丶`∀´>
194 :
Name_Not_Found :2011/11/01(火) 17:38:44.53 ID:2Tlsc0Vp
>>192 >var span = document.createElement("span");
ちゃんと読んでないけど、この変数をif節の外で
var span = null;
とでもしておいて、createElementする前に
spanの中味がElementNodeだったらremoveChildすればいいんじゃないかな
195 :
194 :2011/11/01(火) 17:45:51.99 ID:2Tlsc0Vp
すまん if節の外で、ってなんかおかしい getSelectionしてからの一連の処理系の外で
<a href="#test">ここをクリックすると</a> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> <h3><a name="test" id="test">ここに飛びます</a></h3> リンクを踏んだときに、リンクの座標を取得する方法はございませんか?
リンク座標ってなんだ まぁイベントでも見れば良いんじゃない
>>194 ありがとうございます もう一つ質問なのですが
テキストを選択状態にしてドキュメントのspanタグを除去し、
var selection= window.getSelection()を実行すると
正しいselectionが得られません。なぜでしょうか
//spanTagの除去
var spans = document.body.getElementsByTagName("SPAN"),
span, parentNode;
spans = Array.prototype.slice.call(spans, 0);
for (var i = 0, len = spans.length; i < len; ++i) {
span = spans[i];
parentNode = span.parentNode;
parentNode.insertBefore(span.firstChild, span);
parentNode.removeChild(span);
parentNode.normalize();
}
var selection= window.getSelection();
>>197 様ありがとうございます
リンクの座標とは絶対座標というやつです
layerYですとクリックした位置の座標を返すので、リンクの文字の大きさによって返される座標にバラつきが出てしまいます。
たとえばcssでいうtopとleftのような感じで、リンクが配置されている絶対座標を取得したいのですがどのようなイベントを利用するのが良いでしょうか?
それならoffsetTopとLeftを遡って足し算が良いんでないの
201 :
Name_Not_Found :2011/11/01(火) 18:51:48.41 ID:2Tlsc0Vp
>>198 相変わらずざっくりで申し訳ないが
たぶんnormalizeしたことで、parentNode内にもともとあった
複数あるtextNodeがつながって新しいノードになり
その結果selection.focusNodeがなくなっているのではないかと予想
202 :
198 :2011/11/01(火) 19:07:02.79 ID:2Tlsc0Vp
手元で軽く書いてみたけどやっぱそうだと思う 新しいselectionで新しい<span>を埋め込んでから 古い<span>の前後のノードをつないでnormalizeするのが良いかと というより、<span>を埋め込んだ時点で 予めもとに戻す用にselection.focusNodeのコピーでも とっといたほうがいい気がしてきた
>>196 のなんですが、タグと属性を変更せずリンクをクリックしたときにh3に飛ばさないで特定の処理を行う方法はございますか?
205 :
Name_Not_Found :2011/11/01(火) 19:33:38.06 ID:2Tlsc0Vp
>>204 event.preventDefault
>>202 たびたび申し訳ありません
可能でありましたら具体的なコードか
または参考になるサイトなどないでしょうか
>>205 様ありがとうございました
これで飛ばないようにはしたいのですがURLにハッシュも付かなくなってしまいました
URLはハッシュ先に変わって、ページ内のh3への移動のみ飛ばしたくないのですがこの方法はございませんか?
209 :
Name_Not_Found :2011/11/01(火) 20:13:06.38 ID:2Tlsc0Vp
なんでそんな事したいの・・・? それならpushStateあたり使えば
211 :
Name_Not_Found :2011/11/01(火) 20:17:50.66 ID:2Tlsc0Vp
ズルズルっと移動させたいだけじゃないかと予想してました
212 :
Name_Not_Found :2011/11/01(火) 20:28:09.50 ID:2Tlsc0Vp
>>207 Firebugでちょろっと書いてみただけ+消えちゃったのでコード残ってないやごめんね
この手のは探せばいくらでもいいのが転がってると思う
今書いてるコードを直すんだったら
> parentNode = span.parentNode;
> 略
> parentNode.normalize();
ここ、parentNodeすべてをnormalizeしちゃうとselection.focusNodeが無くなってしまうのが問題
あと、span全部探すのも無駄だと思う
>>190 コメントの入れ子はHTML規格上では禁止だし、全てのブラウザで同様に動作するとは限らない。
>>209 様
addEventListenerでクリックしたリンクのハッシュが取得できればいいのですが
thisが効けばevent.preventDefault()した後にthis.hrefでurlを取得してlocation.hashにハッシュを書き込めれば解決はできそうなのですが・・・・
addEventListenerではthisが使えないので断念しました
>>210 様
pushStateといのは初めて知りました。popStateなどもあるようで調べてみます
>>211 様
今よく見かけるあのズルズルっとスクロールを移動させるやつです
215 :
Name_Not_Found :2011/11/01(火) 21:12:08.13 ID:2Tlsc0Vp
>>214 >addEventListenerではthisが使えない
いろいろ勘違いしている
event.currentTargetを見るといいと思うよ
thisキーワードについても、使えるとか使えないとかないから
時間があるときによく調べてみるといいかも
216 :
202 :2011/11/01(火) 21:17:42.09 ID:2Tlsc0Vp
>>207 たびたびすみません
focusNodeをとっておくのは、駄案でした
新しいfocusNodeが被った時の処理が面倒くさすぎました…
>>215 様ありがとうございます
event.currentTargetはjQueryのことでしょうか?
ライブラリを使わずにjavascriptを書いて実装したいと思ってます
>>216 何度もご指摘ありがとうございました
新しいselectionで新しい<span>を埋め込んでから
古い<span>の前後のノードをつないでnormalizeするという
具体的なコードが思いつきません
script初心者かつrangeは初めて使いますので
具体的なコードを、可能でしたら教えていただけないでしょうか
JavaScript を自ら学ぶ人のための質問スレッドです。
220 :
Name_Not_Found :2011/11/01(火) 22:13:14.28 ID:2Tlsc0Vp
>>217 すこし勘違いしているpart2
例えば
<a><span>hoge</span></a>
document.querySelector("a").addEventListener("click",function(evt){
console.log(evt.target);
console.log(evt.currentTarget);
},false);
ってすると、targetは<span>、currentTargetは<a>
currentTargetはイベントが登録されてる要素への参照を返しているんだね
jQueryは関係ない話で
ご指導のお陰でなんとか良いものができそうです ありがとうございます
223 :
Name_Not_Found :2011/11/01(火) 22:58:09.07 ID:2Tlsc0Vp
>>221 自分の息子の誕生日を祝うと言いながらセックスしまくり
その一週間後には違う宗教の神殿に祈りを捧げられる
それが神!
でも最終的には<a href="#test">test</a>のようなリンクをクリックしたときに URLは反映されても、ハッシュの飛び先には飛ばないっていう処理ができればやりたい事ができるんです いまもぐぐっているのですがそういうのは出来ないのでしょうか?
225 :
Name_Not_Found :2011/11/01(火) 23:03:42.85 ID:2Tlsc0Vp
>>218 新しい<span>を埋め込むところまでは良いよね?
まず、仮に<div>要素でも作っておく
次に古い<span>と、そのpreviousSiblingとnextSiblingを見て
テキストノードだったらそのノードバリューを<div>に放り込む
で、previousSibling、nextSibling、古<span>をremoveChildして
<div>の中に作ったテキストノードをappendChildする
ってのでどうだろう
226 :
Name_Not_Found :2011/11/01(火) 23:04:48.31 ID:2Tlsc0Vp
>>226 HTML部分は追加も変更もできないです
javascriptだけでなんとかしたくて。
229 :
105 :2011/11/01(火) 23:19:58.87 ID:T2WTC6Ug
>>178 >>181 レスありがとうございます。
>prototypeコピーすれば動くというのは目算があっての事なの?
>コンストラクタの処理は把握してるの?
目算もなく、コンストラクタの処理も把握していませんでした。
単純にprototypeを継承すれば親であるgoogle.maps.Mapのコンストラクタが
自動で走るはずなので問題なく動くはずだと思っていたのですが、違うのでしょうか?
以下、最小のコードになります。
230 :
105 :2011/11/01(火) 23:20:34.63 ID:T2WTC6Ug
<style>
#map {
width: 740px;
height: 480px;
}
</style>
<%= javascript_include_tag "jquery-1.6.4.min.js" %>
<script type="text/javascript" src="
http://maps.google.com/maps/api/js?sensor=false&language=ja "></script>
<script type="text/javascript">
$(document).ready(function(){
var MyMap = function(){
}
MyMap.prototype = $.extend({}, google.maps.Map.prototype, {});
latlng = new google.maps.LatLng(36.626446, 139.723444);
var options = {
zoom: 16,
center: latlng,
mapTypeId: google.maps.MapTypeId.HYBRID
}
var obj = new MyMap(document.getElementById("map"), options);
//var obj = new google.maps.Map(document.getElementById("map"), options);
//console.log(obj);
});
</script>
<div id="map"></div>
231 :
105 :2011/11/01(火) 23:20:57.87 ID:T2WTC6Ug
これで地図が表示されるはずだと自分は思っていたのですが、ダメなようです。 MyMapをnewしている行をコメントアウトしてその下の行のコメントを取ってためしてみると、 当然期待した通り動きます。 さらにその下のconsole.logを実行すると、MyMapとgoogle.maps.Mapでは返ってくる オブジェクトが全然違ってしまっているようです・・ どのように書けばうまく継承できるのでしょうか?
自分の最初のレス番を名前に入れるとかID出す(mail欄→空)とかしてほしい。
>>1 (3)
>>214 =
>>217 =
>>224 ?
まずはライブラリ使って実装して、ライブラリが十分に理解できたら自分でjsを書けばいいと思うよ。
というか、途中からなりすましがいる?
.preventDefault()して、evt.currentTarget.hrefからhashを切り取って
location.hashに入れればいいっていう答えが
>>214 ,
>>220 で出ているように見える。
233 :
214 :2011/11/01(火) 23:35:45.94 ID:???
>>232 様ありがとうございます
event.preventDefault()した後にhashを書き込む方法でうまくいきました
234 :
Name_Not_Found :2011/11/01(火) 23:43:24.43 ID:s6XAYpxs
>>231 ↓で動くかは知らんが、試してみ
var MyMap = function(){
google.maps.Map.apply(this,arguments);
}
MyMap.prototype = $.extend({}, google.maps.Map.prototype, {});
location.hashって存在するnameつっこむと飛ばないっけ?
236 :
Name_Not_Found :2011/11/02(水) 00:30:29.83 ID:vK2Fl7vr
>>227 いやだからJSでID変えてしまえば
URLにはハッシュがついて
ジャンプがキャンセルできて
スクロールは自前で行えるじゃん
URL詐欺したいってことかえ
238 :
214 :2011/11/02(水) 00:38:17.48 ID:???
IDって<a href="" id="test">のid属性のことですよね? ぼくは何か勘違いしてますでしょうか?
239 :
214 :2011/11/02(水) 00:41:15.17 ID:???
現状はevent.preventDefault()してスクロールが終了してから最後にlocation.hashで書き込んでるのですが挙動としては
>>236 様のが理想です
240 :
Name_Not_Found :2011/11/02(水) 00:42:34.53 ID:vK2Fl7vr
241 :
214 :2011/11/02(水) 00:45:52.27 ID:???
getElementByIdでidの値を取得してurlにどのようにハッシュをつけられるのですか? 差し支えなければどのようなものか伝授していただけませんか?
<a href="#a1">test</a> <div id="a1">aa</div> document.getElementById("a1").id = "dummy_a1"; ってことらしい。 そうすれば、<a>のクリックでa1はないから移動しないけど、hashは自動で変わる。あとは、jsでdummy_a1へスクロール ユーザーから見たらどっちも同じなんだから、作る側の好みでいいよ。
243 :
Name_Not_Found :2011/11/02(水) 00:49:34.70 ID:vK2Fl7vr
ああ、補足ありがとう そしてCSSのことを考えると、クソアイディアな気がしてきました
どうでもいいけど idじゃなくnameじゃないのか
nameとかいつの話だよ
調べた。どうやら前時代の人間だったようだ。
はぁ・・・
はぁ・・・と言われても・・・
idとnameに関することは
>>235 ,244しか書いてないわけだが・・・
はぁ?
250 :
Name_Not_Found :2011/11/02(水) 03:32:09.63 ID:pfyhW8+D
BBS NOTEで、しぃペイントBBSは使えるのに、しぃペインターだけ使えません 設定も合っています 同じブラウザなのにWeb Diary Proだと、しぃペインターもちゃんと動きます だけど使いたいのはBBS NOTEなのですが、Web Diary Proで動くのにBBS NOTEでしぃペインターが動かないのは何故なんでしょうか 設定もパーミッションも何度も見直したんですが…
var test = { name: "aaaa", func1 : function (){ alert(this.name); } }; var list = { "v": test }; if (typeof list['v'].func1 !== "undefined") list['v'].func1(); ↑こんな感じのことがしたいのですが最後の2行両方でエラーになります どのように書けばよろしいですか?
>>253 あーごめんなさい
var listが const list だったのが問題だったみたいです。
これからは最小限にした時ちゃんと動作しないか確かめてから質問するようにします
申し訳ありません。
255 :
Name_Not_Found :2011/11/02(水) 05:40:22.51 ID:vK2Fl7vr
>>252 出先だから確認できないんだけど、HTML4,HTML5の仕様書を読むといいと思う
script要素の章に説明があったはず
257 :
Name_Not_Found :2011/11/02(水) 09:24:12.77 ID:pfyhW8+D
>>255 すみません、しぃってjavaがどうとかって書いてた気がするので…
cgi関係のスレのほうが良かったでしょうか
258 :
214 :2011/11/02(水) 10:36:18.99 ID:iHERM9PA
>>242 様ありがとうございます
こちらのパターンでも作ってみました
勉強になりましした
ありがとうございます
259 :
Name_Not_Found :2011/11/02(水) 10:58:19.88 ID:FwY3CrtV
いつもお世話になっております。 ただいま、「cloud-zoom」というプラグインを利用して 画像を拡大してみせる試みをしておりますが、この分ですと 画像を呼び込む為に<img>タグを<a>タグで囲んでるようで、 表示さていないのですが、リンクとして機能してしまっていています。 そこで以下のスクリプトをページ内に準備したのですが、当然といいましょうか、 ページ全体のリンクが機能しなくなってしまいました。。 一つだけのタグに機能するようには出来ないものでしょうか? お知恵をお借りできればと思います、宜しくお願いいたします。 <script type="text/javascript"> $(function cs(){ $('a').click(function cs(){ return false; }) }); </script>
>>260 jqueryならjqueryと書いたほうが良い
一つだけのタグに機能するってimgを囲ってるaタグの事を言ってるんだよね?
ならそのaタグだけをidなりselectorなりで指定すればいい
というかcloud-zoomのサンプル見たけどリンクになってないぞ
何か別のものが原因だろ
ある変数の中身を文字列にするときにStringとtoString()を使うと思いますが この2つの違いはありますか?
String()はStringオブジェクトを返す。 toString()は文字列を返す。
>>262 toStringの動作は固定されてない
Array.prototype.toString とかプロトタイプによって変わるし、変更することもできる
>>263 String() はオブジェクトを返さないぞ
null,undefinedはtoStringできない
>>261 失礼しました、jqueryのほうで当ってみますね。
ありがとうございました。。
alert()が表示される位置を調整することはできませんか?画面の右下に出したのです
>>262 toStringメソッドを定義しておくと
Stringや文字列として必要になったときにtoStringが呼び出される
つまり引数が必要ある場合を除いてtoStringを直接呼ばない方が良い
>>270 「自分が文字列が必要になったとき」にtoString()呼ぶのは
いけないんでしょうか。「自分が文字列が必要になったとき」
はどうすればよいのか教えてください。
>>271 new String()とString()の結果は異なる
使われないというのは前者
>>272 中身がnullやundefinedでない事が保証されてるならtoStringでもいいと思うけど
String(自分)
or
''+自分
>>258 すみませんでした
JAVAとjavasucriptとごっちゃになってました
JAVAスレ探して聞いてみます
ありがとうございました
>>274 a-->b;
みたいなスクリプトどうなるの?
var a = { 'b': { d : function () { // ここで 'b' を取得する方法ってありますか? } } };
ないお
280 :
Name_Not_Found :2011/11/02(水) 17:52:25.92 ID:vK2Fl7vr
thisじゃだめなん?
a.b.d(); this==a.bになる。"b"は取れるかは知らない。
>>280-281 要素名のbを取得したいのでthisでは無理でした
key: null を作っておいてループで要素名を入れるようにします。
皆様ありがとうございましたm(__)m
function XHR({method, url, headers, data, onload, onerror, onreadystatechange, overrideMimeType, async}) { } ↑これをChromeでもエラーがでないように↓こうしたんですけど function XHR(x) { var method = x.method, url = x.url, headers = x.headers, data = x.data, onload = x.onload, onerror = x.onerror, onreadystatechange = x.onreadystatechange, overrideMimeType = x.overrideMimeType, async = x.async; } もっとスマートな書き方ってありますか?
int型の最大値って分りますか? 桁数が多くなると1.23e4見たいな感じで表されるやつじゃなくて 0-9までの数字のみで表せる最大値ってわかりませんか?
function XHR(method, url, headers, data, onload, onerror, onreadystatechange, overrideMimeType, async) { } どうしても{}がいいなら、for inループ
with使うと良い var XHR = function (x) { with(x){ console.log(method()) } }; XHR({method : function(){return 'test'}});
>>284 Number.MAX_VALUEで取れる値が最大値、最小はMIN_VALUE
比較とかは普通にこんなんで出来る
100 < Number.MAX_VALUE
>>283 それが一番いいと思うなあ
最も高速だし
>>274 --> が許されるのはHTML5で仕様が変化したから
Firefoxの実装を探るならHTML5を読んだ方がいいよ
www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#the-script-element
docomoは今でもstyle要素の中身晒しちゃったりするけど、scriptの中身晒すブラウザってあるのかな
実装に拘らないコードがいいと思うな
>>285 この書き方普通に忘れてましたw
ありがとう!
294 :
279 :2011/11/02(水) 20:20:27.49 ID:???
295 :
Name_Not_Found :2011/11/02(水) 20:27:08.55 ID:vK2Fl7vr
>>291 スレ違い+不勉強で申し訳ないですが
いわゆるi-mode2.0ブラウザでも、表示されてしまうん?
宿題だけど質問していい?駄目ならスルーでお願いします 普段は"boy1.gif"を表示しておいて、マウスが画像の上に来たときに "boy2.gif"に画像を切り替えるようにしたい でも下のコードだとマウスを画像に乗せても変化しない どこがおかしいのかご指摘をお願いします <html> <head> <script type = "text/javfascript"> function over(){ var obj = document.getElementById("boy"); obj.src = "boy2.gif"; } function out(){ var obj = document.getElementById("boy"); obj.src = "boy1.gif"; } </script> </head> <body> <img id = "boy" src = "boy1.gif" onMouseOver = over(), onMouseOut = out()> </body> </html>
惜しいなw htmlとjsは別物だ。 jsには問題ないからhtml(<imgの行)を見なおしてみ。
299 :
Name_Not_Found :2011/11/02(水) 21:18:10.61 ID:vK2Fl7vr
>>297 属性値はクオートで括ろう
あと"text/javfascript"がタイポ
scriptタグのところのは発見しにくいだろうなあ。
302 :
Name_Not_Found :2011/11/02(水) 21:22:43.46 ID:vK2Fl7vr
あやまってもゆるさない
305 :
297 :2011/11/02(水) 21:26:57.78 ID:???
くだらないミスwww恥ずかしいwwwww
>>298-300 ご指摘ありがとうございました。無事解決しました
307 :
214 :2011/11/02(水) 23:04:05.24 ID:???
>>294 俺なんてリアルで社会から無視されてるよwwwwwwwwwww
落ち込むなよwwwwwwwww
307 コテハンミス
どうせブラウザのアドレスバーに表示されてるのはhttpから始まってなくて C:\マイドキュメント〜になってるんだろ
313 :
Name_Not_Found :2011/11/02(水) 23:28:31.01 ID:2pm7zPoZ
alert(9799999999999999); 結果9800000000000000 これはなぜですか? こうなるので対策方法はありませんか?
>>278 変数aを使っていいんなら、こういうのどうよ。(ダメなら a.b.d(a)って渡す必要あり)
var a = {
'b': {
d : function () {
alert(find(a, arguments.callee));
}
},
'c' : { d: { e: { f: function () {alert(find(a, arguments.callee));}}}}
};
a.b.d();
a.c.d.e.f();
function find(o, t) {
for (var i in o) {
if (o[i] instanceof Function) {
if (o[i] === t) {
return i;
}
}
else if (o[i] instanceof Object) {
var result = find(o[i], t);
if (result) {
return i;
}
}
}
return false;
}
// ツッコミ待ち
>>316 変数の意味が分りにくい
適切にインデントしてない
>>313 0.3!==(0.2+0.1)
これと同じような問題じゃないかなー
>>316 a渡すのがありならもっと簡潔に書けそうな気がする
あと全角スペースをインデント替わりに使えば良いよ
全角スペースでもインデントOKだったはずだし(Webkitのコンソール上ではOKだった)
>>317 >ajaxってのはjavascriptの中の通信するための技術の名称
javascriptから発展した技術だと思っていました
申し訳ありません
ソースは紹介されていたものがコピペでそのまま使えると書いてあったのですが知識不足でした
>>318 ajaxも含めて書籍を買って勉強します
どうもありがとうございました
323 :
Name_Not_Found :2011/11/03(木) 09:28:06.06 ID:eOg8a7pn
>295 んなわけないいやん >291が何年も前のふるーーい携帯かラクラクフォンみたいな機能削減物使ってる癖に偉そうに知ったかぶっとるだけや それよりauはいつになったらまともなstyleとscript対応するんや
サポートしてるだけで俺が使ってるわけじゃないけどな docomoはすみやかに氏ね
以下のコードのbody.lastChildはどの地点で変化するのでしょうか var div = document.createElement("DIV"), body = document.body; while(body.lastChild) div.insertBefore(body.lastChild, div.firstChild); body.appendChild(div);
(1)のテキストのEFを選択状態にして(2)の状態にしたいのですが window.getSelection()の取得した後はどのようにすればよいでしょうか (1) ABC<span>DE</span>FG ↓ (2) ABCD<span>EF</span>G
327 :
313 :2011/11/03(木) 11:21:48.76 ID:???
328 :
313 :2011/11/03(木) 11:24:15.44 ID:???
今確認してみたんですが9006999999999999(約9千兆)までの数字だと四捨五入されずに済みました
>>328 JavaScriptは正なら9007199254740922までしか正確に計算出来なかった気がする
331 :
Name_Not_Found :2011/11/03(木) 20:20:06.75 ID:My6r33HH
>>330 53bit?何でそんな半端なビット数なの?
しらんけど1bitはマイナス管理で10bitは小数管理じゃねーの
しらんならだまっとれ
つまり正確にに計算できる最大の値はなんですか?
は?
JavaScriptの数値型は、表面的には1つ(64bit倍精度浮動小数)だけど、 整数としては2通りある。 1つは32bit整数、論理演算をすると勝手に変換される。 もう1つは倍精度浮動小数の仮数部で表現できる53bit。 2^53=9007兆1992億5474万0992まで表現できる。 parseInt(9007199254740992) は 9007199254740992 だけど、 parseInt(9007199254740993) は 9007199254740992 に丸められる。
本物のプログラマは煽り合いをしない。 煽るのはパイ食べだ。
こういう仕様的な部分を知るプログラマってあんまりいないんだね おれも知らないけど
JavaScriptの整数が64bit倍精度浮動小数っていうのは GoodPartsとかにも書いてあるよ 整数が32bit未満の場合メモリ管理やらの効率から 実装上はintで管理してたりするというのは見たことがあるな
>>335 あたしあなたのその知りたい事だけ知ってオサラバしよう的な態度が気に食わない
JavaScriptというかECMAScriptの方で、Number型は the double-precision 64-bit format IEEE 754 valuesと定義されとる 符号部 1 ビット ・ 指数部 11 ビット ・ 仮数部 52 ビットの合計 64 ビットだ
definePropertyというものを教えていただきました このdefinePropertyが実行しているブラウザで対応しているか判定する方法はございませんか? 以下のような感じで確認できると思って自分なりに書いてみたのですがだめでした if (true === defineProperty()){ // 対応してます } else { // 未対応です }
typeof Object.defineProperty === 'function' typeof ({}).defineProperty !== 'function'
({}).defineProperty ん、これ存在することあるの?
しないよ Objectにはあってもオブジェクトには無いよという意味 だから態々!==としてあるんだけど解り辛いか・・・
だよね すまんぐ
未定義の要素にアクセスする場合↓以外に何か簡潔な書き方ありますか? if (typeof ary['aaa'] =="undefined")
>>351 未定義の要素なの?プロパティじゃなくて?
プロパティだとして if (!('aaa' in ary))
>>352 加えて、プロトタイプチェインを辿らなくていいならhasOwnProperty()が使えるね
意図的に辿りたい場合はinじゃないとダメだけど・・・
充分簡潔やんけ
document.write ("<\/a>"); document.write ("</a>"); ↑スラッシュってエスケープする必要ってあります?
試してみればよくね・・・?
今時DOMを使わない男の人って・・・
関数って呼び出されるたびに関数内のコードを再度読み直して実行するの?
function a(){b();} function b(){} aの中でbを実行してもエラーになるような実装はどのようにするのでしょうか?
>>359 function b () {
if (typeof a === 'function') {
throw new Error;
}
}
>>359 function a () {}
function c () {
function b () {}
}
すいません質問内容を変えます b()を他の関数の中で実行してもエラーになるようにしたいのです class A private function a(){} class B private function a(){} でクラスAのa()からクラスBを読んでもエラーになるような感じで書きたいのですがそういう書き方ってできませんか?
>>362 JavaScriptにprivateメソッド的な機能はありません。
>>360 か
>>361 で解決してください。あるいは、Dartを使用してください。
ついでに
>>1 の(3)を守ってもらえると助かります。
arguments.callerは廃止になったけど a.callerやらb.callerは非標準ながら プロパティとしてあるみたいだけどどうなんだろうな
>>358 関数内のコードは書き換え不能だと思うから
読み直してても読み直して無くてもどうという事はナインじゃないですか
>>358 「読み直す」がよくわからないけど、パースするのは初めの一回だけ
評価するのは呼び出し時
追記。
>>367 は(現段階では)非標準の機能を使用しているのでお勧めはしません。
「こんな方法もある」という程度のコードです。
>>363 privateメソッドの実装方法ならあるだろ
あるね。たしか、こんなの。 function Test() { var privateMethod = function () { alert('test'); } this.publicMethod = function () { privateMethod(); } } var t = new Test(); t.publicMethod();
>>366 じゃあよく使う処理や条件式は関数にまとめたほうが処理は速い?
>>371 関数コストは高い
つかなんで「じゃあ」なの?
>>370 どうしてt.privateMethodとやったりprivateMethod()とやっても実行されないのですか?
>>373 privateMethodのスコープはTest関数内にしか存在しないから。
publicMethodはTest関数内で生成された関数なので親へのスコープは持つ。
だからTest内の変数を扱える。
>>367 isInstanceMethod がなんかおかしい様な。
this が Global になるし。それとも誤読してるかな。
>>355 仕様書の上では<sciprt>タグ内に "</" は書いちゃダメだという事を
前にここで教えてもらった
が実際にダメな環境は知らない
>>376 求めるプライベートメソッドがどういう物か解らないので何とも言えないと思う
実際クローズな物である事には間違いないし
もうちょっと汎用的にしたのがGoodPartsにあった気がするけど覚えてないや
381 :
Name_Not_Found :2011/11/05(土) 10:59:28.06 ID:AgNkpzdu
window.addEventListener("click",function(){ // ここに数行のコード }, false); function a(){ //ここに数行のコード // ここの行で↑のイベントを停止させたい } function b(){ //ここに数行のコード // ここの行で↑のイベントを停止させたい ある処理をしたときだけ↑のイベントを一時的に停止させたいのですが どのようにやるのでしょうか?
382 :
382 :2011/11/05(土) 11:00:20.22 ID:AgNkpzdu
途中で送信してしまいました 書き直します window.addEventListener("click",function(){ // ここに数行のコード }, false); function a(){ //ここに数行のコード // ここの行で↑のイベントを停止させたい } function b(){ //ここに数行のコード // ここの行で↑のイベントを再開させたい } ある処理をしたときだけ↑のイベントを一時的に停止させたいのですが どのようにやるのでしょうか?
そういう実装は何か違う気がするなぁ・・・ どいった処理をしたいかじゃなくどういった事をしたいのか書くともっと適切な回答があるかもしれない
>>383 同僚のコにいいとこみせてキスしたいです。
フラグひとつでできるじゃない var teishi = false; window.addEventListener("click",function(){ if( teishi ) return; }, false); function a(){ teishi = true; } function b(){ teishi = false; }
386 :
382 :2011/11/05(土) 11:40:18.20 ID:AgNkpzdu
>>385 そういうテクニックがあるのですね!
ありがとうございます!!
>>384 Guillermo Rauchみたいになればいいよ
>>387 そういうテクニックがあるのですね!
ありがとうございます!!
青シャツの方に似てるのでいけそうです!
setInterval(arguments.callee(hoge),1000); このように書いても動かないのですが、どうすればいいでしょうか? どうやらsetIntervalの第一引数は関数へのポインタなので括弧を付けなければ動くのですが、 引数hogeを渡すことはできませんか?
arguments.callee(hoge)の”結果”をsetIntervalに渡してるから動かない functionで包めばいい
setIntervalだとそれを実行している関数が1sごとに倍々で増えて実行されるんじゃね? function aa(hoge){ // 処理 setInterval(arguments.callee(hoge),1000); } って書いてるんだよね? ならこうかな。 var _this = arguments.callee; setTimeout(function(){ _this(hoge); },1000);
393 :
Name_Not_Found :2011/11/05(土) 23:54:36.58 ID:hWGlwu4J
setInterval("任意の処理", 1000); とした場合、setIntervalは1秒後に必ず処理を実行してくれるものですか? また、setIntervalに1秒を設定して1時間動かすとして計3600回処理が実行される事になりますが PCにバックグラウンドで動いているプログラムが影響して処理が重くなったときも setIntervalは重くなったときに実行するべき処理を切り捨てずにきっちり処理をおこなってくれるものですか?
>>393 全然保証はない。処理の内容が時間掛かったら抜けたりする。きっちりなんて
無理。CPUにこなせる以上の処理なんてできるわけないじゃん。そういうものだと
思って使うしかないね。
396 :
Name_Not_Found :2011/11/06(日) 00:01:29.02 ID:FJlxbjht
ええええええ
397 :
393 :2011/11/06(日) 00:02:03.10 ID:FJlxbjht
あれIDがかわった何故
398 :
389 :2011/11/06(日) 00:13:19.86 ID:???
みなさんありがとうございました
>>391 さんのでsetTimeoutの部分setIntervalにして思ったとおりに動いてくれました
実行数が増えるようなこともありませんでした。
>>398 一応いっておくけど、setIntervalは処理に2秒かかっても前処理の終了を待たずに実行するからね
Firefoxは表示してないタブのsetTimeout|setIntervalは100ms以上になる設計になったはず
>>399 今回の場合は0.1秒かからないような処理なので大丈夫です
時間がかかりそうなときはsetTimeoutを使うようにします
ありがとうございました
>>400 未実行の処理をキューに積んでるのかしらんけど、
それで会社のややスペックの低い PC がフリーズしかけてたの
目の当たりにした。
あれはないわ。
>>398 >実行数が増えるようなこともありませんでした。
ほんとに?
clearIntervalはしてないんだよね?
document.getElementsByTagName(nm)が指定タグのエレメントを全取得、
document.getElementById(nm)が指定IDのエレメント取得
と
http://javascriptist.net/に載ってたのですが 、これって正しい呼び方
なんですか?手持ちの本に「HTMLタグをdocument.getElementByIdで
オブジェクトとして取得」のように書いてありますが、みなさんは
何と呼んでいるのですか?
405 :
398 :2011/11/06(日) 02:50:01.34 ID:???
>>403 正直に言うと”実行数が増える”の意味を私が正確に理解していないのですが、
経過時間を表示して試してみましたが、
インターバルを1000にすれば大体1秒に1度実行されています。
clearIntervalは実行を止める時以外はしていません。
>>404 名称がタグかエレメントかってこと?
それなら
タグはHTMLの構文での名称であってDOMで扱うときはElementだよ
タグを含んだHTML文書をブラウザが解釈してエレメントを含んだ文書ノードができるってこと
>>404 取得しているものはエレメント、或いは要素が間違いない言い方かと。
しかしエレメントや要素もオブジェクトなので、「オブジェクト”として”」と言ってます。
>>405 1秒ごとに自分を再び呼び出すようにsetIntervalが実行され、しかも元のタイマーが止まらないから
>>391 が言うように、タイマーの数が倍々で増えるんじゃなかろうかということです。
1秒後に1度
2秒後に2度
3秒後に4度
みたいになってないかな?
410 :
405 :2011/11/06(日) 04:47:22.70 ID:???
>>409 あ、理解しました。実際の実装は
function hoge(a){
if(a===1)aaa;
else setInterval(myself(1));
}
みたいな感じです。言葉足らずで申し訳ありませんでした
411 :
Name_Not_Found :2011/11/06(日) 09:33:53.17 ID:bkhUrSZA
Mac OSX 10.6.7 Safari 5、Google Chrome 15、Opera11 失礼します。 javascriptでストップウォッチ(デジタル時計)を作ろうとしていて ウィンドウ幅いっぱいに文字を表示するのでが、うまくいきません。 文字列のfont-size = 文字列のfont-size * (ウィンドウ幅 / 文字列の幅); ↑このような処理一定時間ごとに実行し、 ウィンドウ幅いっぱいに文字を表示しようとしています。 FireFoxだと期待通りの挙動になるのですが、safari、chrome、Operaだと (ウィンドウ幅 / 文字列の幅)が1にならず、0.95→1.05→0.95→1.05→...... というようになってしまい、font-sizeが変動し続けてしまいます。 本当なら、文字列のwidthを直接指定したいのですが、 それだと文字の大きさは変更できないので、font-sizeをいじっています。 CSS3のtranslateのscaleなどをいじれば、おそらく動作させられると思うのですが、 IE6などでも動作させたいのでCSS3を使わずに完成させたいです。 上手い方法はないでしょうか?
Window がリサイズされたときだけ、再計算すればいいんじゃないか。
何でgetElementsByClassは実装されないのですか?
Element.prototype.getElementsByClassName || HTMLElement.prototype.getElementsByClassName
あれ? おまえらまさかsetIntervalの第3引数の存在知らないのか 便利だから知ってた方がいいぜ そしたらfunction文で一々囲むとかアホな発想はなくなる
>>418 知ってるが実装が整ってないから書かなかった
<ul> <li>a</li> <li><ul><li>b</li></ul></li> </ul> このような構造のリストを消すときって $('ul').remove();とするだけで親要素ulに含まれる全ての子要素も含めて削除されると思っていいですか?
スレ違い
>>420 jQueryだろうという仮定
それで残るのは一番外側のULのみ
>>421 別にこのスレで質問する事自体は禁止はされていないし
今までの流れから言っても専用スレでないとNGという事もない
>>422 のこる? empty()と間違ってないか?
あぁごめん$('li').remove()と何故か脳内変換してたようだ・・・ 何も残らないね
つか試せばわかる事と違うんかい
>>425 試してみて、これがすべてのケースに当てはまるのだろうか? ってことじゃね。
まあ、この場合はドキュメントに書いてあるんだけれど。
ちなみに、remove()は、選択されている要素に対して
if ( elem.parentNode ) {
elem.parentNode.removeChild( elem );
}
してる。
Q&Aに頼るくらいだから、DOMを確認するツールの扱い(存在すら)を知らないヤツもけっこう居そうだけど。
429 :
Name_Not_Found :2011/11/06(日) 18:34:25.14 ID:mljst5u4
かなり技術的な話になるかもしれませんが、中級者または上級者の方は是非回答お願いします。 HTML形式で作成されているWebページのhref="javascript:setPrefなどの複数の複雑なjavascript要素で構成されているリンク先の解析について。 そのjavascript要素で埋められたリンクをクリックすると、クリックする前のそのリンクがあるページ内のURLのみしか取得されません。 つまり、そのjavascript要素で埋められたリンク先のURLが「javascriptで埋められているため」URL自体を取得することができません。 しかもその1つのリンクにつき複数のjavascript要素が埋められており、area_pref_key= および href="javascript:setPref などURL自体が分からないようになっています。 しかし、このような複数のjavascript要素が埋められているリンクのURLを解析するにはどうすればいいのでしょうか。 通常はjavascript要素が埋められているので解析できないと思いますが、そのリンクを別のjavascriptでURL変換できる方法があれば教えていただきたいです。
430 :
低所得者 :2011/11/06(日) 18:44:04.85 ID:???
質問の意味がまるで分かりません><;
>>421 わざわざ専用スレなんて立ててたらこの板はjsばかりのネタになるからスレ違いでもなんでもない
たらい回しにされそうだな。
そこ元々は単発質問スレの板違いだから
>>429 ( ^ω^)なになに
( ^ω^)ふむふむ
( ^ω^)・・・
( ^ω^)・・・
( ^ω^)・・・
( ^ω^)zzZZ
>>429 もっとわかりやすくかけw
あと、オレオレ用語は混乱の元。埋められるとか。
javascript要素 == jsの関数でOK?
href="javascript:setPref();"だと、クリックされるとsetPrefという関数が実行されるだけ。
どこかのページ(URL)へ移動するということではない。
略(つかれた)
質問者もわからない点が何かを相手に伝わるように 簡潔に質問文を書く義務くらいはある
え?この程度の日本語も理解できないの? 俺が訳してやるよ。 それは非常に技術的な話、私たちに答えを聞いてきます中級、上級のユーザー可能性があります。 HREF HTML"ジャバスクリプトの形式で作成されている= Webページ:JavaScriptなどsetPrefなど、複数の複雑な要因で構成されているリンクの解析。 あなたはjavascriptが唯一のクリックする前に、リンクのURLのみでページを取得していないことを要素に満ちたリンクをクリックする。 つまり、"それはJavaScriptで満たされているので、"javascriptの要素に埋葬されたリンクのURLは、それ自体は、URLを取得することはできません。 Javascriptの要素はそれよりさらに多く記入されているすべての個々のリンクは、href=とarea_pref_key="ジャバスクリプト:我々はそのようなsetPrefとして、URL自体を知る必要がある。 しかし、リンクのURLを解析するためにはいくつかの要因のようなjavascriptの私はどうすればよいが埋葬されている? 通常、私はそれは要素解析のジャバスクリプトを埋葬されたとは思わない、JavaScriptで別のURLリンクに変換する方法があるかどうかを教えてください。
面白いとおもったの?
改行すんな氏ね
改行厨=バカの法則が定期的に発動するスレだなしかし
いや、改行しろとも言いたい。
まれによくみるキチガイJavaScriptリンク
>>1 (5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
445 :
Name_Not_Found :2011/11/06(日) 23:01:00.30 ID:FZPr7aUu
質問させてください・・・ jQueryのslideUpアニメーションで、終了後にアラートを出したいのですが、 アニメーションが終わる前にアラートが出てしまいます・・・ アニメーション終了まで待つ方法はあるでしょうか? ありましたらお教えいただけないでしょうか よろしくお願いします。
>>445 よその板で答えもらってる分は無視ですか
>>446 めちゃすみませんでした
次のレスで答えてもらってたのに気づいてなかった・・・・
ありがとうございましたorz
脊髄反射で質問している人が結構な数いると思う
>>1 を読むぐらいして欲しいもの
脊髄反射で回答しないように気を付けなきゃ。
Jqueryについて質問させてください
<link rel="stylesheet" href="javascript/lightbox2.05/css/lightbox.css" type="text/css" media="screen" />
<script src="javascript/lightbox2.05/js/prototype.js" type="text/javascript"></script>
<script src="javascript/lightbox2.05/js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>
<script src="javascript/lightbox2.05/js/lightbox.js" type="text/javascript"></script>
<link rel="stylesheet" href="javascript/accordion2/style/contents.css" type="text/css" />
<script type="text/javascript" src="
http://www.google.com/jsapi "></script>
<script type="text/javascript">google.load("jquery", "1.2");</script>
<script type="text/javascript" src="javascript/accordion2/js/accordion.js"></script>
複数のJQueryをひとつのページに設置したいのですが上記の記述だとlightboxが正常に動作しません
ふたつを正常に動作させるにはどうしたらいいでしょうか
俺はJqueryの質問には答えないから ↓任せた
( ^ω^)zzZZ
「documentオブジェクトに対して〜メソッドを実行すると 要素のノードの集合(NodeList)を返す。」 「documentオブジェクトに対して〜メソッドを実行すると Node interface(単一のNode)を返す。」 という文章は正しいですか?正しいとして、 documentオブジェクトに対して〜メソッドを実行すると 返される値はNode interface(単一のNode)またはnodelist のどれか2つと考えていいのですか?
457 :
Name_Not_Found :2011/11/07(月) 09:38:08.21 ID:hUGlep1u
>>453 getComputedStyleとかはnodeでもnodelistでもないものを返すよ
jQuery Mobileの質問もここで良いのでしょうか?
javascript初心者です。
form inputのtypeを初回を入力時にtextからpasswordに変更することは可能でしょうか?
twitterのTOP画面のように、text入力フォームに初期値が表示、 ユーザが入力時に消すということをしたいのですが、
http://gmr.blog.shinobi.jp/Entry/527/ を参考に実装しました。
しかし、パスワードのところは初期値が*****と表示されます。なので入力以前はtypeをtextで、入力時に
passwordに変更したいと思います。javascriptでどのように実装すればよいでしょうか?
>>459 typeを変えることは可能。
でも面倒なので placeholder 属性使おうぜ。
461 :
459 :2011/11/07(月) 11:35:44.74 ID:???
>>460 ありがとうございます。
とりあえず、typeの属性を変更すること、それっぽく実装できました。
placeholderはこれから調べてみますm(_ _)m
>>453 正しくない
インターフェースを返すのは DOM Interface Object だけ
メソッドが何を返すかに固有の特徴はない
ある要素にcssでheight:10%としたとき この要素の縦のサイズをpxで取得する方法はございませんか?
464 :
Name_Not_Found :2011/11/07(月) 15:08:19.83 ID:dVPuUs7p
>>463 クリックとかのイベントで10%にしたなら、
そのイベント内でリサイズ後にサイズ取得じゃだめっぽい?
fomにsubmitボタンが2つ <input type="submit" name="submit" id="submit" title="" value="保存する"/> <input type="submit" name="submit" id="delete" title="" value="削除する"/> こんな感じでありサーバーサイドではこれで処理できているようですが、Javascript(jQuery)で $("form").submit(function() { return false; }); こんな風に割り込みを入れたい場合に押されたボタンを区別する方法を教えて下さい。 サーバーサイドはいじりたくないのでタグはなるべく書き換えたくありません。 よろしくお願いします。
>>465 function内で、this.idで判断したらいかがでしょうか?
$("form").submit(function() {
console.log(this.id);
//alert(this.id);
return false;
});
あとは、if文でthis.idを見るでいけるのかな
468 :
467 :2011/11/07(月) 15:22:24.39 ID:???
あ!フォームのIDが返ってくるから、ダメかw thisの下の、input type=submit のidを見る感じか
469 :
Name_Not_Found :2011/11/07(月) 15:23:54.35 ID:hUGlep1u
event.targetを見る、じゃいかんの?
>>467 submitが指すidはformの物になると思うんだけど
>>469 多分それもformになるはず(少なからずchromeではそうだった)
$(function () {
$('form').on('submit', function (e) {
debugger;
return false;
});
});
なかなか難しいようですね・・・ 代替え案として <input type="button" value="削除する" ONCLICK="submitdel()" /> とした場合、サーバーに type=submit value="削除する"を送信する関数の書き方がありましたらお願いします。 サーバーサイドではRequestの中のsubmitのvalueを調べてボタンを区別しているようです。 それを送信できれば関数からsubmitしてもいいと思うのですが・・・
>>472 http://jsbin.com/upoyeh/3/edit#javascript,html,live こんなんでどう
$(function () {
$('#form').on('submit', function (event,firedEvent) {
console.log(firedEvent.currentTarget.id);
return false;
});
$('#form input').on('click',function (e) {
$(this.form).trigger('submit',[e]);
return false;
});
});
>>473 試してみます!
ありがとうございました!
'#form input'の部分は'#form input[type="submit"]' にした方が良いかも あとon使ってるけどこれは1.7からのコード それ以下ならonをbindに変えれば動くはず
476 :
450 :2011/11/07(月) 17:11:13.98 ID:???
>>456 ありがとうございます!
仰る通り他のライブラリとバッティングしているようでした
jQuery.noConflict();がバッティングを回避するコードだというのは理解できたのですが
どのように書き換えてやればいいのでしょうか?
>>463 getComputedStyle とか clientHeight とか
>>465 explicitOriginalTargetはどう
なにそれと思って調べるとfirefox独自っぽいね OperaはrelatedTargetだし Chromeにいたっては同等の物が無い Safariは調べて無いけどChromeと同じだろう(多分
Greasemonkeyのスプリクトから画面の右下にぴったりくっついてくる ホップアップ(?ボタン付き)を表示させたいのですが どうしたらいいのでしょうか 今までは特定のidの後ろに表示させていたのですが 邪魔にならないようにフッターに変更したいのです。。
画面上で「h」を押した時、画面上で「9」を押した時それぞれに設定した関数を実行させたいのですが この場合onkyedownとかがいいんでしょうか?
>>481 まず試せばいいんじゃないか?
試してダメで考えてもわからなかったら質問じゃないか?
やり方が分からないんじゃなくてモダンな実装方法を聞きたいんだと思う
Firebugを使う理由を教えてください 今から覚えるのはキツイぐらい難しいですか?
>>485 実行中のスクリプトを指定した場所で止めて、
変数の中がどんななってるか確認できる。
その場所で、動的に変数の中を書き換えて実行結果のテストを行える。
スクリプトでHTMLを動的に書き換えている場合、
書き換えた結果をわかりやすく出力してみせてくれる。
その他もろもろ、もうなくてはならないツール
インターフェイスはすごく優れていてい感覚で使える。
俺は別に何の解説も読まず使ってるが満足。
ちゃんとマニュアル読めば、きっともっと便利な事もあるんだろうけど。
感覚って日本語おかしいな、直感で使える。だな。
フォースか
>>486 すいません
>スクリプトでHTMLを動的に書き換えている場合、
>書き換えた結果をわかりやすく出力してみせてくれる。
この部分どうやって確認するかだけ教えてください
>>489 - 右クリックして [要素を調査]
- [F12] から [HTML] タブへ
習うより慣れろだ
jqueryについてご指導お願いします <div> <p>ここの下に文字が出てきます</p> </div> ↑のHTMLに↓のコードを実行してこんにちはを挿入したいのですが $("div").append("<p>こんにちは</p>"); 追加するときに、この追加する文章をフェードインさせながら追加したいのです fadeIn()をどのように組み合わせて使えばよいでしょうか?
追加→見えなくする→フェードイン こうすればいいんじゃね
$("div").fadeIn($("div").append("<p>こんにちは</p>"));
んな構文あったっけ。appendToつかうほうがいいんじゃね?
Components.classesとは何ですか?
appendToもappendも結果同じじゃ寝えの?
追加したあとの、選択状態が違う。 つまり $("<p>こんにちは</p>").appendTo('div').hide().fadeIn(); のように、追加した部分に操作ができる。
ほーう、勉強になる
ご指導の下このように書いてみましたが
追加した順にフェードインさせていきたいのですが全部同時にフェードインされてしまいます
<html>
<body>
<div>
<p>ここの下に文字が出てきます</p>
</div>
<script type="text/javascript" src="
http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.min.js "></script>
<script>
for (var i=0; i<10; i++){
$("<p>こんにちは</p>").appendTo('div').hide().fadeIn(1000);
}
</script>
</body>
</html>
そりゃそうやろー 時間設定しないとー
時間設定というのはfadeInに与えた1000じゃだめってことですか?
いやそーじゃなくて、1個表示されたら次の、1個表示されたら次のってやるなら 最後にfunction(){〜}って付け加えればいいんだけど、俺そういうのをforでどーやればいいのか思いつかないから setTimeoutでそれぞれ1000ミリ秒後、2000ミリ秒後に実行されるようにすればいいんじゃね?って
一旦配列に貯めておいて、再帰的に書けば行けそうだけど…
fadeInとやらはご丁寧にも完了時のコールバック引数が用意されとるやないか
deferred使えば良いよ
追加部分のみフェードインにしたいのだろうなと思って
>>494 を書いたんだけど、スルーですか(´・ω・`)
ごめん、なんでもない。勘違いだった。
>>496 アドオン開発とかのスレ行った方がいいんじゃね
>>490 うわあこれいいですね
JSONもみれるし便利ですね
あなたは神様に昇格するべきですよ
ありがとうございます
ドラクエ1みたいにシンプルな主人公がマップの上を歩くサンプルが作りたいのですが どのように作られているのかヒントをお願いします
キボード操作?
>>512 JSの質問ではないな
enchant.jsなんて物もあるから参考にするといい
よくあるのは1,0の値を持った2次元配列を作って
1なら壁みたいな判定いれたりとかだろうな
つもりこういうことですか 1,1,1 1,1,1 0,0,0 0が移動できて1が移動できない漢字で作ってキーボードが押されたら主人公をsytle.positionで移動させるってことでよいのでしょうか
516 :
450 :2011/11/08(火) 19:17:56.16 ID:???
<link rel="stylesheet" href="javascript/lightbox2.05/css/lightbox.css" type="text/css" media="screen" />
<script src="javascript/lightbox2.05/js/prototype.js" type="text/javascript"></script>
<script src="javascript/lightbox2.05/js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>
<script type="text/javascript">
jQuery.noConflict();
</script>
<script src="javascript/lightbox2.05/js/lightbox.js" type="text/javascript"></script>
<link rel="stylesheet" href="javascript/accordion2/style/contents.css" type="text/css" />
<script type="text/javascript" src="
http://www.google.com/jsapi "></script>
<script type="text/javascript">google.load("jquery", "1.2");</script>
<script type="text/javascript" src="javascript/accordion2/js/accordion.js"></script>
上記の様に追記し、lightbox.js内の $( を jQueryに置き換えたのですがlightboxが正常に動作しません
どなたか記述のやり方を教えてください;
>>515 ちゃんとJavaScript関連用語を入れるとは恐ろしい子
>>515 うむ。
Javaのゲームでもそんな感じで動いてるの多いよ
a : { var J="", K; ..... } の a : は何ですか?
変数
521 :
520 :2011/11/08(火) 20:01:46.47 ID:???
間違った。 ラベル
522 :
Name_Not_Found :2011/11/08(火) 20:06:53.41 ID:r8njTeVx
>>516 lightbox.jsはprototypeの方じゃないのかね?
あとaccordion.jsは?
>>516 全然試してないけど、jQuery.noConflict();を最後に記述するのでどうだろう?
jQuery.noConflict(); は window.$ をバックアップとってあるのをもどすってだけだから。
でも、google.loadってのがよく分からんな。変なタイミングでロードしてるんかな。
とにかく、jqueryがロードされてからでないとうまく動かないと思う。エラーメッセージでてないか?
おー、ラベルってループだけじゃなくて単なるブロックで使用する事もできたのか 横からひとつ賢くなったわありがとう
なんでやねん
お前にはスイトルポジションがお似合いだ
好いとる
水からの伝言
531 :
Name_Not_Found :2011/11/08(火) 22:41:04.24 ID:oGku2hyJ
画像をクリックしたら他のページへ飛ぶように書いたつもりなんですが
クリックせずともこのスクリプトを埋め込んだページを開くといきなり対象リンクへ勝手に飛ばされます
解決策教えてください
window.onload=dezain;
function dezain(){
document.getElementById("sono1").src= "image.jpg";
var dgiz=document.getElementById("zentai").style;
dgiz.onclick = link();
}
function link(){window.location.href="
http://tes ";}
532 :
Name_Not_Found :2011/11/08(火) 22:45:21.07 ID:oGku2hyJ
間違えたこっちです window.onload=dezain; function dezain(){ document.getElementById("sono1").src= "image.jpg"; var dgiz=document.getElementById("sono1").style; dgiz.onclick = link(); } function link(){window.location.href="test";}
dgiz.onclick = link(); ここでlink()を実行してるから。 やるなら dgiz.onclick = link; 若しくはこっちの方がもっと良い。 if (document.addEventListener) { // 最近のモダンブラウザは全てこっち dgiz.addEventListener("click",link); } else if (document.attachEvent) { // 主に古いIE用 dgiz.attachEvent('onclick',link); }
534 :
Name_Not_Found :2011/11/08(火) 23:14:40.96 ID:r8njTeVx
>>533 addEventListenerの引数足りないって怒られないか?俺もよくやる
あぁそうだね、useCaptureいるね 無くてもエラー吐かないブラウザとかあって忘れるわ・・・
モダンモダン言う奴は デスクトップに日付不明の作業フォルダが散乱しているイメージ
DHTMLやWeb2.0みたいな?
>>536 イメージと真逆ですまん。デスクトップには何も置かないし
作業フォルダも作業が済んで数日たっても使わないフォルダは削除する主義なんだ
>>537 DHTMLって何時の時代だよ
モダンって言葉自体が昔くせぇってことじゃねえの
モダンは古いけど モダンブラウザってのはよく聞きますよね。 技術文書が英語の訳だからかな?
作業、作業中、作業(新)、作業中(改変)、作業(テスト)、作業途中(モダン) 最新のはどれでしょう
どうでもいい
543 :
450 :2011/11/09(水) 08:13:08.90 ID:???
>>522 返信ありがとうございます!
失礼しましたaccordion.jsの方は置き換えてあります
lightbox.jsではなくprototype.js内の $(を jQueryに置き換える ということでしょうか
>>543 違います。
一応釘を差しておくと、JavaScript を自ら学ぶ人のための質問スレッドなので、
ライブラリの使い方を手取り足取り教えてもらえるとは思わないでくださいね。
wikipediaの本文のみを取り出したいのですが どのタグを取り出せばよいのでしょうか
546 :
Name_Not_Found :2011/11/09(水) 12:15:09.79 ID:Jf9WmG81
iniファイルの読み込みみたいな感じに、 外部にあるテキストファイルを一行ごとに各配列に格納することって javascriptで実現できますか?? 可能なら方法をご教示いただきたいです
ブラウザが○○が実装されているかどうかを判定する方法を調べるには、どのように検索したらいいのでしょうか? 具体的には、ブラウザがprogress要素をサポートしいるかどうか、insertAdjacentHTML関数が使えるかどうかを JavaScriptで判定する方法を教えてください
>>545 それくらい自分でソース開けば分るでしょ
面倒なことを人にやらせるな
しかもjavascriptと関係ない
549 :
Name_Not_Found :2011/11/09(水) 12:28:57.05 ID:ZHKX2J61
>>546 その外部ファイルを各配列にデータを格納するjavascriptにすればいい。
>>550 人力でやったらめんどくさいじゃん。
>>546 httpObj.responseText.split("\n")
でできないかな
んまーアレだな、一見無理そうな事でもやってみれば結構出来るもん 試してから質問するのが効率的にも一番良い
554 :
Name_Not_Found :2011/11/09(水) 13:28:02.39 ID:ZHKX2J61
>>551 まじでか
適当に書いたんだが
sectionだったらどうしようかと…
>>543 おとなしくjQueryベースのLightbox「風」スクリプト探して使いな
衝突回避以前に2つも汎用ライブラリ読み込むとか無いわ
>547 正しい方法かわかりませんが自己解決しました ブラウザがprogress要素を実装しているかどうかは'HTMLProgressElement' in windowで確認でき insertAdjacentHTML関数を実装しているかどうかは'insertAdjacentHTML' in HTMLElementで判定できました
>>556 すいません、下の方は'insertAdjacentHTML' in HTMLElement.prototypeでした
uploadifyってクライアントで動作するんですか?
559 :
Name_Not_Found :2011/11/09(水) 14:28:47.95 ID:9nFBY0Wd
>>558 そらそうよ
ただ、おソース見てみればわかると思うが
サーバ側でもゴニョゴニョしているよ
まだuploadifyをダウンロードもしていないんだけど、これを使えば 複数ファイルのアップロードができるらしいんですが、JavaScriptで できないことがuploadifyならできるというのが信じられない。 どうなってるんだ?
phpやflash使ってるだけ
uploadifyでのアップロードはflashのパスを指定するみたいでしたが、 flashはクライアントローカルに置いておくものですか? アップロード先サーバに置いておくものですか?
flashはアップロード先サーバに置くものみたいですね。 通常のセキュリティ設定で使えるものでないとだめです。 複数ファイルのアップロードが簡単にできる方法ないですか?
無い 終わり
566 :
Name_Not_Found :2011/11/09(水) 16:11:35.42 ID:sIdE6qvn
567 :
Name_Not_Found :2011/11/09(水) 16:18:58.13 ID:sIdE6qvn
解決しました ConsoleタブにURLが書いてあってそれをクリックしたらJSONタブがでてきました
無いんじゃなくて僕は知りませんが正解だと思われ
570 :
504 :2011/11/09(水) 16:32:24.50 ID:???
>>500 よく考えたら、再帰ではなかった。
こんな感じで。他にも方法はあるとは思うが。
var callbacks = [];
for (var i = 0; i < 10; i++) {
callbacks.push(function() {
$("<p>こんにちは</p>" + i).appendTo('div').hide().fadeIn(1000, function() {
var callback = callbacks.shift();
if (callback) {
callback();
}
});
});
}
(callbacks.shift())();
571 :
Name_Not_Found :2011/11/09(水) 16:34:35.26 ID:sIdE6qvn
>>569 そんなゲームで言うと攻略本みたいなのがあるのですか!
今それ見て覚えてみます
俺はあなたも神様に認定したいと思います
ありがとうございます!
572 :
504 :2011/11/09(水) 16:41:27.62 ID:???
しまった >$("<p>こんにちは</p>" + i).appen ここのところの + i いらねぇ。
いいってことよ
returnの書き方がよくわからないのですが function hoge(){ var a1 = "abc"; var a2 = "def"; return (a1,a2); } function main(){ var moji = hoge(); document.write = moji[0]; document.write = moji[1]; } この書き方だと moji[0]はd moji[1]はe で a2の文字列しか戻ってないような? returnを return [a1,a2]にすると moji[0]="abc" moji[1]="def"と思い通りの動きをしてくれます
再帰でできるお (function hoge(c){ if( !c-- ) return; $("<p>こんにちは</p>").appendTo(document.body).hide().fadeIn(1000, function(){ hoge(c) }); })(10);
>>574 moji[n]は配列からデータを取得してる。
return [a1, a2];は配列返している。
return (a1, a2);は配列でもなんでもない。
(正確にはカンマ演算子といってカンマの後のものを必ず返すので"def"となる。)
1つならそのまま、複数個なら配列を使えばOK
577 :
504 :2011/11/09(水) 16:56:03.15 ID:???
>>575 おお。なるほど。
hogeつかわず無名にしてcalleeつかうのでもいいね。
calleeはだめか。
deferredつかえとあれほど
やってみる
a.prototype.b = function(){} っていう風にprototypeを使いまくるのはよくないって聞いたんですけど何故ですか?
ドキュメントが読み込まれた後に実行したいコードがあります </body>のすぐ上にscriptを書いてますがwindow.onloadもしくはaddEventListerでloadを書いてその中に実行したいコードをちゃんと書くべきですが?
再帰のでやってみたけど…なんかちがうような。 deferred使ってる意味が無い気がする。 fadeInの終了を待って次ってのがもっとうまく書けるんですか? (function hoge(c) { if (!c--) return; $("<p>こんにちは</p>").appendTo('div').hide().fadeIn(1000) .promise().done(function() { hoge(c) }); })(10);
>>581 よくないっていう話をしてるなら理由も一緒に書いてあるでしょ普通
>>581 組み込みオブジェクトのprototypeを弄るのはよくない
586 :
Name_Not_Found :2011/11/09(水) 17:48:12.56 ID:9nFBY0Wd
>>581 JSは体に良くないからあんまり書かないほうがいいよ
って言われたら書かんのかい!
var test = { str: "", init : function (s) { this.str = s; }, }; ↑これを独立させて生成するのってどうやるんでしょうか? phpでいうclassみたいに使いたいのですが test.init("あ"); test.init("い"); だとstrが上書きされてしまいますよね
>>581 文脈によって変わるからソースを示すべきかと
>>587 コンストラクタとnew演算子を使うと
それぞれのインスタンスを生成できます
591 :
581 :2011/11/09(水) 18:09:06.52 ID:???
すいませんどこのサイトか覚えてません ブックマークするのわすれてしまいました
<div id="oya"><script type="text/javascript" src="js.js"></script></div> とあった場合、js.jsの中から自身の親要素を得る方法はありますか?
>>593 document.getElementById('oya')
>>564 <input type=file> を複数書くのではダメなの?
>>594 this.parentNodeではダメでした
他の方法が思いつかないのです
>>595 紛らわしい書き方ですいませんでした
親要素がdivやid="oya"であるとは限らないのです
>>582 もっと上にscript要素入れたら読み込み遅延したりするから、それでいいと思うよ
>>599 参考にします ありがとうございました
HTML文字列を、読み込み時document.writeで書き出すか、読み込み後innerHTMLで書き出すか選べるようにして
script要素の親要素がheadの場合はdocument.writeでは書き出さない、というような処理を考えていました
602 :
Name_Not_Found :2011/11/09(水) 20:21:57.83 ID:oMFLdYNO
謎の半角空白に困っています。
下記のテキストファイルをローカルに落としてください。
http://www.rupan.net/uploader/download/1320837287.txt 2行目の、半角空白に似て非なる文字は何なのでしょうか?
これをajaxでHTML上に表示させたいのですが、
この文字のせいで、以降の文字列が表示されません。
この文字の正体と、ファイル全ての文字列を表示させる方法を
教えていただけませんでしょうか。
<script>
<!--
window.onload = function(){
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
var url = "nazo-space.txt" //
http://www.rupan.net/uploader/download/1320837287.txtです 。
if(xmlhttp){
xmlhttp.onreadystatechange = check;
xmlhttp.open('GET', url, true);
xmlhttp.send(null);
}
function check(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.body.innerHTML = xmlhttp.responseText;
}
}
};
//-->
</script>
603 :
602 :2011/11/09(水) 20:24:55.80 ID:oMFLdYNO
すみません。環境を書くの忘れてました。 XP、IE8で実行しております。
>>516 google.loadをちょっとしらべてみたら、ライブラリを遅延読み込みするものじゃないか。
>>523 でも書いたけど、jQuery.noConflict(); はjqueryの関数なので、
その位置に書いてもjqueryが読み込まれていないのでエラーがでるだけ。
まずは jqueryを通常の方式(scriptタグのsrc)でロードし、そのあとで jQuery.noConflict(); を記述しよう。
(google.loadにはライブラリを読みこんだあとに呼んでくれる機能があるが…)
lightbox.js は prototype.js に依存しているようなので、それを変更するのは全くの間違い。
accordion.jsはいろいろあるのでわからんが、prototype.jsに依存するのなら、変更するのは間違いだし、jqueryのアドオンのなら $で呼び出したりはしていないだろう。
>>602 何も見てないけど多分、改ページ
つーかバイナリくらい見ろよ
Microsoft.XMLHTTP消えねーな マジ害悪
IE消えねーな
こういう馬鹿な書き込みする奴ら消えねーな マジ害悪
おや、こんなところに鏡が
付け加えるとヌルバイト攻撃とかそういった類の事されたりしたんじゃね
null文字で切られてるみたいですね
613 :
602 :2011/11/09(水) 21:19:01.44 ID:oMFLdYNO
すみません。 null文字ということまで理解できました。 ありがとうございます。 document.body.innerHTML = xmlhttp.responseText; ↓ document.body.innerHTML = xmlhttp.responseText.replace(/\x00/g, " "); としましたが、うまくいきませんでした。 お知恵を貸していただけませんでしょうか。
xmlhttp.responseText; この時点で既に切れてるから無理なんじゃないですかね
jqueryで小さなメッセージ表示のポップアップを ある要素の上に載せたら表示して、その要素から離れると消すという処理をやろうとしています。 ポップアップっていうのはdiv要素で作ったメッセージボックスのようなものです。 表示するときはfadeInで消えるときはfedeOutでやろうとしています。 イメージとしては、 フェード中に他の要素の上にカーソルを移動したときに、 現在のアニメーションをとめて、そのアルファ値からまた表示するということをやりたいのですが、 うまくいきません。 途中でストップして止めて、 そこからまたfadeInしようとすると、 中途半端なアルファ値で止まってしまいます。 何かサンプル等ないででしょうか?
getBoundingClientRectが対応してないブラウザってなんですか?
617 :
Name_Not_Found :2011/11/09(水) 22:02:52.38 ID:9nFBY0Wd
なんですか?ってなによ!!!!!
ご不満の模様
おまいら、文字はNUL、Lは1つだ。 NULLはポインタ。
HTML側(呼び出し元) <script type="text/javascript" src="***.cgi"></script> CGI(Perl)側 print "Content-type: application/x-javascript\n\n"; print "document.write(\"メッセージ\");\n"; すいません、htmlのjavascriptでcgiを呼び出して値を習得するやつなんですが文字ではなく画像でやりたいのです。 どうしても、できません。宜しくお願いします。 cgiから画像データを得ることは可能なんでしょうか?分かるなら 教えてください
>>621 どんなファイルでもcgiから取得できます。
画像なら<img src="***.cgi" /> みたいな感じで。
あのすいませんnullと"\0"って同じじゃないんですか?
>>620 "null character" 約 402,000 件 (0.05 秒)
"nul character" 約 312,000 件 (0.07 秒)
null文字さんの勝ちだわ
>>622 できないけど・・・・
やったのはした
print "document.write(\"<img src=\"java.png\">\");\n"
バイナリじゃなきゃhtml側じゃ読み込めないとおもうけど。
本当にできるんですか??
>>626 pngヘッダー出力すれば画像も出力出来る
つーか外部ソースでdocument.writeなんかしない方が良い
あとJavaScriptの質問のようでperlの質問ではないか
>>626 ×バイナリじゃなきゃ
○テキストじゃなきゃ
HTML側(呼び出し元)
<script type="text/javascript" src="test.cgi"></script>
CGI(Perl)側 test.cgi
print "Content-type: application/x-javascript\n\n";
print "document.write(\"<img src=\"java.png\">\");\n"(習得できない)
print "document.write(\"メッセージ\");\n"; (習得できる)
html側で文字が取得できても画像は習得できません。宜しくお願いします。
きみゃー小学生か中学生か
>>628 日本語でおk。
とりあえず鯖のエラーログ解析しろよ。
>>628 print "document.write('<img src=\"java.png\">');\n"
>>631 でたー!!!!
ありがとう、やさしいおじさん
これでcgiでアクセスカウントしたものを画像データとしてhtmlに吐き出す
ことができる!!
いやっほー!!!
どうせならjava.png(java=javascript?)をdataURIで持てばそのpngへのアクセスが減るよ
で、俺の質問はスルーされたわけ?
困り顔、泣き顔、喜び顔、眠り顔全部かわえええ
>>634 > (3) 長い間連続して質問する場合にレス番を名前にしてあれば、質問の流れが回答者に伝わりやすくなります。
うまくいかないソース出せばアドバイスしやすいよ。
JavascriptではWebページ読み込み時の処理に <body onLoad="処理">を用いたいたのが、 window.onload=になったのが jQueryでは $(function() {処理} になったと解釈していいですか?
>>615 なんでサンプル探してやらなあかんねん
えーかげんにせーよ
642 :
Name_Not_Found :2011/11/10(木) 01:35:10.29 ID:Nwoh0FZl
JSPに日付用のテキストボックスに入れて その日付テキストボックスをクリックするとカレンダー選択するようにします。 その状態で手入力は不可にして、あくまでもカレンダーのみでの選択にします こういう風な場合どうすればいいのでしょうか? タグにdesabledやreadonlyだとテキストボックス自体が使用不可になって クリックしてもカレンダーが表示されませんので使えません。 そうなるとJavascriptで強制的にテキストボックスの入力値を削除も追加もできないように するしかないと思いますが ご教授ください
>>633 data URI schemeを使うメリットって何?
元の画像よりサイズ増えるなら転送量が増すだけじゃないの?
転送量が増えるよりHTTPリクエスト回数が減るほうが鯖に優しいの?
var during=false; if(!during){ $(target).fadeIn(200,function(){ during=false; } } ↑これがマウスオーバー時 if(!during){ $(target).fadeOut(200,function(){ during=false; } } ↑これがマウスアウト時 これだとアニメーション中にアウトかオーバーが発生した場合、 今動いてるアニメーションが一回終わってからしか動かないでしょ? stopを間に入れたりしたんですが、 止めたところからまたfadeinやOutするとアルファ値が中途半端な値で 止まってしまってうまくいかないんです。 要は、ある要素の上にカーソル載せたら、あるDIV要素をフェードで表示する カーソルが離れたらフェードして消す。 フェード中にイベントが発生したら、その時点のアルファ値から処理を継続してフェード/アウトする ってことをやりたいんです。 つまりトグルがうまくできないんですよ。
$(target).stop(true,true).fadeOut(200,function(){ とかじゃなくて? 継続してってのがよくわからんな。
var a.prototype = {
init : function(win) {
this.win = win;
var show = this.show; // onload内で使う為に・・
XmlHttpなんとか({
url : "
http://ーー/ー.xml ",
method : 'GET',
onload: function (x) {
show(x.responseText); //ここでthis.showが使えない?ので
}
});
},
show : function (msg) {
alert(this.win); // undefiend
this.win.alert(msg); // エラー
}
};
show内でthis.winを参照するにはどうすればいいでしょうか
またonload内でthisの変数を使う場合の書き方は合ってますか?
今まで↓こんな感じで書いてました。。
function a(win) {
var m_win = win; // メンバ変数風
// 省略
function show(msg) {
m_win.alert(msg)
}
}
647 :
Name_Not_Found :2011/11/10(木) 08:00:29.49 ID:atHR7Xtj
平成が何年まであるかを求めるのをjavascriptで書きたいのですが、 神様教えてください。
え?
>>642 そのまんまやればいい
手入力不可で、カレンダー選択時に値入れるだけ
>>647 まず「平成を終わらせる必要がある」
和暦がどう言うタイミングで変わるのか調べて、実行に移し平成を終わらせる。
これで2011年、平成23年が最後の平成になる
652 :
640 :2011/11/10(木) 09:20:57.82 ID:???
誰か、ゆとり世代のオレに解答願います。
>>643 そこは転送量とるかリクエスト回数と応答性をとるかじゃないかなぁ
nginxとかのHTTPサーバだとリクエスト回数とかの方が良いかもしれない
メリットが明確じゃないのに、なんとなくやってみて、 あとあとメンテナンスコストが高いことに気がついて後悔するタイプだな >DataURI そもそも古いIEで表示できないし
一年後にはjQueryも互換性問題に揺れてるんだろうと思うと楽しみ
>>656 たとえ悪の枢軸IEがjQueryを倒したとしても、
第2、第3のjQueryが生まれるのだ。
そして、いつの日か、極悪自己中IEを倒す日が来ると信じてる。
ってか、すぐ死ねIE
IE8はDataURI使えるんじゃないの
jQueryをIEでも動かすjQueryIEとか現れそうな 一方ロシアはdojoを使った
IEはいつまでたっても更新サイクルが遅いねぇ まるで成長していない
IEがしっかりしてりゃ今のブラウザ戦争もーちょいマシになってたとは思うが Googleと林檎が自分の所の使いたい、他の使いたくないって理由でややこしくすんなよ
「ハイパフォーマンスJavascript」に載っていた、 1996年にJavascriptが初めて登場して以来、Javascriptの エンジンが全く進歩なく、2008年に登場したGoogle Chromeの V8と呼ばれる最適化されたJacascriptエンジンを搭載したのが、 Javasciptのエンジンが進化した最初であり さらに、最適化が未だに不十分ってマジですか?
誰にどう頼めば平成は終わりますか? 平成終了の条件式をif文でお願いします。
オチが付いてるのに蛇足で台無しに
return 昭和;
質問です。
少し複雑なんですが、
formのボタンを押下→jsでapiをひとつなげると同時に新しいウィンドウで違うサイトを開く
という感じです。現状は、
<form id="hoge" action="
http://example.com/ " target="_blank" method="post">
で、jqueryの$(id).submit( APIを投げる ) ; をしています。
そのsubmitの中でreturn ture;して、新しいウィンドを開いています。
chromeだったらうまくいったけど、FFだったらうまくいかないんですよ。
IEは試してません。
FFだと、APIを投げている時点で、formのtargetがダメみたいです。
どなたか助けて下さい!よろしくお願いします。
>>646 普通そこはshowではなくthisを変数に入れて使う
var _this = this;
...
_this.show()
>>644 もっとまともなサンプル貼らんかいガキ横着すなボケ
fadeInの代わりにfadeTo使ったら見た目ではなんとなく動いたぞ
669 :
Name_Not_Found :2011/11/10(木) 15:52:17.88 ID:UQhHOeuy
>>662 MozもFxもOperaもSafariも頑張ってんよ
何を持って進歩として、何に最適化するのかにもよるだろうが
670 :
Name_Not_Found :2011/11/10(木) 15:55:07.53 ID:UQhHOeuy
>>652 ちがうよ
$(function(){});はwindow.onloadより先に動くよ
jQueryにまともなサンプルなんてあるんか
672 :
Name_Not_Found :2011/11/10(木) 15:57:34.63 ID:UQhHOeuy
>>644 fadeinとfadeout使わなきゃいいじゃん
フェードイン・フェードアウト効果が今何%進捗したかを記録すれば良し
もしくはCSSのtransition使いんさい
>>646 そもそも var a.prototype = { の部分で構文エラーが起こるだろ。
>>666 return falseにしてwindow.openじゃだめなの?
>chromeだったらうまくいったけど、FFだったらうまくいかないんですよ。
ここの部分をもうちょっと詳しく
何が上手くいって、何が失敗したのか書くと良いよ
675 :
Name_Not_Found :2011/11/10(木) 18:07:24.79 ID:aydugICx
webサイトのHTML内にこういう記述があるとします <div id="test">テスト</div> <div id="aaa">テスト</div> <script> var obj = document.getElementById('test'); </script> そこでブラウザのアドレスバーに貼り付けたりブックマークから呼び出せるブックマークレットで javascript:var obj = document.getElementById('aaa');とやるとページに書いてあるほうのobjが上書きされてしまいますよね これを上書きされないように書きたいのですがjavascript:func();function func(){var obj = document.getElementById('aaa');}って書けばいいのは分りました これをもっとかっこよくかいてjavascript (function()〜);っていう書き方があるのを見たことあるんですが この括弧(から始まる書き方を覚えたいのでサンプルかこれの呼び名を教えていただけませんか?
無名関数の即時実行 みたいな呼ばれ方している気がするけど正式名称はわからない
現在の標準だとfunctionには二種類ありまして 即時実行できるのはカッコなんかと一緒にあるFunction Expression(関数式)ですね
質問です。よろしくおねがいします。 【環境】WindowsVista − Chrome 16.0.912.32 beta-m, Safari5 【何をしたのか】子ウインドウから親ウインドウを window.opener.location.reload() でリロードすると、親ウインドウ(フォーム)のPOSTが最送信されない 【期待する結果】親ウインドウがリロードされる際にPOSTデータが送られない為、フォームの選択項目などがリセットされた状態でリロードされますが、これを項目が選択された状態でリロードさせたい。IE8、Firefox7では問題なし。 【サンプルコード】 ■親ウインドウ: <a href="子ウインドウ.html" target="_blank" onclick="javascript:window.open('子ウインドウ.html', 'childWindow'); return false;">小ウインドウを開く</a> ■子ウインドウ: <script type="text/javascript"> if(window.opener) { window.opener.location.reload(); } </script>
679 :
Name_Not_Found :2011/11/10(木) 18:57:20.16 ID:UQhHOeuy
>>675 そんな仰々しんもんでもないけど
function(){ }
これで無名関数だけど、このままだと構文がおかしい、んで
(function(){ })
こうしてカッコに入れて、んでんで
(function(){ })();
関数を実行するときの()をつけて出来上がり
当然、ケツに書いたカッコの中に何かを入れれば関数の引数として渡る
680 :
Name_Not_Found :2011/11/10(木) 19:02:05.58 ID:UQhHOeuy
>>678 リロード時にフォームの項目がどうなるかはUA次第なんじゃないか?
そういうのはサーバ側でやるのが吉、セッションとか使って
一度もポストされていないデータがフォームに入った状態でリロードさせる
という状況がイマイチ理解できないけど、どうしてもそうしたいのなら
フォームの各項目に対して、変更があったときにその内容をcookieとかに
書き留めておく、という手もなくはないけど
関数式だと var a = function () {}(); でも問題ないんだけど 解り辛いから()つけてるだけだろ var a = (function () {})(); こっちの方がまだ関数オブジェクトを実行してると解りやすい
>>680 678です。
ありがとうございます。
やっぱりサーバーサイドでの処理ですか。
そうですよね、頑張ります!
>>681 そういう a とかいうのを使わないようにしようとしているのが発端だろ。
ブラウザがHTML要素のcontextmenuプロパティに対応しているか調べるにはどうしたらいいのでしょうか?
if (window.confirm("あなたのブラウザはcontextmenuに対応してますか?"))
>>685 ユーザーに聞いたって確かかどうかわからんだろ
3点
contextmenuイベントのこと?
何のことか分からんが、プロパティって言ってるから違うんじゃないの
690 :
646 :2011/11/11(金) 00:29:35.92 ID:???
レスありがとうこざいます。
onloadから呼び出したshow内ではthisは無理ということでしょうか
>>667 なるほど
ありがとうこざいます
>>673 いろいろ省略しました。。
いやだから_this.showにすりゃthis.winを参照できるよ bindってのを使えばそのまんまthisが使えるけどまあ調べてください
bindを使う時点でグダグダ設計なんだがな
>>687 ,688,689
Firefox 8で実装されたHTML5のコンテクストメニューを早速導入してみようと思いました
<a contextmenu="cm" href="javascript: return false;">TEST</a>
<menu id="cm" type="context">
<menuitem label="テスト" onclick="alert('テスト!');"></menuitem>
</menu>
実装しているブラウザとそうでないブラウザを判別したかったのです
694 :
646 :2011/11/11(金) 02:13:27.08 ID:???
>>693 'contextMenu' in HTMLElement.prototype
>>695 ありがとうございます 一度試しましたが、Mを大文字にするのを忘れてました・・・w
inの誤用極まれり
御用だ!
'contextMenu' in document.createElement('a')にしろってこと?
HTML要素だから documentElement じゃない?
702 :
Name_Not_Found :2011/11/11(金) 15:22:54.85 ID:yM56q0nk
replaceだとすべてに適用する場合はgフラグが必要なので正規表現にしないといけない splitとjoinだと正規表現を書かずに文字列でできる っていう好みの問題じゃないの? firefoxのreplaceには第三引数があるけどそうじゃない場合はフラグをつけるためだけに正規表現にするのもなあ・・・とか そういうアレだと思う
<script type="text/javascript"> function a() { } function b() { } function c() { } </script> <button onclick="a()"> <img src="" onmouseover="b()" onmouseout="c()"> とかなんかもう見るからにコードが古臭くていやなんですけど 最近っぽいコード書くにはどこで勉強すればいいですか?
>>704 addEventListener, attachEvent でぐぐる
706 :
Name_Not_Found :2011/11/11(金) 16:15:52.25 ID:QFf3gSlc
>>704 別に新しい古いの問題じゃないと思うけどな
化石記法
<input type=file>でローカルにあるオーディオファイルを読み込みAudioで再生し 以降はlocalStorageにローカルファイルのパスを保存し自動的に読み込ませるようにしたいです Firefox限定でFile APIを使って再生させる所までは進んだのですが セキュリティの問題でローカルファイルのフルパスが得られずlocalStorageに保存ができません 実現不可能ということでしょうか
Webサーバインストールすりゃいいんじゃね?
>>708 不可能だと思う。
<input type=file>で選択したファイルのフルパスを得る手段がない。
選択したファイルの内容を localStorage や filesystem API で保存しちゃえば?
返信ありがとうございます
>>709 すいません、色々制限があり不可能です
>>710 やはりファイルごと保存してしまうしかないようですね
記憶容量の上限が設定されているとややこしくなりそうなので気が進みませんが・・・
HTAにすりゃ取れるけど?
>>708 ローカルパスを保存したところでローカルのHTML以外から再生できないだろ
ページの読み込みが完了したあとに関数を実行するのに、 window.onload=aa;と<body onload="aa()">では、 <body onload="aa()">のようなページ要素に直接埋め込む方法が 勧められない理由が、「あとからイベント処理ルーチンを見つけて 変更するのが難しくなるから」と「イベントハイドラをあとから 変更する必要が生じた時にそれらを見つけだすことが難しくなる」 とJavascriptクックブックに載っていたのですが、全然文の意味が 分かりません。<body onload="aa()">ではどのような不都合な事が 具体的に起きるのですか?
1つのJavaScriptファイルを書き換えるのにこれまで作ったHTMLファイルを全部書き換えるつもりかい?
http://wise9.jp/archives/1683 >可変長引数がないので仕方がありません。 配列を引数にしてしまうと、引数に配列を複数渡したい場合とあいまいになってしまいます。
argumentsオブジェクトを参照すれば可変長引数は実現できますし、
配列に配列を複数入れてもあいまいにならないと思うのですが
僕の認識が間違っているのでしょうか?
間違ってないお
> 次にUnity3Dの側ですが、こちらはいろいろと制限がありました。 > まず、Unity3Dでは、JavaScriptの可変長引数の関数が使えません。 > arguments を使った柔軟な処理ができないので、関数オーバーロードを使って、泥臭いやり方を使っています。
>>715 スクリプトファイルにwindow.onload=aaって書けるなら不都合ないと思うんですが
これもいけない理由はなんでしょうか?
>いけない理由 不都合が無いなら、別に無い。
その本だとどう書けって書いてあるん?
722 :
Name_Not_Found :2011/11/11(金) 23:20:41.67 ID:FzlG3wag
神様は何も禁止なんかしてないよ
724 :
Name_Not_Found :2011/11/11(金) 23:42:04.98 ID:m1qUCTX5
>>719 俺のサイトで俺だけが更新してるなら問題ないけど
そうでない場合、他のスクリプトで
window.onload=bb;
ってかかれたら、動かなくなっちゃう
という懸念
そんな情報いらん
unsafeWindow使わないで済むよう、一時期使ってた
>>728 window.onload=aa、このコードの意味を考えれば分かるよな?
まず、ブラウザの HTML パーサがスクリプトタグを見つけると、
指定されたスクリプトインタプリタが呼び出される (通常は
JavaScript)。次にスクリプトタグ内のコードが上から順に
コンパイルされて実行されていく訳だが、上記のコードが
実行された時点で、window.onload に割り当てられたメモリ
には、aa の値 (通常は関数オブジェクトの参照) が格納される。
そしてページの読み込みが終了した時点で、aa が参照する
関数が呼び出され、関数内のコンパイル済みのコードが実行
される。しかし、winodw.onload=bb の様に、winodw.onload
に割り当てられた値を上書きするコードが、window.onload=aa
の後に読み込まれ、コンパイルされた場合、コンパイルフェーズ
では、winodw.onload は呼び出されていない為、この時点で
aa が参照する関数内のコードは未実行の状態。つまり、aa は
一度も実行されることなく、window.onload が呼び出される
時には bb に上書きされてしまっている為、結果として「動かない」
ということになる。
分かったかな?
これほど内容のない長文を書く才能は天性のものか
731 :
Name_Not_Found :2011/11/12(土) 11:50:04.29 ID:wqrJWW6f
js内にHTMLタグを表記することとかって可能ですか? noscriptの時は表示したくないタグがあるのですが
>>731 document.write 又は appendChild でぐぐれ。
>>729 それって
window.onload=aa
window.onload=bb
という風に上書きするのは
window.addEventListener("load",aa,false);
window.addEventListener("load",bb,false);
と同じじゃないのですか?
735 :
714 :2011/11/12(土) 13:40:39.25 ID:???
714≠719、714≠728、714≠733だから。 見かけ上同じように動くと覚えておきます。 とりあえず、jQueryの$(function(){処理});を使用することにします。
何様ですか
マルチポストするカスはやっぱりカスなのがまた証明されたか
>>735 あなたに回答してないから。
同じように動くと思ってるならそれでいいんじゃないですか。
jQueryの $(function(){ 〜〜〜〜 }) とwindow.onloadの違いってありますか?
何で動かなくなるのですか?
プロパティ上書きしてるってこと理解してる?
>>739 また別人と言い張るんだろうけど、もういい加減にして
744 :
714 :2011/11/12(土) 18:56:55.85 ID:???
>>739 見かけ上同じように動きます。
とりあえず、jQueryの$(function(){処理});を使用してください。
そういえば、window.onload.toString() の文字列を加工して戻すことで、 上書きしないようにしているコードを見たことあるな。
>>745 文字列ベースでそれをやるのか…
明らかに効率悪いと思うが、new Function でも使っているのだろうか
>>746 そうそう。たしか new Functionつかってた。
functionって文字列を検索してとか…
>>747 ES準拠ではあるが、今の実装のネイティブ関数でそれをやったら破綻するな
素直に function を作り直すべきだろうなー
DOMContentLoadedイベント後にloadイベントが呼ばれる jqueryは基本的にDOMContentLoadedイベントをreadyみたいな形としてとってる(確か なのでload[onload]とjqueryのjQuery,readyやら$(function(){})とは等価では無い
特定の単語の上にマウスポインタを合わせるとその単語の意味を表示する ポップアップウィンドウ(っていうのでしょうか?)を表示したいのですが、 JavaScriptで可能でしょうか。 できれば、辞書ファイルを別個にして、そこから参照して表示したいのですが。
ユーザースクリプトとかだと、文字列に直して関数書き直さないといけないことあるな
ページロード時に、 ・XMLHttpRequestで辞書ファイル読み込み ・正規表現で単語識別 ・マッチした文字列を加工(CSSクラス付加など)
>>750 ポップアップウィンドウとなる要素をpositionで表示させればおk
754 :
Name_Not_Found :2011/11/12(土) 21:52:42.58 ID:QTeM8f6T
ファイルの中身が 0 や "" や false や null だけでもJSONですか?
それは、JSON でまくそす。
JSONのルートは配列かオブジェクトじゃないとダメ
JSON-text = object / array でもparseするとエラーにならずに値がそのまんまかえってきますね
マジレスするとRFCとES5で文法が違う
ブラウザによって微妙に違ってくるがonloadまでにはおおまかに3つの状態がある 1.HTML解析中の状態 2.HTML解析が終了し、DOMの構築が完了した状態 3.表示完了の状態 JavaScriptコードはグローバルスコープに記述すると1.の状態のときに実行される もちろんこれではHTMLに手をつけようとするとエラーになってしまうので HTMLを触りたい場合はloadイベントをフックして記述するわけなんだけど onloadやloadイベントは3.の状態になったときに呼ばれるけれど表示が終了したときなので少し遅い ブラウザによっては2.の状態のイベントをフックできるので3.よりは早くHTMLに手をつけられる 可能なものは2.で、どうしても無理な場合は3.の状態で呼ばれるようにブラウザの差異を吸収したのがjQuery.ready(function) $(function)はその短縮形。
亀でアンカも付けずにw もはやこのスレの名物w
せめてreadyStateと関連づけて説明しろよ
なぜ
>>759 は714にだけ懇切丁寧に説明するのか?
文句があるなら、お前が他を説明すれば無問題
文句はない
765 :
Name_Not_Found :2011/11/13(日) 05:33:11.35 ID:SrACRRa8
スマートフォンでカルーセル(スライダーパネル)を設置したいのですが、 自動で動くもので可変にできるサンプルはどこかにありませんでしょうか。
application/jsonのファイル読み込んだ時に、中身がtrueとかだけのときは、エラーコンソールにエラーログ残ってたりした
J S O N の意味を考えれば nullは100%JSONだと言える 0や""何かもひねくれて考えれば JSにおいてのOのカケラと見れるので超広義のJSON というかevalでパースできる文字列なら一応皆JSON
jsonじゃなくてyからはじまる形式のやつ名前教えてください
yamlか
二次元配列を初期化するときに var a = [[]];って書き方ができないのは何故ですか?
rubyやphpみたいなexitはjavascriptでやる方法をご教示お願いします
できなくなくない
>>772 うそつけや!こっちゃあ試してから質問してるんだぞ!
できねえからできねえっていってんだぼけ!
>>771 多分関数にしちゃう事じゃないかなぁ
(function () {
return;
})();
こんな感じでretrunで抜けれるし
>>774 chromeなりfirebugなりoperaなりで試してみろ
console.dir([[]])
アレか なんでvar a = [[]];って宣言したのに a[10][10]="aho" がエラーなの?って言いたいんじゃね
それで書いても登録できなきゃ意味ねえだろ! javascript:var a = [[]];a[0][0] = 1;a[0][1] = 2;a[1][0] = 3;a[1][1] = 4;alert(a[1][0]);
a.prototype.test = function(){ } a.prototype.test2 = 100; prototypeは使うなって聞いたのでprototypeを使わないオブジェクト指向な書き方がしたいのですが どのように書き直せますか?
誰に聞いたのですか
a = function(){}; a = { test: function(){ }, test2: 100 }
>>778 var a = [[], []]; a[0][0] = 1; a[0][1] = 2; a[1][0] = 3; a[1][1] = 4; alert(a[1][0]);
prototype.js使うな 組み込みオブジェクトのprototypeいじるな どっちかな
>このスレで聞きました 嘘だから、信じないように
>>782 こういう場合は動かない
var a = [[],[]];
for (var i=0; i<; i++)
for (var n=0; n<; n++)
a[i][n] = i + "-" + n;
alert(a[0][0]);
>>785 JavaScriptをJavaと言ってるようなことかもしれんぞ
ミス var a = [[],[]]; for (var i=0; i<10; i++) for (var n=0; n<10; n++) a[i][n] = i + "-" + n; alert(a[0][0]);
>>788 var a = [];
for (var i=0; i<10; i++) {
a.push([]);
for (var n=0; n<10; n++) {
a[i].push(i + "-" + n);
}
}
alert(a[0][0]);
ほら!var a=[[],[]];とかvar a=[[]];で初期化ができないじゃねえか!
宣言してない領域に代入できないのは当たり前。
ES2.0にもなって初期化もまともにできないとかksだな
んもー誰がだれだかわかんねー
<html> <head> <script> var test = 1234; </script> </head> <body> </body> </html> ChromeのFireBugで変数testの値を見る方法を教えてください F12を押して画面下にFireBugが表示されるところまでいけました
var j = {"a":"100","c":"200"}; というJSONが入った変数jがあり、このJSONにどのようなデータが入っているのか分りません forで回して取得する方法はございませんか?
>>770 > 二次元配列を初期化
そもそも、JavaScriptの規格には二次元配列なんて概念は無い。
それは配列の中に配列を1つ作ってるだけ。
二次元配列っぽく「見せかける」プログラムを書け。
ES2.0か ついにこのスレは時間をさかのぼりやがった
スレはさかのぼってねえよ
節子それJSONじゃなくてオブジェクト
var j = {"a":"100","c":"200"}; for (var i in j) { alert(i); } ありがとうございます これでaとcが取れましたが100と200の部分が取れません
804 :
801 :2011/11/13(日) 14:44:35.96 ID:???
>>803 j[i] で
>(4) 常に自発的に調べる心構えを持ってください。
ここでは、あまりJavaScriptの基礎の質問はしないように。
別に基礎的な質問してもいいと思うがなー 大体どこまでが基礎なのかわからんし
>>796 Consoleってタブを開いて、入力欄に console.log(test);
JSONデータはj.aという風にしてオブジェクトからデータを取れるはずなのに 何故for in ではj[a]で取れるようになるのですか?
JSON関係ねぇ
もうちょっと勉強してから質問しろよ
13日の日曜日
javascriptから画像を生成する方法というものはありますか? canvasを使う以外で
>>811 画像の定義にも依る。
tableのセルに色をつけてドットマトリクスの絵を描くとかね。
基礎的な質問はしてもいいが、今までに試したコードをわかるように書いてから質問してくれ。 ただし、「あれもわかりません、これもわかりません。適当にコード書きました。」ってのは勘弁な。 自分で調べて「ここまでは理解したけど、ここから先は理解できません。」なら基礎的な質問でも力を貸そうという気になる。 単発質問だけする人は大抵の場合、すぐ他人に頼る人だからまともに回答しようとは思えないな。
Javascriptで画像をFlash見たいにグルグル回転できますか? if(document.getElementByIe("hoe"))のtrueになるfalseになる基準がわかりません とかなら全然オッケーだと思うけど マイナーなライブラリの質問とかは無理だと思う、労力半端じゃない
>>814 そういうのでも、どこまで調べてどこまで理解したのかは書いてくれ。
自治厨きも
回答しても理解できるとは思えない質問にはURLだけ貼ることにしてる
JavaScriptを自ら学ぶ人のための質問スレッドだから質問を選ぶ権利ぐらいはあるだろうな
答えたくなければスルーしろよ
イレギュラーでアブノーマルな記述方法好きな奴多いな
んでも「if(hoge=1)でhogeが1なのにtrueになりません」 っていう質問者には萌える
jqueryのajaxの部分だけのライブラリがほしいのですがご存知の方教えてください
>>402 バックグラウンドで実行させている間もsetIntervalで動いていると思ったのですがそうではないということですか?
825 :
581 :2011/11/13(日) 18:50:57.17 ID:???
>>825 クラス思考に慣れた奴が勘違いしやすい罠
プロトタイプとカプセル化は別にやれ、で済む話
827 :
581 :2011/11/13(日) 19:03:15.26 ID:???
こういう書き方は問題がないと思って使っても大丈夫ですか? function a(); a.prototype.t(){} a.prototype.e(){} a.prototype.b(){} a.prototype.c(){} a.prototype.w=1; a.prototype.p=2; a.prototype.l=3; a.prototype.m=4; var a = new a(); alert(a.m); alert(a.t);
828 :
581 :2011/11/13(日) 19:08:23.10 ID:???
追記 訂正します a.prototype.t(){} a.prototype.e(){} a.prototype.b(){} a.prototype.c(){} は a.prototype.t()=function(i){return i;} a.prototype.e()=function(i){return i;} a.prototype.b()=function(i){return i;} a.prototype.c()=function(){return 1;} に変更します
>>822 それでtrueにならないなら俺も何で?って思ってしまうわ
>>828 a.prototype.t=function(i){return i;}
a.prototype.e=function(i){return i;}
a.prototype.b=function(i){return i;}
a.prototype.c=function(){return 1;}
こうだけどな
まぁこういう書き方ならありだよ
prototype上にメソッドを書くことは
メモリ効率的にも良かったはず
JavaScriptて描画制御を組み込んだメインループを設定する時に fution Hoge(){ while(i == 1){ Timer(1000); } } みたいに簡単な方法は無いの? 下の方法で制御しているけど、こんなんでいいのか?と funtion Hoge(){ if(i != 1){ setTimeout("Hoge",1000) } }
>>827 ES5のObject.createで覚えろ
var p = { w:1, p:2, l:3, n:4 };
var a = Object.create(p);
これをnewで書き換えるから面倒くさくなる
var p = { w:1, p:2, l:3, n:4 };
function P() {}
P.prototype = p;
var a = new P;
prototypeは最適化困難とかそういうレベルでもなかろ
どこをどう読んでそういう結論が出たんだ
初心者です。 プロトタイプを使ったプログラムを作りたいのですが、 どんなものができますか? プロトタイプはJavaやC++のクラスのようなものだそうですが。
>>835 もしやるなら、jqueryの方を薦めるが。。。
3th・・・
さんす
prototypeと
>>781 の違いは
prototypeの方がメモリ少なくて済む違いよね?
参照先が同一のものという点も重要
あれ、違うのか忘れてくれ
生成するオブジェクトが1つしか無いと予め分かっている場合、 prototype宣言しないでいきなり実体を作った方が効率が良いように思うのですが この考え方で合ってますか?
うん
この関数に名前付けてもらえませんか function getElementsByClassName(doc, className, tagName) { return Array.filter(doc.getElementsByClassName(className), function(elem) { return elem.nodeName.toLowerCase() == tagName; }); }
マジレス get_elements_by_class_and_tag_name
>>842 すいませんいきなり実体を作るっていうのはどうかくのですか?
847 :
Name_Not_Found :2011/11/14(月) 11:39:04.08 ID:RP9cvPu9
はい というか試せば解るだろそれぐらい
XMLHttpRequestだけでいいよ
ただjQueryのほうではMsxml2が使われてないので疑問に思っているのです
以下のような感じでテキストをハイライトしているのですが ブラウザの改行位置付近をハイライトすると改行位置が変化してしまいます。 これを防ぐ方法はないでしょうか。 またテキストをハイライトする場合spanTagの挿入以外には、どのような方法があるのでしょうか var span = document.createElement("span"); span.style.backgroundColor="#ffff00"; span.innerHTML = range.toString(); range.deleteContents(); range.insertNode(span);
>>851 今はたぶんどっち指定しても中身一緒だと思う
>>848 >>851 Ajaxを勉強してるオレが答えられる範囲で答えよう。
ieの場合はJavascriptで通信する場合は、
ActiveXObject("Microsoft.XMLHTTP");はかなり古いので
もう使用しないことが推奨されるie4以前からある骨董品。
君が貼ったurlでtry catch文が使われるが、try catch文は
ie5からしか対応していないので多分ie4だとこのコードじゃ動かないな。
今時ie4に配慮してれる人はいない。
Msxml2.XMLHTTPには実はバージョンがあって、Msxml2.XMLHTTP.6.0と
Msxml2.XMLHTTP.3.0がある。バージョンを書かないとMsxml2.XMLHTTP.3.0
と認識される。Msxml2.XMLHTTP.3.0が現在広範に使用されるヤツで
Msxml2.XMLHTTP.6.0が最新版。
だからXMLHttpRequestの生成は
try{//ie用
try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
catch(e) {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");}
処理
}catch(e){//firefox、その他ブラウザ用
xmlhttp = new XMLHttpRequest();
処理}
これでOK。Msxml2.XMLHTTP.3.0はie6以上で確実に動くし、IE5.xは
条件満たしたらだいたい動くらしいが、考慮するのはie6までで十分。
ありがとうございます XMLHTTPRequestを極める===JavaScriptのゴールだと思っているので頑張ります
どちらかと言えばスタートラインだろ XMLHTTPRequestでJSが極まるならWebSocketやらどうなんだよ
>>855 jquery.ajaxとかじゃだめなの?よくわからないけど、不便はないけど。。
>>855 大学の図書室でJavascriptとjQueryとAjaxの本を
読みまくって、家に帰ってプログラムを作って、
大学の勉強やる日々を送ってます。
一つのプログラム言語を本書けるくらい勉強したら、
その他プログラム言語もするに習得できるだろうと考えてます。
大学ではC言語しか習いませんが。今んとこやってるのが
php、C++、C、Javascriptです。お互いがんばりましょう。
>>858 どっちかっていったら、JSってUI&デザイン方面の話だから、
プログラムどうこうって意識じゃなく、こんな動きを実現したいからどうしようかなぁって
軽いスタンスで取り組んだほうがいいよ
jqueryは極めてしまい面白くないのですよ
IE8未満は切るべき
中途半端な奴ほどIEしねとか息巻いてる こうはならないように
jqueryをメソッドごとに切り離して使えるものだとよかったんですよ
大企業は未だにIE6が標準ブラウザだったりするからな。
>>859 >>861 >どっちかっていったら、JSってUI&デザイン方面の話だから
確かにその使い方は多いですが、ほとんどがフラッシュで実現でき、
htmlはフラッシュの箱のようになってきましたが、Ajaxは
フラッシュではできません。Ajaxという画面遷移しない
グーグルマップという衝撃的な技術ができましたが、
Ajaxの画面遷移しないのを実現するためのjavascriptであり、
それを簡易にするためのjQueryなど各種プラグインと考えてます。
この辺にJavascriptの魅力を感じます。
MMORPGすら実現できるFlashでAjaxできないわけないだろ常考。 ニュース速報のティッカーなんかが良い例。
フラッシュなら現状ajax以上のことが出来るだろ
Websocketが普及すればね あとIE6-9氏ね
>>865 基幹システムがIE6縛りとか泣けますよ、ホントに。
イントラ向けのWebツール作ってもIE6で動かなきゃ文句言われるし…
IE6ってそういうレガシーシステム用の専ブラでしょ
レガシーシステム云々じゃなく、 単に社員のPCで使用が許されるWebブラウザがIE6のみってだけ。
うちの会社もie6です。なんかie6以外じゃ見れないサイトがあるとかで、 ie6の仕様の透過pngが無効って技術低すぎだろって毎回思ってしまいます。
javascript依存のアプリ構築があかん
うちの会社はIE7だな、IEが7であればよくてFirefoxとか申請したら使える
別に会社から見てもらうようなサイト作らないのでIE6は切り捨ててます 会社から広告踏んで個人情報をフォームから送って買い物するような使い方なんて普通しないだろうし
>>879 こんどie6じゃないとダメな理由を聞いときます。
>>881 画面サイズは何×何で見てもらえるように作ってますか?
普及してる画面サイズってイマイチ情報が出てない気がします。
884 :
Name_Not_Found :2011/11/15(火) 00:06:55.58 ID:pE4Q/Lmn
こんな大会社でも?って思うこともしばしばだなあ、IE6 代理店とかの間に挟まってる人が中途半端にhtml5とか聞きかじっちゃって おいらがIEで無理だよって言っても聞く耳持たないどころか 無知なクライアントを騙してIE9以上なんて無茶な仕様押し通してきて 仮アップしたら、代理店が怒鳴り込んできて、何かと思ったら クラはXP+IE6で見てて、プロジェクトこじれてて クラと代理店の会議に何故かおいらも呼び出されて この雑誌にhtml5とIE6は共存出来ると書いてある 出来てないお前の技術力が足りないのではないか?と糾弾してくるから コレコレこういう条件が揃えばそうだけど今回は違うよね、って説明したら 代理店の人より、メーカーであるクラの方が理解が早くて 弊社の環境が古かったんですねなんて謝られてはこっちも申し訳なくなり では早速仕様を直して作り直しましょうって話になって 逃げられないように、その場を仕切って予算とスケジュールをきりだすおいらを 鬼の形相で睨む代理店 なんてこともしばしば
885 :
Name_Not_Found :2011/11/15(火) 00:09:48.29 ID:pE4Q/Lmn
>>883 サイトごとに違うよ
リニューアルするときは、数ヶ月前からアクセス解析入れて
そのサイトのメインユーザのモニタのサイズも調べたりするよ
スレ違いだよ
>>883 対象者はwidth1280を基準にしてる
やっぱ15インチで使ってる人多いからそれより大きいサイズだと横スクロール出るから。
とはいえ激安ノートだと15インち以下も多いので1000px
あとはmedia queryを使って振り分ける事もある
width 1024の古いノートPCも使われてるから最低それで見れないと話にならないな。 一般ユーザ向けのサイトを作る人用のガイドラインではもう少し低解像度指定になってたが
サイドバーは考慮しなくていいの
>>884 つーか、大会社ほど何か問題が起きた時の損失を嫌ってVer切替えへの腰は重い。
HTML5モドキにして、IE6互換を取るのは必須だよ
>>888 言うまでも無くサイドバーやツールバー等の分は余裕を持たせます。
>>884 HTML5ってまだ仕様とかちゃんと決まってない、もしかしたらWeb標準に
なるかもしれないって次世代の規格じゃないか。
audioタグでmp3をプラグインなしで、ブラウザで標準サポートする
とかスゴイと思うが、ie6ってかie8にも対応してないし、
全然一般的でないよな。「html5とIE6は共存出来る」って何だそれ?
html5って次世代規格はこんな具合かなって感じで一部のwebサイト
で実験的なことしてるだけと思ってた。html5で依頼とかされるんだな。
>>884 大企業ほど基幹系に足を引っ張られる。
改修にかかるコストは基幹系>>>Web系
もしかしたらってことは無いだろう classListやらもHTML5だし
10年経ってWindows7が消える頃までにはHTML5がWeb標準になるかと。既にHTML6を準備中らしいですが... HTML6ではHTML5で新設されたタグの幾つかをまた廃止したりするんでしょうね。
お取り込み中失礼しますが、jqueryを取ってきて<head>で次の宣言をしています。 <script type="text/javascript" src="jquery.js"></script> これを<body>に置いた方が良いと聞いたのですが、 実は<html>内のどこでも好きなところに置けちゃうのでしょうか。
>>895 htmlでは<script></script>タブは
<head></head>か<body><body>の間置けるって決まりがある。
webブラウザってのは<body>タグを読み込んで初めて
レンダリングを開始るするから、
<body>文章<script></script></body>
<body>の間の最後に置けって「ハイパフォーマンスJavascript」に
書いてあった。
<head></head>の間に<script>タブが入ってると<script>タブを読み込む
間はページが描写されないから勧められないそうだ。
しかし、<head></head>に<script>タブがあるのヤツばっか見るな。
<body>の最後に書いてあるのは見たことない。
といわけで、<head>タグの間か<body>タグの間に置けるぜ。
ちなみに規約では<script>タブは何個でも置ける。
headの間に置いてもdefer設定すればいいだけ
>>896 早々に詳しいレスが頂けるとは、どうもです。
<body>部に置くというのは読み込み速度なのかとは思ってましたが、
最後っていう手がある??のですね。参考になりました。
ちょっと試してみます。
今時deferなんか使うか
>>897 defer調べてみました。こういうものもあるんですね。
>>899 複数の<script>タブがある場合とか、1つにまとめた場合とかで
なんか読み込みの挙動が違ってややこしいみたいだった。
詳しくは「ハイパフォーマンスJavascript」を読んでくれ。
scriptタグの位置による動作の違いの例として、
<script type="text/javascript">
$(function() {
$('#list .jq').css('border', 'solid 2px Lime');
});
</script>
このscriptタグが<head>の中にあると$(function() {};
がないと動かない(タグが読み込まれてないからエラー)が、
<body>タグの一番下にあると$(function() {};がなくても動く(タグ
が読み込まれた後だから)。こんな具合で違いがでる。
DOM構築途中でDOMに触るようなのはなんか抵抗があるな。 実装依存というか、たまたまうまく行っているだけのきがして。
ちょっと何言ってるのか
onloadイベントやユーザーのアクション後に作動させるのは</body>手前に書くのがいいってことか 勉強になるなこのスレ
>>906 この場合、onloadは適切じゃないだろ
どうでもいいけど「<script>タブ」や「<body>タグ」が気になるわー
>>906 >>901 のサンプルはオレが考えたのでなく、技術評論社の本に
載ってたサンプルだから、文句は技術評論社に言ってくれ。
jqueryならreadyだろ? jqueryはそれさえしなくてもいいと思うが
911 :
902 :2011/11/15(火) 10:22:11.89 ID:???
>>904 あ、いや
>>901 で </body>の直前で
<script type="text/javascript">
$('#list .jq').css('border', 'solid 2px Lime');
</script>
を入れるってことは、DOM構築が終わったというイベントの前にいじりだしてるから。
大丈夫なのかなと。
まちがえたおれは902じゃない903だ
jQueryを読み込むのdeferつけるとかジョークだよね… いや、一応つっこんでおくと↓がエラーになるので使い物にならない <script defer src="jquery.js"></script> <script>jQuery(function(){});</script> そもそもdeferの対応ブラウザ微妙だし
jQueryでリンクをクリックした時に#から右の文字(名前わからなけど特別なやつ)だけを切り替えて その文字が登録されているタグに飛ばないようにする方法ありませんか?
クマ?
>>911 開始タグの時点で要素が構築されてるからいいんだよ
rubyにはrandで適当な数字を簡単に出力できたけどjavascriptには簡単に乱数取り出すものはないの?
919 :
Name_Not_Found :2011/11/15(火) 13:39:01.32 ID:XvExHHbG
>>914 このスレでその質問答えた気がする
会ってるかどうか知らんが
ハッシュ、でスレ内検索してけれ
920 :
Name_Not_Found :2011/11/15(火) 13:39:56.40 ID:XvExHHbG
>>917 それぐらいググれようんこ
Math.random()
できればこのスレで出た質問と回答を一問一答でまとめサイトにあげてほしい
許可する
それでも結局、同じ質問はくるだろうな
>>920 それしか無いんか・・・
rubyのよりややこしいのぅ
javascriptができる人、wikiかなんかでまとめサイトお願い 次のテンプレに入れて皆で編集できるようにするのはどうだろうか
>>924 Rubyだって似た様な物だし、どの言語でも似たり寄ったりでしょうよ。
jQueryの本家の英語版のwebサイトを翻訳したようなサイトないの? 翻訳サイトはイマイチ分からんし。
何個か前のスレでずいぶん長い時間かけて議論して作った
>>3 のテンプレはもう管理されてないのか?w
>>925 自分でまとめ作りながら勉強したら?
他の人に頼んでる時点でだれもやらない
>>925 まとめって難しいだろうな、jQueryとかライブラリが山のように出てるし、
みんな知りたいことがバラバラでまとめようないくらい、Javascriptの
質問って多岐に渡ってる、ヤフー知恵袋のJavascriptの質問みても
本当にいろいろある。
言いだしっぺにどうぞどうぞって言ってるだけでしょ
933 :
929 :2011/11/15(火) 14:28:44.63 ID:???
俺、まとめなんか別にいらないし ググれば大体出てくるから、必要性が分からない
回答者が同じ質問に何度も答えなくても済むようにって目的だろ?
答えたくない人は無理してまで答えなくてもいんじゃね 一人で切り盛りしているわけでもなし 心が荒んでいるときはむしろ答えないほうがいいゆっくり養生してくれ
答えるつもりがないなら黙っていればいいのに自分で調べろとかググレというのがたちが悪い
誰でも編集できるwikiでも作って質問者が回答得るたびに書き足せ
同じ質問があってもいいと思うんだけどな。 もう一度答えたくなければ、スルーすればいいだけのことだし。 気のいいやつは以前の回答をさしてくれるかもしれんし。 以前の質問を見てない回答者が答えるかもしれんし。
何度も書くコードはライブラリ化しておいたら便利だよねっていう発想でしょ そのコストをわざわざ引き受けてくれる人なんているのかって話で
以前出た質問ならwikiのここ見れで一発KOで済むよな
なんかすごい勢いで900突破してる。テンプレ論議無理だね、同一で いいよね。新スレは975超えたら。
942 :
Name_Not_Found :2011/11/15(火) 15:49:15.19 ID:XvExHHbG
>>928 いや、そこそこまとまったっつーことじゃないかな
つかそろそろ終盤なので、テンプレ議論あればどぞー
943 :
Name_Not_Found :2011/11/15(火) 15:49:34.35 ID:XvExHHbG
ありゃ
じゃあさ、今「1発で」合意できるテンプレ改訂案があればそれで。 提案しようとする人いたらどうぞ。いなければ現行で。
合意についての定義からしないと・・・ 944一人だけに合意なのか多数決で合意なのか不明
(975までに)反対表明者が1人でも出れば合意でない。それしかないでしょ。
そんな一人の反対者の1票ってデカイのか
>>947 いや、だって、もう949だから、反対があったら今回は保留して
次スレでちゃんと議論すべきでしょ。それだけのこと。
試しに@wikiでも作ってみようか? で、質問&回答のテンプレートあれば、編集しやすいでしょ wiki内検索とか探し方は(゚听)シラネw
イラネ
新スレは975超えたら。
プログラミングってのは基本ggrksだからな。 以前それplaに挑戦したときも情報の分散っぷりに驚いた覚えが。 wikiとか作っても誰も管理せんと思うよ。何故ならばみんなそうやって覚えてきてるから。
>>950 もし作るとしても
質問と回答のスレとレス番号指定だけで
表示できるようにしてくれ
XMLHttpRequestってPHP/CGI使えないようなフリーのレンタルサーバーでも使う意味がありますか? そもそもデータ欲しければそのページ開いたらいいじゃんって思うので利点がいまいちわかりません
>>950 作ってみて、今回はテンプレには加えず、次スレの900以降の段階で様子見てテンプレ入れるか議論するのがいいかもね
958 :
Name_Not_Found :2011/11/15(火) 18:29:39.07 ID:XvExHHbG
作りたい奴が勝手に作って管理すればええやろ わしは関わらない所存
検索の手間考えると 過去スレ全集と大差ないと思うわ
>>958 お前は朝鮮人か。
読点の位置が間違ってるぞ。
岡崎洋三 『日本語とテンの打ち方』 を読め。
でっていう
File APIが動作しないんだが・・・ var FileData = document.getElementByID("file").files[0] FileData.name FileData.size この動作までは問題なし だけど var fr = new FileReader(); reader.readAsText(FileData,"sjis"); reader.onload = 〜 が上手く動作しない readAsTextまでは動いている感じなんだが onloadが上手く処理されてない希ガス 読み込むファイルは単純なテキストファイルに半角英語を数行書き込んだだけ
967 :
Name_Not_Found :2011/11/15(火) 20:48:12.49 ID:XvExHHbG
readerって未定義じゃね?
掲載間違えました readerはfrで fr.readAs〜 fr.onload
ここで聞くべきなのかわからないんですが、質問させてください。 ツイッターの「ツイートする」ボタンってあると思いますが、 あれにカウントついてますよね? あれってどのようにカウントしてると思いますか? ツイートした時にツイッター側でカウントを保存してるのか、 呟かれるURLを後から検索かけて、そのヒットした数を表示してるのかどちらだと思いますか? 自分の色々なページにボタンを設置しようと、パラメータのdata-urlの部分を変えて設置してみたんですが、 どうもカウントがおかしくなります。 まだそのページでは一回も呟いてないのにカウントが勝手に増えたりしてます。 同じドメインのほかのページでは呟やきましたが、ドメイン単位でのカウントになってるんでしょうか? ボタンには、data-urlやdata-titleなどのパラメータしかないので、 ページを表示した際に実際のカウント数とボタン横の表示カウント数を紐付けるのは それらのパラメータのどれかがカウント数を数えるために使われてると思います。 どれだと思いますか? 分かる方いらっしゃればご回答よろしくお願い致します。
紐付けるのは ↓ 紐付けるために
>>968 onload 設定してから read
あとグリモンなら addEventListener
972 :
Name_Not_Found :2011/11/15(火) 23:23:38.54 ID:XvExHHbG
>>969 自分もカウントが云々言われて調べたことあるけど
いまいちよくわからんかった
とりあえず、貼った時点でtwitterがページ見に来てることはわかった
一緒にamazonも見に来てる
>>972 そうですか。。
やっぱりよくわからないですよね。
カウント数消してボタンだけ表示することにします。。。
<input type="file"> new FileReader() でファイルを選択して、あれこれ操作は可能になったけど もっと単純に、ローカルの同一フォルダにあるテキストファイルを読み出す方法ってどうすればいいんでしょ? 例) CSVファイルを読み込んで、TABLEで表示する
java スレ いけ
powershell使いなさい
ローカル同士ならXMLHttpRequestでいいじゃん
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0"); もしくは xmlhttp = new XMLHttpRequest(); で代入された後の変数xmlhttpはIEでもそれ以外でも同じコードで書いて大丈夫ですか?
無いメソッドとあるメソッドあるから一から勉強してこいや
w3cに書いてあるsendとopenとcloseは?
記号はぐぐれないので困ってここで質問します $.utils = { で始まるコードがあるんですけど意味がわかりません これはjQueryでセレクタ省略されてるとかそういうのでしょうか?それともただの変数? 解説されてるサイトとかありますか?
本当に > $.utils = { 始まっているのなら変数「$」を定義している別のscriptが先にロードされているはずなのでその中を見ればわかる
jQueryのソースに window.jQuery = window.$ = jQuery; とあったので、$はwindow.$のことでありjQueryのことでいいですかね
キモは JavaScriptでは$は変数名として使える windowオブジェクトは省略できる ってことですかね、たぶん
javascriptの変数に使える文字列の定義ってどこでみれますか?
>>985 変数は予約語以外が使えるから、予約語で調べればいい。
>>983 「jQuery」の世界では$とjQueryは同じ意味。
$はjQueryのエイリアン(別名)って言い方をする。
windowオブジェクトはjQueryの世界でもwindowオブジェクト。
windowオブジェクトの下にdocumentオブジェクトがある。
よく使うalertは、省略された形で、window.alertが省略しない場合の形。
document.writeも省略された形で、window.document.writeが省略しない形。
window.onloadのような場合は省略できない。
windowオブジェクトに用意されたイベントハイドラがonloadだから
この場合はwindowを省略できない。
windowオブジェクトは省略できる場合が多いな。
>>988 変数名に使用できるのは、アルファベットと数字と_(アンダースコア)
ただし、予約後除く。
@%&-は使用できない、記号は_(アンダースコア)だけ。
ちなみに、JSのおかしいとこは、undefind、NaN、Infinityが予約語でなく
変数として利用できる。
ミスった、
>>989 は
undefindでなくundefinedだった。
おいおい。別名がエイリアンってとこは誰も突っ込まないの?
>>992 突っ込むのはそれだけでいいのか?まあネタレスだろう
>>989 その認識は大いに間違ってる。
変数名に日本語とか使っても動くし。
998 :
Name_Not_Found :2011/11/16(水) 14:14:52.79 ID:ho1zNzLb
変数はスペースと!"#%&'()*+,-./:;<=>?@[\]^{|}~以外で始まりが半角数字でないものなら日本語でも何でもおK ただしIEの古いのは特定のアラビア文字とか使うと変になるバグがあったかな window.onloadはonloadでおK、これで動かない実装はない
そうなってくると$記号だけ除外された経緯を知りたいな
1000
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。