我正在尝试做的想法是允许客户将我托管的脚本添加到他们的网站上。我希望能够在我的脚本中使用 jQuery,但不能确定它是否始终可用。这是我的代码明智的。到目前为止,这是我托管的 javascript 页面的完整文件,但我无法让它工作。$('title').html 部分只是为了让我看看它是否有效
我希望我托管的脚本负责在客户网站上包含 jQuery。除了我的脚本之外,我不希望客户端必须包含 jQuery
window.onload = function () {
if (typeof jQuery == 'undefined') {
var jq = document.createElement('script');
jq.type = 'text/javascript';
jq.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
var sc = document.getElementsByTagName('script')[0];
sc.parentNode.insertBefore(jq, sc);
}
console.log($('title').html());
}
这个 javascript 文件位于我的服务器上,我的客户端会以与 google 分析相同的方式包含这个文件。
这是我希望我的客户必须包括的唯一内容。拉取基本和谷歌分析一样
<script type="text/javascript">
var _waq = _gaq || [];
_waq.push(['PARAM1', 'PARAM2']);
(function() {
var wa = document.createElement('script');
wa.type = 'text/javascript';
wa.async = true;
wa.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'PATH/TO/SCRIPT/wa.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wa, s);
})();
</script>
当我运行页面时,我收到一条错误消息,Uncaught ReferenceError: $ is not defined
但是如果我在页面加载后立即输入,$('title').html();
我会在控制台中返回标题。
我确定这与脚本中 console.log 的运行时间有关,并且还没有让 jQuery 完全加载。我的问题是我如何能够创建一个客户端可以添加的 javascript 页面,如果它不可用动态加载 jquery,并在脚本上的任何其他内容运行之前加载它?