プロが教える店舗&オフィスのセキュリティ対策術

まったくの初心者で申し訳ないのですが、何がおかしいのかわからないので質問させていただきます。
ジャバスクリプトで縦に長いページなどにある、
スクロールさせるとメニューが一緒に降りてくるスクリプトの
公開ソースを見つけてコピーして使おうと思っていたのですが、
ホームページビルダー3.0で.htmlを作ると実行されず、
まったく同じソースをメモ帳に貼り付けて.htmlにすると
実行されます。
まったく同じソースを使っているはずなのに、
かたや実行され、かたや実行されずの違いがわかりません。

●元のソース(メモ帳作.htmlも同様です)
<HTML>
<HEAD>
<script>
// レイアの最初の横位置
def_left = 10;

// レイアの最初の縦位置
def_top = 100;

function init() {
N4 = IE = GK = 0;
if (document.layers)
{ N4 ++; obj = document.layers["lay"]; }
else if (document.all)
{ IE ++; obj = document.all("lay").style; }
else if (document.getElementById)
{ GK ++; obj = document.getElementById("lay").style; }

with (obj) {
left = def_left;
top = def_top;
}
lay_ud();
}

function lay_ud() {
if (N4) y = pageYOffset + def_top;
if (IE) y = document.body.scrollTop + def_top;
if (GK) y = window.pageYOffset + def_top;
obj.top = y;
setTimeout("lay_ud()",0);
}

onload = init;
</script>
<TITLE></TITLE>
</HEAD>

<BODY>
<div id=lay style="position:absolute;">
<table bgcolor=#9999ff border cellpadding=10><td>
<font color=#ffffff>
このレイアは、<br>
ウィンドウが<br>
スクロールされても<br>
常にこの位置に<br>
表示されます
</font>
</td></table>
</div>
<BR><BR><BR><BR><BR>
スクロールさせてみて下さい ↓
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
<BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
</BODY>
</HTML>

●上記ソースをそのまま貼り付けただけの
 HPBで保存したもの
<!DOCTYPE HTML PUBLIC "-//IBM//DTD HPB HTML//EN">
<HTML>
<HEAD>
<META name="GENERATOR" content="IBM HomePage Builder V3.0 for Windows">
<SCRIPT>
// レイアの最初の横位置
def_left = 10;

// レイアの最初の縦位置
def_top = 100;

function init() {
N4 = IE = GK = 0;
if (document.layers)
{ N4 ++; obj = document.layers["lay"]; }
else if (document.all)
{ IE ++; obj = document.all("lay").style; }
else if (document.getElementById)
{ GK ++; obj = document.getElementById("lay").style; }

with (obj) {
left = def_left;
top = def_top;
}
lay_ud();
}

function lay_ud() {
if (N4) y = pageYOffset + def_top;
if (IE) y = document.body.scrollTop + def_top;
if (GK) y = window.pageYOffset + def_top;
obj.top = y;
setTimeout("lay_ud()",0);
}

onload = init;
</SCRIPT>
<TITLE></TITLE>
</HEAD>

<BODY>

<DIV id="lay" style="position:absolute;">

<TABLE border="1" cellpadding="10" bgcolor="#9999ff">
<TR>
<TD><FONT color="#ffffff"> このレイアは、<BR>
ウィンドウが<BR>
スクロールされても<BR>
常にこの位置に<BR>
表示されます </FONT></TD></TR>
</TABLE>

</DIV>
<P>
<BR>
<BR>
<BR>
<BR>
<BR>
スクロールさせてみて下さい ↓<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
</P>
</BODY>
</HTML>

微妙に違うのはわかるのですが、
勝手に変わってしまうのをどうすればいいかがわからず困っています。
つまらない質問で申し訳ないですが
どうぞよろしくお願い致します。

A 回答 (1件)

HomePage Builder V3.0では、DOCTYPE宣言の文法を間違えて作成するようです。

(V3.0以降では正しい文法で宣言されます)

×<!DOCTYPE HTML PUBLIC "-//IBM//DTD HPB HTML//EN">
○<!DOCTYPE HTML PUBLIC "-//IBM//DTD HTML//EN">

これで正常に動きます。
    • good
    • 0
この回答へのお礼

つまらない質問にも関わらず、回答ありがとうございました。
回答くださった通りにして動かすことができました。
ただ、HPBを開くたびに勝手に×の方に書き換わってしまうので
都度都度修正する必要があるのがこまりものです^^;
上位バージョンを使うか、メモ帳で手打ちするか考えます。
重ねて、ご回答ありがとうございました。

お礼日時:2008/08/02 23:24

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