いつもお世話になっております。

以下のサンプルスクリプトでinnerText・style.left・style.topと書いてあるところがあるのですが、これはどういう意味なのでしょうか?

どなたかわかる方、教えてください。
お願いします。

<HTML>
<HEAD>
<TITLE>マウスポインタ座標表示</TITLE>
<STYLE TYPE="text/css">
<!--
#msxy { position:absolute;
top:0px;
left:0px;
width:48px;
color:black;
background-color:yellow;
font-size:7pt;
border-width:1px;
border-size:1px;
border-style:solid;
}
--></STYLE>
<SCRIPT Language="JavaScript">
<!--
function displayMouseXY(evt)
{
var X = Y = 0;
if (document.all)
{
X = event.x;
Y = event.y;
document.all["msxy"].innerText = X+","+Y;
document.all["msxy"].style.left= X + 8;
document.all["msxy"].style.top = Y + 16;
}
if (document.layers)
{
X = evt.x;
Y = evt.y;
with(document.layers["msxy"])
{
document.open();
document.write("<SMALL>"+X+","+Y+"</SMALL>");
document.close();
left = X + 8;
top = Y + 16;
bgColor = "yellow";
}
}

}
if (document.all) document.onmousemove = displayMouseXY;
if (document.layers) {
window.onmousemove = displayMouseXY;
window.captureEvents(Event.MOUSEMOVE);
}
// -->
</SCRIPT>
</HEAD>
<BODY BGCOLOR="white">
マウスポインタ座標表示<BR>
<DIV ID="msxy"></DIV>
</BODY>
</HTML>

このQ&Aに関連する最新のQ&A

A 回答 (2件)

innerTextはinnerHTMLとすると、下のNN用の、記述と全く同じ意味になりますね。


document.all["msxy"].innerText で、"msxy"というIDを持つレイヤーの中にある「文字列として」 X+","+Y を代入する。となりますね。HTMLとしてではなく、文字列として代入されます。HTMLとして代入したいときは、
document.all["msxy"].innerHTML としてやれば、HTMLとして代入できます。この場合は、 X+","+Y を "<FONT color=red><B>"+X+","+Y+"</B></FONT>" というように、HTMLとして代入することが出来ます。innerTextとinnerHTMLとを書き換えたりして、仕組みの違いを覚えておくと良いでしょう。

