【问题标题】:add Show and hide class using JS in PWA area在 PWA 区域添加使用 JS 显示和隐藏类
【发布时间】:2021-07-14 16:07:16
【问题描述】:

我有 PWA 按钮,该按钮仅在 beforeinstallprompt 触发并添加类 available 时出现,在此之前,显示为无。
我想要一个虚拟按钮,它应该是显示块,但是当 beforeinstallprompt 触发时,虚拟按钮应该是 display none
我无法添加 JS 功能来做同样的事情。 我的部门:

<button class="btnApp"> PWA Button </button>
<button class="dummy"> Dummy Button </button>

我的 CSS:

button.mybtn {
    display: none;
}
button.mybtn.available {
    display: block;
}

我的 JS:

"serviceWorker" in navigator && (navigator.serviceWorker.register("/service-worker.js", {
    scope: "/"
}), function() {
    "use strict";
    var e = function(e) {
        var t, n = function() {
            t && (t.prompt(), t.userChoice.then((function(n) {
                t = null, ga("send", "event", "install", "install", n), e.classList.remove("available")
            })).catch((function() {
                t = null, ga("send", "event", "error", "error"), e.classList.remove("available")
            })))
        };
        window.addEventListener("beforeinstallprompt", (function(n) {
            return t = n, ga("send", "event", "available", "available"), e.classList.add("available"), !1
        })), window.addEventListener("appinstalled", (function() {
            document.body.querySelector(".btnApp").style.display = "none", t = null, ga("send", "event", "installed", "installed"), e.classList.remove("available")
        })), e.addEventListener("click", n.bind(this)), e.addEventListener("touchend", n.bind(this))
    };
    window.addEventListener("load", (function() {
        var t = document.body.querySelector(".btnApp");
        new e(t)
    }))
}())

【问题讨论】:

    标签: javascript css progressive-web-apps


    【解决方案1】:

    我不太确定我是否理解这个问题,但我认为您要问的是如何启用和禁用脚本文件中的元素; 为此,您可以执行以下操作:

    document.getElementById("btnApp").style.display = "none";
    document.getElementById("btnApp").style.display = "block";
    

    分别禁用和启用元素。如果这没有回答您的问题,请告诉我

    【讨论】:

    • 对于btnApp类,很好。我想在安装提示触发之前为具有类名称“dummy”的虚拟按钮添加一个类“dummyavailable”,您可以看到我的 JS 并帮助我使用它。
    • 所以做一些事情,比如 document.getElementById("ID").className = "button.mybtn.available";将 div 元素更改为另一个类?
    • document.getElementById("dummy").style.display = "none";你能把它集成到 beforeinstallprompts 函数中吗?
    • 如果你要隐藏元素我会做- document.getElementById("dummy").style.display = "none"; - 而不是让它在显示类型更改之前不出现
    • 好的,请自定义
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2011-04-16
    相关资源
    最近更新 更多