+ JavaScript の質問用スレッド vol.98 +at HP
+ JavaScript の質問用スレッド vol.98 + - 暇つぶし2ch576:Name_Not_Found
12/03/23 09:51:22.76
大規模って言えるものは無いかな?あるかな?
開発に15人くらいのプログラマが関わるのが大規模って言うならならあるんだけど
クラス?
一人もそんな言葉自分から言い出した奴は多分いなかったね
俺主導で俺がJS教えた奴らばかりだったからかもだけど?
まあそれがニューラルネットワクの話でクラス使うんだけどね


577:Name_Not_Found
12/03/23 10:12:41.28
>>576
ある程度の規模になってくると足並みを揃えることが大切だよね。
そういう意味では576は自分が主導する立場に立つことで足並みを揃えられた訳だけど、
世界一般で考えると、やっぱりクラスベースなんだよね。オブジェクト指向の支えもあってね。

"凝った"と批判するけども、サイ本に紹介されるようなクラス定義であれば特別凝った方法だとは思わないし、
それで開発の基盤を築けるならもう使うしか無いよね。たとえばドキュメントなんかもそう。ある程度はっきりとした
"クラスとはなにか”が定義されていないと、今のようなウェブアプリ開発なんてやっていけない。

書き込みを読んでていても、いまいちJSのクラスを批判する理由が分からない。

578:Name_Not_Found
12/03/23 10:15:24.24 nsoPDskq
>>574
javascriptには↓のようにクラスも継承も仕組みとしてはあるぞ。
別に擬似的に再現してるわけじゃないんじゃね?
言語の能力を抑制して開発するのも悪いことじゃないから攻めはしないが。。。


>function Base(arg){
> this.arg = arg;
>}
>Drive.prototype.methodA = function(){
> alert('Base.methodA:'+this.arg);
>}
>
>function Drive(arg){
> Base.apply(this,arg);
>}
>Drive.prototype = new Base;
>Drive.prototype.constructor = Drive;
>Drive.prototype.methodB = function(){
> alert('Drive.methodB:'+this.arg);
>}


579:Name_Not_Found
12/03/23 10:22:47.22
ああ悪かったprototypeを使ったやり方にケチ付けてるんじゃ無いんだ
だがそれは元々言語仕様としてクラスからそれ繋がりで継承が抜群に定義されてる言語でいうクラスとは違う
見せかけのクラスだ、もちろんそれを分かって使うのは素晴らしいことだ


580:Name_Not_Found
12/03/23 10:37:46.51
それが「見せかけのクラス」だっていう考え方がそもそも違うな
JSでOOPするにはこうしますっていうJSなりの自然なやり方を
お前みたいなアンポンタンにも分かりやすく教えるために
「つまりこれはクラスみたいなもんですよね」って言ってるだけだ

581:Name_Not_Found
12/03/23 10:45:21.60
だからクラスみたいなものと思うのは良いっすよ
だってクラスみたいなものなのは間違いないじゃない
つうか構造上は実質クラスだし?いやクラスだから

そういう事じゃなくて…………
JSにはクラスという機構があるみたいに思ってそれに凝る風習があるのに違和感感じてるんですよ

582:556
12/03/23 11:30:25.16 YJLrIXia
レス色々ありがとうございます。

訳あって
var Func1
の部分を変えることができないので、そのままの形で継承させたいのです・・

>>559
var Sample2 = Sample();
Sample2.run();

これだと継承になっているでしょうか?
新しく定義したい
Sample2.alert_run の中でrunを走らせることができないようです

583:Name_Not_Found
12/03/23 11:33:46.06
大規模なものは技巧に走ると破綻する

584:Name_Not_Found
12/03/23 11:53:37.30
JavaScriptがLISPやScheme系の言語でC++やJavaとは違うってことを受け入れられずに
C++やJavaのようなクラス継承を実現しようと腐心してJavaScriptはクソ言語だと...(省略)

585:Name_Not_Found
12/03/23 12:13:14.58 nsoPDskq
>>582
Sampleはそもそもクラスじゃなくオブジェクト(インスタンス)だから継承したいってのがそもそも。。。

