1

複数の異なるページに配置したいマルチレベルのドロップダウンメニュー(HTML + CSSを使用して実行)があります。将来的には、このメニューを更新して内容を変更する必要があるため、HTMLを独自のファイルに保存して、変更をすべてのページに一度にロールアウトできるようにしました(各ページを繰り返し確認する必要はありません)。変更されたリストアイテムに貼り付けます)。

私はiframeを使ってみましたが、これは限られた高さのメニュー項目を切り落とします(もちろん、十分な大きさの手動の高さを設定すると、大量の空白が残ります):

<iframe height="100%" src="menu.html" frameborder="no" width="100%" scrolling="no"></iframe>

また、埋め込みを使用してみました(これは、メニュー項目の上にマウスを置くまでは問題なく表示されます。フレーム内をスクロールするだけです)。

<embed type="text/html" src="menu.html" width="100%" height="100%"></embed>

コードが必要な個々のページに単純にダンプされると、メニューは正常に機能するので、それが問題ではないことはわかっています。問題となるのは、独自のHTMLファイルからの埋め込みと呼び出しです。ドロップダウンメニューを適切に表示できるようにする簡単な方法はありますか?

私はこれを行うために私のIT部門の祝福を持っていますが、これは彼らがサポートしていないプロジェクトであることを言及する必要があります。ウェブページのHTMLは本文でのみ編集でき、頭では編集できません。例外は、ファイルとしてアップロードするHTMLページ(メニューコードなど)です。したがって、いくつかの制約があります。

4

3 に答える 3

0

さて、ここにあなたのIT担当者を幸せに保つかもしれない少し長い曲がりくねったjavascriptアプローチがあります:

window.onload = new Function("load('embed-me.html','content')"); // Replace with URL of your file and ID of div you want to load into.

function ahah(url, target) {
  document.getElementById(target).innerHTML = ' Fetching data...';
  if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (req != undefined) {
    req.onreadystatechange = function() {ahahDone(url, target);};
    req.open("GET", url, true);
    req.send("");
  }
}  

function ahahDone(url, target) {
  if (req.readyState == 4) { // only if req is "loaded"
    if (req.status == 200) { // only if "OK"
      document.getElementById(target).innerHTML = req.responseText;
    } else {
      document.getElementById(target).innerHTML=" AHAH Error:\n"+ req.status + "\n" +req.statusText;
    }
  }
}

function load(name, div) {
    ahah(name,div);
    return false;
}

私が書いたものではありません(LINK)(ページロードビットで実行を追加しました)。

テスト済みで動作しています(少なくともChromeで)。ただし、ユーザーがjavascriptを無効にしている場合、サイトにはメニューがありません。

編集:

例...

<body>
    <script type="text/javascript" src="embed-me.js"></script> <!-- load the javascript -->
    <div id="content"></div> <!-- html will be embedded here -->
</body>
于 2012-07-11T19:37:44.277 に答える
0

私は次のphpコードを使用しており、非常にうまく機能します。オンラインでソースコードをチェックしても表示されません。

    <?php include("menu.php"); ?>
于 2012-07-11T19:58:55.893 に答える
0

phpインクルードを使用してください!!

まず最初に..メニューコードをコピーして、menu-1.phpというファイルに保存します。

その後、メニューを使用したいときはいつでも。次のコードを入力するだけです。

<?php include("menu-1.php"); ?>

メニューを更新する必要があるたびに、すべてのページを更新する必要はなく、menu-1.phpを更新するだけなので、これはメニューを実行するための良い方法です。

wampまたはxampを使用していない限り、PSPHPがローカルマシンに表示されない場合があります

于 2015-05-08T01:04:37.810 に答える