• 締切済み

ホームページ作成ソフトで作ると実行されない

まったくの初心者で申し訳ないのですが、何がおかしいのかわからないので質問させていただきます。 ジャバスクリプトで縦に長いページなどにある、 スクロールさせるとメニューが一緒に降りてくるスクリプトの 公開ソースを見つけてコピーして使おうと思っていたのですが、 ホームページビルダー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> 微妙に違うのはわかるのですが、 勝手に変わってしまうのをどうすればいいかがわからず困っています。 つまらない質問で申し訳ないですが どうぞよろしくお願い致します。

みんなの回答

  • t032904
  • ベストアンサー率83% (5/6)
回答No.1

HomePage Builder V3.0では、DOCTYPE宣言の文法を間違えて作成するようです。(V3.0以降では正しい文法で宣言されます) ×<!DOCTYPE HTML PUBLIC "-//IBM//DTD HPB HTML//EN"> ○<!DOCTYPE HTML PUBLIC "-//IBM//DTD HTML//EN"> これで正常に動きます。

majent
質問者

お礼

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

関連するQ&A

  • Netscapeで動かない

    みなさん、こんにちは。Blackwinglsです。 以下のようなScriptを作成したのですが、Netscapeで動いてくれません(^^;) IEしか持っていないので、Netscapeに対応させるにはどうしたら良いのかさっぱりわかりません。 <script language="JavaScript"> <!-- var ax=20 function mv() { if(document.all) { obj=document.all.L1.style WIDTH=document.body.clientWidth } if(document.layers) { obj=document.L1 WIDTH=window.innerWidth } setTimeout("mv()",100) x=obj.left n=x.length y=(eval(x.substring(0,n-2))-ax) obj.left=y+"px" x2=obj.width n2=x2.length y2=(eval(x2.substring(0,n2-2))) if(y < -y2) { obj.left=WIDTH } } //--> </script> 何処が間違っているのでしょうか? 良きアドバイスをお願いします。

  • 文字がマウスカーソルを追従するスクリプト

    いつもお世話になっております。 以下のサンプルスクリプトで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>

  • JavaScriptでセンター表示で行き詰まってしまいました。

    JavaScriptでセンター表示で行き詰まってしまいました。 どうしてもできません。 現在しようとしているのが、HP全面に画像を表示させ、 そのセンターに日時時間を表示させたいと思っています。 いろいろwebで調べて、センター表示ではないのですが、 下記の形を組み込みました。 IEとsafariでは問題無いのですが、Firefoxでは、画面の左上端に表示されてしまいます。 どなたか、ご教授いただければ助かります! また常に画面のセンター表示も可能なのでしょうか? ↓↓↓↓↓head内 <script language="JavaScript"> <!--// my_width=250; x_iti=450; y_iti=350; function tokei() { a=new Date(); b=a.getFullYear(); c=a.getMonth(); d=a.getDate(); e=a.getHours(); f=a.getMinutes(); g=a.getSeconds(); if(c<10)c="0"+c; if(d<10)d="0"+d; if(e<10)e="0"+e; if(f<10)f="0"+f; if(g<10)g="0"+g; moji="<strong>"+b+"."+c+"."+d+" "+e+":"+f+":"+g+"</strong>"; if(document.layers) { document.layers["lay0"].moveTo(x_iti,y_iti); document.layers["lay0"].clip.width=my_width; document.layers["lay0"].document.open(); document.layers["lay0"].document.write(moji); document.layers["lay0"].document.close(); } else if((document.getElementById) && (!document.all)) { document.getElementById("lay0").style.pixelLeft=x_iti; document.getElementById("lay0").style.pixelTop=y_iti; document.getElementById("lay0").innerHTML=moji; document.getElementById("lay0").style.width=my_width; } else if(document.all) { document.all("lay0").style.pixelLeft=x_iti; document.all("lay0").style.pixelTop=y_iti; document.all("lay0").innerHTML=moji; document.all("lay0").style.width=my_width; } clearTimeout(g); g=setTimeout('tokei()',1000); } //--> </script> ↓↓↓↓↓body内 <body onLoad="tokei();"> <span id="lay0" style="position:absolute;visibility:visible;color:#FFFFFF"></span>

  • スクロールバーの位置に合わせて画像を移動

    縦のスクロールバーの位置に合わせて画像を移動したいです。 マウスの位置に合わせて移動させる事は可能なのですが、すぐ動いたしまうので。。 一応、マウスの位置に合わせて移動は下記のようにしています(元々、縦横方向の移動を紹介しているページがあったのでそれを拝借して縦方向の移動だけにしています。) <script language="JavaScript"> <!-- mov_value=3; y_add=0; y_cur=0; y_pos=0; y_dotti=0; my_time=0; pos=0; function judge_pos(e){ if(document.layers){y_pos=e.pageY;} if(document.all){ y_pos=document.body.scrollTop+event.clientY; } if(y_cur<=y_pos)y_dotti=1; else y_dotti=0; disp(); } function disp(){ if(pos==0){pos=1; y_cur=y_pos;} if(y_dotti==1 && y_cur<=y_pos+y_add)y_cur+=mov_value; else if(y_dotti==0 && y_cur>=y_pos+y_add)y_cur-=mov_value; if(document.layers){ document.layers["lay0"].moveTo(y_cur); document.layers["lay0"].visibility='show'; } if(document.all){ document.all("lay0").style.pixelTop=y_cur; document.all("lay0").style.visibility='visible'; } if(y_dotti==1 && y_cur<=y_pos+y_add){ clearTimeout(my_time); my_time=setTimeout('disp();',20); } else if(y_dotti==0 && y_cur>=y_pos+y_add){ clearTimeout(my_time); my_time=setTimeout('disp();',20); } else { y_cur=y_pos; } return false; } if(document.layers)document.captureEvents(Event.MOUSEMOVE); document.onmousemove=judge_pos; //--> </script>

  • レイヤーのクリッピングを解除するにはどうすれば良いですか

    難しい内容かもしれませんが、宜しくお願いします。 IE4 や NN4 で例えば以下の様に、 'lay'という名前のレイヤーを作成したとします。 <DIV ID='lay' STYLE='position:absolute'></DIV> すると以下の様に、JavaScriptから文字列 htm をレイヤーに書き込めます。 //IEの場合 document.all('lay').innerHTML=htm; //NNの場合 document.layers['lay'].document.open(); document.layers['lay'].document.write(htm); document.layers['lay'].document.close(); そしてレイヤーのサイズも文字列 htm の内容に合わせて変化します。 しかし以下の様に、1度でもレイヤーをクリッピングした後に、 //IEの場合 document.all('lay').style.width=100; document.all('lay').style.height=100; document.all('lay').style.clip='rect(0,100,100,0)'; //NNの場合 document.layers['lay'].clip.left=0; document.layers['lay'].clip.right=100; document.layers['lay'].clip.bottom=100; document.layers['lay'].clip.top=0; このレイヤーをクリッピングする前の、 文字列 htm の内容に合わせてサイズが変化していた頃の状態に、 戻す方法が分からなくて困っております。 やっぱり無理でしょうか。 何の回答もないとサミシイので、わからなくても誰か返事してあげて下さい。

  • 初期画像にレイヤーが出てしまう

    HPにレイヤー設定をしたところ、画像を開けるとすぐレイヤーが出てしまいます。しかし、その画像でマウスを重ねたり外したりすれば、問題なく作動します。その後、HPを開けると、また最初だけレイヤーが表示されてしまいます。どのようにしたら、最初の画面で表示されないようになるでしょうか?よろしくお願い致します。 次のように設定しています。 <script language="JavaScript"> <!--//レイヤー表示 function Lay_View(name,sw) { if (document.all) { //IE用 document.all[name].style.visibility=sw; } else if (document.layers) { //NC用 document.layers[name].visibility=sw; } } //--> </script> <div id="ABC" style="position:absolute; width:350px; height:30px; z-index:1; left: 80px; top: 210px">あいうえお</div> <a href="index1.html"onMouseOver="Lay_View('ABC','visible');"onMouseOut="Lay_View('ABC','hidden');">AIUEO</a> これだけです。何か足りないでしょうか?

  • ネットスケープ6以上で表示できるようにしたい

    N6以上で動作しないのです。 どなたか動作する書き方を教えて下さい。 お願いします。 <STYLE TYPE="text/css"> <!-- #links0 { position:absolute; left:430;top:75; font-size:10pt; z-index:2 ;} .lays { position:absolute; left:50;top:350; width:250;height:200; clip:rect(0,250,200,0); font-size:10pt; line-height:150%; text-align:center; z-index:0 ;} //--> </STYLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function setBGCOLOR(layName,color){  if(document.layers)document.layers[layName].bgColor=color  if(document.all)document.all(layName).style.backgroundColor=color } function zindexLAYER(layName,zindex){  if(document.layers)document.layers[layName].zIndex=zindex  if(document.all)document.all(layName).style.zIndex=zindex } function c02ini(){  setBGCOLOR('msg1','#d8bfd8')  setBGCOLOR('msg2','#f5deb3') } function swtOnZ(layName){  zindexLAYER('msg1',0);zindexLAYER('msg2',0)  zindexLAYER(layName,2) } //--> </SCRIPT> <BODY onLoad="c02ini()"> <DIV ID="links0">  <A href="Page1.html" onmouseover="swtOnZ('msg1')"><IMG class="vmid" src="top1.gif" width="77" height="78" border="0">Page1</A><BR> <A href="Page2.html" onmouseover="swtOnZ('msg2')"><IMG class="vmid" src="top2.gif" width="77" height="78" border="0">Page2</A><BR> </DIV> <DIV CLASS="lays" ID="msg1"> <BR>Page1説明 </DIV> <DIV CLASS="lays" ID="msg2"> <BR>Page2説明 </DIV>

  • webサイトで文字にマウスを重ねた時に文章を表示させたい

    ウェブサイトで、JavaScriptを使用し、「挨拶」の文字にマウスを重ねた時、「こんばんは。」と表示されるようにしたいのですが、上手くいきません。 下記は私が記述したソースになります。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー <html> <head> <title>テスト</title> <script language="JavaScript"> <!--//レイヤー表示 function Lay_View(name,sw) { if (document.all) { //IE用 document.all[name].style.visibility=sw; } else if (document.layers) { //NC用 document.layers[name].visibility=sw; } } //--> </script> </head> <body ONLOAD="preloadImages();"> <!-- 表示するレイヤー --> <div id="link2" style="position:absolute; width:600px; height:80px; z- index:1; left: 80px; top: 600px; visibility: hidden"> こんばんは。</div> <!-- ここまで --> <a href="http://www.geocities.co.jp/Milkyway/1958/" onMouseOver="Lay_View('link2','visible');Lay_View('linka','hidden');" onMouseOut="Lay_View('link2','hidden');Lay_View('linka','visible');" > 挨拶</a> </body> </html> ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー この場合IEでは、ちゃんと表示されるのですが、Firefox等で見た場合、何も表示されません。どうすれば、他のwebブラウザにも対応できるのでしょうか? JavaScriptは初心者なので、修正すべき場所とコードを詳しく教えて頂けると助かります。よろしくお願い致します。

  • java詳しい方宜しくお願いします。

    <!--HPB_SCRIPT_CODE_40 function _HpbShowObj(lId) { var ob;ob=new Array; var appVer=parseInt(navigator.appVersion); var isNC=false,isN6=false,isIE=false; if (document.all && appVer >= 4) isIE=true; else if (document.getElementById && appVer > 4) isN6=true; else if (document.layers && appVer >= 4) isNC=true; if (isNC) { w_str = "document." + lId;ob[lId] = eval(w_str); if (!ob[lId]) ob[lId] = _HpbFindHiddenObj(document, lId); if (ob[lId]) ob[lId].visibility = "show"; } if (isN6) { ob[lId] = document.getElementById(lId); ob[lId].style.visibility = "visible"; } if (isIE) { w_str = "document.all.item(\"" + lId + "\").style";ob[lId] = eval(w_str); ob[lId].visibility = "visible"; } } function _HpbFindHiddenObj(doc, lId) { for (var i=0; i < doc.layers.length; i++) { var w_str = "doc.layers[i].document." + lId; var obj;obj=new Array; obj[lId] = eval(w_str); if (!obj[lId]) obj[lId] = _HpbFindHiddenObj(doc.layers[i], lId); if (obj[lId]) return obj[lId]; } return null; } //--> </script> これは何をするスクリプトでしょうか? ぜひご教授下さいませ。

    • ベストアンサー
    • Java
  • このタグの文字サイズを大きくしたいのですが、、、

    <head> <title>1文字づつ画面上に出力する</title> <script language="JavaScript"><!-- str = "Sample text...(^^)/ By KaZuhiro FuRuhata"; count = 0; function setText1() { if (count > str.length) return; count++; txt = str.substring(0,count); if (document.all) document.all["outText"].innerHTML = txt; if (document.layers) { document.layers["outText"].document.open(); document.layers["outText"].document.write(txt); document.layers["outText"].document.close(); } setTimeout("setText1()",100); } // --></script> </head> <body> <a href="javaScript:setText1()">出力開始</a> <div id="outText" style="position:absolute;top:50px;left:5px;"></div> </body>

専門家に質問してみよう