소스 설명 좀 부탁드리겠습니다.
본문
iframe 이용한 새로고침을 하게 되면서 이것저것 구글링도 하고 고수분들에게 여쭤보기도 하여서 구현을 하였지만 막상 소스 부분에 좀 더 자세히 알고 싶어 이렇게 고수분들에게 양해를 구합니다.
<?php
echo "var loc1 = top.location.href; top.location = (/ref=/.test(loc1))? loc1.replace(/(ref=)([\w\d\%\_\.\&\=\-\/]+)/, '$1".$lnk1."') : (/\?/.test(loc1))? loc1+'&ref=".$lnk1."' : loc1+'?ref=".$lnk1."'";
?>
답변 2
삼항연산을 중첩해서 사용해서 알아보기 어렵네요.
echo "
//loc1변수에 최상위 윈도우(프레임)의 현재 url 할당
var loc1 = top.location.href;
//최상위 프레임 윈도우의 location 변경
top.location =
//url이 ref=을 포함하면 #1을 실행하고 포함하지 않으면 #2를 실행
(/ref=/.test(loc1))
//#1 loc1의 ref 쿼리스트링 값을 치환함
? loc1.replace(/(ref=)([\w\d\%\_\.\&\=\-\/]+)/, '$1".$lnk1."')
//#2 loc1이 ?로 시작할 경우 #2-1를 실행하고 시작하지 않을 경우 #2-2를 실행
: (/\?/.test(loc1))
//#2-1 loc1의 기존 쿼리스트링에 ref 쿼리스트링을 추가
? loc1+'&ref=".$lnk1."'
//#2-2 loc1에 ref 쿼리스트링 생성
: loc1+'?ref=".$lnk1." '";
저부분은 php 보다
echo 된 결과를 보시는게 편합니다.
echo 된 결과를 보시면 자바스크립트 정규표현식을 사용하는게 보이실겁니다.