トップページ⇒php
982コメント330KB

JavaScriptを教えてもらう

■ このスレッドは過去ログ倉庫に格納されています
0001jjj2006/05/17(水) 17:55:17ID:pZC05JBa
初心者でもわかる先生おしえて
0412nobodyさん2007/10/05(金) 12:09:42ID:???
ドキュメントもいいがスレタイも読もうぜ
0413nobodyさん2007/10/08(月) 11:50:18ID:???
>>411
だからドキュメントのどこに関数って出て来てるの?
0414nobodyさん2007/10/09(火) 00:19:34ID:???
>>411
DocumentからFunctionって文字列を検索して、
その周りを読んでみたら?
0415nobodyさん2007/10/09(火) 17:29:29ID:???
組み込み関数とかあるだろ普通……
Perlでは組み込みサブルーチンって言うんですか?
http://perldoc.perl.org/index-functions.html
0416nobodyさん2007/10/09(火) 23:35:43ID:???
>>415
>>414
0417nobodyさん2007/10/10(水) 01:05:11ID:???
>>414のアンカー、>>413の間違いじゃね?
04184162007/10/10(水) 01:30:13ID:???
>>417
関数って出て来るところを読んだら、組み込みとかしか
出て来ないってことで書いたんじゃないの?
そう読み取れたんだが。
0419nobodyさん2007/10/10(水) 04:51:39ID:???
Perlには組み込み関数はあるが、ユーザが作る関数は無い
よって、無名関数など作れない。

簡単にこうかけばいいだろ。
0420nobodyさん2007/10/10(水) 12:35:08ID:???
サブルーチンを関数、無名サブルーチンを無名関数と呼ぶことを
許容する方がよほど有意義なのに
0421nobodyさん2007/10/10(水) 13:04:29ID:PKKm1RAG
>>420を賛同age
0422nobodyさん2007/10/11(木) 12:51:35ID:???
有意義だろうが違うものは違うんじゃね?
有意義で無いと思うが
0423nobodyさん2007/10/11(木) 18:52:01ID:???
なんのためにサブルーチンと呼んでるか、考えたこと無い人でしょ。
0424nobodyさん2007/10/12(金) 12:38:28ID:???
ずっとスレ違い。
いい加減、氏ね
0425nobodyさん2007/10/12(金) 16:55:03ID:???
別窓で開かれたページから、別窓を開く前のページへ値は渡せますか??

管理画面のボタンを押すと別窓を開き、別窓に表示されたサムネイルを選択すると管理画面に反映されるという仕組みです。

PHPでスレ違いとのご指摘があったためこちらに来ました
0426nobodyさん2007/10/12(金) 22:13:38ID:nrGssVXy
window.opener.documentから値を渡せますよ
http://www.tohoho-web.com/lng/199802/98022401.htm(もう10年近く前か…)
0427nobodyさん2007/10/13(土) 00:33:27ID:???
JavaScriptを勉強したのはいいけど、作りたいものがないんだが、
ウェブアプリでいう掲示板みたいなオーソドックスで作って力になるのは何かな?
0428nobodyさん2007/10/13(土) 01:01:37ID:UxZD5ynl
カレンダーなんか定番じゃない?
0429nobodyさん2007/10/13(土) 01:21:14ID:???
プレゼンテーションソフト
簡易表計算ソフト
0430nobodyさん2007/10/13(土) 01:26:30ID:???
>>428
定番なのか?ライブラリで一個くらいあったきがす。

>>429
そんなの作れたらここにいないでつ。
Googleさんあたりでやってると思います。
0431nobodyさん2007/10/14(日) 02:45:41ID:???
varをつけなくても変数使えるのに、じゃあ何のためにvarがあるんですか?
Cとかなら int i; char str; のようにちゃんと宣言しなきゃいけない言語になれててやり辛い・・・
0432nobodyさん2007/10/14(日) 03:13:42ID:???
JavaScriptも十分きちんとした言語ですよ。
varをつければそのスコープ内変数になり、つけなければグローバル変数になります。
オブジェクトの中に入れたりしてオブジェクト指向的にも扱えたりと結構複雑なので簡単な言語だと甘く見ずにきちんと勉強されることを奨めます。
0433nobodyさん2007/10/14(日) 05:19:39ID:???
あぁなるほど。オブジェクト名.変数名みたいな感じでアクセスできるようになるのか・・・
0434nobodyさん2007/10/14(日) 15:43:46ID:???
var で OO なら隠蔽できるってことだろう。

