2

このコードを実行すると:

var newHtml = "<jsp:include page=m_searchform.jsp> ";

ページが読み込まれず、エラーが発生します。

このコードを実行すると:

var newHtml = "<>jsp:include page=m_searchform.jsp ";

それはうまくロードされます。文字列の最後にある正しいニンジンがこのような問題を引き起こすのはなぜですか?

私が本当にやりたいのは、これをいくつかのdivのinnerHTMLに入れることです。

<div id = "searchWrapper">
<form style="vertical-align:50%;" name = "searchForm" action="m_search.jsp">
<input class="searchBox" type="search" name="w"/>
<input class = "greenBtn" type="submit" value="Search"/></form>
</div>

しかし、それも機能していません。すべての引用符の前に円記号を付けますが、他の5つのものと3つの大きな概念が欠けていると確信しています。

4

3 に答える 3

2

< を使ってみてください。と > 文字を表示したい場合

編集#2:

epascarello の回答 (およびコメント) によると、私の編集 #2 だけでは十分ではありません。そのJSPインクルードファイルからすべての改行を引き出すか、検索と置換機能を使用してインポートされたテキストの改行を置き換えてから印刷する必要があります。すべてJSP側で行います。

私はそれを理解しました-笑、あなたがやっているようにJavaScriptでJSPタグを使用できますが、ページがロードされずエラーが発生する理由は、サーバーがそのJSPタグを解析しているためです(正しく記述されている場合) 、したがってhtmlを注入しています。これでうまくいくと思いますが、JSP タグを二重引用符ではなく単一引用符で囲む必要があります。これは、サーバーが挿入する HTML の中に二重引用符がたくさん含まれているためです。

だからこれをしてください:

var newHtml = '<jsp:include page=m_searchform.jsp>';

編集#1:

javascript から JSP タグを挿入できないため、このようなことをしました。サーバーは、JS の実行が開始される前に JSP の解析を完了します。

var newhtml = '<div id = "searchWrapper">
<form style="vertical-align:50%;" name = "searchForm" action="m_search.jsp">
<input class="searchBox" type="search" name="w"/>
<input class = "greenBtn" type="submit" value="Search"/></form>
</div>';


someObject.innerHTML = newhtml;
于 2012-08-01T19:03:23.153 に答える
1

したがって、これを行うと、サーバーが HTML コンテンツを JavaScript 変数に追加することが期待されます。

var newHtml = "<jsp:include page=m_searchform.jsp> ";

ページのソースを表示すると、次のようになります。

var newHtml = "<input type="text" name="asdasdas" />
<input type="text" name="sdfsdf" />
<input type="text" name="werwe" />";

そして、それは有効な JavaScript ではありません

于 2012-08-01T19:05:53.330 に答える
0

<>&()HTML ドキュメントに入れる前に、 html 文字をエスケープする必要があります。

string.split("&").join("&amp;").split("<").join("&lt;").split(">").join("&gt;").split("(").join("&#40;").split(")").join("&#41;")

トリックを行う必要があります

于 2012-08-01T19:07:16.723 に答える