用户控件以及JavaScript和母版页

Yar*_*nST 5 asp.net

考虑以下情况:

所有javascript都有一个带有contentPlaceHolder的母版页面...

对于速度发布,此部分位于页面底部.

我的用户控件生成一些javascript,使用主页面中的一些引用javascript(Jquery库)

所以,如果我的用户控件在主页面javascript之前呈现,它将无法正常工作.

这是我的问题:

如何在我的.ascx文件中创建一些javascript代码块以呈现给.aspx页面中的asp:Content JavaScript

或者也许我的所有想法都是故事?

谢谢!

EdS*_*dSF 3

看看这是否适合您:

母版页的“底部”在哪里?如果将其移至关闭服务器端表单控件内并在用户控件中使用,它将在“结束标记之前”(将在静态脚本调用之后ClientScript.RegisterStartupScript)注入控件的脚本。<form/>

母版页 -位于关闭服务器端 ASP.Net 的正上方</form>

....
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js "></script>
</form>
Run Code Online (Sandbox Code Playgroud)

内容页面(没什么特别的):

<%@ Register src= ....

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
    <uc1:jscript_inject ID="jscript_inject1" runat="server" />
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

用户控制:

protected void Page_Load(object sender, EventArgs e)
{
    Page.ClientScript.RegisterStartupScript(this.GetType(), "foo", @"alert('foo');", true);

}
Run Code Online (Sandbox Code Playgroud)

这是它的渲染方式(在浏览器中查看 HTML 源代码):

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js "></script>

<script type="text/javascript">
    //<![CDATA[
    alert('foo');//]]>
</script>
....
</form>
Run Code Online (Sandbox Code Playgroud)

正如所宣传的,alert('foo');位于“预定义”jq cdn 调用下方......