如果html页面是主页,如何运行jquery脚本...?

时间:2010-09-14 23:23:10

标签: javascript asp.net jquery master-pages

我正在与我们网站的外部团队合作,他们最近将我的一个脚本添加到网站的.NET MasterPage中...它最终让我的脚本运行但是现在......它加载了横幅网站上的“每个”页面。

我如何写一个'if'语句基本上说......如果这是主页...运行这个脚本......如果不是......?

4 个答案:

答案 0 :(得分:38)

如果您无法实施母版解决方案,我会发布另一个答案。

您可以使用标志元素告诉jQuery它是主页,因为之前发布的网址解决方案很容易破解。

在您的主页内容中,只需放置此内容即可。

<span id="homepage-flag" style="display: none" />

然后使用jQuery,检查元素是否存在并运行代码。这是一个相当糟糕的解决方案,但如果你无法得到我的其他工作答案,它将会有效。

if($("#homepage-flag").length > 0) {
    // run code for homepage
}

答案 1 :(得分:6)

MasterPage的<head>内的脚本内容占位符如何,然后将内容放在主页的占位符中。

<强>基本上..

在您的母版页

<head>
<title>hello</title> etc...
// add jQuery here

<asp:ContentPlaceHolder ID="jQueryCode" runat="server"></asp:ContentPlaceHolder>

然后在您的主页

<asp:Content ContentPlaceHolderId="jQueryCode" runat="server">
    // run jQuery script here
</asp:Content>

另外 - 如果您没有在其他页面上使用jQuery,可以将其从MasterPage中删除,并将其添加到主页上方的脚本正上方<asp:Content />

答案 2 :(得分:0)

你不应该,但你可能会做这样的事情:

if(window.location.pathname == "{home page}")
{
  //run home page jquery.
}

但是 ...我的建议是在主页上创建一个内容部分,该部分放入HEAD并将jQuery放入其中而不是母版页。如果没有在任何地方使用它,没有理由将它包含在母版页中......

答案 3 :(得分:0)

如果你正在使用vb.net,你可以使用上面提到的内容占位符,但只需在masterpage vb文件上使用一些代码隐藏来隐藏/显示占位符:

 If Request.Url.AbsolutePath.ToLower = "/index.aspx" Then
    jQueryCode.Visible = true
End If

(确保在重建之前先将默认视图设置为visible:false,如下所示:)

<asp:Content ContentPlaceHolderId="jQueryCode" runat="server" visible="false"> 
    // run jQuery script here 
</asp:Content>