윈도우7/8.1 IE11에서 해결되지 않는 문제 2가지가 더 있습니다. 블록

이건 예전부터 안된다는 걸 알고 있었는데 해당 소스는 "오픈소스 게시판 수정증보판" 의 login_check2.php 71행이고 아래 소스에서는 10행인데요 IE11에선 history.back(-2) 를 구현할 방법이 없다는 점입니다. 이게 안돼서 회사 홈페이지에서도 해당 페이지 이름을 location.href 로 직접 지정하는 방법으로 2단계 이전의 페이지로 돌아가는 소스를 구현했는데 이렇게 구현을 하면 상황에 따라 다른 2단계 이전의 페이지로 돌아가지 못하기 때문에 해당 페이지로 돌아가기 위해선 2단계 이전의 페이지를 파일명으로 일일이 분기 처리해줘야 한다는 점입니다. 이 문제를 history.back(-2) 와 동일한 개념으로 해결할 수 있는 방법을 알고 계신 분이 계신가요?

history.back(-1) 과 같이 레퍼러 페이지로 이동하는 건 location.href=document.referrer 나 history.back() 과 같은 명령을 사용하면 되는데 이건 방법을 모르겠더라구요.

[bbs/login_check2.php]
1
2
3
4
5
6
7
8
9
10
11
<?php
    // 로그인 후 페이지 이동
    if($mypos=strrpos($_zb_url,"/bbs/")) // 마지막 슬래쉬 위치 찾아 제거
        $s_url=substr($_zb_url,0,$mypos).urldecode($s_url);
    if(!$s_url&;amp;&$id$s_url=$_zb_url."zboard.php?id=$id";
    if($s_url) movepage($s_url);
    elseif($id) movepage($_zb_url."zboard.php?id=$id&page=$page&page_num=$page_num&select_arrange=$select_arrange&desc=$des&sn=$sn&ss=$ss&sc=$sc&sm=$sm&keyword=$keyword&category=$category&no=$no");
    elseif($group[join_return_url]) movepage($group[join_return_url]);
    elseif($referer) movepage($referer);
    else echo "<script>history.go(-2);</script>";
?>


또하나는 bbs/admin/admin_sendmail.php 를 보시면 38행 쯤, 아래 소스에서는 18행인데요 form action이 admin_sendmail_ok.php 로 지정돼 있고 그걸 _blank 페이지에서 열게 돼 있는데 이게 관리자 모드를 보시면 아시겠지만 회원리스트에서 회원을 체크박스로 선택한 다음 "메일링 리스트 발송" 을 클릭하면 메일 보내기 창이 열리고 거기서 메일을 작성한 후 "보내기" 를 클릭하게 되면 메일을 처리하는 창이 뜨면서 발송결과를 알려주게 돼 있는데 윈도우8.1 IE11에선 이 마지막 단계의 창(admin_sendmail_ok.php)이 제대로 열리지 않는다는 사실입니다. IE11에서도 다른 브라우저와 마찬가지로 마지막 창이 열리면서 메일이 보내지도록 하는 소스를 찾고 있는데 이게 잘 안됩니다.

왜 MS는 상기 2가지 코드에서 이렇게 IE11의 호환성을 엉망으로 만들어 놨는지 정말 이해할 수가 없습니다. 이 2가지 코드가 제대로 동작하지 않음으로써 야기되는 문제가 제로보드4(제로보드4 뿐만 아니라 기존에 개발된 수많은 홈페이지 소스)에서 얼마나 많은데 개발자들이 이 문제 때문에 고생을 하고 있다는 생각을 하니 저도 많이 화가 납니다.

이 2가지 이슈를 완벽하게 해결할 수 있는 방법을 알고 계신 분이 있다면 방법을 공유했으면 합니다. 요새 이 문제 때문에 "오픈소스 게시판 수정증보판" 배포 작업이 자꾸 지연되네요. ㅡ_ㅡ

이 2가지 이슈는 구글 영문 페이지에서도 좀처럼 나와 있지 않더군요. 그래서 시간이 자꾸 지체되고 있습니다.

[bbs/admin/admin_sendmail.php]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<script>
 function check_submit()
 {
  if(!write.from.value) {alert("보내는 이의 메일주소를 입력하세요");write.from.focus();return false;}
  if(!write.name.value) {alert("보내는 이의 이름을 입력하세요");write.name.focus();return false;}
  if(!write.subject.value) {alert("메일의 제목을 입력하세요");write.subject.focus();return false;}
  if(!write.comment.value) {alert("내용을 입력하세요");write.comment.focus();return false;}
  if(confirm("<?=$total_member?>명의 회원에게 메일을 보내겠습니까?\n\n메일양식을 제대로 선택하였는지를 확인하세요"))
  {
    history.back();
    return true;
  }
  else { return false; }
 }
</script>
 
<table border=0 cellpadding=4 cellspacing=1 width=100% bgcolor=e0e0e0>
<form method=post action=admin_sendmail_ok.php target=_blank name=write onsubmit="return check_submit();">
<input type=hidden name=group_no value="<?=$group_no?>">
<input type=hidden name=cart value="<?=$cart?>">
<input type=hidden name=s_que value="<?=$s_que?>">
<input type=hidden name=exec2 value="">
<tr align=center bgcolor=a0a0a0 height=30>
  <td colspan=2><b><?echo number_format($total_member);?> 명의 멤버에게 메일링 보내기</td>
</tr>


덧글

  • 지나가다 2015/11/06 20:17 # 삭제 답글

    쓰는 사람도 없을텐데 뭐하러 배포하셔? 그냥 본인이나 잘 쓰셔~
    제로보드4 쓰는데 아직 있나? 관리 제대로 안하고 방치하는곳이라면 아직 있겠지.
    열심히 쓰셔~
  • 희망의빛™ 2016/01/31 11:14 # 답글

    이 문제의 근본적인 해결법을 찾았습니다. 다른 코드를 수정했고 윈도우즈8.1과 윈도우즈7에서 완벽하게 동작시키는 방법이 다음 링크에 있습니다. 참고바랍니다.

    http://blrun.egloos.com/11192061
댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


웹로그 검색