Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.02.2009, 15:13
Новичок на форуме
Отправить личное сообщение для kristian Посмотреть профиль Найти все сообщения от kristian
 
Регистрация: 26.02.2009
Сообщений: 1

прямые ссылки
Добрый день!
Нашел в интернете(_http://domaintimes.net/forum/showthread.php?p=1314) такой скрипт:

var fu__dir = '/direct/';
if(fu__dir.charAt(fu__dir.length - 1) != '/')
  fu__dir += '/';

function fu__parseQuery()
{
  var k = new Array();
  var re = /[?&]([^=]+)(?:=([^&]*))?/g;
  while(m = re.exec(window.location.search))
  {
    if(m[1] && m[2])
      k[m[1]] = m[2];
    else if(m[1])
      k[m[1]] = '';
  };
  return k;
}

function fu__write()
{
  var url = '';
  var query = fu__parseQuery();
  if(query['full_url'])
  {
    url = decodeURIComponent(query['full_url']);
    if(url.search(/^http:\/\/(?:(?:[\w\.-]+\.[a-zA-Z]{2,6})|(?:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(?:\/[\w\-\.\?\,\'\/\\\+&%\$#\=~:;]*)?/i) == -1)
    {
      url = '';
    }
  }

  document.writeln('<style type="text/css">#fu__form {text-align: center;} #fu__information {margin-top: 10px; text-align: center; font-size: 125%;} #fu__copyright {background-color: #f5f5f5; border: 1px solid #d0d0d0; text-align: center; padding: 5px 10px; margin: 0 10px;} .fu__captcha {margin-top: 5px; vertical-align: middle;}</style>');
  document.writeln('<form action="' + fu__dir + 'getlink.php" method="POST" id="fu__form" onsubmit="return fu__checkurl();" target="fu__getlink">');
  document.writeln('Ссылка: &nbsp;&nbsp;<input type="text" size="48" name="fu__url" id="fu__url" value="' + url + '" /> &nbsp;&nbsp;<input type="submit" name="fu__submit" id="fu__submit" value="Получить прямую" />');
  document.writeln('</form><iframe name="fu__getlink" id="fu__getlink" width="0" height="0" frameborder="0" scrolling="no"></iframe>');
  document.writeln('<div id="fu__information"></div>');
  if(url)
  {
    var s = document.getElementById('fu__submit');
    if(s)
    {
      s.click();
    }
  }
}
fu__write();

function fu__checkurl()
{
  var url = document.getElementById('fu__url');
  if(!url)
  {
    alert('Ошибка: не найден элемент fu__url.');
    return false;
  }

  var submit = document.getElementById("fu__submit");
  if(!submit)
  {
    alert('Ошибка: не найден элемент fu__submit.');
    return;
  }

  if(!url.value)
  {
    alert('Ошибка: не указана ссылка.');
    return false;
  }

  url = url.value;
  url = url.replace(/(^\s+)|(\s+$)/, '');
  
  if(url.search(/^http:\/\/(www\.)?filefactory\.com\/file\/\w+\/?/i) != -1)
  {
  }
  else if(url.search(/^http:\/\/(www\.)?(letitbit\.net|friendlyfiles\.net|bitroad\.net)\/[^\/]+\/[^\/]+\/.+/i) != -1)
  {
  }
  else if(url.search(/^http:\/\/(www\.)?depositfiles\.com\/(\w\w\/)?files\/\w+/i) != -1)
  {
  }
  else if(url.search(/^http:\/\/(www\.)?uploading\.com\/([a-z]+\/)?files\//i) != -1)
  {
  }
  else if(url.search(/^http:\/\/(www\.)?zshare\.net\/[a-z]+\/[a-z0-9]+\/?/i) != -1)
  {
  }
  else if(url.search(/^http:\/\/(www\.)?dump\.ru\/files\//i) != -1)
  {
  }
  else if(url.search(/^http:\/\/([a-z]+\.)?youtube\.com\/watch\?v=/i) != -1)
  {
  }
  else if(url.search(/^http:\/\/(www\.)?shareonall\.com\//i) != -1)
  {
  }
  else if(url.search(/^http:\/\/rutube\.ru\/tracks\/\d+\.html\?v=[a-f0-9]+/i) != -1)
  {
  }
  else
  {
    alert('Ошибка: указана неправильная ссылка.');
    return false;
  }

  var info = document.getElementById("fu__information");
  if(!info)
  {
    alert('Ошибка: не найден элемент fu__information.');
    return false;
  }

  info.innerHTML = 'Пожалуйста, подождите';
  
  var span = document.createElement('span');
  span.setAttribute('id', 'fu__busy_indicator', false);
  span.setAttribute('style', 'font-family: "courier new", "lucida console", monospace;', false);
  info.appendChild(span);

  var ifr = document.createElement('iframe');
  ifr.setAttribute('name', 'fu__getlink', false);
  ifr.setAttribute('id', 'fu__getlink', false);
  ifr.setAttribute('width', '0', false);
  ifr.setAttribute('height', '0', false);
  ifr.setAttribute('frameborder', '0', false);
  ifr.setAttribute('scrolling', 'no', false);
  info.appendChild(ifr);


  if(submit)
  {
    setTimeout(function(){submit.disabled = true;}, 10);
    setTimeout(function(){submit.disabled = false;}, 10000);
  }
  
  fu__busy();

  return true;
}

function fu__busy()
{
  var e = document.getElementById('fu__busy_indicator');
  if(!e)
    return;

  var i = 0;
  var text = ['&nbsp;&nbsp;&nbsp;','.&nbsp;&nbsp;','..&nbsp;','...','..&nbsp;','.&nbsp;&nbsp;'];
  var setText = function()
  {
    if(!e)
      return;

    if(i >= text.length)
    {
      i = 0;
    }
    e.innerHTML = text[i];
    i++;
    setTimeout(setText, 200);
  }
  setText();
}

function fu__enableElement(id, bEnable)
{
  var e = document.getElementById(id);
  if(!e)
  {
    return;
  }
  
  e.disabled = !bEnable;
}

function fu__checkcode()
{
  var c = document.getElementById('fu__imgcode');
  if(!c)
  {
    alert('Ошибка: не найден элемент fu__imgcode.');
    return false;
  }

  if(!c.value)
  {
    alert('Ошибка: не указан код.');
    return false;
  }

  return true;
}

function fu__wait(time, id)
{
  var e = document.getElementById(id);
  if(e)
  {
    var v = e.value;
    var decreaseCounter = function()
    {
      if(time <= 0)
      {
        e.value = v;
        e.disabled = false;
        return;
      }
      e.value = v + ' (' + time + ')';
      time--;
      setTimeout(decreaseCounter, 1000);
    };
    decreaseCounter();
  }
}


Но он почему то не работает.
Помогите решить проблему.
Ответить с цитированием
  #2 (permalink)  
Старый 04.03.2009, 11:29
Профессор
Отправить личное сообщение для demoniqus Посмотреть профиль Найти все сообщения от demoniqus
 
Регистрация: 28.05.2008
Сообщений: 181

Проверь для начала, что у тебя присутствуют все объекты, которые он ищет по идентификатору ID. Либо удали из скрипта. Я также переделывал чужой скрипт под себя: там запрашивалось объектов больше, чем мне было нужно и поэтому происходила ошибка, которая останавливала выполнение скрипта. Во-вторых проверь, чтобы эти объекты поддерживали те свойства, которые тут используются. Если свойство не поддерживается, то произойдет ошибка и скрипт не выполнится.
В-третьих используй функцию Alert(). Ставь ее в разных местах кода и давай ей уникальное сообщение, не повторяющееся больше нигде и смотри, до куда доходит безошибочное выполнение кода. С ее помощью можешь также смотреть значения переменных и сверять, такое ли значение нужно или это полная фигня. Кроме того, вставляй в свой код функции из скрипта постепенно, чтобы определить, какая из них дает ошибку.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стиль ссылки AlexMak Элементы интерфейса 2 01.11.2008 14:50
Помогите с формированием ссылки AnGor Общие вопросы Javascript 0 27.08.2008 17:53
Как выдернуть ссылки из фрейма Leonline Общие вопросы Javascript 9 31.05.2008 01:34
Можно ли определить адрес ссылки под курсором? PK.Kirill Events/DOM/Window 16 29.05.2008 16:00
Не подскажите, как убрать подчеркивание ссылки href? Forgott Общие вопросы Javascript 1 20.05.2008 11:47