Содержание вашей функции должно быть серией операторов; Ваш образец больше похож на (почти) объектный литерал. Так что это не будет работать.
По сути, я проигнорирую ваш почти объектный литерал, потому что я не понимаю, что вы пытаетесь сделать. Вместо этого, есть два способа, которыми кнопка может вызвать функцию для установки URL-адреса страницы, то есть заставить браузер перейти от текущей страницы к этому URL-адресу. Сначала вы передаете URL функции. Когда вы передаете ссылку на кнопку в функцию, а затем из этой ссылки получаете доступ к атрибуту кнопки «значение». Плюс я дал способ установить URL без функции.
Примечание: я не уверен, что что-то из этого обязательно стоит сделать на веб-странице. Если вы хотите перейти к другому URL, используйте тег <a>
, чтобы он работал для пользователей без JavaScript. Но все равно ...
function addUrl(newUrl) {
window.location.href = newUrl;
}
function addUrl2(btn) {
window.location.href = btn.value;
}
<input type="button" value="My URL" onclick="addUrl('someURL');">
<input type="button" value="www.google.com" onclick="addUrl2(this);">
<input type="button" value="Something" onclick="window.location.href='www.google.com';">
Если то, что вы действительно пытаетесь сделать, это обновить некоторую структуру данных, то, возможно, нечто более похожее на это (предполагается, что у вашего объекта данных есть свойство "server", которое представляет собой массив объектов url, как вы, похоже, пытались это сделать в исходной функции):
var myData = {
"server": [ {"position": "center",
"url": "New_Url" } ]
};
function addUrl(newUrl) {
myData["server"].push{"position":"center",
"url" : newUrl});
}
function updateUrl(index,newUrl) {
myData["server"][index]["url"] = newUrl;
}