【问题标题】:How can I create an external javascript code for users like the Google Analytics JS Code?如何为 Google Analytics JS 代码等用户创建外部 javascript 代码?
【发布时间】:2011-06-29 23:07:53
【问题描述】:

我正在启动一个项目,我需要创建一个外部 javascript 代码供用户输入到他们的网站(就像他们使用 Google Analytics Snippet 所做的那样)。我通过 JQuery 知道一点 javascript,但我不确定我将如何开始。

我很紧张我使用了错误的术语来查找我要查找的内容。

【问题讨论】:

    标签: javascript scripting serverside-javascript


    【解决方案1】:

    从技术角度来看,这与在您自己的网站中包含静态 JS 文件相同 - 通过使用脚本标签。唯一的区别是您的 JS 文件的来源与您的网站位于不同的域中。

    至于JS文件的实际内容,由于你的问题是如此倾斜,因此很难给出建议。我唯一能建议的是

    1) 不能依赖包含任何依赖库的站点,例如 jQuery

    2) 尽可能少地污染全局命名空间。理想情况下,它只是全局命名空间中的一个对象,所有代码都在下面。

    【讨论】:

      【解决方案2】:

      只需为他们提供一个 js 文件以包含在他们的标题中。确保不要修改全局范围,因为您不知道他们在做什么。通常,这是使用闭包来确保的:

      (function(){
          // Put your code here
      
          window.yourLibName = someObject;
      })();
      

      他们可以在全局范围内使用的唯一代码是 yourLibName,其他所有代码都保留在您的范围内。

      然后,您可以向他们提供代码示例以从他们的网页调用您的工具。类似的东西:

      <script type="text/javascript"><!--
      yourLibName(someParameters);
      //-->
      </script>
      

      这种方法会在大多数网站上产生干净且可用的东西。

      另外,避免在这样的解决方案中使用 jQuery 之类的库,因为它有弄乱客户端 javascript 的风险,尤其是当他使用不同版本的 jQuery 或其他库(如 mootoools)时。

      【讨论】:

        【解决方案3】:

        一些基本原则

        1. 使您的代码尽可能小。

        2. 不要依赖像 Jquery 这样的库。很容易在第三方网站上产生冲突。

        3. 使您的脚本异步加载

        4. 留下一些界面,以便其他人可以做某事。对您的代码进行自定义设置。

        5. 不要添加太多全局变量。尝试使用命名空间来编写代码。

        【讨论】: