2010-08-11 3 views
0

Я добавил этот код ниже в веб-часть MOSS 2007 внутри метода OnPreRender().Javascript Anchor Перейти к началу страницы

if (!Page.ClientScript.IsClientScriptBlockRegistered("jump_to_anchor_JS")) 
{ 
    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "jump_to_anchor_JS", "window.location.hash=\"anchor\";",true); 
} 

Страница загружается, переходит на конкретный якорь, а затем возвращается к началу страницы. Это было протестировано в IE8, Firefox, Chrome и Safari с одинаковым поведением.

Любые мысли?

+0

И в чем проблема? –

+0

Как уже упоминалось, страница не остается на якоре, который я хочу, но перескакивает на верх страницы. – madatanic

ответ

0

Попробуйте использовать:

ClientScript.RegisterStartupScript(...) 

Из статьи MSDN here:

блок скрипта, который визуализируется с помощью метод RegisterStartupScript выполняется, когда страница заканчивается загрузки, но перед клиентом данной страницы Событие onload поднято. Стартовый скрипт блоки расположены в нижней части отображаемой страницы ASP.NET перед тегом формы.

или использовать JQuery:

$(document).ready(function(){window.location.hash="anchor";}); 
+0

Я пробовал оба. С первым, страница не переходит на якорь вообще. Со вторым, такое же поведение. Спасибо, что помогли. – madatanic

+0

Кроме того, по умолчанию функции www.example.com # my_anchor - прокрутка вниз по странице и поиск

+0

вы также можете добавить тайм-аут :) $ (document) .ready (function() {window.setTimeout ('window .location.hash = "anchor"; ', 1000);}); –

0

Вы включая "#" хэш-знак перед вашим именем якоря? т.е.

window.location.hash = '#anchor'; 

Также см window.location.hash issue in IE7 об использовании фокуса() или scrollIntoView() вместо этого.

+0

Пробовал это тоже, знак # не изменил ситуацию. Также попытался string.Format ("document.getElementsByName ('{0}') [0] .scrollIntoView (true);", "anchor") ;. Не работает. Кажется, что SharePoint возится со мной. – madatanic

0

Попробуйте использовать

window.location.href = '#anchor';

Смежные вопросы