gpt4 book ai didi

asp.net - 使用 onkeypress 时 window.location.href 在 Safari 中不起作用

转载 作者:行者123 更新时间:2023-11-30 23:46:51 26 4
gpt4 key购买 nike

我正在使用一个 asp 文本框和一个搜索按钮。在 Safari 中,如果我单击搜索按钮,我会使用 javascript window.location.href 重定向到搜索结果页面。但奇怪的是,如果我在文本框中按回车键,相同的 JavaScript 将不会重定向到该页面。

使用警报功能,我可以看到 window.location.href 具有正确的 url,并且顶部的位置栏从搜索页面 (default.aspx) 更改为搜索结果 url,但是当我单击“确定”时警报框顶部的 url 将恢复到 default.aspx 页面。它适用于 ie7/8/firefox/chrome,但不适用于 safari。这是我的 javascript、cs 和 aspx 代码:

function submitSearchOnEnter(e) {

var CodeForEnter = 13;
var codeEnteredByUser;

if (!e) var e = window.event;
if (e.keyCode) codeEnteredByUser = e.keyCode;
else if (e.which) codeEnteredByUser = e.which;

if (codeEnteredByUser == CodeForEnter)
RedirectToSearchPage();
}

function RedirectToSearchPage() {

var searchText = $get('<%=txtHeaderSearch.ClientID%>').value

if (searchText.length) {

window.location.href = "Search.aspx?searchString=" + searchText;
}
}

protected void Page_Load(object sender, EventArgs e)
{
txtHeaderSearch.Attributes.Add("onkeypress", "submitSearchOnEnter(event)");
}

<asp:Panel ID="pnlSearch" runat="server" DefaultButton="lnkSearch">
<asp:TextBox ID="txtHeaderSearch" runat="server" CssClass="searchBox"></asp:TextBox>
<asp:LinkButton ID="lnkSearch" OnClientClick="RedirectToSearchPage(); return false;"
CausesValidation="false" runat="server" CssClass="searchButton">
SEARCH
</asp:LinkButton>
</asp:Panel>

我尝试过返回 false;这不允许我在搜索框中输入任何字符。我在网上花了很长时间试图找到解决方案。也许它与 setTimeout 或 setTimeInterval 有关,但它不起作用,除非我做错了。

最佳答案

在 Safari 中,仅当按键导致字符被添加到 HTML 元素时才会触发“onkeypress”事件。我不确定当您在单行文本框中按 Enter 时这是否会触发。请参阅此行为的部分解释 here .

正如 Tim Down 所说,您可能需要 onkeydown

关于asp.net - 使用 onkeypress 时 window.location.href 在 Safari 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2781247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com