var Sample2 = {

586:Name_Not_Found
12/03/23 12:25:43.09
>>582
ややこしいからprototype.jsなしで説明するが

function A(name){ this.item = name; }
A.prototype.udon = function(){ alert("好きなうどんは"+this.item); };

function B(name){ this.item = name; }
B.prototype = new A(); // ここで継承
B.prototype.soba = function(){ alert("好きなそばは"+this.item); };

var b = new B("きつね");
b.udon(); // 継承したからメソッドudonが使える

この継承と、定義したudonを余所から使うことは全く別次元の話で

A.prototype.udon.apply(thisとして扱いたいオブジェクト,引数配列);

てすれば、クラスも継承も関係なく使える
もちろん他のクラスのメソッド中でも構わない

587:Name_Not_Found
12/03/23 12:26:06.26 nsoPDskq
↑失敬

>>582
Sampleはそもそもクラスじゃなくオブジェクト(インスタンス)だから継承したいってのがそもそも。。。
やりたいのは↓ってことでいいのか?

>var Sample2 = Object.extend({
> alert_fun:function(){
> return this.run();
> }
>},Sample);


prototype.jsのObject.extend()って第一引数にプロパティ追加して返す感じだったから、第一引数=Sampleにしとくとオブジェクト汚染する。
Object.extend()ってちなみにオブジェクトの拡張であってクラスの継承ではないぞ。


588:586
12/03/23 12:42:15.07 M/+jiXcZ
>>587
ちゃんと見てませんでした
>>586
すまんこ

589:Name_Not_Found
12/03/23 14:07:39.98
>>582
だからさ、「継承」なんてもっともらしいこと書くから
prototypeうんぬんのレスがわんさか出てくるのよ。さっぱりわからんだろ。
わけもわからず「継承」なんて持ち出すなってこと。

「継承って何?」て話なら別だけど、var Func1 をよそで使いたいって話だろ?違うのか?

var Sample2 = Sample();
Sample2.alert_run = function() {
this.run();
};
Sample2.alert_run();

「新しく定義したい Sample2.alert_run の中でrunを走らせる」でいいなら、なんとでもできるだろ。

590:Name_Not_Found
12/03/23 14:33:28.14
>>582
Sampleの定義部とSample2の定義部とを一ヶ所にまとめて書いていいなら、こんな感じかなあ。
横長でごめん。


var Sample, Sample2;
(function enclosure() { // Func1をローカルに隠す関数。説明のためだけに名づけていて、無名関数でも可
    var Func1 = {
        run: function () { alert("run"); }
    }; // 関数enclosure内で作られる関数(Sample, Sample2のインスタンスのメソッド)を介してのみ呼べる

    Sample = function () {}; // コンストラクタ グローバル変数Sampleにローカル関数への参照を入れている
    Sample.prototype.runOnce = function () { Func1.run(); };

    Sample2 = function () {}; // コンストラクタ
    Sample2.prototype = new Sample(); // ※1
    /* 継承。Sample2のインスタンスでメソッドrunOnceを呼ぶと、
    ※1で作られるSampleのインスタンスの、メソッドrunOnceが替わりに呼ばれる(委譲?) */
    Sample2.prototype.runTwice = function () { Func1.run(); Func1.run(); }; // 2回呼ぶメソッドを追加
})();
/* 関数enclosureの定義部が終わってすぐに呼び出している
これ以降で直接 Func1.run(); と呼ぶことはできない
Func1.run を呼ぶメソッドをさらに追加することも、これ以降はできない */

var s = new Sample2();
s.runTwice(); // Func1.run が2回呼ばれる

591:590
12/03/23 14:38:41.54
590の続き。Sampleの定義部とSample2の定義部とを離して書きたいなら、
Func1を見えるところに出すしかない。
下の※2のようにSampleにぶら下げておくのが一般的かと思います。


function Sample() {}; // コンストラクタ この場合は関数定義文でもOK
Sample.prototype.runOnce = function () { Sample.Func1.run(); };
Sample.Func1 = {
    run: function () { alert("run"); }
}; // ※2

function Sample2() {}; // コンストラクタ
Sample2.prototype = new Sample();
// 継承。「※2でSampleにぶら下げたFunc1がSample2にもぶら下がる」ということには「ならない」ことに注意
Sample2.prototype.runTwice = function () { Sample.Func1.run(); Sample.Func1.run(); };

var s = new Sample2();
s.runTwice();
/* ここで直接 Sample.Func1.run(); と呼ぶことができるし
Sample.Func1.runを呼び出すメソッドをさらに追加することもできる
Sample.Func1.run 自体を書き換えることでrunOnceの動作も変わることに注意 */

592:Name_Not_Found
12/03/23 14:49:37.74 nsoPDskq
>>582
んで、本当にやりたかったことは何だったの?
プロジェクトリーダーの理解は本当に正しかったの?

URLリンク(cdn-ak.f.st-hatena.com)

593:Name_Not_Found
12/03/23 15:54:38.19
ここのスレの皆でCoffeeScriptみたいなの作ろうぜ

594:Name_Not_Found
12/03/23 16:47:40.55 nsoPDskq
>>593
コーヒースクリプトじゃイカんのか?

595:Name_Not_Found
12/03/23 17:18:50.47
世界にアピールするにはGreenTeaとかの方がいいな

596:Name_Not_Found
12/03/23 21:38:45.56 P6jysABl
javascriptのゲーム開発に興味があって
arctic.jsというライブラリのソースを見ています。

/**
* 回転角度を取得
* @returns {Number} 回転角度
*/
getRotation:function(){
return this._rotation;
}

この例のような関数の上にコメントをつけるパターンは
javascriptでは流行っているものなのでしょうか。
また、こうしたコメントはツールか何かで自動で記述しているのでしょうか。
よろしくお願いします。

597:Name_Not_Found
12/03/23 21:47:42.82
>>596
コメントは開発者が明示的に記述するもの。
目的は保守性の担保。
関数の処理単位のコメントは関数の上に。
詳細な処理は関数内で随時。


598:Name_Not_Found
12/03/23 21:47:46.10
まずJsDocでググろう

599:Name_Not_Found
12/03/23 22:13:17.38 P6jysABl
ありがとうございます。
なるほど、JsDocというものがあるのですね。
これについて調べていたところGoogle JavaScript Style Guide
というものを見つけました。
これを見たところ、コメントはJsDocで書くべきといような
ことを書いていますので、そうしたいと思います。
enchant.jsというゲームライブラリもそうなっているようです。

プライベートの変数の先頭には_を付けるのも主流なようですね。
文字列は""ではなく、''とするべきとも書かれています。
確かに手元のライブラリでは9割以上''が使われていますが
一部の場面で""が使われています。
if(typeof arguments[0] == 'function'){
}
というような場面はいつも''なのですが、
throw new Error("invalid frame index");
というようなメッセージを記述している場合は""になっていることがあります。
これは何か意図があってのことでしょうか。
それともうっかり""にしてしまったということなのでしょうか。

600:Name_Not_Found
12/03/23 22:18:19.47 P6jysABl
Google JavaScript Style Guide をよく見ると末尾に_とありますね。
これはoffsetX_のようにすべきということでしょうか。
手元のライブラリでは_offsetXというように前に_をつけています


601:Name_Not_Found
12/03/23 22:43:50.36
>>599 JSにおいてはシングルとダブルに違いはないからうっかりだと思う
>>600 どちらが正しいという訳ではない。好きな方を使えばいいし、ルールがあるなら従うべき。

602:Name_Not_Found
12/03/23 22:48:22.15
前から思ってたんだけどgoogle関連って有料にならないの?
無料で使わせてたらメリットなくね?

603:Name_Not_Found
12/03/23 22:51:08.10 P6jysABl
>>601
なるほど。
ありがとうございます。

604:Name_Not_Found
12/03/23 23:12:48.05
>>602
クロームが一番効率的に処理できるようなライブラリを配布してんじゃね

605:Name_Not_Found
12/03/23 23:17:11.83
何それ超セコイ

606:Name_Not_Found
12/03/23 23:20:14.37
すでに企業が利用するようなのは無料じゃなくなってるよ

607:Name_Not_Found
12/03/23 23:46:17.71 M/+jiXcZ
GoogleMapAPIも大アクセスすると課金されるようになりましたしね

608:Name_Not_Found
12/03/24 00:32:34.00
【環境】
WinXP SP2, SP3 IE6 / Win7 SP1 IE8
jquery 1.7.1

【何がしたいのか】
JQueryでセレクタの値をタグの種類、属性に依らず透過的に取得できる関数を作りたい。
引数としてid属性、またはname属性を可変個受け取り、対応する値を取得する必要があります。

今は各タグ種類ごとにname属性とid属性で値をとってみて、取れればそれを戻すというやり方で愚直にやっています。
もう少し楽にタグ、属性の判別をする方法はないでしょうか。

【期待する結果】
textbox(input type='text')の場合はvalue、
selectBox(select option)の場合はselected、
ラベル(p, span)の場合はtextを取得し、
{KEY: VALUE, KEY2: VALUE2}のJSON形式に集約して戻す。
また、selectBoxが複数選択の場合は、VALUE部を配列にする。
※ KEY : 引数として渡された属性、VALUE : 取得した値

【サンプルコード】
// foo, baa, hogeはid、またはname属性の値
// hogeはselectBoxで複数個選択を想定
var jsonObj = func1('foo', 'baa', 'hoge');
alert(jsonObj) // => {'foo': 'val1', 'baa': 'val2', 'hoge': ['val3', 'var4']}

よろしくお願いします。


609:Name_Not_Found
12/03/24 01:03:49.36 XJ3TURWK
valとserializeではいかんの?

610:Name_Not_Found
12/03/24 04:18:17.68
608です。
var fArray = $('form').serialiseArray();
$(fArray).each(function(key, val) {
// マッチング
});
// マッチしない場合はラベルの可能性あり。

こんなんでいけそうな感じがしてきました…

611:Name_Not_Found
12/03/24 11:27:32.00
質問です

612:Name_Not_Found
12/03/24 11:31:28.93
ミスりました


javascriptのarrayは、vbscriptより処理が遅いという内容をネットで見たんですが、
本当にそうなんでしょうか?

外部のファイルを読み込んだりして、その情報を
jsでtableにし、結構沢山arrayを繰り返しで処理したりしています。

タイミングによりますが、ロードしたとき確かにちょっと時間かかるかなという時はあるような。

array自体や、document.writeなど、arrayの繰り返しに関わる部分だけ、
vbsの記述に直した方がいいんでしょうか?

613:Name_Not_Found
12/03/24 11:49:37.85
自分でちゃんと試せよ、試したんなら自分で結論出せるだろ

一応言っとくとvbの方が早いなんて有り得ないから
縄文時代から来た人でつか?

ロード時に時間がかかるのは最適化してるんだから当たり前

614:Name_Not_Found
12/03/24 12:19:34.32
縄文時代にはまだJavaScriptは誕生してないよ

615:Name_Not_Found
12/03/24 12:41:21.67
ワロタw
『絶対ない』と言う事を証明出来る事は絶対ない
って常識なんですけどーw阿呆ですかーwんー?

616:Name_Not_Found
12/03/24 12:57:06.77
業務でブラウザ決め打ち出来るならともかく、いやそれでもvbsとかやめろよ

617:Name_Not_Found
12/03/24 13:19:36.90
サーバーサイドのvbscriptとjscriptの話じゃね?

618:Name_Not_Found
12/03/24 15:12:39.10 lLyrOwf9
Function.prototype.applyの第二引数ってargumentsそのまま渡すとエラーになる実装って何かあったっけ?
昔何かあったような気がして、sliceかましてるけど、その実装がなんだったか思い出せないんだが、
もし自分の勘違いならその辺なおしたいと思って質問してるが、何か有用な情報あたらくれ。

619:Name_Not_Found
12/03/24 15:17:15.60
この世にブラウザ、バージョンは無数にある
自己判断自己責任で君の好きにやればいい

620:Name_Not_Found
12/03/24 16:28:19.97
少なくともIE6以降のwebブラウザでは問題ないと思うがなあ
Mac版IE5とかiCabとか初期のsafariとかとか、怪しい気がしなくもないけど

621:Name_Not_Found
12/03/24 16:49:20.78
IE で NodeList を渡せないってのはあるけど、arguments は大丈夫だとおも

622:Name_Not_Found
12/03/24 17:33:47.16
>>618
「sliceかましてる」って、そっちの方が危ないだろ

623:Name_Not_Found
12/03/24 17:39:13.37 lLyrOwf9
>>621
これを勘違いしてるかも試練。

>>622
どう危ないかご教授ねがえますでしょうか?

624:Name_Not_Found
12/03/24 17:51:08.93
いいから早くうせろって……空気読めよ

625:Name_Not_Found
12/03/24 18:21:02.56
でも少し…
この風…泣いています

626:Name_Not_Found
12/03/24 18:31:54.86
ここ質問スレじゃないの?

627:Name_Not_Found
12/03/24 19:28:58.24 lLyrOwf9
>>624
空気よんでないって俺か?
Array.prototype.slice.call(arguments,0)を行うことの危険性について知りたいって
質問が空気読めないっていわれてるなら、どうすればいいんだよ。

628:Name_Not_Found
12/03/24 19:40:07.79
解らずに批判した馬鹿だろほっとけ
sliceなんか古典的方法だし
多くのライブラリ等で使われてきた方法だろ


629:Name_Not_Found
12/03/24 20:15:38.40
>>627
Function.prototype.applyの第二引数にargumentsを渡せるのは仕様。
Array.prototype.sliceのthis値にargumentsが適用するかは実装依存。

630:Name_Not_Found
12/03/24 20:27:31.72
>>629
後半は間違ってるよ。

631:Name_Not_Found
12/03/24 20:46:14.40 lLyrOwf9
>>629
ありがとう。
ちょい仕様書読んでみるが、jsの場合は過去の実装依存が残ってる以上は仕様よりも実装優先、
過去の慣例のほう優先って感じだから、実装依存を無視できないのよ。。。

632:Name_Not_Found
12/03/25 05:27:03.93
applyの第2引数はまさしくargumentsになるのに、argumentsが渡せないのはどう考えてもおかしいだろ
そんな実装は聞いたことないし、どうやったらバグができるのか検討もつかないね

633:Name_Not_Found
12/03/25 05:29:53.56
もしかして:見当もつかない

634:Name_Not_Found
12/03/25 19:46:25.23
URLリンク(d.hatena.ne.jp)
>オブジェクトとstringがどのようにして比較されるか
について解説お願いできますか

635:Name_Not_Found
12/03/25 19:49:36.26
ゲーム製作用に右か左クリック長押しのときにイベント発生したいんですが何てイベントハンドラを使えばできますか?

636:Name_Not_Found
12/03/25 20:09:15.04
>>634
toStringとか比較とかでggrkstd
せっかくだから自力で調べてよくJSの根幹を理解しろ

>>635
ここは保育園じゃありませんよ!?ggrkstd
ググってもわからなかったら代案考えろ
そこがプログラマーにとって一番大切な所だ

637:Name_Not_Found
12/03/25 21:51:06.62
>>636
そんな文章は知識が無くても書ける
知らないくせに偉そうにレスするでない
引っ込んでおれ

638:Name_Not_Found
12/03/25 22:05:06.42


639:Name_Not_Found
12/03/25 22:07:47.84


640:Name_Not_Found
12/03/25 22:34:38.24
知らねえんだろと煽っても無駄です。とずっとテンプレに入ってましたからね。

641:Name_Not_Found
12/03/25 23:06:39.99
煽りじゃなくて忠告しただけだ。
無理にレスしないで引っ込んで俺と言っておるのだ

642:Name_Not_Found
12/03/26 01:15:05.47
>>635
mouseupとmousedownじゃねえの?

643:Name_Not_Found
12/03/26 08:17:30.30
>>641
君のレス付けは下手な催促か荒らしてるようにしか見えない事を客観的に判断できないと。
君は満足できたのかもしれないけど他人には迷惑にしかなってないから気をつけな。

644:Name_Not_Found
12/03/26 08:58:23.43
>>641
糞爺のeigodooみたいな奴だな

645:Name_Not_Found
12/03/26 10:05:51.89
>634,635は自分でここまでやりました感、コードが一切ない
ぱっとでの質問のように思わるのがいけないところ
コードがない質問は荒れるな

646:Name_Not_Found
12/03/26 10:48:15.12
黙れ

647:Name_Not_Found
12/03/26 10:49:00.75
知識も無いくせに威張りたいだけの低脳にようはない
誰も頼んでないから黙っていてくれないかね

648:Name_Not_Found
12/03/26 10:51:33.17
第一>>636はよく質問内容も理解できてないのに
>toStringとか比較とかでggrkstd
という的外れな回答にもならないレスをするでない!

649:Name_Not_Found
12/03/26 11:04:42.03
荒れるから他の回答者にケチ付けんなって
そんなに俺には他人より能力があると思うのなら黙って回答示しとけばカッコイイのに
まああんまり質問者を甘やかせるのもどうかと思うけどな

650:Name_Not_Found
12/03/26 11:23:05.24
質問者はマヌケ、回答者はマナーが悪すぎ

651:Name_Not_Found
12/03/26 12:39:56.84
jQuery使ってもライブラリ使っても解決するなら何でもアリなんですが
Ajaxで読み込んだファイルサイズを取得する方法ってあるんでしょうか?

652:Name_Not_Found
12/03/26 12:54:22.34 zaDWYvfi
ヘッダに書いてないかい?

653:Name_Not_Found
12/03/26 12:59:56.53
ごめんなさい言い忘れてました
読み込むのはデータを保管しているtextファイルです

654:Name_Not_Found
12/03/26 13:10:52.18
ヘッダにボディサイズが書いてあるだろ
ないのならlength使え

どちらもヘッダサイズを足すのを忘れんなよ

655:Name_Not_Found
12/03/26 13:42:25.42 0LZD1uwT
クライアントからのXHRリクエストにより、サーバーで複数のファイルに対して処理をするのですが
このとき処理結果と進行状況をクライアントに知らせるようにしたいと思っています。
で、次のようなテストコードを書きました。

※perlCGI(抜粋) - バッファリングを無効にして5秒ごとメッセージを出力している
$| = 1;
print "Content-type: text/plain; charset=utf-8\n\n";
map { sleep 5; print $_; } @results;

※javascript(抜粋) - レスポンス受信のたびメッセージを切り取って表示している
var cursor = 0;
xhr.onreadystatechange = function() {
 if (xhr.readyState === 3) {
  var message = xhr.responseText.substring(cursor);
  cursor += message.length;
  callback(message); // メッセージをHTMLリストに追加
 }
 else if (xhr.readyState === 4) {
  callback("finish!!");
 }
};

一応目的は達しているのですが、処理のよっては長時間(1分以上)接続したままになります。
こうした長時間の接続って通常、問題ないでしょうか。
cometやwebsocketsのプログラミングは未経験ですが、調べてみた範囲では
順番に受信して終わるだけの上記の目的には大げさにも感じました。
アドバイスもらえたらうれしいです。

656:Name_Not_Found
12/03/26 13:44:18.86
test.addEventListener('click', 'battle(10)', false);
第二引数で関数に引数をつけて書くにはどう書いたらいいですか?

657:Name_Not_Found
12/03/26 13:49:35.07 zaDWYvfi
>>656
test.addEventListener('click',function(){
  /* 関数側から引数になる値を取りに行けばいいよ */
},false);

658:Name_Not_Found
12/03/26 13:55:08.36
無名関数にしちゃうとremoveEventListenerで削除できないので困ります

659:Name_Not_Found
12/03/26 14:01:03.44
>>656
出来ません。共有したい値があるならオブジェクトを渡してください。

660:Name_Not_Found
12/03/26 14:07:47.25
wakarimasita

661:Name_Not_Found
12/03/26 14:55:10.70 zaDWYvfi
>>658
こうすればいいじゃない

var fn = function(){
  /* 関数側から引数になる値を取りに行けばいいよ */
}
test.addEventListener('click',fn,false);

662:Name_Not_Found
12/03/26 14:55:51.11 zaDWYvfi
セミコロンが抜けてた
すまんこ

663:Name_Not_Found
12/03/26 14:57:57.55
セミコロンなんてただの飾りです

664:Name_Not_Found
12/03/26 15:31:27.55
>>655
EventSourceってのがある

665:Name_Not_Found
12/03/26 16:28:43.71 0LZD1uwT
>>664
ありがとうございます。確認してみたところサーバー側の準備も特にいらないようですし
標準APIの安心感がありますね。どういう接続になるのか(>>655のXHRとの違いなど)
これから詳細を確認していってみようと思います。

ざっくりした解説のよさげなページがあったので貼っておきます
URLリンク(javascript-api.sophia-it.com)

666:Name_Not_Found
12/03/26 17:44:06.14 mUYzqlZ8
>>665
IE「標準APIの安心感?やらねぇよw」

667:Name_Not_Found
12/03/26 19:12:35.58
ある要素の横幅を取得する方法を教えてください

668:Name_Not_Found
12/03/26 19:24:10.06
a = function(){alert(1);}
b.addEventListener("click", a, false);
これができない
function a(){alert(1);}
b.addEventListener("click", a, false);
これはできる

なぜか?

669:Name_Not_Found
12/03/26 19:38:09.78
できるだろ

670:Name_Not_Found
12/03/26 21:07:04.64
質問です。
配列の添え字を、実際に数字で書くと動くのに、
変数を指定するとスクリプトが動かなくなるのは何故でしょうか。

var path = new Array();
path[0] = "\"C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE\"";
path[1] = "c:\\Windows\\notepad.exe";

function app(pathW){

wshshell=new ActiveXObject("WScript.Shell");
wshshell.run(pathW);

}

for(var z = 0 ; z < 1 ; z++){
document.write('<INPUT TYPE="button" NAME="string" VALUE="string" ONCLICK=app(path[z])>');
}



671:Name_Not_Found
12/03/26 21:10:09.93
document.writeされた内容を確認してみたら一目瞭然

672:Name_Not_Found
12/03/26 21:18:09.36 zaDWYvfi
>>670
path[z]が文字列になっとるがな

673:Name_Not_Found
12/03/26 21:30:28.39
document.write('<INPUT TYPE="button" NAME="string" VALUE="string" ONCLICK=app(',path[z],')>');

でしょうか?
うまくいかんです・・・

カンマで繋げると、とほほ等には書いてありましたが。。。

674:Name_Not_Found
12/03/26 21:50:36.31 zaDWYvfi
いくらなんでも…と思ったらマジだった
URLリンク(www.tohoho-web.com)

+で繋げばいいよ
あと、とほほじゃなくてMDNとか見るといいよ

675:Name_Not_Found
12/03/26 21:52:08.28
またと古くさいとほほにひっかかってる。まあ、document.writeの結果が求めるものに
なるまでがんばったらいいんじゃないの。つか、過去すれ全集見ればいくらでもそういう
ことやってるサンプルがあるんで、探す気があるかないかだけの問題だな。

676:Name_Not_Found
12/03/26 22:08:37.81
>>666
eventsource.jsでIE向けにも使ってる

677:Name_Not_Found
12/03/26 22:38:39.84
すいません、初心者すぎるのか、理解力か低すぎるのか・・・

document.write('<INPUT TYPE="button" NAME="string" VALUE="string" ONCLICK=app(' + path[z] + ')>');
だと、読み込み時からエラーで

document.write('<INPUT TYPE="button" NAME="string" VALUE="string" ONCLICK=' + app(path[z]) + '>');
だと、読み込み時に勝手に実行されます。


過去スレ全集とは、落ちたスレも見れるサイトがあるのでしょうか?

678:Name_Not_Found
12/03/26 22:57:19.37
あんたがテンプレの >>1 すら読んでないことはよく分かった。それでいて自分の質問だけは
するのね。よく考えた方がいいよ。

679:Name_Not_Found
12/03/26 23:03:40.27
>>673-674
どこにも「カンマで繋げる」なんて書いてないけど。
たとえば、document.write(a,b) としたら、これは document.write(a);document.write(b); と同様。
タグの場合は一度に出力するんだから当然 + での連結になるよね。

680:Name_Not_Found
12/03/26 23:30:14.56
>>677
基礎をちゃんと勉強するべきかも。それと、エラーが出るんだったらその内容を伝えないと。
以下は動作確認はしてないけど、同じような形で書きなおしてみた。

var paths = [
'\"c:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE\"',
'c:\\Windows\\notepad.exe'
];

var run = function(path) {
if (typeof path === 'number') {
path = paths[path];
}
var wshshell = new ActiveXObject("WScript.Shell");
wshshell.run(path);
};

for (var i = 0; i < paths.length; i++) {
var path = paths[i];
var name = path.slice(path.lastIndexOf('\\') + 1);
document.write('<input type="button" value="' + name + '" onclick="run(' + i + ')">');
}
document.close();

681:Name_Not_Found
12/03/26 23:41:35.71
>>680
ありがとうございます。
参考にもうちょっと勉強してきます。

他、レスくれた方々もありがとうございました。

682:Name_Not_Found
12/03/27 07:08:51.36
わからないのをいろいろ考え試行錯誤するのがためになるのに
2、3日くらい考えてもいい

683:Name_Not_Found
12/03/27 16:36:25.45
<img id="ura3" src="ura2_s.png">

画像を→ボタンを押して動かすにはどーするのですか?



684:Name_Not_Found
12/03/27 16:41:40.73
 if (式) {実行文}

 (式) && (実行文);

という書き方で、代用する書き方は一般的に多用してもいい?

685:Name_Not_Found
12/03/27 17:22:32.89 6GXlzqDM
>>683
キーイベントを拾って
<img>のスタイルを変更すればいいよ

686:Name_Not_Found
12/03/27 17:27:15.53
>>684
if文の代用って発想はなかったなぁ。
簡単な例文を書いてみるといい。それで回答を求めたらどうか。

687:Name_Not_Found
12/03/27 17:32:01.83
>>684
perlなんかでやるよね。
可読性を損なわないと思うなら、使えばいいんじゃないかな。

688:Name_Not_Found
12/03/27 17:48:00.70
可読性は置いといて、評価だけでも普通に使うのか。(オレはやんない)

689:Name_Not_Found
12/03/27 18:22:56.48
"一般的に"ならこんなこと聞く必要もないだろ
わざわざ聞くのは自分で一般的じゃないと思ってるからだ

690:Name_Not_Found
12/03/27 19:48:33.66
>>684
短けりゃいいんじゃね?

691:Name_Not_Found
12/03/27 19:59:29.74
>>684
なんでもいいんじゃね?

692:Name_Not_Found
12/03/27 20:09:03.08
>>684
多用どころか使うべきではない。
前者がわかって後者がわからない人はいても、その逆はいない。

693:Name_Not_Found
12/03/27 20:35:44.52 WAzw1IcN
var a = objOrNull || {};

ってのもよくやるよなjsなら。
まぁ、他言語と挙動が違うから多人数プレイの時はやるべきじゃないけどね。

694:Name_Not_Found
12/03/27 21:03:34.53
0なのかnullなのかundefinedなのかが、それだと判別出来ない

ムダ知識だがperlは近年になって // というキーワードが追加され
my $input = $VAR{PARAM} // 0;と書けるようになった

695:Name_Not_Found
12/03/27 22:08:34.14
質問させてください

<div id="hoge">
 <div class="moge"></div>
 <div class="moge"></div>
 <div class="moge"></div>
</div>

このようなDIVの形で、
$(".moge").click(function() {
で、クリックのイベントを拾った時。
それが、何番目のDIVをクリックしたかを知りたいのですが、
どのように、その要素を取得すれば良いでしょうか?

696:Name_Not_Found
12/03/27 22:23:29.61
>>695
めんどくさいから予めDIVにインデックスを振っておくのが無難。
毎回調べるなら、#hogeのdiv子要素を全て取得して、インデックスを増やしながら一致を探す。

697:Name_Not_Found
12/03/27 22:23:55.97
当たり前のように ほげほげ && ほにゃらら()・・・スタイルで書いていてVBを書くとき詰まった
短絡評価しない言語もあるんだね

698:Name_Not_Found
12/03/27 22:26:18.66
何でも短くする人いるよなあ。ありゃスパゲッティコード職人だ。

699:Name_Not_Found
12/03/27 22:28:22.18
>>696
そうですか・・・
わかりました、ありがとうございました。

700:Name_Not_Found
12/03/27 22:29:08.15
三項演算子の入れ子とかひどいよね。

701:Name_Not_Found
12/03/27 22:32:50.89
スパゲッティコードメーカーとは誤解してほしくないが、こんな単純なVBコードね。
Bad : If IsNumeric(hage) And CLng(hage) > n Then
スレチなのでこれ以上は自重

702:Name_Not_Found
12/03/27 22:47:06.80
質問です。
以下のようにスコープ?参照渡し?っていうんですかね、
配列を代入した変数を、関数の引数として、繰り返し処理でボタンを置きたいんですが、
表示はうまくいっても、中身が全て最後の配列になってしまいます。

どう処理させるのが一般なんでしょうか?
以下は、最終的にjを回しているforの部分は関数化して切り出し、
scに入れる配列を操作させることで中身や回数を気にせずボタンを設置したいです。


var arr = new Array(2);
arr[0] = [1,2,3];
arr[1] = [9,8];

var sc;
sc = arr[0];

for (var i = 0; i < arr.length; i++) {
sc = arr[i];
for (var j = 0; j < sc.length; j++){
document.write('<input type="button" value="' + j + '" onclick="alert(sc[' + j + '])">');
}
document.write('<hr>');
}
document.close();


703:Name_Not_Found
12/03/27 23:24:42.10
>>701
ちょっと違うんじゃね?みんなが言ってるのは、hideFlag && inDocument && hide(); てな感じだと思うよ。
スレチなのでこれ以上は自重

704:Name_Not_Found
12/03/27 23:36:50.68
>>702
あなたも過去スレ全集読むといいよ。かってよくあった質問だね。

705:Name_Not_Found
12/03/27 23:45:17.95
>>702
DOMとクロージャを組み合わせるのが一般的かな。
onclick="alert('+sc[j]+')" とすれば動くだろうけど、これは参照渡しでもなんでもないね。

706:684
12/03/27 23:47:07.07
意見サンクス。ちゃんとif文書いた方が良さそうだな。

707:Name_Not_Found
12/03/27 23:57:47.90
>>695

動かなかったらごめん。
idxに何番目か入ってるはず。

$(".moge").click(function(){
var idx = $(this).parent().children(".moge").index(this);
});

708:Name_Not_Found
12/03/28 00:00:10.77
外部ファイルで呼ぶ時にファイルパス間違ってないと思うけど呼べない時どうすればいいの?index.htmlと同じ階層なら呼べるのにjsってフォルダ作ってscript.jsを入れるとファイルパスはjs/script.jsだよね?

709:Name_Not_Found
12/03/28 00:03:07.48
>>708
ローカルで試してない?一応先頭に ./ をつけるといいよ。./js/script.js

710:702
12/03/28 00:03:57.50
>>705
ありがとうございます。
dom・・・
難しいですね。
もっと色々書いて精進します。

711:Name_Not_Found
12/03/28 00:07:19.25
本当にjsやるんだったらdomは必須だぞ。一度理解したら他の言語でも使えるしな。

712:Name_Not_Found
12/03/28 00:50:46.09
>>709
ありがとう出来た☻


713:Name_Not_Found
12/03/28 09:46:43.12
function hogehoge{
hogehoge.prototype.x1=10;
this.x2=20;
}
上記の2行目と3行目の書き方に違いはあるんでしょうか?
function hogehogeの外から
var z=new hogehoge();
z.x3=30;
等の追加、編集が出来ると思いますが
使わなくても
z.x2=22;と書けますよね?
違いとメリデメがよく分かりません

714:Name_Not_Found
12/03/28 10:33:34.01
2行目は外に出せる、3行目では出せない
常識で考えろ

715:Name_Not_Found
12/03/28 10:43:17.23
その常識ってのはお前の中だけだろ

716:Name_Not_Found
12/03/28 11:18:30.02
>>713
2行目と3行目は、コードのとおりプロトタイプかインスタンス変数かの違いなんで
インスタンスが1つですぐ終わるスクリプトなら一見動作は同じだけど、
複数のhogehogeインスタンスを生成したりすると事情が変わってくる。
例えばこうしたときどうなる?

function hogehoge(n1,n2) {
hogehoge.prototype.x1 = n1;
this.x2 = n2;
}
x = new hogehoge(10,20);
console.log(x.x1); //=>10
y = new hogehoge(20,30);
console.log(y.x1); //=>20
console.log(x.x1); //=>これがどうなる?

また以下の式のx.x1はなに?
x.x1 = 100;
console.log(x.x1); //=>100 これはhogehoge.prototype.x1の値ではない

717:Name_Not_Found
12/03/28 11:32:47.79
>>715
他の回答にケチ付けてる暇があったらより良い回答してやれ
その行為は誰の特にもならない

718:Name_Not_Found
12/03/28 11:36:32.32
配列Aを値渡しで、別の変数Bにそのままほうり込み(B=A)、
変数Bを関数Cの引数として渡す。

関数Cは(D)と内部変数を定義して、
処理内でDをループなど配列展開。

これを行うと、Dがないとエラーが表示されます。
Aの中身が数値だとうまくいったりしますが、
文字を入れるとエラーが出てしまうのは何故でしょうか?

719:Name_Not_Found
12/03/28 11:40:37.20
単独自立型WEBアプリを学校や許可を取った友達のPCに入れて
あまり使われて無いときのリソースを集めて利用したいのですが
参考になる文献やサンプル等を知りませんでしょうか?

また、WEBアプリの存在を隠蔽できるようなNPAPIを利用した
拡張機能をご存知ありませんか?

720:Name_Not_Found
12/03/28 11:43:58.49
>>718
サンプル張れって
>>718,719
テンプレ読めよ腐れ頭

721:Name_Not_Found
12/03/28 12:01:38.45
つーか配列に関してB=AしたときBはAの参照になるがな

722:Name_Not_Found
12/03/28 12:20:03.43
自分でうまいソースできてなくて、上の書き込み参考で色々やってます。
以外だと、scがないと言われます。
最終的には、ここから本文を書き換えたり、ページのリンクを生成しようと思ってます。


var arr = new Array(2);
arr[0] = ["あ","い","う"];
arr[1] = ["を","わ"];

function fu(sc){

for (var j = 0; j < sc.length; j++){
document.write('<input type="button" value="' + j + '" onclick="alert(' + sc[j] + ')">');
}

}

var wk;

for (var i = 0; i < arr.length; i++) {

wk=arr[i];
fu(wk);

}

723:Name_Not_Found
12/03/28 12:35:20.04
あ=い=う=を=わ="あんぽんたん"

をこのソースに追加しろ

自分がPCにさせていることに責任を持て

724:Name_Not_Found
12/03/28 12:37:02.28
>>722
alert(あ);

「あ」という変数が無い
alert("あ");になるようにするには、どうしたらいいか?

725:Name_Not_Found
12/03/28 12:41:49.17
addEventListenerを使うのはどうか

726:Name_Not_Found
12/03/28 12:48:03.74
document.write('<input type="button" value="' + j + '" onclick="alert(' + sc[j] + ')">');



document.write('<input type="button" value="' + j + '" onclick="alert(sc[' + j + '])">');
にすると、最初に作ったボタンの中身が変わってしまいます…

727:Name_Not_Found
12/03/28 12:48:57.87
>>722
chromeのデベロッパーツールやFireFoxのFirebugなどでは、javascriptで操作後のHTMLが確認できる。
まずはそういうので、どうなっているか確認するんだ。
質問するはそのあとでも遅くない。

728:Name_Not_Found
12/03/28 12:54:26.91
まあ、まずはdocument.writeをconsole.logにしてだな……

729:Name_Not_Found
12/03/28 12:58:06.58
これだけヒント貰ってわかんないんだから皆言うだけ無駄無駄

document.write('<input type="button" value="' + j + '" onclick="alert(\"' + sc[j] + '\")">');

これが答え
さあ帰った帰った

730:Name_Not_Found
12/03/28 13:19:11.49
この早漏め

731:Name_Not_Found
12/03/28 14:09:40.24
回答者は調子に乗りすぎに思うのですが。

732:Name_Not_Found
12/03/28 14:16:44.51
だからなに?
どうしてほしいの?

733:Name_Not_Found
12/03/28 14:25:46.54
ぼくちゃんどうちてほちぃんでちゅかあ?

734:Name_Not_Found
12/03/28 14:35:55.30
基本ツンデレだから偉そうなヤツだろうが、お前は本を買えって言うやつにも
ちゃんと教えてくれるのがココの奴ら

735:Name_Not_Found
12/03/28 15:12:13.85
回答者は投げやりにならない質問者が納得できる形で教えて下さい。
こちらはまず初めに頭下げてお願いしている訳ですから、そちらもちゃんと誠意を見せて欲しいものです。

736:Name_Not_Found
12/03/28 15:18:52.95
私も>>735の意見に賛成です。
次回から回答者の心構えをテンプレに入れましょう。

737:Name_Not_Found
12/03/28 15:18:55.67
それなら知恵袋とかで聞けばいいんじゃね

738:Name_Not_Found
12/03/28 15:34:45.49
知恵袋よりこっちの方が正確だしいい回答だと思う

739:Name_Not_Found
12/03/28 15:52:46.47
>>735
こういう「頭下げてるんだから優しく教えろよ」みたいな文句垂れるくらいなら>>738って事
もしくは金払ってプロでも教えを乞えば懇切丁寧に分からない所教えてもらえるよ
回答になってないのはまた別問題で
回りくどいのは意地悪してるのも居るかもしれ無いが頭働かせて閃くように促してるのが殆どだと思うんだが

740:739
12/03/28 15:53:38.76
>>738じゃなくて>>737

741:Name_Not_Found
12/03/28 15:55:04.28
>>739
上から目線ですか?

742:Name_Not_Found
12/03/28 15:59:24.01
よくわからんな
ここは知恵袋より劣悪な環境だ、嫌なら来るなと言いたいのか?
俺はここの方が幾分マシに思えるが

743:Name_Not_Found
12/03/28 16:09:54.98
ちゃんと回答してんのにケチつけられるとか
たまったもんじゃねーわ

744:Name_Not_Found
12/03/28 16:12:14.83
ここって俺が知ってる限りネット上では奇跡的と言えるほどマトモなスレなんだけどな

745:Name_Not_Found
12/03/28 16:18:28.46
それは暫く俺がレスしていなかったからかな。

746:739
12/03/28 16:23:24.02
俺も聞く側ですわ
口ぶりが気に入らないならもっと丁寧に説明してくれる場所があるでしょって言いたいだけ
回答の良し悪しで言うならココがいいと思ってるし

747:Name_Not_Found
12/03/28 16:25:45.05
良い回答を得たければ質問者は良い質問を心がけろ
そのためのコツはテンプレ>>1に書いてある

運の要素も否定しないが、質問をスルーされたり、
ピントのズレた回答が付くのにも往々にして理由がある
それで誠意見せろとか冗談も甚だしい

748:Name_Not_Found
12/03/28 16:30:35.78
知恵袋の回答者の方が、明らかに上から目線だよね

749:Name_Not_Found
12/03/28 16:34:03.87
    _, ,_  パーン
 ( ‘д‘)
  ⊂彡☆))Д´) >>735

750:Name_Not_Found
12/03/28 16:34:30.48
>>749
ま○がいさん、こんちには

751:Name_Not_Found
12/03/28 16:50:32.26 FJcXPkO4
質問する人が、問題を解決できる回答を期待するように

答える側も「ただ問題点の指摘だけでなく根本的にわかってもらう」ために
>>724みたいな回答をして、理解してもらえることを期待している

双方とも期待を裏切られると「なによ!なんなのよ!」て気持ちになっちゃって
ちょっと殺伐とした空気になるのはしゃーなしだな

※良い例だと思ったので勝手に安価しました>>724さんすみません

752:Name_Not_Found
12/03/28 16:54:33.66
まあとにかくだ、document.writeする前に
それをconsole.logに書き換えてどう出力されるのか確認したまい

Firefox なら Ctrl+Shift+K で
IE なら F12 で
Chrome なら    で
Chrome Lite なら about:debug で
Opera なら  で
Safari なら         で
Konqueror なら  で
Lynx なら    で
Netfront なら       で
w3mなら で

WebConsoleが開くから
Firebug使ってもいいけどな

753:Name_Not_Found
12/03/28 16:58:08.11
>>751
何を指摘されてるのか理解できたら、>>723も同じ事言ってるのが分かるけどな
正直先を越されたと思ったし

754:Name_Not_Found
12/03/28 17:02:19.63
consoleない環境も多いし、まあ超初心者は基本はalertだな
俺が超初心者のときはこれ使って頑張ってた
function (){try{
}catch(err){if(confirm(err+"\n\n[エラーを翻訳する]")){window.open("URLリンク(translate.google.co.jp)"+err+"&sl=en&tl=ja")}}}

755:Name_Not_Found
12/03/28 17:04:26.67
春休み特別企画が始まってたのか

↑ここまでなりすましの自演
↓まだまだ続くよ

756:Name_Not_Found
12/03/28 17:06:49.85
>>752
なにこれ? 馬鹿には見えないキー?

757:Name_Not_Found
12/03/28 17:25:07.87 AcktYBaU
質問です。
サムネイル画像にマウスオーバーすると特定の場所の大きい画像が切り替わり、
マウスアウトで元の画像に戻る、という画像の切り替えを行いたいのですが、
うまい方法が見つからず・・

いままでは以下と同じnameを用いる方法を使用していたのですが、
nameタグが使えない状況になってしまい新しいスクリプトを探しています。
URLリンク(www.tagindex.com)

よい方法がありましたらお教えください。

758:Name_Not_Found
12/03/28 18:00:12.54 FJcXPkO4
>>757
星の数ほどある入門向けの定番の1つなんで
サンプルは適当に探してもらうとして

