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

document.pressed=this.value 채택완료

프로그래머7 10년 전 조회 11,730

1. item.form.skin.php(장바구니 담는 폼) 파일에서 붉은 색 글자 부분이 정의(설명) 되어있는 

웹페이지를 찾아볼수 있을까요? 검색이 안되네요

 

 <input type="submit" onclick="document.pressed=this.value;" value="장바구니" id="sit_btn_cart">

 <input type="submit" onclick="document.pressed=this.value;" value="바로구매" id="sit_btn_buy">


2. document.pressed=this.value 이게 무슨뜻입니까? 예상은 해보는데 아무래도 정확히 설명되어있는 문서를 보고싶습니다.

  

3. this.value라는 것은 정확히 어느것을 말합니까?  this라는 것은 장바구니 버튼을 말합니까?

form 을 말합니까?

 

  

답변 주시는 분에게 기분 좋은 일만 있기를 ^^

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

답변 4개

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

1. 저도 별로 안쓰던 표현인데 구글에서 검색은 되는데 뚜렷한 설명은 없네요.

http://stackoverflow.com/questions/5836693/call-a-document-pressed-action-from-the-url-bar">http://stackoverflow.com/questions/5836693/call-a-document-pressed-action-from-the-url-bar 

 

2. 사용된 형태로 봤을때. 이벤트 호출이 아니라 document 내에서 사용되는 전역변수로 사용된것 같습니다.

onclick 다음에 들어간 "=" 은 onclick 이벤트가 발생되는 시점에 실행될 코드를 기술한 것이고,

document.pressed 다음에 "=" 은 말그대로 pressed 라는 변수에 this.value 를 대입하라는 의미 인 것이죠.

 

3. this 라는 것은 이벤트가 발생된 현재의 객체중 가장 작은 단위 (window => document => element ...)를 적용하게 되므로 현재 this 가 사용된 객체는 input 객체입니다. 해당 input 객체에서 value 값에는 "장바구니"가 정의되어 있습니다. 따라서 해당 submit 이 클릭되었을때(onclick) document.pressed 라는 전역 변수에 "장바구니" 라는 값을 대입해라 라는 의미 입니다.

해당 페이지 소스 아래쪽에 쭉 내려가 보시면 스트립트 함수부분에 해당 폼이 submit 되었을때 document.pressed 값에 따라서 분기를 타는 부분이 있습니다.

 

