2 个版本的 jQuery -> 2份文件。为什么?

发布于 2024-12-12 01:20:14 字数 1494 浏览 0 评论 0原文

我有一个小页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title></title>
  <script type="text/javascript" src="jquery-1.4.2.js"></script>
  <script type="text/javascript" src="temp.js"></script>
</head>
<body>
<p>foo</p>
<p>bar</p>
</body>
</html>

并且我正在尝试加载两个不同版本的 jQuery:

// temp.js
jQueryScriptOutputted = false;
initJQuery = function() {

  //if the jQuery object isn't available
  if (typeof(myjQuery) == 'undefined') {

    if (!jQueryScriptOutputted) {
      //only output the script once..
      jQueryScriptOutputted = true;

      //output the script (load it from google api)
      document.write("<script type=\"text/javascript\" src=\"jquery-1.6.4.js\"></script>");
      document.write("<script type=\"text/javascript\">var myjQuery = $.noConflict(true);</script>");
    }
    setTimeout("initJQuery()", 50);
  } else {
    myjQuery(function() {
      // Check jQuery versions
      console.log('myjQuery version = ' + myjQuery().jquery);
      console.log('$ version = ' + $().jquery);
      console.log('jQuery version = ' + jQuery().jquery);

      // Get the data of the actual poll
      document.write("Where is foo and bar?!?");
    });
  }

}
initJQuery();

但这似乎加载了两个不同的文档。我的意思是,当你打开页面时,段落就会丢失。怎么会?!?

I have a small page:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <title></title>
  <script type="text/javascript" src="jquery-1.4.2.js"></script>
  <script type="text/javascript" src="temp.js"></script>
</head>
<body>
<p>foo</p>
<p>bar</p>
</body>
</html>

and I'm trying to load two different versions of jQuery:

// temp.js
jQueryScriptOutputted = false;
initJQuery = function() {

  //if the jQuery object isn't available
  if (typeof(myjQuery) == 'undefined') {

    if (!jQueryScriptOutputted) {
      //only output the script once..
      jQueryScriptOutputted = true;

      //output the script (load it from google api)
      document.write("<script type=\"text/javascript\" src=\"jquery-1.6.4.js\"></script>");
      document.write("<script type=\"text/javascript\">var myjQuery = $.noConflict(true);</script>");
    }
    setTimeout("initJQuery()", 50);
  } else {
    myjQuery(function() {
      // Check jQuery versions
      console.log('myjQuery version = ' + myjQuery().jquery);
      console.log('$ version = ' + $().jquery);
      console.log('jQuery version = ' + jQuery().jquery);

      // Get the data of the actual poll
      document.write("Where is foo and bar?!?");
    });
  }

}
initJQuery();

but it seems that this loads two different documents. I mean, when you open the page, the paragraphs get lost. How come?!?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

泼猴你往哪里跑 2024-12-19 01:20:15

页面加载后调用 document.write 将会使用 document.write 参数覆盖整个页面。考虑使用 $().append$().html 等其他内容来更改标记。

IE

myjQuery(function() {
      $('body').append("<p>Where is foo and bar?!?</p>");
    });

Calling document.write after the page has loaded will overwrite the entire page with the document.write parameter. Consider using something else like $().append or $().html to change the markup.

i.e.

myjQuery(function() {
      $('body').append("<p>Where is foo and bar?!?</p>");
    });
一绘本一梦想 2024-12-19 01:20:15

您必须仅加载一个版本或另一个版本。
换句话说,页面上只安装了一个 jquery 库。

You must only load one version or the other.
In other words, only have one jquery library installed to the page.

微凉 2024-12-19 01:20:15

问题是您正在将

请参阅这些 有关如何动态加载 jQuery 的完整信息的说明。

本教程解释了如何真正做到这一点。

希望这有帮助。

The problem is that you are writing the <script> tags to the document and not the <head>

Please see these instructions for full information on how to dynamically load jQuery.

The tutorial explains how to do it really well.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文