nameでもidでもclassでもtitleでもsrcでもなんでもいいいから
「切り替わる大きい画像の<img>要素」が特定できればいいわけじゃん?
getElementByIdとかquerySelectorとかを使うといいよ

あとnameはタグじゃなくて属性ね

759:713
12/03/28 19:09:13.09
>>716
丁寧に解説して頂き有り難う御座いました。
凄い理解できました。

760:757
12/03/28 20:13:06.94 AcktYBaU
>>758
ありがとうございます。おかげさまでgetElementByIdを使う方法で探し、
以下サイトに辿り着きましたが、サムネイルからマウスアウトしたあと、
大きい画像が最初の状態に戻るようするにはどうすればよいのかで悩んでいます。
URLリンク(tenderfeel.xsrv.jp)

上記サイトの『ページ内に複数設置する場合』が近いのですが・・

属性。初心者に丁寧にありがとうございます。

761:Name_Not_Found
12/03/28 20:27:05.50 FJcXPkO4
>>760
マウスオーバとかのイベントのたびに、大きい画像のimgを探してるわけだが
そうじゃなくて、まず最初に探して変数に入れておく

そうすれば、大きい画像のsrcが最初は何だったかわかるじゃん
それも変数に保存しておく

あとは、マウスオーバしたら画像のsrcをお好みのものに変える
マウスアウトしたらsrcを保存しておいたものに変える


762:再度失礼します
12/03/28 22:53:20.90
<test1.js>
var paths = ['c:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE',
   'c:\\Windows\\notepad.exe'];

<test2.js>
function run(pathw) {
   var wshshell = new ActiveXObject("WScript.Shell");
   wshshell.run(pathw);
}

<test3.js>
function loop(wsc){
for (var j = 0; j < wsc.length; j++){
document.write('<input type="button" value="' + j + '" onclick="run(wsc[' + j + '])">');
}
}

