2012-07-04 5 views
0

편집중인 사이트에 검색 양식이 있습니다. 기록을 위해, 위치에 몇몇 다른 모양, 접촉 및 등등이있다. 이것은 유일한 문제입니다.IE9는 특정 양식 제출 후 일부 CSS를 잃습니다.

양식을 제출하면 스타일 중 일부가 IE9에서 손실됩니다 (다른 버전의 IE 일 수도 있지만 아직 테스트하지 않았습니다). 주로 html 및 본문에 설정된 여백 및 색상이 손실 된 것처럼 보입니다. 메뉴, 배너, 텍스트 등은 모두 스타일을 유지하는 것으로 보입니다. 모든 스타일은 여기에 사용되는 한 장에 있습니다 ...

유용한 조언이 있으십니까?

여기는 검색 페이지의 내용과 양식을 확인하는 데 사용되는 PHP가 도움이되고 생각한 CSS가 손실되었다고 생각합니다.

편집 : 페이지는 거의 검색 페이지가 아닙니다. 검색은 동일한 페이지를 다시로드하고 검색 기능의 결과를 표시합니다. 따라서, 같은 임베디드 시트가 임베디드되어야합니다, 내가 볼 수있는 한 동일한 HTML이 표시됩니다 ... 이것이 토론에 도움이된다면. 아직도 어떤 유형의 오류를 찾기 위해 체로 치기.

<div id="search"> 
     <br /> 
      <div style="float:right;font-size:.8em;"> 
       <form name="form_sidesearch" action="search.html" method="post"> 
       <input type="hidden" name="action" value="search" /> 
       <input type="text" name="search_value" value="<?php echo $systems_primary->search_value ?>" /> 
       <input type="submit" name="submit_search" value="Search Website" /> 
       </form> <br /> 

      </div> 
    </div> 

<?php echo stripslashes($search_results); 

는 PHP :

<?php 

// -- Begin Search -------------------------------------------------------------------------------------- 
if($_REQUEST["action"] === "search") 
{ 
    if(strlen($_REQUEST["pg"]) <= 0) 
    { 

    $_REQUEST["pg"] = 1; 
    } 

    $search_results = $systems_primary->search_website("index",urldecode($_REQUEST["search_value"]),"<div class=\"listing ui-corner-all\"><a href=\"{ENTRY_URL}\" title=\"{ENTRY_TITLE}\" class=\"listing_title\">{ENTRY_TITLE}</a>{ENTRY_CONTENT} <a href=\"{ENTRY_URL}\" title=\"{ENTRY_TITLE}\" style=\"font-size:.8em;\">...read more</a></div><br /><br />",345,"all",10,$_REQUEST["pg"]); 
} 

// -- End Search ---------------------------------------------------------------------------------------- 
?> 
IE의 개발 도구는

html로 ... IE7-8에서 볼 때이 오류가뿐만 아니라 IE의 이전 버전에서 발생하는 것을 나타내는 것

잃어버린 CSS (더 많은 수) :

html { 
background-color:#F6E6C8; 
font-size:16px; 
font-family:Helvetica; 
} 
body { 
    width:1027px; 
    margin:0 auto; 
    background-color:#ffffff; 
    font-family: arial, 'times new roman', sans-serif; 
} 

정교화 : 어떻게 실제 것은입니다 페이지 공동 ntent는 왼쪽으로 이동하고 자동 여백을 사용하지 않고 왼쪽으로 정렬 된 상태로 유지됩니다. 또한 html 배경색이 손실됩니다. 검색 필드의 스타일 또한 손실되거나 무시됩니다. 그 밖의 무엇이 변경 될지 확실하지 않습니다.

+0

당신은 크롬 개발자 도구를 사용하여, 또는 파이어 버그는 CSS를 분실하거나 지배에 걸쳐있는 정확히보고 ... 이런 식으로 뭔가를 할 수 있습니까? – Anagio

+0

@Anagio : IE와 어떻게 관련이 있습니까? – leppie

+0

@leppie - 아마도 Firebug 또는 Chrome의 개발 도구가 아니지만 Firebug Lite 또는 IE의 자체 개발 도구가 도움이 될 것입니다. 또한 OP는 HTML 오류가 없는지 확인해야합니다. – powerbuoy

답변

0

