【发布时间】:2011-06-29 23:07:53
【问题描述】:
我正在启动一个项目,我需要创建一个外部 javascript 代码供用户输入到他们的网站(就像他们使用 Google Analytics Snippet 所做的那样)。我通过 JQuery 知道一点 javascript,但我不确定我将如何开始。
我很紧张我使用了错误的术语来查找我要查找的内容。
【问题讨论】:
标签: javascript scripting serverside-javascript
我正在启动一个项目,我需要创建一个外部 javascript 代码供用户输入到他们的网站(就像他们使用 Google Analytics Snippet 所做的那样)。我通过 JQuery 知道一点 javascript,但我不确定我将如何开始。
我很紧张我使用了错误的术语来查找我要查找的内容。
【问题讨论】:
标签: javascript scripting serverside-javascript
从技术角度来看,这与在您自己的网站中包含静态 JS 文件相同 - 通过使用脚本标签。唯一的区别是您的 JS 文件的来源与您的网站位于不同的域中。
至于JS文件的实际内容,由于你的问题是如此倾斜,因此很难给出建议。我唯一能建议的是
1) 不能依赖包含任何依赖库的站点,例如 jQuery
2) 尽可能少地污染全局命名空间。理想情况下,它只是全局命名空间中的一个对象,所有代码都在下面。
【讨论】:
只需为他们提供一个 js 文件以包含在他们的标题中。确保不要修改全局范围,因为您不知道他们在做什么。通常,这是使用闭包来确保的:
(function(){
// Put your code here
window.yourLibName = someObject;
})();
他们可以在全局范围内使用的唯一代码是 yourLibName,其他所有代码都保留在您的范围内。
然后,您可以向他们提供代码示例以从他们的网页调用您的工具。类似的东西:
<script type="text/javascript"><!--
yourLibName(someParameters);
//-->
</script>
这种方法会在大多数网站上产生干净且可用的东西。
另外,避免在这样的解决方案中使用 jQuery 之类的库,因为它有弄乱客户端 javascript 的风险,尤其是当他使用不同版本的 jQuery 或其他库(如 mootoools)时。
【讨论】:
一些基本原则
使您的代码尽可能小。
不要依赖像 Jquery 这样的库。很容易在第三方网站上产生冲突。
使您的脚本异步加载
留下一些界面,以便其他人可以做某事。对您的代码进行自定义设置。
不要添加太多全局变量。尝试使用命名空间来编写代码。
【讨论】: