jQuery加载但是'未定义'

时间:2013-04-17 21:06:47

标签: jquery liferay yepnope

使用liferay 3.6遗留项目,无法修改liferay配置,通过IE8 / 9访问并尝试加载/使用jQuery&来自页面上的portlet的UI但它不起作用。

尝试加载jQuery& UI直接,作为一个合并文件,并尝试从yepnope和require加载;看起来文件加载正常(对于UI可以看到调试器中的负载)。例如:

<script>
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "/pim/scripts/yepnope.js";
head.appendChild(script);
</script>

<script>
yepnope({
  load: ["scripts/jquery-1.9.1.js", "scripts/jquery-ui-1.10.2.custom.js"],
  callback: {
    "jquery-1.9.1.js": function () {
      console.log("jquery loaded!");
    },
    "jquery-ui-1.10.2.custom.js": function () {
      console.log("jquery-ui loaded!");
    }
  }
});
</script>

控制台: 日志:加载jquery!

SCRIPT5009:'jQuery'未定义

jquery-ui-1.10.2.custom.js,第6行第1个字符

到目前为止,无论我如何加载这两个文件,都会得到JQuery未定义的消息

有关如何使其发挥作用的任何指示?

1 个答案:

答案 0 :(得分:0)

最后让它发挥作用。

1)保存附有yepnope.js的脚本

2)在portlet加载期间调用的一个页面portlet中的脚本中,出现:window.addEventListener(“onload”,invokeLoad,false);

3)invokeLoad函数执行jQuery的yepnope加载,如问题的第二个脚本。

应该注意,它不适用于版本1.9.1,但适用于1.7.2