function getCounter() {
var i = 0;
return function () { return ++i; };
}
0435nobodyさん2007/10/14(日) 19:55:29ID:???
これがオブジェト内にデータとして格納する例。
グローバルを一個しか汚さない。
var hoge = {
variable : "var",
hogemethod : function() {
return this.variable;
}
}

alert(hoge.variable); //fooアラート
alert(hoge.hogemethod()); //fooアラート


//プロパティ(オブジェクト内変数)の隠蔽の例
function Fuga(foo) {
var foo = foo;
this.getfoo = function() {
return foo;
}
}

var fuga = new Fuga("foo");
alert(fuga.foo); //undefinedが返る
alert(fuga.getfoo()); //プライベートプロパティにアクセスできる
</script>
0436nobodyさん2007/10/14(日) 20:41:39ID:???
>//プロパティ(オブジェクト内変数)の隠蔽の例
その例だとわざわざvarを使ってfooを宣言する必要無い
0437nobodyさん2007/10/15(月) 00:16:16ID:???
>>436
var を使わないと、グローバルスコープだよ。
04384352007/10/15(月) 01:07:20ID:???
上の例はなんか今みたら変数の中身が変だが、
俺のいいたかったvarをつけてオブジェクト内のプロパティを隠蔽できるってのはあってるはず。
関数内に変数を入れたからってそのスコープ内だけになるわけじゃないよ。
JavaScriptは他のC系統の言語と違ってブロックレベルのスコープがないからね。

ってか、質問者がいねーから意味ねぇ。
0439nobodyさん2007/10/15(月) 01:24:54ID:???
>>438
いえ、ちゃんと見てます。ただ色々と話が完結するまで待ってようかなと・・・
隠蔽ってのは便利だったり不便だったりしますね。
変数にthis.をつけてみたり、varで宣言をしてみたりして色々と実験してみました。

function mytest(){
  this.foo1 = "foo1";
  var foo2 = "foo2";

  this.funcTest1 = function(){
    alert(foo1);
  }

  this.funcTest2 = function(){
    alert(foo2);
  }
}

とりあえずこんなのを書いてみました。
続く
0440nobodyさん2007/10/15(月) 01:28:57ID:???
で、test0 = new mytest();で test0 ってオブジェクトを作って(?)、
test0.funcTest1()とtest0.funcTest2()を実行したところfoo1はundefinedと表示されました。
また、alert(test0.foo1); と alert(test0.foo2); を実行したところ、今度は foo2 が undefined と表示されました。

これは、varで宣言したものは外部からの参照を不可能にする。
thisで定義した変数は、外部からの参照は出来るけど、クラス内のメソッドからは参照が出来ない。
ということでいいんですかね。今は全部varで宣言して、外部から値を参照した場合は、
getFooみたいなメソッドを作って値を返すような感じで設計してるんですけど。
04414352007/10/15(月) 02:19:54ID:???
this.foo1みたいにオブジェクトのプロパティにしたいなら、
それを使うときは、this.foo1で呼び出さないとエラーですよ。
隠したい時は、おっしゃるとおり、varで宣言して、
オブジェクトみたいな関数内で変数を共有したいときは、thisをつけてやればいいと思います。
0442nobodyさん2007/10/15(月) 02:48:03ID:vNLHbBBF
テキストボックス2つから数値を拾って変数に入れ、足し算をしてみましたがうまくいきません
例えば53+47=100が5347と表示されてしまいます
数値ではなくて文字として扱われていると思いますが、ついさっき勉強し始めたばかりで
文字型から数値型に変換する方法がわかりません。
どうやるのでしょうか?
0443nobodyさん2007/10/15(月) 02:49:17ID:???
>>437
仮引数はスコープ内変数です
04444422007/10/15(月) 02:57:30ID:???
eval(文字列)
parseFloat(文字列)
parseInt(文字列)
の3種類あるのがわかりましたが、でもうまくいきません。

var send_price = 0;
var al = 0;
al = form.all_price.value;
form.all_p.value = send_price + parseInt(al);

どこが悪いのでしょうか
0445nobodyさん2007/10/15(月) 03:01:04ID:???
Stringオブジェクトに数値に変換させるメソッドがあります。
04464422007/10/15(月) 03:06:07ID:???
とりあえず自己解決したようですがすっきりしません
send_price -=0;
al -=0;
で数値型に変えれるようで無事計算できましたが、こんなやりかたしかないのかと
ちょっと不安になりました
今までVB6.0・.NET・PHPと来ているので素人としてはなんか不安・・・
こんなもんなのかな?
0447nobodyさん2007/10/15(月) 03:14:11ID:???
なわけない
0448nobodyさん2007/10/15(月) 07:33:05ID:???
>>441
this.foo1で呼び出したら参照できました。thisは省略可能だと勘違いしてました。
ただ、↓のような使い方だとやはり undefine になっちゃいます。
GoogleMapAPIで色々してるのですが・・・

