Если пользователь не загружает бг, а использует предустановленные(скрипты с использованием jquery):
<body style="background: url(img/123.jpg)">
<button data-src="img/1234.jpg"></button>
</body>
$('button').on('click', function(){
var src = $(this).attr('data-src');
$('body').css({background: 'url('+src+')'})
});
В кнопке в data-src прописывает путь к файлу фона.
Далее по клику на кнопку записываем в переменную этот путь, и записываем этот путь инлайном в body.