+ JavaScript の質問用スレッド vol.63 +at HP
+ JavaScript の質問用スレッド vol.63 + - 暇つぶし2ch320:Name_Not_Found
08/03/16 12:40:08
>>319
Syntax errorではないだろ
どの辺がSyntax errorなの?

321:315
08/03/16 13:02:16
attachEventの中で無名関数を使うとその中での処理が期待通りの結果に
ならなかったので右往左往していたのですがattachEventを使うのをやめて
他の手にしました。attachEvent("onclick",function(){ alert(for int);};);でループ
させるとリンクをクリックした時に全てがforの最後のカウントになってしまうという
オチでした。

>>318
下の方法も知っていましたが私の環境でもエラーになります。一度、IE7を
入れたせいかも(アンインストールしたけど)。

322:Name_Not_Found
08/03/16 14:16:16
(function(p) { alert(p) })(3);
ではどうかな。


323:Name_Not_Found
08/03/16 14:24:48
>どの辺がSyntax errorなの?
>どの辺がSyntax errorなの?
>どの辺がSyntax errorなの?

基地外襲来!javascript使いの程度が知れるね。

324:Name_Not_Found
08/03/16 14:25:07
>>321
( function( a ){ alert( a ) } )( 引数 )
とか
var a = function( a ){ alert( a ) }( 引数 )


325:Name_Not_Found
08/03/16 14:27:33
>>321
だからどうせFAQ>>4のQ14/A14のような話なんでしょ。
それは「無名関数に引数を渡す」問題とは全然違う。
id=button0~button9なるボタンがあるとして
for(var i = 0; i < 10; ++i)
document.getElementById('button'+i).onclick =
function(x){return function(){alert(x)};}(i);

326:Name_Not_Found
08/03/16 18:12:03
>>321
多くのframeworkでは、無名関数に渡す引数の面倒な記述を回避する為にFunctionを拡張しているので、
例えばPrototypeでは、>>325のような場合には、
function(ev,x){alert(x);}.bindAsEventListener(null,i);
と書く。

JavaScript Frameworkはノウハウの宝庫なので、
そのframeworkを実際の運用時に使わないとしても一度ソースを見てみるのが良さげ。

327:Name_Not_Found
08/03/16 19:21:38
>>319
>>318は関数式を変数に代入しているだけで、無名(匿名)であることに変わりはない。
SyntaxErrorなのはその通りだが。

328:Name_Not_Found
08/03/16 19:23:19
oTable.setAttribute("bgcolor","yellow"); としたんですが色が出ません。
これってダメですか。IE6です。

329:Name_Not_Found
08/03/16 19:35:47
>>328
oTable.style.backgroundColor = 'yellow';
setAttribute()はやめとけって。

330:328
08/03/16 19:43:45
>>329
なるほど。ありがとうございます。
なんですかね、このメソッドは。

331:Name_Not_Found
08/03/16 20:39:01
メソッドじゃなくてプロパティだよ

332:Name_Not_Found
08/03/16 21:08:00 kGucB9iM
質問! 下のソースで "ボタンから実行" ボタンを押しても submit() が実行されずエラーが出るんですがどうしてでしょうか?
プログラムは他の書き方をして期待通りに動くようにはなったんですが、submit() が使えない理由が気になったので。
環境はwindowsXP+IE7です、よろしくお願い致します。

<form action="http//127.0.0.1/" method="get" id="form1">

<input type="submit" value="実行" id="test">
<input type="button" onclick="document.getElementById('form1').submit();" value="ボタンから実行">

</form>

333:Name_Not_Found
08/03/16 21:15:51
>>332
http:

334:Name_Not_Found
08/03/16 21:24:03
>>330
IE6ではsetAttributeメソッドに渡すプロパティ名はcase sensitive(大文字小文字を区別)なので、bgColorならOK。

>>329の言わんとしている事は不明だが、
setAttribute()がどうこうというよりも、
bgColorでの背景色設定は、仕様から削除される方向なので使うのは避けた方が良いというだけでは。
bgColorに限らず、デザインやレイアウトに関しては、
HTML属性では無くCSSで指定するような流れなので。

335:332
08/03/16 21:31:51
>>333
スレ汚しすみません! どうもありがとうございました><

336:Name_Not_Found
08/03/16 21:36:13
違う。
IEはHTML属性とDOMプロパティを区別しない。
IEのsetAttribute()はDOMプロパティをセットするシンタックスシュガーに過ぎない。
だからsetAtteibute('innerHTML', '..')なんてこともできてしまう。
その辺の事情を知らない奴らが、IE5時代にsetAttribute('className', '..')とか
setAtrribute('htmlFor', '..')なんて行き当たりばったりなコードをまき散らして今に至る。

337:330
08/03/16 23:24:09
>>334
ご指摘ありがとうございます。そういうことなんですね。
setAttributeで無事色が出ました。ありがとう御座いました。

338:Name_Not_Found
08/03/17 02:33:06
>>334はXHTMLで非妥当だ。
どうせXMLなんか使わない奴がほとんどなんだから素直にHTML-DOMプロパティを使えば良いものを、
わざわざsetAttribute()を使って問題を作り出す奴の気がしれない。

339:Name_Not_Found
08/03/17 08:40:46
だいたいXHTMLでtableにbgcolorがあるの?
元質問者はXHTMLを選択しているの?

340:Name_Not_Found
08/03/17 10:24:57
ある。

XHTMLならば>>334には問題がある。
XHTMLでないならsetAttribute()を使う理由がない。
そういうことだろ。

341:Name_Not_Found
08/03/17 13:46:42
>>329=>>336=>>338=>>340かな?
どうも何らかのトラウマ(IE絡み)があるようで、
setAttributeを毛嫌いしているようだけど、
アホが誤用する可能性があるから誰も使うなというような主張は変な話だね。

URLリンク(developer.mozilla.org)
value属性やselected属性の場合は直にプロパティ値を操作すべき書かれているが、
多くの場合はプロパティ値を直に操作するよりもメソッド経由の方がスマート。

342:Name_Not_Found
08/03/17 13:50:47
function a()のargumentsを配列のままfunction b()に渡したいのですがうまくできません。
function a()の配列の数は決まっていないので、b(arguments)と渡してもウマクデキマセンデシた

343:Name_Not_Found
08/03/17 14:08:21
>>342
var fooFunc = function() {
barFunc.apply( null, arguments );
}
var barFunc = function( arg1, arg2, arg3 ) {
alert( arg1 +' '+arg2+' '+arg3 );
}
fooFunc( 1, '2a', ['3','b'] );
とか。

344:Name_Not_Found
08/03/17 16:53:23
今javascriptの練習のために
スクリプトのファイルと同ドメインのサーバー上にあるCSVファイルをjavascriptで読み込んで表にして表示する
というスクリプトを作ろうと思っています。
習作なのでできるだけシンプルなコードにするためになるべく標準的な機能だけでコードを書きたいので
csvファイルを読み込む手段が、
ajaxで使うXMLHttpRequestで読み込む方法以外に無いかと思い調べてみたのですが見つかりませんでした。
javascriptは基本的にはファイル入出力が出来ないという事でしょうか。

345:Name_Not_Found
08/03/17 17:18:56
一週間くらい前からRadishでスピード測定画面でフリーズ
するんだけど、対処方法はない?

346:Name_Not_Found
08/03/17 17:24:47
>>345
とりあえず JavaScript とは無関係だな

347:Name_Not_Found
08/03/17 17:26:13
>>341
結局IEでは foo.setAttribute('class'... などが期待通りに動かないから
foo.className = ... と書くか
foo.setAttribute('className' ... みたいな気持ち悪い記述をするしかない。
じゃ foo.className = で統一したくないすか?

>>344
CSVやめてJSONにすればかなりシンプルなコードになると思うがだめすか?

348:Name_Not_Found
08/03/17 18:01:55
質問です。

hogeA、hogeB、hogeC、hogeDっていう4つの変数があるとして、
「その4つの値が全て同じならば~」みたいな条件付けをしたいのですが、
私が思いつく範囲だと、if文の入れ子とかそんな冗長な感じになってしまいます。

こういった場合、構文を簡潔にまとめるにはどういう書き方をすればよいのでしょうか?

349:Name_Not_Found
08/03/17 18:35:00
A==B && B==C && C==D

350:Name_Not_Found
08/03/17 20:00:09
A==B & B==C & C==D

351:Name_Not_Found
08/03/17 20:11:11
>>314
var value = "12345678912345" ;
var sum = 0 ;

for(var i=0; i<value.length; i++){ sum += parseInt(value.charAt(i)); }

352:Name_Not_Found
08/03/17 20:24:12
eval(value.split('').join('+'));

353:Name_Not_Found
08/03/17 20:35:35
>>341
そういう言い方なら、
- 後方互換性が高く(後付け仕様だし)
- 適度に型変換してくれる(setAttribute()は仕様上DOMStringのみ)
DOM-HTMLの方がスマートとも言える。

もしHTMLのセマンティクスを理解しないXMLパーサを相手にするなら
DOM-CoreのsetAttribute()を使わなければならない。

setAttribute()に「'bgColor'でおk」というのは「'className'でおk」と
本質的に同じことを言ってるわけで、ビミョーではある。
前者はたまたま(text/htmlでは)問題が表面化しにくいだけだ。

いろんな論点がゴチャゴチャなのは否めない。
ま、誤用なんてのは別にsetAttribute()に限った話でもない。
使う前に使い方を確認しろというのはどのメソッドにだって言える。
本当に使うなと言えるのは、DOM2-CSSの一部などごく僅かだ。

354:Name_Not_Found
08/03/17 20:43:40
>>349-350
>>348です、レスありがとうございます。
入れ子ではないにせよ、地道な感じで比較を連鎖させるしかないんですね。
勉強になりました。

355:Name_Not_Found
08/03/17 20:49:56
>>344
標準的というなら、OperaがDOM3-LSを実装している。
Geckoも、DOM3-LS策定途中に捨てられたDocumentLS.loadを持っている。
どちらもXML用だが。

356:Name_Not_Found
08/03/17 21:01:07
>>347
シンプルを重視するならその手がありましたね
ありがとうございます
>>355
ありがとうございます
調べてみます

357:Name_Not_Found
08/03/17 23:27:19
textareaでIEのfilter: を使用する事は出来ないでしょうか?
<pre contenteditable=true style="filter:Glow(Color=#000,Strength=10);">aa</pre>
<textarea style="filter:Glow(Color=#000,Strength=10);">aa</textarea>
textarea内の文字にのみ適応出来ればいいのですが…

358:Name_Not_Found
08/03/17 23:29:27
js> version()
180
js> Array.reduce('12345678912345', function (sum, n) sum + Number(n), 0)
60

359:Name_Not_Found
08/03/17 23:46:04
>>350は3つとも必ず処理されて無駄になる場合が多々あるだろうな。>>349ならfalseになった時点で次に進まない。

>>348
分岐を短く書いてもろくなことはない。
Array.every()やArray.some()やIterator()など、どれで工夫しても && と || に敵わない。

360:Name_Not_Found
08/03/18 03:23:58
ある掲示板で見つけたんですが、自分のサイトでも使えるかな?と
試してみたところ、$マークを使用するとうまく動かないことがわかりました。
回避策があれば教えてください。

【目的】
左フレームでクリックすると右フレームの該当文字列が強調表示


function change(str){
var re= new RegExp(str,"g");
var b=parent.right.document.getElementById('rbody');
var ss=b.innerHTML;

b.innerHTML= ss.replace(re,"<strong>"+str+"</strong>")
}

本文中に
<a href="#" onclick="change(this.innerHTML)">$img</a>
と入れると反応しない(imgのみなら動く)



361:Name_Not_Found
08/03/18 07:45:46
>>360
あなたは「なぜ$があると動かないか」を理解して、それを
回避する方法は自分で考えるべきだな。で、理由だけど、
$は正規表現において特別な意味がある文字(メタ文字)だから。
正規表現中でメタ文字を通常の文字として扱うには前に
「\」を置く。まあがんばって。

362:Name_Not_Found
08/03/18 07:47:48
どうしても保存したい映像があります。

URLリンク(i.a.cnn.net)
URLリンク(sportsillustrated.cnn.com)
ここからasxを保存するには
どうやればできるのでしょうか。。


363:Name_Not_Found
08/03/18 07:56:40
>>362
JavaScriptではどうにもならんね。制作板の話題ですらないような。
ダウンロード板でも行けば?

364:362
08/03/18 08:03:58
あ、できました><すみません!!

365:Name_Not_Found
08/03/18 11:02:38
jsライブラリの専用スレとかはないんですかね?

検索して見つからないのでここで質問します。

jQueryで
bind('click',function(){処理})
と書くのと
click(function(){処理})
と書いた場合の違いは何でしょうか?

366:Name_Not_Found
08/03/18 11:06:55 hwYBspMl
初歩的な質問なんですが…、配列を関数に渡すにはどうすればいいんですか?

367:360
08/03/18 13:16:16
>361
ありがとうございます
小出しですみません。
<a href="#" onclick="change(this.innerHTML)">\$img</a>
というのはすでにやったのですが、そうすると
右フレームの強調表示がすべて\$imgとなってしまいました。

368:Name_Not_Found
08/03/18 14:06:30
>>365
同じ。click(fn) のなかでは bind('click',fn) を実行してる。click() も trigger('click')

369:Name_Not_Found
08/03/18 17:04:38
>>367
欲しい文字列は、正規表現の条件ではなくmatchした結果なので、
var re= new RegExp("("+str+")","g");
b.innerHTML= ss.replace(re,"<strong>$1</strong>")
また、一々HTMLの記述中でエスケープ(\を追加)するのが面倒なら、最初に、
str = str.replace( /([.?*+\-^$\\|!=\(\)\[\]{}])/g, '\\$1' );
で、特殊文字をエスケープ。

function change(str){
str = str.replace( /([.?*+\-^$\\|!=\(\)\[\]{}])/g, '\\$1' );
var re= new RegExp("("+str+")","g");
var b=parent.right.document.getElementById('rbody');
var ss=b.innerHTML;
b.innerHTML= ss.replace( re, "<strong>$1</strong>" );
}
<a href="#" onclick="change(this.innerHTML)">$img</a>

>>361
声優ブログで説教する糞ヲタを何故か思い出した。

370:360
08/03/18 18:41:20
>>369
ありがとうございます!
うまくいきました。


371:Name_Not_Found
08/03/18 18:56:01
JavaScriptの演算していて混乱してきてしまいました。
「小数点第2位で四捨五入する」というときは、みなさんはどうされてますか?
例えば、0.137というとき、第2位にある3で四捨五入して0.11ですか、
それとも7で四捨五入して0.14とやって第2位まで求めますか。なんだか
分けわからなくなってしまいました。第2位でとうからには2位のところを四捨
五入するのかな、とも思うのですが。
ちょー基本的なことですいません。教えてください。

372:Name_Not_Found
08/03/18 19:02:10
JavaScript…

373:Name_Not_Found
08/03/18 19:47:57
JavaScriptと関係ないから
小学校からやりなおしてね

374:Name_Not_Found
08/03/18 20:25:42
           ,. '''""''ヽ.     |
          ,',.ィ、,,..,,..,,__ヽ   | ハンドパワーです。0.137
         {.,!  ,  , 1.i  ∠_________
     ,. ,.ィ ^, ir─‐ 、,.─ 、 }
  f.i / /./ /  '.,_ノヽ、__,ノ   〈ヽ i^i r.,
  〉 `'   /   ヽ /,,,,,,,ヽ,/    ヽ ト! .l | |/〉
  !   ,  /─- 、イ\`"´イヽ、, -─ ト    〈
イ` i'___/_``,      `´        〉   ,}
   /   `               r'_ノー、  ヽ

375:Name_Not_Found
08/03/18 22:56:23
>>371
var n = 1;
var p = 1;
if(n<0){ for(var i=n; i<0; i++){ p /=10; } }
else { for(var i=0; i<n; i++){ p *=10; } }

var val = 0.137;
val = Math.round(val*p)/p;

答えがわかったら「n」に好きな整数を入れて下さい

376:Name_Not_Found
08/03/19 12:47:45
実はこれJavaScriptとすごい関係ありますよね
ウチの法人セクションでショッピングカートの税率換算プログラムで
大失態した経験あります。お大事に。

377:Name_Not_Found
08/03/19 14:22:33
(失笑)

378:Name_Not_Found
08/03/19 14:48:39 qa4Y0sU7
DOM関連で質問です

A.xmlから特定のノードのデータをJavaScriptで拾って、B.htmlに表示させようとしています。
その際、改行やタブをノードとして認識するか否かで、IEとGecko系とで違いがあると思います。

改行やタブをノードとして認識しないIEの方が独自仕様なのかと認識していますが、
ノードを参照する部分の記述を振り分けないと、改行分のズレが生じてしまうわけですよね?

漠然と、JavaScript側で一回改行やらタブやらを全部除去してしまえばいいのかなと思っていますが、
それがよい方法なのかどうかなど、判断ができなくて悩んでいます。
このズレを補正するためには、どういう処理を行うのが好ましいものなのでしょうか?

379:Name_Not_Found
08/03/19 15:20:19
>>378
どういう条件か全然書いてないんだが、一番簡単なのは
そのノードをIDつけたspanで囲むことでしょ。

380:Name_Not_Found
08/03/19 15:26:35
いや、改行の扱いの違いをどういう風に処理するのがナウイの?
って質問だと思われ

381:Name_Not_Found
08/03/19 17:44:36 qa4Y0sU7
>>379-380
レスありがとうございます、概ね>>380さんの仰るとおりです。
A.xmlの各ノードはid等を持っていなくて、かつ、データの仕様変更は不可だとして。

<hoge>
 <hogedate>Date1</hogedate>
 <hogename>Name1</hogename>
 <hogebody>Body1</hogebody>
</hoge>
(以降データ終了まで、nodeValueの異なる同型ノードの反復)

で、任意のノードからデータを引っ張りだしたいわけですが、改行やらタブやらの分、
childNodesを使ってたどっていくと、IEとGecko系とで参照先がズレてしまいます。

A.xmlがあまりシステマチックに管理されていないようで、
管理者の気まぐれやらミスやらで、ある部分だけは改行が無い、なんてこともあるかもしれません。
そういうリスクにも備えられるようなスクリプトにしておく必要があるとしたら・・・という状況です。

改行&タブ&変な空白文字などの除去以外に素敵な方法はないかしら、という質問です。

382:Name_Not_Found
08/03/19 17:48:23
一番内側に至る前まではtextNodeは一切無視してelementNodeだけ
数えて行くというのではどうかな。両者の区分はnodeTypeを見れば
分かるので。

383:Name_Not_Found
08/03/19 20:23:52
script = 'URLリンク(example.jp)';
ref = document.referrer;
document.write ('<IMG src="' + script + '?' + ref + '">');
このようなカウンタースクリプトがあるのですが、IEで表示すると画像が無いマークが表示されます。
これを画像以外で実現する方法はありませんか?
画像サイズを小さくしたり、代替文字列を設定したら目立たないようにはなるのですが、
他の方法があれば知りたいです。 よろしくお願いします。

384:Name_Not_Found
08/03/19 20:35:56
>>383
カウンターを表示が必要ないなら
var img = new Image();
img.src = 'URLリンク(example.jp)' + document.referrer;

カウンター表示が必要ならphpの方できちんと画像を返すようにする。

385:Name_Not_Found
08/03/19 22:03:29 qa4Y0sU7
>>382
レスありがとうございます。

なるほどnodeTypeですね、試してみたいと思います。
というか、リファレンス等を見れば済んでしまうような質問だったようで恐縮です。
私の頭が固いってのもあるかなとは思いますが、参考になりました、感謝します。

386:Name_Not_Found
08/03/20 15:48:11
与えられているrandom関数を使って整数のランダム数を得るとします。
そのとき、期待できるランダム数の最大はN-1であることをどうしたら知
ることができますか?100万回まわして出現を調べても同じ確率でMaxは出
ないと賭けることができます。つまり、演繹的には証明できないわけです。
JavaScriptでのrandom関数のコアはどういう操作で乱数を出現させている
のでしょうか。またパスカル方式での片寄りはどうしたら検証できるので
しょうか。この点、JavaScriptとJavaおよびCは同じアルゴリズムですか?

387:Name_Not_Found
08/03/20 16:42:43
Nってなによ?

388:Name_Not_Found
08/03/20 17:39:58
Math.floor(Math.random() * N) の自然数 N だろうな
で 0 から N-1 が一様に分布するのかが聞きたいのかと

389:Name_Not_Found
08/03/20 17:52:55
>>386
URLリンク(www.ecma-international.org)
ECMAScript3での仕様は、0以上1未満のランダム値。実装は処理系依存と書かれているだけ。

で、Firefox3.0β4での実装だと、
/mozilla/js/src/jsmath.cの325行目あたり。
IEでの実装は知る由も無し。

390:386
08/03/20 19:01:06
>>387-389
お応えどうもです。僕の質問の主旨がまったく読み取れてもらってない
ようです。読解力は大丈夫でしょうか。
>で 0 から N-1 が一様に分布するのかが聞きたいのかと
どこをお読みになるとこういう感想になるのでしょうか。あとは1とき
いて8と知るようなものでしょう。要するにわからないということのよ
うです。疲れます。ありがとうございました。

391:Name_Not_Found
08/03/20 19:03:35
また馬鹿がわいたか

392:Name_Not_Found
08/03/20 19:05:55
おいおい、389のソース見ればいいだろ・・・おまえが大丈夫か。

393:Name_Not_Found
08/03/20 19:10:34
確率なんだから
統計的手法でおってくか
アルゴリズムを精査するしかないだろ

388 と 389 はそれぞれ一部分しか答えてないが
2つで君の問いには答えられてるはずだが?

394:Name_Not_Found
08/03/20 19:20:25
お前呼ばわりですか。程度が知れるというものだから気をつけた方がいいですよ。
その程度の日本語力で日常生活が不自由なく遅れているのか逆に心配でなりません。

395:389
08/03/20 19:31:58
どうやらソースコードが読めない人間に、難しい事を要求してしまったようだね。
そんな>>394には下記スレを勧めるよ。
スレリンク(utu板)

396:Name_Not_Found
08/03/20 19:45:32
病気呼ばわりですか。誰もがCを読めると思っているその精神構造を持ち合わせているあなたにこそふさわしいスレだと思います。

397:Name_Not_Found
08/03/20 19:54:41
僕ちゃん、ママが探してたよ

398:Name_Not_Found
08/03/20 20:07:53
結局どういう質問なんだか未だに分からない。
Math.random()は仕様上は0以上1未満の一様乱数なんで、
Nっていうのはどこにも出てこないよな。

399:Name_Not_Found
08/03/20 20:12:32
わたしがNです

400:Name_Not_Found
08/03/20 20:15:21
オレオレ、オレだよ!Nだよ!

401:Name_Not_Found
08/03/20 20:15:23
ではN-1とは?

402:Name_Not_Found
08/03/20 20:20:55
Neet

403:Name_Not_Found
08/03/20 21:06:19
オレオレ、オレだよ!

N-1?N-1なのかい?

そうだよN-1だよ!ばあちゃん!実は大変なんだ!ヤクザの車に

404:Name_Not_Found
08/03/20 21:32:39
ちょっと待った!
N-1がなんだかわかって言ってるのか?!
N-1がN-1であるためには、Nが同じタイプのとき成立するんだ。
ということは、これはNaNということもアリだな。

405:Name_Not_Found
08/03/20 22:57:19
N-1グランプリ

406:Name_Not_Found
08/03/20 23:04:35
Not a Neet

407:Name_Not_Found
08/03/20 23:12:07
NaN == Not a Neet
typeof NaN == Neet


自分がニートだと認めたくないんだな

408:Name_Not_Found
08/03/21 01:06:33
つられすぎ。変にレス増やすなよ
>>386
> この点、JavaScriptとJavaおよびCは同じアルゴリズムですか?
って聞いて「JavaScriptはCと同じか」って聞いてる人間がC読めないはずない
>>396は偽者だろ
それか全部釣りかのどっちかだ

409:Name_Not_Found
08/03/21 01:24:52
すみません、ド初心者ですみませんが質問させてください。
URLリンク(harmonicsdesign.com)
こちらのサイトのページ遷移時の演出はどういう仕掛けなのでしょうか?
やっぱりJavaScriptなんでしょうか?

410:Name_Not_Found
08/03/21 02:00:25
>>408
ストレス解消目的でnewbie相手に煽りに来たが、
ソースコードを提示されて退散したという顛末では。

411:Name_Not_Found
08/03/21 07:48:56
>>409
IEのFilter効果
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0.5)" />
<meta http-equiv="Page-Enter" content="blendTrans(Duration=0.5)" />

WEB製作会社のTOPページでいきなりエラーが出るのはちょっと笑える。

412:Name_Not_Found
08/03/21 09:27:14
>>411
解決しました。ありがとうございます。

413:Name_Not_Found
08/03/21 12:32:25 g0I0rHM0
HTML 文書をウインドウで開かずに
ソースから直接 Document オブジェクトを作る方法はありますか?

外部の XML を読む場合は XMLHttpRequest の responseXML が使えるのと同様に、
外部の HTML を読んで(レンダリングせずに)木構造だけ欲しいのです。

414:Name_Not_Found
08/03/21 12:51:50
>>413
隠しiframeなどに読み込ませてそのdocumentを参照する。

415:Name_Not_Found
08/03/21 13:04:48
こんにちは。
関数fが定義されているとして、f(1,2,3)のような引数をとるとし
ます。このとき、この引数全体を配列オブジェクトで渡すことは
できますか?単純に配列オブジェクトに格納しても数値要素で受
けることができません。

416:Name_Not_Found
08/03/21 13:12:25
X = ['a','b','c'];
function f(z){
alert(z[0])
alert(z[1])
alert(z[2])
}
f(X);


417:Name_Not_Found
08/03/21 13:38:27
>>415
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html><head><title>???</title>
</head><body>
<script type="text/javascript">
function f(x, y, z) {
alert(x + y + z);
}
var a = [1, 2, 3];
f.apply(null, a);;
</script>
</body></html>

418:Name_Not_Found
08/03/21 16:10:24 g0I0rHM0
>>414
やってみたんですが、
やはりレンダリングのための不要なアクセス(画像とか)が発生しますね。
正規の方法はないということで諦めます。

419:Name_Not_Found
08/03/21 17:15:23 kBnU6S7A
JavaScriptを使って、
お問い合わせフォーム上で、
問い合わせ番号を自動的にHP上に表示させたいと思っています。
たとえば1人目の人が見たら、A001と表示され、
2人目の人が見たら、A002と表示されます。
そのようにするには、どうすればよいでしょうか。。。

420:Name_Not_Found
08/03/21 17:23:45
>>419
サーバ側で何とかする

421:Name_Not_Found
08/03/21 18:02:06
>>419
var D=new Date()
var Num = D.getTime() + '' + parseInt(Math.random()*100);
これを表示して フォームのhiddenに入れて置く。

422:419
08/03/21 18:09:08
>>420>>421
ありがとうございます。

<input name="" type="hidden" value="var D=new Date()
var Num = D.getTime() + '' + parseInt(Math.random()*100); " />
ってやればよいのでしょうか?

423:Name_Not_Found
08/03/21 18:27:15
やってみればわかるよ

424:Name_Not_Found
08/03/21 18:56:33
おいおい、初学者に何やってるか理解できないジョークを
教えて向こうが必死になってやったら実はジョークだった
と分かるっていうのは悪趣味だろ。
>>422
そのコードは「番号を乱数で生成して表示」させるコード。
連番を表示させるには鯖側で「何人取ったか」を管理する
以外に方法はない。JavaScriptではブラウザ上だけで動作
するコートになるので、衝突しない一連番号は不可能。

425:Name_Not_Found
08/03/21 19:15:17
フォームページに表示させる時点で
衝突しない連番ってCGIでも無理じゃない?

順番が前後して良いなら別だけど。



426:Name_Not_Found
08/03/21 20:15:53
普通はフォームからの送信を受け付けてから
「ありがとうございました。あなたのお問い合わせ番号はxxxです」
なんて表示するもんだけどな。

427:Name_Not_Found
08/03/21 20:15:55
>>424
ブラウザ上だけならわざわざHiddenに入れたりしないだろ。

428:Name_Not_Found
08/03/21 20:20:58
それが出来なかったら、世のWebアプリケーションは
どうやって動いてると思ってるのか。

429:Name_Not_Found
08/03/21 20:33:55 rcx/fHn+
JavaScriptの外部ファイルを動的にロードしたいです。
今は、以下のコードを使用しています。
var A = document.createElement("script");
A.setAttribute("type", "text/javascript");
A.setAttribute("language", "JavaScript");
A.setAttribute("src", "URLリンク(***.***.net)");
document.getElementsByTagName("head")[0].appendChild(A);

しかし、これだと一部のブラウザで動作しないみたいです。。。
多くのブラウザで動作させるためにはどうすればいいですか?

430:Name_Not_Found
08/03/21 20:35:31
>JavaScriptを使って、
という指定なんだから、はっきりと「出来ません」でいいんじゃない?
コードも嫁ない人間がコードを教えてもらうということが間違っている
と思う。>>421のようなコードでなくても危険極まりないし。

431:Name_Not_Found
08/03/21 20:45:13
>>429
属性プロパティも併記すれば?

432:Name_Not_Found
08/03/21 21:24:22
>>429
一部のブラウザって何?

とりあえずうちのブラウザ5種で動く。
個人的には createのあとすぐappendしてから、あれこれ付け加えて行った方が良いと思うけど。


433:Name_Not_Found
08/03/21 22:06:47
>>429
ajax

434:Name_Not_Found
08/03/22 12:28:19
グローバルな関数宣言に watch を引っ掛ける方法はありますか?
その関数は式ではなく
function f() { }
と宣言されます
this にウォッチポイントを作成してみましたが、上のような宣言には有効ではありませんでした

435:Name_Not_Found
08/03/22 13:11:54
>>434
var f = function() { ... };
のようにグローバル変数に入れてfをwatchするとかは駄目?

436:Name_Not_Found
08/03/22 13:50:07
>>435
f の部分のコードは変更することができず、必ず関数宣言で定義されます
ちなみに var f = ... でも試してみましたが、イベントは起こりませんでした
この条件では無理なんだと思って諦めます
ありがとうございました

437:Name_Not_Found
08/03/22 21:45:57
>f の部分のコードは変更することができず
変更しないプロパティ(this.f)をwatch()する?w

js> function f() {return 1}
js> watch('f', function (p, o, n) {print(3);return n;})
js> f = function () {return 5}
3
function () {
    return 5;
}

変更すりゃ、ふつうにできてるだろ。

438:Name_Not_Found
08/03/23 00:38:36
後から宣言される f に引っ掛けるんだろ

439:Name_Not_Found
08/03/23 03:11:05
var img = document.createElement("img");
img.src = "....";
すると、リファラーが付いちゃいます。
リファラーが付かないように画像をロード出来ないでしょうか?

440:Name_Not_Found
08/03/23 04:25:35
>>438
イミフ

441:Name_Not_Found
08/03/23 05:30:48
watch仕掛けておいてから、他所様のAPIを読み込んだりしてるんじゃないの

442:Name_Not_Found
08/03/23 09:43:44
watch('f', function (p, o, n) {print(3);return n;})
function f() {return 1} //watch無反応

443:Name_Not_Found
08/03/23 09:54:36
>>442
イベント起こさなきゃ無反応に決まってる。

444:Name_Not_Found
08/03/23 10:40:36
>>442
ヒント:関数宣言

445:Name_Not_Found
08/03/23 12:39:21
メシはうまく作れ~
いつもきれいでいろ~

446:Name_Not_Found
08/03/23 14:24:16
文盲が1人いるだけで流れが変わるな

447:Name_Not_Found
08/03/23 16:40:08
DOMに対するプロパティ追加の質問です。

IEだとHTMLエレメントに任意のオブジェクトを追加できるけど
FxだとsetAttribute時にObjectは"[object object]"というStringに変換されているっぽい。

Fxでもオブジェクトをそのまま追加するにはどうしたらよいでしょうか?


以下、テストコード

//色々宣言
function Hoge(){...}
Hoge.prototype.foo = function(){...}

//オブジェ生成
var hogeObj=new Hoge();
alert(hogeObj.foo); //プロパティも生成されている

//HTMLエレメントに追加して、取り出す。
var barObj = document.createElement("div");
barObj.setAttribute("barAttr",hogeObj);
var hogehogeObj=barObj.getAttribute("barAttr");

alert(hogehogeObj.foo); //ここがIEでは来てる。Fxだとundefined。


448:Name_Not_Found
08/03/23 16:46:31
setAttributeの引数は文字列と決められてるので、IEが実装としておかしいだけ。
obj.foo = bar;

obj.setAttribute("foo", bar);
は同じではない。

449:Name_Not_Found
08/03/23 16:52:43
DojoとかYUIとかのリッチテキストエディタってありますよね
あれってどういう処理になってるのでしょうか?
textareaとかじゃあんな感じにできないと思うのですが...
ソース見ても分からなかったので教えてください

450:Name_Not_Found
08/03/23 16:53:10
>>442
関数宣言は実行コンテキスト開始時に実体化される。
watchポイントが作成されるのはその後。
だから、それではfを変更したことにならない。
>>435でも>>437でもイベントが起こることは確認できた。
結局、436が何か勘違いしてるだけ。

>>447
少し上を見ろ。DOM規定的にはFxの挙動が正しい。
つか行儀悪いやり方だな。メモリリークには気をつけろ。

451:Name_Not_Found
08/03/23 16:54:22
>>448
即レスさんくす。
でもfxだとobj.foo=barだとfooが生成されないですorz

452:Name_Not_Found
08/03/23 17:00:30
>>448
追試してみました。OKです。本当にありがとー
おっしゃるとおり、setAttributeだと駄目で、
その後bar.foo=hogeしてみたらObjectそのものが入りました。

453:434
08/03/23 17:20:09
えと、>>435>>437も f の宣言を「関数式」に変えてしまっているので今回は使えません
必ず「関数宣言」で function f() { } と宣言されます

>>442の1行目と2行目が別々のファイルで順番に実行されると考えてください

454:Name_Not_Found
08/03/23 18:19:37
えと、watchはプロパティを監視するので今回は使えません
必ず「関数リテラル」でf = funciton(){}またはf: function(){}と宣言されます

455:434
08/03/23 18:56:11
しかし実際にグローバルオブジェクトのプロパティになるわけなので、どうにかならないかという質問でした

456:Name_Not_Found
08/03/23 19:02:54
>>100の再来か…

457:Name_Not_Found
08/03/23 20:07:51
「関数リテラル」とかもう勘弁してくれ。関数式といった方が正確で短い。まあ、関数リテラルなんてよそから借りてきた用語がまかり通るのだからJS完全終了だな。

458:Name_Not_Found
08/03/23 22:45:51
>>457
無知ってかわいそうだな

459:Name_Not_Found
08/03/23 23:59:14
自分が低スキルだと気付いてない奴のほうが可哀相だけどな

460:Name_Not_Found
08/03/24 14:48:30 cLpqi2fQ
jqueryに関する質問なのですが
カレンダーのようなテーブルがありましてそのセル内にテキストリンクを配置し
$(td a).clickとjavascript側でイベントを発生させているのですが
ページ読み込み後にinnerhtmlでセル内に配置したテキストリンクが反応しません。
ダイナミックHTMLで書き出した場合はDOM要素の対象にはならないのでしょうか?

461:Name_Not_Found
08/03/24 15:07:16
ソース出せ

462:Name_Not_Found
08/03/24 15:19:53
1203456789

12億0345万6789
と、日本語にして返すライブラリってどこにありますか?

463:Name_Not_Found
08/03/24 15:20:27
>>460
なります

464:460
08/03/24 16:00:43
jquery.jsを使用しています。
いずれも二度目が反応しません。
<script>
$(function(){
/**
* 追加
*/
$('a.adds').click(function(){
$(this).parent().html('<a href=\"#\" class=\"delete\">削除</a>');
return false;
});
/**
* 削除
*/
$('a.delete').click(function(){
$(this).parent().html('<a href=\"#\" class=\"adds\">追加</a>');
return false;
});
});
</script>
<table>
<tr>
<td><a href="#" class="adds">追加</a></td>
<td><a href="#" class="adds">追加</a></td>
<td><a href="#" class="delete">削除</a></td>
</tr>
</table>

465:Name_Not_Found
08/03/24 16:16:57
>>464
新しく出現したリンクには onclick がついてないけど
jquery ってそういうことができるライブラリなの?

466:Name_Not_Found
08/03/24 16:27:05
多分ここだとおもうけど
...style.display="block";
をIEでやると表示されるけど、safariだと表示されないんだよね。

どっちも動く書き方か、うまいクロスブラウジングを教えてほしい。

467:Name_Not_Found
08/03/24 16:57:10
>>464
<script>
$(function(){
/**
* 追加
*/
$('a.adds').click(tuika);
/**
* 削除
*/
$('a.delete').click(sakujo);
});
function tuika(){
$(this).parent().html('<a href=\"#\" class=\"delete\">削除</a>').click(sakujo);
return false;
}
function sakujo(){
$(this).parent().html('<a href=\"#\" class=\"adds\">追加</a>').click(tuika);
return false;
}
</script>

468:467
08/03/24 17:01:34
間違えた
<script>
$(function(){
/**
* 追加
*/
$('a.adds').click(tuika);
/**
* 削除
*/
$('a.delete').click(sakujo);
});
function tuika(){
$(this).parent().empty().append($('<a href=\"#\" class=\"delete\">削除</a>').click(sakujo));
return false;
}
function sakujo(){
$(this).parent().empty().append($('<a href=\"#\" class=\"adds\">追加</a>').click(tuika));
return false;
}
</script>

469:460
08/03/24 17:29:21
>>467-468
やはり関数化して呼ぶしか方法がないようですね。
ありがとうございました。

470:Name_Not_Found
08/03/24 18:12:37
関数化は関係ないだろ
>>460のコードがクソすぎるだけ

471:Name_Not_Found
08/03/24 18:32:32
クリックすると展開する表が作れるスクリプトを教えて下さい。
できれば再クリックで縮めることができればいいのですが。


472:Name_Not_Found
08/03/24 18:40:59
<script src=jquery.js></script>
<script>
$(function(){
    $('#table2').hide();
    $('a#exttable').toggle(function(){
        $('#table2').show();
        $('#table1').hide();
    },function(){
        $('#table1').show();
        $('#table2').hide();
    });
});
<script>
<a href=# id=exttable>展開</a>
<table id=table1>展開前の表</table>
<table id=table1>展開後の表</table>

473:Name_Not_Found
08/03/24 19:15:03
>>472
教えて頂いたものを使用したのですが、ブラウザ上で表示されません。
ビルダーの段階では?の記号で表示されているのですが。
どこか使用法が間違っているのでしょうか。

474:473
08/03/24 21:33:21
自己解決しました。
>>472有難うございました。

475:Name_Not_Found
08/03/25 00:19:56 PGb2xIhW
エレメントに独自のプロパティを付けようとしたんですが
cloneすると消えてしまいました
こういう場合はどうしたら良いのでしょうか

var element = document.createElement('a');
element.name = "taro";
element.mystr = "hoge";
var clone = element.cloneNode(true);

alert(element.name); //taro
alert(element.mystr); //hoge ※IE undefined

alert(clone.name); //taro
alert(clone.mystr); //undefined

476:Name_Not_Found
08/03/25 00:24:27
>>475
手動でコピーする

477:Name_Not_Found
08/03/25 10:54:55
ppu

478:Name_Not_Found
08/03/25 12:38:45
「|」の実体参照はありますか。この記号だけ見つからないんですが、
ご存知でしたら教えてください。

479:Name_Not_Found
08/03/25 13:27:31
>>478
JavaScriptと無関係。

480:Name_Not_Found
08/03/25 16:10:15 idh8XSuO
初心者質問スレに質問したのですが、
スレ違いとの事でこちらに質問に来ました。

URLリンク(java.misty.ne.jp)
↑こちらにある「ポップアップメニューのサンプル」のソースを
コピペして使いたいのですが、
リンク先が新しいウィンドウで開いてしまうので初心者スレで教えて頂いた

function jumpUrl ( url ) {
window.open(url, "new");
}

この部分をどのように変更すれば、
現在のウィンドウでリンク先を開けるようになるか教えて下さい。
お願いします。

481:Name_Not_Found
08/03/25 16:17:33
location

482:Name_Not_Found
08/03/25 16:24:22
<script>タグ内に存在するJavaScriptの変数を
PHP等の変数に格納することは可能ですか?
逆(PHP等→JavaScript)は可能だったのですが。

483:Name_Not_Found
08/03/25 16:43:09
>>480
>>481も言ってるが、window.openじゃなくてlocation.hrefを使えばいいんじゃねーか?

function jumpUrl ( url ) {
window.open(url, "new");
}

  ↓

function jumpUrl ( url ) {
location.href = url;
}

こんな感じで

484:480
08/03/25 16:58:18
>481大変ありがとうございました。解決しました。

485:Name_Not_Found
08/03/25 18:18:02
>>482
input type="hidden" を作り、それにIDを振って
document.getElementById('ID名').value = 渡したい値;
フォームが送信された後はこのinputの値に渡した値が入っている。

486:Name_Not_Found
08/03/25 18:59:39 p/ADFhaD
マップのエリア要素でそこを指示したときにタイトル属性を指定すると
そのタイトル属性の文字がtooltipsのようにポップアップで表示されると
思うのですが、BubbleTooltipsのように分かりやすいようなポップアップが
できるjavascriptとかはないでしょうか?

BubbleTooltipsは対応しているのはA要素だけですよね?
マップのエリア要素にもできるんでしょうか?

487:Name_Not_Found
08/03/25 22:00:03
Firefoxのブラウザでonmouseoverとonmouseoutがバグが発生して困っています
onmouseoverで変化した画像をクリックすると別のページへ移動するのですが、
その際にブラウザで戻るとonmouseoverで変化したままの画像が表示されます

不可解なことに元のページに戻った1秒後くらいに最初の画像に戻ることもあり
IEだとなぜか正常に動作するのですが、その原因が全くわからずお手上げ状態です

どなたか詳しい方教えていただけませんでしょうか?宜しくお願い致します

488:Name_Not_Found
08/03/25 22:07:17
>>482
JavaScriptの変数をJSON形式にして、PHPでjson_decode()とか。

489:Name_Not_Found
08/03/25 23:20:38
>>487
なぜそれが「バグ」だと断言できるの?「戻る」で戻った時に
変化したままが嫌だったら、クリックした時にまず変化を戻して
それからlocation.hrefに行き先を入れてページ移動、という
風にすればいいんじゃないだろうか。

490:Name_Not_Found
08/03/25 23:25:42
>>482
NAME属性じゃなきゃ送信されないだろ。そしてNAME属性を使った時点でID属性が余計なものになる。その方法でID属性は要らない。

491:Name_Not_Found
08/03/25 23:30:17
>>489
バグだよ。根拠はどこにもないが、歴史的に見て特殊な振る舞いだから、仮に多数決をとれば圧倒的大差でバグ扱いされるだろう。最初にロードした状態がキャッシュされなきゃ、今在るサイトでぐちゃぐちゃになるところが無数にあるだろう。

492:Name_Not_Found
08/03/26 00:45:02
全く根拠が無いのに断定出来るとは素晴らしい珍妙理論だね。

>>487
HTML5(普及するか否かは不明)ではhistory関係の仕様が含まれるらしいが、
現状では仕様上に明記されている訳では無いので、back時の動作はブラウザに拠る。
なので、window.loadやreadyStateを利用し、
ページが読み込まれた事を確認したら毎回初期化処理を行う。
AJAXの場合にはlocation.hashを使って最新の状態を保持する事は良く行われているね。

493:Name_Not_Found
08/03/26 01:30:57
とても初心者的な質問なんですが、四則演算の件で質問があります
var a = 254
var b = 127
var c = a / b;

っていう時に、計算後の出力を3ケタにすることってできるのでしょうか

494:Name_Not_Found
08/03/26 06:13:15
>>493
var c = '00' + parseInt(a / b);
c = c.substr(c.length-3);
cはstring

495:Name_Not_Found
08/03/26 06:39:45
>>493
(1)結果を整数にするのか小数点つきにするのか。
(2)前者なら切捨てか丸めのどちらなのか。
(3)後者ならどこが3桁?小数点以下?全体?
>>494
そこはparseInt()ではなくMath.floor()がいいのでは。

496:Name_Not_Found
08/03/26 07:16:00
>>495
parseIntってなんか誤作動するっけ?


497:Name_Not_Found
08/03/26 07:58:29
>>496
parseIntは文字列から数値を取得するのに対し、
Math.floorは引数が数値である事を前提としているので、
引数が明らかに数値である場合にはMath.floorの方が良いという事では。

498:Name_Not_Found
08/03/26 10:34:23
うむ。
直接関係ない件で俺の勘違いだった。
Math.floorにしとく方が良いね。

499:Name_Not_Found
08/03/26 10:37:34
しかしいま思ったんだが、漠然と「3桁」と考える思考回路は根本治癒が
必要かもしれない。概念把握にいまだ遠いということではなく、その思考
方法というか明示化されないこと例外列挙と排除とを不思議に思わないと
ころに問題がある。それがけっきょくprogrammingの要諦という気がする。

500:Name_Not_Found
08/03/26 13:42:06 rpsmEva+
文字列からある部分を抜き出したいときはどうすればいいですか?
文字列 : A=(hirosi);B=(manami);C=(takeo);

var Data = {
A:Aの値を取得するコード,
B:Bの値を取得するコード,
C:Cの値を取得するコード
}

アドバイスお願いします。



501:Name_Not_Found
08/03/26 14:14:14
スプリットで切り分けたデータの個数を図るにはどうすればいいのでしょうか?

a = ["おはよう.こんにちは.こんばんは.いただきます.ごちそうさま.おやすみ.いってきます"]
1 = a.split(".")

で1には何個のデータを入手したかを数値で出したいです

502:Name_Not_Found
08/03/26 14:37:54
a.split(".").length

503:Name_Not_Found
08/03/26 15:57:12
なぜaは配列?
なぜ1に代入?

504:Name_Not_Found
08/03/26 16:06:51
エンジンによって空要素を配列に含めるか含めないかが異なるよな。

str = "foo\r\nbar\r\nbaz\r\n"

Firefox 1.5.0.12:
str.split("\r\n").length = 4
str.split(/\r\n/).length = 4

Opera 9.26:
str.split("\r\n").length = 4
str.split(/\r\n/).length = 4

Internet Explorer 6:
str.split("\r\n").length = 3
str.split(/\r\n/).length = 3

Windows Script Host 5.6:
str.split("\r\n").length = 4
str.split(/\r\n/).length = 3

505:Name_Not_Found
08/03/26 16:17:11
ま た IE か

506:Name_Not_Found
08/03/26 19:13:26
IEとWSHのエンジンはいっしょやろ

507:Name_Not_Found
08/03/26 20:16:27
やってみたら現に結果違ってるやん

508:Name_Not_Found
08/03/26 21:12:26
なんだこれ

509:Name_Not_Found
08/03/26 21:14:34 Dtd9Q1NC
クロスブラウジングにする上で
プロパティやメソッドでどれがプラウザ依存なのかまとめてあるサイトないですか?

510:Name_Not_Found
08/03/26 21:19:08
なんでやねん

511:Name_Not_Found
08/03/26 21:27:56
>>509
そういうキーワードを入れてググったら検索結果 約 230,000 件も出た
けど。君もやってみたら?

512:Name_Not_Found
08/03/26 21:28:46
検索が悪いのかまともにまとめてあるサイトがみつからないから。

513:Name_Not_Found
08/03/26 21:29:37
>>511 そのググッたURLを教えて。

514:Name_Not_Found
08/03/26 21:56:16
>>509
クロスブラウザ対応のFrameworkのソースを見てみるのが一番早いかも。

URLリンク(www.openspc2.org)
サイトならこことか。
ここの管理人はJavaScript初期に腐ったコードや糞のような本を多数出して、
JavaScript暗黒時代を演出した戦犯の一人だから、個人的にはかなり微妙だけど。

515:Name_Not_Found
08/03/26 22:01:51
今同じのを何回もやるようなやつはfor文を使ってるんですが、
a = new Array("A","B","C","D","E","F");
for(i=0;i<5;i++){
document.write(a[i]);
}
例えばこんな感じです。本当はテーブルとかあって複雑。

もっといい方法ないですか?
出来れば、forのiの値をいちいちいじらなくても勝手に繰り返し数を決めてくれるやつが良いです。

516:Name_Not_Found
08/03/26 22:08:32
new Array("A","B","C","D","E","F").forEach( function( x ){ document.write( x ); } )

517:Name_Not_Found
08/03/26 22:08:56
a.length

518:Name_Not_Found
08/03/26 23:00:03
>514
そこはひどいコードのオンバレード。売り物にならないのでネット化して害毒
をばら撒いている。初心者がそこのコードを見て覚え込んだらと思うと寒い。

519:Name_Not_Found
08/03/26 23:02:52
>>515
for(i=0;a[i];i++)

520:Name_Not_Found
08/03/26 23:44:40
>>519
途中の番号でfalse扱いされる値があったら(スパースだったら)使えないな。

521:Name_Not_Found
08/03/26 23:48:56
undefinedだろ

522:Name_Not_Found
08/03/26 23:57:44
false

523:Name_Not_Found
08/03/27 00:12:06
>>521
var a = [1,2,0,3,4];


524:Name_Not_Found
08/03/27 01:59:50
複数選択可能なで、ある項目を選択すると同時に特定の項目も選択させるにはどうすればいいでしょうか。

<SELECT multiple>
<OPTION value="1">果物</OPTION>
<OPTION value="1-1">みかん</OPTION>
<OPTION value="1-2">りんご</OPTION>
<OPTION value="1-3">メロン</OPTION>
<OPTION value="2">野菜</OPTION>
<OPTION value="2-1">ニンジン</OPTION>
<OPTION value="2-2">ピーマン</OPTION>
<OPTION value="2-3">じゃがいも</OPTION>
</SELECT>

↑のような形で
「みかん」「りんご」「メロン」のどれかを選ぶと、「果物」も同時に選択。
同じく「ニンジン」「ピーマン」「じゃがいも」のどれかを選ぶと「野菜」を同時に選択させたいです。

果物と野菜を別々のselectに分ければ考えている方法とは違うのですができそうでした。
なんとか1つにまとめたいのですが、このようなことができるのかもはっきりさせられませんでした。





525:Name_Not_Found
08/03/27 07:01:49
>>514
そこは昔から知ってるがそんなのまとめてあってっけ?

上に対応ブラウザが列挙してあるのならいくらでもあるが
どれが主に何依存で他に対応するには代わりにこう書くというのが載ってるサイトがいいんだが。。

526:Name_Not_Found
08/03/27 11:08:51
プロシージャの呼び出しって何ですか?

527:Name_Not_Found
08/03/27 11:23:21
URLリンク(www.geocities.co.jp)

528:Name_Not_Found
08/03/27 11:24:26
IEでJavaScriptで描画を一時停止できるメソッドがあったと思うのですが
思い出せません。
もしご存知のかたが居られましたら教えてくださいませ。

529:Name_Not_Found
08/03/27 11:27:37
firefoxってinnerHTMLはもちろんinsertAdjasentHTMLも何にも使えないんだね。

ページ全体の要素は、
しちめんどくさく全部createElement、appendChildしてかなきゃいけない
ということはよもやありえないよね???

一括してサクッとやる方法を教えて下さい。

530:Name_Not_Found
08/03/27 12:03:28
innerHTMLくらいあるさ

531:Name_Not_Found
08/03/27 13:11:52
要素ツリーををドカンと追加・削除・置換するなら Range もいい。
URLリンク(members.jcom.home.ne.jp)
URLリンク(jintrick.net)

532:Name_Not_Found
08/03/27 16:13:08
視野が狭いというのは怖いですね。

533:Name_Not_Found
08/03/27 17:36:48
変動する値を常に4の倍数にしたいのですが、
どういう風に書けばよいでしょうか?よろしくおねがいします。

534:Name_Not_Found
08/03/27 18:00:56
4*i

535:Name_Not_Found
08/03/27 18:12:55
i-i%4

536:Name_Not_Found
08/03/27 19:45:29
i&(~3)

537:Name_Not_Found
08/03/27 21:04:56
<script type="text/javascript">
window.onload = function (){
thum_popup.innerText="hoge";
}
</script>
<div id="thum_popup"></div>
こんな感じでthum_popupの中を書き換えてるのですが
書き換え終わった後の<div id="thum_popup"></div>の幅と高さを取得する方法を教えてください

window.onload = function (){
thum_popup.innerText="hoge";
alert(thum_popup.style.width);
}
だと空白が返ってきてしまい、取得出来ません

538:Name_Not_Found
08/03/27 21:18:24
CSS切り替えスクリプトってxml-stylesheet宣言で適用する場合でも可能なんでしょうか

539:Name_Not_Found
08/03/27 22:50:39
>>537
テンプレを読め。テンプレが読めない奴は帰れ。

540:Name_Not_Found
08/03/27 23:25:27
URLリンク(www.foo.jp)
のアドレスにアクセスして、yyyのところを読み込んで
別の内容が表示されるようにしたいです。

別のページに移動するのではなくて、それ自体で変えるにはどうすればいいでしょうか?

541:Name_Not_Found
08/03/27 23:37:28
>>537
var elem = document.getElementById( 'thum_popup' );
elem[(elem.innerText!=undefined?'innerText':'textContent')] = "hoge";
alert( elem.offsetWidth );

542:Name_Not_Found
08/03/27 23:43:50 p2CvbvLb
javascript:while(true){document.write('<img src"A:a.bmp">');}
をアドレス欄に打つとPCこわれるって本当ですか?

543:Name_Not_Found
08/03/28 00:18:20
srcが不正

544:Name_Not_Found
08/03/28 01:09:24
wrap = function (f){ return function (){ f.apply(this, arguments); }; };
function test1(){ test2(); };
function test2(){ test3(); };
test1 = wrap(test1);
test2 = wrap(test2);
function test3(){
var f = arguments.callee.caller;
while(f){ f = f.caller; } //←FFだと永久ループになる。
};

上記のコードがあって、test1()を呼び出すと、
FFでは、callerがtest1とwrapで作成した無名関数の繰り返しになり、無限ループとなりました。
IEでは、ちゃんとtest1の呼び出し元に戻ってくれました。
理由が分かる方いますか?要はYAHOO.util.Event.getEvent使いてぇってことですが。

545:Name_Not_Found
08/03/28 02:12:49
>>544
URLリンク(developer.mozilla.org)

Opera9ではFunction.caller自体が存在しないし、
ECMAScript非標準プロパティの動作はブラウザ次第。

546:Name_Not_Found
08/03/28 03:06:26
なるほど。英語をあらためて見てみると書いてありますね。
wrapを呼び出している箇所は1か所だったため、
以下のようなwrapを呼び出そうとするたびにwrapが生成されるようにすることでうまく行きました。thx!

wrap = "function (f){ return function (){ f.apply(this, arguments); }; };";
function test1(){ test2(); };
function test2(){ test3(); };
test1 = (new Function("f", wrap))(test1);
test2 = (new Function("f", wrap))(test2);
function test3(){
var f = arguments.callee.caller;
while(f){ f = f.caller; }
};

547:Name_Not_Found
08/03/28 16:41:10
JavaScriptを書くときエディタを使っていますか。
エディタはメモ帳よりもどんなところが便利なのでしょうか。

548:Name_Not_Found
08/03/28 17:45:53
ヒント:メモ帳もエディタなんだぜ

549:Name_Not_Found
08/03/28 18:49:34 ZEZ8Tu5L
540は皆スルー?

550:Name_Not_Found
08/03/28 19:00:55
色分けでしょーもないスペルミスを防いでくれたり

551:Name_Not_Found
08/03/28 19:17:08
しょーもないというか指の長さの差で順序が逆になったり

552:Name_Not_Found
08/03/28 19:27:18
>>551 kwsk
>>549 coz ok in jp

553:Name_Not_Found
08/03/28 19:50:38
>>549
そもそも何をしたいのか漠然とし過ぎ。
実装案としては、
1. サーバー側でmod_rewriteを使い、リダイレクト無しで別サーバースクリプトを利用。
2. クライアントにある程度のまとまった量のJavaScriptDataを渡し、yyyによって表示する値を決定。
3. AJAXを使いサーバーからデータを取得。
など。
JavaScriptスレで聞いているのだから2,3なのだろうけど、
その条件が無いなら、素直に1を薦めるよ。

554:Name_Not_Found
08/03/28 20:04:23
num = 0Lとは何を意味しているのでしょうか。

555:Name_Not_Found
08/03/28 20:16:38 Q4wyusPO
一部の環境でJavaScriptで生成した表が印刷されません。
複雑なrowspan・colspanがある表を、insertRow()メソッドやinsertCell()メソッドを
駆使してJavaScriptで生成しましたが、その生成した表が印刷されません。
どのようにしたら解決できるでしょうか?

具体的には、
IE7 : 表が全く印刷されない。
IE6 : 表示された通りに印刷される。
Firefox : 一部印刷されるが、歯抜けになっている。
という状態です。

556:Name_Not_Found
08/03/28 20:51:06
>>554
Long Integer の0(零)

557:Name_Not_Found
08/03/28 21:11:17
>>555
その表をdivで囲んでinnerHTMLを表示させてチェックしてみ。
それで間違いがないようなら、そのinnerHTML文字列を別の
divのinnerHTMLに突っ込めば印刷できるんじゃないかな。
>>554
JavaScript言語にはそんなのない。よそのスレへいけ。

558:Name_Not_Found
08/03/28 21:24:21
>>555
生成したエレメントを含むページ全体をinnerHTMLで取得し、
それをHTMLに保存して、各ブラウザでの出力結果を比較。
・違っていれば違う個所を検証。ついでにIE6での出力結果を他のブラウザで表示してみる。
・同じであればブラウザ毎のHTML解釈の差なので、それが解消されるような形式にする。

559:Name_Not_Found
08/03/28 21:30:28
JavaScriptでもHTMLでも無く、単にCSSの問題ではないかという気もするけれど。

560:555
08/03/28 21:42:22
みなさん、レスありがとうございます。

>>557 さんや>>558 さんの言われたように、生成されたHTMLを出力してみました。
すると、問題は、複数ページにまたがる表を印刷することにあるようでした。
どのブラウザでも、生成されたHTMLを表示することはできますが、
IE7やFirefoxなどのページにフィットするように印刷を調整するような
利口なブラウザは印刷ができないようでした。

その発想はなかったです。
問題の切り分けができました。
ありがとうございました。

561:Name_Not_Found
08/03/28 23:50:36
質問です。

下記のようなコード (ボタンを押すと、■■■ が徐々に消える) の時、
ボタンを連続して押すと、前の動作が終わる (opacity が 0 になる) 前に
後にボタンを押した動作と重なって動いてしまいます。
何か解決方法はあるでしょうか?



<div id="test">■■■</div>

<button onclick="anime();">ボタン</button>

<script type="text/javascript">
function anime() {
var elmTest = document.getElementById('test');
var elmTestStyle = elmTest.style;
elmTestStyle.zoom = 1;
elmTestStyle.filter = 'alpha(opacity=100)';
elmTestStyle.opacity = 1;
var numOpa = 100;
var objTimer = setInterval( function() {
numOpa -= 10;
elmTestStyle.filter = 'alpha(opacity=' + numOpa +')';
elmTestStyle.opacity = numOpa / 100;
if (numOpa == 0) {
clearInterval(objTimer);
}
}, 50);
}
</script>


562:Name_Not_Found
08/03/29 00:38:56
>>561
var objTimer = null;
function anime() {
if ( objTimer ) return;
var elmTest = document.getElementById('test');
(略)
if (numOpa <= 0) {
objTimer = clearInterval(objTimer);
}

ボタンを押す度に新規にopacity100から開始したい場合は、最初のチェックでreturnの代わりに、
if ( objTimer )
objTimer = clearInterval(objTimer);
とか。

563:Name_Not_Found
08/03/29 00:45:16
> var elmTestStyle = elmTest.style;

誰得

564:Name_Not_Found
08/03/29 03:47:08
質問です。
最近JavaScriptの勉強を始めたものですが、
ページトップへのスムーズなスクロール移動を実現したくて、
下記のようなソースを見つけました。

function jumpToPageTop(e) {
UAGENT = navigator.userAgent.toUpperCase();
if (UAGENT.indexOf("MSIE") >=0) {
pos = event.y;
} else {
pos = e.pageY;
}
pageScroll(pos);
}
function pageScroll(posi) {
dist = posi / 6;
nPos = parseInt(posi - dist);
scrollTo(0,nPos);
if (nPos > 0) {
setTimeout("pageScroll(nPos)",10);
}
}

565:Name_Not_Found
08/03/29 03:47:39
自分的には、こっち記述の方が正確だと思うんですけど

g_TopPos = 0; //ページトップの座標
function jumpToPageTop(e) {
UAGENT = navigator.userAgent.toUpperCase();
if (UAGENT.indexOf("MSIE") >= 0) {
g_TopPos = event.y;
} else {
g_TopPos = e.pageY;
}
timerID = setTimeout("pageScroll()", 10);
}
function pageScroll() {
nPos = parseInt(g_TopPos - g_TopPos / 6);
scrollTo(0, nPos);
if (nPos <= 0) {
clearTimeout(timerID);
}
}
これだと動作しません。
setTimeout()は、指定時間ごとに指定した処理を繰り返すのではなく、
指定時間後に指定した処理を実行するのですか?

566:Name_Not_Found
08/03/29 04:09:39
564,565です。
すいません書き込みしてから気づきました。
g_TopPos = 0; //ページトップの座標 ではなく ページトップへのボタンの座標です。

567:Name_Not_Found
08/03/29 06:09:49
>>566
動くかどうか試してみて

function jumpToPageTop(evt) {
  if (!evt) return true;
  var pos = evt.pageY || evt.y || 1024;
  var timer = setInterval(function() {
    scrollTo(0, pos = pos / 6 * 5 | 0);
    if (!pos) clearInterval(timer);
}, 50);
  return false;
}

<a href="#top" onclick="return jumpToPageTop(event);">top</a>

568:Name_Not_Found
08/03/29 06:26:55
>>567さん どうもです。
動きました。
setInterval()は指定時間ごとに指定した処理を繰り返す。
setTimeout()は指定時間後に指定した処理を実行する。
という解釈でいいということですね。
どうもありがとうございました。

569:Name_Not_Found
08/03/29 06:39:05
561です。

>>562
おーなるほどーそういうことですか!
事前にタイマー用の変数を null にセットしとくと!
ありがとうございます!

>>563
setInterval など、短時間で繰り返し処理が行われる場合、
「 . 」 によるアクセスを1つでも減らして、高速してるかも?
という魂胆です。

570:Name_Not_Found
08/03/29 07:07:17
>>568
もしかしてそれが聞きたかっただけ?
URLリンク(developer.mozilla.org)
せめてこれくらいは読んでから始めたほうがいいと思うよ


571:Name_Not_Found
08/03/29 08:37:05
>>557
URLリンク(www.mozilla-japan.org)
suffixの"L"は、JavaScript2.0の仕様、実装されるかどうかは知らんが…
ES4には、long系の仕様は採用されてないみたいだがな。

572:Name_Not_Found
08/03/29 09:56:53 BTzKmwRa
一つのボタンを作って、
押すと片方は普通に表示されて、もう片方は半透明に、
もう一回押すと逆になる…

という事はどうやるのでしょうか?

573:Name_Not_Found
08/03/29 10:07:07
一つのボタンの片方とは?

574:Name_Not_Found
08/03/29 10:11:29
作文の勉強から始めろ

575:Name_Not_Found
08/03/29 10:56:35
>>572
このスレは他のJavaScriptができるだけの技術オタクの板とちがって言語
一般に五月蝿い。教養ある人間の読むスレとしてはそこがよい。

>一つのボタンを作って、
まず、ボタンを作るとはどういうことかを定義すること。
最も簡単なのはHTMLを例示する。

>押すと片方は普通に表示されて、
「普通に」とはあなたにとっての普通のことに過ぎない。
最も簡単なのはその「普通」を具体的な表現で例示する。

>もう片方は半透明に、
プログラムでは突然「もう片方」という言葉が出てきた時点で
停止する。人間のことばも同じ。

半透明とは何か。filter効果なのか背景画像処理なのか。
自分がわかっているだけでは人には伝わらない。

>もう一回押すと逆になる…
もう一回どこを押すのか。もう片方の何かか。最初に押したボタンか。

自分でもわからないことは人にもわからない。

576: ◆.PT9876/4U
08/03/29 11:07:38 1pXhFFKV
>>572
誘導:
JavaScript 手取り足取りスレッド
スレリンク(hp板)l50

スレッドの性格上, 一件落着までには時間が掛り,
現在 3 件の未解決問題を抱えているため... かなり迷いました.
"駄目もと" って気分で尋ねてちょ.

577:Name_Not_Found
08/03/29 11:30:46
>>572
var bFoo = true;
function toggle()
{
document.getElementById('foo').style.opacity = (bFoo?0.5:1);
document.getElementById('bar').style.opacity = (bFoo?1:0.5);
bFoo = !bFoo;
}
<input type="button" value="ボタン" onclick="toggle()" />
<div id="foo">片方</div>
<div id="bar">もう片方</div>

質問の趣旨が不明なので超簡易版。opacityの関係上IE6では機能せず。
JavaScript自体にあまり馴染みが無いなら>>576のスレへ。

578:Name_Not_Found
08/03/30 17:24:46
配列のpopというのがありますけど、辞書で見てみてもこの単語とJavaScriptの
意味がいまひとつピンと来ません。どういうことでpopなのか教えていただけま
せんか。


579:Name_Not_Found
08/03/30 21:04:09
>>578
そもそもPerlあたりから来てるんじゃないの。だから
スレ違いのような来もするけどな。スタックって習ったことない?
スタックとはLIFO(Last In, First Out --- 最も最近に入った
データが取り出される)ようなコンテナで、データを末尾に付け
加える操作をpush、末尾にあるデータを取り出す(取り除く)操作を
popと呼ぶならわし。で、配列のpushとpopを使うと配列をスタック
として利用できる。

580:Name_Not_Found
08/03/30 21:09:07
質問です。

onloadイベント内でinnerHTMLにタグ(外部から取得する為固定)を挿入した後、
レンダリング完了を待ってから、挿入したタグ(チェックボックス等)の操作を
したいのですが、レンダリング完了を取得する方法はないでしょうか?

レンダリング前だとObjectの参照が出来ないようです。
その為、タイマーで一定時間待機してから操作を行っていますが、
もう少し確実な方法はないでしょうか?

対象のブラウザはIE6以降です。

581:Name_Not_Found
08/03/30 21:13:04
>>580
そういうのって、setTimeoutで待ち時間「0」で大丈夫というか
十分確実なんじゃないの。

582:580
08/03/30 21:18:03
>>581 レスありがとうございます。
それが待ち時間500msくらいに設定しないと上手く動いてくれないんです。
IEのデータバインド機能も使っているせいかな。。。

583:Name_Not_Found
08/03/30 21:33:17
>>582
うーんそうなんだ? innerHTMLの一番最後に適当な要素をIDつきで
用意し、document.getElementById()でそのIDが取れるようになる
まで一定時間間隔で繰り返しチェックとか。

しかしどっちかというと、innerHTMLを使うよりdocument.write
で当該箇所に書き出して完了は普通にonloadで見るという方が
素直な気もするけど。何回も差し替えるならinnerHTMLでないと
駄目だけどね。

584:578
08/03/30 22:19:05
>>579
そうですね。Perlはよくわからないです。でも会社の
研修のとき簿記でそんなの習った記憶あります。
わかりやすいご説明ありがとうございました。

585:580
08/03/30 22:21:52
>>583

>innerHTMLの一番最後に適当な要素をIDつきで
>用意し、document.getElementById()でそのIDが取れるようになる
>まで一定時間間隔で繰り返しチェックとか。

ありがとうございました。
そのような方法あったんですね!後者の方も含めて試してみます。


586:Name_Not_Found
08/03/30 23:48:42
テンプレにある以下のページの見方を教えてください。

はぎさんちのページ Mozilla's DOM Sample Project
URLリンク(cgi.din.or.jp)

たとえば、DOMFocusInがFireFox3で存在して、FireFox2では存在しないかを確認したいのですが、
どこをチェックすればよいでしょうか?

587:Name_Not_Found
08/03/30 23:58:57
>>497
parseIntは32bitまでの制限がかかる。
また頭が0から始まる文字列の場合8進数と誤認する可能性がある。
一方Math.floorは32bit以上の数値でもOK。ただ、引数が文字列のとき未定義の動作?
なので、Math.floor(Number(num))がよいかも。
parseFloatは小数点切り捨ててくれない。
例:parseInt("033.3") = 27。
Math.floor(Number("033.3"))=33。
parseFloat("033.3")=33.3
こういう違いがあるみたい。

588:Name_Not_Found
08/03/31 00:04:48
>>585
一定間隔でTimerで繰り返しってJSでは最後の手段だよね。
その間にユーザがチェックしちゃったりしそう。
画像(IMGタグ)とかオブジェクトタグで外部にファイルを取りに行くやつは
onreadystatechange使って解決してる。
このイベントで気をつけるべきは、onerrorかonabortもハンドリングした方がいいってこと。
キャッシュから読む場合にonreadystatechangeが発動しない時があったと思った。

589:Name_Not_Found
08/03/31 00:22:15
>>546
wrapの呼び出し側を変更しない方法として
wrap = function(){
return (new Function("f", "return function (){ f.apply(this, arguments); };")).apply(this, arguments);
};

でよいかも。
今のところこれでFireFoxのcaller制限が解除出来るのはポイントだな。
return functionしているかつコールスタック上で2か所以上現れるものって
prototype.jsでいうbindとかぐらいだし。

>>588
補足。onreadystatechangeが発動しないときは、上記のどっちかが発動するみたい。
あとFireFoxではこのイベントがある要素とないタグあるから注意。
たとえば、imgタグにはあるけど、linkタグにはないみたい。>だれかご存知でしょうか?

590:Name_Not_Found
08/03/31 01:08:50
JavaScript始めたばかりです。
Cでいうところの、%3.3d = %2.2x はJavaScriptだとどう書き換えられる
るんでしょうか。どうしてもうまくいきません。

591:Name_Not_Found
08/03/31 01:39:46
「JavaScript printf」でぐぐったやつじゃダメなの?

592:Name_Not_Found
08/03/31 04:15:30 XN7dDV5G
iframeで呼び出した先のページがステータスバーに文字を表示させているのですが、
これのせいで自分のページのステータスバーにも同じ文字が表示されてしまいます。

これの消し方はどうしたらいいのでしょうか?

593:Name_Not_Found
08/03/31 04:26:57
そんな糞ページは呼び出さなければいい

594:Name_Not_Found
08/03/31 04:49:19
どういう目的でそのページを表示させているのですか?

595:Name_Not_Found
08/03/31 10:12:09
>>592
他人のページを自分のページの一部として勝手に利用してるなら文句言わない。


596:Name_Not_Found
08/03/31 10:17:53 tBapcs7W
JavaScriptでクエリを取得するにはどうすればいいですか?
(正しくは文字列をわける方法かもしれません)

以下のようなアドレスから「1=%u592A%u90CE」、「5=%u307E%u306A%u307F」
を取得したいです。
URLリンク(***.***.***)

597:Name_Not_Found
08/03/31 10:40:00
>>596
?でぶった切ってさらに&でぶった切る

598:Name_Not_Found
08/03/31 10:52:36 tBapcs7W
>>596
ありがとうございます。

&でぶった切るにはどうすればいいですか?
簡単なコードを示していただけませんか?

599:Name_Not_Found
08/03/31 11:04:46
>>598
スレリンク(hp板)
恐らくこっちのスレの方で答えを貰えると思われ。

600:Name_Not_Found
08/03/31 11:08:11 tBapcs7W
>>599
わかりました。
紹介してくださったスレで再度質問してみます。

601:Name_Not_Found
08/03/31 11:53:16
>>596-600
そんなの振るまでもないと思うけどなあ。
a = str.split('?'); // ?のところで分ける
b = a[1].split('&'); // &のところで分ける
これであなたが必要としている文字列がb[0]とb[1]に入るでしょ。
あとはsplitのリファレンスを見て理解してくれればおっけーかと。

602:597
08/03/31 11:55:14
>>601
別におれは振ったつもりはないけどな。一緒にしないでくれ。

603:Name_Not_Found
08/03/31 11:56:03
すまなかった。今は反省している。

604:Name_Not_Found
08/03/31 12:20:41 dFXWPTO8
>>601-603
ワラタ


605:Name_Not_Found
08/03/31 12:49:53
ほんとpipiは素人丸出し

606:Name_Not_Found
08/03/31 13:01:35 tBapcs7W
>>601
ありがとうございます。

文字列を分割するときはsplit関数を使うんですね。知りませんでした;
var a = location.search.split("&");

607:Name_Not_Found
08/03/31 20:28:23 TVi8RYxA
えっと、簡易的なパスワードメーカーを作ろうと思うのですが、
まずファイルを一つ作って設定などをして、その設定をクエリにつけて別ページで開く方式にしました。

で、URLリンク(www.xxx.net)
にアクセスさせて、
set = location.href.split("?")[1].split("&");//URLの?以降を取得し&で分割
word = set[0].split("=")[1].split("");    //setの&より前の=以降を取得
number = set[1].split("=")[1];        //setの&以降の=以降を取得
って感じに設定を読み込むところまで行きました。

そのあと、wordをnumberの分だけランダムに表示するにはどのようにすればいいでしょうか?
それ以前の設定取得に問題があれば指摘お願いします

608:Name_Not_Found
08/03/31 20:41:42
location.search.substring(1) だろ。わけわかんねえゴミ書いてんじゃねえよタコ。rfc読んで来いボケ。

609:Name_Not_Found
08/03/31 21:19:16
>>608
横からスマンけど、
DOM Level0なwindow.locationがRFCに書かれてたっけ?
URLリンク(www.ietf.org)
には当然のように無いけど。

610:Name_Not_Found
08/03/31 21:22:23 TVi8RYxA
そうなんですかー…
自分はURLを取得するのがlocation.hrefってことしか知りませんでした;

set = location.search.substring(1).split("&");//URLの?以降を取得し&で分割
word = set[0].split("=")[1].split("");    //setの&より前の=以降を取得
number = set[1].split("=")[1];        //setの&以降の=以降を取得

って感じですか?


611:Name_Not_Found
08/03/31 21:33:29
>>608
タコに謝れ

612:Name_Not_Found
08/03/31 21:36:58
>>608
イカん

613:Name_Not_Found
08/03/31 23:08:04
>>610
for(i=0;i<number;i++){
document.write(word[Math.floor(Math.rondom()*word.length)]);
}

無理あるかも。

614:Name_Not_Found
08/03/31 23:43:13
protothickbox-js-3.1の質問です。
設定は終って普通に動作してるんですが、画像をクリックして
ウインドウが開く→閉じる
この時に、何故かリロードしてしまいます。
画像一覧がページの下まで続いているんですが、
毎回一番上まで戻ってしまってこまっています。。。
いじった部分は、サムネイル画像にcssで枠とかの装飾をしただけです。
誰か、原因がわかる方はいらっしゃいませんでしょうか?

615:Name_Not_Found
08/03/31 23:44:12
>>607
wordをnumberの分だけランダムに表示する、とはどういうこと?
wordは配列だよね。


616:Name_Not_Found
08/03/31 23:46:56
>>614
テンプレは全部読んだかね。

617:614
08/04/01 00:16:51
>>616
読みました。どれか答えが書いてあるんでしょうか???
よくわからないのですが。。。

618:Name_Not_Found
08/04/01 00:39:58
>>586
これよろしく。もし、誰も使い方が分からないならテンプレに入れるべきじゃないんじゃ?

619:Name_Not_Found
08/04/01 01:04:10
>>609
たしかにJavaScriptってRFCみたことないな。DOMだけだと思った。


620:607&610
08/04/01 01:21:12 YqB2oWd3
>>613ありがとうございました!

設定ページを作る際で再び質問なんですが、
<form name="passMake">
<input type="checkbox" value="1">1
<input type="checkbox" value="2">2
<input type="checkbox" value="3">3
<input type="text" value="">文字数
<button onclick="makePass()">生成</button>
function word(){
for(i=0;i<3;i++){
document.forms[0].elements[i].value
}}
ってなかんじにHTML出力して、makePass()を
window.open('./make.html?'+word()+','document.forms[0].elements[4].value');
にしても出来ませんでした。
どうすればいいでしょうか?

621:620
08/04/01 01:22:49 YqB2oWd3
書き忘れました。
pass()の値がundefinedになって返されます。

622:Name_Not_Found
08/04/01 01:30:52
何を言っているんだい?

623:Name_Not_Found
08/04/01 01:37:02
>>621
pass()なんて関数が見つからないな。
word()じゃないの?

624:620
08/04/01 01:43:52 YqB2oWd3
>>623
すいません、間違えました。word()です

625:Name_Not_Found
08/04/01 01:46:10
>>621
word 関数で return してない
ちなみに elements[4] なんて存在しない

626:620
08/04/01 01:49:08 YqB2oWd3
elements[4]は文字数のところが扱われるみたいなのですがー…

627:Name_Not_Found
08/04/01 01:59:46
ひゃー、がんばれ回答者!

628:620
08/04/01 02:03:11 YqB2oWd3
document.フォーム名.コントロール名.valueでフォームの内容って呼び出せるんですか?

629:620
08/04/01 02:18:10
>>628
すいません、自己解決いたしました。
>>625
ありがとうございました!

630:Name_Not_Found
08/04/01 02:43:11
人の話を聞かないバカは一生バカなんだよな
教えてもらっといて自己解決とか言ってるよコイツ
一人でできたと思ってるからバカから脱出できずにここまで来たわけか

631:Name_Not_Found
08/04/01 02:58:19
横入りですまんが、
620は628の件をいつ教えてもらってるのだろうか。(簡単なことだけどね

632:Name_Not_Found
08/04/01 03:07:22
>>630
馬と鹿に謝れ

633:Name_Not_Found
08/04/01 03:21:58
>>599で誘導した判断は正解だったという事か。

634:Name_Not_Found
08/04/01 03:23:25
人それぞれさ。

635:Name_Not_Found
08/04/01 03:25:56
えっと、ランダム表示する際に
Math.floor(Math.random()*x);
で、なんまでのランダムかっていうのはxで決められるのですが、
xからyまでのランダム表示ってどうやるのでしょうか?

636:Name_Not_Found
08/04/01 03:32:03
Math.random() * (y - x + 1) + x | 0

637:Name_Not_Found
08/04/01 03:46:22
負数のこと考えてなかった
(Math.random() * (y - x + 1) | 0) + x

638:Name_Not_Found
08/04/01 04:07:53
<input type="file"> で表示できる、ファイル選択ダイアログの
「ファイルの種類」をJS側で指定する方法を教えてください。
よろしくお願いします。

639:Name_Not_Found
08/04/01 04:10:00
できますん

640:Name_Not_Found
08/04/01 06:15:23
何度この質問が繰り返されるのだろうか
そろそろテンプレ入れとけよ

641:Name_Not_Found
08/04/01 08:52:47
>>637
なぜ1足す必要がある?>>635からすると乱数の範囲にxは含まれて
いないはずだが。

642:Name_Not_Found
08/04/01 11:23:11
>>641
たとえば「3から5までの乱数」っていったら 3,4,5 じゃないの?

643:Name_Not_Found
08/04/01 11:42:05
|ってなんですか?

644:Name_Not_Found
08/04/01 11:45:05
>>643
[必読]ガイド

645:Name_Not_Found
08/04/01 11:49:55
ビットごとのor?

646:Name_Not_Found
08/04/01 11:53:20
637でやってみたのですが、xに5、yに10を代入したのですが、
なぜか05,15,25,35,45,55...などが出てきてしまいます

647:Name_Not_Found
08/04/01 12:02:19
>>646
おまえは1から10まで面倒見てやらんと駄目なのか

Math.random2 = function(a, b) {
  a = Number(a) | 0, b = Number(b) | 0;
  if (b < a) {
    var tmp = a;
    a = b;
    b = tmp;
  }
  return (Math.random() * (b - a + 1) | 0) + a;
};

648:Name_Not_Found
08/04/01 12:11:12
>>647
すいません、ありがとうございました

649:Name_Not_Found
08/04/01 12:12:07
ところでビットORを使うと32ビット整数の範囲に限定されちゃうけどそれでもいいの?

650:Name_Not_Found
08/04/01 12:12:11
いや。洩れはそんなのより、>>646がやったというコードにすごく興
味がある。もしかして、JavaScriptの重大なバグなのかもしれない。

651:Name_Not_Found
08/04/01 12:32:42
>>646のソース漏れも知りたいかも

652:Name_Not_Found
08/04/01 12:33:46
安易に正解を晒した>>647が悪い。

653:Name_Not_Found
08/04/01 12:37:49
646のソースがわかったぞ!(一つの可能性として

654:Name_Not_Found
08/04/01 12:38:36
x、yが字列型なだけだろ

655:Name_Not_Found
08/04/01 12:38:54 kmS3TLCh
javascriptでMath.floor(Math.random()*3000)だと3000という数字はでないですよね?
0から2999までが表示されるんですよね?

656:Name_Not_Found
08/04/01 12:39:30
どう見ても文字に加算しただけだろ

657:Name_Not_Found
08/04/01 12:46:59
Math.floor(Math.random()*3)で試せばいいじゃん

>>646
頑張っていろいろやってみたけど
var num = "10.5".split(".");
でnum[0]とnum[1]を呼び出すとそうなるみたいだね。
結局は数字として扱わないとダメなんだな

658:Name_Not_Found
08/04/01 12:50:56
結局>>653の公表は無し

659:Name_Not_Found
08/04/01 13:31:25
>>655
ごく稀な確率ででるよ。
Math.ceil(乱数)-1にすれば予想外の数値は出ない。

660:Name_Not_Found
08/04/01 13:41:55
ごめん-1がでちゃうな。


661:Name_Not_Found
08/04/01 13:59:36
>>659
出るようならその処理系が糞なだけ。
URLリンク(www2u.biglobe.ne.jp)

662:Name_Not_Found
08/04/01 14:20:38
馬鹿に教えるのはもったいないから放置

663:Name_Not_Found
08/04/01 14:48:12
>>659
確率の問題じゃないよ。だからrandom()は怖いんだ。

そもそも論でいうと、こんなsplit()も知らなかった素人に付
き合って振り回されているのが原因だろ。いい加減にして保水。

664:Name_Not_Found
08/04/01 14:56:52
ヒント: 日付

665:Name_Not_Found
08/04/01 15:02:06
random()は怖くないでしょ

666:Name_Not_Found
08/04/01 17:19:51
全角文字は出ないと思うが。

667:Name_Not_Found
08/04/01 17:43:27
何の話だ

668:Name_Not_Found
08/04/01 17:44:28
Math.gundom()の話らしい

669:Name_Not_Found
08/04/01 18:31:31
Math.randam()って書いてるバカがネットには45人いるね。
みんな日本人。

670:Name_Not_Found
08/04/01 20:30:22
SJISコードのCSVファイルをjavascriptでブラウザに一覧表示する方法が
あれば、ご教授頂けないでしょうか?

prototype.js等でCSVファイルの一覧表示は可能ですが、
CSVファイルの文字コードがSJISの場合は文字化けしてしまいます。
CSVファイルの文字コードがUTF-8の場合は正常表示します。

※データバインド機能はIE依存のため採用できません。
 また、perl、PHP等サーバサイドの言語は利用できません。

671:Name_Not_Found
08/04/01 21:38:13
45人いたw

672:Name_Not_Found
08/04/01 21:54:09
>>669
なんでその単語で検索しちゃったの?

673:Name_Not_Found
08/04/01 22:47:24
パスメ作ってた奴です。
URLリンク(whss.biz)
こんな感じに完成したのですが、なぜかword_3()に9が入りません。
それと、make.htmlの問題だと思うんですが、大文字が選択されてないとエラーになります。

どうすればいいでしょうか?

674:Name_Not_Found
08/04/02 00:00:08 ftT/9j8C
質問です
あるサイトを開いたら画面下の方に、エラーが発生しました、と出ました
またそのサイト内にある動画を見れるメディアへのリンクをクリックしても、
javascript:void(playMedhia2~うんちゃらかんちゃら~)という表示が出てしまい、
見ることができません。詳細を見たらオブジェクトを指定してくださいと出たのですが、
見れるようにするためには一体どのような方法を取ればよいのでしょうか

ご教授よろしくお願いします。

675:Name_Not_Found
08/04/02 00:03:59
>>674
そのサイト管理者に連絡

Javascriptエラー吐くような糞サイト作ってんじゃねーぞヴォケが
とやさしく教えて差し上げましょう

676:Name_Not_Found
08/04/02 02:46:27
>>673
name を適当に(しかも同じのを)付けるからそうなる
見通しが悪くて修正もしにくい
例えば
name="word_A" とか name="word_a" とか name="word_0" とか付けといて

function piyo(){
var word ="";
for(i=0;i<document.forms["passmaker"].elements.length;i++){
var matched=document.forms["passmaker"].elements[i].name.match(/^word_(.)$/);
if(matched) word+=matched[1];
}
return word;
}

あと make.html の方は
location.search が決まったフォーマットに則っていることを前提にしか
正しく動作しないのでこれはちょっと危うい
そもそもページを遷移させる必要もないんじゃないか?

677:Name_Not_Found
08/04/02 12:03:30
動的にscript作る時の質問です。

今まで、下のようにdocument.bodyにappendChildしていたんだけど、
最近document.lastChild.appendChild(script);という書き方で
lastChildにappendChildしてるを見かけました。
document.bodyだとマズいパターンがあるということなのかわかる方いますか?

「bodyという名前を付けないことでbodyがなくても大丈夫だから」
と、一瞬思ったのだけど、そんなサイトそもそもダメだろうと思いなおした。

//=============サンプルコード===================
var url = <scriptのURL>
var script = document.createElement('script');
script.charset = 'utf-8';
script.src = url;
document.body.appendChild(script);

678:Name_Not_Found
08/04/02 13:24:40 0lnjP7c7
Visual Web Developper 2008 Express Editionで本の通り「プルダウンメニュー」を作ろうとしたら、メッセージ《’X’は既に定義されています》《’Y’は既に定義されています》
と出ます。エラーではない?どこかおかしい??

var gCurrentMenuID = null;
function viewMenu(objID)
{
hideMenu();
document.getElementById(objID).style.visibility = "visible";
gCurrentMenuID = objID;
}

function hideMenu()
{
for(var i=1; i<=maxMenu; i++)
document.getElementById("pMenu"+i).style.visibility = "hidden";
gCurrentMenuID = null;
}

No.1

679:Name_Not_Found
08/04/02 13:25:12 0lnjP7c7
No.1の続きNo.2

function checkOut(evt)
{
if (gCurrentMenuID)
{
if (document.all)
{
var X = event.x;
var Y = event.y;
           }else{
var X = evt.pageX;
var Y = evt.pageY;
}
var obj = document.getElementById(gCurrentMenuID);
var sx = parseInt(obj.style.left);
var sy = parseInt(obj.style.top) - mHeight;
var ex = sx + parseInt(obj.style.width);
var ey = sy + parseInt(obj.style.height) + mHeight;
if ((X < sx) || (Y < sy) || (X > ex) || (Y > ey)) hideMenu();
}
}
document.onmousemove = checkOut;


No.2

680:Name_Not_Found
08/04/02 14:20:02
ちゃんと言語の勉強しなよ。エラーメッセージまんまじゃないか。
言語の勉強もせずに開発しようなんて片腹痛いぞ。

681:Name_Not_Found
08/04/02 14:28:55 0lnjP7c7
参考書丸写しでこの結果です

682:Name_Not_Found
08/04/02 14:43:21
>>679
簡単に言うと、JavaScriptはfunction内でvar X, varYの宣言は一回で良いのだよ。
その辺がperlとかと違う。
「スコープ、ブロック、JavaScript」とかでググると出てくる。

と言うことで、誰か>>677を知りませんか。

683:Name_Not_Found
08/04/02 15:39:24
>>682
その記述がある時にdocument.bodyは存在してるの?
オレならbodyでもlastChild(html)でも無くheadにappendChildするかも。


>>679
if (document.all)
{
var X = event.x;
var Y = event.y;
  }else{
var X = evt.pageX;
var Y = evt.pageY;
}
の部分を
if(!evt) evt = event;
var X = evt.x || evt.pageX;
var Y = evt.y || evt.pageY;
に置き換えたらどうなりますか?

684:Name_Not_Found
08/04/02 16:40:38
メッセージ表示がなくなりました
ありがとうございます!!

685:Name_Not_Found
08/04/02 17:26:07
var zero = 0;
var undef;
alert( zero || undef );

論理演算子でfalseと判定されるのは、
null,undefined,false,0,NaN,''
だっけか。''(空文字列)は結構忘れられやすいので、潜在的なバグとなる可能性も。

686:Name_Not_Found
08/04/02 17:35:17
お、そうだね。
0のケース全然考えもし無かったよw

orz

687:Name_Not_Found
08/04/02 17:40:05
evt.x || evt.pageX || 0 とか

688:Name_Not_Found
08/04/02 18:15:49
>>687
そだね。それで大丈夫だろね。


全く無関係だが >>669
今、シュミレーションを検索したら 3,540,000件もあったぞ。
ここまでくると日本語として成立してしまってるのか・・・な?


689:Name_Not_Found
08/04/02 19:08:40
>>688
JS覚える前に、まずは日本語英語を覚えような

 × シュミレーション
 ○ シミュレーション

690:Name_Not_Found
08/04/02 19:16:23
>>689
>>669は見た?
688は 良く間違われる言葉「シュミレーション」を検索したら
こんなにでてきちゃったよ。って内容なんだけど・・・

スレとは無関係すぎるけどなw

691:Name_Not_Found
08/04/02 19:30:53
ぁー早漏な漏れスマソ

692:Name_Not_Found
08/04/02 19:31:37
>>688
なんでその単語で検索しちゃったの?


693:Name_Not_Found
08/04/02 19:52:30
>>691 んにゃべつにw
>>692
アナウンサーまで含めて日本人が良く間違う言葉だから。
669を見て、ふと数を調べてみたくなったから。

面白い答え思いつかなくてゴメン

694:Name_Not_Found
08/04/02 20:15:28
うん。スレ関係で言うと、リファラの英語綴りも多いね。まちがい。

695:Name_Not_Found
08/04/02 20:37:31
CGIでHTTP_REFERER使うけどJavaScriptだとreferrerだから
今でもたまにRが抜ける事はある。

696:Name_Not_Found
08/04/02 20:49:03
>>677
HTML的に妥当でない。

>>687-688
この話題も繰り返し出る気がするが、A || B || C は A が真になりうるなら A を返し、後ろを評価しない。
evt.x || evt.pageX || 0 という順番はこれで良いのか。無駄が多すぎないか。

そもそもスクロール量を加味しない evt.x と、スクロール量を含む evt.pageX を等価に並べていること自体がおかしい。
Fx 以外は evt.x で引っ掛かり、スクロール量を含めるのは Fx だけという分岐になるわけだが、果たしてそれが望む処理なのか。
スクロール量が不要なら、IE から DOM Level 2 Events にインポートされた clientX を見れば分岐など不要だ。
今どきNetscape Navigator 4対応などという幻想を抱いているわけでもないだろうに。

697:Name_Not_Found
08/04/02 20:55:06
>>677
すまん間違えた。妥当でなくはない。
document.body が null である事態を想定し、load を見ずに挿入する工夫なのだろうが、
document.lastChild が HEAD|BODY 要素である保証はない。
広告付きレンタルスペースなどは平気で HTML 要素の後に広告を付加したりするからな。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch