我正在使用Worklight 6.0并使用
WL.Page.load("templates/a.html", {
onComplete : function() {
console.log("After fragment is loadded ");
},
onUnload : function() {
console.log("After fragment is unloadded ");
}
});
用于加载新页面并在onComplete方法中修改某些函数,并且我在索引页面上具有与其他页面冲突的所有css和js。我不希望单页上的所有css和js而不是这个我想在加载新页面时加载它并在加载其他页面时卸载它。 我应该怎么做。
答案 0 :(得分:1)
不推荐使用WL.Page API,而是使用$ .load()。 请参阅此处的培训模块和示例 - http://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v600/03_02_Building_a_multi_page_application.pdf
答案 1 :(得分:1)
仅供参考,WL.Page.Load已在Worklight V6中弃用,转而支持加载片段的原生JavaScript和移动框架方法。
你没有提到你是否使用移动框架,但是我已经使用以下内容为dojo移动小部件加载css :( domConstruct是:“dojo / dom-construct”)
var link1 = domConstruct.create("link", {
type : "text/css",
rel : "stylesheet",
href : "js/widget/themes/myCss1.css"
});
var link2 = domConstruct.create("link", {
type : "text/css",
rel : "stylesheet",
href : "js/widget/themes/myCss2.css"
});
var head = document.getElementsByTagName("head")[0];
head.appendChild(link1);
head.appendChild(link2);
对于jQuery,看起来答案就在这里:Dynamically loading css stylesheet doesn't work on IE
我想你可以将css附加到你的片段而不是文件头,以便在卸载片段时将其卸载。这里有一个关于这是否合法的论点:load external css file in body tag在douse中,你可以在加载时将链接附加到头部,并在卸载片段时显式删除它。
如果您正在使用dojo mobile并将JavaScript组织到模块中,则无需显式加载* .js文件。只需使用require()来加载所需的任何内容。
对于使用jQuery mobile的人来说,Require.js(http://requirejs.org)也有类似的用途。