</p><p>    if (document.pressed == "장바구니") {</p><p>        f.sw_direct.value = 0;</p><p>    } else { // 바로구매</p><p>        f.sw_direct.value = 1;</p><p>    }</p><div>

즉, 해당 부분은 꼭 document.pressed 를 쓰지 않더라도, 사전에 임의의 전역변수를 정의하고 해당 변수에 값을 할당해서 사용해도 되는데 좀더 명시적으로 사용하고 변수의 적용범위에 따른 발생될수 있는 문제를 해결하기 위해 해당 변수를 사용할뿐인 것입니다.

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

답변에 대한 댓글 3개

프로그래머7
10년 전
정말 감사합니다.

말씀처럼 변수로 보이네요

그런데
document 내에서 사용되는 전역변수로 사용되었다면 선언한 곳이라도 혹시 있어야 하지 않은가요? ^^
프로그래머7
10년 전
다시 봐도 물샐틈 없는 답변이네요
벤지님도 이렇게 글 쓰시던데.. 띠아블님도 ㅎㄷㄷ
프로그래머7
10년 전
지금보니까 아주 정확히 분석하셨네요 ㅎㄷㄷ

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

10년 전

선언에 대해서 코멘트를 남기셔서 자바스크립트 전역변수에 대해서 검색해 봤는데요.

 

http://www.w3schools.com/js/js_reserved.asp">http://www.w3schools.com/js/js_reserved.asp 

pressed 단어가 예약어 목록에 없는 것 보면 자체적으로 생성된 변수는 아닌것 같습니다.

 

http://codingnuri.com/javascript-tutorial/javascript-variable-declaration-and-scope.html">http://codingnuri.com/javascript-tutorial/javascript-variable-declaration-and-scope.html 

설명에 보시면 자바스크립트에서 var 없이 선언하는 변수는 자동으로 전역변수가 된다고 설명이 되어있습니다.

따라서 var 로 선언하지 않고 사용시점에 직접 값을 할당한 document.pressed 는 전역변수로 생성되어 사용된 것으로 보여집니다.

 

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

답변에 대한 댓글 2개

띠아블
10년 전
자바스크립트의 세계는 참 넓고도 깊네요...ㅋㅋㅋ
프로그래머7
10년 전
헉 덕분에 새로운것을 알았습니다 ^^ 감사합니다^^

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

P
10년 전

관련 소스 입니다(답변 주시는 분 보시라고 - 참고로 올려드립니다)


<form name="fitem" method="post" action="<?php echo $action_url; ?>" onsubmit="return fitem_submit(this);">

<input type="hidden" name="it_id[]" value="<?php echo $it_id; ?>">

<input type="hidden" name="sw_direct">

<input type="hidden" name="url">


<div id="sit_ov_wrap">

<!-- 상품이미지 미리보기 시작 { -->

<div id="sit_pvi">

<div id="sit_pvi_big">

<?php

$big_img_count = 0;

$thumbnails = array();

for($i=1; $i<=10; $i++) {

if(!$it['it_img'.$i])

continue;


$img = get_it_thumbnail($it['it_img'.$i], $default['de_mimg_width'], $default['de_mimg_height']);


if($img) {

// 썸네일

$thumb = get_it_thumbnail($it['it_img'.$i], 60, 60);

$thumbnails[] = $thumb;

$big_img_count++;


echo '<a href="'.G5_SHOP_URL.'/largeimage.php?it_id='.$it['it_id'].'&amp;no='.$i.'" target="_blank" class="popup_item_image">'.$img.'</a>';

}

}


if($big_img_count == 0) {

echo '<img src="'.G5_SHOP_URL.'/img/no_image.gif" alt="">';

}

?>

</div>

<?php

// 썸네일

$thumb1 = true;

$thumb_count = 0;

$total_count = count($thumbnails);

if($total_count > 0) {

echo '<ul id="sit_pvi_thumb">';

foreach($thumbnails as $val) {

$thumb_count++;

$sit_pvi_last ='';

if ($thumb_count % 5 == 0) $sit_pvi_last = 'class="li_last"';

echo '<li '.$sit_pvi_last.'>';

echo '<a href="'.G5_SHOP_URL.'/largeimage.php?it_id='.$it['it_id'].'&amp;no='.$thumb_count.'" target="_blank" class="popup_item_image img_thumb">'.$val.'<span class="sound_only"> '.$thumb_count.'번째 이미지 새창</span></a>';

echo '</li>';

}

echo '</ul>';

}

?>

</div>

<!-- } 상품이미지 미리보기 끝 -->


<!-- 상품 요약정보 및 구매 시작 { -->

<section id="sit_ov">

<h2 id="sit_title"><?php echo stripslashes($it['it_name']); ?> <span class="sound_only">요약정보 및 구매</span></h2>

<p id="sit_desc"><?php echo $it['it_basic']; ?></p>


<?php if($is_orderable) { ?>

<p id="sit_opt_info">

상품 선택옵션 <?php echo $option_count; ?> , 추가옵션 <?php echo $supply_count; ?>

</p>

<?php } ?>

<div id="sit_star_sns">

<?php if ($star_score) { ?>

고객평점 <span><?php echo $star_score?></span>

<img src="<?php echo G5_SHOP_URL; ?>/img/s_star<?php echo $star_score?>.png" alt="" class="sit_star">

<?php } ?>

<?php echo $sns_share_links; ?>

</div>

<table class="sit_ov_tbl">

<colgroup>

<col class="grid_3">

<col>

</colgroup>

<tbody>

<?php if ($it['it_maker']) { ?>

<tr>

<th scope="row">제조사</th>

<td><?php echo $it['it_maker']; ?></td>

</tr>

<?php } ?>


<?php if ($it['it_origin']) { ?>

<tr>

<th scope="row">원산지</th>

<td><?php echo $it['it_origin']; ?></td>

</tr>

<?php } ?>


<?php if ($it['it_brand']) { ?>

<tr>

<th scope="row">브랜드</th>

<td><?php echo $it[<

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

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

d
10년 전

명확히 설명 가능한 this.value 는 현재 input의 value 값입니다.

 <input type="submit" onclick="document.pressed=this.value;" value="장바구니" id="sit_btn_cart">

위의 것의 this.value 는 장바구니겠죠..

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

답변에 대한 댓글 1개

프로그래머7
10년 전
감사합니다.
제가 위에 관련 소스를 올려드렸는데요.
그럼 현재 input의 value라는 것은 어떤것인지요?

아래에서 onclick다음에 "="이 들어갔는데... 또 document.pressed 다음에 "="이 또 들어가는게 이해가 안가는데요... 관련 설명을 javascript 매뉴얼에서 어느 부분을 찾아봐야 할까요?
onclick="document.pressed=this.value;"

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

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

로그인

© 2025 SIRSOFT. All rights reserved.