Субж. Ну или безнадежно испорченный, это уж вам решать. В таком виде у меня не возникает проблемы, которую я назвал
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>