이상 한 리 턴 문제.
3727 단어 차 를 갈 아 타다
Ext.Ajax.request({
url:'CatMan.php',
form:this.FORM_NAME,
scope:this,
callback:function(o,s,r){
var retObj=Ext.decode(r.responseText);
if(retObj.success){
alert(' !');
}
}
});
를 통 해 저장 되 었 을 때 서버 에 보 내 는 인 코딩 이 이 렇 습 니 다.catdesc=%E6%9E%97%0A%0A%B0%910 A%0A%0Aa%E5%8D%8E 는 빨간색 태그 의%0A 를 주의 하 십시오.이것 은 인 코딩 입 니 다.\r 인 코딩 이 없어 졌어 요.그리고 제 가 formsubmit 을 사용 하여 직접 제출 하면 인 코딩 은%E6%9E%97%0D%0A%0D%0A%E0%B0%91%0D%0A%0D%0A%0D%0A%0Aa%E5%8D%8E 발견\r(%0D)인 코딩 이 있 습 니 다.(이상 은 IE9 에서 테스트 한 결과 입 니 다.)혹시 ExtJS 문제 인가요?Extjs 의 소스 코드 를 분석 하면 form 을 찾 을 만 한 곳 을 찾 습 니 다.다음 과 같다.
serializeForm : function(form) {
debugger
var fElements = form.elements || (document.forms[form] || Ext.getDom(form)).elements,
hasSubmit = false,
encoder = encodeURIComponent,
name,
data = '',
type,
hasValue;
Ext.each(fElements, function(element){
name = element.name;
type = element.type;
if (!element.disabled && name) {
if (/select-(one|multiple)/i.test(type)) {
Ext.each(element.options, function(opt){
if (opt.selected) {
hasValue = opt.hasAttribute ? opt.hasAttribute('value') : opt.getAttributeNode('value').specified;
data += String.format("{0}={1}&", encoder(name), encoder(hasValue ? opt.value : opt.text));
}
});
} else if (!(/file|undefined|reset|button/i.test(type))) {
if (!(/radio|checkbox/i.test(type) && !element.checked) && !(type == 'submit' && hasSubmit)) {
data += encoder(name) + '=' + encoder(element.value) + '&';
hasSubmit = /submit/i.test(type);
}
}
}
});
return data.substr(0, data.length - 1);
},
extjs 는 js 중의 encodeURIComponent 함수 로 값 을 인 코딩 하 는 것 을 발견 할 수 있다.혹시 encodeURIComponent 의 문제 인가요?인터넷 을 검색 해 보 니 블 로그 에서 이 문 제 를 언급 한 것 을 발견 했다.http://www.yeahxj.com/2011/11/07/enter-code-for-all-browser/ (리 턴 문자\r 는 각 브 라 우 저 에서 파렴치한 표현)그래서 저 는 ie6,ie8,ie9 에서 각각 테스트 를 했 는데 과연 이 문제 가 존재 한 다 는 것 을 알 게 되 었 습 니 다.결론:이 문 제 는 작 지만 어떤 상황 에 서 는 사람 을 골 치 아 프 게 한다.이것 도 컴퓨터 프로 그래 밍 을 하 는 사람들의 슬픔 이다.대량의 불 균형 으로 인해 많은 프로그램 에 여러 가지 이상 한 문제 가 발생 한다.예 를 들 어 이 작은 문 제 는 하나의 결 과 를 가 져 올 수 있 습 니 다.예 를 들 어 저 는 이 프로그램 이 프론트 데스크 에 내용 을 표시 할 때 차 를 돌려 줄 을 바 꿔 야 합 니 다.일반적으로 두 가지 처리 방법 이 있 습 니 다.하 나 는라벨 을 사용 하 는 것 입 니 다.그러나 이 라벨 은 사용 하기에 매우 불편 합 니 다.형식 변화 가 잘 제어 되 지 않 는 다 는 것 을 발견 하려 고 시도 합 니 다.또 다른 방법 은 리 턴 을
로 바 꾸 는 것 이다.저 는 이런 방법 을 사 용 했 습 니 다.처음에 제 가 쓴 정규 표현 식 은/\r/였 는데 아무것도 일치 하지 않 았 습 니 다.그 다음 에 저 는/[\r]로 바 꾸 었 습 니 다.그러나 이런 문 제 는 바로 ie6,7,8 에서 한 줄 이 더 나 올 것 입 니 다.마지막 으로 통일 적 으로 처리 하기 위해 서 나 는 먼저/\r/조합 을 교체 한 다음 에//로 바 꾸 었 다.문제 가 해결 되다.본인 이 창작 한 글,발췌 문 은 이 단락 의 내용 을 보존 해 주 십시오.대단히 감사합니다!**microdreamsoft(Lin Shaohua):**본인 의 수준 이 제한 되 어 있 기 때문에 고수 여러분 의 지적 을 환영 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
이상 한 리 턴 문제.extjs 는 js 중의 encodeURIComponent 함수 로 값 을 인 코딩 하 는 것 을 발견 할 수 있다.혹시 encodeURIComponent 의 문제 인가요?인터넷 을 검색 해 보 니 블 로그 에서 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.