코딩 공부 중인데.... 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>
아니 이게 답이라고요.
현재 상태에서 키워드 넣고. 클릭하면 창은 두개 열리는데 키워드가 없는 것으로 나오죠
다시 클릭하면 새창에 검색어 추가되어 열려요...
단지 코드가 잘못되어서 그럴뿐.
앞전 소스는 오류가 있고요.
아래 소스로 해보세요.
<?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>
이 코드로 교체해봐도 창이 하나만 열려용. ^^;<---------------
daum이 없어지고 naver가 열리는 상태인가요?
그렇다면 각각의 팝업창에 이름을 주어보세요
keyword, 'daum'
keyword,'naver'
답변을 작성하시기 전에 로그인 해주세요.