![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
ホームページビルダー11を使っているのですが、
JavaScriptを外部ファイルにして読み込ませると、ロールオーバー部分の画像のみ切り替わりません。
//////////////////////////////////////////////////
■外部ファイルの記述内容■
<SCRIPT language="JavaScript">
<!--HPB_SCRIPT_ROV_50
function HpbImgPreload()
{
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||isN6||isIE)
{
if (document.images)
{
var imgName = HpbImgPreload.arguments[0];
var cnt;
swImg[imgName] = new Array;
for (cnt = 1; cnt < HpbImgPreload.arguments.length; cnt++)
{
swImg[imgName][HpbImgPreload.arguments[cnt]] = new Image();
swImg[imgName][HpbImgPreload.arguments[cnt]].src = HpbImgPreload.arguments[cnt];
}
}
}
}
function HpbImgFind(doc, imgName)
{
for (var i=0; i < doc.layers.length; i++)
{
var img = doc.layers[i].document.images[imgName];
if (!img) img = HpbImgFind(doc.layers[i], imgName);
if (img) return img;
}
return null;
}
function HpbImgSwap(imgName, imgSrc)
{
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||isN6||isIE)
{
if (document.images)
{
var img = document.images[imgName];
if (!img) img = HpbImgFind(document, imgName);
if (img) img.src = imgSrc;
}
}
}
HpbImgPreload('_HPB_ROLLOVER1', 'images/request.gif', 'images/request2.gif');
//-->
</SCRIPT>
//////////////////////////////////////////////////////
外部ファイル読み込み時のhtmlタグ
<SCRIPT type="text/javascript" scr="images/ファイル名"></SCRIPT>
恐らく、ホームページビルダーの独自性の問題だと思うのですが、
どうすればロールオーバーを機能させることができるでしょうか?
宜しくお願いいたします。
No.4ベストアンサー
- 回答日時:
こんにちは
なるほど基礎的な部分ではないのですね
とりあえず載せておきます。画像のパスなど変えて試してみて下さい
あと別のものに同じ名前をつけると混乱の元になると思うので控えた方が良いかと思います
【test.js】
HpbImgPreload('_HPB_ROLLOVER1','sample0.gif','sample1.gif');
function HpbImgPreload()
{
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||isN6||isIE)
{
if (document.images)
{
var cnt;
var swImg;
swImg = new Array;
var N = HpbImgPreload.arguments[0];
swImg[N] = new Image();
for (cnt = 1; cnt < HpbImgPreload.arguments.length; cnt++)
{
swImg[N][HpbImgPreload.arguments[cnt]] = new Image();
swImg[N][HpbImgPreload.arguments[cnt]].src = HpbImgPreload.arguments[cnt];
}
}
}
}
function HpbImgFind(doc, imgName)
{
for (var i=0; i < doc.layers.length; i++)
{
var img = doc.layers[i].document.images[imgName];
if (!img) img = HpbImgFind(doc.layers[i], imgName);
if (img) return img;
}
return null;
}
function HpbImgSwap(imgName, imgSrc)
{
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||isN6||isIE)
{
if (document.images)
{
var img = document.images[imgName];
if (!img) img = HpbImgFind(document, imgName);
if (img) img.src = imgSrc;
}
}
}
1;
【test.html】
<script type="text/javascript" src="./test.js"></script>
<A href="" id="_HPB_ROLLOVER" onmouseout="HpbImgSwap('_HPB_ROLLOVER1', 'sample0.gif');" onmouseover="HpbImgSwap('_HPB_ROLLOVER1', 'sample1.gif');" target="_blank"><IMG src="sample0.gif" width="73" height="19" border="0" id="_HPB_ROLLOVER1"></A>
この回答への補足
ありがとうございました。
無事に動くようになりました。
と、同時に、ロールオーバーを30効果近く施しているページがあるので、その作業の膨大さに冷や汗を感じる次第です(笑
プリントアウトし、元のファイルと、書き換わった部分を比較して、素材のファイル名に置き換えようと思います。
No.3
- 回答日時:
ところでその
>外部ファイル読み込み時のhtmlタグ
はHTMLのどのあたりに記述されてるの?
scriptのファイルの方 の頭に alert(); とかやって反応する?
この回答への補足
書き込みありがとうございます。
場所は、<HEAD></HEAD>の間です。
>scriptのファイルの方 の頭に alert(); とかやって反応する?
↑↑↑↑↑↑
これはどういう意味ですか?
No.2
- 回答日時:
こんにちは
以下を確認してみてください
・<SCRIPT type="text/javascript" scr="images/ファイル名"></SCRIPT>ではなく上のソースをそのままhtmlにコピペしたらきちんと機能する
・外部ファイルはjsファイルにしてある(***.js)
・#1様の言うように最初と最後の<script language="javascript"><!-- //--></script>を削除している
・外部ファイルのパスがあっている
・onClick="***" ではなくonMouseover="***" になっている
それでもダメなようなら
IEのブラウザ設定 ツール→インターネットオプション→詳細設定→【ブラウザ】スクリプトエラーごとに通知するをチェック
もしくはFirefoxなどのエラーコンソールでどこがエラーになっているか確認してみてください
この回答への補足
ご回答ありがとうございます。
それぞれの結果をご報告させていただきます。
・<SCRIPT type="text/javascript" scr="images/ファイル名"></SCRIPT>ではなく上のソースをそのままhtmlにコピペしたらきちんと機能する
⇒もともとのソースのままなら機能します。長いので外部ファイルにしようと試みたところ、今回のロールオーバーNGになりました。
・外部ファイルはjsファイルにしてある(***.js)
⇒.js、.txt 両方で試みましたが、どちらのパターンもロールオーバーしませんでした。
・<script language="javascript"><!-- //--></script>を削除している
⇒こちらも削除しておりますが、ロールオーバーせずでした。
・外部ファイルのパスがあっている
⇒バスも念のためにホームディレクトリ(一番上の階層)にして、試みましたが、ロールオーバーせずでした。(※ホームディレクトリの場合はimages/ファイル名 → ファイル名にしております。)
・onClick="***" ではなくonMouseover="***" になっている
⇒ロールオーバー(ボタン)部分については
<A href="リンクページ" id="_HPB_ROLLOVER1" onmouseout="HpbImgSwap('_HPB_ROLLOVER1', 'images/ファイルA.gif');" onmouseover="HpbImgSwap('_HPB_ROLLOVER1', 'images/ファイルB.gif');" target="_blank"><IMG src="images/ファイルA.gif" width="73" height="19" border="0" name="_HPB_ROLLOVER1"></A>
となっており、onMouseover=扱いになっております。
やはり、
・HpbImgPreload() や
・_HPB_ROLLOVER1' のような、
ホームページビルダー特有の言語が起因しているように感じます。
的確な指示をいただき、ありがとうございました。
No.1
- 回答日時:
ちゃんと検証したわけではないのですが
外部ファイルにする場合、最初の
<SCRIPT language="JavaScript">
<!--HPB_SCRIPT_ROV_50
と最後の
//-->
</SCRIPT>
の部分は要らないと思います。
消去してから再度試してみてください。
この回答への補足
ご回答ありがとうございます。
削除したのですが、相変わらず機能しませんでした。
でも、<SCRIPT language="JavaScript">
<!--HPB_SCRIPT_ROV_50
//-->
</SCRIPT>
がなくても読み込めるとは知りませんでした。
ありがとうございました。
ちなみに、クリック字にロールオーバーしていて、
マウスが乗ったときには指になるだけで、
ロールオーバーしない状態です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript コードレビューをお願いします。 1 2022/07/16 05:38
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
window.openで値の渡し方を教え...
-
setAttributeによる画像の差し替え
-
JavaScriptを外部ファイルにす...
-
JAVAで画像をボタンで切り替え...
-
MAX関数を使ってからLEFT JOIN...
-
画像がプルプルふるえるんです。
-
スクロール可能なチェックボックス
-
javascriptテキストBOX色を元に...
-
jspでcssが読み込めない
-
borderがおかしくなる・・・
-
JSで動的にリンクを作成
-
getElementByIdの戻り値がnull...
-
クリックして変更した画像を他...
-
マウスオーバーにて画像に虫眼...
-
HTMLタグに複数のクラスを設定...
-
スライド機能について
-
HTMLですCSSです 画像のように...
-
javascriptでEnterキーをtabキ...
-
htmlのstyleのposition:relativ...
-
javascriptによる画像切り替え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.openで値の渡し方を教え...
-
this.src等のthisについて
-
imgのsrcに値を設定するには
-
jQueryでサーバー上のファイル...
-
画像の座標位置取得
-
イベントハンドラを完全に外部...
-
連番画像「次へ」「前へ」で、...
-
画像の下に説明文をつけて切り...
-
JS switch文について
-
JavaScriptでリクエストを飛ば...
-
スマートな外部javaでロールオ...
-
JavaScriptでシンプルなスライ...
-
一定時間で画像とリンク先を変...
-
javascript 時計24時間表示
-
画像と文字を同時に切り替えたい
-
これはどんなJavaScriptなので...
-
Javaにて画像を残像が残りつつ...
-
FirefoxでonMouseOver/Outの動...
-
divの背景画像を、徐々に表示さ...
-
時間によって表示される画像を...
おすすめ情報