this.foo1 = "test";

GEvent.addListener(marker, 'click', function() {
  marker.openInfoWindowHtml( this.foo1 );
});
04494352007/10/15(月) 08:58:20ID:???
それは、marker内のopenInfoWindowHtmlにあるfoo1って意味だから、上で参照できないです。
thisは文脈で判断されるので。
0450nobodyさん2007/10/15(月) 09:51:21ID:???
>>449
this は文脈で判断されるってのはそうだが >>448 の例だと
>marker内のopenInfoWindowHtmlにあるfoo1
という意味にはならないな。エベントハンドラ内の this なら marker を指すはず。
04514502007/10/15(月) 09:51:44ID:???
エベント…
0452nobodyさん2007/10/15(月) 20:52:37ID:???
マウスオーバーしたimgタグの属性を変えることはできたのですが、
マウスポインタが、imgタグから出たときに、もともとファイルに記述してあった
属性に戻すにはどうしたらいいのでしょうか?
0453nobodyさん2007/10/15(月) 21:00:26ID:???
バックアップしとけば?
04544522007/10/15(月) 21:04:05ID:???
>>453
ありがとうございます。
グローバル変数に保存しておくと言うことですかね?
そうではなく、ファイルに記述してある内容に戻すことはできないですかね?
0455nobodyさん2007/10/15(月) 21:10:50ID:???
頭固いな
家着いたらサンプルコードかいてやるよ
0456nobodyさん2007/10/16(火) 00:08:57ID:Ggo+7Lvn
つ「onmouseout」
0457nobodyさん2007/10/16(火) 12:27:57ID:UaWfgcAi
<script language="JavaScript" type="text/javascript"><!--
for (i=0; i<info.length; i++) {
var date = info[i][2].split("/");
document.write('<p>'+date[0]+'年'+date[1]+'月'+date[2]+'日<br/><strong>'
+info[i][0]+'</strong><br/>'
+info[i][1]+'</p>');


}

の<p></p>内にdocument.imageを入れたいんですができるかな?
0458nobodyさん2007/10/16(火) 13:44:43ID:???
>>455
いつかえるんだ?
0459nobodyさん2007/10/16(火) 15:48:29ID:???
>>426
遅くなりました、ありがとうございます。
0460nobodyさん2007/10/16(火) 17:18:33ID:sLWgUutQ
jQueryにて右クリックイベントを捕捉したいんですが
どんな感じに書いたら出来ますでしょうか?
0461nobodyさん2007/10/16(火) 20:38:07ID:???
>>458
ヒント:デスマ
0462nobodyさん2007/10/17(水) 00:33:02ID:???
JavaScript使ってるような会社でデスマなんてあるのか?
実行環境を作ってる時はあったが
0463nobodyさん2007/10/17(水) 01:45:15ID:???
ですまーち
0464nobodyさん2007/10/17(水) 02:45:17ID:9raW6a7Q
まったくの素人ですが、計算のなかで次の行が効きません。
どうしてでしょうか。

if (gaku > 500) {alert("金額は500万円まで");return false;}
0465nobodyさん2007/10/17(水) 03:05:26ID:???
質問者としても素人だな
0466nobodyさん2007/10/17(水) 03:06:09ID:???
それのお尻に
else alert(gaku);
をくっつけてgakuの中身を確かめなさい
0467nobodyさん2007/10/17(水) 12:34:03ID:???
子ウィンドウにある画像をクリックすると、親ウィンドウのテキストボックスに画像のファイル名を送りたいのですが。
上手く送ることができません、どうのようにしたらいいでしょうか。

$fileは画像のファイル名

子ウィンドウ
<a href=' ' onClick='javascript:window.opener.document.form1.text1.value=$file.value'><IMG src='$file' ></a>

親ウィンドウ
<form name="form1">
<input type="text" name="text1">
</form>
0468nobodyさん2007/10/17(水) 12:38:20ID:9raW6a7Q
>>466
レスありがとうございます。
くっつけてみましたが、まったく効いていません。
ということは、その行は飛ばして、次の処理に行っているということでしょうか。

これは、フォームの入力チェックに使っています。
0469nobodyさん2007/10/17(水) 13:04:45ID:???
>>468

横やりだが、変数 gaku に何も数字が入っていないのではと>>466は言いたいのだと思う。

ちなみにフォームのテキストフィールドから取得した数字は文字列だから、ちゃんと型変換してね。

