2012-01-30 1 views
0

У меня есть программа, которая помещает кнопки ввода в форму. Когда пользователь нажимает на кнопку, атрибут onclick использует location.href, чтобы направить его на ссылку.Вставить массив в location.href

elementButton_1.setAttribute("onclick", "self.location.href='http://google.com'; return false"); 

Я пытаюсь сохранить ссылки в массиве. Как я могу вставить массив в вызов местоположения?

Пример:

locationArray = new Array(); 
locationArray[0] = "http://google.com"; 

elementButton_1.setAttribute("onclick", "self.location.href=locationArray[0]; return false"); 
+0

Вы пример работает, потому что второй параметр SetAttribute будет оценен как JS код .. – paislee

ответ

0

Я не совсем уверен, что я понимаю, но я думаю, что вы хотите:

elementButton_1.setAttribute("onclick", "self.location.href='" + locationArray[0] +"'; return false"); 
+0

Это было то, что я искал ТНХ – alphadev

+1

оригинальный пример работает так же, как это предложение , – paislee

+0

Я даже не считал это! Очень верно. Я не знаю, как добавить комментарий к собственному ответу, но в целом вы не должны использовать форму конструктора, но используйте литерал массива для создания экземпляра массива. http://answers.oreilly.com/topic/2151-when-to-use-the-array-literal-notation-in-javascript/ –

1

Пока elementButton_1 определяется то, что вы вывесили будет работать. Однако гораздо лучше практика:

locationArray = new Array(); 
locationArray[0] = "http://google.com"; 

var elementButton_1 = document.getElementById('mybutton'); 

// define a click handler for the button 
elementButton_1.onclick = function() { 
    self.location.href = locationArray[0]; 
    // .. 
} 

Это лучше не определять работоспособный код в виде строки, для безопасности & целей ремонтопригодности.