document.all["msxy"].style.left とはpussyfootのおっしゃる通りで、 "msxy"というIDを持つレイヤー の(スタイルプロパティーの中の)X座標という意味です。(スタイルプロパティーには、このほかにも、高さ(height)や幅(width)など、多数あります。
    • good
    • 0
この回答へのお礼

スタイルプロパティーというのをまるきり知りませんでした(^_^;)
回答を参考に自分でいじくってみて、少しずつ理解してます。
どうもありがとうございました。助かりました。

お礼日時:2001/01/20 10:19

スクリプトを実行したんでも、動きを見たわけでも無いのですが、おそらく


innerText = X+","+Yで下の方の
<DIV ID="msxy"></DIV>
で宣言したDIVタグの中に座標を表示してます。innerTextって言うのがテキストって言うことで、そこに代入してるので表示だと思います。。
document.all["msxy"].style.left= X + 8;
document.all["msxy"].style.top = Y + 16;
同様に、DIVタグの座標を設定してます。つまり、XとY座標を設定することにより、マウスを追っかけます。

このスクリプトは、座標の数字がマウスポインタを追っかける物でしょうね?
    • good
    • 0
この回答へのお礼

意味がつかめてきました。
自分でいじくって、色々試してみます。
どうもありがとうございました。

お礼日時:2001/01/20 10:22

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qツールバーがカーソルを合わせないと出ない

サイトを見ている際、上部にツールバーが出ていたのですが、今ではそこにカーソルを合わせないと出なくなってしまいました。
下部のツールバー?も以前より小さくなってしまいました。
元に戻したいのですが、どうしたらよいでしょう?

Aベストアンサー

F11キーを押してください。

QJavaScriptで【window.google={kHL:"ja"};】という記述はどういう意味?

JavaScriptで【window.google={kHL:"ja"};】という記述はどういう意味?


YOUTUBE日本語版
http://jp.youtube.com/
のHTMLソースを見ていたら、



<script type="text/javascript">
    window.google={kHL:"ja"};
</script>


という記述を目にしたのですがこれはどういう意味あいというか目的のものなのでしょうか?


教えていただければ幸いです。

Aベストアンサー

これは、window.googleに'kHL'というキー(値は'ja')を持つ連想配列を
作成しています。

JavaScriptでの連想配列は

var 変数名 = {
キー : '値',
キー : '値',
:,
キー : '値'
};

というような感じで作成します。
キーはダブルクォートまたはシングルクォートで囲まなくても
いいようです。

参考URL:http://javascriptist.net/docs/basic_hash.html,http://www.openspc2.org/JavaScript/kouza2007/array/hash/index.html

Q画面立ち上げ時 カーソルが出ない

windowas meのノートを使っていました。
画面を立ち上げたら、画面の絵や文字が拡大されていて、いくら動かしてもカーソルが現れません。
今は違うパソコンからアクセスしてますが、どうしたらよいのでしょうか?
教えてください。お願いします。

Aベストアンサー

多分、レジストリトラブルでしょう!

キーボードよりウインドウズキーを押し、
方向キー(↑)で「ファイル名を指定して実行」で
エンター、scanregw /restore(scanregwの後
ワンスペース)と入力しエンター、
「レジストリの復元」画面で
方向キーで正常だった最新の日でエンター
これで再起動がかかります

修復出来ると思いますが?

Q

数十の<a>タグがあるHTMLファイルの中で、
<div id="blank">で囲まれた<a>タグ群のみをすべてtarget="_blank"にしたいと考えています。
該当する<a>タグすべてにtarget="_blank"を書くと、HTMLファイルの容量が大きくなるので、CSSのIDとJavaScriptを組み合わせて、実現できないものでしょうか。

Aベストアンサー

<base target="_blank">
<div id="blank">
 <!-- -->
</div>
<base target="_self">

Qツールバーにカーソルをポイントしてもヒントが出ない

エクセルの2000を使っていますが、標準ツールバーにある「上書き保存」のマークや「切り取り」などのマークの上にカーソルを置いてもヒントが出ません。
普通だったらどんなことが出来るのか、マウスポインタの下に文字が出ますよね?
すみませんが、ご回答よろしくお願いします<(_ _)>

Aベストアンサー

ツール-ユーザー設定-オプションタブ
ツールバーにボタン名を表示する のチェックを
オンにしてみてください。

Q

▼次のようにページ内のdivタグのidの名前によって、formタグ内の要素をdisableにすることはJava scriptによって可能でしょうか?

<div id="AA">のとき、別の場所にある<form id="BB">内のselect要素などすべての要素をdisableにする。

また同時に、id="BB"に指定したスタイルシートの記述を書き換えることは可能でしょうか?

何かよい方法をご存知でしたら教えてください。よろしくお願いいたします。

Aベストアンサー

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として使わない方が良いです。
つまり、
id="soldout"の時に
var soldout;という風にはしない方が良いです。
同じでなければ、cartFormでもなんでもかまいません。
あと、scriptは、
<!--
(スクリプトの中身)
//-->
のように
<!--
//-->
で囲むようにします。

getElementById
は、ブラウザやのブラウザのバージョンによっては使えないことがあります。
その場合は、使えるかどうかを調べる必要があります。

<script type="text/javascript">
<!--
function stockStatus (num){
var f=document.getElementById("soldout");

if(f!=null){
for (var i =0; i<=f.length -1 ;i++){
f.elements[i].disabled=num;
}
}
}
//-->
</script>

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として...続きを読む

Q画像にカーソルをおくと左上に出てくるものを出ないようにするタグ教えてください!

よく画像にカーソルをおくと、
画像の左上に小さくでてくるもの
(クリックすると、画像を保存できたり、
印刷出来たり、メールで添付できる4つのものです)
を、出てこなくしたいのですが
その方法(タグ等)教えて頂けますか?
宜しくお願いします。

Aベストアンサー

1ページ分の画像のイメージツールバーを非表示する場合。
<HEAD>と</HEAD>の間に入れてください。
<meta http-equiv="imagetoolbar" content="no">

imgタグに直接入力する場合は
<img src="画像のファイル名" alt="画像の説明" width="横幅" height="縦長さ" galleryimg="no">

Q&= ~0x0c; &= ~0x03; |=1;

JavaScriptで分からないコードがあるので教えてください。


■変数設定
var hoge = 0;


■変数格納
・キーを押した時の条件分岐
  ~なら hoge |= 1;
  または hoge |= 2;
  または hoge |= 3;
  または hoge |= 8;

・キーを離した時の条件分岐
  ~なら hoge &= ~0x0c;
  または hoge &= ~0x03;


■変数使用
・swithch文の条件分岐に利用
  (hoge&0x03)
  (hoge&0x0c)


■質問
・どういう意味でしょうか?
・文字コード?
・ビット演算?

Aベストアンサー

ビット演算してるわね

x = x + a

x += a
って書くことができるの

つまり
hoge |= 1

hoge = hoge | 1
のことね

~はNOTのこと

0x
はアスキーコードの16進数表記ねきっと

0x0c は改ページを意味していて
0x03 は文章の最後を意味している
と思われるわ
全文がないので推測だけど

Qカーソルを近づけても表示が出ない

Microsoft Internet Explorerや、タスクバーのクイック起動アイコンにカーソルを近づけると、それが何なのか、黄色い帯の中に黒い字で表示が出ますが、Word2003, Excel2003, Outlook2003では、近づけても何も出ません。どうしたら、インターネットやタスクバーのように、表示が出るように設定できますか?

Aベストアンサー

WordやExcelのツールバーのボタンをポイントしたときに表示される吹き出しのことですね。
ユーザー設定のオプションで、「ツールバーにボタン名を表示する」のチェックが外れていると思います。チェックを付けてください。

Q
勘でいれたら・・・

はじめまして。JavaScript初めてです。
わからないことがあるので、教えてください。

画面を左右にフレームで分割して、左フレームのリストボックスから要素を選択すると、その要素に該当した表が右フレームに表示される、というものを作成しました。
左フレーム:name = index
右フレーム:name = main
こんな感じ(左フレーム)↓
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
function disp(obj){
右フレームの表のHTML作成をしている

parent.main.document.open();
parent.main.document.write
(desc.innerHtml = 上で作成したHTML);
parent.main.document.close();
}
-->
</SCRIPT>
</HEAD>
<BODY onload="disp(form)">
※<DIV id="desc"></DIV>
<FORM name="form">
<SELECT name="MListBox" onchange="disp(form)">
<xsl: apply-templates select="~"/>
</SELECT>
</FORM>
*<DIV id="desc"></DIV>
</BODY>
</HTML>
  ・
  ・ <xsl文章>
  ・

初めは、※←のところがなく、右と左のフレーム両方に表が出力されてしまっていました。でも※←のところに<DIV id="desc"></DIV>を勘で入れたとたん、右フレームだけに表が出力されるようになりました。(期待の結果)
自分の予想では、*←のところのみで期待の結果が得られる予定で、(disp()でHTMLの出力を右フレームに指定しているから)何故※のところを追加したことで期待通りの動きをしたのかが謎です。

わかりづらい説明で申し訳ないですが、教えてくださる方がいらっしゃいましたら、どうぞお願いします。

はじめまして。JavaScript初めてです。
わからないことがあるので、教えてください。

画面を左右にフレームで分割して、左フレームのリストボックスから要素を選択すると、その要素に該当した表が右フレームに表示される、というものを作成しました。
左フレーム:name = index
右フレーム:name = main
こんな感じ(左フレーム)↓
<HTML>
<HEAD>
<SCRIPT language="JavaScript">
<!--
function disp(obj){
右フレームの表のHTML作成をしている

parent.main.document.open();
parent....続きを読む

Aベストアンサー

質問文にあるソースで目指しているものがいまいち掴み切れていないかも知れないので、見当違いなことを書くかもしれませんが…

<DIV id="desc"></DIV>

を複数記述する事で意図した結果になったということですが、それはおそらく記述エラーが元でそうなっているのだと思います。
id名は、各HTML文書内で固有の名前を与える属性として扱われます。 平たく言えば、一つのHTMLファイル内で、一つの要素に与えたid名はその一回しか使えません。 ですので、特定の要素で既に使われているid名を、それとは別の要素に対して与える事が許されていません。
ご質問文のソースの場合、一つのHTML文書内で同じid名が複数の要素に与えられる事になり、一つの特定の要素を絞り込むことができなくなっています。 おそらくは、JavaScriptが特定のid名を持つ一つの要素を取り出そうとし、同じid名を持つ要素が複数あるために特定の要素を識別するのに失敗したせいで、左のフレームに表示されるはずのスクリプトで生成したHTMLソースが、表示先を見失って表示されなくなっているだけだと思われます。(なぜエラーメッセージが出ないのかについては、IEの動作上の問題と言う事になるのではないでしょうか)
試しに、※の部分の<DIV id="desc"></DIV>を残して、*の部分の<DIV id="desc"></DIV>を消し、動作させてみてください。 それで元のように右フレームにだけ表示させたかったHTMLが左フレームにも表示されるようでしたら、一見期待通りの動きになった原因は、上記のように同じid名を複数の要素に与えたという記述ミスと、それから生じたスクリプトの動作不良と言う事になると思います。

ソース的にスマートに目的の動作を確保するのであれば、<DIV id="desc"></DIV>を複数記述するのではなく、スクリプト内の

parent.main.document.open();
parent.main.document.write(desc.innerHtml = 上で作成したHTML);
parent.main.document.close();

この部分の記述を

parent.main.document.open();
parent.main.document.write(上で作成したHTML);
parent.main.document.close();

に直すのが良いと思います。
フレームmainにだけ、スクリプトで生成したHTMLを表示するということが狙いだったのであれば、それまで意図通りの動作をしなかったのは、parent.main.document.write()の中で、「desc.innerHTML =」という記述をしているために、「上で生成したHTML」を、右フレーム内に書き出すのと同時に、descというidを持つ要素(*の<DIV id="desc"></DIV>)の中のHTMLソースとして再定義していたためと思われます。
スクリプトを上のように修正すれば、HTMLソースの書式違反による動作不良ではなく、スクリプトの正常な動作で、右フレームにだけスクリプトで生成したHTMLソースを表示させるという結果を得られると思います。

参考になれば。 見当違いでしたら、ごめんなさい。

質問文にあるソースで目指しているものがいまいち掴み切れていないかも知れないので、見当違いなことを書くかもしれませんが…

<DIV id="desc"></DIV>

を複数記述する事で意図した結果になったということですが、それはおそらく記述エラーが元でそうなっているのだと思います。
id名は、各HTML文書内で固有の名前を与える属性として扱われます。 平たく言えば、一つのHTMLファイル内で、一つの要素に与えたid名はその一回しか使えません。 ですので、特定の要素で既に使われているid名を、それとは別の要素...続きを読む


人気Q&Aランキング