2010-09-14 11 views
11

Lavoro con un team esterno con il nostro sito Web e di recente hanno aggiunto uno dei miei script a .NET MasterPage del sito ... beh, ha finalmente eseguito il mio script ma ora ... carica Banners ' ogni 'pagina del sito.Come eseguire lo script jquery se la pagina html è la home page ...?

Come posso scrivere un'istruzione "se" che in pratica dice ... se questa è la pagina iniziale ... esegui questo script ... se no non ...?

+3

Non è il punto di una pagina master includere i dati in ogni pagina? Questo suona orribilmente come "Dottore! Dottore! Fa male quando sparo la pistola ai miei piedi!" – Quentin

+2

Non sono sicuro di quanto sia stato utile, ma è stato divertente ...! – chrisb

+0

L'implicazione è "Metti il'

0

Non si dovrebbe, ma probabilmente si potrebbe fare qualcosa di simile:

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

MA ... il mio consiglio sarebbe quello di creare una sezione di contenuti in home page che viene inserito nella testa e metti jQuery al posto della masterpage. Non c'è motivo di includerlo nella masterpage se non viene usato ovunque ...

6

Che ne dici di uno script Content Place holder che si trova all'interno dello <head> della MasterPage e quindi inserisce il contenuto all'interno del segnaposto dalla tua home page.

Fondamentalmente ..

Nella tua Pagina Master

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

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

E poi nella vostra pagina

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

Inoltre, se non usi jQuery sulle altre pagine, puoi rimuoverlo da MasterPage e aggiungerlo direttamente sopra lo script all'interno della pagina iniziale <asp:Content />

+0

+1, sì questo sarebbe il modo meno krufty per farlo. –

+0

+1 La maggior parte degli altri modi di fare ciò puzzava dell'equivalente di richiedere a una classe genitore di conoscere le sue sottoclassi. –

+0

Sono in dialogo con gli sviluppatori di backend per l'implementazione di questa soluzione. – chrisb

0

se si sta utilizzando vb.net, è possibile utilizzare il segnaposto di contenuto, come accennato in precedenza, ma basta usare un po 'di codebehind sul file masterpage VB per nascondere/mostrare il segnaposto:

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

(assicurati di impostare la vista predefinita su visibile: false prima di ricostruire in questo modo :)

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