在无法修改liferay配置的liferay 3.6旧版项目上进行工作,该项目可通过IE8 / 9访问,并试图从页面上的portlet加载/使用jQuery&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)保留将yepnope.js附加到头部的脚本

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

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

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

10-07 19:51
查看更多