cross-browser 相关问题

跨浏览器开发是指构建网站,Web应用程序,库或组件的实践,以便它们跨不同的Web浏览器和呈现引擎运行。

为什么 Safari 在组件周围添加蓝色边框

Safari: 为什么 Safari 会向按钮/下拉等组件添加这样的边框/轮廓?在 chromium 浏览器上我看不到这样的轮廓。

回答 1 投票 0

使用 xlink 的 SVG 在 Firefox 84 中不起作用

我遇到了一个问题,有几个 SVG 没有在 Firefox 中显示。它们在 Chromium 和 Safari 中工作得很好。 超文本标记语言 我遇到的问题是,我有几个 SVG 未在 Firefox 中显示。它们在 Chromium 和 Safari 中运行良好。 HTML <svg class="something"> <use xlink:href="sprite.svg#home" /> </svg> CSS .something { width: 2rem; height: 2rem; fill: black; cursor: pointer; } 精灵.svg <svg aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <defs> <symbol id="home" viewBox="0 0 32 32"> <path d="M28 17.333v13.333h-8v-8h-8v8h-8v-13.333h-4l16-16 16 16h-4zM26.667 9.457v-6.791h-4v2.791l4 4z"></path> </symbol> ... </defs> </svg> 通过开发者工具检查,我可以看到Chrome的路径: 但不适用于 Firefox: 我已经根据其他帖子尝试过: 确保声明了 xmlns,以及宽度和高度 将填充继承添加到 svg 使用 svg (https://stackoverflow.com/a/38124867/2910611) 确保路径的 d 属性中没有逗号 使用 fill="currentColor" 看看是否是 fill 的问题 使用 href 代替 xlink:href 知道如何解决这个问题吗? 我从caniuse看到Firefox支持使用xlink:href。 这似乎是渲染问题,而不是填充问题,因为更改图标的大小不会导致可见的变化。 发现问题:精灵文件中的一个符号没有结束标签。由于某种原因,其他浏览器仍然能够毫无抱怨地显示所有内容,但 Firefox 不行。 由于其他人也可能会遇到这种情况,所以我会保留问题。 就我而言,我错过了 defs 结束标记,这就是错误的根源。

回答 2 投票 0

通过 JS 读取 HTML 中 SVG 元素的属性

我有以下标记(带有原生 SVG 的 HTML): 我有以下标记(带有本机 SVG 的 HTML): <!doctype html> <!-- ... html-Elements ... --> <svg version="1.1" ... > <defs> <circle id="infop" cx="0" cy="0" r="9" /> </defs> <!-- ... svg Elements ... --> <svg> <!-- to have separate coordinate-system --> <g id="outSvg"></g> </svg> ... js 方法将一行和几个 <use href="infotop"> 元素输出到 #outSvg(成为图形)。 <use> 元素具有 onmouseover 事件来显示工具提示。 现在,当涉及到检索 onmouseover-function 的 <use> 中的坐标时,我遇到了问题: 我尝试了以下不同的方法来检索值: function showInfo(evt){ console.log("target: "+evt.target); console.log("AttrNS: "+evt.target.getAttributeNS(null,"x")); console.log("Attrib: "+evt.target.getAttribute("x")); console.log("basVal: "+evt.target.x.baseVal.value); console.log("corrEl: "+evt.target.correspondingUseElement.x.baseVal.value); 产生以下输出: //target -> ** [object SVGUseElement] in FF, in all other browsers: [object SVGElementInstance]) //AttrNS -> Works only in FF // * Uncaught TypeError: Object #<SVGElementInstance> has no method 'getAttributeNS' //Attrib -> Works only in FF // * Uncaught TypeError: Object #<SVGElementInstance> has no method 'getAttribute' //basVal -> works only in FF // * Uncaught TypeError: Cannot read property 'baseVal' of undefined //corrEl -> fails in FF but works in Ch, O and IE 浏览器:FF10、Ch16、O11.61、IE9 问题: 为什么 getAttribute() 在其他浏览器中失败?我错过了什么重要的事情吗?是否有一致的方法来检索值crossbrowser? (除了通过 evt.target.x 和 evt.target.correspondingUseElement.x 之间的切换) 重要提示:仅适用于 vanilla js,而且我了解浏览器开关,这不是重点!如果需要的话,我一有时间就会提供小提琴。最后 - 感谢您阅读本文! 编辑:* 添加了 js 错误 EDIT2:** FF 返回另一个对象而不是其他浏览器 嗯,在阅读了 Erik Dahlström 的回答后,我注意到 FF 的行为不正确。它应该返回一个元素实例而不是直接返回使用元素。 我现在使用以下代码: var el = (evt.target.correspondingUseElement)?evt.target.correspondingUseElement:evt.target; console.log(el.getAttribute("x")); 这样我就可以在所有浏览器中一致地通过 getAttribute() 检索属性。 你能试试这个吗? evt.target.getAttributeNode("x").nodeValue。我在 safari、chrome、Firefox 中尝试过,工作正常。 据我所知 Firefox 不支持 SVGElementInstance。 这里有几个来自 w3c SVG 1.1 第二版测试套件的 SVGElementInstance 测试来验证: struct-dom-12-b struct-dom-14-f struct-dom-15-f 您应该做的是,如果 SVGElementInstance 不存在,则提供后备解决方案,这很容易检测到,例如: if (elm.correspondingUseElement) { /* elm is a used instance, not a real element */ } else { /* fallback solution */ } 如果元素是 SVGElementInstance,它将具有 correspondingUseElement 属性,否则它将不具有该属性。普通的 svg 元素不会有这个属性,只有使用过的实例才会有它。 你尝试过吗evt.target.getAttributeNS(evt.target.parent.namespaceURI,"x")?

回答 4 投票 0

WebXR api 在移动 iOS 浏览器上可用吗?

我真的找不到这个问题的答案 - 或者更确切地说,我很困惑,因为我发现了相互矛盾的答案。我很快就要写一篇关于应用基于网络的增强现实的项目的论文......

回答 1 投票 0

CSS 背景图像在 Safari 上显示不同

我有一个使用background-image 和background-position CSS 属性显示的SVG 图像。它在 Chrome/Firefox 上按预期显示,但在 Safari 上呈现完全不同。 如果你...

回答 1 投票 0

有关嵌入 PDF 的用户界面问题

问题1。从可用性的角度来看,在网页中嵌入 PDF 有何优点和缺点? Q.2.一般来说,对于普通计算机用户来说,哪种场景提供的“

回答 5 投票 0

获取或设置<input type="password">掩码字符

是否有任何跨浏览器的方式来获取 字段中的密码屏蔽字符,或者,除此之外,设置它? 例如,Chrome & Firefox & Safar...

回答 2 投票 0

PUT 和 DELETE 应该在表单中使用吗?

假设我的 Web 应用程序在服务器端完全支持 PUT 和 DELETE,我应该使用它们吗? 基本上我的问题是有多少浏览器支持这个: ... 假设我的 Web 应用程序在服务器端完全支持 PUT 和 DELETE,我应该使用它们吗? 基本上我的问题是有多少浏览器支持这个: <form method="PUT"> 或 <form method="DELETE"> 除了符合 REST 标准之外,使用这两种 HTTP 方法还有什么好处吗? (假设这两种方法的替代是常用的POST) 您的问题涉及两个密切相关但又独立的标准:HTTP 和 HTML。 PUT 和 DELETE 方法是 HTTP 的一部分。在 HTTP 中,它们在 RESTful 接口以及基于 HTTP 构建的其他服务(例如 Webdav)中具有明显的用途。 HTML 版本 4 之前仅定义了表单的 POST 和 GET 的使用。 HTML5 此时似乎可以支持更多方法。 [注意,当前的 w3 草案中不包含支持] 任何当前的浏览器支持(我不直接知道)都将非常有限,并且仅作为前沿实验真正有用。 GET、POST、PUT 和 DELETE(还有其他)是 HTTP 标准的一部分,但目前您仅限于 HTML 表单中的 GET 和 POST。 正如 Andrew 提到的,您可以在 AJAX 请求中使用 PUT 和 DELETE;但是,这仅适用于某些浏览器(请参阅 http://api.jquery.com/jQuery.ajax/)。 不,GET 和 POST 是 method 属性唯一有效的 HTTP 方法值。请参阅 HTML 规范 了解更多信息。 我相信你可以在 AJAX 请求中使用它们。 截至 2023 年 2 月,最新的 HTML 规范和草案默认情况下仍然不支持 GET 和 POST 以外的方法。如果您不使用方法中间件,那么您将不得不使用这两个选项。 (method 属性也可以将“dialog”作为值,但它是无关紧要的,因为它与 HTTP 方法不直接相关。) https://html.spec.whatwg.org/multipage/form-control-infrastruct.html#attr-fs-method 实际上不可能使用 <form /> 发送 DELETE 请求,但您可以将一个请求发送到一个 API 端点并将用户重定向到另一页面。这将模拟所需的行为。提供了 jQuery 代码。 $(".control-action").on("click", () => { alert("Click"); $.ajax({ // call a DELETE endpoint of API url: "/api/items/5", method: "DELETE", headers: { "X-Api-Key": "363463822036d927c733d5607af109e2" }, success : function () { // redirect to another page // window.location.href = "/items"; } }); }); .link { text-decoration: underline; cursor: pointer; color: blue; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> <span class="link control-action">Call action</span> 其他人已经解释得很好,但你可以访问 Github 上的这个answer以获取更多解释 可能不会,因为这会使 <form> 的处理模型变得相当复杂。特别是,今天的同源策略例外 <form> 不允许使用这些方法。我们要么必须在跨域请求中禁止它们,要么以某种方式要求 CORS。这两项限制对于导航来说都是首次,并且相当危险。

回答 6 投票 0

在不同浏览器中使用 MathJax 进行的 MathML 渲染不一致

我正在使用 better-react-mathjax ^2.0.2 (与 MathJax 3.2.2)在基于 React 的项目中渲染数学表达式。但是,我面临一个问题,某些表达式在不同的

回答 1 投票 0

让 TextArea 在不同浏览器中看起来都一样?

这个问题我还没有找到满意的答案,所以我来吧, 这是我的文本区域在 Chrome 上的样子: 这是同一页面在 FireFox 上的外观: 这是该文本区域的 HTML: <

回答 3 投票 0

WebGL2 跨浏览器的 RGBA16UI 支持

我试图让 WebGL2 RGBA16UI 纹理工作,它们似乎工作如我上一个问题的答案所示:如何在...中创建 16 位无符号整数/无符号短 2D 纹理

回答 1 投票 0

删除pwa中的浏览器栏

我创建了一个 pwa 应用程序,一切正常,但是当我将其转换为 twa 并将其发布到 google play 上时,那里出现了一条浏览器行。如果在清单中设置为独立,我该如何删除

回答 1 投票 0

SVG 可以渲染,但仅在 Firefox 中被切断 - 为什么?

我正在使用 d3js(它使用 SVG)来创建图表。请在 www.uscfstats.com/deltas 上查看(使用 12842311 作为输入值;现在它已经被黑客攻击得很厉害了)。 在 Chrome、Safari 和 Firefox 10 上...

回答 8 投票 0

如何在浏览器中的 javascript 中获取元素的可访问名称?

可访问的名称计算很复杂,HTML 有 17 个子情况。如何在浏览器中的 javascript 中获取元素的可访问名称?

回答 1 投票 0

有 CSS 跨浏览器替代 Firefox 的“width: -moz-fit-content;”吗?

我需要一些div来同时适应它们的内容宽度。 我现在这样做: .mydiv { 背景:无不重复滚动 0 0 rgba(1, 56, 110, 0.7); 边框半径:10px 10px 10p...

回答 7 投票 0

CSS - 具有图像边框半径的跨浏览器内边框

我有一个绝对定位的图像(大小是使用最大宽度响应确定的),我想向其添加内部边框。因为它是图像,所以我既不能使用伪元素(如 img

回答 0 投票 0

Web Audio -- 仅在 iOS 上没有声音

我有一个网络应用程序可以在除 iOS 以外的所有平台上成功播放音频样本。 这是我最小的可重现示例,下面有其他上下文。 const AudioContext = window.AudioContext ||

回答 0 投票 0

为什么在Chromium中新创建的文本节点的值发生变化?

只需输入任何文字,例如一个“a”,console.log('newTextNode: ', newTextNode) 将返回“a”作为它的值(不是在 Firefox 或 Stack Overflow Code Snippet 中)。 常量...

回答 0 投票 0

使用 Allure 报告进行跨浏览器测试

我有一个正在 2 种浏览器中测试的 Web 应用程序:chrome 和 edge。测试结果必须出现在 Jenkins 服务器上的 Allure 报告中。我面临的问题是 Allure o...

回答 0 投票 0

React-hook-form 寄存器不适用于 Safari 上的无线电输入

我使用 react-hook-form 制作了一个简单的 type=radio 表单,它在 Chrome 上运行良好,但在 Safari 上不起作用。 这是我的代码。 从“反应”中导入反应,{useState} 导入 { 使用...

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.