+ JavaScript の質問用スレッド vol.102 +
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 中でやるとか。
>>995 まぁ簡単に説明すると
サーバに問い合わせてajaxで取ってくる新しいデータ(HTTPレスポンスボディ)がなくても
サーバからの返答には(HTTPレスポンスヘッダの)通信コストがかかってるってことよ
サーバによってどのくらい返すかはチマチマだけどだいたい1回200バイトぐらいかな
何も通信してないようで200バイト分は毎回通信コストがかかってる
200もなくね 100くらいでしょ
携帯端末ではajaxすんなって流れ、なんか逆じゃない? まあそれはどうでもいいんだけど、そんなことより 最近の2chブラウザはもう、前スレへのアンカは うまく処理してくれたりすんの? ニュー速+とかでも、パートスレの先頭付近で 900台へのアンカをよく見る スレタイの類似性とキャッシュで何とかなるのかしらん
遅いし通信量かかるからajax使えって話じゃないん
10 :
Name_Not_Found :2012/07/18(水) 17:42:58.99 ID:AWsxiSho
通信料かかるってたった200バイトですよね? そんなことまで気にしてサイト作りしなきゃならないんですか? そんなのサイト閲覧する側の責任でしょ サイトで何か問題が起こっても何も責任負いませんって書いとけばいいわ
通信料じゃなくて回線の細さじゃね問題は だからajaxで一部だけ読み込めっていう
たかが200バイトって… 世代の違いを感じるわ
いつ昔の話をしたんだよ 糞ジジイはすっこんどれ
ソフトバンクホワイトプランで¥15/6KBか。
15 :
Name_Not_Found :2012/07/19(木) 01:05:27.14 ID:CgyP5KSD
すいません。 イベントしかけるときって、何かの要素に対してしかけると思いますが、 スクロールイベントって何の要素に対してしかければいいんですか?
要素がスクロールできならその要素 全体ならwindowにでもしかけてろ
17 :
Name_Not_Found :2012/07/19(木) 01:55:43.17 ID:CgyP5KSD
アニキ了解しやした! あざっす!
18 :
Name_Not_Found :2012/07/19(木) 08:47:08.56 ID:SRDRvx4D
JavascriptでRSSの天気予報をテキスト表示出来るのかな?
19 :
Name_Not_Found :2012/07/19(木) 08:50:11.69 ID:CgyP5KSD
javascriptってPHPみたいに array[] = "ああ"; みたいに添字を指定しなくても要素を増やすことってできないんですか? あと「添字」って何て読むんですか?
>>19 array.push("あああ");
そえじ
プログラマーの一番旬なのって三十路だよね
24 :
Name_Not_Found :2012/07/19(木) 10:16:26.27 ID:CgyP5KSD
>>22 やっぱりpush使うしかないんですか
てんじかと思ったらそえじなんですね
ありがとうございました
Javscriptはじゃなくて、phpが特別って考えたほうが良い phpはデフォで便利な関数が多く、文字型とか指定しなくても計算できたり楽だが言い換えればいい加減なのが多い
26 :
Name_Not_Found :2012/07/19(木) 10:29:01.34 ID:CgyP5KSD
>>25 PHPって関数多すぎですよね
C言語で悩んでたことがPHPなら一発で出来る感じ
なんかワロタ なぜググらないw
28 :
Name_Not_Found :2012/07/19(木) 11:24:34.20 ID:CgyP5KSD
javascriptってleftとかtopにちゃんと”px"つけないと chromeやFXで正しく動作しないのがうざい 何でこんな仕様にしたし
29 :
Name_Not_Found :2012/07/19(木) 11:25:09.85 ID:CgyP5KSD
1時間時間返してほしいわ
>>28 単位のない数字はなにかわからん。pxじゃなくptだったらどうすんの?
31 :
Name_Not_Found :2012/07/19(木) 12:04:34.75 ID:CgyP5KSD
>>28 ガロンとリットルを間違えて飛行機が墜落しかけた事だってあったんだぞ。
単位は大事だ。
33 :
Name_Not_Found :2012/07/19(木) 12:13:22.91 ID:CgyP5KSD
スタイルシートの話はそこまでだ
此処からだ
37 :
テスト :2012/07/20(金) 16:16:32.94 ID:???
そろそろ頭を英訳したらどうだね?
お〜待ってて良かった! でもガラケー本とサイ本6版、どっち買うべきか迷うw お金ないからな〜
Win8メトロアプリについて質問したいのですが ここはWeb専用なのでしょうか? まずければ誘導お願いします
死ね
>>39 ここWeb製作板だからね。 プログラム板のJavaScriptスレに行って
聞いてみたらいいんじゃないだろうか。
プログラマ板でも困るだろ メトロアプリスレって無いの? win8スレ行けばよくね
>>43 男だけど、女だけ特別扱いする差別はできません。
仮定が偽なら仮定→結論は必ず正になるはず。 問題の仮定に間違いがあるのは☓。
真だた。
自分もその問題見たけど、楽勝で正解だったよ! ただ自分が考えてたのは、new Date とかのケースだったけど…
こんな問題しか作れんのなら無理して問題形式にしなくていいのに
> 関数の中に関数を持てます(クロージャ)。 これだけでクロージャというのもおかしいけどな。
>>55 理解できてないなら、どこが分からないかまとめてから
質問してくれないかな?
関数の中に関数を持てます。 これがクロージャです。 var a = "bar"; foo(); function foo() { var a = "foo"; var f = new Function("return a"); alert(f()); }
これなぞなぞ?
59 :
Name_Not_Found :2012/07/26(木) 01:33:06.69 ID:E2kJmoLL
phpでのbasenameの相当する関数をjavascriptで作った場合。 Function.prototype.method = function (name, func) { this.prototype[name] = func; return this;}; String.method('basename', function(){ return this.replace(/\\/g,'/').replace( /.*\//,'');}); としてメソッドとして使うか function basename(path) { return path.replace(/\\/g,'/').replace( /.*\//, '' );} 普通にbasename関数にするかで悩んでいます。 どっちがいいですかね?
全ての文字列に意味があるのでない限りは関数。 肝となる関数の中身も少し残念。
61 :
Name_Not_Found :2012/07/26(木) 02:09:11.79 ID:E2kJmoLL
>>60 path.replace(/\\/g,'/').replace( /.*\//, '' );
ってのは、海外サイトから拾って来ました。
まだ、正規表現は勉強中で自在に扱えないもので。
trimがメソッドとしてgood partsに実装方法が載ってたので、
basenameもメソッドの方がいいとかなって考えていたのですが、
関数の方がいいみたいですね。
>>57 クロージャは外部と内部の変数を保持して活用してる感をもっと出さないとダメだと思う
それはラムダ関数と言ったほうが正しいと思う
入り組んだ構造体→クロージャ 一時的まとめ関数→ラムダ
ここまでクロージャの完璧な説明なし
クロージャってのはクラスの代わりでしかない だろ?
私女だけど クロージャはオブジェクトとして扱えるメソッドのことだと思うの 合ってるよね?
まだ正解なし。
クロージャを解説するのは一苦労ジャ
クスッってしたのは俺だけじゃないはず
JavaScriptのクロージャってC言語のポインタ的な概念で一つの壁だと思っている ポインタと違って理解できなくて困ることは少ないけどね
その関数が定義されたスコープの変数にアクセス出来る関数、くらいの認識
クロージャって知らなかったら 1〜1000のidを振った物をオブジェクトと取得して、falseとtrueの2つの 状態を持たせる時とかやるときに、 trueを1000コとか設定する必要あるやん。 クロージャとnew使えばtrue一個で1000コのオブジェクトに対応可能だけど。
意味分かんねーよ。コードで示せよ馬鹿野郎
関数 <script> var a = 10; function func1() { var a = 20; func2(); } var func2 = function() { console.log(a); } func1(); </script> 結果: 10
クロージャ <script> var a = 10; function func1() { var a = 20; var func2 = function() { console.log(a); } func2(); } func1(); </script> 結果: 20 関数が定義されたスコープが重要だというわけか。
昔さ、ディスクロージャーっていうEROい映画あったよな!
>>52 楽勝で正解、ってひどいな。当たり前のように間違えたってことだぞw
W3Cといえば、Web標準化団体などと称されてご存じの方も多いのではないでしょうか。一方のWHATWGは、Apple・Mozilla・Operaに
関連するメンバーによって設立されたコミュニティです(誰でも参加可能)。
この双方がHTML5の仕様策定に取り組んできたのですが、この度分裂することになりました(「分裂」と表現すると怒られるのですが)。
そして、HTML5という規格も「HTML Living Standard版」と「Snapshot版」に分かれることになりました(後者は正式名称ではない)。
ソフトウェアでよくある「開発版」と「安定版」のようなものです。前者を推進するのはWHATWG、後者がW3Cになります。
http://ggsoku.com/2012/07/html5-living-and-snapshot/ 相変わらずHTML5の先行きは不安だなぁ、最初から解ってた事だけども
XMLHttpRequestまでか、9割のブラウザで安定して使えるの
最初っから分かれてたじゃん
俺も楽勝で正解だった
>>82 楽勝で正解、ってひどいな。当たり前のように間違えたってことだぞw
10進数と16進数の場合 1を2にしたり、8を9にするのはどんなに主義主張する奴が多くても大丈夫なんだが 9の次どうするかで10にするかAにするか、10の方が安定だ、Aのほうが便利だって分かれるのがHTML5 ちなみに10って唱えてるのはマイクロソフトだけ
アホはレスすんな
いやいや10進巣と16進数どころかさ IE→4ビット オペラ、サファリ、火狐→16ビット クローム→32ビット コレ位の違いはある
酔っ払い及び薬中は及びではありません
クロームとかFireFoxの拡張やWEBアプリケーションがもっと盛んになって欲しいな JavaScriptを趣味として特にたくさんの日本人に始めて欲しい ここでもそういう話題がほとんど話題にならないでjQueryとかばかりなのは進化を感じられなくて悲しいよね
くろーむとじゃいれgpxmのぁぃうlすいううあwrbあぷりおけ^syぽんgはもっろwさmかんんmんみおなってほしいイナ
じゃヴぁscりptをしぃもとしてtぽkぅにたくさんのの本陣にhじゃじめてほしい」
ここでも」そういうわふぁおがjptぽmjdふぉ」わふぁいじじゃらじゃいでjくえるtぽかはかっりなじょ9はしんかを」かんじwられなkぅて]かjな恣意よね
>>88 をタッチタイピングしたらこれ↑だよ (´;ω;`)
90 :
Name_Not_Found :2012/07/26(木) 21:54:20.07 ID:9lcWieXu
CodeZineの高階関数の記事について質問です。
ttp://codezine.jp/article/detail/221 function eachArray(arr, func) {
for (var i=0; i<arr.length; i++) {
func(arr[i]);
}
}
var array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
eachArray(array, alert);
引数funcに、alertを渡していると思うのですが、
このalertとは、関数オブジェクトを参照している変数
という意味でよいでしょうか。
クロージャを使えばstaticやprivateやpublicな変数や関数を作ることが出来る
くr0はを9」つヵえばsdtatticやprivateあ」」@iblocな」hじぇン数じゃうあ関数をrつぅることができあう
>>90 >引数funcに、alertを渡している
なんか勘違いしてない?
あと関数オブジェクトだから
え?意味不明
javascriptの解説サイト作ろうとしてるんだけど、 何を解説したら需要ある? 正規表現とクロージャあたり?
腐るほど存在してるから劣化版なら不要です
グローバル変数って100コとか1000コとかになるとどうなるん? メモリ食い過ぎになるん?動作が不安定なん? グローバル変数が多いと何がどう不具合なんですか?
>>90 eachArrayのループの中でのfuncの実行には
callを使いたい気ぶん
メモリの心配は不要だけど、名前が衝突するんよ。
100コ、1000コは問題ないが、10000コは大問題。
>>95 MDNとMSDNを見て、足りていないと思うところを保管する
ってのが、無駄がなくて良いと思うよ!
106 :
Name_Not_Found :2012/07/27(金) 21:41:14.87 ID:Ad0CgTTq
FFT結果を吐き出してくれるようなライブラリありますか?
JavaScriptで非表示だったエリアをぬるっと表示したいんですが 可能でしょうか? document.getElementById("tr2").style.display = "block"; みたいな処理をぬるっと表示したいです。 イメージとしてはheightが0から徐々に増えていく感じに したいのですがheight:0pxが効いてくれなくて
jQueryでググってみれば幸せになれるよ、animate、fadeIn、fadeOut、fadeTo、hide、show たぶんjQuery使ってるサイトみて「コレやりたいなー」と思ったんだと思う
>>108 ありがとう。そっかDIVならheightを変えれるかー
んにゃstyle:displayの問題だ
オープンソースアプリを作りたいと思ったときは どうやって始めたら協力者が付きやすいでしょうか? 具体的には既存の文字認識プラグインと組み合わせて ペンタブで数式が自在に入力できるものを作りたいです
Dateオブジェクト2つ引き算すると、期間がミリ秒で返るのが不思議に思います。 DateはNumberを継承してるの?仕様できまってるの?
>>114 ありがと。何オブジェクトでも四則演算しようとするとvalueOf()呼ぶようになってるんだ。
2*{valueOf:function(){return 3}} で6になった。面白い使い方ありそうだ。
これのおかげで演算子オーバーロードがなくても ベクトルや行列計算が素直に行える
117 :
Name_Not_Found :2012/07/28(土) 11:29:33.56 ID:S+w304Ho
ajaxで複数URLからjsonを取得しつつ、全てのURLからjsonが取得できたことを確認して次の処理へ進むようなもの、みんなどう実装してる? var1 = $.ajax({url: url1, ..., success: flag1 = true}}; var2 = $.ajax({url: url2, ..., success: flag2 = true}}; : while(var1 != null && var2 != null && ...){ setTimeout( function(){},1000); } みたいにして、その後にwhile無限ループを作って全てのvarの値が入るまで、setTimeoutしながらループし続けるしかないのかしら?
Ajaxの取得完了イベントで他のAjaxが全部成功してたら 次に進めばいいんじゃない? わざわざループしなくても
ループはアホだろwww
俺もちょっと不思議だった。普通に一つずつ終ったら確認すりゃいいのに たとえ100個同時に通信しても、それぞれの通信が終るたびに他のヤツが全部完了してるか?ってやれば良いと思う
121 :
117 :2012/07/28(土) 11:43:51.48 ID:???
>> 118
でも、結局successで指定した関数の中で同じようにループ書かなきゃいけなくない?他に書きようがあるの?
>>119 そうなのよ、ループはバカらしい。それでみんなどうしてるのかと思って。
function チェック関数(){ 他のア・ジャックスが終ってるか調べる } $.ajax([success:チェック関数();])
123 :
117 :2012/07/28(土) 11:46:01.98 ID:S+w304Ho
>>120 それだったら最初から$.ajax({..., async: false})にするんだけど、
それだと取得が直列になっちゃうから処理が遅いじゃん。
URLからの値取得を非同期で並列で行うことに意味があるかと。
124 :
117 :2012/07/28(土) 11:47:17.21 ID:S+w304Ho
>>122 そのチェック関数で終わってなかったらどうするの?
117がかなりバカなことはわかった
126 :
117 :2012/07/28(土) 11:51:08.30 ID:S+w304Ho
>>124 スルーして、他のア・ジャックスがまたチェックすればええやん
必然的に最後のがtrueになるわけで
もう超厳密にボーナスヒント言うなら、例えば100個通信するとして全部終ってたらunko()を実行するモンだったら
チェック関数(a){
ループ(100回){
if(flag[a]){}
}
全部トゥルーだったらunko()を実行
}
んで全部のア・ジャックスの取得完了イベントにこのチェック関数を入れるダケ
var2 = $.ajax({url: url2, ..., success: flag[2] = true;チェック関数(2)}};
var13 = $.ajax({url: url13, ..., success: flag[13] = true;チェック関数(13)}};
こんな答えてくれる奴あんまおらんぞ
This is a Jax. (これはジャックスです) This is A Ajax. (これはエイジャックスです)
人に馬鹿とか言ってくるやつほどわかってない典型例だな
え?
131 :
じゃがりきん :2012/07/28(土) 12:06:03.65 ID:Zs3vqBeN
>>106 xrに配列、xiに同じ長さの配列(0を入れとく)、mに2の何乗ぶん変換するかを入れてね〜
function fft(xr,xi,m){
var a,b,g,h,i,j,k,l,m,n,o,p,q;
var stank,ctank,xd;
n=1<<m;stank=new Array(n/2);ctank=new Array(n/2);a=0;b=Math.PI*2/n;
for(i=0;i<n/2;i++){stank[i]=Math.sin(a);ctank[i]=Math.cos(a);a=a+b};
l=n;h=1;for(g=0;g<m;g++){l/=2;k=0;
for(q=0;q<h;q++){p=0;
for(i=k;i<l+k;i++){j=i+l;
a=xr[i]-xr[j];b=xi[i]-xi[j];
xr[i]+=xr[j];xi[i]+=xi[j];
if(p==0){xr[j]=a;xi[j]=b;}else{xr[j]=a*ctank[p]+b*stank[p];xi[j]=b*ctank[p]-a*stank[p];};
p+=h;};k+=l+l;};h+=h;};j=n/2;
for(i=1;i<n-1;i++){
if(j<i){xd=xr[i];xr[i]=xr[j];xr[j]=xd;xd=xi[i];xi[i]=xi[j];xi[j]=xd;};k=n/2;
for(;;){if(j<k)break;j-=k;k/=2;};j+=k;};};
スクリプトって大まかな構造というか流れは見た瞬間頭でできるんだよ
だから「アレ使ってココをこーすりゃいいだけだろ」みたいに言うけど慣れてない奴は細かく言わなきゃわからない
って
>>122 >>124 >>127 見て思った
まあ非同期に頭が慣れてないんだろう
ループで調べるまでもなく、カウンタでいいじゃない。
重要なのはそこじゃないw
successするたびに全部終了してるか確認するのが一番妥当かと
これは吊るし上げられてもしょうがないな
>>138 全部確認する必要なんてないって
非同期なんだから一つ完了したら次のリクエストをすればいいだけ
おいおい
>>117 以外のやつはちゃんとわかってるよな?
大丈夫だよな?俺は心配だよ。
142 :
127 :2012/07/28(土) 12:43:03.39 ID:???
同時にやりたいんじゃないの? 同時にやりたいけどドレが最後に終るか解らないから困ってるんじゃないの?
同時にやりたいならサーバで処理しろよ
JSON URLの配列のindexを一つずつずらす処理をcallback関数のなかでやればいいだろう
>>142 同時にやるなら最後に確認すればいいだけ
質問者はちゃんと要件を定義してくれ
おいおい
同時に複数のリクエストが発生するんであればその仕様はクソだから、実装手法を考え直したほうがいいわ
149 :
117 :2012/07/28(土) 12:55:55.28 ID:S+w304Ho
ちょっと言っておくが ajax1〜3を順番に実行していって3完了後にコンプリート関数呼び出しても 処理1実行 処理1完了 処理2実行 処理3実行 処理3完了 コンプリート関数を呼び出す 処理2完了 ってなる場合があるからな こうなる事態があるから他の不具合も含め一つずつ順番にやってけって話だが
当たり前だろそんなモン 聖徳太子って知ってる?レベル
俺も
>>138 と同じ方法を取ると思うが。
ブラウザのリクエスト最大同時接続数(2か4だっけ?)までは、並列でリクエストしてくれるであろうと期待して。
1が終わってから2、2が終わってから3、って順番にやって行ったら余分に時間が掛かるだろう。
どのブラウザか忘れたが同時接続数2ってのがあったの覚えてるから それに沿って俺はやってる 基本やるなってことだけど
ラッパーぐらい作ればいいのに
>>153 どこが間違ってるか具体的に言ってもらえた方が勉強になります。
画像で例えるなら、画像が10枚貼ってあるHTMLページがあったとして、
1枚目の画像のダウンロードが終わってから2枚目のダウンロードをスタートさせたりしたら
効率が悪いし、実際のブラウザの実装は画像は並列にダウンロードされる。
Ajaxも画像もHTTP通信に変わりはないから、並列でリクエストをスタートさせた方が
効率がいい。しかしレスポンスが返るタイミングはそれぞれ違うので(例えば1つ目が500ms、
2つ目が100msで返ってきたら、2つ目の方が先に完了する)、Ajaxならやはり
>>138 のように、
それぞれの通信が成功したタイミングで、全ての通信が成功しているかフラグなどで確認する
やり方が良いように思えるのですが違いますか?
>>156 非同期の通信だから同時接続数が制限されてんだって
1-10番まで同時にスタートすると、まあ1,2で最大同時接続数を使い切るとして、 3以降はブラウザのキューに入って待機状態になるんじゃないんですかね? で、1か2が終わったら3以降の通信を順番に始めてくれ、最終的に10まで完了するという理解ですが。 まさか3以降がキャンセルになるって事はないですよね? というかこれくらい自分で実験した方が良さそうなので後で実際に組んでみます。
何がしたいのか分からないな グローバル変数のカウンター使えばいいだけじゃん? それで何か不都合あるの?
それでいいよ。
すげー遅レスだなwww
多分キューの部分はESの仕様外出し個々のOSの設定依存だと思う あと回線が細かったりレイテンシの悪いモバイル回線で大量発行すると遅すぎたりエラって切断されたりする 反対に加速に時間がかかるしレイテンシ悪いんだから1本ずつ小さなファイル取得するのも極めて効率悪い まあブラウザ全体で10本程度くらいがいいと思うから 3本くらい常にまわすのがいいかもね まあプロトコルで改善すべき問題でもあるから難しい
unko() を実行してきました (*^_^*)
firefoxの場合、同時接続数はabout:configのnetwork.http.max-persistent-connections-per-server
という設定で変更出来ました。(デフォルト値6)
apacheログではこれを2に変更した場合も載せています。
という事で、
>>138 さんのやり方が簡単で良いのではないでしょうか?
>>117 さん
ただ、
>>162 さんの言うように同時接続数はOSやブラウザに依存するので、
いくらキューに勝手に入ってくれるとはいえ、場合によってはある程度の調整は必要かも知れないですね。
>>117 のループが何をやってるのか全然わからん。
setTimeout 連続発行?
で、
>>164 調整するって何を?mxhr にするとか?
数百のリクエスト発行するとかならまだしも、10 やそこらで気にする
必要あるかな。
それにブラウザ側が同一サーバに対する同時接続数に制限をかける以上、
それを超えた場合の処理をブラウザが面倒を見るのは当たり前の話で、
それができなければただのソフトウェアのバグ。
167 :
117 :2012/07/29(日) 09:37:41.22 ID:???
>>165 ありがとうございます。
>>117 の内容が一番良さそうですね。
ただ、欲を言えば
$(function(){
// データロード
var1 = $.ajax(...)
var2 = $.ajax(...)
// データの加工
...
// ページ初期化
...
)
みたいに処理を一カ所にまとめておきたかったのですが、
これは無理そうですね。あきらめてデータ加工、ページ初期化は
別関数に切り出し、チェック関数でOKだったときに呼び出す形に
したいと思います。
>>166 ごめんなさい。setTimeoutは間違えました。
var ajaxs = new Ajaxs(callback); ajaxs.add({...}) ajaxs.add({...}) ajaxs.call(); こんな感じで呼べる関数作るのが一番だろ
>>164 ::1 - - [28/Jul/2012:22:08:11 +0900] "GET /wait.php?id=8 HTTP/1.1" 200 -
::1 - - [28/Jul/2012:22:08:11 +0900] "GET /wait.php?id=9 HTTP/1.1" 200 -
::1 - - [28/Jul/2012:22:08:11 +0900] "GET /wait.php?id=10 HTTP/1.1" 200 -
::1 - - [28/Jul/2012:22:08:11 +0900] "GET /wait.php?id=7 HTTP/1.1" 200 -
俺も昔試したけどやっぱ8、9、10、7になる通り通信状態によって左右されるから順番にならないんだよね
待機状態になるのもあんま良しと言えないからやっぱ順番にやっていくのが得策なのかも
キューに入る事の何が良しと言えないか分からないけど、要件による。 順番に実行する要件ならもちろんそうすべきだが 117の要件は全てのデータ取得が完了してから次の処理に進むだから、 データ取得の順番は問われないし、むしろ順番に取得すると余計に時間が掛かる。 プログラムを作るにあたっては、要件を正確に掴むことも必要。
なんでJSONの取得で多重リクエストする必要があるんだよ GM_xmlhttpRequestでもラッピングしてんの?
chrome系ブラウザを、例えば再起動させたいときは chrome.send("relaunchNow")ですが こういったもののリスト知りませんか?
good partsに載ってたんだが、配列の判定のとこでさ 「グローバルオブジェクトで作成された配列」ってどんなやつ? 具体例教えて下さい。
JavaScript で言う「ぐろーなるおvぶけjと」は、言わば、 window オブジェクトのこと (実行環境がブラウザの場合)。 だから、「グローバルオブジェクトで作成された配列」は結局、 「windowでサkス性された配列」(= new window.Array) のこと。 これだけじゃ分からんだろうけど、要するに本文で言ってることは、 例えば、 var iframe = document.createElement("iframe", { src: "about:blank" }); document.body.appendChild(iframe); var win = iframe.contentWindow; var ary = new win.Array(); // グローバルオブジェクトで作成された配列 ary のコンストラクタは win.Array であり、(window.)Array ではないから、 ary.constructor === Array; ary instanceof Array; はいずれも false が返る。 原文だとちゃんと「constructed in a different window or frame」 と書いてあるんだけど。
> var iframe = document.createElement("iframe", { src: "about:blank" }); これは無視の方向で。 Utility 関数を書き換え損じますた。
>>172 「RegisterMessageCallback site:src.chromium.org」
で検索すれば、わさわさ出てくる。
質問です。 attachEventはイベント専用なのでしょうか。 関数の引数に関数を指定し、 その引数を変えてやることで汎用的だけど、機能別に処理させたいと考えてます。 これはonloadとかイベント時に関係なく、head内に順に記載した通り動きます。
別に自分でそういうの作ればいいんじゃないの。
それが分からないのです…
<form name="frmA">横軸のメモリ <select onChange="screen2(this)" name="one"> <option value='0.2' selected>0.2</option> <option value='0.5'>0.5</option> </select> </form> を function screen1(as){ var hantei=as.options[as.selectedIndex].value;} ってしたらhanteiが数字でなく文字として認識される そうしたらいいんだぁあああああああああああああああ 教えてくれ
変態だぁああああああ逃げろぉおおおおおおおお
182 :
180 :2012/08/02(木) 03:41:33.53 ID:???
>>181 よく見ろ。
変数はhentai(変態)でなくhantei(判定)だろうがぁああああああ
藻j理恵tを数値に変換酢rうだけdふぁがあら、 parseFkiat使うか、楽をするならq、 短ジュに1をい抱えればいいだけ。
184 :
180 :2012/08/02(木) 04:09:47.28 ID:???
まず、option の value を valueOf にします。 <form name="frmA">横軸のメモリ <select onChange="screen2(this)" name="one"> <option valueOf='0.2' selected>0.2</option> <option valueOf='0.5'>0.5</option> </select> </form> function screen2(as){ var hantei=as.options[as.selectedIndex]*1;} JavaScript 側では、value プロパティを参照する代わりに 上記の様にします。
俺、こんなことしてる場合じゃねーや。
こういうときのためにevalがある hantei=eval(hantei)
*1より-0の方が早い
>>185 なぜvalueOfにするんだよ
属性とプロパティの違いわかってる?(IE6使いなのか)
valueOf属性はHTML4で規定あった?
全力のマジレスかっけー
まあな
form部品のvalueの値をjavascriptで取得すると 値が数字のみでもtypeofでstringが返ってきます parseIntとかいちいちやらないとだめでしょうか?
-0
*1 の方がおすすめ。
なるほど、それは簡単ですね ありがとうございます
textareaでマウスでコピペ(右クリ貼り付け)か文字うったとき(ctrl+vでキーのコピペ含む)で 共通するイベントってありませんか? mouseとkeyの2つイベントハンドラに登録するのもいやなのでなんかあるといいのですが changeが怪しかったのですがtextareaにはblurと同じみたいでした
両方に登録して問題がないならそれを使うべき
199 :
197 :2012/08/03(金) 08:00:11.24 ID:???
おはようございます 結局該当するイベントはないようでした マウスでペーストした時にはイベントが発生しないようです 右クリ禁止は横暴だし困っちゃいましたね
Opera 以外なら onpaste でキャンセルできるけどね。
タイマーで変化しているか調べt
>>197 古いIEは無視するとして textinput があった気がする
URLのパラメータにcallbackが対応してないJSONデータはどうやって扱えばいいのでしょうか?
日本語でおk
>>204 クロスドメイン回避する為にコールバック関数を設定してJSONPにしたいが、JSONを取得するURLにcallbackのパラメータが設定できない場合はどうすればいいのか?
という事です。
できないことをやりたいんだけど、どうすればいいの?
知るかよ 設定できないんなら対応してないだけだろ 何かのAPIの話してんのか知らんが、自分のサーバから取得しようとしてんなら自分で実装すればいいだけの話
知らないことをやりたいんだけど、どうすればいいの?
つまりサーバーAからサーバーBのJSONデータを取りたいって事か? JSONデータをvar data = {JSON};に変えれば良いんじゃね
Htmlの中の指定した文字を変えるJavaスクリプトって有りますか? あったら教えてくださいお願いします。 Html読み込み前ソース <html> 文章A <div> 文章B </div> <ul> 文章C </ul> <!--↓ここの部分です--> <scipt type="text/javascript"> 文章A=ねこ 文章B=くじら 文章C=メロン </script> <html> 読み込み後表示ページ ねこ くじら メロン
連投すみません もし言葉が間違っていたらすみません。
innerHTMLで書き換えろ
>>213 InnerHTMl.Replaceって奴ですね
出来ました
ありがとうございますm
216 :
Name_Not_Found :2012/08/03(金) 20:15:25.95 ID:sIB5pWFq
なんかむずむずする
>>206 何ならてきるんだ?
できないことだけ書かれても手の施しようがない
エスパーするなら JSON.parse
URLにパラメータを設定することができないってことじゃね? callback関数名を固定にすれば?
var a; ってずっとnullだと思ってたらundefinedになるんですねこれ
独り言なら Twitter でやってくんないかな。 ここはそれぞれに一仕事終えた回答者達が余韻に浸りながら 質問者の撒いた餌を肴に語り合う大人の社交場なんだから。
大人ならスルーすんだろ()
>大人ならスルーすんだろ() この一文だけで低学歴/無名大卒であることが分かる
低学歴?無名大? そりゃまだ高校生だからなpgr お前よりはいい大学入ってやるよ 慶應がBだから調子上げれば入れるからよ 人生終わったオッサン涙拭けよ
ふーん、かわいいじゃん。 俺のプロファイリングもまぁまぁだな。
イタイwww
>>220 ここはそんな場所じゃない
あなたも余所へ行ってくれ
イタイwww
ここはそんな場所じゃない(キリ かっけーっスwww
くだらない煽りが増えたね 今では大人の場所とはいえなくなったよ
夏休みで子供が来てるんじゃないか
夏休みだからJSの1つでも学んでみるかキリッ
子供だの大人だのという言葉が出るとこが痛い きっと書いてるのは幼児なんだな
幼児なんて言葉が出るとこが一番痛い
その突っ込みはないわ0点
くやしいのうwwwくやしいのうwww
(function(hage) { })(hage); こんな風にローカル変数を保存するやり方の名前って何て言うんですか?
237 :
Name_Not_Found :2012/08/04(土) 14:40:40.47 ID:icoN5cN1
ブログを無断転載していく人間のくずがいるんだけど、 こいつのIPアドレスを突き止める方法ない? 何でもいいから教えてください。 JavaScriptのスキルはそこそこあります。 冗談じゃなくて本気です
238 :
Name_Not_Found :2012/08/04(土) 15:12:05.64 ID:pizv+kkk
>>236 少なくとも、「ローカル変数を保存」とは言わんだろうな。。。
っていうか特に名前があるモノとも思ってないが、
意味合い的には「スコープ化」?「ブロック化」?「let化」?
あえて言語化するとしたらこの辺だろうか。。。
煽っといてふがいない限りだが。
DOMで要素書き換えなんかが書いてあるJSが完全に処理を完了してから、さらに2度目DOMを実行したいんだけど、1度目のDOMが終了するタイミングを見るにはどんな方法があります?
>>237 サーバーで何パターンか空白やら文句を変えたページをランダムに表示する
それを何度も繰り返せば絞れる
241 :
Name_Not_Found :2012/08/04(土) 15:50:09.39 ID:icoN5cN1
>>240 ありがとうございます。
どういうことですか?
何でそれで絞れるのかわかりません。
もう少し詳しく解説していただけると嬉しいです。
例えばABCDEパターン作っておくだろ 記事が転載されるまでに1000人がアクセスしてきたとする 基本各パターンをランダムで表示する アクセスされる度にIPアドレスを記録する 同一IPの2回目以降のアクセスは1回目と同じパターンを表示 そうすれば各パターンに200人ずつ振り分けられて 転載されたのと同じパターンを選んだ200人に絞れる これを繰り返せば5パターンなら4、5回、2パターンでも10回くらいで絞れる
243 :
Name_Not_Found :2012/08/04(土) 16:20:13.37 ID:icoN5cN1
>>242 なるほど!
確かにある程度絞れそうですね。
参考にさせていただきます!
本当にありがとうございました!
質問なんですが、Chromeとかにはjavascriptコンソールってありますよね? あれ使えば自由にエレメントいじれたりするじゃないですか? もし、あるエレメントに入ってるデータを取得して、 Ajaxを使ってDB内のデータを取ってくるプログラムを書いていた場合、 そのエレメントに入ってるデータを書き換えてjavascriptを実行し、他人のデータを盗み出すこともできてしまうってことですか?
えw それはGoogleのログイン画面で他人のIDとPasswordを入れれば他人のアカウントが使えると言ってる事と同じだろ IDが連番にでもなってれば見れるだろうがそれは個人情報の薄い見られてもいいデータだろ そうじゃなかったらやばいな PHPerにそういうの作る奴良くいるけど…
じゃあやめといたほうがいいですよね。 で、色々考えたんですが、悪意を持ったユーザが特定できないようなデータをAjaxでサーバ側に送信して、 データを取ってこようと考えたんですが、 セッションIDを送信する方法を思いつきました。 サーバ側ではそのセッションIDをsession_id関数を使って設定し、 セッション変数に保存されたデータを読み出せばいいかなと。 クッキーいじればセッションidなんか変えられると思いますが、 どんなセッションIDかなんて特定できるわけないと思ったのでこの方法がいいかなと思いました。 この方法ってまずいですか? もしまずいなら、Ajaxでデータを取ってくる場合どういうデータを元にしてデータを引っ張ってきたらいいんでしょうか? 毎回パスワード打たせるのも嫌がられそうですし。。。
要はパスとIDに当たるものをAjaxで送信するって事か? 別にそこに問題はないだろ ただしサーバーやらに穴は作るなよ
>>248 全力で穴は潰します
ありがとうございました
そういえばURLで管理してる場合にGoogleのロボットのエスパーアクセスでサイトが消されたりした事件は今も対策してないとやられるの?
あ、すいませんもう一つだけ質問させてください。 さっきセッションIDを送信するって言いましたが、 いちいちAjaxで送信しなくてもサーバ側でsession_start()を実行したらちゃんとセッション変数を読み込めました。 これはAjax通信したときに自分のセッションIDを含めて通信してくれてるってことなんでしょうか?
Cookie管理かよ それならもっと気をつけないといけない事が増えるな ローカルストレージに保存はダメなの?
ローカルストレージってHTML5からですよね? まだ全然普及してないので使う気はないです。。 サーバ側では自分のサイトからアクセスしてるかどうかリファラチェックもしてるし、 セッションIDはアクセスするたびにsession_regenerate_idを実行してるので、 セキュリティ的には問題ないと思ってるんですけどダメですかね。 Cookie管理って言ってもセッション使うとセッションIDはクッキーに保存されるので、 それはセッションの仕組みとしては仕方のないことだと思うんですが・・・ ど素人なので変なこといってたらすいません。
日経ソフトウェア読んだんだけどJavaScriptは 奥が深いな
firefoxでキャプチャ認証の画像が表示されません JavaScriptが原因だと思うのですがどなたかわかりませんか?
エスパーの方いらっしゃいませんか
ごめん、サイコキネシス専門でテレパシーは駄目なんだ。
>>253 どうやって初めにセッション結んでるの?
firefoxはなんかキャッシュか何かに問題があるはず
>>260 キャッシュ削除
Flashplayer、Javaの入れ直しをしてみましたがだめでした
具体的なURLを提示しない限り解決は出来ないと思う あとFirefoxのバージョンも というかスレ違いかな
>>259 えw
いや、Cookieからの自動ログインなのか毎回パス入力し直しなのか
というようなことが気になったのだけど
>>261 Cookieとかも全部削除してみたの?
いや、session_start()してセッション情報があれば自動ログインにしてんるんですけど。。
>>262 >>264 ページのソースを調べたらその画像認証はreCAPCHAというのが使われてた
検索してみるとgoogleに関連してるみたいでFirefoxのバージョンをあげたら何故か拒否される?ようなことが書いてました
が、解決策がかいてないという・・・
これはスレチですね
それにしてもなぜ拒否されるのだろう
>265 セッション(一時Cookie)だけ? 毎回パスワード打たせるのが嫌ってことは永続Cookie使ってるんでしょ?
セッションはlifetimeが設定できるんですよ
>>267 そういえばlifetimeを設定してなかったらブラウザ終了時になればクッキーって消えますよね?
ブラウザで直接クッキーを見てみても「ブラウザ終了時」が有効期限になってるのに何故か消えてないんです
これはなぜでしょうか?
でもどのみち1日ぐらいは永続クッキーにするつもりです。
永続っていっても一日以内にもう一度アクセスがあれば、そこからまた一日分の有効期限を再設定するだけですが。
>>269 それならば少なくともJavaScriptとの兼ね合いで特に問題はないと思う
Cookieはアクセスした瞬間に有効期限が切れてたら削除されるものじゃなかったっけ
match関数でgオプションを指定した場合キャプチャの内容はどこに入ってるんでしょうか?
()内は取得不可
有効期限がブラウザ終了時のクッキーは、有効期限が10年後とかになってるクッキーと同等に考えないとはまる
FirefoxとかGChromeは終了時のタブ復元するときにセッションクッキーも復元
>>275 そういうことかあああああああああ!!
長時間悩んでいた問題が解決しました
神様
ありがとうございました!
<script>タグってinnerHTMLに書き出すだけじゃ実行されませんか?
何そのevalみたいなの
どういうことですか?
>>279 だから簡単に言えば実行されませんということでしょ。何がしたいかを説明した方が
求めているような回答がもらえるんじゃなですかね。
そういうことですか。失礼しました。 実はツイッターのツイートボタンをボコッと指定した場所に出したいんですが、 innerHTMLで指定したエレメントの中に書き出しても出なかったので困ってるんです
質問を変えます ツイッターボタンのHTMLコードの中にあるscriptタグの中にあるコードの最初に、 !function(){ というコードがあります。 このびっくりマークは何を表しているんでしょうか? ググっても記号なのでうまく検索できませんでした。
どうやら即時関数ってやつっぽいので自分で調べてみます ありがとうございました
284 :
Name_Not_Found :2012/08/06(月) 02:33:13.60 ID:OaxMJwv/
違うだろ。!は倫理否定
倫理は否定しちゃあかんな
functionで囲っといて!function()とか実装してるやつアホなんだろうか? 最初から否定した結果になるもの返せばいいのに
成功や失敗時の戻り値くらい統一するのが当たり前だろ
統一するのに否定はいらんだろ
え?冗談なのか本当なのかどっちですか? 即時関数について調べたら、 +とか-とか!が使えるって書いてあったんですけど、 どれでも同じ意味じゃないんですか? それぞれ意味が違うんですか? 実行だけする場合は意味が同じで、戻り値として扱うときだけその演算子の意味を持つとか?
var a = !function(){ return true; }; alert(a);
解決したからみんな遊んでるだけだよ
おお!falseになった でもさっき言ったように戻り値を使わなければ気にしなくていいってことでいいですよね?
うむ
ありがとうございます!!
最後にもう一つだけ、
即時関数の書き方って
!function(){
return false;
}();
↑みたいに!の演算子を使う場合は{}の後ろに();がいるってあるホームページに書いてあったんですけど、
>>290 のコードには();がありません。
結局();は要るのかいらないのかどっちなのでしょうか?
無名関数 var a = function(){ alert("a"); }; a(); 即時関数 (function(){ alert("a"); })() !function(){ alert("a"); }()
えっと〜
じゃあ
>>290 はただの無名関数で私はだまされただけってことでしょうか?
var a = !function(){ return true; }();
alert(a);
結局こう書いてもfalseにはなりましたが。。。
結局即時関数の先頭につける演算子は意味をもつってことでいいんですよね?
alert(!function(){return true}); // false alert(!function(){return false}); // false alert(!function(){return true}()); // false alert(!function(){return false}()); // true function() {} ←関数宣言 !function() {}; ←式 関数宣言を()では呼び出せないので!や-を先頭に付けたり()で囲んだりして呼び出せる形にしている
>
>>297 本当に何度もすいません。ありがとうございます。
この四つは先頭に!が付いてるので全部即時関数ってことですよね?
後ろの二つは}の後ろに()が付いてますけど、これは別に無くても先頭に!や-が付いていれば即時関数になるってことですか?
二つ目の結果がfalseになるのもよく分かりません。
alertの中に書くんなら「!」つける必要ないよね。代入の右辺でも同様。 <!DOCTYPE html> <html><head><title>???</title> </head><body> <pre><script> alert(function(){return false;}()); var a = function(){return false;}(); alert(a); </script></pre> </body></html>
上二つは実行されてないので即時関数ではない無名関数。中の式はまったく考慮されておらず意味はない ()がついてなきゃ即時関数ではない。即時関数の字から少しは読み取れないか・・?
>>296 だまされたって君
>>282 で
!function(){って書いたけど!(function(){なんて書いてないじゃない
初心者で遊ぶなよ…
初心者のくせに随分と態度がでけえなおい
遊んでたのかと思ったらマジレスだったのか・・
自演スレ
え?ちょっと待ってください
誰が合ってるのか分からなくなりました
>>302 の言ってることが意味わかりません。
私がだまされたって言ったのは
>>290 が
var a = !function(){ return true; };
alert(a);
って書きましたけど、
>>300 の神様が()がついてなきゃ即時関数ではないと教えてくれたので、
()がついてないコードを提示してきた
>>290 にだまされたのではないかなと思ったのです。
とにかく
>>300 の人が正しいと思っていいんですよね?
312 :
Name_Not_Found :2012/08/06(月) 10:12:49.64 ID:3sEf0USM
(4) 常に自発的に調べる心構えを持ってください。 具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。 わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
315 :
Name_Not_Found :2012/08/06(月) 10:20:50.13 ID:3sEf0USM
>>313 実際何度もググリました。
最初の時点では即時関数という言葉すら知らなかったので
!やfunction,javascript等の語句を組み合わせて検索するしかありませんでした。
グーグルさんは!とか記号で検索しても正しい検索結果を返してくれないので、即時関数という言葉にたどり着くまでにまず時間がかかりました。
即時関数という言葉にたどり着いてからは、その情報が載ってるページでは私の知りたいことが書かれてなかったので
ここで聞いただけです。
>>314 ですよね
本当にありがとうございました!
そろそろ荒れそうなので消えますね
皆さんありがとうございました!
316 :
Name_Not_Found :2012/08/06(月) 10:21:46.99 ID:VTXEBNYH
>>311 誰が正しいとかを鵜呑みにするんじゃなくて
原理・原則的なことを覚えようよ
先頭をfunctionから書き始めたら関数宣言になるから
無名関数として後ろに()つけて、その場で実行できないのはわかるでしょ?
これはJSの書式のルール
で、先頭がfunctionではければいいわけだから
先頭に論理演算子をつけたり、カッコで括ったりすればよくて
そうすれば、後ろに()を付けられるから、その場で実行できる
論理演算子をつけた例において、無名関数自体がboolを返す
みたいな話が出てから混乱しているみたいだけど
上の話とは基本的には関係ないことだから切り分けて考えよう
318 :
Name_Not_Found :2012/08/06(月) 10:43:44.31 ID:VTXEBNYH
また混乱するようなことを… var a = !function(){ return true; }(); て書くと無名関数が実行されて、返されたtrueに論理演算子がついてfalseに var a = !function(){ return true }; て書くと実行はされていないけど、関数オブジェクトに論理演算子がついてfalseに変換されてる
319 :
Name_Not_Found :2012/08/06(月) 11:06:46.11 ID:3sEf0USM
>>316 ありがとうございます
先頭がfunctionだけだと「文」としてみなされるけど
+-などの演算子をつけると式として認識されるってググッたら書いてました。
>>318 この通りに理解してました
自信が持てました
神様ありがとうございます!
>戻り値を Number 型に変換する必要がないのに使用しているのなら無駄だと思います。 いや式に変換するために使うなら良いだろ
洩れも括弧で囲んでおくのが一番よく意図を表していると思うので好み。
>>320 下記訂正します。失礼しました。
× 名前の有無も関数宣言、関数式 それぞれにありますが、別件なので割愛
○ 関数式には名前の有無がありますが、別件なので割愛
なら!なら問題ありませんよね
>>325 論理否定演算子には触れられていないようですが、どうして問題ないと思ったんです?
実際に試して速度に問題無いことを確認したからですが?
>>322 関数式が返すのは関数オブジェクトね。
呼出しコード込みで書いてあるから混乱させることはないだろうけど
ECMAに拘ってるみたいだからツッコんどく。よそでも同じこと書くだろうし。
>>328 ご指摘ありがとうございます。
「関数呼び出し」に訂正します。
2chのスレッド一覧を取得したいと思っています。 XMLHttpRequestでsubject.txtを読み込むように指定したのですが、 スレッドタイトルの日本語部分で文字化けしてしまいます。 調べてみたところ、Shift-JIS形式のテキストファイルだけど、 UTFで読み込んでしまうから文字化けしてしまうそうです。 文字化けせずに取得する方法を教えていただけないでしょうか? よろしくお願いいたします。
333 :
Name_Not_Found :2012/08/06(月) 20:34:50.80 ID:VTXEBNYH
>>332 こっちもSJISにしてみれば?
もしくは途中にプロキシ的なプログラムかまして
エンコード変換するとか
IE7でのみ、「終了していない文字列型の定数です。」というエラーが出ます。 調べてみましたがソースにおかしな所はなく…。 誰かヒントだけでもわかりませんか。IEが示す行はJS呼び出しの引数に 日本語文字列を渡していて文字化けなどはありません。文字コードはUTF-8です。
335 :
Name_Not_Found :2012/08/06(月) 20:55:30.90 ID:VTXEBNYH
どっかで文字化けとかしてそうな プログラム自体はおかしくなくても、引数を受け取ってゴニョゴニョするところとか 再現する最小サンプルを作ってみて下しあ
サーバー側でutf-8に変換すればいいよ
>>332 overrideMimeType
IEは知らない
>>334 IE8 では "hoge のように文字列リテラルのクオートが閉じられていないと「終了していない文字列型の定数です。」のエラーになりますね。
上記のパターンでなければ文字化けを疑って、外部jsファイルの Content-Type ヘッダで適切な文字コードを指定してみてはどうでしょう。
339 :
334 :2012/08/06(月) 22:35:03.05 ID:???
閉じてないクォート、文字化けなどはやっぱりありません。 文字コードもサーバーからソースからDBから全部UTF-8で統一されていて、混ざる余地がありません。 引き続きもうちょっと調べてみます。
340 :
Name_Not_Found :2012/08/06(月) 22:37:24.12 ID:3sEf0USM
>>339 UTF-8にbomついてんじゃね?
俺はそれで三日はまった
PHPの話だけどな
firegesturesというfirefoxのマウスジェスチャーアドオンを使っています 新しいタブで戻るを実装したいのですがどうすればいいでしょうか
スレ違い
>>339 ブラウザの「ソースを見る」で表示させてみたかな。
344 :
Name_Not_Found :2012/08/07(火) 11:35:06.06 ID:lCSade4s
evalを使わずに func="init";からfunction init(){}を実行させる方法を教えて下さい。任意の引数付きで。 initは任意の文字列ですから、前もってif(funct=="init"){init()} とする事も出来ません。
意味がわかりません
window["init"](); でおk
347 :
Name_Not_Found :2012/08/07(火) 11:42:39.69 ID:lCSade4s
任意の文字列が渡された時、その文字列の名前の関数を実行したいという事です。 例えば文字列"init"が渡されたらinit();を実行する 文字列"callback"が渡されたらcallback();を実行する・・・の様にです。 もちろん、渡される文字列は任意の文字列ですから if(渡された文字=="iit"){init();} else if(渡された文字=="callback"){callback();}…とあらかじめ書いておく事も出来ません。 evalが使えたら eval(渡された文字+"()");で、eval("init"+"()")の様に呼び出せたのですが、evalが使えないのでそれが出来なくなりました。
348 :
Name_Not_Found :2012/08/07(火) 11:44:30.53 ID:lCSade4s
>>346 天才じゃなかろうか。ありがとうございます。
そういうことか 勉強になったわw
>>346 頭には入ってるつもりなんだけどなかなか思いつかないわ
>346 が思いつかないとか言ってる奴はevalに頼りきってきた初心者か eval周りを研究したことのない初心者だな
evalと似たようなもんだな
出来るだけevalを使わないのが普通
少し前から煌芽木☆ひかるたいう人が定期的に現れては戯れ言を呟いてるが、この人はなにをしたいんだろ
356 :
Name_Not_Found :2012/08/07(火) 17:39:33.89 ID:mb8NOpTJ
>>352 まあいいじゃん、質問スレだし
オブジェクトと、オブジェクトの名前と、その名前の文字列、でわちゃわちゃするのは
初心者の頃ならよくあることだし
JSでのオブジェクトの扱い方、書き方についての
わかりやすい質問例だったと思うな
こんなコードってありですか? var Hoge = function(id, name) { this.id = id; this.name = name; }; var arr = new Array(); arr[0] = new Hoge(1, "yamada"); arr[1] = new Hoge(2, "suzuki"); for (var i=0; i<arr.length, i++) { alert(arr[i].name); }
359 :
Name_Not_Found :2012/08/07(火) 21:30:53.28 ID:mb8NOpTJ
とくに問題はないと思うが newを使うな学派の人には怒られるかもしれない
そうですか。ありがほー
361 :
334 :2012/08/07(火) 23:38:41.94 ID:lpHybuKC
原因がわかりました 文字列に改行が入っていると、駄目なようです 納得行かないけど、何か対策を考えます
開業型の問題だろ エディタも使いこなせない奴はくるな
364 :
Name_Not_Found :2012/08/08(水) 02:44:14.94 ID:dorC4SqZ
エディタは関係ないだろ
エヂタで外業型指定できるぢゃん
いやー 日系ソフトウェア読んだらJavaScript初心者を 脱出した気分だ
それ気分だけだから注意な
ドラゴン桜読んで東大に近くなった気分がするのと同じだな
あんなJavaScriptの根幹を解説してるもの見たこと無い。 すばらしすぎる。
まずはアレを読んで其の後実践で色々な壁にぶち当たって乗り越えて初心者脱出するのが一番 ってのが理想なんだけど、最近の若いモンはjQueryに頼りっぱなしでロクなバグ対策もできやしねぇ windowやdocumentぐらい覚えとけよ
初心者ってどれぐらいのレベルなのさ 基準を教えてくれ
初心者はグローバル変数とグローバル関数で いわゆるC言語風の書き方をする人のことです。
じゃあ俺は中級者ぐらいかな よかったよかった
俺はC++風の書き方をするから、上級者だな
XMLHTTPrequestのonreadystatechangeに外部関数を指定した場合、 XMLHTTPrequestのインスタンスをグローバル変数にしたら多重通信が出来なくなるらしいんですけどマジですか?
試せば?
携帯だから試せません
質問を変えます。 function aho(){ var http; 〜この辺でXMLHTTPREQUESTの初期化〜 http.onreadystatechange = function(){ alert(http.responseText); } } こんなコードがあったとします。 onreadystatechangeに指定した関数内のhttpという変数は aho関数内だけのローカル変数です。 Ajaxって非同期通信が普通だから、基本的にaho関数を実行し終わった後に応答が帰ってくると思うんですが、 なんで応答が返ってきたときにまだhttpという変数にアクセスできるんですか? aho関数自体の実行が終わってるはずなのでhttpというローカル変数は消滅してると思ったんですが違いますか?
これは良い質問だ。上級者にしか回答できそうにない。
これは良い質問だ。エスパーにしか回答できそうにない。
実行が終わっても参照が残ってる場合は解放されないので使える で合ってる?
参照が残ってるとどうやって判断するの?
385 :
Name_Not_Found :2012/08/08(水) 14:27:57.97 ID:YPZc+4IV
>>380 実行し終わるとか消滅とか、すこし勘違いをしているかも
onreadystatechangeに渡された匿名関数から変数httpは参照できるスコープにある
ただそれだけだよ
じゃあ変数httpは消滅することがないということね
>>385 でもaho関数自体は終わってますよね?
じゃあ
>>386 の方が言ってるように、変数httpは消滅することがないってことですか?
またaho関数を2回実行したら変数httpは上書きされるんですか?
httpはaho関数内のローカル変数だから上書きはないっしょ
>>388 つまり、ローカル変数だけど消滅することがない特殊なケースってことですかね。
じゃあonreadystatechangeに外部関数を指定する場合はどうやって書くんでしょうか?
その外部関数に変数httpって渡せますか?
また渡した場合、応答が返ってきたときもその変数httpは消滅してませんか?
関数もオブジェクトだからプロパティにhttpを持たせればいいんだよ きっと。日系ソフトウェアを読んだから間違いない。
391 :
煌芽木☆彡 :2012/08/08(水) 14:52:15.44 ID:???
>>389 関数の実行コンテキストの概念を知らないだけ。
関数の呼び出しごとにスコープチェインが作られる。
スコープチェインググってきたけどなんだこれ JavaScriptヤバイ
>>391 へ〜そんなのがあるんですね。
勉強になりました
ありがとうございます。
395 :
393 :2012/08/08(水) 15:17:49.91 ID:QkErR/fa
スコープチェインでググってたらクローじゃとかもあって非常に勉強になりました。 完璧に理解できたか不安ですがとにかくありがとうございました
>>395 一応、この辺も参考に。
http://www.m-bsys.com/knowledge/jscript-gc メモリ開放タイミングは ECMAScript 規定にありませんが、現在のブラウザはGCで実装していると思います。
GCがメモリ開放するタイミングは「該当変数が使われなくなったとき」であって「関数実行終了時」とは限りません。
ただし、
>>380 では循環参照が形成されるので使われなくなったタイミングで明示的に
http = http.onreadystatechange = null;
を実行するのは良い習慣だと思います。(IE6SP2- ではメモリリークパターンに該当していました)
失礼。
>>396 を訂正します。
通常は
http = http.onreadystatechange = null;
でいいのですが、IE6SP2- では上記で開放されないバグがありました。
バグを回避するには以下のようにします。
http.onreadystatechange = new Function;
398 :
Name_Not_Found :2012/08/08(水) 15:31:27.90 ID:QkErR/fa
>>396-397 詳しくありがとうございます。
IE6はもう見捨ててますが一応覚えときます。
上級者ですねぇ
後はオナニーを我慢できればいいんだがなw
"Java \ Script" これじゃ駄目なんだっけ?
>>394 まさにそれです。
今回ばかりはIEが正しかったのですね。
ユーザーが入力した文字列が引数になるので、改行は何か対策します。
ありがとうございました。
>>400 出先なので確認出来ないのですが、そのやり方はES3違反、ES5適合だったかと。
個人的には \r\n やUnicodeエスケープすればいいと思います。
>>401 ユーザ入力文字列はサーバサイドできちんとバリデートしてください。
改行を受け付けないようにするか、改行をエスケープすればいいと思います。
文字列リテラルには他にも要エスケープ文字がありますので全て対策してください。
403 :
think49 :2012/08/08(水) 17:12:35.31 ID:sPoVZV1m
あら、ここはメール欄入れるとid非表示なのかな。 トリップをメモし忘れて外出しました。 必要なら帰宅後に本人証明します。
404 :
Name_Not_Found :2012/08/08(水) 17:17:53.57 ID:8u0glA1K
質問回答あわせての自演だろ 夏が終わるまで居座るのかな
ここってPHP版と比べて親切で助かりますう
>>402 はい、特殊文字はエスケープ処理していましたが、改行は対策してませんでした
受け付ける必要はあるので、<BR>などに置換します
>>406 改行のエスケープシーケンスは "\r\n" なので特に理由がなければこれで良いと思います。
HTML化すると JavaScript で挿入するときに innerHTML 等を使用することになるのであまりお勧めできない実装になりますね。
なんか変なの沸いてるな。気持ち悪い。
改行は\nだろ
410 :
Name_Not_Found :2012/08/09(木) 06:55:36.76 ID:HBUMZlUl
>>409 復帰コードも改行
ja.m.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89
> 改行のエスケープシーケンスは "\r\n" なので特に理由がなければこれで良いと思います。 これ、サーバサイドの話として全く意味不明なんだけど。
>>411 元々、>394なら改行コードでも動くように出来てるんじゃない?
むしろ、改行コードでは駄目な理由が読み取れなかったけどどの辺が意味不明?
>>413 クライアントが送信してきた文字列に含まれる改行を
エスケープする処理の話じゃないの?
リテラルとして書くと
>>394 の様になっているだけで、
実際は変数に入っているはず。
それを "\r\n" に「エスケープ」して何の意味があるのかなと。
それにブラウザによっては、CRLF を LF 単体で送信してくる
ケースもある訳で、それを考慮していないあたり、
まるで JavaScript の文字列リテラルの話をしている様に思える。
>>407 これ、エスケープシーケンスとは呼ばないでしょ。
\x1Bに続く訳じゃないし。
>>413 送信されてきた文字列が test改行test だったら
?<button onclick="foo('test
test');">test</button>???????????????????????????????????????????????????????
のように作ってたんじゃない?
このケースだとたとえば Chromeだと読み込んだ時点ではエラーにならないし。
IEだとその時点でエラーになる。
なんかばけた…
現在時刻をミリ秒の1000分の1まで取得する方法はありませんでしょうか? 拡張で取得できる単位と合わせたいです。
419 :
Name_Not_Found :2012/08/09(木) 17:37:37.25 ID:kX+/2aev
ないあるよ
少なくとも俺は知らない
とりあえずclosure compilerを通せばいいと思うの
422 :
Name_Not_Found :2012/08/09(木) 18:38:44.82 ID:QYdMbYqs
SyntaxHighlighterをつかってソースコードを装飾しようとしてるんですが、 読み込んで装飾されるときに、preで囲んだ部分がグシャッと20pxぐらいにつぶれてしまいます。 ソースはこれです。 <pre class="brush: cpp;"> #include <stdio.h> int main(void){ printf("test\n"); return 0; } </pre> 装飾したとたんにグシャッとつぶれてしまいます。 何が原因だと思われますか?
知らん。スレ違い
スタイルシートじゃね? 行数があっるならline-heightでも調整すればいいのではないか
スタイルシートは何もしてないんですけどねー。 line-heightも効果ありませんでした。 まいった
class設定しといてスタイルシート何もしてないとか馬鹿なの スレ違いだから死ねよ
いや、バカなのはお前 SyntaxHighlighterはデフォルトのCSSの設定で正しく表示されるようになってる 別にjavascriptの質問だしスレチではないよ
昔wikiで使った時はえらくずれて参ったな 原因解明が面倒だったので他のライブラリ使ったが
>>427 javascriptの所為でグシャってなってると思ってるの?バカなの?
430 :
425 :2012/08/09(木) 22:12:29.04 ID:QYdMbYqs
どうやらある関数と名前が競合してうまく実行されてないようでした 皆さんありがとうございました
431 :
Name_Not_Found :2012/08/09(木) 22:16:39.94 ID:1bds8G5f
SyntaxHighlighterはJavaScriptで書かれたプラグインというかライブラリというかそういうものだから まあ、質問するのはここであってると言える
いやいや、こういうことになるからって ライブラリスレは分離したろ
本気で質問したい時は最低30分推敲して 本当にそれで人に伝わるか考えろ
434 :
Name_Not_Found :2012/08/10(金) 09:04:58.71 ID:YfdiZ8RD
なんだと、この野郎
WebCLについての質問があったときはどうすればいい?
例えば o = new MSSocialObject([1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0]) o.value // [1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0] o.num // 0 o.valueOf // function (){return !!this.value[n]} としたときに o.valueはプロパティ、 o.valueOfはプロパティ兼メソッド と教えてもらったのですが、違いはどうやったら見分けられますか?
alert(typeof o.value);// number alert(typeof o.valueOf);// function
>>436 プロパティはオブジェクトが持つオブジェクト。
メソッドはオブジェクトが持つ関数。
プロパティ⊃メソッド。
なるほど! ちょっぴりわかりました 関数がプロパティ オブジェクトがメソッド ならo.numのように数字の時はなんと言うべきなのでしょうか?
何も分かってねぇ・・
>>439 プロパティの集合がオブジェクト。
オブジェクトを基準に見れば、どんな値を持っていても「プロパティ」で間違いない。
プロパティが関数オブジェクトを値に持てば、メソッドと呼ばれることがあるだけ。
多分理解できました すみません 配列のそれぞれの中身もプロパティと呼んでいいのですか?
「配列」ときたら「要素」が適当だろうけど 「Arrayオブジェクトのプロパティ」で問題ない。
イメージするものと、その表現方法(仕組み)って感じかな。 配列の要素はArrayオブジェクトのプロパティとして表現されていると。 他にもたとえば、グローバル変数はグローバルオブジェクトのプロパティに過ぎないんだけど、 わざわざ後者で表す必要はないが、そのことは知っておいた方がいい。 コンストラクタも単なる関数なんだけど、new 関数名(); で使われるなら、コンストラクタと呼んで差し支えない。 などなど。 メソッドもおんなじことだね。
既存の単語を置き換える方法ってありませんか? okikae(setTimeout,setInterval){ setTimeout('alert("Hi");',1000); //1秒毎に鳴る } や okikae(Math,document){ Math,write("Hi"); } みたいな
俺様構文だね。JavaScriptで構文エラーにならないものにしないと そもそも何もできないと思うが。
スクリプトを文字列として取得して自分で色々弄ってから evalするなりscriptとして挿入するなりすればいいんじゃね
>>446 function okikae (obj1, obj2, callbackfn) を定義してみては?
よくわからないけどwindow['setTimeout']=okikae;的なことじゃないですよな
どっちかっていうと window['setTimeout']=setInterval; じゃね? 命令の置き換えがしたいんじゃないかと。
Prototype.js の新版 1.7.1 が出たで〜。
453 :
446 :2012/08/15(水) 00:39:23.47 ID:???
>>447-451 レスありがとうございます
>>451 で指摘されている通り命令の置き換えが目的でした
最近JavaScriptを触り始めて入門サイトを見ているうちに
with命令を知り、そこから出た疑問が
>>446 でした
prototype.jsって前の古臭い仕事場で使ってただけで jQueryにユーザーを寝とられたイメージ
jQueryも1.8出たぞ
>>453 function alert2(msg) {
console.log(msg);
}
var okikae = {
'alert': alert2
};
with(okikae) {
alert('test');
}
こんな感じかな。結果がわかりやすいalertで。
コードの見通しが悪くなる気がするが。
var a = function(){ return this.name; } console.log(a()); // 空文字 var b = function(){ return this.tekito; } console.log(b()); // undefined console.log(Function.prototype.name); なんのためにプロパティにnameあるの? apply使った時undefinedでたりでなかったりでめっちゃ悩んだし
すまんぐぐって解決しました
100枚以上の画像の中からランダムで選んで スライドショーさせるのに適したjavascript、jQueryはありますでしょうか?
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4 のテンプレを読んだ上で質問してください。
462 :
Name_Not_Found :2012/08/16(木) 16:38:07.42 ID:AH5R32iP
【環境】Chrome・Firefox 【何をしたのか】チェックボックスのON・OFFで表示切替をしたいが複数ある場合にうまくいかない 【エラーメッセージ】とくになし 【期待する結果】チェックボックスのON・OFFで全てのA/Bの表示を切り替えたい 【サンプルコード】 <script> // Bボタン隠す window.onload = function(){document.getElementById("b").style.visibility="hidden"}; function check(obj){ if( obj.checked ){ document.getElementById("a").style.visibility = "hidden"; document.getElementById("b").style.visibility = "visible"; } else { document.getElementById("a").style.visibility = "visible"; document.getElementById("b").style.visibility = "hidden"; } } </script> <input type="checkbox" onclick="check(this)" />a-b切り替え<br /> <form method="post" action="/fuga.cgi"> <input type="submit" name="a" id="a" value="a" /> <input type="submit" name="b" id="b" value="b" /> </form> <form method="post" action="/fuga.cgi"> <input type="submit" name="a" id="a" value="a" /> <input type="submit" name="b" id="b" value="b" /> </form>
そりゃIDは一意でないとならんからね
>>462 idは被っちゃ駄目
getElementsByName使えば配列取得できるから回せ
465 :
Name_Not_Found :2012/08/16(木) 20:10:38.21 ID:kc7V4A9i
関数内で任意のキーを押下することって可能ですか?
できちゃマズい。
467 :
Name_Not_Found :2012/08/16(木) 20:25:43.65 ID:kc7V4A9i
やはり無理ですか… すいません、ありがとうございました。
そういう場合は、キーを押したくなる様にユーザを誘導するんだよ。
469 :
Name_Not_Found :2012/08/16(木) 20:33:30.74 ID:kc7V4A9i
なるほど… ちょっとアラートとか使って意欲を高める努力をしてみます
グロ注意
>>472 リンクまで貼っていただきありがとうございます
まったく触れたことがないのでこのような初歩的すぎる質問をしてしまったことをお許し下さい
リファレンスマシマシ、ソース短め
MDN でも日本語版はないわ。
はいはい
479 :
Name_Not_Found :2012/08/17(金) 20:31:12.63 ID:1n5tsfGr
MSDNとMDNを参照するべきだな。英語版で。日本語版は情報が古かったり無かったりするんで使えない。
MDNは訳のレベルが低くて誤訳があったりもするんだよ
誰でも修正できるんだから直せばいいじゃん
英語で読めばすむ人は直すことに労力を掛ける気がしないだろうね。 英語で読みたくない人は直すのに必要な英語力が足りないと。
483 :
Name_Not_Found :2012/08/18(土) 15:14:21.15 ID:mw3DNbpH
WEB制作をしていて、スマートフォン向け、PC向けと、レイアウトを切り替えるボタンを作りたいのですが。。。 今は、mediaクエリ、 <link rel="stylesheet" type="text/css" href="smartphone.css" media="only screen and (max-device-width: 480px)" /> <link rel="stylesheet" type="text/css" href="screen.css" media="only screen and (min-device-width: 481px)" /> を使って横幅ごとでレイアウトが変わるように設定しています。 この設定方法だとボタンで切り替える事は不可能 or 難解になってしまうのでしょうか? スマートフォン向け、PC向けで切り替える方法で一番スタンダードなやり方をご教授いただければ幸いです。 よろしくお願い致します。
prompt
JSON形式のデータをevalでオブジェクト方に変換したんですが、 object.lengthってやるとchromeでは正しいオブジェクト数返すのに IEでは1個しか返してくれません。 原因と対処法を教えてください。
いややっぱりいいです 忘れてください
ボクのこと、忘れてください って何だったっけ
うぐぅ
教えて下さい。 hrタグに書いたidは取得できないんでしょうか? hrの上下や間に、getElementById〜appendChildで何かを追加したい場合はどうするんでしょう。
>>489 hr要素もgetElementByIdで取得可能。
兄弟要素や親要素も取得可能。
>>490 これでできない理由はなんでしょう?
div側のt1はうまく動きます。hr側のhr1はエラーになります・・・
<div id="t1"></div>
<hr id="hr1">
<SCRIPT LANGUAGE="JAVAScript">
<!--
var body1 = document.getElementById('t1');
var table = document.createElement('table');
table.id = "tbl1";
table.style.backgroundColor = "red";
//↓これが必要!
var tbody = document.createElement('tbody');
var tr = document.createElement('tr');
tr.style.backgroundColor = "white";
var th = document.createElement('th');
var text = document.createTextNode('test1');
th.appendChild(text);
tr.appendChild(th);
tbody.appendChild(tr);
table.appendChild(tbody);
body1.appendChild(table);
hr要素は空要素であり、子供を持つことはできない、とか知ってるよね。 もし知らないならDOMやる前にきちんとHTMLを学ぶべきなわけで。
上下や間はappendChildじゃ無理。 insertBefroeを使え。
って、間ってどこ。
>>492 レンダリングされるかどうかはおいといて、そのあたりをゴリ推しできるのがDOMじゃなかった?
>>495 document.appendChild(document.createElement('hoge')); // どうやってappendChildする?
言われて書き換えてみたコレで動かず。。。 確かに細かい所までおさえきれてないので、行き詰まりました・・・ body1.insertBefore(table,body1.lastChild); こうでもないんですよね body1.insertBefore(table,body1.nextSibling);
>>498 insertBefreする対象は body1じゃないだろ? その一つ上。
もうわかるだろ。
上というと勘違いするか。親ね。
>>499 ありがとうございます!
実現できました。
結構前から疑問に思ってたんだけど、facebookでアップされている写真をクリックするとアドレスバーに表示されているURLも変わるんだけどこれってどうやって実装しているか知ってる人います? ページ自体をリロードしているような気はしないんだけど・・・
>>502 historyのpushstateとかとか
>>503 pushstateは履歴追加だと思ってたが、URL偽装もできる代物なのか?
調べも試しもせずにぐだぐだ言う奴はやめちまえ人生
>>503 html5でそんなの追加されてたのね
thx
>>504 だけじゃできんと思うんだけど
とりあえずやり方のポインタとしてpushstateを渡してみた
pushstateってどこまでのブラウザが対応してんの?
caniuse.comぐらい見てから聞けボケ
ん? 俺が質問を勘違いしている、のかな githubでpjaxとか呼んでいるものとは違う?
>>511 なるほど、hash値を変更すると捉えたのか
その場合、location.hash = '#hoge'; が肝であって history.pushState は関係なくね?
質問者がバカすぎて話が全然かみ合ってないなw こんなのに答えてやらなくていいのに
>511 いや、pushStateで合ってるし、pjax(pushState + ajax)も合ってる。 勘違いというか、知ったかぶりしているのは >510 のほう pjaxでググればすぐわかる
>>512 そうじゃなくて、たとえばgithubとか、ニコニコ動画とか
ページ遷移をしないのにURLが変わるやつの話だよね?
古いIEユーザだったら知らないかも知れないけど、変わるんです
で、それをやるにはlocationに触らないようにhistoryを変えるしかないじゃん
で、historyのpushStateとreplaceStateを使ってごにょごにょすると
それができるよって言いたかった
ちなみにpjaxはgithubで使われていたものを分離独立させたもので
ajaxで画面の一部を変更したときに、それに併せてURLも変えるのを
主眼において作られている
なので、ajaxが入る分、質問の本質からは外れると思う
「遷移なしでURL変更」については、pushStateとreplaceStateを弄ってみるのが、一番理解が早いと思います
516 :
Name_Not_Found :2012/08/21(火) 12:24:54.84 ID:6pV3ztxA
517 :
Name_Not_Found :2012/08/21(火) 12:58:38.57 ID:6pV3ztxA
HTMLからタグでない文字列を抜き出す方法を探しています 例えば下記のようなHTMLから文字列A,B,Cを抜き出したいときに innerHTMLを用いた場合、divに使うと<b></b>まで入ってしまいます 何かいい方法はないでしょうか <body> 文字列A <div> 文字列B <b>文字列C</b> </div> </dody>
>>518 ノードを再帰的に辿って、nodeType==3だけ拾う。
>>518 Regular Expressionを勉強する。
521 :
518 :2012/08/21(火) 17:49:53.70 ID:???
>>519-520 即レスありがとうございます
今の知識ではさっぱりなのでそれらのワードで調べてみます
正規表現は関係ねーよ!
>>518 innerText、textContentを使う。
>>518 var e = document.getElementById('hoge');
var c = e.childNodes;
for (var i = 0; i < c.length; i++) {
if (c[i].nodeType != 1) continue;
document.write(c[i].innerHTML + "<br />");
}
_, ,_ パーン
( ‘д‘)
⊂彡☆))Д´)
>>524
Ctrl+Fのページ内検索に入力された単語やそれにマッチした部分をJavaScriptで取得することはできますか?
余裕
無理。ドキュメント外だからJSから触れない。
でできない
>>530 それじゃ無理だ。自前の検索機能を実装するって話だろ。
prompt
ご回答ありがとうございました。
534 :
Name_Not_Found :2012/08/22(水) 02:37:05.46 ID:4673KcsE
>>524 書いてみた
function striptags(n){
var r = '';
var c = n.childNodes;
var l = c.length;
var i = 0;
var F = arguments.callee;
for(; i<l ; i++){
if(c[i].nodeType == 3) r += c[i].nodeValue;
else if(c[i].nodeType == 1) r += F(c[i]);
}
return r;
}
>>534 動作は問題ないかもしれないけど、部下がそんなコード書いたら張り倒すw
536 :
Name_Not_Found :2012/08/22(水) 03:19:19.89 ID:4673KcsE
迷える子羊のために添削プリーズ
var childrenTexts = function(element) { var texts = []; for (var i = 0, len = element.childNodes.length; i < len; i++) { var node = element.childNodes[i]; if (node.nodeType === 3) { texts.push(node.nodeValue); } } return texts; }
それエレメントノードは無視しちゃうんじゃ
>>534 名前が付いてるんだし、arguments.callee を止める。
何度も参照する c[i] は変数に入れる。
一文字変数名を止める。
>>535 俺が部下なら、かわしてお前にグーパン。
>>534 文字列連結は重いので配列に入れて最後にjoin
配列に格納してjoinはさすがにネタだろwww
543 :
534 :2012/08/22(水) 14:16:44.38 ID:hwbySWBU
>>539 なるほど、勉強になりました
カウンターパンチの打ち方も教えて下さい!
え?お前どこ見てんの?w
あさっての方向。
>>538 え、タグで囲まれた部分は無視するんじゃなかったけ?と思ったら俺の勘違いか…。
じゃあ element.textContent || element.innerText でいいじゃんか…。
<script> jQuery( '.jquery'..... prev: '#prev', next: '#next', after: function() {$('#cap').html(this.alt);} </script> <div class=jquery> <div><img src=.... alt-"aa"/ ></div> <div><img src=.... alt-"bb"/ ></div> </div> <span id="prev"><a href="#">prev</a></span> <span id="next"><a href="#">next</a></span> <p id=cap></p> 指定したクラスjqueryの子である<div>内のaltを指定する方法を教えてください。 どうしてもimgをdivで囲まないと行けないのです。 divで囲む前に書いていた$('#cap').html(this.alt)では、 書き込むcapの場所は認識していてもaltを認識してくれません。 どうかお助けを。。。
ライブラリのスレで
550 :
548 :2012/08/23(木) 11:37:46.64 ID:???
>549 あちらは更新がないようなのでこちらに書き込ませてもらいました。 どなたかお助けしてもらえないでしょうか。。
alt属性のこと? じゃあgetattributeでとりゃいいじゃん
(X)HTML自体が酷いことになっているんだが、 手元のソースではちゃんと書いてるのか?
更新がないからってどういうことだよカス そうやってこっちに書き込むから更新がなくなるんだろクズ
554 :
548 :2012/08/23(木) 12:13:28.23 ID:???
>>522 ソースはaltを指定してる箇所以外端折ってます。
スライドショー、prev,next指定等すべて問題なく動いています。
いままは、
<img.....>
<img.....>
としていたんですが、異なるサイズの画像をセンタリングしたく
どうしてもそれぞれを<div>で囲み、cssで
.jquery div {
width: 640px;
height: 480px;
}
指定するようにしたんですが、唯一キャプションaltだけ動きません。
試しに"A"+this.altとすると、Aundefinedと欠かれます。
undefinedってことはthisがimg要素ノードじゃないんだろ じゃあ何かって言われても上手くソース隠してるんだから知らんけど
556 :
Name_Not_Found :2012/08/23(木) 12:58:05.89 ID:g8X9ywTJ
>>554 スタイルシートはわかるよね?
クエリセレクタはスタイルシートと同じく
子孫セレクタが使えるから、それでやればimg要素にアクセスできるでしょ
558 :
548 :2012/08/23(木) 13:06:22.46 ID:???
>>556 after: function() {$('#cap').html(this.alt);}
これをdiv.this.altや> div this.altとか色々やったんですが、
どうしても現在表示中のimgのaltにたどり着けません。。
ソースを隠しているのではなく不要だと思ったんですが、
どこが必要でしょうか?本当に困っています。。
<script>
jQuery( function() {
jQuery( '.jquery5' ) .cycle( {
prev: '#prev',
next: '#next',
after: function() {$('#cap').html(this.alt);}
<body>
<div class=jquery5>
<div><img src=.... alt-"aa"/ ></div>
<div><img src=.... alt-"bb"/ ></div>
</div>
<span id="prev"><a href="#">prev</a></span>
<span id="next"><a href="#">next</a></span>
<p id=cap></p>
altにハイフンなんてついてたっけ?
alt属性の書き方がおかしいな
562 :
548 :2012/08/23(木) 13:22:40.76 ID:???
失礼しました。 alt属性はきちんとalt="AA"です。 <img>前後を<div></div>で囲んだ瞬間にalt属性を見てもらえなくなりました。 function() {後の$(' )部分にはセレクタを使いのはなんとなくわかるんですが、 その次の.html(this.alt);}でどうやったら jquery5クラス下の<div>内のalt属性と認識してもらえるのか。 スライドショーなので、表示されてる画像のalt、 クリックされた画像のaltのみを参照しないといけないので、 もしかして不可能なんでしょうか?
その this が何になっているか調べてみたら?
つーかjquery使う必要ねえだろwwwwwwww jqueryばっかつかってからそーなんだよ
ソース見た限り、thisはjquery5のdivだからalt属性は無いよねw
jQuery("img", this).attr("alt"); もういいだろ、はよ終わってくれ
568 :
548 :2012/08/23(木) 13:40:38.76 ID:???
>>566 ですよね。今まではjquery5直下のaltだったから認識してた。
どうすればその子のdivのaltになるのか。。
試してないけど、this.children().get(0).attr("alt") で拾えない?
imgタグの属性なんだからもうあとはわかるだろボケwwwwwwwwwww
ライブラリはプログラマをダメにする 基礎をきっちり学んだやつしか使ったらだめなんだよボケwwwwwwwwwwwwww
わざわざ30秒待ってくだらねえレスを連投したのを考えると、そこはかとなく寂しい気分になるな
573 :
548 :2012/08/23(木) 13:55:18.28 ID:???
本当に無知で情けないです。申し訳ないです。 jQuery("img", this).attr("alt"); this.children().get(0).attr("alt") 教えて頂いた上記のような記述を jQuery( function() { jQuery( '.jquery5' ) .cycle( { prev: '#prev', next: '#next', after: function() {$('#cap').html(this.alt);} のどこに書いて良いものやら。。 <div class=jquery5> <div><img src=.... alt="aa"/ ></div> <div><img src=.... alt="bb"/ ></div> </div> <p id=cap></p> 情けない。。
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4 のテンプレを読んだ上で質問してください。
this.altをそのまま置き換えるだけだろ ; は外せよ
女のこなら許す
>>569 thisはDOMオブジェクトのきがする。ソースがまともじゃないので、試せないが。
579 :
548 :2012/08/23(木) 14:09:00.22 ID:???
>>576 after: function() {$('#cap').html(jQuery("img", this).attr("alt"));}
これで無事に表示してくれました!!
576さんは神様です。
他の皆様ご迷惑おかけしました。。。
ちなみに私は女の子ですが主婦です。。
ガタッ 許す ボケっていって悪かった ライブラリばっかり使わず通常のJavaScriptについても勉強したほうがいい
主婦な時点で女の子じゃねーよ
年齢による ironは認める
まずjQuery無しのコード書いて動作確認してからjQuery使えばいいじゃない? しかしjQuery流行っているな…。おっさんとしては時代に取り残されている感じだわ('A`)
584 :
Name_Not_Found :2012/08/23(木) 18:56:17.16 ID:VEHmL4CC
JQuery習得したいんですが、どうすればいいですか?
webプログラマで働いてる人に聞きます 女性ってどれぐらいますか?
15人に1人くらいかな
15人なら5人ぐらいいると思ってましたがその程度なんですね あざした
950 R774 2012/08/23(木) 19:44:02.11 ID:3nPKEsdP おせー車がいたんで煽ってたら急に止まりやがってちょび髭のオッサンが降りてきた なんか喚きながら走ってきたんで車の中で様子みてたら俺の車をバンバン叩きやがんの ムカついたんでオッサンが後ろ姿見せたときに車ぶつけたった
589 :
Name_Not_Found :2012/08/23(木) 21:28:33.20 ID:daUR0etM
>>584 JavaScriptが書ければ
特に何もしなくても使えるよ
んなこたーない
>>584 勉強の基本は人に聞かずとにかく自分で調べる事
592 :
Name_Not_Found :2012/08/24(金) 10:23:41.85 ID:GwIY5t7Z
【環境】Firefox / Chrome 【何をしたのか】 【エラーメッセージ】 【期待する結果】タブやブラウザを閉じようとするとalertを出す 【サンプルコード】 こういったことが可能なのかどうかがわからなかったので質問させていただきました。 可能であればどういった関数で実現できるのかアドバイスいただけると助かります。
beforeunloadで検索
>>591 おれは部下には分からないことがあったらとにかく聞けって教えてるけど
無駄に時間を使われるくらいならとっとと教えてやったほうが成長は早いんだよ
>>594 JQuery習得したいんですが、どうすればいいですか?
お薦めの良書とかありますか?
なんでもいいから一冊買ってきて全部コードを書き写せ
小学生か
598 :
598 :2012/08/24(金) 16:56:19.09 ID:qPA//l5l
クロージャについて質問があります。 document.getElementById()で取得したオブジェクトを、クロージャ内の変数として保持したいのですが、ページ読み込み時はドキュメントが生成されていないので値は null として保持されてしまいます。 取得したオブジェクトをクロージャ内の変数として保持するにはどうしたらよいのでしょうか。お分かりなる方、教えてください。よろしくお願いします。 以下は、オブジェクト(id:test)の取得・保持に失敗し、変数cnt の保持に成功しているコードです。 <html><head><meta charset="utf-8" /><script type="text/javascript"> var getElem = (function() { var elem = document.getElementById("test"); var cnt = 0; return function() { alert( elem ); cnt = cnt + 1; alert( cnt ); }; })(); window.onload = function(){ getElem(); }; </script></head><body> <div id="test"></div><input type="button"value="button"onclick="getElem()" /> </body></html>
>>598 getElemの関数生成もonloadの中でやればいいんじゃない
600 :
Name_Not_Found :2012/08/24(金) 17:14:26.19 ID:ZJYYpxb4
>>598 >ページ読み込み時はドキュメントが生成されていないので値は null として保持されてしまいます。
分からない事があったら、問題を切り分け小さな単位で物事を考えろ。
既に自分で答えを書いておきながら、「クロージャの質問です」とか頭くっついてるのか?ちゃんと動作してるのか?
>>598 getElementsByTagName ならそのコードで良いけど、
getElementById の返す値は NodeList でないから、
>>599 の言う通り、確実に要素が存在してから
取得する必要がある。
602 :
598 :2012/08/24(金) 18:11:39.92 ID:qPA//l5l
>>599 うまくいきませんでした。getElem関数が "undefined" と表示されます。
>>600 あまり動作していないかも知れません。ですが、以下のソースでは変数cnt は保持されており、getElem関数も動作します。
ただ、この書き方では getElem関数を実行するたびに再度オブジェクト(id:test)を取得し、getElem関数に引数として渡しています。これでは クロージャとして機能していないと思うんです。
何かほかに賢い書き方ってないですかね・・・。
<html><head><meta charset="utf-8" /><script type="text/javascript">
var getElem = (function() {
var cnt = 0;
return function( elem ) {
alert( elem );
cnt = cnt + 1;
alert( cnt );
};
})();
window.onload = function(){
getElem( document.getElementById("test") );
};
</script></head><body>
<div id="test"></div><input type="button"value="button"onclick="window.onload()" />
</body></html>
603 :
Name_Not_Found :2012/08/24(金) 19:01:11.68 ID:ZJYYpxb4
>>602 まず、落ち着け。深呼吸だ。
そしてソースに何を書いたか上から検証していくんだ。
window.onload=function(){
604 :
603 :2012/08/24(金) 19:17:18.77 ID:ZJYYpxb4
すまそ、俺も落ち着くことにするわ。 ↓動かしてないけど、コレで満足か? <html><head><meta charset="utf-8" /><script type="text/javascript"> window.onload = function(){ var cnt = 0, elem = document.getElementById("test"); document.getElementById("id_button").onclick = function(){ alert( elem ); cnt = cnt + 1; alert( cnt ); } }; </script></head><body> <div id="test"></div><input type="button"value="button" id="id_button"/> </body></html>
605 :
598 :2012/08/24(金) 22:40:57.46 ID:qPA//l5l
>>604 ありがとうございました!これでいってみます。
<html><head><meta charset="utf-8" /><script type="text/javascript">
window.onload = function(){
elem = document.getElementById("test");
(function(){
var cnt = 0;
var _elem = elem;
document.getElementById("id_button").onclick = function(){
alert( _elem );
cnt = cnt + 1;
alert( cnt );
};
})();
};
</script></head><body>
<div id="test"></div><input type="button"value="button" id="id_button" />
</body></html>
prototype.jsを利用してクラスを作るとき、 一つのメソッド内で同クラスの他のメソッドは呼び出せないのですか? 他の言語、たとえばjavaなんかではできると思うのですが、prototype.jsの機能では不可能なのでしょうか?
608 :
606 :2012/08/25(土) 02:43:17.71 ID:???
失礼しました。 そちらで訊きます。
>>605 何か無理に即時関数を使おうとしている感じがするんだけど、これで十分じゃ?
window.onload = function(){
var elem = document.getElementById("test");
var cnt = 0;
document.getElementById("id_button").onclick = function(){
alert(elem);
cnt = cnt + 1;
alert(cnt);
}
}
それと
window.onload = function(){
};
は
window.onload = function(){
}
で、最後のセミコロンは不要
セミコロン省略してもメリットないよ。つけたほうがいいって
イベントハンドラに無名関数つかう場合は必要ないな。 jQuery等のライブラリが付けているから最近はマネして付ける人もいるが…。
変数に無名関数を入れるときは必要なのか?
613 :
Name_Not_Found :2012/08/25(土) 12:34:53.27 ID:XqAieo+S
他のアドレスに移動しようとしたりタブを閉じたりしようとしたときにalertを出したいと思ってます。 window.onbeforeunload = function (e) { var e = e || window.event; // For IE and Firefox prior to version 4 if (e) { e.returnValue = 'Any string'; } // For Safari return 'Any string'; }; こんな感じで移動する際にalertは出せるようになったんですが、全ての移動で出るようになりました。 そこで遷移先のアドレスが自ドメイン以外の場合にalertが出るようにすればいいのではないかと考えました。 遷移先のアドレスを取得する方法というのはあるのでしょうか? もしくは他にもっと良い方法がありますでしょうか?
>>614 頭の悪い煽りだなwww
何が悪いのか言ってみろよ
>>616 人のコード見ると、そういうことぬかす奴多いんだよ。
で、自分のコードがエレガントかというと、やっっぱ糞コードなんだよ。
岡目八目みたいな感じ?
>>615 window.onload = function () {
}
(function () { /* ... */ })();
これ、どう動くと思う?
onloadの関数にセミコロンがないから即時実行とくっついてエラーになる
window.onload = (function(){})(function(){})();
ってなるてことね。
そのセミコロンは省略しちゃ駄目なセミコロンだよ
ちなみに、当然↓なら問題ない
function hoge() { /* ... */ }
(function () { /* ... */ })();
>>617 お前の周りが糞なコードしか書けない自慢はしなくていいから。
自分で判断できないで言ってたのかよwww まじカスだわ
「window.onload = function」でググってみたらほとんどがセミコロンが無かったが、 セミコロンを記述しているサイトは皆jQuery関連だった。 まあjQueryのようにまねしているのか、本当に意味が分かって使っているのかはわからんが、 私は「window.onload = function() {}」に関しては付けない派だな。
>>622 この一連のレスの流れでそのレスはないわ。
糞コード書く奴はやっぱ日本語も駄目だな。
>>624 jQuery のまね?
セミコロンを省略しても多くの場合、問題なく動くというだけで、
本来はセミコロンを置く場所なんだが。
つけるのをサボる意味がまったくないな
>>625 お前は式と文の違いをぐぐってから出直せ
いちいち反論が低脳なんだよ
>>623 githubとかで有名なプロジェクトを見てみるといいよ。
一般的な規則としてセミコロンは省略しないことが多い。
>>627 > お前は式と文の違いをぐぐってから出直せ
恥晒し乙。
言葉を発すると馬鹿がばれると悟ったか。 憐れな末路。
632 :
Name_Not_Found :2012/08/25(土) 20:16:02.30 ID:xLhjGV46
いやあ、良いスレだ
>>627 コイツ何を考えて「式と文の違いをぐぐれ(キリ」とか言ったんだろうな。
辞書を引いても意味を間違って理解する
634 :
609 :2012/08/25(土) 21:33:15.79 ID:???
609だが色々調べてみた。長文だがすまん。
>>320 で説明してあるとおりだったが、
無名関数や即時関数と呼ばれるようになったのは2009年12月に制定された ECMAScript 5 からで、
それ以前では window.onload = function() {} のような文は「無名関数」とは言われなかった。
だから近日の状況(jQuery などのライブラリも含む)では無名関数に当たる文にはセミコロンをつける風習ができ、
昔はセミコロンをつける風習がなかった。
つまり
>>623 のように最近の jQuery を多様しているサイトではセミコロンをつける記述をしていて、
昔からあるサイトではセミコロンをつけない記述が多いのではないかと思う。
だから現在において
>>609 で window.onload = function() {} とセミコロンは不要と書いたのは
正解でも間違いでもないけど自分の勉強不足だった。
また、
>>619 の言うとおり、
window.onload = function() {}
(function() { /* ... */ })();
では
(function() { /* ... */ })();
しか実行されない。
この場合にセミコロンを記述しないようにして動作させるには
(function() { /* ... */ })(); // ここの ; はあっても無くても動作はする
window.onload = function() {}
と最後に window.onload = function() {} としなければ期待した動作はしない。
しかし、昔に作った window.onload = function() {} のような無名関数のイベントハンドラを使うコードに
今から全てセミコロンを付けるメンテナンスは必要かな?
色々調べてこれかよ
バグが発生する可能性があるからセミコロンを付けるようになったんだろ 正解どころか間違いにきまってんじゃん
638 :
Name_Not_Found :2012/08/25(土) 22:12:31.88 ID:uxAWyyim
自分を正当化させるためにとんちんかんなこと言い始めるなんて、可哀想。。。
少なくとも634は勉強不足って認めているわけだし、相変わらずの揚げ足取りだなw 関係ないリンク貼っているトンチンカンもいるし、文句言っている奴は説明できるのか?
関係ないリンクとか言ってる馬鹿は理解してないようだ
var hoge = function () {} (function() { /* ... */ })(); var hoge = function () { return function () {}; } (function() { /* ... */ })(); エラーになるのとならないの。 「自動セミコロン挿入規則」を分かってんなら好きにしろ。 分かってないなら、付けるべきところには全て付けとけって話しね。
これだけリアルでの低脳っぶりが伺い知れる奴も珍しい。 Number("Infinity") → NaN とか言ってた馬鹿と同じ奴かな。
その時のレスは知らないけど、Infinityなんかどうでもいいだろw 低能だの馬鹿だの2ch漬けはよくないな。昔はこのスレもまともだったのに
JSも利用者が増えてきたからなあ。荒れるのは仕方ないよ。
>>643 そう思うなら、下らんレスばかり拾ってないでまともなレスについてなんか書け。
この程度で荒れてると思う様ならこのスレには向いてないな。
テンプレ(1)を質問者以外にも適用させないといけなくなっちまうぞ
テンプレ? あの無駄な議論が続いて形骸化してる奴? グーグル検索にヒットする為以外に何かの役に立つの?
もちろん、テンプレ嫁で済むことはそう書くだけで済むんだからありがたい。 読まないでさらにつっかかってくる奴は以後スルーでいいでしょ。らくちん。
おいおいまさかPHPスレのあのクズ共がなだれこんできたんじゃねーだろな さっさと巣に帰ってろよボケ
おぇ、PHPディスってんじゃねえよ
node.innerHTMLで <input name="i[0]" value="value" type="text"> と表示されるnodeからnameの属性を取得したいのですが どういう風に取得すればいいのでしょうか?
node.innerHTML.slice(13, 17)
ホレ。 <!DOCTYPE html> <html><head><title>???</title> <script type="text/javascript"> function test() { var node = document.getElementById('d0'); alert(node.innerHTML); alert(node.firstChild.name); } </script> </head><body> <div id="d0"><input name="i[0]" value="value" type="text"> <button onclick="test()">Test</button></div> </body></html>
655 :
652 :2012/08/26(日) 16:49:54.37 ID:???
>>654 ありがとうございます。
なんとなくうまくいきそうです
>>654 それ、<div id="d0"> の後ろに改行があったりすると駄目になるやん。
node.innerHTML.match(/name=\"(.+?)\"/)[1]
今のところ正解一つもなし!
そりゃそうだろ、ここバカしかいないからな
660 :
652 :2012/08/26(日) 17:07:07.67 ID:???
for(i=0; i<node.childNodes.length; i++){ id = node.childNodes[i].name; if(id != null){ //略 結局こういう方向になりました。 今は正規表現の使い勝手の悪さに苦戦中
PHPer は予想の斜め上w
正規表現バカ
なんだかんだで正規表現が一番楽だけどな
var match = node.innerHTML.match(/\bname\s*=\s*(?:(['"])(.*?)\1|(\S+))/i); var name = (match)? (match[3] || match[2]) : ""; 正規表現でやるならこうかな。
node.querySelector('[name]').name
prompt(node.innerHTML, "name 属性入力")
prompt と eval でらくらくコーディング♪
>>657 >>662 >>664 正規表現使う奴は馬鹿だろ。ほんとひどいなw
なんでブラウザがやることをJSのレベルでやらなきゃならんのだ?本当に馬鹿ばっかりだな^^
決め打ち回答ばっかり。この手の質問は分かりやすくするために部分的に抜粋されることも多いだろうに
670 :
652 :2012/08/26(日) 19:15:33.87 ID:???
たくさんのヒントをありがとうございました。 結局、あまりそのまま使えるコードは無かったので自力で解決しました
>>639 この馬鹿は結局最後まで恥を晒して逃げたな。
馬鹿過ぎる。
式と文の違いをぐぐれ(キリ www
>>671 すげー粘着だwwwよっぽど悔しかったんだな
さすがにお前の存在が一番の恥さらしだろ
あ、いたんだ!ごめんごめん。 もちろん、本心じゃないよ。
675 :
Name_Not_Found :2012/08/27(月) 12:57:14.45 ID:aIcniAI1
iframe作ってその中に書いてごにょごにょするのはどうだろう documentFragmentでもできるのかな?
>>669 気の毒なおつむ…
自分で何も解決できないアホの言い分
>>669 こいつ、自分でロジック組んだりコード書いたことのない奴だろ。
コピペしか能がないから、コピペで使えるコードを求めてんだろうな。
その程度の回答しか出てこないから言っただけ。 改行一つでだめになるコード、挙句に正規表現の乱用。ひどすぎる
自分が分からないからって難癖ばっかりつけてても上達はしませんよ
弟子「先生、処女を貴重だと思う男は多いです」 孔子「その通りだ」 弟子「しかし逆に童貞は女に気持ち悪がられます」 孔子「確かに」 弟子「おかしいじゃないですか、何故このような意識の違いが生まれるの ですか」 孔子「それは一度も侵入を許していない砦は頼もしく、一度も侵 入に成功したことがない兵士は頼りないからだ」
まあまあ、究極のコードとやらを拝見して勉強させて頂こうじゃないか。 inputにidついてなくてどこにいくつあるかも分からないという条件でどうやって アクセスするのかちょっと楽しみだな。
>>679 >>669 で言ってることと違うんだが。
こういうところが、馬鹿が馬鹿たる所以なんだろうな。
「最後に罵った者が勝ち」大会の会場はこちらですか?
>>653-654 >>657 >>664 >>665 横からすまんが、
>>652 の質問なら nodeName, type はチェックするべきだろう。
innerHTMLで表示される、という表現は初心者なんだから「node 内の theInputElement@name を取得する」と考えるべき。
先に挙げた回答はほとんどがnodeの子要素は指定のINPUTのみという前提だし、そもそも html を
正規表現でごにょごにょするのはブラウザの仕事。ハイレベルな言語で HTML を文字列として解析するなんてめったにない。
ということで、DOMを用いて指定のINPUTを特定、name属性を取得する、この流れが一番自然でしょ。
>>682 IDが振られていないとうことは、その用途ではないということ。(一般的にね)
あの質問なら Input[type=text][name] という条件を満たす一番初めの要素を取り扱う。
いくつあるかもわからない、とあるけど"一般的な規則"としては、最初の要素を取り扱うのが普通。
JavaのAPIなんかを読めば"一般的な規則"は理解できるはず。どの言語でも共通の事柄だよ。
なんかもういろいろ面倒くさいな 自然とか一般的とかいったい何が言いたいのかさっぱり分からん javascriptの前に日本語を勉強してくれ
>>685 >>653 はネタ。
>>654 は <title>???</title> を見れば、このスレの住人なら推して知るべし。
>>657 は確かに回答としては至らない。
>>664 は「正規表現でやるなら」という前提付き。
>>665 は問題なく動作する。
nodeName, type はチェックするべきなんて判断は人それぞれ。
ただの要素を問わないname属性の取得に過ぎん
>>687 判断は好きにすればいいけど、そういうことを怠ると、一つ手を出せば動かなくなるコードの出来上がり。
先頭にname付きの要素を追加したらダメになるでしょ?さすがにこれは質問とは官界無いけどねw
>>657 ,664,665 これ全部一緒に見えるけど?
実際問題、質問する側としてはなるべく問題を分かりやすくするべきだよね。 たとえば先の質問なら、本当は node 以下に沢山のコード(html)があるんだけど、あえて わかりやすくするために取得したい要素のみを載せるとか。 そうしたときに、回答者側がその簡略化された状況ありきのコードを書いてしまうと、これはねえ。 回答以前に「教える」という意味合いならどっちとも言えないけど。
>>689 input や type を変えるかもしれないという発想はないの?
>>691 それは関係ないよね。俺が言ってるのは、
>>690 で書いたこと。
今回の回答は仮にも「教える」「ヒントを与える」と捉えるにしても、あまりにも逸脱してるから。
inputやtypeを帰るってそれは無茶すぎるだろw答えられねーよ
結局難癖付けてる奴がこれまでコードを示していない件について
>>692 あれだけの長文を書いておいて、まさかコードで示さないの?
696 :
Name_Not_Found :2012/08/28(火) 00:00:56.13 ID:ubHND4t8
>>693 同じnameの要素が追加されるのと同質の仮定だと思うぞ
>>689 「先頭にname付きの要素を追加したらダメになるでしょ?」
>>691 「input や type を変えるかもしれないという発想はないの?」
>>692 「それは関係ないよね。俺が言ってるのは、
>>690 で書いたこと。」
論旨のすり替え。
結局コードを示さず、ただ主張を推し述べてるだけだもんなぁ。
アホの吹き溜まりなんだから相手すんなwあんな質問にわざわざコードを示す必要もねーよ
> あんな質問にわざわざコードを示す必要もねーよ どこまでも恥を晒して落ちていく馬鹿を見るのはとても楽しいです。
>>652 の質問には「...と表示されるnodeから」とあるから、少なくとも要素名とタイプから
要素を特定する作業が必要だと思う。そこを抜きにして無差別に name 属性を取得するのは乱暴かな。
でも、
>>652 は一部抜粋みたいな断りを入れておいたほうがよかったのかもね。
最近は質問のたびに荒れてるような気がする。。
もうスレの無駄遣いすぎ。コード示さない限り以後スルーで。
■質問テンプレート 【サンプルコード】現象を再現可能な最小限のコードを書いてください。
さて、700ですが少し早めにテンプレ改訂案あればどうぞ。暴れる回答者もどきに 釘を挿したいという人は具体的な提案あれば。「他人の回答を批判する場合は自分の コードを晒しつつやること」とかね。(賛否ありそうだが今なら通るかもよ。)
>>685 コードを求められるとダンマリ?
ダサ過ぎる。。。
705 :
685 :2012/08/28(火) 00:26:12.60 ID:???
>>704 はいよ。何も難しいことじゃないし、単純に nodeName, type をチェックしようぜと言いたかっただけ。
var getName = function(node) {
var inputs = node.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
if (input.type == 'text' && input.hasAttribute('name')) {
return input.name;
}
}
return null;
};
var name = getName(node);
>>1 にライブラリスレを書いたほうがいいと思う。わざわざ
>>2 を見る人なんていないし
回答する前に質問者と具体的に仕様を決めておくとか追加しとけよ
スレ立てすると
>>1-2 にアンカーつけられただけで返信ってのが来るから
ビクビクビックリンしちゃう
>>706 既にテンプレの
>>1 は行数いっぱいだと思われ。ライブラリスレだけ言及すんの?
>>705 それ、自分自身が考えた条件で、IE6, 7, 8 で動作しないよね。
input.getAttribute を使えば問題ないが。
<div id="d0">
<input type="search" name="foo">
<input type="text" name="bar">
</div>
やっぱ、マジ回答でその程度やん。
なんてエラー?
ろくにコード書いたり他人のソース読んだことないんだろうな。 このケースは、jQuery のソースに書いてあるけど。 ご愁傷様。
713 :
685 :2012/08/28(火) 01:01:19.46 ID:???
ほんと、コノスレには重箱の隅つつく奴しかいないな。 せっかく教えてやってるのに聞く耳もたないんなら、もう来ないわ。
>>685 質問者自身が
>>660 ってやってるんだから、それを尊重したほうがいいんじゃね?
一番最初に出てくる要素…だろう。
自分で条件出しといて重箱の隅とかw もう来ないなら良かった良かった。
>>705 んー
>>685 でセレクタを例示しているのに、なんでそこからDOM探索するコード書くん?
querySelector() (あるいはjQueryとか) 使いたくない派?
自分でハードル上げといて、それに力量が付いていってないだけ。 あれだけ振られた挙句、結局、自分の出した条件で正しく動作するコードを書けなかったという。 最後に残した言葉が「コノスレには重箱の隅つつく奴しかいないな」 滑稽だわ。
718 :
Name_Not_Found :2012/08/28(火) 02:40:11.43 ID:XAeL+QnU
おまいらわかりづらいからID出すか名前にレス番入れろよ 質問者に要求するのと同じ理由で
719 :
718 :2012/08/28(火) 02:44:11.11 ID:???
なんつって言ってみたり
720 :
718 :2012/08/28(火) 02:54:09.74 ID:???
721 :
718 :2012/08/28(火) 03:18:36.43 ID:???
722 :
718 :2012/08/28(火) 03:31:06.93 ID:???
けんかをやめて〜二人をとめて〜 私のために〜争わないで〜
723 :
718 :2012/08/28(火) 05:30:26.52 ID:???
結局横やり入れてる奴は、文句は一人前だけどコードは半人前ってことだな アホらし
テンプレにスルー力とか入れた方がいいんじゃね?
技術系のスレがこんなんじゃ、日本の技術力が落ちてるのも仕方ないな。
匿名性に甘えて好き放題だからな
2ch で日本の技術力www こんなバカの方が心配だわw
サウンドファイルをプレロードさせる方法を教えて頂けませんか? new Image().src="XX.jpg"; イメージファイルのようには簡単にはいかないのでしょうか?
729 :
728 :2012/08/28(火) 17:25:53.50 ID:???
プリロードです・・・
audio要素
731 :
728 :2012/08/28(火) 17:46:47.12 ID:???
<script type="text/javascript"> <!-- var audio = new Audio(); audio.src = "../audio.mp3"; // --> </script> これではダメでしょうか? プリロードされてるかどうかってテストでは分かりづらくて・・・
Firebugの「ネット」タブとか色々あるじゃん
733 :
728 :2012/08/28(火) 18:24:53.17 ID:???
<script type="text/javascript">
<!--
var audio = new Audio("../audio.mp3");
// -->
</script>
単純にこれで行けるでしょうか?
といってもIE6,7では効果なしなのでしょうか?
>>732 紹介ありがとうございます。調べてみます。
非同期通信にもSSLって適応されるのかしら?
735 :
Name_Not_Found :2012/08/28(火) 19:03:12.12 ID:z6gZhnkC
【環境】IE9 Firefox Chrome Safari 【期待する結果】サイト内部を移動するときはalertを出さす、タブを閉じたりするときだけalertを出したい 【サンプルコード】 上のほうでonbeforeunloadについて出ていたのですが質問させてください。 <script> window.onbeforeunload = function() { alert(\"Before Unload\"); return false; } </script> こういうスクリプトを埋め込んで移動するときにalertを出しているのですが、リンクで移動する際も出てきます。 リンクを移動する際は出ないようにすることは可能ですか? aタグにonbeforeunloadが無効にするようなものを埋め込めればいいかと考えていますが、どういった形で埋め込めばいいのかがよくわかりません。 識者の方の助言をもらえると助かります。
aタグにonclickつければ?
738 :
Name_Not_Found :2012/08/28(火) 22:51:40.23 ID:ubHND4t8
>>735 a要素のclickイベントでフラグでも立てれば良いです
739 :
Name_Not_Found :2012/08/28(火) 23:35:55.23 ID:o9B55mZB
これって無効にするようなフラグってあんの?
window.onbeforeunload = undefined; でいいんじゃね?
>>741 大抵のブラウザは Enterキーでもclickイベント発生すると思うが。
もし発生しないようなブラウザならonkeypressにも仕掛けたらいいんじゃね?
743 :
Name_Not_Found :2012/08/29(水) 03:29:48.26 ID:ANS6RN6o
本日ACTAが強行採決予定。2ch、同人、ヲタ文化、Twitter、YouTubeこれにて終了。本当にありがとうございました。ネット楽しかったよ…
744 :
Name_Not_Found :2012/08/29(水) 03:43:08.49 ID:0f1rgn9o
やりたいこと n進数からm進数への直接変換 やりたい理由 10進法を経由すると大きい数のとき、 int型の関係で桁落ちしてしまうから。 非常に大きい値を使っているため、 parseIntが使えません。 もし、いい方法があれば、 スクリプト無しのアルゴリズムだけでもいいので、 教えてもらえませんか?
10進法経由する時にintじゃなくてstringとか使えばいいんじゃ
別にデータの表現は文字列でも配列でもいいだろうけど、アルゴリズムが面倒だよね。
747 :
744 :2012/08/29(水) 10:14:40.83 ID:???
>>745 それだと、結局既存の方法ではできず、
10進数を経由するメリットがなくなってしまいます。
一応、今考えているのが、
1進数ずつずらして行く方法。
36進数→35進数→34進数→...
これだと、差が少ないので100桁とかでも、
位ごとに計算していけば、扱えなくはなさそうです。
748 :
744 :2012/08/29(水) 10:20:02.33 ID:???
>>747 すみません、書き加えです。
既存の方法とは
parseInt(num,n).toString(m)
(num=変更したい数
n進数からm進数へ)
のつもりで書いています。
なんか複雑な方法を検討してるみたいだけど、 10進の浮動小数点数を経由するだけじゃ駄目なの?
750 :
744 :2012/08/29(水) 10:34:43.79 ID:???
>>749 すみません、やりたいことをしっかり書かなかったのがいけなかったようです。
10進数+区切り文字aでいくつかのデータを、
まとめて一つの文字列にしてしまおうと考えています。
その際に、データの量が多いので、
11進数から36進数に変換して、
少しでも短くしたいのです。
そのため、わずかな誤差も生じさせられません。
>>750 実際に浮動小数点数でやってみたら誤差が出たの?
752 :
Name_Not_Found :2012/08/29(水) 11:16:38.14 ID:A2nDJPG4
753 :
744 :2012/08/29(水) 11:20:07.93 ID:???
>>751 はい、残念ながら。
>>752 諦めてそちらでやってみます。
みなさん助言ありがとうございました。
>>744 >>752 が妥当だと思いますが、あえてやるなら小さな桁で分割して後で足し込んでみてはいかがですか?
進数の変換ではなく圧縮・解凍みたいな手続きでは駄目なの?
BigIntegerのライブラリならいろいろあるよ。 その中で基数が変えられるのを選べばいいのでは。
757 :
Name_Not_Found :2012/08/29(水) 15:41:37.42 ID:AuUgIndI
以前、ここで答えた質問が外注先の人が書いたものだった なんか複雑な気分…
あのさあ、11と36と決まっているんだから、11*36 = 396 進法に変換したら 簡単でしょ。もっと簡単に言えば元データの36文字を出力の11文字に変換 するわけだけど。しかし改行位置も保存するんじゃないの? そしたら12進法 だよなあ。
ここ日本語が不自由な奴が多すぎる
760 :
Name_Not_Found :2012/08/29(水) 21:19:12.44 ID:A2nDJPG4
>>758 まず落ち着いて考えろ。
データ量減らすためって言明してるんだから、396進法じゃ逆にデータ増えるだろ。
36進法もどうせ数字+アルファベットって事なんだろうな
貴重な意見ありがとうございました。 とりあえず、元のデータを縮めるなど、 色々やった結果、600文字から500文字くらいまでは減らせました。 復活の呪文のようなものなので、 もう少し減らせるように努力してみます。
圧縮しろよ・・
62進数でいいから流行しねーかな CPUやHDはどんどん進化してるけど、通信量は最近ほっとんど進歩してなくてサーバー運営最大の障害になってる
gzip圧縮しろよ・・
>>764 62進数って気持ち悪い
せめて64進数にしてくれ
BMP内の漢字だけでも2万文字はあるから、 16384進数とかいけるぞ。
600から500?UTF16なんだから普通に4ビットずつ詰め込むだけで150になるだろ。
>>765 よく分からなくてやっていなかったのですが、
圧縮した結果78文字まで減りました。
本当にありがとうございます!!
770 :
Name_Not_Found :2012/08/30(木) 00:16:29.46 ID:arvcD2v0
まさに下手の考え休むに似たり
772 :
Name_Not_Found :2012/08/30(木) 11:36:17.66 ID:P14cNooc
<html> <body> <script> if( res == false ) { alert('false'); } if( res == true ) { alert('true'); } </script> <a href="a.html" onclick="res=confirm('クリック');">test click</a> </body> </html> これは「OK」「キャンセル」によってalertでtrueかfalseを表示するイメージなんですがこういうのは無理なんでしょうか?
>>772 それだと、クリックした際に、
resって変数にダイアログの結果(true,false)を代入するだけ。
スクリプトに書いた処理を実行したいなら、
その処理をクリックした際に呼び出さないといけない。
775 :
Name_Not_Found :2012/08/30(木) 13:08:43.24 ID:7gK4eZGV
>>772 ほい。
<html>
<head>
<script type="text/javascript">
function YesNo() {
var res = confirm('test');
if( res ){
alert( res );
}else{
alert( res );
}
};
</script>
</head>
<body>
<a href="#" onclick="YesNo()">test</a>
</body>
</html>
777 :
772 :2012/08/30(木) 15:27:42.77 ID:P14cNooc
みなさんありがとうございます。 関数じゃないとダメなんですね。いけそうな気がしたのは気のせいでした。 すいません、あともう1点だけ質問させてください。 <script> function tes() { return confirm('移動します'); } </script> <form method="post" action="a.html"> <input type="submit" value="to A" onclick="tes();"> </form> confirmでキャンセルしてもa.htmlへ飛ばされるんですがこのキャンセルは効かないことがあるんでしょうか?
preventDefault()とかを勉強する。でも洩れ的にはどっちかというと、 input type="button" を使い、 test() の中で提出してよい条件の ときだけ form の submit() を呼ぶ方が分かりやすいと思う。
少しは自分で考えろって意味を込めてるんだろ多分
>>779 ないけど、772がやりたいであろう条件分岐は多分こんな感じじゃない?
>>777 onclick="return tes();"
のように値を返さなきゃ。
でも、formのonsubmitを使うほうがいいと思うけれど。
JavaScriptを切っている場合には送信させたくない場合は >> 778 かな。
昔、削除の可否をJavaScriptで聞いてくるシステムがあってだな…
<?php infophp() ?>
JavaScript初心者です 以下のプログラムでnav01.gif〜nav15.gifまでの画像を マウスオーバー用に配置したいと思っているのですが、 nav09.gifまでしか読み込んでくれません nav0'+num+'.gifをnav'+num+'.gifにしたらnav10.gif〜nav15.gifまでしか 読み込んでくれませんでした。 みなさまどうかお力を貸してくれませんでしょうか? $(function() { var num = 1; $('#nav1 li') .each(function(){ $(this).css('background', 'url(sub/nav0'+num+'.gif) no-repeat 0px -25px') num++; }) .find('img').hover( function(){ $(this).stop().animate({'opacity' : '0'}, 500); }, function(){ $(this).stop().animate({'opacity' : '1'}, 1000); } ); });
nav'+('0'+num).slice(-1)+'.gif
-2だった
>>785 きちんと全画像読み込みました!
本当に本当にありがとうございました!
そういうのはjavascriptじゃないでそ
790 :
Name_Not_Found :2012/09/01(土) 07:44:26.15 ID:QCEsEuXs
>>788 サーバ側でやることだな
PHPとかRUBYとかがちょこっと出来ればサクッと作れる
792 :
Name_Not_Found :2012/09/01(土) 14:52:48.31 ID:z8Dxom31
'a'.split('a'); //['',''] ''.split(''); //[] この仕様は矛盾していませんか
>>792 >''.split('');
[,,,,,,,,,,,,,,,,,,,,,,...
ってなるよりはマシじゃない?
どういう結果が返ってきてほしいのか書かんと
795 :
Name_Not_Found :2012/09/01(土) 16:20:31.99 ID:z8Dxom31
>>793 どういう実装したらそんな結果になるんですか?
796 :
Name_Not_Found :2012/09/01(土) 16:27:34.47 ID:z8Dxom31
ああ、すみません。勘違いでした。さようなら。
何を勘違いしてたのか書かんと
IRCのスプリクトについて質問したいのですが、このスレで合ってますか?
合ってるよ
IRCで「AOC枠」と発言すると、ニコニコ生放送からAOCタグの付いた放送を検索して
その結果を一覧表示するスプリクトを見よう見まねで作りました。
テストしてみたところ、1回目はうまく動作するのですが、時間を置いてもう一度検索させようとすると
別の放送枠に変わっているのに検索結果が1回目の時のままで更新されずに困っています
JavaScriptは全くの素人なので何が悪いのか検討も付かないので、皆様の力をお貸しください
よろしくお願いします
http://jsdo.it/mous/o4cg
800なったので、テンプレ変更案ある方どうぞ。
>>801 JQuery
prototype.js
も仲間に入れろ
おk
それはライブラリスレに任せたらどうか
jQueryはココまで浸透しちゃったからなぁ。 スレ分けると人少なくなるしココでもいいんじゃないか?
よくないから分かれたんだよ 事情知らないで口挟むなカス
prototypeはいらないわ
ではjQueryの参考文献だけリンク集に追加?
Node.jsは放置プレーかよ
アレはJavascriptなのか? 確かにJavascriptだけど
今までどおり誘導すりゃいいんじゃないの
Node.jsとか、ライノみたいな奴も別で良いと思う Canvasもそうなったし
javascriptでyoutubeを検索してyoutubeの動画idを取得したいと思っています
var req = new XMLHttpRequest();
req.open('GET', '
http://gdata.youtube.com/feeds/api/videos?vq= '+keyword+'&max-results=1', true);
req.onload = function (event) {
get_Youtube(req);
req = null;
}
function get_Youtube(xmlhttp) {
var responceXML = xmlhttp.responseXML;
}
でXMLを取得したまではいいのですが
この後変数にyoutubeの動画アドレスだけを入れたいのですが
方法がわかりません
responceXML = responceXML.getElementsByTagName('id');を試したのですが
IDの部分のXMLを取得するだけでダメでした
特定のタグの中身をとるにはどうしたらいいのでしょうか?
DOMの勉強をすれば分かるようになると思うけど。とくにnodeValueとか。
815 :
800 :2012/09/02(日) 20:24:15.43 ID:???
自己解決しました。 キャッシュを読み込んでいただけのようです
自身のウェブサイトwww.xxx.co.jp上の全てのimgにおいて 非同期で読み込み中にloading.gifを表示させるようにしたいんですが、 どなたか簡単なスクリプトで教えてもらえないでしょうか? どのサイトを見てもタグで要素指定しないといけない物ばかりなので。
は? 簡単だろ DOM勉強してこいカス
location.hrefもしくはwindow.openで別のページを開いて
その先で任意のスクリプトを実行する方法はないものでしょうか
location.href="
http://example.com ";
〜ページ移動〜
alert(document.domain); //example.com
のようなことをやりたいと思っています
>>818 DOMっていうヒント出したのになんだその態度は
皆こいつスルーでいいぜ
俺が許可する
>>820 ちょっと煽られただけでファビョるなよ
お前かなりダサいよ
>>822 ファビョるって何?
お前がレス返してきた時点で大満足^^
少なくともお前にダメージ与えることできたしね^^
> (1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
簡単なスクリプト教えてって(笑) 丸投げ(笑)
バカは徹底的にバカにする必要があるからな 少しぐらい叩いてやらないと成長しない 甘やかしすぎだ 俺の回答は煽りや嵐じゃなくてアドバイスなんだよ お前らわかるか?
>>1 で「■質問を書く上で」とあるけど、質問者に限定しない表記にすべきなんじゃないかな
でないと勘違いするやつがいつまでもなくならない
はい。全然わかりません
>>826 回答者も甘やかしていいはずないだろ
他人に厳しく自分に甘い人はこれだから困る
>>827 これでどうだろう?
内容事項は質問者に限定していないからタイトルを変更するだけで該当者は増えるはず。
■質問を書く上で
↓
■投稿時の注意事項
832 :
Name_Not_Found :2012/09/03(月) 13:55:18.45 ID:J2j4CQ73
>>826 どんな世界で育ったんだよ…
それはそうと、煽ったりするときはせめてIDだせよ
まあまあお前ら落ち着けよ さすがに丸投げはねーよ 俺は甘やかすのが大嫌いなだけだ もう少し自分で解決してみようという誠意が見えたらマシな回答してやんよ どんな世界? そうだなぁ バカが沢山いて、まじめに勉強するとおい何勉強してんだよっていうクズが沢山いる世界
偉そうな人だ 甘やかされて育ったんだろうな…
836 :
819 :2012/09/03(月) 14:23:26.10 ID:???
>>821 レスありがとうございます
window.postMessageについて調べたら送信できるのは文字列のみで
819のようにプロパティを含むことはできないようです
更に受け取り側もスクリプトで待ち受ける必要があるみたいでした
調べているうちにドメイン間の通信は本来行えないとあり
そもそもやろうとしていた事はどうやら仕様上無理そうでした
一旦
>>819 は取り下げたいと思います
質問者が輝いて見えるぜ・・
いい加減、
>>3 は廃止してURLのみでいいと思うんだけどどうかな
外部URL化すると見ない人がいるってことだったけど最近では
>>3 が有効活用されたケースは見てない
回答者向けテンプレを作ればいいんじゃないの
>>841 あなたのは独り言?誰かにレスしてるの?レスアンカーつけないのはなぜ?
「〜すればいいじゃない」ってのは誰かに対するレスポンスでしょ?
他に該当しそうなレスがなかった
実際あんな長ったらしいもの見てから質問する人なんていないだろうし、
中身からすれば回答者の最低ラインみたいなもんでしょ
・
>>3 を読んでから回答しろ
・
>>3 を読めばわかるものは
>>3 に誘導しろ
みたいなテンプレにすればいいんでないのって意味
1レスだし別にあの程度はあってもいいんでないの
>>843 はじめから誘導ありきなら外部URL化して何の問題もないと思う
回答者に促すのは良案だと思うが、.
>>3 を残すかは微妙なところだな...
外部のやつはサンプルソースもリンクもあってわかりやすいんだが、
質問Noが
>>3 と合ってなくてめんどっちいし、
>>3 をやめて、
その外部のを拡充して使うのでいいんじゃないかな
ただ英語版のドキュメントにリンク貼ってるのは、
できれば日本語にしてほしいところ 無いのは仕方ないが
847 :
816 :2012/09/03(月) 16:42:59.46 ID:???
>>817 私はレスしてません。
が、これ以上アドバイスいただけないですかね。
<script></script>にこれを追記すれば全ての画像が非同期読み込みになる。
という方法をいくらググっても出てこないので。
俺も <script></script>にこれを追記すれば引きこもりから脱して就職でき彼女ができて童貞卒業して結婚できる。 っていうのないかずっと探してるけど見つからない。
850 :
Name_Not_Found :2012/09/03(月) 17:51:12.64 ID:QJNbmjoI
>>847 適切で端的なアドバイスがあるじゃん。頭腐ってるの?
いちいち煽るなよ
>>847 createElement して appendChild すればいいだけだと思いますが、どこで迷ってるんです?
基本的過ぎて迷っている部分がわからないんですが。
> 私はレスしてません。
>>1 のテンプレ通りに質問すれば防げた問題なんですがね。
853 :
Name_Not_Found :2012/09/03(月) 18:18:25.40 ID:O4THBWcd
>>847 ペッと貼るだけで何とかする方法は見つからないわけじゃん?
んで、それを紹介するのはこのスレではないとテンプレにあるじゃん
でも、画像一個だけそれをやる方法はいくらでも見つかったでしょ?
そしたら、それを全部の画像に適用する方法を自分で考えて
わからない部分をこのスレで質問すればいいのよ
そうじゃなくて、自分では頑張るつもりはないよ!だれか俺のためにJS書いて!
ていうつもりなら、そういう人向けに「手取り足取りスレ」ってのがあって
というか以前に俺が立ててpart4くらいまで行ったんだけど
もうないから、あきらめれ
selectタグでドロップダウン選択した時、同じ物を選択するとonchangeの関数はコールされませんが、選択した値が同じでも、選択のたびに関数をコールバックしたいのですが、良い方法はあるでしょうか?
855 :
Name_Not_Found :2012/09/03(月) 19:30:06.32 ID:ELKUGD5A
JSの質問と言っていいかどうかわからんのですが 「JAVAとJavaScriptはメロンとメロンパンくらい違う」 みたいな表現がほかにあったら教えてください 皆さんならお仕事でそういったお話をされることも多いかと思いますので
856 :
Name_Not_Found :2012/09/03(月) 19:33:01.24 ID:O4THBWcd
857 :
Name_Not_Found :2012/09/03(月) 19:36:20.06 ID:O4THBWcd
>>855 仲の良いお客さんに
まったくそのまま言ったことがあってワロタ
>>855 wikiとwikipediaくらいに違う。
桃とモモンガくらい違う
>>816 [].forEach.call(document.getElementsByTagName("img"), function(node){
var img = new Image();img.src = node.src;node.src = "loading.gif";img.node = node;img.onload = function(){this.node.src = img.src; }
});
lowsrcは後から指定しても駄目なんだな・・
864 :
855 :2012/09/03(月) 21:52:47.36 ID:ELKUGD5A
>>857-863 ありがとうございます
ちょっとおもしろいのもありがたいのですが
できればビジネスでも使える、わかりやすい表現があったら助かります
ズブの素人でもピンとくる感じの
漏れも
>>843 に賛成でさ。というのは、
>>3 程度の質問が出てそれをとくとくと
偉そうに回答してる奴を想像してると耐えられないので。「何ちんたら回答してるんだ、
テンプレの
>>3 嫁で終わりだろ」とか言いたいわけ。
今のところ候補はこんなところか
(回答者に誘導を促すのは全体的に賛成な感じ)
1. 外部URL化 >838
2. 外部URL化しつつ回答者に誘導を促す
3.
>>3 は残しつつ回答者に誘導を促す >843
4.
>>3 は外部URLのものに差し替える >846
変えること前提なのがおかしい どこか問題が生じたら都度変えたらいいだけ 基本は現状維持だろうに
FAQを外部サイトにまとめようとした仕切りたがり君が登場したあたりからおかしくなったよなこのスレ
>>870 機能してない?
一度それ削除されたことあって同じ質問が出るから復活した経緯も知らないの?
機能してるからこそ
>>3 に関する質問が減ったんじゃないか
本当に機能してない状態は
>>3 があっても同じ質問が延々と繰り返されることだろ
テンプレ質問を抑制する効果があったのなら
>>819 の質問はなかったんじゃない?
自治厨はテンプレを変更することが唯一の自己顕示だから仕方がない
しかし、回答者が
>>3 に誘導して質問者が理解できるのかは疑問だな
煽ってるのは自演くさい
コンポタ めんたい たこやきだろ
>>3 が消えて同じ質問が増えたってどのスレの話でどれぐらい増えたんだろう?
過去ログ見えなくなってるからわからない
>>874 テンプレの質問が一切ない質問スレがあるなら教えてくれ
何度も繰り返されるからこそのテンプレになるんだろ
いつまでくだらねーことやってんだよwww
1レスでも消えるなら入れとけば良いんじゃね
>>880 そんなスレないと思うけど「少なくなった」というならデータを示すべきだと思うよ
2chでそんなデータなんか取れるわけないだろ おまえの頭ん中どうなってんだよ
>>872 そんな経緯ねーよ。
少なくとも 2009/04/14 以降は。
過去ログ全集が見えればデータ取れるでしょ。なにしろこのスレの開始以来全部 そろってるんだから。
すんません JavaScriptの本で中級〜用の本を買おうと思うのですが オライリーのJavaScript 第6版の日本語訳と 技術評論社のパーフェクトJavaScript、 今1冊だけ買うとしたらどっちがいいでしょうか? 気にしてるのは情報の新しさと網羅性、読みやすさなのですが
読みやすくはないが前者
現在読める過去スレの終りの方(1年前〜2年前くらい)からテンプレ
>>3 への
言及を探してみた。
vol. 86 257, 394, 397
vol. 85 528
vol. 84 303
vol. 83 578
vol. 81 33
まあ、1スレにつき1回くらいは言及されているというか。ほかに
「
>>3 」とは書いてないものもあるかも知れないね。なお、テンプレ
論議の中で言及されているものは挙げてない(当然)。
ホレ。もっとちゃんとドキュメント読まないと使い物にならないでしょ。 <!DOCTYPE html> <html><head><title>???</title> <script type="text/javascript"> function check() { var s = window.getSelection().getRangeAt(0).startContainer; if(s && s.nodeType == 3) { alert(s.nodeValue); } } </script> </head><body><div onmouseup="check()"> abc<br>def<br>ghi<br>jkl </div></body></html>
894 :
892 :2012/09/05(水) 01:41:48.26 ID:???
>>893 試したら見事動きました、ありがとうございます!
色んなサイトでIEはwindow.getSelectionが動作しないとあった為
端から試さずにいた不精がよくなかったみたいです。
お陰でFirefox用に書いたコードをそのまま流用できそうです。
>>854 jQueryの関数かなんかであったような…
896 :
816 :2012/09/05(水) 10:14:18.78 ID:???
>>861 ご親切にありがとうございます。
しかし、
<script type="text/javascript">
<!--
[].forEach.call(document.getElementsByTagName("img"), function(node){
var img = new Image();img.src = node.src;node.src = "loading.gif";img.node = node;img.onload = function(){this.node.src = img.src; }
});
// -->
</script>
ではbody内のimgの非同期読み込みをしてくれませんでした。
きっと私の書き方が間違ってるんでしょうね。
897 :
Name_Not_Found :2012/09/05(水) 12:58:53.69 ID:wzXGTgeY
オススメのテキストエディタってあります? メモ帳だとUTF-8だとBOMがついてしまうのでUTF-8Nの保存ができなかったり BOM対策にez-HTMLというのを使ったんですが、今度はUnicodeに対応してなくて・・・。
899 :
Name_Not_Found :2012/09/05(水) 13:25:22.38 ID:wzXGTgeY
おお、配色が格好良いので気に入りました。 ありがとうございます!
セレクトボックスを画像を使って綺麗にしたいのですが、オススメのライブラリはありますか?
901 :
Name_Not_Found :2012/09/05(水) 13:47:37.29 ID:Rq52qsQv
>>898 mi一筋だったけど、ちょっとかっこいいかも
黒い背景にプログラミングコードってハッカーっぽいよね
>>900 それCSSじゃね?
>>902 CSS3使わないとできないのでクロスブラウザ考えるとjsでやりたいのです(´・ω・`)
904 :
Name_Not_Found :2012/09/05(水) 20:20:18.67 ID:Bqj6QgJS
jqueryについてアドバイスお願いします <img src="b_start.gif" id="btn" /> にたいして、このボタン画像をクリックしたら別の画像(b_end.gif)に置き換えたいと思います $("#btn").click(function(){ //ここでどうやってこのおしたボタン自身を変更したら良いのかわかりません //あらかじめクリック後に置き換える画像をcssでhiddenにして //表示させるならできますがそれとは違うアプローチを学びたいです }); どうやったら良いんでしょうか、よろしくお願いします
$('#btn').click(function () { $(this).attr('src', 'b_end.gif'); });
906 :
Name_Not_Found :2012/09/05(水) 20:38:31.70 ID:Rq52qsQv
>>904 そのfunctionの中ではthisがimg要素を指すから
srcプロパティを書き換えたり、上に別の要素を重ねたり
煮るなり焼くなり好きなようしてみるといいよ
this(=img要素)にjQueryのメソッドを使いたかったら
$(this)のようにしないとダメよ
> お前は式と文の違いをぐぐってから出直せ 定期恥さらし
>>905 ,906
おお、ありがとうございます!
thisってこう使うんですね、やっと理解できました
jqueryは別にここで良いって話にならなかったか?
なってないよ
いいよ 俺様が許可する
あっちが潰れるまではちゃんと誘導しような
俺も許可するぜ
で、結局、テンプレをどうするかはまた決着がつかず?
専用スレがあるのに使わないとかないわ きちんと誘導してこっちでは質問に答えないようにせい
ライブラリスレは勝手に立てられた状態でこのスレ的にはライブラリの質問を禁止してない
918 :
Name_Not_Found :2012/09/06(木) 15:43:16.27 ID:pU7MTyN1
>>904 は、ガワはjQueryだったけど
質問の内容はjQuery関係ない気がする
やっぱりアホはアホだなw
>>639 > 少なくとも634は勉強不足って認めているわけだし、相変わらずの揚げ足取りだなw
> 関係ないリンク貼っているトンチンカンもいるし、文句言っている奴は説明できるのか?
こういう無学の馬鹿がネットでいきがってるの見ると切ないな。
まだ粘着してんのかよwww
あ、まだいた!ごめんごめんw 本心じゃないよー。
ここに居ついてるみたいだからついからかいたくなっちゃうんだよねw
<label for="aaa">文字</label>の文字の部分をjavascriptで書き換えたいのですが、どう記述すればいいのでしょうか? firefoxですので、innertextは使えないみたいです。
じゃあinnerHTMLで。
@、Aでhtmlエスケープする必要があると思いますが、@とAでエスケープの内容は違うのでしょうか? <select> <option value="@">A</option> </select>
どっちも>と<と"でいいんでは。
928 :
Name_Not_Found :2012/09/06(木) 18:02:58.58 ID:pU7MTyN1
>>926 >htmlエスケープ
これがオレオレ用語なので、何を指しているのかを詳しく
929 :
Name_Not_Found :2012/09/06(木) 18:03:34.73 ID:pU7MTyN1
ああそういうことか お恥ずかしい....///
いやまあ、本当の名前は「文字エントリ」だよね。でもあんまり使わないから 確かに知られていない。
あいかわらずバカばっかだな
なんの情報もないレスしか書かない奴よりはましだろ。 だいたい何のために質問スレがあるの? 分からない人が質問してそれに 対して教えてあげるためだろ。それを否定するんなら来るなって感じ。 2ちゃんねるらしい煽りでしたー。
10日以上も前のレスに今更粘着するって粘着厨って怖い(*´・ω・)(・ω・`*)ネー
馬鹿は晒されるべきと思ってるだけ。
935 :
Name_Not_Found :2012/09/06(木) 19:30:37.42 ID:k/ZPSEKG
晒してるつもりの奴ほど実は自分が晒しものなんだぜー。
論理的根拠のない、言ったもの勝ちの思考回路。 朝鮮人かな?
オマエモナー
論的根拠がないといいつつ、その次の行でとか プログラマーには向いてないな
>>939 「朝鮮人かな?」は個人の感想なんだが。
日本語の不自由ぶりからすると、やっぱ朝鮮人かな?
ついにJavscriptスレにもネトウヨが沸いてしまったか
常駐スレにネトウヨが湧いてきた時の絶望感ってスレがあったがその意味を今知った
朝鮮人、アスペ、ブーメラン なんか本当に一人で頑張ってるってよくわかるワード集だな
「朝鮮人」という単語にイヤに過敏に反応してる奴がいるな
スルーしろカス 病人にかまうな
関係無いスレで朝鮮人ガーとか言いだすからネトウヨって嫌われてるんだよ
ネトウヨという単語の意味を知らずに使ってるのか。
夏休みは終ったんじゃないのかよ。
> 論的根拠がないといいつつ、その次の行でとか > プログラマーには向いてないな この自己言及は深いわ
夏休みが終われば、今度はニートの出番です。
うわ…「朝鮮人かな」の一言だけでネトウヨ認定 これが 2ch 脳ってやつか
955 :
Name_Not_Found :2012/09/07(金) 11:25:18.57 ID:7ug2QiOS
よそでやれ せめてID出してやれチキン 出来ればJSで書け
馬鹿が一匹参戦希望してる様です。
よそでやれ せめてID出してやれチキン 出来ればJSで書け
ちゃんとセミコロン付けろよ
タグ名に数値なんて使えないだろ
965 :
Name_Not_Found :2012/09/07(金) 14:37:27.19 ID:XKICsIEA
せめてIDが出ていればセレクタが書けるのにな
966 :
964 :2012/09/07(金) 14:38:54.87 ID:???
ちなみにウンコ出したり引っ込めたりしてるとすっげ気持ちいいのな たまにパンツに紅色付くけど癖になってやめられん
$("#NineSixTwo").sine();
しかしこんなたかが2ちゃんの1スレ荒らして自分で情けないと 思わんのかね。目新しくも何ともないし、ケツの穴小さいと思われる だけだろうに。
>>968 煽ってんじゃねーよカス
てめえも荒らしと変わんねーんだよ
もちろん洩れもカスですけどそれが何か。2ちゃんで煽るなって あんた本当にアホだな。
>もちろん洩れもカスですけどそれが何か。 こういう奴いるわ。 リアルで屑。
この文脈なら、 「荒らしを非難しつつ、その実、荒らしを煽る様なまねをするな」 と解釈すると思うんだが。 それに対して「2ちゃんで煽るなって…」という返答は適切なのか? ま、俺の解釈が少数派なのかもしれんが。
$(this).closet().find('.res:eq(972)').sine();
別に荒しを非難はしてない。ケツの穴が小さいとか悪口を言ってるだけ。 荒らしたければ荒らせば、でもそしたら俺もお前に粘着して煽ったるで、 そういうことさ。
376 名前:名無しさん@12周年[] 投稿日:2012/03/26(月) 23:40:53.22 ID:Rd887ASo0 在日一世や二世は自分たちのルーツを知っています。 済州島と大阪を結ぶ定期便の名前が、 【きみがよ丸】だったからです。 日韓併合時代の済州島民にとってきみがよ丸の名前を知らない人はいなかったでしょう。 この船の名前がおおっぴらになると在日朝鮮人達に何が起こるか。 強制連行がウソであるという動かぬ証拠がきみがよ丸。 (この出稼ぎ用の定期航路は大人気で、のちに第二きみがよ丸も就航するほどだった) ・詳しく調べれば、きみがよ丸に乗ってきた善良な人達はあらかた帰還事業で 帰国したことが解る。 ・さらに調べれば、朝鮮戦争当時に日本へ密入国してきた朝鮮人達がクローズ アップされる。 ・もっと調べれば、李 承晩ラインの時に釈放された在日の凶悪犯達のことも 白日の下に晒される。 ・つまり自分たちの先祖達が凶悪犯だらけってのが。 実に論理的に判明してしまう。 在日朝鮮人達がなんとしても隠し通したい上記のことを、 君が代を聴いたり目にしたりするたびに思い出してしまうから 君が代をあそこまで憎む理由。 在日は君が代のメロディでも歌詞でもなく、 【きみがよ】という4文字を見たり聞いたりするのが何よりもイヤだったのです。 君が代の出だしを聞くだけで自分たちの祖先が悪人であると思い知らさる。 それが日本人にばれるんじゃないかと気が気ではない。 君が代の歌詞カードなんかを見ても同じ心境になる。 君が代で血圧上がるとか幻覚見えるとか言う奴は精神病じゃあなくて上記の心境ゆえなのです。 だから何としても日本の国歌を君が代から別の物に変えようと しているのです。
スレ立て人です。私、ここからだと立てられないので、どなたかお願いいたしたく。 スレが埋まってしまうまでにやって頂ければよいのでよろしく。
そういうことさ(キリ www
今までjavaの入門書を読んでこれからjavascriptをやろうかなと思ってるんですが、 いきなりパーフェクトjavascript読んで身に付きますか? 違う言語やる場合も入門書から読むべきなんでしょうか?
お帰りください
980 :
Name_Not_Found :2012/09/08(土) 02:36:09.00 ID:3CPy4w94
>>978 やったのがJAVAだけなら、基礎から書いてある本おすすめ
さすがにif節の書き方、とかはいらんけどね
サイ本にするか、薄くて安くてデザインの良いのにするか
どっちかじゃね?
>>975 間違えてニュース系のスレにきたと思ったわ
>>978 まずはJavaをある程度までマスターした方がいいんでないの?
高速道路を北に向かって走っていた私は、 トイレに行きたくなったのでサービスエリアに立ち寄りました。 手前の個室はふさがっていたので、その隣に入りました。 便器に腰を下ろそうとしたその時、隣から 「やあ、元気?」と声がしたのです。 男は皆そうですが、トイレで見知らぬ人と話をすることはありません。 どうしていいかわからなかったので、ためらいがちに「まあまあだよ」と答えました。 すると隣人は「そうか……それで、今何してるの?」と言うのです。 妙だなと思いましたが、私はバカみたいにこう答えました。「君と同じだよ。ウンコしてるんだ!」 やがて隣の男は、声をひそめてこう言ったのです。 「おい、あとでかけ直すよ。隣の個室に、俺の声にいちいち答えるアホがいるんだ!」
>>980 ありがとうございます
とりあえず安くて薄いの探してみます
>>982 確かにそうなんですが、ちょっと必要に迫られてしまったので
やることになりました
986 :
Name_Not_Found :2012/09/08(土) 21:57:02.67 ID:/wdtjOwM
ちょっと前にも出てたけど JAVAとJavaScriptはメロンとメロンパンくらい違うから気をつけて
987 :
Name_Not_Found :2012/09/09(日) 20:19:31.03 ID:wY21LTzZ
どっちがメロン
JAVA
山瀬まみの「メロンのためいき」は名曲だった。
>JAVAとJavaScriptはメロンとメロンパンくらい違うから メロンもメロンパンも両方食い物すなわち JAVAとJavaScriptも両方プログラミング言語 頑張ればなんとかなる
似てるところは制御構造ぐらいか。 for-in はちゃうけど。
梅
ume
あきらメロン
h
t
t
p
∧,,,∧ ( ・∀・) 1000ならジュースでも飲むか ( ) し─J
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。