2010-11-27 15 views
1

私は、HTMLページを動的に作成し、独自のheadタグとscriptタグを持つjavascriptルーチンを用意しています。動的に作成されたHTMLへのJavascriptリダイレクト

文字列の内容をファイルに保存してブラウザで表示すると、すべて正常ですが、document.write(newHTML)を試しても同じ動作はし​​ません。動的なnewHTMLのヘッダーにあるjavascriptは非常に複雑で、ここには含めることはできません...しかし、ファイルに保存するとうまくいくと思いますが、現在のページを置き換えることはできませんdocument.writeを使用します。私が考慮していない可能性のある落とし穴はどれですか?既存のヘッダーの既存のスクリプトタグを最初に削除する必要がありますか?手動でonLoadを再呼び出しする必要がありますか?

文字列が 'sample.html'などに保存され、参照されているときにはうまくいきますが、var Samp = "[REAL HTML HERE]"を設定するとうまくいきます。次にdocument.write(Samp)と言う。 document.close(); javascriptルーチンが正しく実行されていません。

私は何が欠けているかもしれないかについてのヒント?

document.write以外のページのコンテンツを動的に置き換える別の方法がありますか?

ディスクやサーバーには存在しませんが、メモリ内の文字列にしか書かれていませんが、何とか新しいページにリダイレクトできますか?私はサーバーにファイル全体をアップロードして、それを再度ダウンロードして表示する必要はありません。

JavaScriptを使用して、現在のページの現在のコンテンツを、複雑なクライアントサイドのjavascriptを含む全く新しいコンテンツで置き換えることはできますか? htmlファイルとそれにリダイレクト?

クライアント側の文字列としてのみ存在するHTMLファイルに「リダイレクトする」方法はありますか?

+0

これはまったく動作しないのですか、または新しく書き込まれたページが表示されていますが、異常な動作をしていますか? – zjorzzzey

+0

表示されていますが、異常な動作をしています。それは不完全にjavascriptを実行しているようだ。最初のページの関数名は、新しいページの関数と同じ名前が付けられていますか? – Joshua

答えて

0

var win=window.open("") //open new window and write to it 

var html = generate_html(); 

win.document.write(html) 
win.document.close(); 
0

eval()機能はここで助けになるでしょうか?コードを見ずにアンサーを与えるのは難しいです。あなたがこれを行うことができます

0

はこれを試したことはありませんが、私はそれが可能であるべきだと思います。いくつかのそれを動作させる可能性があるかについての考え:

  • 必ずあなたのjsを含む文書が正しいヘッダ/ MIMEタイプ/ DOCTYPEを送らされていることを確認し
  • が有効な方法でJavaScriptをサーブ、例えば有効なW3Cを送信することにより、スクリプトタグを含むページ。

多分それは動作します。そうでない場合は、新しいHTMLを書き込む前に現在のhtmlを消去してみてください。

また、他の人がこのタスクをどのように達成したかを調べると役立つ場合があります。私は正しくそれを思い出させる場合、Googleのページは本質的にjsの束と短いhtmlページです。

関連する問題