Вам необходимо сохранить URL-адрес, на который вы хотите перейти в скрытое поле, и просто установить NavigateUrl = "#"
в разметке, как показано ниже. Таким образом, когда курсор пользователя наводится на ссылку, фактический URL-адрес навигации никогда не будет отображаться внизу браузера.
Затем присоедините обработчик события click
на стороне клиента для гиперссылки, которую вы используете, только установив атрибут гиперссылки onclick
на функцию JavaScript, называемую navigate
. Фактическое перенаправление на новую страницу выполняется с помощью этой функции navigate
.
В этой ситуации вы увидите только URL-адрес текущей страницы с #
. Например, если ваш текущий URL-адрес страницы http://localhost/mysite/view.aspx
, то он покажет http://localhost/mysite/view.aspx#
внизу браузера.
Markup нужен
<asp:HyperLink runat="server" ID="hl" NavigateUrl="#"
onclick="navigate();">Some Text</asp:HyperLink>
<asp:HiddenField ID="hdnURL" runat="server" Value="http://www.microsoft.com" />
JavaScript необходим
<script type="text/javascript">
function navigate() {
window.location.href = document.getElementById("<%=hdnURL.ClientID%>").value;
}
</script>
Другой подход, который вы можете использовать, если необходимо установить NavigateURL для гиперссылки в код-за, как показано ниже , В этом подходе вам нужно удалить NavigateURL до того, как контент отобразит и сохранит его в глобальной переменной с именем linkUrl
. Событие, которое срабатывает перед рендерингом содержимого, равно pageLoad
, и мы будем использовать это событие для этого взлома.
Глобальная переменная в JavaScript всегда должна быть объявлена вне всех методов.
Затем при нажатии на гиперссылку мы можем получить значение из глобальной переменной linkUrl
и перенаправить пользователя в это место.
Примечание. Сохраняйте разметку гиперссылки так же, как при первом подходе. Но удалите скрытое поле из этой разметки.
<script type="text/javascript">
function navigate(event) {
window.location.href = linkURL;
}
var linkUrl = null;
function pageLoad() {
var link = document.getElementById("<%=hl.ClientID%>");
linkURL = link.getAttribute("href");
link.setAttribute("href","#");
}
</script>
Вы пытались создать метод, который запускается вашим управлением asp: hyperlink? Почему вы не хотите, чтобы пользователь видел URL? Вид shady ... –
Я пытаюсь создать функцию JavaScript для запуска ссылки. –
Вы хотите скрыть URL-адрес, который отображается внизу окна браузера? – Sunil