- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
设置:
有远程测量站,有集中收集/处理/呈现服务器(带有网络服务器),还有观测站,为客户显示收集到的数据。
这些观测站由简单的嵌入式计算机组成,配备网络浏览器,以信息亭模式工作,每个观测站显示来自中央服务器的一个特定网页。此网页使用 AJAX 更新,显示给定测量站的最新测量值。连接到固定监视器后,这些站应该可以几乎免维护地运行多年。
现在我们已经解决了大部分问题,但问题是:如果网络服务器出现故障怎么办?浏览器将加载“无法访问”、“404”、“权限被拒绝”、“500”或服务器当时出现的任何故障模式,并保持在那里直到有人手动重新启动观察站。
我想出的一般解决方案是将浏览器的主页设置为不是观察页面,而是始终可用的本地 HTML 文件,该文件将定期检查远程页面是否已正确加载和更新,并重新加载它如果它因任何原因无法执行。
问题:
问题在于跨框架脚本。我猜想目标网页必须作为框架、iframe、文本/HTML 类型的对象或其他某种方式加载,使其在不删除/禁用本地“容器”文件的情况下显示。几年前我写了一个跨框架脚本页面,绕过安全对策并不容易。从那时起,安全措施肯定已经加强。
因此,如果一切顺利,从远程服务器加载的页面包含一段定期启动的 javascript(一些 setInterval),如果出现问题则不会。此信号定期到达容器框架,使其重置其超时并且不采取任何其他操作。
如果信号没有到达,当超时到期时,容器开始定期刷新加载的网页,直到服务器修复并加载正确的内容,并向加载器发送信号。
每次触发特定功能时,如何让远程页面向从 file://URL 加载的本地(容器)页面发出“事件”信号(例如,设置变量)?
最佳答案
有一个图书馆叫porthole它基本上按照 SF.'s answer 描述的方式进行,但形式更正式。我刚刚写了一个网页来切换显示两个 iframe 之一。在顶级网页中我有
var windowProxy;
windowProxy = new Porthole.WindowProxy(baseURL + '/porthole/proxy.html', frameId);
windowProxy.addEventListener(onMessage);
...
function onMessage(messageEvent) {
if (messageEvent.origin !== baseURL) {
$log.error(logPrefix + ': onMessage: invalid origin');
console.dir(messageEvent);
return;
}
if (messageEvent.data.pong) {
pongReceived();
return;
}
$log.log(logPrefix + ': onMessage: unknown message');
console.dir(messageEvent);
}
...
var sendPing = function () {
$log.log(logPrefix + ': ping to ' + baseURL);
...
windowProxy.post({ 'ping': true });
};
加上一些额外的控制逻辑。在子网页中,以下是我必须添加的所有内容(加上从 Controller 调用 portholeService.init()
):
// This service takes care of porthole (https://github.com/ternarylabs/porthole)
// communication if this is invoked from a parent frame having this web page
// as a child iframe. Usage of porthole is completely optional, and should
// have no impact on anything outside this service. The purpose of this
// service is to enable some failover service to be build on top of this
// using two iframes to switch between.
services.factory('portholeService', ['$rootScope', '$log', '$location', function ($rootScope, $log, $location) {
$log.log('Hello from portholeService');
function betterOffWithFailover() {
...
}
function onMessage(messageEvent) {
$rootScope.$apply(function () {
if (messageEvent.origin !== baseUrl) {
$log.error('onMessage: invalid origin');
console.dir(messageEvent);
return;
}
if (!messageEvent.data.ping) {
$log.error('unknown message');
console.dir(messageEvent.data);
return;
}
if (betterOffWithFailover()) {
$log.log('not sending pong');
return;
}
windowProxy.post({ 'pong': true });
});
}
var windowProxy;
var baseUrl;
function init() {
baseUrl = $location.protocol() + '://' + $location.host() + ':' + $location.port();
windowProxy = new Porthole.WindowProxy(baseUrl + '/porthole/proxy.html');
windowProxy.addEventListener(onMessage);
}
return {
init: init
};
}]);
作为引用,这些页面使用 AngularJS如果您不熟悉 $rootScope.$apply
等。
关于javascript - Cross-frame cross-site scripting - 创建网页重新加载器/看门狗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16014769/
我知道 source 和 . 做同样的事情,如果标题中的其他命令对不一样,我会感到惊讶事情(因为我正在运行 bash 作为我的 shell,$SHELL [script] 和 bash [script
我在尝试启动第一个 super 账本网络时遇到此错误: $ ./byfn.sh -m up Starting with channel 'mychannel' and CLI timeout of '
哪个更好用或者更方便: ... 或 ... 最佳答案 你真的需要类型属性吗?如果您使用的是 HTML5,则不会。否则,是的。 HTML 4.01 和 XHTML 1.0 指定了 type属性是必需的,
哪个更好用或者更方便: ... 或 ... 最佳答案 你真的需要类型属性吗?如果您使用的是 HTML5,则不会。否则,是的。 HTML 4.01 和 XHTML 1.0 指定了 type属性是必需的,
使用此语法包含外部 javascript 文件的正确术语是什么: 是否包含script.js?执行了吗?是链接的吗?是叫吗?我刚刚运行了该文件吗? 最佳答案 我认为这里最常见的术语是加载外部 Jav
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: Why don't self-closing script tags work? 我刚刚发现 HTML 中的
没什么可说的了。我尝试寻找这意味着什么,但找不到。该脚本几个月来一直运行良好,并在 12 小时前停止,没有对其进行任何更改。手动运行显示此错误。 最佳答案 我遇到了同样的问题,我只需从脚本编辑器中单击
我是 Apps 脚本的新手,正在尝试了解使用另一个帐户在一个帐户中运行/触发脚本的基础知识。需要注意的是:我想在访问脚本的用户而不是拥有脚本的用户的情况下运行脚本——以便将运行时间分配给访问的用户。
我是 Apps 脚本的新手,正在尝试了解使用另一个帐户在一个帐户中运行/触发脚本的基础知识。需要注意的是:我想在访问脚本的用户而不是拥有脚本的用户的情况下运行脚本——以便将运行时间分配给访问的用户。
我最近遇到这个问题,我试图在我的 HTML 页面中导入多个 js 文件,如下 - 但我面临的问题是,它只加载第一个 js 文件,而其余的 js 文件没有加载。我还检查了浏览器中的网络部分,剩下的
Duplicate Why don’t self-closing script tags work? 我正在编写一个 ASP.net 页面,它在 JS 文件中有一些用于客户端身份验证的 Javascr
为什么以下行在许多浏览器(mozilla、IE)中不起作用? 为什么一定要这样设置? 最近我将我的项目从 XHTML 转换为 HTML5,我遇到了一些小但令人不安的不兼容性。 最佳答案 虽然脚本元
这个问题已经有答案了: Why don't self-closing script elements work? (12 个回答) 已关闭 7 年前。 经过两天的 Angular 与 Webpack
我在任何地方都找不到这个问题的答案;甚至在官方文档中也没有。我已经尝试自己编写代码,但它不起作用,所以它可能无法实现。 在下面的示例中,您可以使用条件颜色进行绘图: //STACKED EMAs
我正在通过串行端口使用 Tera Term 在板上进行一些测试。最近我发现我可以在 Tera Term 中编写一些脚本,所以我一直在做研究以帮助自动化并使测试更容易一些。 我知道 Tera Term
数组在 PineScript 中不可用。 有解决办法吗?有没有人开发过代码,作为数组使用? 我需要它做什么?我想计算每条趋势线或 S/R 水平的触及次数。 最佳答案 要实现计数器,您可以创建一个变量,
有没有办法创建一个指标来反射(reflect) Pine Script 中股票的当前价格?我需要这个指标,因为我需要在蜡烛关闭之前输入订单(当有特定的交叉时)并且回测数据是逐条提供的。我认为一个指标可
我的网站有一个脚本,如果从移动设备查看页面,格式和样式会发生变化。在网站的 2/3 页上,该脚本效果很好,正如我想要的那样。但是在最后一个上,用于更改格式和样式的脚本运行但未完全运行。我已经尝试从我的
我是否正确,市场上没有直接替代此流程: 在 chrome 插件商店中发布未列出 直接将链接分享给可以使用脚本的人 特别是,这些机制允许我使用我在所有 google dsoc 上编写的脚本。 随着转向市
我有一个简单的 Google Script 发布为具有匿名访问权限的网络应用程序。代码可用 here网络应用程序可用 here . code.gs function doGet() { retur
我是一名优秀的程序员,十分优秀!