<main.html>
var sc;
sc = paths;

loop(sc);

for(var i=0;i<paths.length;i++){
paths[i] = '"' + paths[i] + '"';
document.write('<input type="button" value="test" onclick="run(paths[' + i + '])">');
}

と書いた場合、最後のhtml内に直接書いたfor~のrun()はうまく動きますが、
外部ファイルに切り出したloop()から呼ばれるrun()は動作しない理由はどこにあるんでしょうか??
ieのF12で見れるソースを見ると、
ともにhtmlの<inputタグは全く同じように展開されていて、問題ないように見えるのですが・・・

763:Name_Not_Found
12/03/28 22:53:45.06
jQueryUIのタブでそのサイトと同じようなこと出来た気がする

764:762
12/03/28 23:00:32.49
追記です。
書きもれましたがloop()で、
パスの前後にダブルコーテーションつけるように処理入れてます。


765:Name_Not_Found
12/03/28 23:17:57.59
>>764
wscはloop関数内のローカル変数だから。

766:Name_Not_Found
12/03/29 07:22:09.83
script側から画像の読み込みを強制中断させるにはどうしましょう

767:Name_Not_Found
12/03/29 08:33:32.17
またggrばすぐ分かる事を

768:Name_Not_Found
12/03/29 08:33:34.11
>>765
記述が同じになっていても、
渡す引数がないってことですか。
このような場合はどう対処すると、
ローカルを乗り越えられるんでしょうか?

()に直接パスを展開させてしまうと動きませんでした…

769:Name_Not_Found
12/03/29 08:45:54.52 K1Gn5nTR
>>768
ロカール変数は外からは参照できないよ
>>762でやろうとしていることは

function loop(wsc){ // 変数wscは関数loopのローカル変数
}
loop(sc);

<input type="button" value="" onclick="run(wsc[0]);">
<input type="button" value="" onclick="run(wsc[1]);">

こう書いているに等しい
直接展開させると動かないって書いてるけど

<input type="button" value="" onclick="run('c:¥¥Program Files¥¥Microsoft Office¥¥OFFICE11¥¥EXCEL.EXE');">
<input type="button" value="" onclick="run('c:¥¥Windows¥¥notepad.exe');">

このようにHTMLを書けば動くはず、つまり何か書き間違えている
やろうとしていることが「onclick属性の中に各JSをJSで書く」という
とても遠回りなことになってしまっているよ

770:Name_Not_Found
12/03/29 12:31:44.36
>>769
()の中に、シングルコーテで囲って
パス書いたのも動きますか?

同じように書いても、ファイルが見つからないと言われます

771:Name_Not_Found
12/03/29 12:43:07.98
クォーテーションをクォートを略すのは見聞きするけど、
コーテーションをコーテと略すのはどこの流派だ。

772:Name_Not_Found
12/03/29 12:52:17.73
流派?
携帯だったのと、長くなるから
途中で止めただけです

773:Name_Not_Found
12/03/29 13:14:16.27 K1Gn5nTR
>>770
それはJSの問題じゃないから知らんw
¥とバッククォートが間違ってるとか、その辺じゃないか?

774:Name_Not_Found
12/03/29 13:15:08.06 K1Gn5nTR
間違えた

誤:バッククォート
正:バックスラッシュ

すまんこ

775:Name_Not_Found
12/03/29 13:44:47.40
>>770
パスに空白を含む場合、パスをダブルクォートで括る。

var path = '"C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE"';
or
var path = "\"C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE\"";
new ActiveXObject("WScript.Shell").Run(path);

776:766
12/03/29 14:38:13.37
なら強制切断はいいや
画像が存在しているかチェックするにはどうしましょう
ただしimg.srcにアドレス入れるのはダメな
毎回画像読み込んでたら重くてしょうがねぇ

777:Name_Not_Found
12/03/29 15:03:12.86
HEADメソッドでも使えば

778:Name_Not_Found
12/03/29 17:16:16.11 K1Gn5nTR
errorは駄目なん?

779:Name_Not_Found
12/03/29 18:50:48.08
普通にDocumentContentLodedのときにwindow.abort()すりゃいいじゃん

780:Name_Not_Found
12/03/29 18:59:04.83
>>775
それはもちろんそうしています。
ただやっぱりrun()に直接パスを書いた場合は動かないんですよね?

回りくどいやり方をしているとのことですが、
パス、ボタン設置、オープン動作、を
機能分けするとこの形になっちゃうと思ったんですが、
最初のローカル変数だから動かない事象を起こさず、
値をパス→設置→動作へ、渡す方法があるってことですか?

781:Name_Not_Found
12/03/29 19:35:23.64 K1Gn5nTR
>>780
>run()に直接パスを書いた場合は動かないんですよね?

期待通りに動いていない理由を切り分けられていない
htmlにこう書いて

<script type="text/javascript">
function run(pathw) {
  alert(pathw);
}
</script>
<input type="button" value="" onclick="run('c:¥¥Program Files¥¥Microsoft Office¥¥OFFICE11¥¥EXCEL.EXE');">
<input type="button" value="" onclick="run('c:¥¥Windows¥¥notepad.exe');">

書いた内容がアラートされるなら、引数の受け渡しは問題ない
URLリンク(jsfiddle.net)

つまり動かない理由は関数runの中にある

782:Name_Not_Found
12/03/29 19:52:22.45 K1Gn5nTR
>>780
んで、俺だったらこんなふうにします

var path = ['hoge','fuga']; // 値

function run(p){ alert(p); }

for(var i=0,l=path.length ; i<l ; i++)(function(p){ // ループ

  var path = p;
  var button = document.createElement("input");
  button.type = 'button';
  document.body.appendChild(button); // 設置
  button.addEventListener('click',function(){
    run(path); // 動作。ここからならループのスコープは参照できる
  },false);

})(path[i]);

783:Name_Not_Found
12/03/29 19:56:12.04
どこからどう見てもIEを想定してる上に、おそらくIE6くさいから
addEventListener じゃなくて attachEvent だな

784:Name_Not_Found
12/03/29 19:57:53.41
>>782
pとか使うんだったら最初からpathsにしたほうがよくね。命名って大切だぞ。

785:Name_Not_Found
12/03/29 20:13:29.51 K1Gn5nTR
指摘感謝

786:Name_Not_Found
12/03/29 23:03:42.82
>>781-785
ありがとうございます

domですよね?
今まで書いてきたコードと構文も違うので、もうちょっと勉強しますが、
>>782のものは、そのまま転記しても動かないですよね?
>>783に書き換えても。

787:Name_Not_Found
12/03/29 23:57:09.12
JSで特定の要素のdisplayをnoneからblockに切り替えた際、
その要素に指定されているmarginが正しく反映されません。

具体的には、左右のmarginは効いているのですが、margin-top
だけがゼロになってしまいます。

この現象はIE8のみで起きていて、IE7やその他のブラウザでは意図したとおりに
表示されます。

どのような原因が考えられるでしょうか?

788:782
12/03/30 00:08:29.68 zxyEdfC3
>>786
動かんかね?
firebugでちゃちゃっと書いただけだからあれだけど

head要素に書くなら、loadとかdomContentLoadedで動かすようにしてくだされ

入門書の最初の方にはdocument.writeでやるのが書いてあるかも知れんが
今、世の中に転がってるサンプルとか解説はdom前提だから
食わず嫌いしないで覚えるといいよ

wshについては、詳しい人が現れるのを待つか、
wshスレで聞いてちょ

789:Name_Not_Found
12/03/30 00:16:34.31
>>786
動かないよねって実際に試してみた?動かないならエラーが出るはずだけど。

790:Name_Not_Found
12/03/30 00:26:09.52
>>787
jsfiddleとかで再現してみるといいかも。

791:787
12/03/30 01:24:18.94
>>790
jsfiddleでは正しく表示されました。

結局marginを使用せず、他の方法で位置調整することで
対応することにしました。

792:Name_Not_Found
12/03/30 01:47:13.07
>>791
それならdoc宣言を疑うべきだったかもね

793:Name_Not_Found
12/03/30 02:11:18.23
スレ違いだろ

794:Name_Not_Found
12/03/30 02:18:27.24
>>787
IE8のバグ
無理

795:Name_Not_Found
12/03/30 05:23:24.50
>>786
addEventListener の文字列をそのまま attachEvent に変えるだけじゃ動かんよ。
attachEvent の文言でぐぐってみて違いを見てみよう。

だがしかし、スコープがまだわかってない相手にDOMは、一足飛びのような気がしないでもないね。

796:766
12/03/30 08:00:01.09
XMLHttpRequestでHEADリクエスト送って404確かめよう思ったら
画像置いてある鯖のドメインが別で通信できねーわ
他にファイルの存在チェックをする手段は無いのかね

797:Name_Not_Found
12/03/30 08:12:50.79
new Image()

798:Name_Not_Found
12/03/30 10:04:45.91
出来ねーよバカ言うんじゃねえ

799:Name_Not_Found
12/03/30 10:44:33.01
画像があるかどうかだろう?
それならImageでできるよ

800:Name_Not_Found
12/03/30 10:52:18.42
797じゃなくて766に言った感じなんだけどな。
画像自体の読み込みは出来るだろうけど、HEAD飛ばして存在のみを確かめるのは無理じゃねえの?

801:Name_Not_Found
12/03/30 11:19:59.97
アスペなのか恥隠しなのか知らんが読解力&記述力無さ過ぎだろ……

802:786
12/03/30 11:20:25.27
ボタンは表示されるけどアラートが動かないです


ちなみに、上の記述だとpathが同じ階層にありますが、
また関数やファイルを分けて動かそうとすると、
ローカルだから動かない状況は同じですよね

