2012-01-20 2 views
0

현재 개발자를위한 디자인 자습서 사이트를 코딩 중이며 최종 사용자가 구식 브라우저를 사용하는 경우 기본적으로 페이지에 작은 알림을 표시하는 스 니펫이 있습니다. IE 버전을 화면에 표시합니다.PHP 브라우저 관련 알림에 문제가 있습니다.

소리가 들리지 않으므로 클라이언트가 원하는 것입니다. 오 잘.

"기본적으로이 상자를 닫으십시오"링크를 클릭하면 닫을 수 없습니다. 여기에 코드가 있습니다. 어떤 제안?

<?php 

// IE6,7,8 string from user_agent 
$ie6 = "MSIE 6.0"; 
$ie7 = "MSIE 7.0"; 
$ie8 = "MSIE 8.0"; 

// detect browser 
$browser = $_SERVER['HTTP_USER_AGENT']; 

// yank the version from the string 
$browser = substr("$browser", 25, 8); 

// html for error 
$error = "<div class=\"error\" id=\"error\"><strong>Alert:</strong> It appears that you  
are using Internet Explorer 6, 7, or 8. While you may still visit this website we 
encourage you to upgrade your web browser so you can enjoy all the rich features this 
website offers as well as other websites. Follow this link to <a 
href=\"http://www.microsoft.com/windows/downloads/ie/getitnow.mspx\"><strong>Upgrade 
your Internet Explorer</strong></a><br /><div class=\"kickRight\"><a href=\"javascript: 
killIt('error');\"> Close This Box</a></div></div>"; 

// if IE6 set the $alert 
if($browser == $ie6){ $alert = TRUE; } 
if($browser == $ie7){ $alert = TRUE; } 
if($browser == $ie8){ $alert = TRUE; } 

?> 

그리고 당신은 당신이 그것을 할 수 있습니다 어디든지 몸으로이 추가

<!-- IE6 Detect Advise Notice --> 
<?php if($alert){ echo $error; } ?> 
<!-- // end IE6 Detect Advise Notice --> 

내가이 닫 망할를 얻을 수 없습니다. 나는 그 문제가 뭔지 모른다. PHP 오류 상자를 닫으려고하는 자바 스크립트가있을 수 있습니다. 나는 c- 기반 언어를 모른다. 그래서 나는 모른다. 도움을 주신 경우

+0

네, 여기 JavaScript가 관련되어 있습니다. 함수 이름은'killIt'입니다. – ceejayoz

+2

이 약한 PHP 엉망이 아닌 조건부 주석을 사용하여 상자를 표시해야합니다. – deceze

+0

나는 이것을 연구 할 것이다. 하지만이 PHP 상자는 제대로 작동하여 닫을 수 없습니다. 그래서 그것이 더 쉬운 수정이라면, 나는 그것에 충실 할 것입니다. killIt() 함수가 작동하지 않습니다. 그것이 PHP에서 형성된 함수를 죽이려는 javascript 명령어이기 때문에 그것이 궁금한가? –

답변

1

닫기 버튼이 killIt()이라는 JavaScript 함수를 실행하려고 시도 할 때 'error' 매개 변수를 사용하고 있습니다. 페이지에 해당 기능을 포함시키지 않았거나 오류가 있음을 추측합니다.

+0

여기에 JS 함수가 있다는 것을 알고 있습니다. 하지만 내 질문은 "JS 함수가 PHP 함수를 죽일 것인가?"입니다. 이 코드의 원래 작성자는 그렇게 생각했을 것입니다 ...하지만이 PHP 코드를 죽이기 위해 javascript 함수를 어떻게 호출합니까? JS 함수에서 PHP를 래핑 할 수 있을까요? 내가 아는 한 서로 다른 언어가 서로 안에 중첩 될 수는 없다 ... –

+1

@MikeLegacy 일단 페이지가 클라이언트로 보내지면 PHP는 더 이상 손을 쥐지 않는다. 이제 클라이언트 쪽 처리입니다. PHP는 브라우저가 해석하는 HTML 문서를 만드는 것일뿐입니다. 따라서 생성 된 모든 PHP 관련 오류는 서버에만 해당되며 처리해야합니다. PHP와 JavaScript가 동시에 작동한다는 환상이있을 수 있습니다. 그러나 이는 XmlHttpRequests 때문입니다. 실제로 클라이언트에 연결되면 브라우저가 서버에 접속할 때까지 클라이언트가 처리합니다. 그들은 PHP/JavaScript 함수를 알지 못합니다. – Tim

0

그냥 killIt javascript 함수를 HTML에 추가하십시오. 서버 측에서 PHP 코드를 제거하지 않고 브라우저에서 PHP 코드를 HTML로 출력합니다. 당신은 killIt을위한 코드를 우리에게 보여주지 않았지만, PHP가 인쇄하는 DIV를 숨기거나 제거한다고 생각합니다.

관련 문제