Как запустить скрипт jquery, если html page является домашней страницей ...? - PullRequest
11 голосов
/ 15 сентября 2010

Я работаю с внешней командой на нашем веб-сайте, и они недавно добавили один из моих скриптов в .NET MasterPage сайта ... ну, наконец-то, мой скрипт запущен, но теперь ... он загружает баннеры на«каждая» страница на сайте.

Как мне написать утверждение «если», которое в основном говорит: «Если это домашняя страница ... запустите этот скрипт ... если нет, то не делайте...

Ответы [ 4 ]

38 голосов
/ 15 сентября 2010

Я публикую еще один ответ на случай, если вы не сможете реализовать решение Master Page.

Вы можете использовать элемент flag , чтобы сообщить jQuery, что это домашняя страница, потому что ранее опубликованные URL-решения могут легко сломаться.

Где-нибудь в содержании вашей домашней страницы, просто поместите это.

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

А затем, используя jQuery, проверьте, существует ли элемент, и запустите ваш код. Это довольно плохое решение, но оно сработает, если вы не можете заставить мой другой ответ работать.

if($("#homepage-flag").length > 0) {
    // run code for homepage
}
6 голосов
/ 15 сентября 2010

Как насчет скрипта Content Place holder, который находится внутри <head> MasterPage, и затем размещения контента внутри заполнителя с вашей домашней страницы.

В основном ..

На вашей главной странице

<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 />

0 голосов
/ 17 января 2012

если вы используете vb.net, вы можете использовать заполнитель содержимого, как упомянуто выше, но просто используйте небольшую часть кода в файле vb masterpage, чтобы скрыть / показать заполнитель:

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

(makeОбязательно установите вид по умолчанию для visible: false, прежде чем перестраивать так:)

<asp:Content ContentPlaceHolderId="jQueryCode" runat="server" visible="false"> 
    // run jQuery script here 
</asp:Content> 
0 голосов
/ 15 сентября 2010

Вы не должны, но вы, вероятно, могли бы сделать что-то вроде этого:

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

НО ... я бы посоветовал создать раздел контента на главной странице, которыйпомещается в ГОЛОВУ и помещает туда jQuery вместо главной страницы.Нет смысла включать его в главную страницу, если он не используется везде ...

...