2010-09-14 23 views
11

Estoy trabajando con un equipo externo en nuestro sitio web y recientemente agregaron uno de mis scripts a .NET MasterPage del sitio ... bueno, finalmente consiguió ejecutar mi script, pero ahora ... carga Banners en ' cada 'página en el sitio.¿Cómo ejecutar jquery script si la página html es la página de inicio ...?

¿Cómo puedo escribir una declaración 'si' que básicamente dice ... si esta es la página de inicio ... ejecutar este script ... si no no ...?

+3

¿No es el objetivo de una página maestra incluir los datos en cada página? Esto suena horriblemente como "¡Doctor! ¡Doctor! ¡Duele cuando disparo el arma en mi pie!" – Quentin

+2

No estoy seguro de lo útil que fue, pero fue gracioso ...! – chrisb

+0

La implicación es "Poner'

0

No debería, pero que probablemente podría hacer algo como esto:

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

PERO ... mi consejo sería la creación de una sección de contenido en la página de inicio que se guarde dentro del CABEZA y ponga el jQuery allí en lugar de la página maestra. No hay razón para incluirlo en la página maestra si no se usa en todas partes ...

6

Qué tal un script Content Place holder que está dentro del <head> de la página maestra, y luego colocar contenido dentro del marcador de posición desde su página de inicio.

Básicamente ..

En su página maestra

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

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

Y luego, en su página inicial

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

Además, si no utiliza jQuery en las otras páginas, puede eliminarlo de la página maestra y agregarlo justo encima de la secuencia de comandos dentro de la página de inicio <asp:Content />

+0

+1, sí, esta sería la forma menos astuta de hacer esto. –

+0

+1 La mayoría de las otras maneras de hacer esto huelen al equivalente de requerir que una clase para padres conozca sus subclases. –

+0

Estoy en diálogo con los desarrolladores back-end sobre la implementación de esta solución. – chrisb

0

si está utilizando vb.net, se puede utilizar el marcador de contenido como se mencionó anteriormente, pero sólo tiene que utilizar un poco de código subyacente en el archivo masterpage vb para ocultar/mostrar el marcador de posición:

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

(asegúrese de establecer la vista predeterminada en visible: falso primero antes de reconstruir de esta manera :)

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