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

코딩 공부 중인데.... 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>
 

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

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

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

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

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

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

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

keyword, 'daum'

keyword,'naver'

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

회원로그인

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