2009-09-08 4 views
4

Я использую кнопку asp: hyperlink, чтобы открыть всплывающее окно с условиями и условиями. код для гиперссылки -asp: hyperlink navigation

<asp:HyperLink ID="HyperLink4" Target="_blank" 
    NavigateUrl="javascript:window.open('test.aspx');" 
    ForeColor="#F58022" runat="server">Terms and Conditions</asp:HyperLink> 

Когда я нажимаю этот адрес в браузере то она открывает мою страницу test.aspx Но вместе с test.aspx; он открывает другую страницу, а URL страницы - "javascript: window.open ('test.aspx');" На теле этой нежелательной страницы - [объект].

Не могли бы вы предложить мне, как избавиться от этой нежелательной страницы.

Благодаря

+1

Некоторый код будет хорошо –

+0

Вы должны обернуть Колорадо теги вокруг вашей гиперссылки, чтобы мы могли ее увидеть. – 2009-09-08 08:55:46

ответ

2

Сделать это:

NavigateUrl="javascript:window.open('test.aspx'); return false;" 

Лучше практика, однако, сделать это в OnClientClick

NavigateUrl="#" OnClientClick="window.open('text.aspx'); return false" 

- редактирование:

<asp:LinkButton ID="HyperLink4" Target="_blank" 
    NavigateUrl="#" OnClientClick="window.open('text.aspx'); return false" 
    ForeColor="#F58022" runat="server">Terms and Conditions</asp:LinkButton > 

Обновлено в Комментарии.

+4

Я не думаю, что элемент 'HyperLink' имеет событие/свойство OnClientClick, но вопрос об использовании события' onclick' на стороне клиента, а не 'href', хороший. – LukeH

+0

NavigateUrl = "javascript: window.open ('test.aspx'); return false;" нерабочий ....? –

+0

ваше предложение не работает, Plz check –

5

Использование: -

<asp:HyperLink ID="HyperLink4" Target="_blank" 
    NavigateUrl="javascript:window.open('test.aspx'); return false;" 
    ForeColor="#F58022" runat="server">Terms and Conditions</asp:HyperLink> 

Проблема заключается в том, что window.open возвращает объект окна. Одна из целей протокола «javascript:» заключалась в том, чтобы позволить javascript-коду генерировать HTML-контент, который является выражением, следующим за протоколом. Затем происходит переход к новой странице, содержащей этот HTML-код.

В вашем случае, поскольку у вас есть Target = "_ blank", открывается новая страница, и объект возвращается вашим выражением (новое окно, открытое window.open), вызываемый метод toString(), и это то, что отображается в этом дополнительном окне.

Edit:

Я ударил код, потому что он не работает. Правильное решение предоставляется silky. Однако я не удаляю ответ, потому что объяснение того, что происходит в вопросительном коде, стоит. Следовательно, решение на самом деле: -

<asp:HyperLink ID="HyperLink4" href="#" 
    onclick="window.open('test.aspx'); return false;" 
    ForeColor="#F58022" runat="server">Terms and Conditions</asp:HyperLink> 

Target больше не нужен он не используется. Остается как управление HyperLink, так как могут быть другие причины, которые OP нуждается в этом как элемент управления на странице.

+0

Я протестировал, его не работает ?? –

+0

plz проверить мое решение –

+0

Silky предоставленное решение также не работает. –

1
<asp:HyperLink ID="HyperLink4" Target="_blank" 
     NavigateUrl="javascript:void window.open('test.aspx');" 
     ForeColor="#F58022" runat="server">Terms and Conditions</asp:HyperLink> 
4

Есть ли причина, по которой вам необходимо использовать управление HyperLink?

Вы могли бы просто использовать стандартную ссылку HTML (или HtmlAnchor контроль), а и использовать на стороне клиента onclick событие стреляйте JavaScript:

<a id="HyperLink4" runat="server" href="test.aspx" target="_blank" 
    onclick="window.open('test.aspx');return false;" 
    style="color:#F58022">Terms and Conditions</a> 
0

удалить Target = _blank, вам не нужно это, код JavaScript открывает новое окно уже ...

Подсказки: понять, почему он действует по-другому, просмотреть исходный код в браузере и проверьте, что производит веб-контроль в HTML терминах

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