我有四个网址,我正在尝试构建一个简单的HTML-JavaDcript方法,以确定网址是否正常运行。
网址如下:
dim sPath as string, sFullPath as string
sFullPath = "C:/Videos/New/VideoName.mp4" ' or C:\Videos\New\VideoName.mp4
if len(sFullPath) > len(replace(sFullPath, Chr(47), vbnullstring)) then
sPath = replace(sFullPath, split(sFullPath, Chr(47))(ubound(split(sFullPath, Chr(47)))), vbnullstring)
debug.print sPath & " with forward slashes"
elseif len(sFullPath) > len(replace(sFullPath, Chr(92), vbnullstring)) then
sPath = replace(sFullPath, split(sFullPath, Chr(92))(ubound(split(sFullPath, Chr(92)))), vbnullstring)
debug.print sPath & " with back-slashes"
else
debug.print "unknown separator"
end if
https://www.kbhome1.com
https://www.kbhome2.com
https://www.kbhome3.com
现在,当使用IE中的地址栏加载网址时,它们都提供了一个公共文本,其中包含与使用的URL相关的一些变体:
https://www.kbhome4.com
Your app1 is up and running
Your app2 is up and running
Your app3 is up and running
因此,我尝试在iframe中加载网址,然后我尝试获取公共文本Your app4 is up and running
,这会让我知道各个网址已启动。现在问题是URL被托管在不同的服务器中,因此Your app
因此我不断收到此错误:
iframe错误权限被拒绝访问属性
现在有没有人知道其他任何方式来实现我想做的事情?非常感谢任何帮助。
答案 0 :(得分:1)
为您提供几种选择:
听起来您已经打开了iframe,并在其中加载了这些网址。您可以通过postMessage
(允许跨源)向iframe窗口发送消息,并让他们回复说明他们是否已启动。例如,在主窗口中:
window.addEventListener("message", function(e) {
// Check iframe reply's origin and handle it here
}, false);
theIframe.contentWindow.postMessage("ack", "https://kbhome1.com");
在那里,您正在收听回复消息,并向iframe发送消息,要求其回复。
有关postMessage
的更多信息:
但它不需要那么复杂。如果您只想确保这些应用程序已启动,请在每个应用程序上添加一个小脚本文件,例如: https://kbhome1.com/up.js
,其中包含:
hostStatus("kbhome1", true);
...然后在您的页面上,添加一个功能:
function hostStatus(host, up) {
// ...mark that host as "up" or "down" based on the `up` flag
}
...并为每个主机添加一个脚本标记:
var script = document.createElement('script');
script.src = "https://kbhome1.com/up.js";
script.onerror = function() {
hostStatus("kbhome1", false); // It's not up
};
document.querySelector("script").parentNode.appendChild(script);
如果您看到hostIsUp
电话,它就会响起;如果你不这样做,那就不是(我们可以使用上面的error
事件来获得积极的“它不会”结果)。
如果您正在进行“实时”状态页面,则可以多次执行此操作。
答案 1 :(得分:0)
您可能会尝试向这些网址发送简单的 AJAX GET 请求,看看您是否获得 200 状态。
同样,对于您可能尝试使用 jsonp 数据类型的跨域问题,这可能会失败。