哟!
我有一个任意的javascript文件,我们称之为localScript
,然后说它看起来像这样:
<script id="myScript" type="text/javascript">
function () {
var blue = 'blue';
var person = {
firstName:"John",
lastName:"Doe",
age:50,
eyeColor:"brown"
};
var bluePerson = function () {
person[color] = blue;
};
}
</script>
我希望能够使用其他externalScript
动态更改此localScript
的内容。对于这个简单的例子,我只想说我想要更新localScript
中的一些值,比如 - 可能将age
对象的person
更改为75.(显然,有很简单的方法)要做到这一点,但对于我的用例,我必须使用另一个externalScript
来生成此localScript
的内容。
如果我可以在.innerHtml
中使用externalScript
之类的内容,这将允许我选择element
,然后替换'innerHtml'内容,这将很容易。但是,localScript
显然不是由元素组成的。
据我所知,当使用脚本修改另一个脚本时,没有任何“简单”的方法来引用脚本中的变量/对象/项。
我考虑的事项是indexOf()
,search()
和match()
,我可以在externalScript
中使用localScript
查找字符串然后替换价值。我觉得,因为这些可能是性能禁忌,特别是如果脚本增长。
有没有简单的方法可以做到这一点 - 强调性能?我觉得必须有一些简单的方法来引用脚本中的一个项目,但是,我想一个脚本都是一个大字符串......也许没有简单的方法。
BTW-我正在使用AngularJS,如果有任何内置方法 - 虽然我认为这主要是一个javascript的东西。
非常感谢!
答案 0 :(得分:1)
看起来这是一个坏主意,但是......好吧,如果必要的话......
更改<script>
标记中的脚本是没有意义的 - 如果它在DOM中,它已经执行(并且不再重要)。因此,要在脚本有机会执行之前更改脚本,您需要使用AJAX加载它,更改文本,然后eval
它。
答案 1 :(得分:0)
您可以轻松更改变量。请参阅以下步骤
您在上述脚本中创建的变量在全局范围内可用,因此应该可以从任何地方访问。
注意:在添加函数子句之前添加了此答案。