803:Name_Not_Found
12/03/30 11:24:47.68
>>796
結局何がしたくて何を教えて欲しいのか具体的に言い直してみて

804:Name_Not_Found
12/03/30 12:37:11.98
>>781
>書いた内容がアラートされるなら、引数の受け渡しは問題ない

それじゃ駄目。
アラートされても、引数の渡し方に問題がある。

805:Name_Not_Found
12/03/30 12:40:11.30
既存のhtmlで
<td>@ hoge</td>
<td>@ foo</td>
これを
<th>hoge</th>
<th>foo</th>
こういう風にtd要素が"@ "から始まっていれば
th要素として描画するように動的に書き換えたいのですが、方法がわかりません
jqueryのhtml()で要素の内容を置換できることはわかったのですが
要素の内容に応じてタグそのものをいじることはできないのでしょうか。

806:Name_Not_Found
12/03/30 12:51:00.01
d=document.getElementsByTagName("td")
for(i=0;i<d.length;i++){e=d[i]
if(e.innerText.slice(0,1)=="@"){
e.outerHTML="<th>"+e.innerHTML+"</th>"}

807:Name_Not_Found
12/03/30 12:56:03.15
d=document.getElementsByTagName("td");for(i=0;i<d.length;i++){e=d[i];
if(e.innerHTML.slice(0,2)=="@ "){e.outerHTML="<th>"+e.innerHTML.slice(2)+"</th>";}}


808:Name_Not_Found
12/03/30 13:32:09.81
jqueryでやったほうが遥かに楽だな

809:Name_Not_Found
12/03/30 13:34:32.61
たったこんなことだけのためにjQueryを読み込んで使う方が面倒だと思う

810:Name_Not_Found
12/03/30 13:37:45.91
foreachとかと&&使えば{}不要で超短くなるんじゃない?

811:Name_Not_Found
12/03/30 13:39:44.45
短くする意味が分からねえよ

812:Name_Not_Found
12/03/30 13:40:51.96
初めからthを書け

813:782
12/03/30 13:44:50.69 TZP3QdO9
>>804
つまり…どゆこと?
文字列がわたるだけでは駄目でした?

814:Name_Not_Found
12/03/30 13:50:11.94 TZP3QdO9
>>802
クリックしても動かないということは
attachEventの書き方が間違っているんだと思うよ

先にも書いたけど、パスの文字列が正しく渡っているなら
期待通りに動かないのはJSではなくwshの問題

JSを別のファイルにしたら動かなくなるとか
そういうことはないよ

とりあえず、動かなくなった奴を晒してみてよ

815:Name_Not_Found
12/03/30 13:55:53.13 TZP3QdO9
>>800
imageのonerrorでどうじゃろか

816:Name_Not_Found
12/03/30 14:01:26.15
>>813
var path = 'C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE';
new ActiveXObject("WScript.Shell").Run(path);

これだと、コマンドラインにシングルクォート内の文字列を渡すのと同じことになる。
スペースで区切られるから、alert で問題なくても、Run に渡す場合に問題になる。

817:Name_Not_Found
12/03/30 14:08:08.09
>>816
いや、引数の受け渡しを言ってるんでしょ

818:Name_Not_Found
12/03/30 14:09:11.01
onerrorでは無理だな

819:Name_Not_Found
12/03/30 14:16:10.03
onabort

820:Name_Not_Found
12/03/30 14:19:24.19
>>817
え?
だから、受け渡しに問題なくても、他で問題があると言ってるんだけど?

821:Name_Not_Found
12/03/30 14:21:59.31
804を読んでみな。伝え方に問題があったな

822:813
12/03/30 14:35:37.94 jO8VIHzM
文字列(パス)自体の書き方が、wsh的に問題があるってことでしょ?
引き渡し方にはJS的に問題ないけど

windowsのことはよくわからんので
もし詳しく知っているのなら教えてあげてくだされ

823:Name_Not_Found
12/03/30 14:50:38.36
>>821
イミフ

824:Name_Not_Found
12/03/30 15:06:01.63
原因をjsとwshに分けて考えようって話なのに
それを見事に無視する>>804がイミフだよ(´ε` )

825:Name_Not_Found
12/03/30 15:22:10.15
「run()に直接パスを書いた場合は動かない」と言ってる質問者 >>780 に対して、
誤った書き方をしてる回答 >>781 に対するレスが >>804 なんだが。
意味和姦ねーよ。

826:Name_Not_Found
12/03/30 15:24:52.08
run()に直接パスを書いた場合を適切に例として示すなら

<input type="button" value="" onclick="run('\"c:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE\"');">

と書くべきってこと。
これについては、既に >>775 で言及してるが。

827:Name_Not_Found
12/03/30 15:25:23.65
和姦ねぇもんは仕方ないなw

828:Name_Not_Found
12/03/30 15:30:40.75
>>825
お前馬鹿だろw781の意味が理解出来てないじゃん

829:Name_Not_Found
12/03/30 15:31:03.36
小学生か。
4月から中学生の仲間入りだな。
毛は生えたか?

830:Name_Not_Found
12/03/30 15:32:06.89
>>828
おつむが気の毒な人ですか。
なんということでしょう。

831:Name_Not_Found
12/03/30 15:34:49.09
ちなみにこのアホ >>828 は文脈を理解してんのか?

832:Name_Not_Found
12/03/30 15:36:44.16
落ちつけ。みっともないぞ(´ε` )

833:Name_Not_Found
12/03/30 15:36:55.15

     /: : : : : __: :/: : ::/: : ://: : :/l::|: : :i: :l: : :ヽ: : :丶: : 丶ヾ    ___
     /;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、  /     ヽ
    /ヽヽ: ://: :!:,X~::|: /;,,;,/: :/  リ!: ::/ノ  l`ヽl !: : |: : : :l: :l: リ / そ そ お \
   /: : ヽヾ/: : l/::l |/|||llllヾ,、  / |: :/ , -==、 l\:::|: : : :|i: | /   う う  前  |
.   /: : : //ヾ ; :|!: イ、||ll|||||::||    ノノ  イ|||||||ヾ、 |: ::|!: : イ: ::|/   な 思 が
   /: : ://: : :ヽソ::ヽl |{ i||ll"ン    ´   i| l|||l"l `|: /|: : /'!/l     ん う
 ∠: : : ~: : : : : : : :丶ゝ-―-      ,  ー=z_ソ   |/ ハメ;, :: ::|.   だ ん
   i|::ハ: : : : : : : : : : : 、ヘヘヘヘ     、  ヘヘヘヘヘ /: : : : : \,|.   ろ な
   |!l |: : : : : : : : :、: ::\    、-―-,      / : : :丶;,,;,:ミヽ   う  ら
     丶: :ハ、lヽ: :ヽ: : ::\__  `~ "      /: : ト; lヽ)   ゝ
       レ `| `、l`、>=ニ´        ,  _´ : :} `   /
         ,,、r"^~´"''''"t-`r、 _  -、 ´ヽノ \ノ   /    お ・
       ,;'~  _r-- 、__     ~f、_>'、_         |  で  前 ・
      f~  ,;"     ~"t___    ミ、 ^'t         |  は  ん ・
      ,"  ,~         ヾ~'-、__ ミ_ξ丶     |  な  中 ・
     ;'  ,イ ..          ヽ_   ヾ、0ヽ丶    l         /
     ( ;":: |: :: ..          .`,   ヾ 丶 !    \____/
     ;;;; :: 入:: :: ::      l`ー-、   )l   ヾ 丶
     "~、ソ:: :い:: :     \_  ノ ,    ヾ 丶

834:Name_Not_Found
12/03/30 15:37:49.23
少し前に現れた aa 貼る馬鹿か…

835:Name_Not_Found
12/03/30 15:42:16.59

                   .....       .:_ -― ─- 、:.    ......
                  ..::⌒>.、:: ...::/::.::/::.:: ヽ::.::.\::....::x<⌒::.
              ::x-=≦.::.-=`ミO.:/:/:/|:./.:ハ::ヽ::`O::-=ミて`く⌒ヽ::
            ::, イ::ノ⌒'Z _⌒ Y彡::./V  j/ヽ::ハ.::.V::Y⌒/;^)- 入 \:
           ::/ :/八  '(:::::':,\ トV::./⌒     ⌒ヽ.::∨/,.::'::/  /:::∧  '\::
           ::/ `V::/ヽ\ \ :':, 八Ⅳ __    __ jハ:::l, :':::::, ′ /:::/   ̄ ノ\::
        ::〈   ,.:'::/   ヽ \ \:l:ハ| 〃⌒    ⌒ヾ ハ:|::::/  ,.イ:::/     ∠.::勹::
       ::/ ! :.'::::∧   |  ヽ  \ム .:::::  r ┐ ::::.,'ノ/  / /::/   |__:/::
     ::∠._jハ_ん:ヘ/}ノ /ヘ  ヽゝ_  ヽ ノ   イ/  /⌒ん'⌒)_>::
                     ̄   ̄`ヽ   `=≧r ‐i彡''´  /::     ̄
                      ::\ヽ   ` ´   / /::
                       ::          ,′
                       ::i  :;     :;  i::
                       ::|          |::
                       ::l         |::
                         ::j            ::
                        ::,′           l::
                         ::/           |::
                     ::/              !::
                       ::/    〉┴r      ::
                       ::,′    /:: ::|     |::

836:Name_Not_Found
12/03/30 15:45:31.41
AA貼る奴消えてくんねーかな
前々からうぜぇんだよ

837:Name_Not_Found
12/03/30 15:57:54.98
>>832 とか >>836 みたいなのが荒れるきっかけになりやすいんだけどな。
「はい、分かりました」なんてなる訳ないんだから。

838:Name_Not_Found
12/03/30 16:05:00.58
AA含め、コピペしか能のないやつが住み着いたんだな。
きっとコードもコピペ主体なんだろうな。
社会的な処遇を推察すると心中察するぜw

839:Name_Not_Found
12/03/30 16:21:10.93
無視しとけばいい。
そいつのリアルと同じ様に。

840:Name_Not_Found
12/03/30 16:34:43.82
>>826
run側で""に包む処理を入れるほうがいいと思うぜ。

841:Name_Not_Found
12/03/30 16:41:02.93
>>840
コマンド自体に引数を渡す場合があると無理。

842:Name_Not_Found
12/03/30 17:07:40.21
>>838,839
荒らしとは言えどうしてここまで酷い事が言えるのか不思議

843:Name_Not_Found
12/03/30 17:09:28.26
涙拭けよw

844:Name_Not_Found
12/03/30 17:11:52.46
いちいち難癖付けてる奴含め春坊が沸いてるだけだからスルーしとけよ。

845:Name_Not_Found
12/03/30 17:17:33.09
騒いでるやつは自分のレス振り返って見てみろ
荒らしと一緒になって騒いでんじゃねーよ

846:813
12/03/30 17:38:39.16 jO8VIHzM
相変わらず質問者が置き去りな件
そしてやっとわかったぁぁぁぁ

wsh.runが引数のスペースをコマンドの区切り子として扱ってしまうけど
それはエスケープするんじゃなくて、全体をダブルクォートで括ることで解決できる
という仕様なんだね?

だとしたら、引数渡す前にいちいちゴニョゴニョするより

function run(cmd) {
  var wshshell = new ActiveXObject("WScript.Shell");
  cmd = '"' + cmd + '"';
  wshshell.run(cmd);
}

の方が良いんでないかい?

847:Name_Not_Found
12/03/30 17:40:10.42
>>846
>>841

848:Name_Not_Found
12/03/30 17:42:16.61
>>846
お前はいい加減本買って勉強しろ

849:Name_Not_Found
12/03/30 17:44:49.01
>>841
コマンドの引数はrun()の第2引数以降にするんだ。

850:Name_Not_Found
12/03/30 17:47:54.07 jO8VIHzM
>>848
だってここ、JSスレですしおすし

851:Name_Not_Found
12/03/30 17:49:42.26
>>849
それでもできるけど、管理上わかりにくいよ?

new ActiveXObject("WScript.Shell").Run("cmd /K echo foo");

とか。
それに wshell.Run にも柔軟に引数渡したくなるかもだし。

852: ◆nLhGB4hTt0l0
12/03/30 18:06:33.30
new Functionとevalのメリデメを教えて下さい。

853:Name_Not_Found
12/03/30 18:06:37.53
根本的に分かってねえやつが柔軟にとか出来るわけねえだろ
というか柔軟にやろうとした結果(データとビューの分離)がこの大惨事なわけだが

854:Name_Not_Found
12/03/30 18:24:33.75
>>846
>相変わらず質問者が置き去りな件

十分な知識を持ってないのに回答するからじゃないか

855:Name_Not_Found
12/03/30 18:27:27.72 jO8VIHzM
てへぺろ(・ω<)

856:Name_Not_Found
12/03/30 19:30:03.56
プロトタイプチェーンで質問です
IE8です

var objA = new Object();
objA.prop1 = 10;
function Func1() {}
Func1.prototype = objA;

var objB = new Func1();
function Func2() {}
Func2.prototype = objB;

var objC = new Func2();

//alert(objC.hasOwnProperty("prop1"));//falseになってしまう
alert(objC.prop1); //undefinedになる。10が期待値

何が悪いのでしょうか?

857:Name_Not_Found
12/03/30 19:59:44.59
フツーに10になるが?byNF

858:Name_Not_Found
12/03/30 22:04:34.99
console.log("objA:"+objA.prop1);
console.log("objB:"+objB.prop1);
console.log("objC:"+objC.prop1);
IE8デベロッパーツールでRun Scriptしただけだが全部10になるぞ。

859:856
12/03/30 23:01:20.49
>>857,858
すいません。間違えました

var objA = new Object();
objA.prop1 = 10;
function Func1() {}
Func1.prototype = objA;

var objB = new Func1();
function Func2() {}
Func2.prototype = objB;

var objC = new Func2();

alert(objC.hasOwnProperty("prop1"));
//falseになってしまう

これは何故falseになってしまうんでしょうか?
10が入っているのでtrueになる筈だと思っているのですが

860:Name_Not_Found
12/03/30 23:58:52.90 jO8VIHzM
URLリンク(developer.mozilla.org)

in 演算子と違って、このメソッドはオブジェクトのプロトタイプチェーンをたどってチェックしません。

861:Name_Not_Found
12/03/31 00:19:55.11 Jjnz407I
var url = 'スレリンク(hp板)';
var urlc = url.match(/ (http:\/\/(\w+).2ch.net\/test\/read.cgi\/(\w+)\/[0-9]{10}\/) /);
console.log(RegExp.$1);

この場合、値が取得できません
なぜでしょうか

862:Name_Not_Found
12/03/31 00:28:15.47 b7gWWrrj
正規表現の前後にスペースを入れたのはなぜでしょうか?

863:Name_Not_Found
12/03/31 00:36:26.78 Jjnz407I
>>862
勘違いしてました
ですが外してみても機能しません…

864:Name_Not_Found
12/03/31 00:57:40.42
>>863

>>> urlc
["スレリンク(hp板)", "スレリンク(hp板)", "toro", "hp"]

865:Name_Not_Found
12/03/31 01:14:14.93 Jjnz407I
>>864
すみません
機能していましたね

ありがとうございました!

866:Name_Not_Found
12/03/31 17:57:50.75 fxgchxJo
1だと正常に戻りたいページに戻ることができます。
画像をボタンにしたかったので2にしたのですが、
違うページに飛んでしまいます。
どうしたら画像を使い1と同じ動作にできますか?

1:<input type="button" value="戻る"
onclick="javascript:document.location.href='%back_url%'" class="submit" />

2:<input type="image" img src="b.jpg" border="0" value="戻る"
onclick="javascript:document.location.href='%back_url%'" class="submit" />



867:Name_Not_Found
12/03/31 18:33:07.18
>>866
HTMLの勉強をするべきだね。JavaScriptと関係ないから。
input type="image" なんて見たの何年ぶりだろう。

868:Name_Not_Found
12/03/31 18:37:59.89
俺は始めてみた・・・<input type=image

869:Name_Not_Found
12/03/31 18:43:13.85
input type=imageはまだまだ使われてるでしょ
JS使わずに出来ることを態々JSでやる必要ないしな


870:Name_Not_Found
12/03/31 18:50:46.31
> JS使わずに出来ることを態々JSでやる必要ないしな

リンクにURL指定して画像入れ子するだけだからJSでやる必要ないな。

871:Name_Not_Found
12/03/31 19:11:40.01
POSTで送信したい時とかもリンクにするのか

872:Name_Not_Found
12/03/31 19:20:18.05
なんでPOST?って調べたらtype=imageはsubmitも兼ねてるのかw使おうと思ったことないから知らんかった
そしてtype=imageはonclickが聞かないというのも見つけた

873:Name_Not_Found
12/03/31 19:31:31.04
chromeはwebkitGetUserMediaで音声が取得できるようになったと聞いて
マイクから一定以上の音量が入った場合を感知させようと思うのですが
webkitGetUserMediaのサンプルはビデオばかりですし
そもそもjsから音声の瞬間的な音量を取得する方法すらあるのか疑問です

webkitGetUserMediaで取得したオーディオの音量を取得する方法を教えて下さい
chrome18です。chrome://flags/はオンにしています。

874:Name_Not_Found
12/03/31 22:39:17.66
そろそろ、wshの話しはwshスレでやってくれんか。
専門スレがあるのに、なぜここで続けるんだ?

ここはJavaScriptのスレであって、wshはJavaScriptではない。

875:Name_Not_Found
12/04/01 08:20:29.76
>>873
URLリンク(dvcs.w3.org)
ここの3と4

createMediaStreamSourceした後はWeb Audio APIと同じように使えるし、
当然getByteTimeDomainDataで出来た配列をなめて二乗平均平方根(RMS)とかで音量を求めることも出来る
……んだが、今のところcreateMediaStreamSourceが実装されてない

876:Name_Not_Found
12/04/01 08:23:18.28
つうかwshの話はとっくの昔に終わってるだろ
何蒸し返そうとしてんだYO

877:Name_Not_Found
12/04/01 19:39:55.69
そうなにいってんのかわからんかった
wshとjscriptのくべつのつかんあほじゃなかろか

878:Name_Not_Found
12/04/01 20:29:34.49
<div id="ground" onclick="upset(event)"></div>

↑コンテナの中をクリックする度に相対的な座標をアラートで表示させたい。
だけどupset()になんてかけばいいんだ?

function upset(e){
var rect = e.target.getBoundingClientRect();
x =Math.floor(e.clientX - rect.left);
y =Math.floor(e.clientY - rect.top);
alert(x+':'+y);
}

って書いてもなんかうまいこと行かない。


879:Name_Not_Found
12/04/01 21:06:30.26
upset(Baka)

880:Name_Not_Found
12/04/01 22:34:28.16 WAH/pcmP
>>879
それなりにおもしろい答えだと思います。

881:Name_Not_Found
12/04/02 00:06:26.54
>>878
そんなの、いきなり最後まで計算するんじゃなくて、 eとかe.targetとかrectとか
rect.leftとかe.clientXとか全部alertしてみれば分かるんじゃないの。


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