Показать сообщение отдельно
  #7 (permalink)  
Старый 17.10.2008, 23:14
Infocatcher
 
Сообщений: n/a

Уже не помню

Но у меня заработало вот так:
var ref = location.href; // document.referrer;
function getQ(str) {
	var qStr = /[\?&](?:text|q|words|query|search)=([^\?&]*)/.test(ref);
	return qStr && decodeURI(RegExp.$1);
}
alert(getQ(ref));


Проверял через запуск из адресной строки:
javascript: (function() { var ref = location.href; function getQ(str) { var qStr = /[\?&](?:text|q|words|query|search)=([^\?&]*)/.test(ref); return qStr && decodeURI(RegExp.$1); } alert(getQ(ref)); })();


Особо развлекаться было лениво... В общем, в Firefox 2.0+, Opera 9.2+ и IE 6.0, 7.0 все Ok.

К тому же, проблема может быть из-за (кривого) блокирования referer'ов каким-нибудь файрволом. У меня вот они вообще подменяются.

[UPD]
А вот с cp1251 – как-то сразу не обратил внимания – действительно траблы...

[UPD – 2]

Полагаю, можно сделать
unescape(qStr)

Потом попытаться перекодировать. Где в результате будет содержаться кириллица
/[а-яё]/i.test(qStr)

, то и использовать. Иначе – брать исходный unescape(qStr).

Последний раз редактировалось Андрей Параничев, 17.10.2008 в 23:46.
Ответить с цитированием