Использование пользовательских ключевых слов для установки ссылки в JavaScript - PullRequest
0 голосов
/ 24 сентября 2011

Сценарии более продвинуты, но я сократил их до следующей проблемы:

В двух словах, у меня есть некоторые ключевые переменные, установленные с помощью JavaScript. Эти ключевые переменные содержат URL-адреса. Что мне нужно, так это когда человек вводит ключевое слово, он попадает на определенный URL. Я создал образец страницы, иллюстрирующий мою проблему:

<a href=""  class="link">LINK</a><br>
<input type="text"  class="text" value="hallo" />
<input type="button" onclick="check();" value="Click ME">

<script type="text/javascript">
function check() {
    var key1 = "some_link1.com";
    var key2 = "some_link2.com";
    var key3 = "some_link3.com";

    var l = document.getElementsByClassName("link")[0];
    var t = document.getElementsByClassName("text")[0];
    if (t.value == "key1" || t.value == "key2" || t.value == "key3") {
        l.href = t.value;
        alert(t.value);
    } }</script>

Проблема заключается в **, потому что скрипт должен распознать, что значение соответствует переменной, и использовать вместо него значение thet. Однако в настоящее время я получаю только введенное значение. Кстати, я не могу использовать форму или перезагрузить страницу. Это должно произойти "вживую".

Есть мысли?

PS. скрипт не предназначен для запуска, но иллюстрирует мою точку зрения: http://jsfiddle.net/UhgKG/3/

Ответы [ 2 ]

0 голосов
/ 24 сентября 2011

Отчасти потому, что я избегаю eval(), когда есть другие способы, а также потому, что он кажется более чистым, более расширяемым и меньше кода, я бы сделал это так с поиском объекта, а не с отдельными переменными,несколько if тестов и eval:

<a href="" id="link">LINK</a><br>
<input type="text" id="text" value="hallo" />
<input type="button" onclick="check();" value="Click ME">

<script type="text/javascript">
function check() {
    var keys = {
        key1: "some_link1.com",
        key2: "some_link2.com",
        key3: "some_link3.com"
    };

    var l = document.getElementById("link");
    var t = document.getElementById("text").value;
    if (t in keys) {
        l.href = keys[t];
        alert(t);
    }
}
</script>
0 голосов
/ 24 сентября 2011
<a href="" id="link">LINK</a><br>
<input type="text" id="text" value="hallo" />
<input type="button" onclick="check();" value="Click ME">

<script type="text/javascript">
function check() {
    var key1 = "some_link1.com";
    var key2 = "some_link2.com";
    var key3 = "some_link3.com";

    var l = document.getElementById("link");
    var t = document.getElementById("text").value;
    if (t == "key1" || t == "key2" || t == "key3") {
        l.href = eval(t); // no risk as we run this line if and only if the value is one of the options defined in the if
        alert(t);
    }
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...