JavaScript質問コーナー
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/10/03 12:30ID:ZbLXlHc80725nobodyさん
2005/12/02(金) 15:46:01ID:???0727nobodyさん
2005/12/02(金) 20:27:48ID:???つまり >>726 のような理由で「絶対にできない」わけだ。
もしできたら、洩れのページに見てくれたヤシの履歴記録して
エロサイト発見したら家族にバラすぞとか脅迫メール送って
小金を送金させるというJSを仕込むと大金持ちになりそうだ。
0728nobodyさん
2005/12/02(金) 22:16:19ID:???0729728
2005/12/02(金) 23:25:44ID:???<div contenteditable=true>
0730nobodyさん
2005/12/02(金) 23:26:53ID:5tbYgm8H個人情報という観点で使用できないのですね。
ありがとうございます。
>>728
多分innerHTMLやinnerTextの事だと思う。
0731nobodyさん
2005/12/02(金) 23:27:27ID:5tbYgm8H勘違いスマソ
0732nobodyさん
2005/12/04(日) 10:13:37ID:1o62MWra<head>
<script language="javascript"> <!--
function URLCheck() {
alert (parent.frame1.location.href);
}
// -->
</script>
</head>
<body>
<iframe src="http://www.google.co.jp/" name="frame1" width="100%" height="200"></iframe>
<input type="button" value="Check" onClick="URLCheck();">
</body>
</html>
というHTMLファイルをローカルに作成した時に
alert (parent.frame1.location.href);
が書き込みできませんというエラーが表示され、URLを確認できません。
どのようにしたら外部のHPをフレーム内に表示した時にURLを取得できるのでしょうか?
0733nobodyさん
2005/12/04(日) 22:02:02ID:???0734nobodyさん
2005/12/04(日) 22:04:09ID:1o62MWra0736nobodyさん
2005/12/06(火) 22:49:26ID:???ttp://hp.xrea.jp/
↑ここの、ページ左フレーム『リンク』→『ツリーメニュー』のページにある様なものです。
他にも似た様なサンプルを公開しているサイトがありますが、どれもネットスケープでは駄目な様です。
ちなみに、ブラウザの設定はデフォルトのままで、他のサンプルは正常に動作します。
0737nobodyさん
2005/12/06(火) 22:51:59ID:???0738きりす
2005/12/06(火) 23:10:22ID:avMXuOv20740nobodyさん
2005/12/07(水) 08:30:33ID:3OlvPHv6javascriptはじめたばかりのものです。よろしくおねがいします。
var a;
eval("a")="ナタデココ";
document.write(a);
としてもナタデココ と出力されないのは何故ですか
var a="ナタデココ";
var b=eval("a");
document.write(b);
は表示されるのに。eval("a")はaそのものをあらわすのではないのですか?
0741740
2005/12/07(水) 08:35:39ID:???Web製作板に飛んでゆきます
0742nobodyさん
2005/12/07(水) 08:35:49ID:???0743nobodyさん
2005/12/07(水) 08:55:11ID:3OlvPHv6つまりeval("a")とすると変数の実体が返されるんじゃなくて
値のみがコピーされて返されるというような感じでしょうか
もしそうだとしたら、文字列から変数の実体を取得できる方法ってありますか
お願いします。
0744nobodyさん
2005/12/07(水) 09:18:13ID:???たぶんできないと思う。文字列を変数への参照として使うってのはプロパティなら何とか。
var obj = new Object();
obj["a"] = "ナタデココ";
もしくは
eval("a = 'ナタデココ'");
とかかな?よーわからん。
つーか、板違いか・・・orz
0745nobodyさん
2005/12/07(水) 09:47:40ID:3OlvPHv6とりあえずeval("a = 'ナタデココ'"); でできました!
現時点ではこれで十分です。ありがとうございました!
次回からはWeb製作板逝きますです
0746nobodyさん
2005/12/07(水) 13:27:47ID:???ブラウザだったらこう
window['a'] = 'ナタデココ';
0747745
2005/12/07(水) 15:46:13ID:???試して見ます
皆さん(同じ人??)ありがとうございました
0748nobodyさん
2005/12/08(木) 09:35:31ID:???IEのデフォルトだと、HTMLの背景は印刷されませんよね。
インターネットオプション→詳細設定→印刷□背景の色とイメージを印刷する
これにチェックを入れれば可能ですが、この設定を一時的にJava-scriptで制御できないものでしょうか?
具体的には、印刷設定はデフォルトのまま背景は印刷されない状態で、印刷したいページにjava-scriptで「印刷」ボタンを設置。
それを経由して印刷する場合には一時的に背景印刷されるようにする。
…という感じで。
0749nobodyさん
2005/12/08(木) 21:09:20ID:???0750nobodyさん
2005/12/10(土) 15:57:08ID:ceGCk37eNoが選択されたら、変更前に選択されていたものに戻したい
のですが、どのようにすればよいのでしょうか?
例えば、下記の状態でCをクリックした場合に確認ダイアログを
出して、Noが選択されたら、Aに戻したいです。
◎A ○B ○C
0751nobodyさん
2005/12/10(土) 16:42:46ID:???<input type="radio"> かいな?
type="checkbox" かいな?
VBのコンロトールかと思ったw
VB使いはHTML覚え始めは混同しなかったかい?
しないねw
HTMLをまず晒してみ?
0752nobodyさん
2005/12/10(土) 17:39:30ID:ceGCk37eお察しの通りradioのことです。
VBあがりなプログラマーなもので。
ソースは以下の通りです。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=shift_jis">
<BODY>
<SCRIPT language=JavaScript>
function check(radio) {
if(confirm('確認ダイアログ')){
return True;
}else{
return False;
}
}
</SCRIPT>
<FORM method=post name="myFORM">
<INPUT onmousedown=check(this) type=radio CHECKED value="A" name"=RadioBtn">A
<INPUT onmousedown=check(this) type=radio value="B" name="RadioBtn">B
<INPUT onmousedown=check(this) type=radio value="C" name="RadioBtn">C
</FORM>
</BODY>
</HTML>
0753752
2005/12/10(土) 17:41:03ID:???動かなくて困っています。
0754nobodyさん
2005/12/10(土) 17:42:14ID:???0755nobodyさん
2005/12/11(日) 03:38:25ID:???<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META http-equiv=Content-Type content="text/html; charset=shift_jis">
<BODY>
<script type="text/javascript">
window.onload=function(){
var flag=Boolean(document.uniqueID)
var Col_Radio=document.getElementById("ElmSPAN").getElementsByTagName("INPUT");
for (var i=0;i<Col_Radio.length;i++){
if (flag){Col_Radio[i].onfocus=check;}else{Col_Radio[i].onclick=check;}
}}
function check() {
if(confirm('確認ダイアログ')){
this.checked=true;return true;
}else{return false;} }
</script>
<FORM method="post" name="myFORM">
<span id="ElmSPAN">
<INPUT type="radio" CHECKED value="A" name="RadioBtn">A
<INPUT type="radio" value="B" name="RadioBtn">B
<INPUT type="radio" value="C" name="RadioBtn">C
</span>
</FORM>
</BODY></HTML>
0756755
2005/12/11(日) 04:01:20ID:???FF_GeckoとIE_MSHTMLでradioのチェックタイミングが噛み合わなかったんで
イベントを分けてハンドラしたのでwindow.onloadで…
FF
onclickイベントでキャセルすると元に戻る。
IE
onclickキャンセルではダメ。しかしonclick以外のonmouseup/down,onfocus等で
自らチェック動作を書いてやれば同等な事ができる。
どれでも通用しそうな手は前にチェックしてあった要素を記憶しておくこと。
おっとVB系と違いJSのBoolean値の定数は true/false 小文字だけネー
0757nobodyさん
2005/12/11(日) 14:10:36ID:Rppt4XMT>郵便番号を4桁打つと自動的に次のテキストボックスにフォーカスが
>移るという処理はできないのでしょうか?
そういうのって、最高に「よけいなお世話」仕様。最高にストレスがたまる糞インターフェース。
その場合、普通は「4桁打つ」た後、ユーザはほとんど無意識にtabを叩いている。
結果、「次」ではなく、「次の次」にフォーカスが打つって元に戻らないとならない。
同じ理由で、勝手にIMEをON/OFFするのも最低最悪な仕様。
0760752
2005/12/11(日) 16:18:38ID:???別の問題が発生しました。
window.onloadやonfocusを使ってるので、別のウィンドウ(例えば
EXCEL等)に切り替えて、再度IEを表示すると、オプションを変更
してないにもかかわらず、確認ダイアログが表示されてしまいます。
うーむ、なかなか難しいですね。
0761nobodyさん
2005/12/11(日) 16:59:42ID:???もう一個たいしたことじゃないけど問題発見。
キャンセルした後にもう一度同じの選ぶと普通にチェックされる。
0763nobodyさん
2005/12/11(日) 18:39:12ID:???クライアントのPCに保存させないようにする方法はあるのでしょうか?
対象はJavaScriptが有効になっているブラウザ(IE)のみを考えています
0764755
2005/12/11(日) 23:33:57ID:???Operaも確認しよーかなーと思ってメンドかったw
Geckoだけ確認してそれ以外はIEと共用でonmousedownにしてみたよ。
ついでに余計なお世話で… >>752 インラインでイベント管理する時はreturnつけようね。
例:<INPUT onmousedown="return check(this)" name="RadioBtn">
(´・ω・`)以下は差し替えてネーでもあくまでサンプルだよって言っておくw
<script type="text/javascript">
window.onload=function(){
var IsGecko=Boolean(String(window.navigator.userAgent).indexOf("Gecko")!=-1)
var Col_Radio=document.getElementById("ElmSPAN").getElementsByTagName("INPUT");
for (var i=0;i<Col_Radio.length;i++){
if (IsGecko){Col_Radio[i].onclick=check;}else{Col_Radio[i].onmousedown=check;}
}}
function check() {
if(confirm('確認ダイアログ')){
this.checked=true
return true;
}else{return false;}
}
</script>
0765nobodyさん
2005/12/12(月) 01:16:54ID:???寝る前に気付いたw
scriptブロックの位置が変だね(´・ω・`)
だって752の上書きしたんだもんw
<head></head>内に収めてチョー
>>755 >>764 の
このままでは厳密にはダミなんだよ
onload以前にクリックされちゃうとハンドラしてないからね
・onloadまでCSSで見えないとかdisabledで無効にしておくとか。
・onloadで要素を動的作成するとかカナー
訂正多いってそろそろ怒られそうだ(´・ω・`)ショボーン
0767nobodyさん
2005/12/13(火) 16:48:10ID:???最初のページは我慢だがw
window.open()やshowModelessDialog()で
ツールバー等表示せず、
<body oncontextmenu="return false">
で右クリ禁止とかキャッシュ禁止も吐いてな
で一応素人さんにはOKな希ガス
0768nobodyさん
2005/12/13(火) 22:16:36ID:???これを空配列として分割する事は出来ないのでしょうか?
var dat = ",,,,,";
var sdat = dat.split(/,/);
sda[0] = "";
sda[1] = "";
sda[2] = "";
.
.
.
という結果にしたいのです。
0769nobodyさん
2005/12/13(火) 22:18:44ID:???0770nobodyさん
2005/12/13(火) 22:46:14ID:???これ実行してみ。
<html><head>
<script type="text/javascript">
function test(){
var dat = ",,,,,";
var dats = dat.split(/,/);
for( i = 0 ; i < dats.length ; i++){
if(dats[i] == ""){
alert(dats[i] + i);
}else{
alert("ちがう");
}
}
}
</script>
</head><body>
<input type="button" value="run" onclick="test()">
</body></html>
0771nobodyさん
2005/12/13(火) 23:05:58ID:???split(","); と split(/,/);は違うのですね(^^;。
これでは、
var dat = ",,,,,";
var dats = dat.split(/,/);
dats.length が 0 になります。
ありがとうございます。
0772nobodyさん
2005/12/13(火) 23:21:21ID:???一緒だよ!!
>>770実行した?
↓これも実行してみ
<html><head>
<script type="text/javascript">
function test(){
var dat = ",,,,,";
var dats = dat.split(/,/);
alert(dats.length);
}
</script>
</head><body>
<input type="button" value="run" onclick="test()">
</body></html>
0775nobodyさん
2005/12/16(金) 16:34:40ID:???onfocusイベントでつかまえるとかじゃなくて、現在のフォーカスされてるオブジェクトを探したいのです。
0776nobodyさん
2005/12/17(土) 08:51:26ID:???JavaScript質問スレ(Web製作板)の過去スレに同じ質問あったと思う。
過去スレ全集探しに行けば?
0777nobodyさん
2005/12/17(土) 09:49:45ID:???0778nobodyさん
2005/12/17(土) 23:22:06ID:???動作させたいターゲットのブラウザのリファレンスを
隅からスミまで見るこった。
全部そのブラウザでは動作するのだからw
なくてもチラ見した知識はムダにはなるまい?
0779nobodyさん
2005/12/18(日) 15:58:46ID:0OmqhgWx0781nobodyさん
2005/12/21(水) 19:59:55ID:???もしかして、関数コンストラクタといっしょ?
0782nobodyさん
2005/12/22(木) 08:50:36ID:???そんなわきゃないだろ。構文エラーがある場合、関数コンストラクタ
はその実行時点までエラー出ないがリテラルだと実行開始前に分かる
でしょ。だからできるだけリテラル使う方が吉。つか、実行時に関数
コードを組み立てるのでない限り関数コンストラクタ不要。
0783nobodyさん
2005/12/22(木) 11:43:29ID:???<input type="text" id="hoge" name="aaa" value="">
//javascript
document.getElementById("hoge").value = "hoge";
getElementByIdを使って値を入れたいのですが
どこが間違っているのでしょうか?
よろしくお願いいたします。
0784783
2005/12/22(木) 11:58:41ID:???0785nobodyさん
2005/12/23(金) 01:58:17ID:Y4oze3pa以下のようなコードを書こうと思ってます。
document.onmousedown = myMousedown;
function myMousedown(e){
if( e.target.tagName == 'INPUT' ){
// スルーしたい
// 本来の document.onmousedown を呼びたい
}
// 自分の処理
}
しかし「// スルーしたい」の部分をどう書いたらよいか分かりません。
#document.onmousedown(e)とすると、当然 too much recursion となります…orz
なぜこのようなコードが必要かというと、ドラッグ可能なレイヤー上に
フォームエレメントを置きたいのですが、ドラッグするためのコードが
フォームエレメントへのフォーカスを奪ってしまうのでうまくいかないのです…
どなたか詳しい方教えて下さい。
0786nobodyさん
2005/12/23(金) 02:38:36ID:???// スルーしたい
return true;
// 本来の document.onmousedown を呼びたい
スルーだけ読んだのでこれでスルーだが…w
INPUT要素がonmousedownイベントを起こした場合
// 自分の処理 はしないって事かい?
if elseで分けるかい?w
// 本来の document.onmousedown を呼びたい
とあるが、
このイベントハンドラはそれで呼ばれているんだが…w
イベントがバブルUPして来てな。
INPUT要素個別にキャンセルしてバブルしないようにするのは面倒だからこれでいいと思うが。
つーかこれGeckoか。じゃバイバイw
0787785
2005/12/23(金) 03:34:20ID:???> // スルーしたい
> return true;
私もそれでよいのかと思ったのですが、例えば type="text" をクリックしたとき
そのエレメントにフォーカスが行かないのでそれではダメらしいのです。
(バブルアップせずにイベント処理は return 〜; で解消されてるのですかね?)
> INPUT要素がonmousedownイベントを起こした場合
> // 自分の処理 はしないって事かい?
> if elseで分けるかい?w
今やりたいのはレイヤーのドラッグ処理だけなので、
input要素がターゲットの場合は何も処理をしない方針です。
やっぱ if( e.target.type == ... ) で分岐しつつ必要な処理をするんですかね…
0788nobody
2005/12/23(金) 10:20:44ID:8U/UcGiy0789nobodyさん
2005/12/23(金) 11:07:18ID:???0790785
2005/12/23(金) 16:49:34ID:???マウスイベントを横取りするレイヤー上のスルーしたいエレメントに
onmousedown="event.cancelBubble=true"
などを定義してバブルアップをキャンセルすればよいのですね。
>>786に答えが書いてあったことに眠い頭では気が付かなかった…
thx.
0791nobodyさん
2005/12/23(金) 17:22:04ID:???わざわざイベントキャンセルの為だけのイベント書かなくても・・・。
ドラッグドロップ関係のコードはごろごろ転がってるよ。
そのまま使うのが嫌だとしても参考程度に見てみたら。
0792nobodyさん
2005/12/24(土) 23:43:13ID:0DS3GwTh1、あるオブジェクトのフォーム内での通し番号をあるオブジェクトの
name値などから取得するにはどのようにすればいいでしょうか?
2、あるオブジェクトの(通し番号からみて)次のオブジェクトを
取得するにはどのような記述をすればいいでしょうか?
0793nobodyさん
2005/12/25(日) 03:41:36ID:???その通し番号とはどういう基準で得るものか?
簡略なHTMLでいいから晒さないと。
対象ブラウザも書いとくと回答する側はやりやすいと思うよw
(でも欲張ってクロスにしてと言われてもなーw
まぁ1つこれで。がいいと思うw)
つーか、ここそういうスレになってるのかなw
0794nobodyさん
2005/12/25(日) 07:30:17ID:1S5A5eVR失礼しました。通し番号とは
document.form.elements[0]
の[]内で指定するオブジェクトに付与されている番号の
つもりで書きました。
0795nobodyさん
2005/12/25(日) 12:44:44ID:???サンプル。IE6&FF1.5
HTML要素コレクション内を順に自分で調べる。汎用の関数を書くといいだろう。
要素が1つの場合は注意(笑
ん?2に関してだが、elements[n]で参照できるならば次はelements[n+1]だろう?
id属性に工夫してもいいだろう。id="n01" id="n02" のように自ら分かるような名前を振っておくとか。
蛇足だが、forms["ElmFORM1"]のように位置indexでなくid又はnameでも参照できる
<script type="text/javascript">
window.onload=function(){
var Col_FORM_Elements=document.forms["ElmFORM1"].elements
for (var i=0;i<Col_FORM_Elements.length;i++){
if (Col_FORM_Elements[i].name=="Btn"){alert(i);break;}
}
}
</script>
<form id="ElmFORM1">
<div>テスト</div>
<input type="text" name="Msg">
<input type="button" name="Btn" value="ボタン">
<div>テスト</div>
</form>
0796nobodyさん
2005/12/27(火) 11:21:39ID:eBzKSWjwvar a = new MyClass;
0797nobodyさん
2005/12/29(木) 05:32:32ID:VU+ipHbaなどとイベントをオーバーライドしたときには、
obj.onclickが発生したときの"this"の位置はfuncから見たthisなのか、もしくはonclickから見たthisのどちらになるのでしょうか?
いろいろと試してみたところ、objから見たものになっているようなのですが、自信がなかったので質問させていただきました。
また、もしobjから見たthisであったとすれば、this.func内にあるthis.hogeなどにアクセスすることができないのですが、どのように対処すれば良いか解りましたらよろしくお願いします。
0798nobodyさん
2005/12/29(木) 09:31:21ID:???var chinko = this;
obj.onclick = function () { return chinko.func() };
0799nobodyさん
2005/12/30(金) 17:17:54ID:???こちらから見るぶんです。
一時的に。
0801nobodyさん
2005/12/30(金) 17:28:36ID:???JSは使います。
JSを押すとインストールして、あるサイトで右クリを押してクリック。
それでフラッシュを上部に表示させるのですが上手く表示されません。。。
0802nobodyさん
2005/12/30(金) 17:51:33ID:???0803nobodyさん
2005/12/30(金) 18:54:58ID:???0804nobodyさん
2005/12/31(土) 13:37:50ID:???まずは人がわかるような文章にしてください。
>JSを押すと
JS=JavaScriptとしても、JavaScriptは押すものじゃない。
ボタンか何かを押して、そのonclickで処理させることか?
>インストールして、
何をインストールするのか。
>あるサイトで右クリを押してクリック。
右クリを押して=右クリックメニューを表示?
で、どこをクリックするのか?
>それでフラッシュを上部に表示させるのですが上手く表示されません。。。
上部とは?
これだけ意味不明な文章はおもしろい。
0805nobodyさん
2005/12/31(土) 15:03:38ID:???0806nobodyさん
2005/12/31(土) 15:49:09ID:???0807nobodyさん
2005/12/31(土) 23:16:52ID:???・****(偽名).html
・start.html
・****(偽名).swf
・****(偽名)p.swf(表示されるサイズが違うだけ)
・****(偽名).utf
・install.js
っとなってます。
インストールはinstall.jsでインストールし、ネットのサイトで右クリをするとプロパティの上の[****(偽名)]
が追加され押すとそのページの上部に****(偽名).swfが表示されるはずなのです。
ですがそれが表示されません・・・。
0809nobodyさん
2006/01/01(日) 02:58:39ID:???∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | >>807
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0810エスパーの分かりやすい解説
2006/01/01(日) 12:18:03ID:???(****は伏字。みんな同じ名前)
****.html start.html ****.swf ****p.swf ****.utf install.js
install.jsを実行するとインストールされ(といってもレジストリに一箇所書き込むだけ)
IEの右クリックメニューとして使えるようになります。
そして、任意のwebページ上でその右クリックメニューを実行すると、
そのページの上部(body開始タグの直後)に****.swfが挿入され表示されるはずなのですが、
それが表示されません。どうすれば表示されるようになるでしょうか。
そんなこと知るかvoke
0811nobodyさん
2006/01/01(日) 13:47:18ID:???0812nobodyさん
2006/01/01(日) 14:02:31ID:???0813nobodyさん
2006/01/02(月) 21:16:14ID:???0814nobodyさん
2006/01/02(月) 21:49:08ID:???つかクライアントサイドのJSの話題はWeb製作板へ。
0816nobodyさん
2006/01/04(水) 16:29:15ID:???0817816
2006/01/04(水) 22:19:28ID:???0818nobodyさん
2006/01/05(木) 08:13:05ID:???0819nobodyさん
2006/01/09(月) 20:22:37ID:???0820nobodyさん
2006/01/09(月) 20:52:50ID:mS0U6o5B0821nobodyさん
2006/01/15(日) 05:21:02ID:???0822nobodyさん
2006/01/15(日) 16:16:44ID:???0823nobodyさん
2006/01/16(月) 16:14:09ID:???フレームのnameはwin1とwin2
win1,win2がロードされたとき、それぞれcommonFunc(str)という関数を実行したい。
win1,win2の<body>にそれぞれonload=""指定してやればいいんだが、
win1,win2のファイルにはもう手を加えることができない。断じてできない。
こんなときは、どうすればいいんですか?
win1.body.onload=commonFunc("aaaaaaaa");
win2.body.onload=commonFunc("bbbbbbbb");
みたいなのをフレームをセットしてるページに書けばいいよな気がするんですが、
正解はどうなりますか?
0824nobodyさん
2006/01/17(火) 00:52:07ID:???framesetのonload内で処理するのだとダメですかね。
一応フレーム内の読み込みが完了してから呼ばれるみたいですけど。
<script type="text/javascript>
function init()
{
commonFunc("aaaaaa" );
commonFunc("bbbbbb" );
}
</script>
<frameset onload="return init();">
0825nobodyさん
2006/01/18(水) 01:09:32ID:U0i8qNGpdivタグのinnerHTMLを空にしたいのですが、
うまくいきません。
> divObj.innerHTML = "";
のように設定すると、
> <div> </div>
のようになります。
> <div></div>
となるようにしたいのですが、どうすればいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています