safari 相关问题

Safari是Apple的网络浏览器,是macOS和iOS上的默认浏览器。

Safari 并不总是发送 If-None-Match 来获取页面加载

我有一个模拟项目,我正在不同的浏览器上测试 Etag 和 If-None-Match 行为。 Get 请求在页面加载时发送,我将始终以 200 响应并分配新的 Etag 值。 w...

回答 1 投票 0

为什么我的 cookie 没有保存在 Safari 上,而是保存在 Chrome 上?

所以我正在开发一个项目,前端是在vercel上托管的Next.JS,后端是在heroku上托管的Express.JS。 我使用 Express-Session 和 Passport JS 来存储会话。 上...

回答 3 投票 0

macOS 上的 Safari 选择颜色在空白处为蓝色

观察下面的两个屏幕截图,第一个在 Chrome 中,第二个在 Safari 中。两种浏览器均为截至问题日期(2023 年 1 月)的最新版本。 页面背景是 Ch...

回答 2 投票 0

SVG 描边渐变导致水平线在 iOS Safari 上显示

向我的 SVG 路径添加径向渐变似乎会在某些 iOS 设备上或在 iOS 设备上放大/缩小时导致奇怪的水平(抗锯齿?)线条。我无法在任何地方复制它...

回答 2 投票 0

为什么印地语文本在 safari 中无法正确显示?

我正在尝试显示印地文文本。但它加载不正确。 我尝试简单地将文本粘贴到新文件中并且它正在工作,在这种情况下它可能不起作用? 那个...

回答 1 投票 0

Safari 第一次下载字体失败

