问题描述
Jquery ui tabs的插件使用时,在用ajax方法调用其他的jsp页面在tab上显示时发现,必须要在主页面上把被调用页面的里使用到的所有js全部加载才能正常使用(比如,main.jsp里面使用tabs插件调用ajax.jsp页面,但ajax.jsp页面里引用了ajax.js文件,这时必须要在main.jsp里也引入ajax.js文件才能正常工作)有没有高人可以指点下小弟,如何不用在主页面上加载就能实现?多谢了。 问题补充:lizhi92574 写道
解决方案
没有,我发段js给你。你添加到jquery ajax回调函数里面,试试看能不能解析js var hd = document.getElementsByTagName("head")[0]; var re = /(?:<script([^>]*)?>)((n|r|.)*?)(?:</script>)/ig; var srcRe = /ssrc=(['"])(.*?)1/i; var typeRe = /stype=(['"])(.*?)1/i; var match; while(match = re.exec(html)){ var attrs = match[1]; var srcMatch = attrs ? attrs.match(srcRe) : false; if(srcMatch && srcMatch[2]){ var s = document.createElement("script"); s.src = srcMatch[2]; var typeMatch = attrs.match(typeRe); if(typeMatch && typeMatch[2]){ s.type = typeMatch[2]; } hd.appendChild(s); }else if(match[2] && match[2].length > 0){ if(window.execScript) { window.execScript(match[2]); } else { window.eval(match[2]); } } }
解决方案二:
那可能就是jquery不解析jsp里面js了,Ext到不会出现
解决方案三:
你在主页面加载 需要使用到的js,其他可以放在jsp里面加载。
解决方案四:
没办法实现,main.jsp 里使用了ajax.js里函数必须要导入,才能正常使用。不然你在ajax.jsp不导入ajax.js 使用main.jsp里面的即可
解决方案五:
如果在main.jsp 里面加载了ajax.js 那么ajax.jsp里可以不用加载了,前提使用ajax里面对象必须获取main.jsp window对象来使用比如ajax.js 有个test 函数 main.jsp 使用iframe 引用ajax.jsp要在ajax.jsp里不导入js调用test 函数 可以使用 window.parent.test();//即可