• XSS.stack #1 – первый литературный журнал от юзеров форума

js в одну строку

Ar3s

Старожил форума
Легенда
Регистрация
30.12.2004
Сообщения
3 357
Реакции
1 404
Имеется следующий код:

Код:
<script type="text/javascript">
function browserDetectNav(chrAfterPoint)
{
var  UA=window.navigator.userAgent,
	OperaB = /Opera[ \/]+\w+\.\w+/i,
	OperaV = /Version[ \/]+\w+\.\w+/i,	
	FirefoxB = /Firefox\/\w+\.\w+/i,
	ChromeB = /Chrome\/\w+\.\w+/i,
	SafariB = /Version\/\w+\.\w+/i,
	IEB = /MSIE *\d+\.\w+/i,
	SafariV = /Safari\/\w+\.\w+/i,
	browser = new Array(),
	browserSplit = /[ \/\.]/i,
	OperaV = UA.match(OperaV),
	Firefox = UA.match(FirefoxB),
	Chrome = UA.match(ChromeB),
	Safari = UA.match(SafariB),
	SafariV = UA.match(SafariV),
	IE = UA.match(IEB),
	Opera = UA.match(OperaB);
  
  if ((!Opera=="")&(!OperaV=="")) browser[0]=OperaV[0].replace(/Version/, "Opera")
    else 
    	if (!Opera=="")	browser[0]=Opera[0]
      else
      	if (!IE=="") browser[0] = IE[0]
        else 
        	if (!Firefox=="") browser[0]=Firefox[0]
          else
          	if (!Chrome=="") browser[0] = Chrome[0]
            else
            	if ((!Safari=="")&&(!SafariV=="")) browser[0] = Safari[0].replace("Version", "Safari");

	var outputData;
	
	if (browser[0] != null) outputData = browser[0].split(browserSplit);
	if (((chrAfterPoint == null)|(chrAfterPoint == 0))&(outputData != null)) 
  {
  	chrAfterPoint=outputData[2].length;
  	outputData[2] = outputData[2].substring(0, chrAfterPoint);
  	return(outputData);
  }
  	else
    if (chrAfterPoint != null) 
    {
    	outputData[2] = outputData[2].substr(0, chrAfterPoint);
    	return(outputData);    	
    }
    	else	return(false);
}

function showBrowVer()  
{
var
data = browserDetectNav();
alert("Браузер: "+data[0]+", Версия: "+data[1]+"."+data[2]);
}
window.onload = showBrowVer;
</script>

Данный код возвращает тупо имя и версию браузера.
Берем блокном и заменяем все переносы каретки на пробел. Получаем тот же код одной строкой. И он перестает работать. Почему - не могу понять. Помогите раздуплить пожалуйста.

