动态加载js,实例(不全)

来源:互联网 发布:linux查看重启原因 编辑:程序博客网 时间:2024/05/21 08:43


其中: 异步加载js,并且需要加载完成后调用其中的方法。所以需要判断 js什么时候加载完毕

详见 loadJs(...)方法

正常思考逻辑

1.确保iframe能相互调用

2.确保js方法本身确实没有问题

3.确保 调用方法前 ,js加载完毕

4.兼容浏览器

5.其它原因可能会加载失败(网络缓慢)

网络慢的问题:

1.提示用户刷新页面

2.延迟 重新加载


index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>火车后台</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"></head></body><script type="text/javascript">  function parentFram(){  // document.getElementById("main").contentWindow.showPop();  var str = ''  +'<div id="pop" style="display:none;background:#fff;float:right;width:260px;border:1px solid #e0e0e0;font-size:12px;position: fixed;right:10px;bottom:10px;margin:0;padding:0;">'+'<div id="popHead" style="line-height:32px;background:#EAF30B;border-bottom:1px solid #e0e0e0;position:relative;font-size:12px;padding:0 0 0 10px;margin:0;padding:0;">'+'<a id="popClose" title="关闭" style="position:absolute;right:10px;top:1px;margin:0;padding:0;">关闭</a>'+'<h2 style="font-size:14px;color:#F32D2D;line-height:32px;height:32px;margin:0;padding:0;">温馨提示</h2>'+'</div>'+'<div id="popContent" style="padding:5px 10px;margin:0;padding:0;">'+'<dl>'+'<dt id="popTitle"><a href="http://yanue.info/" target="_blank" style="line-height:24px;font-size:14px;font-family:微软雅黑;color:#333;font-weight:bold;text-decoration:none;margin:0;padding:0;">这里是参数</a></dt>'+'<dd id="popIntro" style="text-indent:24px;line-height:160%;margin:5px 0;color:#666;mmargin:0;padding:0;">这里是内容简介</dd>'+'</dl>'+'<p id="popMore" style="text-align:right;border-top:1px dotted #ccc;line-height:24px;margin:8px 0 0 0;"></p>' +'</div>'+'<br/><br/>';    var popDiv=document.createElement('div');            popDiv.id="pop11";            popDiv.style.position = 'fixed';            popDiv.style.float = 'right';            popDiv.style.bottom = '10px';            popDiv.style.margin = 0;            popDiv.style.padding = 0;            popDiv.innerHTML = str;  var oHead1 = document.getElementById("main").contentWindow.document.getElementsByTagName("body")[0];   var scriptTag = document.getElementById("main").contentWindow.document.getElementById("pop");    if(!scriptTag){  oHead1.appendChild(popDiv)  }  // 加载js  loadJs("script1","/js/jquery-1.4.2.min.js",function(){  loadJs("script2","/js/back/yanue.pop.js",function(){  document.getElementById("main").contentWindow.showPop();  });  });  }// 加载jsfunction loadJs(id,url,callback){var oHead = document.getElementById("main").contentWindow.document.getElementsByTagName("head")[0]; var oScript= document.createElement("script");     oScript.id = id;    oScript.async = "async";     oScript.type = "text/javascript";     oScript.src=url;         var oTag1 = document.getElementById("main").contentWindow.document.getElementById(id);      if(!oTag1){  oHead.appendChild(oScript);  }    oScript.onload = oScript.onreadystatechange = function(){ if ((!this.readyState) || this.readyState == "complete" || this.readyState == "loaded" ){   callback();}else{alert("can not load the "+url+" file");
// setTimeOut('','3000'); 重新加载    } }}</script><frameset rows="64,*" frameborder="NO" border="0" framespacing="0"><frame src="/trainBack/indexTop" noresize="noresize" frameborder="NO"name="topFrame" scrolling="no" marginwidth="0" marginheight="0"target="main" /><frameset cols="200,*" rows="10000,*" id="frame"><frame src="/trainBack/indexLeft" name="leftFrame"noresize="noresize" marginwidth="0" marginheight="0" frameborder="0"scrolling="auto" target="main" /><frame src="/trainBack/indexRight" id="main" name="main"marginwidth="0" marginheight="0" frameborder="0" scrolling="auto"target="_self" /></frameset></frameset><noframes><body></body></noframes></html>

left.jsp

parent.parentFram();




0 0
原创粉丝点击