2010-09-14 2 views
11

Я работаю с внешней командой с нашим веб-сайтом, и они недавно добавили один из моих сценариев к .NET MasterPage сайта ... ну, наконец, он получил мой скрипт, но теперь ... он загружает баннеры на ' каждую страницу на сайте.Как запустить скрипт jquery, если html-страница является главной страницей ...?

Как написать инструкцию «если», которая в основном говорит ... если это домашняя страница ... запустите этот скрипт ... если не хотите ...?

+3

Не является ли главная страница главной страницы для включения данных на каждую страницу? Это звучит ужасно, как «Доктор! Доктор! Больно, когда я стреляю пистолетом у меня в ногу!» – Quentin

+2

Я не уверен, насколько это было полезно, но это было забавно ...! – chrisb

+0

Импликация: «Поместите'

0

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

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

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

6

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

основном ..

В вашем Master Page

<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

+1, да, это было бы наименее способным способом сделать это. –

+0

+1 Большинство других способов сделать это будет пахнуть эквивалентом того, что родительский класс должен знать о своих подклассах. –

+0

Я нахожусь в диалоговом окне с сторонними разработчиками по реализации этого решения. – chrisb

0

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

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

(не забудьте установить вид по умолчанию на видимый: false сначала перед восстановлением следующим образом:

<asp:Content ContentPlaceHolderId="jQueryCode" runat="server" visible="false"> 
    // run jQuery script here 
</asp:Content> 
Смежные вопросы