코딩 공부 중인데.... JS 새창열기에서 헤메고 있어용. ㅜㅜ

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
코딩 공부 중인데.... JS 새창열기에서 헤메고 있어용. ㅜㅜ

QA

코딩 공부 중인데.... JS 새창열기에서 헤메고 있어용. ㅜㅜ

본문


<?php 
$keyword = $_GET['keyword'];
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">
    URL : <input type="text" name="keyword" value='<?php echo $keyword ?>'>
    <input type="submit" value="전송" onclick="potal_search()">
</form>

<script>
var keyword = "<?php echo $keyword?>";
function potal_search(keyword) {
  window.open("https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&q=" + keyword);
  window.open("https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=" + keyword);  
}
</script>

 

현재창은 그대로 둔 상태에서, 다음과 네이버를 동시에 각각 새탭으로 열리게 하려면?

 

이 질문에 댓글 쓰기 :

답변 6

제어권에 관한 문제인데요,

부모창에서 클릭하면 먼저것이 새창으로 뜨게 될거고,

다음 명령이 실행되기 전에 새창으로 제어권이 넘어 갑니다.

비유를 들자면 focus가 새창으로 이동해 버린다는거죠.

 

그래서 그 다음 단계의 명령이 실행되지 못해 

동시에 두개를 열 수 없게 되는 겁니다.

 

제어권을 통제해 본 적은 있는데 이 경우에는 모르겠네요.

 

저 코드가 그렇게 되는 것인데요.

문제가 뭔지....

keyword 라는 변수를 get으로 받은거라면 해당 함수의 인자로 받아야 되는게 아니고

 

function potal_search() {

var keyword = "<?php echo $keyword?>";

 

이게 맞을거 같은데요

뭐 참고로 

 

var keyword = "<?php echo $_GET['keyword']?>";
형태를 추천드립니다.

두번째 클릭에서는 됩니다.

함수의 순서가 잘못되었어요.

 


<?php
$keyword = $_GET['keyword'];
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">
    URL : <input type="text" name="keyword" value='<?php echo $keyword ?>'   ID='keywd'><<추가 ID
    <input type="submit" value="전송" onclick="potal_search()">
</form>
<script>
//var keyword = "<?php echo $keyword?>"; // 필요없음
function potal_search(keyword) {
  var keyword = getElementById('keywd').value; // 키워드값 구하기
  window.open("https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&q=" + keyword);
  window.open("https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=" + keyword);  
}
</script>

저 potal_search() 함수의 실행이 첫번째에는 빈칸이 들어가게 되어 있어요.
지금 상태로도 두번째로 검색을 클릭하면 결과 나와요.
다만 현재 키워드가 아니라 지난번 입력 키워드가 나와서 그렇죠

현재, 팻시 님 코드로 교체해서 테스트해보는 중인데, 작동이 안 돼용. ^^;
https://test.homzzang.com

아무래도, 평정심 님 말씀처럼 제어권의 문제인 것 같아용.


ps.
이미 채택해버린 질문에도 답변해주시는 모습 너무 멋져용.
( ^ ___________ ^ ) ====b

아니 이게 답이라고요.
현재 상태에서 키워드 넣고. 클릭하면 창은 두개 열리는데 키워드가 없는 것으로 나오죠

다시 클릭하면 새창에 검색어 추가되어 열려요...

단지 코드가 잘못되어서 그럴뿐.

 

앞전 소스는 오류가 있고요.

아래 소스로 해보세요.

 


<?php
$keyword = $_GET['keyword'];
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">
    URL : <input type="text" name="keyword" value='<?php echo $keyword ?>'   ID='keywd'><<추가 ID
    <input type="button" value="전송" onclick="potal_search()"> input type="button" 으로 변경
</form>
<script>
//var keyword = "<?php echo $keyword?>"; // 필요없음
function potal_search( /*keyword  이거 필요없음*/ ) {
  var keyword = document.getElementById('keywd').value; // 키워드값 구하기
  window.open("https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&q=" + keyword);
  window.open("https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query=" + keyword);
}
</script>
 

창 두개 다 열려요 하나는 가려져 있을꺼에요.
--------------
추가수정
네이버는 검색 url 이 잘못된것 같아요. 키워드가 안드가네요.
뭔가 쿼리가 틀렸을 겁니다.
끝...
건승을...

음.... 그건 모르겠네요.... 전 IE, 크롬, 파이어폭스, 오페라, 에픽브라우저 5개로 해봤고 다 돼요.
코드문제가 아닌 다른 문제가 있으신것 같네요.

혹시 네이버는 창은 열리는데 키워드가 안들어 가는 것 아닌가요?
만약 그거라면
header('Content-Type: text/html; charset=UTF-8'); 이거 추가해줘보세요.

저아래 균이님이 팝업창 허용문제에 관해서 언급해놨네요.
참고하세요.

균이 님 말씀대로 팝업 차단 해제하니까 크롬은 되네요.
그런데, 익스11은 여전히 안 되더라구요. 엣지는 되구...

저 때문에 팻시 님 욕 많이 보셨네요. 수고 많으셨습니다.
( ^ ____________ ^ ) ===b

이 코드로 교체해봐도 창이 하나만 열려용. ^^;<---------------
daum이 없어지고 naver가 열리는 상태인가요?

그렇다면 각각의 팝업창에 이름을 주어보세요

keyword, 'daum'

keyword,'naver'

답변을 작성하시기 전에 로그인 해주세요.
전체 888
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT