Могу ли я изменить внешний файл 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, чтобы избежать этого беспорядка.

Другие вопросы по тегам