我正在与我们网站的外部团队合作,他们最近将我的一个脚本添加到网站的.NET MasterPage中...它最终让我的脚本运行但是现在......它加载了横幅网站上的“每个”页面。
我如何写一个'if'语句基本上说......如果这是主页...运行这个脚本......如果不是......?
答案 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>