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

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
madatanic 12 Авг 2010 в 00:04

3 ответа

Лучший ответ

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

ClientScript.RegisterStartupScript(...)

Из статьи MSDN здесь:

Блок сценария, который отображается методом RegisterStartupScript, выполняется, когда страница завершает загрузку, но до того, как будет инициировано событие onload клиента страницы. Блоки сценария запуска находятся внизу страницы ASP.NET, отображаемой перед тегом формы.

Или используйте jQuery:

$(document).ready(function(){window.location.hash="anchor";});
0
Pete Amundson 11 Авг 2010 в 20:27

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

Window.location.href = '#anchor';

0
Gary L Cox Jr 11 Авг 2010 в 21:25

Вы добавляете знак "#" перед своим именем якоря? т.е.

window.location.hash = '#anchor';

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

0
Community 23 Май 2017 в 12:05