使用一个javascript脚本动态修改另一个脚本

时间:2015-05-14 01:56:53

标签: javascript html

哟!

我有一个任意的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的东西。

非常感谢!

2 个答案:

答案 0 :(得分:1)

看起来这是一个坏主意,但是......好吧,如果必要的话......

更改<script>标记中的脚本是没有意义的 - 如果它在DOM中,它已经执行(并且不再重要)。因此,要在脚本有机会执行之前更改脚本,您需要使用AJAX加载它,更改文本,然后eval它。

答案 1 :(得分:0)

您可以轻松更改变量。请参阅以下步骤

  1. 在您编写的脚本下面包含外部脚本。
  2. 访问外部脚本中的变量,就好像它们是本地声明的那样。
  3. 您在上述脚本中创建的变量在全局范围内可用,因此应该可以从任何地方访问。

    注意:在添加函数子句之前添加了此答案。