ASP.Net 페이지에서 IE에만 문제가 있습니다. 여기에 설명이 있습니다.JS가 클릭 버튼을 호출 한 후 IE가 페이지를 새로 고치지 않는 이유는 무엇입니까?
페이지에는 두 개의 버튼과 레이블이 있습니다. 첫 번째 버튼이 표시되고 click 이벤트에서 JS 함수를 호출합니다. 이 JS 함수는 두 번째 버튼의 클릭 기능을 호출합니다. 두 번째 단추에는 click 이벤트에 대한 C € 이벤트 핸들러가 있습니다. C# 이벤트 처리기에서 레이블을 편집합니다.
Firefox에서 : 레이블을 클릭하면 올바르게 편집됩니다. IE (8)에서 : C € 이벤트 처리기가 제대로 눌려 졌음에도 불구하고 레이블이 편집되지 않았습니다. 를 Page_Load button2_OnClick => 레이블 텍스트의 변화 가를 Page_Load => 레이블 텍스트 리셋 :(
:또한, I는 Page_Load 이벤트가 두 번 JS 버튼을 클릭 한 후 호출되어, IE에서 관찰 파이어 폭스에서
,를 Page_Load 한 번만이라고
내 질문은 다음과 같습니다.? 파이어 폭스는 JS 버튼 후 클릭 않기 때문에 IE가 제대로 페이지를 새로 만드는 방법을 아래
샘플 테스트 코드입니다 :1) 페이지 ASPX 코드 숨김
<head runat="server">
<title></title>
<script type="text/javascript">
function button1Click(sender, args) {
var button2 = document.getElementById("button2");
button2.click();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button runat="server" ID="button1" Text="Click-me!" OnClientClick="button1Click();" />
<asp:Button runat="server" ID="button2" Text="Second" OnClick="button2_OnClick" style="display:none" />
<p />
<asp:Label runat="server" ID="label1" Text="Init" />
</div>
</form>
</body>
</html>
2) C 번호 :
가 렌더링 때 당신의 버튼의 ID가 단추 1 또는 단추 2되지 않습니다public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void button2_OnClick(object sender, EventArgs e)
{
label1.Text = "Changed";
}
}
ASP.Net 3.5를 사용하고 있으므로 사용할 수 없습니다. 또한 button1과 button2는 ctl001_button1과 같은 것이 아니라 최종 클라이언트 페이지에서 동일한 ID로 렌더링됩니다. – WolveFred
첫 번째 게시물에 흥미로운 정보를 추가했습니다. "또한 IE에서 JS 버튼을 클릭 한 후 Page_Load 이벤트가 두 번 호출된다는 것을 관찰했습니다 [...]". – WolveFred
'button1Click()'메소드에'return false'를 넣어보세요. –