我可以通过 Ajax post 修改外部 js 文件吗?

Can i modify an external js file via Ajax post?

我想知道是否可以通过 ajax post 修改外部 js 文件,例如:

在我的外部 js 文件中有一个变量:

var color;

所以我希望我的用户能够通过在输入文本表单中键入十六进制代码来更改此变量的值。

所以当键入并按下提交按钮时获取这个值并且post它到外部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);

谢谢:)

我需要了解您打算使用的用例才能提供完整的答案。如果您只想更改背景颜色,那么为什么还需要 运行 和 AJAX post?为什么不直接更改它?

在 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());

});

唯一的问题是如果您需要为多个用户长期更改它。然后你需要存储值服务器端(使用 post 和某种类型的 CRUD 系统,在这种情况下,请查看 JSON/JSONP)

可以做到。您将不得不使用一些后端代码来重写您的 JS 文件。然后,您需要删除任何绑定并使用脚本即时重新加载您的 js 文档。这是一个动态加载 JS 的例子。 http://www.philnicholas.com/2009/05/11/reloading-your-javascript-without-reloading-your-page/

我不确定你为什么要这样做。我会重新处理我的 JS 文件,这样我就可以避免这种混乱。