묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
자바스크립트 질문...
2004.04.30 03:51
아래소스는 이미지 게시판 최근글 출력하는 부분임니다...
이 부분에서 문제점이 하나 있는데..
게시판 제목에 " " 를 넣을때 오류가 발생한다는 것입니다...
자바스크립트에서는 " " 이 처리를 어케 해야 하는지요....
<script language="javascript">
//Math.random()
var scrollerheight=610; // 스크롤러의 세로
var html,total_area=0,wait_flag=true;
var bMouseOver = 1;
var scrollspeed = 1; // Scrolling 속도
var waitingtime = 3000; // 멈추는 시간
var s_tmp = 0, s_amount = 122;
var scroll_content=new Array();
var startPanel=0, n_panel=0, i=0;
function startscroll()
{ // 스크롤 시작
i=0;
for (i in scroll_content)
n_panel++;
n_panel = n_panel -1 ;
startPanel = Math.round(Math.random()*n_panel);
if(startPanel == 0)
{
i=0;
for (i in scroll_content)
insert_area(total_area, total_area++);
}
else if(startPanel == n_panel)
{
insert_area(startPanel, total_area);
total_area++;
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area);
total_area++;
}
}
else if((startPanel > 0) || (startPanel < n_panel))
{
insert_area(startPanel, total_area);
total_area++;
for (i=startPanel+1; i<=n_panel; i++)
{
insert_area(i, total_area);
total_area++;
}
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area);
total_area++;
}
}
window.setTimeout("scrolling()",waitingtime);
}
function scrolling(){ // 실제로 스크롤 하는 부분
if (bMouseOver && wait_flag)
{
for (i=0;i<total_area;i++){
tmp = document.getElementById('scroll_area'+i).style;
tmp.top = parseInt(tmp.top)-scrollspeed;
if (parseInt(tmp.top) <= -scrollerheight){
tmp.top = scrollerheight*(total_area-1);
}
if (s_tmp++ > (s_amount-1)*scroll_content.length){
wait_flag=false;
window.setTimeout("wait_flag=true;s_tmp=0;",waitingtime);
}
}
}
window.setTimeout("scrolling()",1);
}
function insert_area(idx, n){
html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight*n)+'px" id="scroll_area'+n+'">n';
html+=scroll_content[idx]+'n';
html+='</div>n';
document.write(html);
}
// 스크롤 내용
<?
$id = "good01"; //불러낼 게시판 이름
$result = @mysql_query("select * from zetyx_board_$id where is_secret!='1' order by no desc limit 10"); // 최근에 게시된 게시물 중에서 10개만 뽑아와서 출력함
$result_category = @mysql_query("select * from zetyx_board_category_$id");
$i = 0;$j = 0;
while($data=@mysql_fetch_array($result)) {
$subject = cut_str(stripslashes($data[subject]),10)."</font></b>";
if($i==0) {
echo "scroll_content[".$j."]="";
}
echo "<table cellpadding=0 cellspacing=0><tr><td height=102><a href='./bbs/view.php?id=$id&no=$data[no]'><img src=$_zb_path".$data[file_name2]." width=100 height=100 border=1 style='border-color:#999999'></td></tr><tr><td height=20 align=center><a href='./bbs/view.php?id=$id&no=$data[no]'>".$subject."</a></td></tr></table>";
$i++;
if($i==5) { //불러낼 최근게시제목 수
echo "";nt";
$i = 0; $j++;
}
}
?>
</script>
</p><div style="width: 102; height: 122px; overflow:hidden;" onMouseover="bMouseOver=0" onMouseout="bMouseOver=1" id="scroll_image">
<script>startscroll();</script>
</div>
이 부분에서 문제점이 하나 있는데..
게시판 제목에 " " 를 넣을때 오류가 발생한다는 것입니다...
자바스크립트에서는 " " 이 처리를 어케 해야 하는지요....
<script language="javascript">
//Math.random()
var scrollerheight=610; // 스크롤러의 세로
var html,total_area=0,wait_flag=true;
var bMouseOver = 1;
var scrollspeed = 1; // Scrolling 속도
var waitingtime = 3000; // 멈추는 시간
var s_tmp = 0, s_amount = 122;
var scroll_content=new Array();
var startPanel=0, n_panel=0, i=0;
function startscroll()
{ // 스크롤 시작
i=0;
for (i in scroll_content)
n_panel++;
n_panel = n_panel -1 ;
startPanel = Math.round(Math.random()*n_panel);
if(startPanel == 0)
{
i=0;
for (i in scroll_content)
insert_area(total_area, total_area++);
}
else if(startPanel == n_panel)
{
insert_area(startPanel, total_area);
total_area++;
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area);
total_area++;
}
}
else if((startPanel > 0) || (startPanel < n_panel))
{
insert_area(startPanel, total_area);
total_area++;
for (i=startPanel+1; i<=n_panel; i++)
{
insert_area(i, total_area);
total_area++;
}
for (i=0; i<startPanel; i++)
{
insert_area(i, total_area);
total_area++;
}
}
window.setTimeout("scrolling()",waitingtime);
}
function scrolling(){ // 실제로 스크롤 하는 부분
if (bMouseOver && wait_flag)
{
for (i=0;i<total_area;i++){
tmp = document.getElementById('scroll_area'+i).style;
tmp.top = parseInt(tmp.top)-scrollspeed;
if (parseInt(tmp.top) <= -scrollerheight){
tmp.top = scrollerheight*(total_area-1);
}
if (s_tmp++ > (s_amount-1)*scroll_content.length){
wait_flag=false;
window.setTimeout("wait_flag=true;s_tmp=0;",waitingtime);
}
}
}
window.setTimeout("scrolling()",1);
}
function insert_area(idx, n){
html='<div style="left: 0px; width: 100%; position: absolute; top: '+(scrollerheight*n)+'px" id="scroll_area'+n+'">n';
html+=scroll_content[idx]+'n';
html+='</div>n';
document.write(html);
}
// 스크롤 내용
<?
$id = "good01"; //불러낼 게시판 이름
$result = @mysql_query("select * from zetyx_board_$id where is_secret!='1' order by no desc limit 10"); // 최근에 게시된 게시물 중에서 10개만 뽑아와서 출력함
$result_category = @mysql_query("select * from zetyx_board_category_$id");
$i = 0;$j = 0;
while($data=@mysql_fetch_array($result)) {
$subject = cut_str(stripslashes($data[subject]),10)."</font></b>";
if($i==0) {
echo "scroll_content[".$j."]="";
}
echo "<table cellpadding=0 cellspacing=0><tr><td height=102><a href='./bbs/view.php?id=$id&no=$data[no]'><img src=$_zb_path".$data[file_name2]." width=100 height=100 border=1 style='border-color:#999999'></td></tr><tr><td height=20 align=center><a href='./bbs/view.php?id=$id&no=$data[no]'>".$subject."</a></td></tr></table>";
$i++;
if($i==5) { //불러낼 최근게시제목 수
echo "";nt";
$i = 0; $j++;
}
}
?>
</script>
</p><div style="width: 102; height: 122px; overflow:hidden;" onMouseover="bMouseOver=0" onMouseout="bMouseOver=1" id="scroll_image">
<script>startscroll();</script>
</div>
댓글 4
-
beMax
2004.04.30 09:31
역슬러시 n으로 될거 같습니다.. -
최재갑
2004.04.30 20:06
그러면 스크롤 제목에 역슬러시 n 이 출력되지 않나여?? -
beMax
2004.05.01 01:14
헉 제가 뭐라고 한거죠..-_-;;
역슬러시" 따옴표를 말한다는게 그만..-_-;
\" 이거죠.. 죄송합니다. 혼란만 드렸네..그만..-_-;;;;;;;;;;;;;;;;;;;;;;;
\" <== 역슬러쉬를 넣으면 그기능을 무력화 한다고 해야 할까요-_-?
저걸 붙이면 따옴표의 기능은 없어지고 단지 문자열로만 되구요 출력될땐 역슬러시는 안나옵니다. -
최재갑
2004.05.01 02:53
감사함니다...
$subject = cut_str(stripslashes($data[subject]),10)."</font></b>";
여기서 \제거 하는걸 없앴더니 괜찬네요^^