Могу ли я изменить внешний файл JS через пост Ajax?
Я хотел бы знать, если есть возможность изменить внешний файл JS через пост Ajax, например:
В мой внешний файл JS у меня есть переменная:
var color;
Поэтому я хотел бы, чтобы мои пользователи могли изменять значение этой переменной, вводя код HEX в текстовую форму ввода.
Поэтому, когда набираете и нажимаете кнопку отправки, чтобы получить это значение и опубликовать его во внешнем js-файле, измените переменную.
Я хочу что-то вроде этого:
var colorVal = $('input').val();
$.post("external-file-js.js", {color: colorVal}, function(result){});
Во внешнем файле js что-то вроде:
var color = $.get(colorVal); // HERE i dont know how to grab the value
$('body').css('background-color',color);
Спасибо:)
2 ответа
Мне нужно понять вариант использования, который вы собираетесь использовать, чтобы дать полный ответ. Если все, что вы пытаетесь сделать, это изменить цвет фона, зачем вам вообще нужно запускать AJAX-пост? Почему бы просто не изменить это?
В extenal.js (который включен в тело HTML):
function changeColor(color) {
$('body').css('background-color',color);
}
Затем вы связываете следующее событие со входом:
$('input').change(function () {
// Though you may want to perform validation first.
changeColor($(this).val());
});
Единственная проблема, если вам нужно изменить его на длительный срок, для нескольких пользователей. Затем вам нужно будет сохранить сервер значений (с постом и системой CRUD некоторого типа, в этом случае проверьте JSON/JSONP)
Это может быть сделано. Вы должны будете использовать некоторый внутренний код для перезаписи вашего файла JS. Затем вам нужно будет удалить все привязки и использовать скрипт для перезагрузки вашего js-документа на лету. Вот пример загрузки JS на лету. http://www.philnicholas.com/2009/05/11/reloading-your-javascript-without-reloading-your-page/
Я не уверен, почему ты это сделал. Я бы просто переделал свой файл JS, чтобы избежать этого беспорядка.