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

时间:2015-02-16 19:20:37

标签: ajax jquery-post jquery-get

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

在我的外部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 个答案:

答案 0 :(得分:0)

我需要了解您打算使用的用例才能提供完整的答案。如果您尝试做的只是更改背景颜色,为什么还需要运行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)

答案 1 :(得分:0)

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

我不确定你为什么会这样做。我只是修改我的JS文件,所以我可以避免这种混乱。