问题描述
我的目的是如果用户在家中工作并且未连接到公司VPN,则通过Javascript在我们的首页上隐藏 iframe 。
要了解最终用户是否已连接到我们公司的VPN,我已将虚拟映像上传到我们的一个Intranet站点,只有在连接到VPN并尝试访问该映像时,我们才能连接该虚拟映像在Javascript上。我的代码如下:
function request_image(url) {
return new Promise(function(resolve,reject) {
var img = new Image();
img.onload = function() { resolve(img); console.log('test1'); };
img.onerror = function() { reject(url); console.log('test2'); };
img.src = 'https://ourwebsite/Pages/Resource.aspx?ItemPath=%2fwhite.png';
});
}
function ping(url,multiplier) {
return new Promise(function(resolve,reject) {
var start = (new Date()).getTime();
var response = function() {
var delta = ((new Date()).getTime() - start);
delta *= (multiplier || 1);
if (delta>50) resolve(delta);
else reject(delta);
console.log('this is delta: ' + delta);
};
request_image(url).then(response).catch(response);
setTimeout(function() { reject(Error('Timeout')); },1000);
});
}
和主页上:
var do_ping = function() {
ping('http://mssql04.nwhreit.com').then(function(delta) {
}).catch(function(error) {
document.getElementsByClassName('CanvasZoneContainer')[1].style.display='none';
});
};
do_ping();
运行此代码时,我看到它总是命中img.onerror
,因此在控制台中,无论是否连接到VPN,我都会看到“ test2”。为什么?连接到VPN时,我想点击img.onload
。我看不到我在做什么错,任何帮助将不胜感激。
请注意,我可以转到“ https://ourwebsite/Pages/Resource.aspx?ItemPath =%2fwhite.png”并成功查看图像,因此该链接有效。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)