我想知道是否有可能通过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);
谢谢:)
答案 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文件,所以我可以避免这种混乱。