document.pressed=this.value
본문
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
1. 저도 별로 안쓰던 표현인데 구글에서 검색은 되는데 뚜렷한 설명은 없네요.
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 값에 따라서 분기를 타는 부분이 있습니다.
if (document.pressed == "장바구니") {
f.sw_direct.value = 0;
} else { // 바로구매
f.sw_direct.value = 1;
}
선언에 대해서 코멘트를 남기셔서 자바스크립트 전역변수에 대해서 검색해 봤는데요.
http://www.w3schools.com/js/js_reserved.asp
pressed 단어가 예약어 목록에 없는 것 보면 자체적으로 생성된 변수는 아닌것 같습니다.
http://codingnuri.com/javascript-tutorial/javascript-variable-declaration-and-scope.html
설명에 보시면 자바스크립트에서 var 없이 선언하는 변수는 자동으로 전역변수가 된다고 설명이 되어있습니다.
따라서 var 로 선언하지 않고 사용시점에 직접 값을 할당한 document.pressed 는 전역변수로 생성되어 사용된 것으로 보여집니다.
명확히 설명 가능한 this.value 는 현재 input의 value 값입니다.
<input type="submit" onclick="document.pressed=this.value;" value="장바구니" id="sit_btn_cart">
위의 것의 this.value 는 장바구니겠죠..
관련 소스 입니다(답변 주시는 분 보시라고 - 참고로 올려드립니다)
<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'].'&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'].'&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[<