Код:
<script type="text/javascript"> function browserDetectNav(chrAfterPoint) { var UA=window.navigator.userAgent, OperaB = /Opera[ \/]+\w+\.\w+/i, OperaV = /Version[ \/]+\w+\.\w+/i, FirefoxB = /Firefox\/\w+\.\w+/i, ChromeB = /Chrome\/\w+\.\w+/i, SafariB = /Version\/\w+\.\w+/i, IEB = /MSIE *\d+\.\w+/i, SafariV = /Safari\/\w+\.\w+/i, browser = new Array(), browserSplit = /[ \/\.]/i, OperaV = UA.match(OperaV), Firefox = UA.match(FirefoxB), Chrome = UA.match(ChromeB), Safari = UA.match(SafariB), SafariV = UA.match(SafariV), IE = UA.match(IEB), Opera = UA.match(OperaB);  if ((!Opera=="")&(!OperaV=="")) browser[0]=OperaV[0].replace(/Version/, "Opera") else  if (!Opera=="")browser[0]=Opera[0] else if (!IE=="") browser[0] = IE[0] else  if (!Firefox=="") browser[0]=Firefox[0] else if (!Chrome=="") browser[0] = Chrome[0] else if ((!Safari=="")&&(!SafariV=="")) browser[0] = Safari[0].replace("Version", "Safari");  var outputData;  if (browser[0] != null) outputData = browser[0].split(browserSplit); if (((chrAfterPoint == null)|(chrAfterPoint == 0))&(outputData != null))  { chrAfterPoint=outputData[2].length; outputData[2] = outputData[2].substring(0, chrAfterPoint); return(outputData); } else if (chrAfterPoint != null)  { outputData[2] = outputData[2].substr(0, chrAfterPoint); return(outputData); } elsereturn(false); }  function showBrowVer()   { var data = browserDetectNav(); alert("Браузер: "+data[0]+", Версия: "+data[1]+"."+data[2]); } window.onload = showBrowVer; </script>
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ar3s
Попробуй так
Код:
<script type="text/javascript"> function browserDetectNav(chrAfterPoint) { var UA=window.navigator.userAgent, OperaB = /Opera[ \/]+\w+\.\w+/i, OperaV = /Version[ \/]+\w+\.\w+/i, FirefoxB = /Firefox\/\w+\.\w+/i, ChromeB = /Chrome\/\w+\.\w+/i, SafariB = /Version\/\w+\.\w+/i, IEB = /MSIE *\d+\.\w+/i, SafariV = /Safari\/\w+\.\w+/i, browser = new Array(), browserSplit = /[ \/\.]/i, OperaV = UA.match(OperaV), Firefox = UA.match(FirefoxB), Chrome = UA.match(ChromeB), Safari = UA.match(SafariB), SafariV = UA.match(SafariV), IE = UA.match(IEB), Opera = UA.match(OperaB);  if ((!Opera=="")&(!OperaV=="")) browser[0]=OperaV[0].replace(/Version/, "Opera"); else  if (!Opera=="")browser[0]=Opera[0]; else if (!IE=="") browser[0] = IE[0]; else  if (!Firefox=="") browser[0]=Firefox[0]; else if (!Chrome=="") browser[0] = Chrome[0]; else if ((!Safari=="")&&(!SafariV=="")) browser[0] = Safari[0].replace("Version", "Safari");  var outputData;  if (browser[0] != null) outputData = browser[0].split(browserSplit); if (((chrAfterPoint == null)|(chrAfterPoint == 0))&(outputData != null))  { chrAfterPoint=outputData[2].length; outputData[2] = outputData[2].substring(0, chrAfterPoint); return(outputData); } else if (chrAfterPoint != null)  { outputData[2] = outputData[2].substr(0, chrAfterPoint); return(outputData); } elsereturn(false); }  function showBrowVer()   { var data = browserDetectNav(); alert("Браузер: "+data[0]+", Версия: "+data[1]+"."+data[2]); } window.onload = showBrowVer; </script>
 
Спасибо други. Оба варианта работают как надо!
Об обфускаторе я чет вообще не подумал. В принципе он мне не нужен был но все же приятно
 
Код:
function browserDetectNav(r){var e=window.navigator.userAgent,a=/Opera[ \/]+\w+\.\w+/i,w=/Version[ \/]+\w+\.\w+/i,i=/Firefox\/\w+\.\w+/i,t=/Chrome\/\w+\.\w+/i,n=/Version\/\w+\.\w+/i,o=/MSIE *\d+\.\w+/i,l=/Safari\/\w+\.\w+/i,s=[],c=/[ \/\.]/i,w=e.match(w),h=e.match(i),u=e.match(t),m=e.match(n),l=e.match(l),v=e.match(o),V=e.match(a)
""==!V&""==!w?s[0]=w[0].replace(/Version/,"Opera"):""==!V?s[0]=V[0]:""==!v?s[0]=v[0]:""==!h?s[0]=h[0]:""==!u?s[0]=u[0]:""==!m&&""==!l&&(s[0]=m[0].replace("Version","Safari"))
var f
return null!=s[0]&&(f=s[0].split(c)),(null==r|0==r)&null!=f?(r=f[2].length,f[2]=f[2].substring(0,r),f):null!=r?(f[2]=f[2].substr(0,r),f):!1}function showBrowVer(){var r=browserDetectNav()
alert("Браузер: "+r[0]+", Версия: "+r[1]+"."+r[2])}window.onload=showBrowVer

http://lisperator.net/uglifyjs/#demo
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх