Microsoft Edge是一个针对Windows 10发布的新Web浏览器,与Internet Explorer(IE)11一起安装.Edge旨在成为IE的替代Web浏览器,因为IE将在IE 11之后停止开发.Edge使用EdgeHTML布局引擎(三叉戟叉)和Chakra Javascript引擎。
我已经在我的应用程序中实现了这个动画选项卡,遵循codepen上的设置。 现在,我想使用普通的 Javascript,而不是 jquery,这就是我写的: ... 我已经在我的应用程序中实现了这个动画选项卡,遵循codepen上的此设置。 现在,我想使用普通的 Javascript,而不是 jquery,这就是我写的: <div class="slides"> <div class="slides__slide"> <span class="slide-title"> <a href="#">yoga coaching</a> <i class="ion-chevron-down"></i> </span> <div class="experience__content"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi rem ab voluptate provident voluptatum veniam cupiditate beatae expedita veritatis aliquid officia doloribus dolore maiores doloremque mollitia! A ducimus autem ut! Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ducimus obcaecati velit autem tenetur doloribus perferendis esse odit animi quasi deserunt recusandae perspiciatis a sapiente aliquam qui libero dolor officiis assumenda. </div> </div> 这是 javascript: const slideTitles = Array.from(document.querySelectorAll('.slide-title')); let activeClasses = [] slideTitles.forEach(function(el){ el.addEventListener('click',function(){ if(activeClasses.length>0){ activeClasses[0].classList.remove('active') activeClasses[0].firstElementChild.getElementsByTagName('i')[0].classList.replace('ion-chevron-up','ion-chevron-down') //activeClasses[0].firstElementChild.lastElementChild.classList.replace('ion-chevron-up','ion-chevron-down') activeClasses = [] } this.parentElement.classList.add('active') this.lastElementChild.classList.replace('ion-chevron-down','ion-chevron-up') activeClasses.push(this.parentElement) }) }) 这个实现在 chrome、firefox opera 中运行良好(我目前无法在 Safari 上测试它),但在 Edge 中我遇到一些问题:首先,当单击幻灯片时,宽度首先递增,然后位置(显然没有过渡效果),这种情况也会在 codepen 中发生,但在我的实现中,删除 classList 函数似乎不起作用:因为如果我单击另一张卡,之前选择的卡仍处于活动位置,并且不会上去吧。 classList 实现似乎可以在 Edge 中使用,而且我编写的代码也可以在其他浏览器中使用.. 我用Edge几乎没有问题,但在与Opera mobile战斗几天后发现: classList 属性 可能 如果元素在 HTML 代码中没有“class”属性,则返回 null 而不是空列表。 如果它不为空,.remove()方法可能会中止脚本执行,如果指定的类名不在classList返回的列表中,所以我必须检查这一点,然后它开始工作: if (element.classList.contains("className")) element.classList.remove("className"); 类似.add()方法可能会添加两次类名,所以.remove()只删除一个,还剩下另一个,所以我不得不添加类似于第2点的检查。 (与 Edge 相关)CSS 规则可能 比 JavaScript 添加/修改的类或样式具有更高的优先级。 我知道第 1 - 3 点与规范相矛盾,但看起来也像某些浏览器的实现。
我只想针对应用程序中的 2 个不同角色优化 Applayout 中抽屉的宽度。我有正确的 CSS 来做到这一点,但开发时间太长,因为 Vaadi...
有没有办法调整网络浏览器窗口的大小,使其尺寸达到特定的宽度和高度?
我需要使用特定尺寸查看网页,而不必一直调整网络浏览器窗口的大小。
DartPad 在 Chrome 和 Edge 中显示白屏并出现 WebAssembly 错误
说明: 最近,当我在 Google Chrome 中访问 DartPad 时,屏幕全白。 错误消息: 使用 Chrome DevTools,我发现了以下错误消息: 创建上下文失败!斯夸...
我正在制作一个货币兑换网站(作为大学作业),我在这里面临这个荒谬的问题。 这是我的整个代码: @import url('https://fonts.googleapis.com/css2?family=Popp...
我已经验证了扩展程序的 json 文件。但该图标没有显示在边缘。我该如何解决这个问题?
我之前的问题。 答案很有帮助,但我仍然遇到图标问题。 它在边缘仅显示为拼图图标,但我需要更改其图标。 图标: 我已经验证过了...
我已经使用 ChatGPT 很长时间了,我想保留我的提示的离线副本。我遇到了一个名为“ExportGPT”的扩展,它可以让我将聊天内容导出为 PDF、Word...
我真的找不到关闭地址栏搜索的方法。我只想转到我输入的绝对地址。我知道在前面添加 http:// 可以做到这一点。但不,我只想要一个仅方法类型...
如何从命令提示符关闭 Microsoft Edge 浏览器的当前选项卡?
>启动microsoft-edge:http://google.com 它在边缘浏览器新选项卡中打开了 google.com。现在我想关闭。在这里我使用了 stop 但它不起作用。 >停止 microsoft-edge:http://google.com
Selenium Edge Python 错误在测试执行后自动关闭 Edge 浏览器
我正在尝试测试 selenium 以获取自动登录网站的解决方案,但我什至无法让 Selenium 保持打开状态。它做了现在应该做的事情,然后在没有医生的情况下立即退出......
Chrome 通过 Windows 命令提示符打印到 PDF
我正在尝试将网页打印为 PDF,但截至本周仍无法正常工作。我正在使用 Chrome,但它也无法与 Edge 配合使用。 “C:\Program Files (x86)\Google\Chrome\Applicatio
所以,我编写了一段简单的代码: 前端: FCM测试</tit...</desc> <question vote="1"> <p>所以,我编写了一段简单的代码:</p> <p>前端:</p> <pre><code><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>FCM TEST</title> </head> <body> <p id="token" style="padding-left: 50px"></p> <script src="https://www.gstatic.com/firebasejs/10.7.0/firebase-app-compat.js"></script> <script src="https://www.gstatic.com/firebasejs/10.7.0/firebase-messaging-compat.js"></script> <script> const firebaseConfig = { apiKey: "XXXXX", authDomain: "XXXXX", projectId: "XXXXX", messagingSenderId: "XXXXX", appId: "XXXXX", }; firebase.initializeApp(firebaseConfig); const messaging = firebase.messaging(); if ("serviceWorker" in navigator) { navigator.serviceWorker .register("/firebase-messaging-sw.js") .then(function (registration) { console.log( "Registration successful, scope is:", registration.scope ); Notification.requestPermission() .then(function () { console.log("Notification Permission"); let serviceWorkerRegistration = { vapidKey: "XXXXX", }; if (registration) { console.log("included registration"); serviceWorkerRegistration = { ...serviceWorkerRegistration, ServiceWorkerRegistration: registration, }; } return messaging .getToken(serviceWorkerRegistration) .then((token) => { if (token) { console.log("Token: ", token); document.getElementById("token").innerHTML = token; } else { // Show permission request. console.log( "No Instance ID token available. Request permission to generate one." ); } }); }) .catch(function (reason) { console.error(reason); }); messaging.onMessage((payload) => { console.log( "[firebase-messaging-sw.js] Received foreground message ", payload ); // Customize notification here const notificationTitle = payload.data.title; const notificationOptions = { body: payload.data.body, // icon: "/firebase-logo.png", }; registration.showNotification( notificationTitle, notificationOptions ); }); }) .catch(function (err) { console.log("Service worker registration failed, error:", err); }); } </script> </body> </html> </code></pre> <p>我的 firebase-messaging-sw.js:</p> <pre><code>importScripts( "https://www.gstatic.com/firebasejs/10.7.0/firebase-app-compat.js" ); importScripts( "https://www.gstatic.com/firebasejs/10.7.0/firebase-messaging-compat.js" ); const firebaseConfig = { apiKey: "XXXXX", authDomain: "XXXXX", projectId: "XXXXX", messagingSenderId: "XXXXX", appId: "XXXXX", }; firebase.initializeApp(firebaseConfig); const messaging = firebase.messaging(); messaging.onBackgroundMessage((payload) => { console.log( "[firebase-messaging-sw.js] Received background message ", payload ); // Customize notification here const notificationTitle = payload.data.title; const notificationOptions = { body: payload.data.body, // icon: "/firebase-logo.png", }; self.registration.showNotification(notificationTitle, notificationOptions); }); </code></pre> <p>在后端,我制作了一个简单的 Node Express 服务器,您可以在其中从 FE 发送 FcmToken。 (确实需要复制 fcm 令牌并将其粘贴到 Postman 中)。</p> <pre><code>import { initializeApp, cert, applicationDefault } from "firebase-admin/app"; import { getMessaging } from "firebase-admin/messaging"; import express, { json } from "express"; import "dotenv/config"; import cors from "cors"; const app = express(); app.use(express.json()); app.use( cors({ origin: "*", methods: ["GET", "POST", "DELETE", "UPDATE", "PUT", "PATCH"], }) ); app.use(function (req, res, next) { res.setHeader("Content-Type", "application/json"); next(); }); initializeApp({ credential: applicationDefault(), }); app.post("/send", function (req, res) { const receivedTokens = req.body.fcmTokens; console.log("receivedToken", req.body.fcmTokens); const message = { data: { title: req.body.title, body: req.body.body, }, tokens: receivedTokens, }; getMessaging() .sendEachForMulticast(message) .then((response) => { res.status(200).json({ message: "Successfully sent message", token: receivedTokens, }); }) .catch((error) => { res.status(400); res.send(error); console.log("Error sending message:", error); }); }); app.get("/ping", function (req, res) { console.log("process env: ", process.env.GOOGLE_APPLICATION_CREDENTIALS) res.status(200).json({ message: "Successfully pinged test", file: process.env.GOOGLE_APPLICATION_CREDENTIALS, }); }); app.listen(3000, function () { console.log("Server started on port 3000"); }); </code></pre> <p>这段代码实际上适用于以下测试用例:</p> <ul> <li>Chrome Windows</li> <li>边缘窗口</li> <li>Chrome 安卓</li> <li>Chrome Mac 操作系统</li> <li>Edge Mac 操作系统</li> </ul> <p>它<strong>不</strong>工作的唯一测试用例是<strong>Android 上的Edge</strong>。我的 Android 上的 Edge 版本是 120.0.2210.64</p> <p>此外,也许值得注意的是,Android 上的 Edge 中的 onMessage 函数在其他任何地方都<strong>不</strong>被调用。</p> <p>有人知道为什么吗?或者也许有解决方案?我是不是做错了什么?</p> <p>提前致谢。</p> </question> <answer tick="false" vote="0"> <p>我也有同样的问题。 如果相同的代码在不同的浏览器上运行并且令牌正确,则您可能正在使用另一个应用程序的相同域或子域。</p> <p>示例:<br/> 如果您有一个带有 <a href="https://xxx.example.com/app1" rel="nofollow noreferrer">https://xxx.example.com/app1</a> 且带有推送通知的页面。如果您在 <a href="https://xxx.example.com/app2" rel="nofollow noreferrer">https://xxx.example.com/app2</a> 添加新应用程序,Edge 将无法管理通知(2024 年 8 月)。</p> <p>如果打开通知选项,Edge 将显示一条消息:“通知已在 app1 上设置”。我不知道为什么。也许是因为 FCM 的 Service Worker 位于根文件夹中?或者只是因为 Edge 无法在同一域或子域上拥有多个应用程序?</p> <p>要解决这个问题,必须创建多个子域:<br/> <a href="https://app1.example.com" rel="nofollow noreferrer">https://app1.example.com</a> 和 <a href="https://app2.example.com" rel="nofollow noreferrer">https://app2.example.com</a></p> <p>此时 Edge 将在您的 Android 上添加“app1”作为推送通道。</p> </answer> </body></html>
Selenium IE 驱动程序启动浏览器窗口并超时。疑似边缘“防跟踪”干扰
我有一个使用 Selenium 来自动化一些数据收集的应用程序。截至上周,我的 IE 驱动程序代码已停止工作。我使用IE Driver,因为我交互的设备都使用IE8,我...
我的问题是如何使用脚本或类似的东西更改 ms Edge 的起始站点。 (Powershell脚本是最好的)我只找到了这个并且它可以工作,但普通用户无法更改...
在 Python 中使用 Selenium 打开 URL 后,Edge 浏览器立即关闭
我正在尝试使用 Selenium 和 Edge 浏览器自动执行任务。 但是,运行我的脚本后,网页打开然后立即关闭。我尝试使用 #time.sleep() 来保持浏览...
我在视频上有一个滚动杰克,可以使用 css 变换缩放视频容器。它在所有浏览器上都能正常工作,但是在 IE 和 Edge 中它会进行缩放变换,但视频会变成像素...
Chrome 内存占用量攀升至 3.554 GB,尽管 JS 堆内存为 20 MB
我的应用程序由一个表组成,该表长时间接收和显示实时数据,因此不断在 DOM 中创建和销毁表行。 我注意到那里...
我目前正在开发一个扩展,它将为标准 Edge 历史页面提供更好的替代方案。为了访问历史记录,我使用了 chrome.history,正如我之前所想的那样,它解决了我的
使用 selenium 接受 Edge 上的麦克风和摄像头权限
我正在 Edge 浏览器上运行 selenium 脚本。其中一项功能需要在两个窗口之间发起音频或视频呼叫。在 chrome 中,我们可以在 chrome 中使用 'use-fake-ui-for-media-stream'
我想使用官方程序以编程方式在 Windows 中安装 Edge MSI Edge 安装程序(151 MB),但避免使用管理员权限,并将提取的文件放在自定义文件夹中(n...