3

私の質問はこれに似てい ますフレーム/iframeなしでHTMLページを別のHTMLページに含める方法は?

しかし、答えは私にとってはうまくいきません。オブジェクトと iframe はスクロールバー付きのボックスを作成しますが、これは望ましくありません。他のページへのリンクがある場合は、ボックスの内容だけでなく、ページ全体を変更したいと考えています。

この指示は機能しません

<!--#include virtual="/footer.html" -->

これはウェブサイトが構築された方法であり、再設計する予定はないため、html のみを使用したいと考えています。これは、コンテンツの変更目的でのみ行っています。

javascript ファイルに html ヘッダー (またはフッター) を記述し、すべての html ファイルに .js を含めるのは悪い習慣ですか?


1回目の編集

約 70 の異なる HTML 静的ページがあります。ロゴ、メニュー、ウェブサイトのメタディスクリプション、テキストカラーなどのコンテンツを更新したいのですが、現時点では、これらの変更をそれぞれ 70 回ずつ行う必要があります。

メニューはとにかくjavascriptで動作し、すべてのhtmlファイルにファイルを含めたため、メニューのhtml部分にjavascriptを使用しました。

function writeJS(){
    var strVar="";
    strVar += "<body bgcolor=\"#000000\">";
    strVar += "<div class=\"Main_container\">";
    ...
    document.write(strVar);
}
writeJS();

たとえば、これらのタグで同じことをするのが良い考えか悪い考えかはわかりません。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org
/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" ...

2回目の編集

html/javascript オプションは実行可能でしたが、wordpress.org サイトに行くために数日を投資することにしました (長期的には安価で優れています)。

4

4 に答える 4

1

はい、それは悪い習慣です。適切な仕事には適切なツールを使用してください。

あなたが言及したことのほとんどについて、外部スタイルシートを使用する必要があります (2013 年の bgcolor?)。これにより、70 個のファイルを変更する必要がなくなります。

ページ間で共有したいコンテンツもある場合、適切な方法は、サーバー側のスクリプト (php など) を使用してそれを含めることです。

それを含めると、クライアント側は面倒で、部分的にしか機能しません。DOM に入るもののみをロードできます (メタ情報や Head 要素のコンテンツはロードできません)。さらに、ユーザーが JavaScript を有効にしていない場合、サイトは完全に無効になります (最近ではそれほど一般的ではありませんが、それでも)。

于 2013-06-18T15:25:20.420 に答える
1

これを行うには多くの方法があると思います:

  1. フレーム/iframe なしで HTML ページを別の HTML ページに含める方法のソリューションで説明されているように、SSI を使用します。
  2. php などのスクリプト言語があり、使い慣れている場合は、それを使用できます。
  3. JQuery またはネイティブ JS コードを使用した単純な js インジェクションを使用します。参照: https://stackoverflow.com/a/676409/2027264
  4. CSS で IFrame を使用してスクロールバーを削除する
  5. Javascript テンプレート (アンダースコア、バックボーン、その他多数) を使用します。参照:推奨する Javascript テンプレート エンジンは? およびhttp://en.wikipedia.org/wiki/Javascript_templating

お役に立てれば。

于 2013-06-18T16:31:28.773 に答える