웹 응용 프로그램을 디버깅하는 중이고 벽에 충돌했습니다. Google 크롬에서만 동작이 발생하고 자바의 부적절 함이 나를 솔루션에서 보호하고 있습니다.IE/Firefox에서 이벤트 발생을 클릭했지만 Chrome에서 이벤트 할당을 취소합니다.
컨트롤이 <asp:Panel>
인 ASP 페이지가 있습니다. 패널 내에서 간단한 검색 텍스트 상자를 설정하고 <asp:LinkButton>
을 사용하여 검색을 시작했습니다. 사용자가 검색 텍스트를 입력하면 Enter 키를 눌러야 (usability sake) 검색 결과가 표시됩니다. IE에서는 작동하지만 FireFox에서는 작동하지 않습니다. 내 페이지에 적용한 적이있는 documented fix이 있으며 성공적으로 FireFox를 작동 시켰습니다. 골든.
을 제외하고는 Google 크롬에서 수정되지 않았습니다! 조금 비린내 같아, 방화범이 끌려서 코드를 디버깅해라. 오, 기다려라. 크롬 문제 일 뿐이야. 좋아, 잘 파이어 버그없이 디버깅 자바 스크립트를 처리 할 수 있습니다 (sob) - 나는 크롬 디버거를 가동하고 코드를 단계별로 설명합니다. 이전에 언급 한 자바 스크립트 수정이 Chrome에 의해 삭제되었습니다.
수정 스크립트는 페이지로드에서 실행되고 LinkButton
의 클릭 핸들러 수정 :
var defaultButton = document.getElementById('<%= lnkSearch.ClientID %>');
if (defaultButton && typeof(defaultButton.click) == 'undefined') {
defaultButton.click = function() {
alert('function fired');
var result = true;
if (defaultButton.click) result = defaultButton.onclick();
if (typeof(result) == 'undefined' || result) {
eval(defaultButton.getAttribute('href'));
}
};
alert(typeof(defaultButton.click) != 'undefined');
}
을 그리고 크롬 디버거에서 페이지를 실행할 때 나는 function WebForm_FireDefaultButton()
로 단계와 라인에 도착 :
if (defaultButton && typeof(defaultButton.click) != "undefined") { ... }
이고 어떤 이유로 defaultButton.click
은 "undefined"
이되었습니다. 나는 곤두박질 쳤다. .. 나는 무엇이 없는가?
또한 저는 jQuery를 사용하지 않고 있으며 실행 가능한 솔루션이 아닙니다.
html로 생산 :
<div id="abc_pnlSearchPanel" language="javascript" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'abc_lnkSearch')">
<div class="searchPanel">
<span class="searchText">
Type in stuff to search:
</span>
<span style="float: left;">
<input name="abc:txtSearch" type="text" id="abc_txtSearch" style="width:312px;" />
</span>
<a onclick="this.blur();" id="abc_lnkSearch" class="ButtonLayout" href="javascript:__doPostBack('abc$lnkSearch','')"><span>Search</span></a>
<div style="clear: both"></div>
</div>
</div>
저는 ASP 사용자가별로 없지만, 패널 제작자의 HTML을 게시 할 수 있습니까? –
크롬에서 HTMLAnchorElement ( 태그)에 액세스 할 수 있지만 click() 함수가 없어도 비슷한 문제가 발생합니다. –