例)

if ( Number( gaku ) > 500 ) { ...


そういえば、上レスでJavascriptのデータ型がどうのとか、perlなら良いなとか騒いでいた奴いたな...
ネタ振りにならないことを祈る
0470nobodyさん2007/10/17(水) 15:20:18ID:???
>>469
この場合勝手に変換して計算されると思う
>>468
どっちのalertも表示されないのならその行自体が実行されてない
0471nobodyさん2007/10/17(水) 18:38:11ID:???
ほら、このとおり。
算術演算子と文字列演算子が同じなのがおかしい。
0472nobodyさん2007/10/17(水) 19:07:48ID:???
文字列演算子がどうしたって?
0473nobodyさん2007/10/17(水) 19:38:46ID:???
+は文字を連結するのか、数値を加算するのかというお話。あまりイクナイ実装だよねみたいな
0474KaM2007/10/17(水) 19:46:18ID:???
>>741
おかしいと言うか適切ではないと思うが、そう作ってしまったものは仕方が無い。
完成物を使う以上、それに不満を言っても仕方無いでしょ。
それが気に食わないのなら、他の自分好みの言語を使うなり、自分好みに
カスタマイズして使えばいいだけでは?
0475nobodyさん2007/10/17(水) 20:36:15ID:???
そもそも文字列を使用して算術計算を行うこと自体がナンセンスなんだがね
算術計算をしたいなら数値を使えよ
0476nobodyさん2007/10/17(水) 22:07:19ID:???
>そもそも文字列を使用して算術計算を行うこと自体がナンセンスなんだがね
>算術計算をしたいなら数値を使えよ

バイナリエディタでも使ってろ
0477nobodyさん2007/10/18(木) 00:08:36ID:???
またですか?
0478nobodyさん2007/10/18(木) 12:47:03ID:???
はい、またです!

次の方、いますか?
0479nobodyさん2007/10/18(木) 19:48:24ID:???
>>474
で、決定だろ。
アンカーは>>471の間違いだと思うが
0480nobodyさん2007/10/18(木) 20:31:24ID:???
中置演算子全部消して関数呼び出しに特化すれば良い
0481nobodyさん2007/10/18(木) 20:35:53ID:???
数値の加算は a + b ではなく a - -b と書けばよい
0482nobodyさん2007/10/18(木) 21:34:38ID:???
なんかね何人か論点ずれてんのに自分すごい頭いいこといってると酔ってる馬鹿がいるかも
0483nobodyさん2007/10/18(木) 21:43:46ID:???
はいはい
0484nobodyさん2007/10/18(木) 21:50:06ID:???
実際に482より相対的に頭がいいだろ
0485nobodyさん2007/10/18(木) 23:12:10ID:???
情報なしの憶測で決めつけちゃう馬鹿もおりました。同一人物か。
0486nobodyさん2007/10/19(金) 00:01:57ID:???
これは良いブーメラン
0487nobodyさん2007/10/19(金) 00:53:19ID:???
>>485
>>485
0488nobodyさん2007/10/23(火) 03:52:48ID:???
おじゃまします。

・最近チェックした商品を、ページに表示する
・画像やページを遷都する際に、背景をグレーアウトしてNow Loading...等を出す

ということをやりたいんですが、
Cookieや、Javascriptを使うのは理解できるんですが、なかなかサンプルも見つからず、
どこか分かりやすく解説しているサイトか書物ってないでしょうか?
もしくは、何を勉強すればいいのかヒントください。
0489nobodyさん2007/10/23(火) 12:56:36ID:???
>>488

とりあえずAjax

Ajax
ttp://www.openspc2.org/JavaScript/Ajax/Ajax_study/

あと、PHPも勉強するといいかも...
0490nobodyさん2007/10/23(火) 22:10:51ID:???
最近チェックしたってのがどの範囲か分からんが、
ページ内だけなら変数に保存しておけるし、同じ PC 内で一定期間なら Cookie だし、
違う PC でも同じユーザってのならセッション使って会員制だ。
0491nobodyさん2007/10/23(火) 22:26:19ID:???
ブラウザ上のJavaScriptは板違い。Web制作板の質問スレ。
http://pc11.2ch.net/test/read.cgi/hp/1190811747/l50
0492nobodyさん2007/10/25(木) 13:10:24ID:???
onclickでwindow.close()とwindow.openerの二つの動作を実行させたいのですが、
先にcloseを置くと値が飛ばず、closeを後に置くと閉じなくります。
どのようにしたらいいでしょうか?よろしくお願いします。
0493nobodyさん2007/10/25(木) 13:35:03ID:???
なんで後に置くと閉じなくなるの?
04944922007/10/25(木) 14:19:48ID:???
書き方が間違っていたようです、お騒がせしました。
0495nobodyさん2007/11/09(金) 16:04:05ID:k4IFeOi8
下のコードは、form1という名のテキストボックスtext1の値をtext2にコピーする例ですが、
変数の値を基に、そのオブジェクトを指定することはできませんか。例えば変数 objName
に"text1"が代入されているとき、どのようなコードでtext1というオブジェクトを指定で
きるのでしょうか。

var str1;
str1 = document.form1.text1.value;
document.form1.text2.value = str1;

わかりきってるかも知れませんが、もし正しく伝わらないといけないので、何を前提とし
て言ってるのかを一応補足しておくと、HTMLファイルの中にJavaScriptを記述してWebブ
ラウザから実行するプログラムで、text1やtext2はHTMLで記述したテキストボックスです。
0496nobodyさん2007/11/09(金) 19:02:42ID:???
>>495
if 使え
0497jd2007/11/09(金) 22:47:36ID:WBd11igL
kkkkk
0498nobodyさん2007/11/09(金) 23:01:32ID:???
>>495
ひどい文章だ
0499nobodyさん2007/11/10(土) 00:21:25ID:???
「初めてのJavaScript」(オライリー刊)っての、読み始めたんだけど、
初心者向きとは思えない難しさで悪戦苦闘中。
evntとかeventとかtheEventとか変数の綴りを微妙に変えるのが流行なの?
0500nobodyさん2007/11/10(土) 08:13:28ID:???
変化をつけないと飽きるから
0501nobodyさん2007/11/10(土) 14:40:00ID:???
読んでないからわからんが仕様と実装と実装の仕様を分けてるんじゃないの
0502nobodyさん2007/11/11(日) 01:25:09ID:???
初心者(初学)だと確かに厳しいけどそこそこプログラミングできる人には良いと思う。自分は初心者だったが、今はジャワサイ本読むようになったからか、初めてのサイ本は簡単に見える
0503nobodyさん2007/11/16(金) 15:27:46ID:PJayprsB
質問です。

javascriptでテキストを返すんですが
10行だったらブラウザのスクロールバーが出ないんですが
20行だったら出るというような状況です。

この時スクロールバーが出るため、ブラウザのウィンドウ分
表示が左にずれます。

スクロールバーをわかりにくくなりそうなのでできればやめたいです。

この場合最初からスクロールバーを出しておくようなデザインにするしかないのでしょうか?

皆さんの意見お願いします。
0504nobodyさん2007/11/16(金) 16:49:43ID:???
スクロールバーを表示させたくないならhiddenにすればおk
0505nobodyさん2007/11/30(金) 17:42:31ID:irp9OKfI
ページ内にあるいずれかのhrefをクリック、またはformがsubmitされた場合を検知して、
特定のパラメータを追加して再送信するにはどうやれば良いのでしょうか。

<a href="foo.html">AAA</a>
↑クリックを検知してfoo.html?bar=bazのようにして再送信したい
0506nobodyさん2007/12/01(土) 16:32:53ID:???
>>505
<html><header><title>sample</title>
<script type="text/JavaScript" language="JavaScript">
<!--function clicked(){ document.SAMPLEFORM.bar.value="baz"; document.SAMPLEFORM.submit();}-->
</script>
</header><body>
<form name="SAMPLEFORM" method="GET" action="foo.html">
<input type="hidden" name="bar">
<a href="javascript:void(0)" onclick="clicked()">AAA</A>
<input type="submit" value="送信" onclick="clicked()">
</form></body></html>

で桶のはず。

追伸
webで公開するならNoscript環境の事も少しは考えてやってください。
0507nobodyさん2007/12/04(火) 17:54:48ID:???
safariをどうにかしてくださ
0508nobodyさん2007/12/04(火) 22:06:46ID:???
safariは無視してる
0509masa2007/12/04(火) 23:21:16ID:???
正直、対応アーキテクトが一番多いからFirefoxでしか動作確認してない。
0510nobodyさん2007/12/05(水) 11:07:13ID:???
Firefox でしか動かないスクリプトなんざ
IE でしか動かないスクリプト以下の価値しかないと思っている。
Microsoft が Mozilla に変わっただけで、
仕様の策定に関われてない状況は何も変わらないのに。
0511nobodyさん2007/12/05(水) 12:38:57ID:???
>510の文書が下手すぎて、何を言わんとしているのか意図が掴めません。

判る人、解説を...
■ このスレッドは過去ログ倉庫に格納されています