`

异步加载js--- iframe加载完后 异步加载js

    博客分类:
  • js
 
阅读更多
function(jsUrl,cb,async){
			var head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
			var script = document.createElement( "script" );
			if( async !== false ){ //异步
				script.async = "async";
				script.defer = "defer";
			}
			script.src = jsUrl;
			if(cb){
				try{
					script.onload = script.onreadystatechange = function( _eve, isAbort ) {
						if(isAbort || !script.readyState || /loaded|complete/.test( script.readyState )){
							// 清除ie状态否则ie版本不同会执行对此回调方法
							script.onload = script.onreadystatechange = null;
							script = undefined;
							if(!isAbort){//!isAbort = (success ok 200)
								cb();
							}
						}
						
					};
				}catch(e){}
			}
			head.insertBefore( script, head.firstChild ); 
		
		}

 

var frame = document.getElementById('app_comment_dlg_iframe');
		frame.onload = frame.onreadystatechange = function(_eve, isAbort) {
			if (isAbort || !frame.readyState
					|| /loaded|complete/.test(frame.readyState)) {
				frame.onload = frame.onreadystatechange = null;
				frame = undefined;
				if (!isAbort) {
					Comment.loadJs(CONST_COMMENT.BSFW_URL
							+ "/skins/js/messenger.js", function() {
						var _iframe = document.getElementById('app_comment_dlg_iframe');
						var messenger = Messenger.initInParent(_iframe);
						messenger.onmessage = function(data) {
							var res = eval('(' + data + ')');
							if (res.res_data) {
								if (res.is_close) {
									Comment.closeCommentDlg();
									alert(res.cause);
								} else {
									alert(res.cause);
								}
							} else {
								_iframe.style.height = data + 'px';
								divContain.style.height = data + 'px';
							}
						};
					});
				}
			}
		};

 

分享到:
评论

相关推荐

    js调用-嵌入iframe

    - **加载顺序**:确保主页面的JS代码在IFrame加载完成后执行,否则可能无法正确获取或操作IFrame内容。 - **异步加载**:若IFrame的内容是异步加载的,可能需要监听`load`事件来确保内容已完全加载。 - **同步问题**...

    iframe 异步加载技术及性能分析

    友好`iframe`通常利用JavaScript通信(如`postMessage` API)来在主页面和`iframe`之间传递信息,实现异步加载和交互。 每种加载方法在不同场景下都有其适用性。在选择加载策略时,应考虑内容的重要性、加载时间、...

    C#判断webbrowser页面最终加载完成

    1. **等待所有iframe加载**:检查`WebBrowser.Document.Window.Frames.Count`,如果存在多个框架,我们需要监听每个框架的`DocumentCompleted`事件,确保所有框架内的页面都已完成加载。 2. **监听`ProgressChanged...

    JS同步、异步、延迟加载的方法

    本文讲述了JS同步、异步、延迟加载的方法。分享给大家供大家参考,具体如下: 一:同步加载 我们平时使用的最多的一种方式。 [removed][removed] 同步模式,又称阻塞...异步加载又叫非阻塞加载,浏览器在下载执行j

    js下判断 iframe 是否加载完成的完美方法.docx

    由于 iframe 的加载过程是异步的,因此我们需要使用合适的方法来判断 iframe 是否加载完成。本文将介绍几种判断 iframe 是否加载完成的方法。 方法一:使用 onload 事件 在 HTML 中,iframe 元素支持 onload 事件...

    通过JavaScript+IFRAME实现页面分屏加载

    这就是所谓的"分屏加载"或"异步加载"。JavaScript 和 IFRAME 结合使用是实现这一功能的一种常见方法。下面我们将深入探讨这个话题。 ### 1. IFRAME 基础 **IFRAME(Inline Frame)** 是HTML中的一个元素,允许我们...

    lazyload.js实现图片异步延迟加载

    除了图片,`lazyload.js`还可以应用于其他元素的延迟加载,如iframe、video等,只需替换`data_attribute`即可。 综上所述,`lazyload.js`是一个强大的工具,可以帮助我们实现高效的图片异步延迟加载,提高网页性能...

    vue-friendly-iframe-一个Vue js组件,用于创建超快速加载,无阻塞的iframe。-Vue.js开发

    vue-friendly-iframe基于Aaron Peter的文章,用于创建动态异步iframe的Vue js组件:http://www.aaronpeters.nl/blog/iframe-loading- vue-friendly-iframe Vue js组件,用于基于以下内容创建动态异步iframe:亚伦·...

    异步加载script的代码

    标题提到的“异步加载script的代码”是指一种通过异步方式引入JavaScript脚本的方法,以避免阻塞页面渲染。描述中指出,直接通过异步请求另一页面的script不会执行,因为返回的文本是HTML原文件,而非经过浏览器解析...

    动态创建iframe,并动态添加js执行代码

    在IT行业中,动态创建iframe和动态添加JavaScript代码是一种常见的技术,尤其在页面加载后需要异步加载内容或者实现跨域通信时。以下是对这个主题的详细讲解。 首先,`iframe`(Inline Frame)是HTML中的一种元素,...

    不使用XMLHttpRequest实现异步加载 Iframe和script

    **Iframe异步加载** Iframe(Inline Frame)是一种在HTML文档中嵌入另一个HTML文档的方式。在异步加载的场景下,我们可以通过动态改变Iframe的`src`属性来实现内容的加载。在提供的代码示例中,`MoniAjax1`函数就是...

    js-screen-shot编译后的dist文件

    `js-screen-shot`经过编译后生成的dist文件是它实际运行的核心,包含编译后的代码,便于开发者在项目中引入和使用。 在提供的信息中,`dist`目录下特别提到了`screenShotPlugin.umd.js`文件。UMD(Universal Module...

    js检测iframe是否加载完成的方法

    当iframe加载完成后,显示加载完成的消息;否则,显示正在加载的信息。 4. **清除定时器**:当`fnLoadOk`返回`true`时,意味着所有iframe加载完成,此时清除定时器 `_check`,防止不必要的资源浪费。 在示例代码中...

    EXT 布局 tab布局 普通拖拽 异步加载的树 节点可以编辑的树

    目录: 1. layout-test-01.html为上下布局,并且显示区采用iframe的例子。...6.tree-asynch-test.html为异步加载的树 7.tree-edit-test.html为节点可以编辑的树 8.tree-tz-test.html为tree节点拖拽的练习

    ext使用--Panel和iframe联合使用时页面高度的解决方法

    然而,由于IFrame内容是异步加载的,Panel可能无法正确预估IFrame的高度,导致滚动条的出现或内容被裁剪。 为了解决这个问题,我们可以采取以下策略: 1. **监听IFrame加载事件**:IFrame有一个`load`事件,当...

    JS加载iFrame出现空白问题的解决办法

    总结来说,针对IE6浏览器中使用JavaScript加载iframe时出现的空白问题,可以通过以下方法解决:利用`setTimeout`进行延迟加载、动态修改iframe的`src`属性、使用`document.frames`来控制iframe加载,以及通过控制...

    ajax_XML_iframe无刷新异步读取 源代码

    在无刷新异步读取中,IFrame常用来隐藏地加载页面,例如在后台加载数据,这样用户不会看到页面的跳转或刷新。IFrame中的内容可以独立于主页面更新,这使得它成为实现异步通信的一种方式。 从提供的文件名来看,这些...

    php之表单文件iframe异步上传

    服务器处理完文件后,响应会被`<iframe>`接收,然后JavaScript可以读取`<iframe>`的内容,从而获取上传状态和返回数据。 以下是实现步骤: 1. 创建一个包含`<iframe>`的HTML页面,设置`iframe`的`name`属性,以便...

    iframe实现图片异步上传.doc

    `$(document).ready()`确保在DOM加载完成后执行相关代码。`$("#waiguan_add").bind("change"`监听文件输入框的改变事件,当用户选择图片时,调用`submitImage`函数。 5. **图片上传逻辑**: `submitImage`函数处理...

Global site tag (gtag.js) - Google Analytics