在打开BODY标记之后插入HTML代码

时间:2012-12-17 19:47:21

标签: c# asp.net vb.net webforms html-injections

有没有人在ASP.Net webforms页面中打开BODY标记之后有任何注入HTML片段的示例?这段代码的定位非常具体。

最初的HTML可能如下所示:

</head>
<body>
<div id="header">

生成的HTML应如下所示:

</head>
<body>
<div id="new-div"></div>
<div id="header">

这是一种无法直接操作HTML的场景,而javascript会为了使附加HTML变得有用而为时太晚。必须使用服务器端代码完成,然后才能将HTML转到Web浏览器。

2 个答案:

答案 0 :(得分:1)

你可以在你的aspx标记中这样做:

<html>
    <head>
    </head>
    <body>
        <%= FunctionTheOutputsString() %>

<%=Response.Write()的缩写,{{1}}是一个直接写入页面的函数。

答案 1 :(得分:0)

使用jQuery,您可以使用prepend()

​$(function(){
 $('body').prepend('<div id="new-div">Div content</div>');
})​;

​jsfiddle here.

更新:服务器端解决方案也可以(除了上面的回答):

<html>
  <head>
  </head>
<body>
   <asp:placeholder id="divPlaceHolder" Visible="False" runat="server">
      <div id="new-div">
      </div>
   </asp:placeHolder>

在Page_Load()...

 if(SomeCondition)
    divPlaceHolder.Visible=true;

由于不可见元素未呈现,new-div元素仅在SomeCondition为真时显示