잠재적으로 위험한 Request.Form 값 IE8에서만
-
17-09-2020 - |
문제
클라이언트 측 마크 업이 보이는 Facebook 스타일의 현대적인 버튼 컨트롤이 있습니다 :
<button id="ctl00_uxBtn" value="ctl00$uxBtn" name="ctl00$uxBtn type="submit">
<div style="background-image: url("Icons/page_edit.png"); background-position: left center; background-repeat: no-repeat; line-height: 16px; padding: 3px 0pt 3px 22px;">Save Draft</div>
</button>
.
이 버튼은 Visual Studio 2010 웹 서버를 사용하여 IE 및 FF가 모두 잘 작동하지만 응용 프로그램을 서버에 배포 할 때 "Windows Server 2008 / IIS 7.0)에서"잠재적으로 위험한 Request.Form 값이 감지되었습니다 "오류가 있지만 IE와 함께.즉, IE가 CTL00_UXBTN="
해결책 2
즉
<form id="form1" runat="server" onsubmit="fixModernButton()">
.
JavaScript 함수는 브라우저가 IE이고 버튼의 InnerHTML 속성이 "<"로 시작하는지 확인합니다.그렇다면 마크 업이며 ASP.NET이 "잠재적으로 위험한 Request.Form 값"오류가 발생하여 InnerHTML 속성 값을 InnerText 속성의 값으로 설정 한 다음 양식을 제출합니다.JavaScript 함수의 소스는 다음과 같습니다.
function fixModernButton() {
if (navigator.appName === 'Microsoft Internet Explorer') {
if (document.activeElement.innerHTML && document.activeElement.innerHTML.charAt(0) === '<') {
document.activeElement.innerHTML = document.activeElement.innerText;
}
}
document.forms['form1'].submit();
}
. 다른 팁
적절한 따옴표를 사용해야합니다.
<button id="ctl00_uxBtn" value="ctl00$uxBtn" name="ctl00$uxBtn" type="submit">
<div style="background-image: url('Icons/page_edit.png'); background-position: left center; background-repeat: no-repeat; line-height: 16px; padding: 3px 0pt 3px 22px;">Save Draft</div>
</button>
.
CSS 및 마크 업을 혼합하지 않고이 규칙을 별도의 CSS로 외부화하는 것이 좋습니다.
.edit {
background-image: url('Icons/page_edit.png');
background-position: left center;
background-repeat: no-repeat;
line-height: 16px;
padding: 3px 0pt 3px 22px;
}
.
을 그 다음 DIV에 적용하십시오 :
<button id="ctl00_uxBtn" value="ctl00$uxBtn" name="ctl00$uxBtn" type="submit">
<div class="edit">Save Draft</div>
</button>
.
마크 업을 훨씬 청결하게 만들고 대역폭을 유지하고 적절한 인용문을 사용하는 것에 대해 한 것과 같은 오류를 피할 수 있습니다.
제휴하지 않습니다 StackOverflow