일반적으로 양식을 제출 한 후 스타일을 잃어 버렸을 때, 특히 Ajax 작업이고 전체 페이지를 다시로드하지 않은 경우 스타일이 적용되지 않는 것은 JavaScript 또는 jQuery를 사용하여 적용된 일부 스타일이 페이지의 업데이트 된 부분 다시로드되었습니다. 여기에는 추가 요소가 만들어 지거나 하나 이상의 요소에 CSS 클래스가 추가 될 수 있습니다.

HTML 양식 요소의 스타일링에서 특히 그렇습니다. 일부 양식 요소의 무거운 스타일링은 JavaScript 또는 jQuery를 사용하여 수행 할 수 있기 때문에 특히 그렇습니다.

그런 경우 페이지가 처음로드되었을 때 관련 콘텐츠의 스타일을 지정한 JavaScript 또는 jQuery를 식별 한 다음 페이지가 업데이트 된 후 (Ajax 호출이 성공적으로 완료되거나 브라우저가 페이지를로드하거나 새 페이지를로드).

오류가 발생하면 이전과 이후 페이지의 HTML을 비교하여 변경된 사항을 확인하십시오. body 태그에 CSS 클래스가 있거나 일관되게 설정되지 않는 컨테이너 클래스가있을 수 있습니다. 새 페이지가로드되면 다른 CSS 파일 집합이 다운로드되거나 한 페이지에는 있지만 다른 페이지에는 포함되지 않은 포함 된 스타일 시트가있을 수 있습니다.

오류가 발생하면 HTML과 CSS가 유효한지 확인하십시오. 일부 브라우저는 잘못된 코드를 렌더링 할 때 다른 브라우저보다 용서가 좋습니다. 브라우저 버그와 같이 보이는 것은 잘못된 코드로 인해 발생할 수 있습니다.

아무 것도 나타나지 않고 문제가 불분명 한 브라우저 버그로 인해 발생할 가능성이 높은 경우 문제를 일관되게 재현 할 수있는 가장 단순한 상태로 코드를 줄이고 더 많은 코드를 식별하려고 시도하십시오 버그의 본질이 무엇인지 분명하게 알 수 있습니다. 그러면 수정 사항을 쉽게 찾고 도움을 요청할 수 있습니다. 코드를 줄이는 과정에서 갑자기 문제가 사라지면 마지막으로 제거 된 코드가 문제의 원인이 될 수 있습니다.

반대로, 운율이나 문제의 원인이 없다면 문제가 여전히 발생하는지 확인하기 위해 코드를 처음부터 다시 구현하는 것이 도움이되는 경우가 있습니다. 코드를 작성하는 동안 문제가 발생하기 시작하면 마찬가지로 마지막으로 추가 된 코드가 문제의 원인이 될 수 있습니다.

+0

정보를 위해서, CSS는 Javascript 또는 jQuery에 의해 변경되지 않으며 페이지에는 AJAX가 포함되지 않고 별도의 페이지가로드되지 않습니다. 페이지. 유효한 HTML/CSS를 확인하는 것이 나에게 다음 해결책 인 것처럼 보이지만, 양식 제출 후 정확히 동일한 코드가 실패하지만 사전에 작동하는 이유에 대해 의아하게 생각합니다. – jeffreylees

+0

양식 제출 후 HTML이 약간 다를 경우 HTML 전후를 비교하십시오. 어떤 점이 다른지를 정확히 식별하고 문제가 나타나거나 사라지기 전까지 Firebug를 사용하거나 HTML의 로컬 정적 사본을 편집하여 페이지를 한 상태에서 다른 상태로 점진적으로 편집하면 문제가 상당히 빨리 드러날 수 있습니다. –

+0

본질적으로 페이지에는 '우리 사이트 검색'라인과 검색된 결과의 수를 알려주는 라인이 있습니다. 제출시 유일한 새로운 코드는 결과 표시입니다 (함수에서 역 겨냄). 결과의 전체 표시를 주석 처리하더라도 여전히 문제가 발생합니다. 그래서 코드를 보면서 좌절감을 느낍니다. 필자는 (어리석은) 커스텀 PHP/SQL CMS를 기반으로하며, 설치의 로컬 복사본을 준비하지 않았기 때문에 작동하는 로컬 복사본이 없습니다. 그러나 내가 백업을 가지고있는 한, 살아있는 동안 팅커 칠할 수는 있습니다. – jeffreylees

0

당신은

$('#yourForm").on('submit',function(e){ 
$(this).css({ 
// reasign all the atributes you lost 
}); 
e.preventDefault(); 
});