Исправленный gojanus.dll.html
От: Рома Мик Россия http://romamik.com
Дата: 25.01.05 16:05
Оценка:
#Имя: FAQ.janus.gojanus.dll.html
Субж. Ну или безнадежно испорченный, это уж вам решать. В таком виде у меня не возникает проблемы, которую я назвал GoJanus bug
Автор: Рома Мик
Дата: 25.01.05


Так что, если я ничего не сделал, что запрещено священными книгами, то можно в цвс закоммитить. А если нет, то все же помогите мне с этой проблемой.
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript1.2">

try
{

var message = "Ссылка не указывает на сообщение форума на сайте RSDN! Пожалуйста, попробуйте другую ссылку.";

// RegExp проверки на то, что ссылка принадлежит сайту RSDN

  var checkUrl = /(http:\/\/\w*\.*(rsdn.ru).*)|(janus:\/\/message\/.*)/ig;

  if(!checkUrl.test(window.external.menuArguments.document.URL)) 
  {
    // URL, на котором мы сейчас находимся, не содержит домена *rsdn.ru
    alert(message);
    // alert(window.external.menuArguments.document.URL);
  }
  else
  {    
    // Колдуем дальше над переданными аргументами


     var gojanus = new ActiveXObject("gojanus.gourl"); // создаем наш COM-объект

      var janusEvent = window.external.menuArguments.event; // событие браузера
      var janusAnchor = janusEvent.srcElement; // элемент, на котором все это произошло



      var URL = "";

      // на всякий случай поищем повыше в дереве тег ссылки...
      while(janusAnchor.tagName != "HTML" && janusAnchor.tagName != "A" && janusAnchor.tagName!="AREA") 
        janusAnchor = janusAnchor.parentElement;


      // пытаемся выцепить HTML-текст ссылки.
      if(janusEvent.type=="MenuExtUnknown" || janusEvent.type=="MenuExtImage" || janusEvent.type=="MenuExtAnchor")
      {
        if(janusAnchor.tagName == "A") 
        URL = janusAnchor.outerHTML;
      }
    
      if(URL != "") // удалось получить HTML-текст ссылки
      {
        // RegExp проверки, что ссылка указывает на сообщение форума

        var rExp = /<.*\?mid=(\d+).*>(.*)<\/a>/ig;

        var arr = rExp.exec(URL); // выполняем регулярное выражение
        if(!arr)
        {
         alert(message); // не выполнилось оно чего-то...
        }
        else
        {
          // выражение выполнилось и мы имеем ID сообщения и текст ссылки (arr[1] и arr[2] соответственно)
          //alert(arr[1]);
          //alert(arr[2]);

          // отправляем все это добро в COM-объект - пускай разбирается дальше...
          gojanus.SendURLToJanus(arr[1],arr[2]);

          //alert(arr[2]);

        } // else if(!arr)
      } // if(URL != "")
      else
        {
        // URL пуст - чего-то не срослось...
        alert(message);
      } // else URL == ""
    

  } // else if(checkUrl.test

}
catch(e)
{
// ошибка создания COM-объекта...
alert("Модуль gojanus.dll не установлен или зарегистрирован неправильно!");
}


</SCRIPT>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.