Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Функция если, проверка по тексту (https://javascript.ru/forum/css-html/36443-funkciya-esli-proverka-po-tekstu.html)

e.mirchev 15.03.2013 09:24

Функция если, проверка по тексту
 
Добрый день!
Есть один сайт, где нужно сделать простой цикл "если". Я не спец в скриптах, да и в сайтах я тоже не сильно разбираюсь. Я почти все сделал, но не проходит одна проверочка, подскажите где копать, пожалуйста! Этот сайт делал не я!
На сайте есть такая штука как <TMPL_VAR NAME='DATA_LANGCODE'>. В HTML при помощи это штуки, вставив в ссылку можно получить значение языка, на который сейчас переключен пользователь (ru, en и т.п.). Все работает, но как мне сделал проверку по этому делу в яваскрипте?
Я придумал следующее, задача - зставить в зависимости от языка рандомно показывать баннеры с сылками.

if (<TMPL_VAR NAME='DATA_LANGCODE'> == "ru") {

var a=Math.round(Math.random()*1)
image = new Array();
link = new Array();
image[0]="<TMPL_VAR NAME='PATH2MAIN'>images/<TMPL_VAR NAME='DATA_LANGCODE'>/01.gif"
link[0]="http://skygroup.pro/index/special/2013-03-01.htm"
image[1]="<TMPL_VAR NAME='PATH2MAIN'>images/<TMPL_VAR NAME='DATA_LANGCODE'>/02.gif"
link[1]="http://skygroup.pro/index/special/2013-03-01-Alba.htm"
document.write ("<a href="+link[a]+"><img src="+image[a]+">");
} else {

var a=Math.round(Math.random()*1)
image = new Array();
link = new Array();
image[0]="<TMPL_VAR NAME='PATH2MAIN'>images/<TMPL_VAR NAME='DATA_LANGCODE'>/01.gif"
link[0]="http://www.skygroup.pro/en/manufacturing/catalog/project/maglev_en.htm"
image[1]="<TMPL_VAR NAME='PATH2MAIN'>images/<TMPL_VAR NAME='DATA_LANGCODE'>/02.gif"
link[1]="http://www.skygroup.pro/en/manufacturing/catalog/project/maglev_en.htm"
document.write ("<a href="+link[a]+"><img src="+image[a]+">");
}



Но это дело не работает, конструкция внутри если работает без проблем. Но, разумеется, переходя на другой язык, ссылки ведут на русский.

danik.js 15.03.2013 09:28

Тут используется какой-то коленочный шаблонизатор? Покажи результат работы шаблонизатора, ведь именно он попадает в браузер, а не эта хрень, что ты запостил.

e.mirchev 15.03.2013 09:43

А как посмотреть этот результат работы?

danik.js 15.03.2013 09:49

В браузере Ctrl+U

e.mirchev 15.03.2013 10:56

Ничего интересного.
<script language="JavaScript">
<!--
if ("DATA_LANGCODE" == "ru") {
var a=Math.round(Math.random()*1) 
image = new Array();
link = new Array();
image[0]="/website/sun/template/images/ru/01.gif"
link[0]="http://skygroup.pro/index/special/2013-03-01.htm"
image[1]="/website/sun/template/images/ru/02.gif"
link[1]="http://skygroup.pro/index/special/2013-03-01-Alba.htm"
document.write ("<a href="+link[a]+"><img src="+image[a]+">");
} else {
var a=Math.round(Math.random()*1) 
image = new Array();
link = new Array();
image[0]="/website/sun/template/images/ru/01.gif"
link[0]="http://www.skygroup.pro/en/manufacturing/catalog/project/maglev_en.htm"
image[1]="/website/sun/template/images/ru/02.gif"
link[1]="http://www.skygroup.pro/en/manufacturing/catalog/project/maglev_en.htm"
document.write ("<a href="+link[a]+"><img src="+image[a]+">");
}

//-->
</script>

e.mirchev 15.03.2013 10:57

если подставлю конструкцию <TMPL_VAR NAME='DATA_LANGCODE'>
то вообще падает все с оповещением об ошибке

e.mirchev 15.03.2013 11:10

Заработало, черт его знает как, но работает!

e.mirchev 15.03.2013 11:19

Ну вот теперь еще более непонятно!
<script language="JavaScript">
<!--
if ("DATA_LANGCODE" == "ru") {
var b=Math.round(Math.random()*1) 
image = new Array();
link = new Array();
image[0]="<TMPL_VAR NAME='PATH2MAIN'>images/<TMPL_VAR NAME='DATA_LANGCODE'>/01.gif"
link[0]="http://skygroup.pro/index/special/2013-03-01.htm"
image[1]="<TMPL_VAR NAME='PATH2MAIN'>images/<TMPL_VAR NAME='DATA_LANGCODE'>/02.gif"
link[1]="http://skygroup.pro/index/special/2013-03-01-Alba.htm"
document.write ("<a href="+link[b]+"><img src="+image[b]+">");
} else {
var a=Math.round(Math.random()*1) 
image2 = new Array();
link2 = new Array();
image2[0]="<TMPL_VAR NAME='PATH2MAIN'>images/<TMPL_VAR NAME='DATA_LANGCODE'>/01.gif"
link2[0]="http://www.skygroup.pro/en/manufacturing/catalog/project/maglev_en.htm"
image2[1]="<TMPL_VAR NAME='PATH2MAIN'>images/<TMPL_VAR NAME='DATA_LANGCODE'>/02.gif"
link2[1]="http://www.skygroup.pro/en/manufacturing/catalog/project/maglev_en.htm"
document.write ("<a href="+link2[a]+"><img src="+image2[a]+">");
}

//-->
</script>


Уже даже переменные по-другому назвал. Банера меняются в зависимости от того, русский язык или другой, но ссылки почему-то подставляются строго из второго условия. Можете сами посмотреть:
skygroup.pro

e.mirchev 15.03.2013 12:17

Нет, все-таки не работает. не проходит условие, не понимает он, на каком языке открыт сайт...

danik.js 15.03.2013 12:35

"DATA_LANGCODE" == "ru" ясное дело вернет false
Разбирайтесь со своим шаблонизатором. И лучше наверно проверять условия в шаблоне если это возможно. Иначе в javascript получится очень бредовый код типа
if ("ru" == "ru") { }

где первый "ru" подставлен шаблонизатором

e.mirchev 15.03.2013 12:43

Подумал над таким вариантом: в document.write создать ссылку с этим чертовым шаблонным свойством. Но, боюсь, есть какие-то синтаксические ошибки, посмотрите, пожалуйста!

var b=Math.round(Math.random()*1) 
image = new Array();
link = new Array();
image[0]="<TMPL_VAR NAME='PATH2MAIN'>images/<TMPL_VAR NAME='DATA_LANGCODE'>/01.gif"
link[0]="01.html"
image[1]="<TMPL_VAR NAME='PATH2MAIN'>images/<TMPL_VAR NAME='DATA_LANGCODE'>/02.gif"
link[1]="02.html"
document.write ("<a href="http://skygroup.pro/website/sun/template/images/<TMPL_VAR NAME='DATA_LANGCODE'>/ +link[b]+"><img src="+image[b]+">");


Подскажите, пожалуйста, как тут правильно создать ссылку?

danik.js 15.03.2013 12:58

e.mirchev, ваши шаблоны тут никому непонятны. Ибо у вас какой-то неизвестный шаблонизатор. И вообще, это форум javascript а не вашего шаблонизатора. Показывайте результирующий код, а не свои шаблоны.

e.mirchev 15.03.2013 14:36

Да я и не загружаю вас своими проблемами) А обращаюсь к вам как раз как к пользователям форума JS.

Скажите мне, как мне сделать так, чтобы скрипт создал нужную ссылку.

Нужно чтобы document.write выдал мне ссылку <a href="http://skygroup.pro/website/sun/template/images/<TMPL_VAR NAME='DATA_LANGCODE'>/ + то, что выпадет рандомно.

Результирующий код из того, что я описывал выше:
<script language="JavaScript">
<!--
var b=Math.round(Math.random()*1) 
image = new Array();
link = new Array();
image[0]="/website/sun/template/images/ru/01.gif"
link[0]="http://skygroup.pro/website/sun/template/images/ru/01.html"
image[1]="/website/sun/template/images/ru/02.gif"
link[1]="http://skygroup.pro/website/sun/template/images/ru/02.html"
document.write ("<a href="+link[b]+"><img src="+image[b]+">");


//-->
</script>


Вывод на страницу:
<a href="http://skygroup.pro/website/sun/template/images/ru/01.html"><img src="/website/sun/template/images/ru/01.gif"></a>

danik.js 15.03.2013 19:33

<script>
(function(){
    var random = Math.round(Math.random()*1) + 1,
        image = "/website/sun/template/images/ru/0" + random + ".gif",
        link = "http://skygroup.pro/website/sun/template/images/ru/0" + random + ".html";
    document.write("<a href="+link+"><img src="+image+" /></a>");
})();
</script>

e.mirchev 18.03.2013 11:59

Спасибо огромное! Все заработало!


Часовой пояс GMT +3, время: 14:42.