Закладки

Здесь задаём вопросы и получаем ответы по системе uCoz!
Правила форума
1. Темы с названиями Помогите, Как сделать, Хелп, Не могу найти и так далее будут перенесении в мусорку без предупреждения!
2. Любой транс-лит будет удален, так что подумайте стоит ли писать транс-литом.
3. Темы не по тематике этого раздела будут также перенесены в мусорку. (Например по DLE, phpBB, php скриптам и так далее...)
4. Не забываем про Общие правила форума!
Ответить
Noker
Сообщения: 62
Зарегистрирован: 16 мар 2009, 07:00

Закладки

Сообщение Noker »

Всем привет, в общем лазил я по форумам и давным давно нашёл скрипт закладок, всё бы хорошо но мне бы хотелось его доработатать и сделать так чтобы при нажатии на кнопку ссылка в закладки добавлялась без обновления страницы...

Сам скрипт

Код: Выделить всё

// ** bookmark functions 

var sepchar   = "@";   
var BMtotal   = 10;       
var ShowCount = 0;
var expDays   = 30;       

var exp       = new Date();   
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));

function GetTotalBookmarks()
{
       var NumBookmarks = GetCookie('PT_NumBookmarks');
    var i;
    var Bookmark;
       var count = 0;
    if (NumBookmarks == null)   
    {
     NumBookmarks = 0;
    }
       
    for (i=1; i <= NumBookmarks ; i++)
    {
     Bookmark = GetCookie('PT_Bookmark'+i);
     if (Bookmark != null)
     {
      count++;
     }
    }
    if (count == 0)   
    {
        return 0;
    }
    else
       {
        return 1;
    }
}

function ListBookmarks()
{
    var NumBookmarks = GetCookie('PT_NumBookmarks');
    var i;
    var Bookmark;

    if (NumBookmarks == null)   
    {
     NumBookmarks = 0;
    }
    ShowCount = 0; SwapColour = 0;
       
    for (i=1; i <= NumBookmarks ; i++)
    {
     Bookmark = GetCookie('PT_Bookmark'+i);
     if (Bookmark != null)
     {
      PrintBookmark(Bookmark, i);
     }
    }
}

function DeleteBookmark(Count)
{
    DeleteCookie('PT_Bookmark'+Count);
    window.location = window.location;
}

function PrintBookmark (Bookmark, Count)
{

    var color = "";
    var pairs = Bookmark.split(sepchar);
    pairs[0]= unescape(pairs[0]);
    pairs[1]= unescape(pairs[1]);
    pairs[2]= unescape(pairs[2]);
    var BMtitle = pairs[0];
    var BMaddress = pairs[1];
    var BMtitleFull = pairs[2];

    ShowCount++;
    document.write("<tr><td width=90%><a class=m href='"+BMaddress+"' title='"+BMtitleFull+"'>"+BMtitle+"</a></td>");
    document.write("<td><a href='javascript:DeleteBookmark(" + Count + ")' title='Удалить'><font color=red><b>X</b></font></a></td>");
    document.write("</tr>");
}

function AddBookmark(BMtitle, BMaddress)
{

    var NumBookmarks = GetCookie('PT_NumBookmarks');
    var i;
    var ToDoItem;
    var Bookmark;
    var OldestBookmark = 0;
    var CountBookmarks = 0;
       var new_title;
       var BMtitleFull;
         
       BMtitleFull = BMtitle;
       new_title = BMtitle.substring(0,25)+'..';
       BMtitle = new_title;

    if (NumBookmarks == null) {    NumBookmarks = 0;}
       
    // check if already exists, and count bookmarks   
    for (i=1; i <= NumBookmarks ; i++)
    {
     Bookmark = GetCookie('PT_Bookmark'+i);
     if (Bookmark != null)   
     {    CountBookmarks++;     
      if (OldestBookmark == 0)
      {    OldestBookmark = i;    }   
     }
       
     if (Bookmark == BMtitle+sepchar+BMaddress+sepchar+BMtitleFull)
     {    alert("Ссылка уже существует: "+BMtitleFull);
      return;   }
    }

    // check if limit reached
    if (CountBookmarks > BMtotal)
    {    DeleteBookmark(OldestBookmark);
    }

    // now add it
    NumBookmarks++;
    SetCookie('PT_Bookmark'+NumBookmarks, BMtitle+sepchar+BMaddress+sepchar+BMtitleFull, exp);
    SetCookie('PT_NumBookmarks',NumBookmarks, exp);
    alert("Добавлена новая ссылка: "+BMtitleFull);
}

// cookie functions

function getCookieVal (offset) {     

    var endstr = document.cookie.indexOf (";", offset);     

    if (endstr == -1)       
     endstr = document.cookie.length;     
    return unescape(document.cookie.substring(offset, endstr));

}

function GetCookie (name) {     

    var arg = name + "=";     
    var alen = arg.length;     
    var clen = document.cookie.length;     
    var i = 0;     

    while (i < clen) {       
     var j = i + alen;       
     if (document.cookie.substring(i, j) == arg)         
      return getCookieVal (j);       
     i = document.cookie.indexOf(" ", i) + 1;       
     if (i == 0) break;     
    }     
    return null;
}

function SetCookie (name, value) {     

    var argv = SetCookie.arguments;     
    var argc = SetCookie.arguments.length;     
    var expires = (argc > 2) ? argv[2] : null;     
    var path = (argc > 3) ? argv[3] : null;     
    var domain = (argc > 4) ? argv[4] : null;     
    var secure = (argc > 5) ? argv[5] : false;     

    document.cookie = name + "=" + escape (value) +   
      ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +   
      ((path == null) ? "" : ("; path=" + path)) +     
      ((domain == null) ? "" : ("; domain=" + domain)) +       
      ((secure == true) ? "; secure" : "");

}

function DeleteCookie (name) {     

    var exp = new Date();     

    exp.setTime (exp.getTime() - 1);     
    var cval = GetCookie (name);     
    document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}



А это код вызова скрипта

Код: Выделить всё

<SCRIPT LANGUAGE="JavaScript"> 
var total = GetTotalBookmarks();
if (total == 0)
{
document.write("<style type='text/css'>.embed_mini_other {display: none;}</style>");
}
</SCRIPT>
<div class="embed_mini_other">
<table border="0" width="100%">
<SCRIPT LANGUAGE="JavaScript">
ListBookmarks();
</SCRIPT>


Ну собственно помогите чтобы этот скрипт работал без обновления страницы :oops: с jQuery пробовал но ничего не получилось...
Йопт...ну и что что ава и ник не совпадают!? Мне просто заново менять картинку лень.
Аватара пользователя
Draft
Сообщения: 722
Зарегистрирован: 21 апр 2008, 11:37

Re: Закладки

Сообщение Draft »

Noker, код туго сделан. Лучше заново сделать с использованием JQ, получится в 3-4 раза меньше.
Пишу скрипты для uCoz под заказ. Стучать в ICQ[/b]
Аватара пользователя
Draft
Сообщения: 722
Зарегистрирован: 21 апр 2008, 11:37

Re: Закладки

Сообщение Draft »

Пишу скрипты для uCoz под заказ. Стучать в ICQ[/b]
Ответить