Browser Elm:如何呈现其中的每个Elm模块';s自己的浏览器窗口?-同一应用程序中的两个模块(主模块)
我有一个多显示器设置(带有4个显示器),我想构建一个应用程序,它将跨越其中3个显示器,就像这样:--所有显示器都处于Browser Elm:如何呈现其中的每个Elm模块';s自己的浏览器窗口?-同一应用程序中的两个模块(主模块),browser,google-chrome-devtools,elm,Browser,Google Chrome Devtools,Elm,我有一个多显示器设置(带有4个显示器),我想构建一个应用程序,它将跨越其中3个显示器,就像这样:--所有显示器都处于扩展模式。 这是一个web应用程序,所以它必须位于浏览器窗口内。我不知道怎么做这种形状的镀铬窗。据我所见,浏览器窗口必须是矩形的 我无法修改应用程序的设计,我尝试了许多布局。。我不想失去功能。。。拥有这么多显示器真是太糟糕了,我不能用这么多空间做我想做的事。因此,最终的布局必须类似于您在上面看到的红色形状 我认为基于功能将我的应用程序拆分为多个较小的chrome窗口是一个好主意,
扩展模式
。
这是一个web应用程序,所以它必须位于浏览器窗口内。我不知道怎么做这种形状的镀铬窗。据我所见,浏览器窗口必须是矩形的
我无法修改应用程序的设计,我尝试了许多布局。。我不想失去功能。。。拥有这么多显示器真是太糟糕了,我不能用这么多空间做我想做的事。因此,最终的布局必须类似于您在上面看到的红色形状
我认为基于功能将我的应用程序拆分为多个较小的chrome窗口是一个好主意,而不是有一个大而肥的chrome窗口,可以容纳所有4台显示器(还可以隐藏我的终端或其他程序)
例如:
-- main module - this holds my app
-- module 1
-- module 2
-- module 3
-- module 4 .. etc
我希望他们像这样:
-同一个应用程序,多个chrome窗口中的多个组件/模块
如果我把它们排列得更近,并隐藏窗口(最小化按钮、关闭按钮等),视觉上我会得到一个我想要的形状的非常好的应用程序
Chrome在同一个应用程序行为上支持此多窗口。。您可以在开发者控制台中看到它,在这里您可以在样式Css面板中修改某些内容,并实时更新页面
开发人员工具以某种方式与页面通信。-也许这不是我所需要的-但是这个想法是从另一个完全不同的窗口修改应用程序内部的内容。Chrome开发者工具基于浏览器,也可以作为单独的窗口打开
与此行为相关-我发现,它让你在同一个域的两个Chrome窗口之间传递信息-,但它是完全相同的应用程序,相同的内容不是更大应用程序的一部分。。。这就是问题所在。我想要的是两个具有不同内容的窗口,就像网页上的开发者工具一样进行交流
elm体系结构非常适合于交流更改,但我不知道如何在所有窗口中实现更新。如果我单击监视器1模块4上的某个内容,我希望在监视器2模块2中看到结果
问题:
我在黑暗中。欢迎任何想法:)您可以尝试在不同选项卡之间使用共享上下文。这个API是相当新的,所以它可能有一些含义 一个更简单的选择是 简而言之,您可以侦听本地存储中的更改。 尝试在多个选项卡中打开此文件(如果要签出两次,请记住刷新存储)
我使用所有这些神奇的工具来升级您的Elm应用程序,您就一切就绪。是否可以选择在中构建您的应用程序?看起来有几种不同的方式可以实现窗口间的沟通。你仍然可以用Elm作为前端的Electron。嗯,谢谢@Chad Gilbert,看起来很有希望。。。我会带着一个答案回来:)@Chad Gilbert Electron绝对是做这类事情的好方法。它还可以通过Node.js访问Os API。比如关闭/最小化窗口、通知、文件系统等。你的评论让我认识了Electron Land,真是太棒了!!
let counter = 0;
if (window.localStorage.getItem('counter') === null) {
setInterval(
() => {
document.body.innerText = counter;
window.localStorage.setItem('counter', counter)
counter++
},
1000
)
} else {
window.addEventListener('storage', event => {
document.body.innerText = event.newValue;
})
}