У меня есть сайт asp.net с кодом С#. В настоящее время я использую следующее, чтобы открыть окно:

<asp:Button ID="btnNewHelpCall" Style="width: 180px;" runat="server" Text="New Help Call" UseSubmitBehavior="False" Width="135px" CssClass="buttonlink" OnClick="btnNewHelpCall_Click"></asp:Button></td>

В коде позади:

 this.Page.Response.Write("<script type=\"text/javascript\">window.open('" + URL2 + "','" + Convert.ToInt32(decran).ToString() + "_ReqView','status=no,menubar=no,width=1000,height=700,resizable=yes,scrollbars=yes');</script>");

Как вы можете видеть, это половинчатый способ вызова Windows.open, у которого есть проблема с Chrome. Chrome ожидает, что звонку предшествовало действие пользователя. В этом случае это действие кнопки, которое вызывает код позади. Работает в IE, но не в Chrome. Прошу прощения, если это часто повторяющаяся тема, но я думаю, что это должно сработать, так как вызывается действием пользователя. И да, я отключил блокировщик всплывающих окон для локального хоста. (другая проблема, в некоторых сообщениях говорится, что URL-адреса Localhost не открываются в Chrome, но я не уверен, что это правда.

Спасибо,

Эрик

0
pmcs 26 Ноя 2019 в 16:49

1 ответ

Ответ заключается в том, что вы не можете сделать это таким образом! Несмотря на то, что действие запускается событием по клику, то, как я внедрил javascript, не считается действием пользователя.

В итоге я переработал вид сетки, в котором находится кнопка, чтобы использовать javascript. Получил базовое кодирование отсюда: https ://www.codeproject.com/Questions/699912/Click-gridview-row-to-open-a-new-window

Спасибо

Эрик

0
pmcs 27 Ноя 2019 в 19:55