首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让我的脚本相互交互?

如何让我的脚本相互交互?
EN

Stack Overflow用户
提问于 2018-02-23 22:59:17
回答 1查看 71关注 0票数 2

当我的网页加载后,它会运行这个脚本:

代码语言:javascript
运行
复制
$(function() {
  return $.ajax({
    type: "get",
    dataType: "json",
    url: "/get_script",
    success: function(data, status, xhr) {
      return $("#myScript").html(data.myScript);
    }
  });
});

该脚本从我的服务器( data.myScript对象)获取另一个脚本。添加到我的网页中的新脚本如下所示:

代码语言:javascript
运行
复制
<script>
  initScript = function() {
    return window.random_string = Math.random().toString(36).substring(7);
  };

  $(window).bind("popstate", 'hashchange', function() {
    return initScript();
  });

  window.random_string = null;
  initScript();
</script>

如果新脚本需要为网页上的其他脚本提供变量,我会将它们放入window.my_variable变量中,但我希望能够调用例如MyScript.random_string

我还希望能够从其他脚本触发initScript函数。就像MyScript.initScript()一样

我该如何实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-23 23:13:35

首先,我建议您使用$.getScript加载JS代码,假设您不能将其直接嵌入到<script>标记中。

要解决你的实际问题,你只需要按照你需要的方式来组织它。只需创建一个类似var MyScript = {};的对象,然后将所有函数和变量作为属性放入该对象中,如下所示:

代码语言:javascript
运行
复制
$.getScript('/get_script', function() {
  // put logic to run after the script has loaded here...
  // note that you don't need your .html(data.myScript) any more
  
  MyScript.initScript();
  console.log(MyScript.random_string);
});

// in your external script:
var MyScript = {
  initScript = function() {
    this.random_string = Math.random().toString(36).substring(7);
  },
  random_string: null;
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48950650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档