Safari 第一次下载字体失败(无缓存),但重新加载页面后就可以了。存储的字体文件存储在服务器上。 字体规则: @font-face { 字体系列:Museo ...

回答 1 投票 0

<img />标签的onLoad事件在初始页面访问时不会触发

考虑以下组件 从“反应”导入反应; 函数图像(){ 函数 onLoad() { console.log("已加载...") } 返回 ( 考虑以下组件 import React from 'react'; function Image() { function onLoad() { console.log("Loaded...") } return ( <img src="http://..." onLoad={onLoad} decoding="async" /> ); } export default Image; 由于某种原因,onLoad事件没有一致触发,即当我最初加载页面并刷新它时,它不会被触发,但是当我在反应中交互安装组件时,即没有页面加载时,它会被触发。 我尝试删除 decoding="async" 并添加 onError 处理程序以查看这些处理程序是否提供了更多信息,但行为没有改变。 我在 macOS safari 和 Chrome 浏览器上看到了同样的行为。 编辑:如果它不起作用,图像根本不会加载 我想出了如何让它在我的案例中发挥作用。我猜 onLoad 事件没有执行,因为图像已经加载,所以我将代码更改为以下内容,现在它按预期工作 import React, { useRef, useEffect } from 'react'; function Image() { const imgRef = useRef<HTMLImageElement>(null); function onLoad() { console.log("Loaded...") } useEffect(() => { if (imgRef.current?.complete) { onLoad(); } }, []); return ( <img ref={imgRef} src="http://..." onLoad={onLoad} decoding="async" /> ); } export default Image; 您能否提供有关该错误的更多信息? 它应该可以工作,使用箭头函数并在 img 的 onLoad 事件上调用它 import React from 'react'; onLoadFunction=()=>{ console.log('just loaded'); } return ( <img src="http://..." onLoad={this.onLoadFunction} /> ); } export default Image; 问题可能是 Image 是 DOM 中的保留键盘,请考虑更改函数的名称。否则可能会改变图像类别。 // Image Size is >3MB const App = () => { const onImageLoad = () => { console.log("Working...") } return ( <div> <img src="https://unplash-api.herokuapp.com/api/Ri8c2qFg32A/full" onLoad={onImageLoad}/> </div> ) } ReactDOM.render(<App />, document.getElementById("root")) img { width: 100%; } <script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script> <div id="root"></div> 原因是因为图像甚至在 React 水化页面并开始侦听图像的 load 事件之前就已加载。可以在此 GitHub 问题上找到更深入的解释。 为了解决这个问题,@ilja 的解决方案通过 .complete 中的 useEffect 属性检查图像是否已加载,效果很好。

回答 4 投票 0

Safari 无法播放 .mp4 视频

这在 Chrome 上运行良好,但在 Safari 上不行。 ...

回答 4 投票 0

在 safari 和独立模式之间共享会话(添加到主屏幕)

有什么方法可以在 safari 和浏览器独立模式之间共享会话吗? 下一篇文章中的解决方案不适用于 iOS 9。 iPhone“书签到主屏幕”会删除 cookie 并

回答 1 投票 0

<br> 在 ios/ipados 上更新 innerHTML 时被忽略

[编辑:我找到了一个简单的解决方法,它位于下面的解决方案中] 我最近向Apple报告,更新到IPADOS 17.2后,Safari在更新innerH时忽略了标签...

回答 1 投票 0

为什么GAE php8.2标准环境回显长字符串时服务器会挂起?

我做错了什么还是服务器有问题?这会挂起浏览器(MACOS 下的 Safari 和 Firefox): 我做错了什么还是服务器有问题?这会挂起浏览器(MACOS 下的 Safari 和 Firefox): <!DOCTYPE html> <HTML> <BODY> <?php $qq = str_repeat("X",409998); echo $qq; ?> </BODY> </HTML> 运行在 Google 的 AppEngine、标准环境、PHP 8.2 上。如果我缩短字符串,效果很好。虽然问题是一致的,但如果我调整字符串的长度,我可以让它处理一些更长的字符串。 在解决问题之前,有一个解决方法:使用 Ajax 和 JSON 一次下载一个块文件,然后在 HTML 文件中重建该文件。将块大小设置为不会挂起浏览器的大小。 源.php <?php require '../vendor/autoload.php'; use Google\Cloud\Storage\StorageClient; $storage = new StorageClient(); $storage->registerStreamWrapper(); header("Access-Control-Allow-Origin: *"); $chunk_size = 300000; //multiple of 3 because base64 works with groups of 3 bytes $chunk = $_REQUEST['chunk']; if($chunk == 0) { // first request for file $required_chunks = ceil(filesize("gs://$_REQUEST[key]") / $chunk_size); if($required_chunks == 1) { // send complete file $data="data:$_REQUEST[content_type];base64,".base64_encode(file_get_contents("gs://$_REQUEST[key]")); echo json_encode(array($_REQUEST['target'],$data,0)); } else { // file must be sent in chunks $data="data:$_REQUEST[content_type];base64,".base64_encode(file_get_contents("gs://$_REQUEST[key]",FALSE,NULL,0,$chunk_size)); echo json_encode(array($_REQUEST['target'],$data,1,$required_chunks,$_REQUEST['key'])); } } else { // continue sending chunks $data=base64_encode(file_get_contents("gs://$_REQUEST[key]",FALSE,NULL,$chunk * $chunk_size,$chunk_size)); echo json_encode(array($_REQUEST['target'],$data,++$chunk,$_REQUEST['required_chunks'],$_REQUEST['key'])); } } ?> 接收器.php <!DOCTYPE html> <HEAD> <SCRIPT> data_cache=[] function getImage(target,type,k) { var xmlhttp xmlhttp=new XMLHttpRequest() xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState==4 && xmlhttp.status==200) { var d=JSON.parse(xmlhttp.responseText) if(d[2] == 0) document.getElementById(d[0]).src=d[1] // single chunk else { if(d[2]!=d[3]) { // not the last chunk if(d[2] == 1) data_cache[d[0]] = d[1] // start cache else { data_cache[d[0]] = data_cache[d[0]] + d[1] //append to cache } // send for next chunk xmlhttp.open("GET","source.php?target="+d[0]+"&key="+d[4]+"&chunk="+d[2]+"&required_chunks="+d[3]) xmlhttp.send() } else { dc = data_cache[d[0]] + d[1] document.getElementById(d[0]).src = dc } } } } xmlhttp.open("GET","source.php?target="+target+"&content_type="+type+"&key="+k+"&chunk=0") xmlhttp.send() } </SCRIPT> </HEAD> <BODY> <DIV><IMG id='i999'><SCRIPT>getImage('i999','image/jpeg',{bucket}/{file}.jpg')</SCRIPT></DIV> </BODY> </HTML>

回答 1 投票 0

使用 SVG 与 Safari 平铺的 CSS 过滤器

我正在尝试使用通过 CSS 使用过滤器属性应用的 SVG 过滤器在 html 元素上创建一种苦恼的模式。 我找到了一些例子并根据我的喜好调整了它们......

回答 1 投票 0

为什么 -webkit-user-select:text 不能与 safari 中的按钮一起使用?

自从23年8月第一次报道这个问题以来,这一直困扰着我,我真的找不到任何权威的答案。 示例:https://jsfiddle.net/1t8Lng2j/ 问题: 内的文本 自从 23 年 8 月第一次报道以来,这一直困扰着我,而且我真的找不到任何权威的答案。 示例:https://jsfiddle.net/1t8Lng2j/ 问题:用户无法选择 <button> 元素内的文本。仅限 Safari(使用 16/17.x 进行测试)。 -webkit-user-select:text 不会对 Safari 中的 <button> 元素执行任何操作。 解决方法:更改为锚点 <a> 标记使文本可选择,并且锚点标记按预期响应 css 属性。 所有其他浏览器都按预期运行,并且可以在按钮元素内选择文本,或者如果使用 none 属性,则可以阻止用户选择文本。 有谁知道为什么 -webkit-user-select 不适用于 Safari 中的按钮元素? 我有部分答案给你。 -webkit-user-select 确实适用于 Safari,只是 -webkit-user-select: text 在 Safari 上的行为与其他浏览器不同。 默认行为是,如果您在 Safari 上单击并拖动“within”按钮,则文本不可选。但是,如果您单击并拖动按钮的 outside,然后继续拖动到按钮上,则文本 is 可选择。如果 -webkit-user-select: 设置为 none,则此行为不再起作用,并且文本根本不再可选,即使您开始拖动到元素之外也是如此。我想这是 Safari 选择的默认设置,因为在大多数情况下所需的行为是按钮文本不应该是可选的,除非您尝试复制页面的内容。就他们的观点而言,您可以找到要求完全相反的人的问题,他们想知道如何关闭按钮内的可选文本,因为他们不希望在用户只是尝试单击时看到所选文本的视觉效果按钮。 我怀疑这也与 pointer-events 在 Safari 上如何与按钮配合使用有关,因为如果 pointer-events 设置为 none,则按钮选择的工作方式与以前一样,但从外部拖动时会选择 整个 文本,而不是用光标控制要选择的文本。锚标记的情况并非如此,禁用 pointer-events 可以正常选择超链接。 另一个值得注意的有趣的事情是,虽然锚标记如您所描述的那样是可选择的,但只有在没有 href 值的情况下才可以选择,除非 pointer-events 已关闭。如果您尝试将鼠标悬停在链接上时选择文本,它不会选择文本,就像按钮的行为一样。有时情况可能并非如此,因为您可以选择链接外部非常接近的位置来拖动到其上,但是如果添加填充,则很明显该行为与按钮相同(除了如何 pointer-events 已处理)。这是一个 jsfiddle,您可以在其中看到其中一些概念的实际应用: jsfiddle Safari 有一个独特的功能,拖动链接会创建一个可拖动到其他应用程序的网站预览(用户可见)。也许禁用文本选择的默认行为是,当显示预览时,不会在下面选择文本,从而给用户造成视觉混乱。 这些只是我的猜测,但我认为值得注意的是 CSS 并没有被 Safari 忽略,它只是以不同的方式应用。 解决方案是: button:hover, button:active, button:focus, button:focus-visible, button:focus-within{ -webkit-user-select: text !important; pointer-events: none; } button{ position: relative; line-height: 30px; } 问题是: 每个浏览器都有不同的默认 css 样式。 这就是为什么您会看到相同代码的差异。 如果您想查看详细信息,请打开 Safari 并进行 Inpesct,请阅读默认样式。 这是一些困难的情况,因为您使用 :hover :active 事件。 这些状态很难调试。 还有: 按钮不适用于文本选择。 如果您选择正确的元素,那么这很容易。如果您在某件事上遇到麻烦,通常是错误的选择。

回答 2 投票 0

requestAnimationFrame 在 iOS 中没有被触发

我有一个应用程序,它使用 webview 以及在其中运行的一些 javascript 代码。 在那里,我在执行一些逻辑时使用 requestAnimationFrame 。 该应用程序已运行

回答 1 投票 0

Flask 会话 cookie 未在 Safari 中设置

我的会话 cookie 遇到了奇怪的行为:在我的 Mac 上运行 Flask 应用程序,一切正常,并且在任何浏览器上都设置了 cookie。 但是,如果我在 Windows 服务器上运行它,

回答 2 投票 0

Safari 不显示/渲染图像的 css

我的 GitHub 页面网站上有一个个人资料图片,它使用一些 CSS 使其看起来很酷。图像在 chrome 或 Firefox 中显示完美,但在 safari 中似乎忽略了图像的所有 css...

回答 1 投票 0

Safari 上 CSS3 旋转 Y 转换存在错误?

我正在展示一个使用 CSS3 过渡的模式弹出窗口(很大程度上借用自 Effeckt.css)。它适用于除 Safari 之外的所有现代浏览器。在 Safari 中,移动没问题,但是背景颜色...

回答 6 投票 0

在 iPhone 中打开时,“城市”被检测为电子邮件中的关键字

我已经创建了用 PHP 发送邮件的 API。下面是我的代码 $content = $content."地址: ".$fromUser["address"]; $内容 = $内容。” 我已经创建了 API 来用 PHP 发送邮件。下面是我的代码 $content = $content."<br/><b>Address : </b>".$fromUser["address"]; $content = $content."<br/><b>City : </b>".$fromUser["city"]; $to = '[email protected]'; include('PhpMailer/class.phpmailer.php'); $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPAuth = TRUE; $mail->SMTPSecure = "ssl"; $mail->Host = "smtp.gmail.com"; $mail->Port = 465; $mail->Username = "####"; $mail->Password = "####"; $mail->setFrom("[email protected]","abc"); $mail->isHTML(true); $mail->AddAddress($to); $mail->Subject = 'Test'; $mail->MsgHTML($content); if ($mail->Send()) { return 1; } else { return 0; } 我收到电子邮件,但内容中的关键字“城市”显示超链接。我想删除它。 [注意:如果我写“City1”而不是“City”,则链接将被删除] 您的 $fromUser["address"] 以 标签开头,但变量内没有标签结尾。 一种方法是为输出添加 stript_tags() 。 $content = $content."<br/><b>Address : </b>".strip_tags($fromUser["address"]); $content = $content."<br/><b>City : </b>".strip_tags($fromUser["city"]); 更好的方法是在用数据填充 $fromUser 变量时就剥离标签。

回答 1 投票 0

如何将 .url 文件书签的文件夹作为 HTML 文件导入(到 Safari 中)?

我想将 .url 文件的文件夹导入到 Safari 中,但 Safari 只支持 HTML 书签文件。我怎样才能进行这种转换?

回答 1 投票 0

如何在 Mac 上调试 Safari Web 应用程序?

我正在Mac上开发一个Safari Web应用程序(通过文件→保存到Dock创建)。我遇到了一些仅出现在网络应用程序中的错误,而不是出现在网站版本中。我似乎无法打开网络控制台...

回答 1 投票 0

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