gpt4 book ai didi

javascript - jQuery 的条件加载

转载 作者:数据小太阳 更新时间:2023-10-29 06:02:27 26 4
gpt4 key购买 nike

如果浏览器似乎支持 HTML5,我正在使用纯 JavaScript 进行测试,如果支持,我想加载 jQuery,然后处理页面的其余部分。否则,将发生一些重定向。

  <script type="text/javascript">
var canvas = document.createElement('canvas');
if (canvas && canvas.getContext && canvas.getContext('2d')) {
var s = document.getElementsByTagName('script')[0];
var jq = document.createElement('script');
jq.type = 'text/javascript';
jq.src = 'js/jquery.js';
s.parentNode.insertBefore(jq, s);
}
else {
// ... redirection ...
}
</script>
<script type="text/javascript">
$(function () {
//...
}
</script>

但是上面的代码不能正常工作,因为我得到了错误

  Uncaught ReferenceError: $ is not defined

这清楚地表明尚未加载 jQuery 库。

为什么?我上面的代码中的条件脚本加载有什么问题?

最佳答案

在这种情况下使用 document.write() 可能有意义.您需要将此代码放在 <body> 中而不是 <head> :

  <script type="text/javascript">
var canvas = document.createElement('canvas');
if (canvas && canvas.getContext && canvas.getContext('2d')) {
document.write( '<script src="js/jquery.js"><\/script>' );
}
else {
// ... redirection ...
}
</script>
<script type="text/javascript">
$(function () {
//...
}
</script>

或者,您可以使用普通的 <script>标记以加载 jQuery,但将其放在 您的条件重定向之后:

  <script>
var canvas = document.createElement('canvas');
if( !( canvas && canvas.getContext && canvas.getContext('2d') ) ) {
// ... redirection ...
}
</script>
<script src="js/jquery.js"></script>
<script>
$(function () {
//...
}
</script>

使用这两种方法中的任何一种,执行顺序是:

  1. 第一个<script> .
  2. 正在加载 jquery.js , 是否完成 document.write()或者一个简单的 <script>标签。
  3. 最终脚本。

关于javascript - jQuery 的条件加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17461247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com