테스트 사이트 - 개발 중인 베타 버전입니다

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

sinbi 6년 전 조회 4,165

</p>

<p><?php 

$keyword = $_GET['keyword'];

?></p>

<p><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></p>

<p>

<script>

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

function potal_search(keyword) {

  window.open("<a href="https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&q="" target="_blank" rel="noopener noreferrer">https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&q="</a> + keyword);

  window.open("<a href="https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query="" target="_blank" rel="noopener noreferrer">https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query="</a> + keyword);  

}

</script></p>

<p>

 

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

 

댓글을 작성하려면 로그인이 필요합니다.

답변 6개

채택된 답변
+20 포인트
6년 전

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

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

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

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

 

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

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

 

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

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
6년 전
평정심 님이 모를 정도면 굉장히 어려운 문제였군요. ㅎ
질문 안 했으면 블랙홀에서 못 빠져나올 뻔 했네요.ㅋ

댓글을 작성하려면 로그인이 필요합니다.

6년 전

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

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

keyword, 'daum'

keyword,'naver'

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

s
sinbi
6년 전
아니요, 앞에 것만 창이 열리고 뒤에 것은 전혀 반응이 없는 상태입니다.
균이
6년 전
팝업창 허용 문제 같군요
둘다 허용 되어있으면 두개 열립니다
s
sinbi
6년 전
균이 님 말씀대로 허용하니까, 둘 다 잘 열리네요.
chrome://settings/content/popups

감사합니다. ( ^ _________ ^ ) ===b

댓글을 작성하려면 로그인이 필요합니다.

6년 전

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

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

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

 

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

아래 소스로 해보세요.

 

</p>

<p><?php

$keyword = $_GET['keyword'];

?></p>

<p><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></p>

<p><script>

//var keyword = "<?php echo $keyword?>"; // 필요없음

function potal_search( /*keyword  이거 필요없음*/ ) {

  var keyword = document.getElementById('keywd').value; // 키워드값 구하기

  window.open("<a href="https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&q="" target="_blank" rel="noopener noreferrer">https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&q="</a> + keyword);

  window.open("<a href="https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query="" target="_blank" rel="noopener noreferrer">https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query="</a> + keyword);

}

</script></p>

<p> </p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 6개

s
sinbi
6년 전
이 코드로 교체해봐도 창이 하나만 열려용. ^^;
https://test.homzzang.com/
팻시
6년 전
창 두개 다 열려요 하나는 가려져 있을꺼에요.
--------------
추가수정
네이버는 검색 url 이 잘못된것 같아요. 키워드가 안드가네요.
뭔가 쿼리가 틀렸을 겁니다.
끝...
건승을...
s
sinbi
6년 전
창 다 닫고 해당 창만 열어서 테스트해봐도.안돼용...^^;;
s
sinbi
6년 전
해당 페이지도 다음만 열려용.
팻시
6년 전
음.... 그건 모르겠네요.... 전 IE, 크롬, 파이어폭스, 오페라, 에픽브라우저 5개로 해봤고 다 돼요.
코드문제가 아닌 다른 문제가 있으신것 같네요.

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

저아래 균이님이 팝업창 허용문제에 관해서 언급해놨네요.
참고하세요.
s
sinbi
6년 전
균이 님 말씀대로 팝업 차단 해제하니까 크롬은 되네요.
그런데, 익스11은 여전히 안 되더라구요. 엣지는 되구...

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

댓글을 작성하려면 로그인이 필요합니다.

6년 전

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

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

 

</p>

<p><?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></p>

<p><script>

//var keyword = "<?php echo $keyword?>"; // 필요없음

function potal_search(keyword) {</p>

<p>  var keyword = getElementById('keywd').value; // 키워드값 구하기

  window.open("<a href="https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&q="" target="_blank" rel="noopener noreferrer">https://search.daum.net/search?w=tot&DA=YZR&t__nil_searchbox=btn&sug=&sugo=&q="</a> + keyword);

  window.open("<a href="https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query="" target="_blank" rel="noopener noreferrer">https://search.naver.com/search.naver?sm=top_hty&fbm=1&ie=utf8&query="</a> + keyword);  

}

</script></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

팻시
6년 전
저 potal_search() 함수의 실행이 첫번째에는 빈칸이 들어가게 되어 있어요.
지금 상태로도 두번째로 검색을 클릭하면 결과 나와요.
다만 현재 키워드가 아니라 지난번 입력 키워드가 나와서 그렇죠
s
sinbi
6년 전
현재, 팻시 님 코드로 교체해서 테스트해보는 중인데, 작동이 안 돼용. ^^;
https://test.homzzang.com

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


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

댓글을 작성하려면 로그인이 필요합니다.

Rido
6년 전

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

 

function potal_search() {

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

 

이게 맞을거 같은데요

뭐 참고로 

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
6년 전
이렇게 해봐도 안 되더라구요. ㅎ

댓글을 작성하려면 로그인이 필요합니다.

6년 전

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

문제가 뭔지....

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
6년 전
키워드를 입력 받은 후,
그 키워드를 네이버와 다음 검색 쿼리에 넣어 새탭으로 열려고 하는데,
잘 안 되네요.
https://test.homzzang.com

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인