2

単純な HTML ファイルを 2 番目の HTML ファイル (AJAX を使用してロードされ、javascript で処理される) のブートストラップとして機能させたいと考えています。これは最初のファイルを完全に置き換えます。

ブートストラップ.htm

  1. AJAXを使用してcontent.htmをロードします(このジョブにはjQueryが適しています)
  2. JavaScript を使用してコンテンツを変更します (さまざまなカスタム フィルター/変更が必要です)
  3. 新しく変更されたコンテンツに置き換えます

doctype を置き換えるのは難しいかもしれないので、100% 可能ではないかもしれないと思いますが、すべての body コンテンツとすべての head コンテンツ (おそらく HTML のすべてのコンテンツ?) を置き換えることはそれほど難しくないと思います。

これについてのアドバイスはありますか?

編集:私は本当にやりたいことを直接やろうとしました...

$.get("content.htm", function(d) {
  console.log(d);
  return $(document).html(d);

しかし、これは機能せず、空のドキュメントが残ります });

編集:これまでの最良の解決策(まだ概念的)

  • bootstrap.htmロードし、1 つのグローバル変数のみを作成するように非常に注意します (たとえばbs)
  • bootstrap.htm次に、ファイルをロードし、content.htmさらに処理します
  • bootstrap.htmhtmlタグのコンテンツを処理済みcontent.htmhtmlタグのコンテンツに置き換えます
  • bootstrap.htm次に、新しいコンテンツを検索し、既に実行されたコードを実行しないように注意しながら、インライン JavaScript を実行します。
  • bootstrap.htmそのグローバル変数を削除します (ただし、インポートされたコードのほとんどが既に実行されているため、この段階ではほとんど意味がありません)

これでも DOCTYPE を変更することはできず、インポートされたコードの実行は少し信頼できないように見えますが、これは私が今のところ持っている最良のアイデアです。

4

2 に答える 2

0

主な注意点は、実行されない JavaScript コードの場合だと思います。「純粋な」HTML を読み込んでいる場合、ドキュメントと HEAD が変更されない限り、他のユーザーによって提案された (そしてあなたが予見した) メソッドは問題ないと思います。

関連項目: Ajax 応答から返された JavaScript 関数の呼び出し

于 2012-06-29T12:27:39.620 に答える
0

できますよ。やってみました?ヒント:

$('body').load( url,[data],[callback] );
于 2012-06-29T12:16:02.687 に答える