JavaScript var加上右插入符号会产生奇怪的结果

bnlyeluc  于 2023-11-15  发布在  Java
关注(0)|答案(3)|浏览(115)

当我运行这段代码时:

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>


但这也不行,我在所有的引号前都加了反斜杠,但我肯定我漏掉了其他五个东西和三个重要的概念。

dvtswwa3

dvtswwa31#

如果您希望字符显示,请尝试使用
编辑#2:
根据epascarello的回答(和评论),我的编辑#2本身是不够的。你需要从JSP包含文件中提取所有的换行符,或者你需要在打印之前使用搜索和替换功能来替换导入文本上的换行符,所有这些都是JSP方面的事情。
我想明白了-哈哈,你可以像现在这样在JavaScript中使用JSP标签,但是,你的页面无法加载并且出现错误的原因是因为你的服务器正在解析JSP标签(当你有正确的书面),并因此注入html.我想这可能会工作,然而,你必须用单引号而不是双引号来 Package 你的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;

omvjsjqw

omvjsjqw2#

因此,当您这样做时,您希望服务器将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

mgdq6dx1

mgdq6dx13#

你应该在将html字符(如<>&())放入HTML文档之前对其进行转义。

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

字符串
应该做的伎俩

相关问题