2013-04-17 43 views
2

工作在一個liferay 3.6遺留項目,無法修改liferay配置,通過IE8/9訪問,並試圖從頁面上的portlet加載/使用jQuery & UI,但它是不工作。jQuery的加載,但'未定義'

嘗試加載jQuery &用戶界面直接,作爲一個合併文件,並嘗試從yepnope和需要加載;它看起來文件加載正常(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> 

控制檯: LOG:jQuery的裝!

SCRIPT5009: 'jQuery的' 未定義

的jQuery-UI-1.10.2.custom.js,第6行字1

到目前爲止得到的JQuery不確定的消息不管我怎麼加載這兩個文件

任何關於如何讓這個工作的指針?

+0

你想使用jQuery yepnope有機會加載它以前那樣? – Blazemonger

+0

不要這麼想,jquery load的回調會觸發。 – user2287902

+2

在回調中嘗試更改'console.log(「jquery loaded!」);'to'console.log(「jquery loaded!」+ jQuery.fn.jquery);'是否打印jQuery版本? – P4ul

回答

0

終於得到了這個工作。

1)留了附yepnope.js頭

2)在腳本中被portlet的負載過程中調用該網頁的門戶的一個腳本,在那裏出現:window.addEventListener(「的onload」, invokeLoad,false);

3)invokeLoad函數像問題中的第二個腳本一樣執行jQuery的yepnope加載。

應該注意到,它並沒有與1.9.1版本,而且適用於1.7.2