繁体   English   中英

如何使用 javascript 或 vbscript 检查 url 是否已完全加载?

[英]How can I check using javascript or vbscript that a url has loaded completely or not?

我有一组 url。我需要检查这些 url 是否已完全加载并记录页面完全加载所需的时间。完全使用 java 脚本或 vbscript 加载

您可以使用JavaScript来控制iframe事件一样

 var beforeLoad; function newSite() { beforeLoad = (new Date()).getTime(); $("#res").html('loading...'); //loadURL(document.getElementById('urltext').value);//to deal with The X-Frame-Options response header document.getElementById('myframe').setAttribute('src', document.getElementById('urltext').value) ; } $('#myframe').load(function(){ $("#res").html('This request took '+(new Date().getTime() - beforeLoad)+' ms'); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" value="https://en.wikipedia.org" id="urltext" /> <input type="button" value="Go" onClick="newSite()" /> <h3 id="res"> </h3> <br> <iframe id="myframe" src=""></iframe>

它可以处理 X-Frame-Options 响应头使用:

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="text" value="" id="urltext" /> <input type="button" value="Change site" onClick="newSite()" /> <h3 id="res"> </h3> <br> <iframe id="myframe" src=""></iframe> <script> var beforeLoad; function newSite() { beforeLoad = (new Date()).getTime(); $("#res").html('loading...'); loadURL(document.getElementById('urltext').value); } $('#myframe').load(function(){ $("#res").html('This request took '+(new Date().getTime() - beforeLoad)+' ms'); }); </script> <script> //deal with The X-Frame-Options response header var iframe = document.getElementsByTagName('iframe')[0]; var url = iframe.src; var getData = function (data) { if (data && data.query && data.query.results && data.query.results.resources && data.query.results.resources.content && data.query.results.resources.status == 200) loadHTML(data.query.results.resources.content); else if (data && data.error && data.error.description) loadHTML(data.error.description); else loadHTML('Error: Cannot load ' + url); }; var loadURL = function (src) { url = src; var script = document.createElement('script'); script.src = 'http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20data.headers%20where%20url%3D%22' + encodeURIComponent(url) + '%22&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=getData'; document.body.appendChild(script); }; var loadHTML = function (html) { iframe.src = 'about:blank'; iframe.contentWindow.document.open(); iframe.contentWindow.document.write(html.replace(/<head>/i, '<head><base href="' + url + '"><scr' + 'ipt>document.addEventListener("click", function(e) { if(e.target && e.target.nodeName == "A") { e.preventDefault(); parent.loadURL(e.target.href); } });</scr' + 'ipt>')); iframe.contentWindow.document.close(); } //--- </script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM