tut
1
大约一个月前,我无法在 Discourse 上上传任何图形。我在撰写窗格下方看到了典型的进度信息——上传了 20%、40%、100%。但一旦完成,撰写窗格就会显示类似以下内容(我将其输入为预格式化文本,以便所有内容都能显示):
[Uploading: Screen Shot 2022-06-14 at 10.58.16 AM.png…]()
同样内容的已完成消息窗格将显示:
Uploading: Screen Shot 2022-06-14 at 10.58.16 AM.png…
但此时,上传活动仍在进行中。显然,本应在括号中的内容没有上传。等待数小时也没有任何改变。
这种情况发生在运行 macOS v10.15.7 和 Safari Version 15.5 (15613.2.7.1.9, 15613) 的 Mac 上。当通过 Firefox 在同一台机器上访问 Discourse 时,一切功能正常。
1 个赞
Falco
(Falco)
2
发生这种情况时,浏览器开发者工具控制台中是否出现任何内容?
1 个赞
sam
(Sam Saffron)
3
Safari 中是否启用了任何扩展程序?可以暂时禁用它们吗?
tut
4
在这方面我还是新手。请指导我该看哪里。在我使用的 Safari 版本中,顶部栏上只有一个 Develop 菜单项。
sam
(Sam Saffron)
6
2 个赞
tut
7
抱歉,但那个视频制作得太糟糕了,我无法理解。不过,我想我找到了“控制台”。如果我尝试将名为 Joss-Main 的 JPG 图片上传到我在 Safari 中当前撰写的消息中,结果如下:
Uploading: Joss-Main.jpg…
通过 Firefox 登录并继续讨论同一主题,我可以上传 Safari 控制台窗口的屏幕截图。当我将该图片拖到撰写窗格(在 Safari 中)后,控制台窗口中的所有内容都出现了。正如你所见,屏幕截图在 Firefox 中上传得很好:
我还能做些什么来帮助解决这个问题?
1 个赞
sam
(Sam Saffron)
8
鉴于您使用的是非常新的浏览器,我们可以尝试在此处重现。我们已将其内部分配给技术倡导者,以便我们查看是否有人可以在 Safari 15.5 上重现此问题。目前我甚至无法在 browserstack 上对其进行测试,因为它太新了(尽管 100% 受支持)。
您可以将问题图片上传到此处,还是所有图片都有此问题?
2 个赞
tut
10
我尝试过的所有图片都是这样。PNG、JPG、PDF……文件类型和大小都不重要。
2 个赞
Noah
17
我的社区成员遇到了同样的问题,看起来 Safari 是主要问题,我会帮你找出问题所在。
1 个赞
@Noah 有什么进展吗?
我们尝试了一个简单的复现,但不幸的是到目前为止都无法重现。之前有一个类似的主题,问题最终与 ClearURL 浏览器扩展有关,但我不确定这在这里是否有帮助?MacOS Firefox image upload error - #16 by jimkleiber
4 个赞
tut
21
我的问题与@jimkleiber报告的问题之间存在关键差异:
*他的问题发生在Firefox上。Firefox对我来说可以正常工作。
*他有一个浏览器扩展,最终被确定为问题所在。我没有任何扩展。
*他看到了错误消息。在我的情况下,Discourse表现得好像图片上传成功一样。
2 个赞
Noah
22
您好 @JammyDodger,抱歉回复迟了,我正准备在我朋友的 Safari 上进行测试,看看是否会弹出任何内容。@tut 顺便问一下,您使用的是什么设备?
1 个赞
tut
23

一台即将达到使用寿命的机器,因此限制为 macOS v10.15.7。
sam
(Sam Saffron)
24
david
(David Taylor)
25
我们从上传占位符到 URL 的转换不使用 execCommand,所以我认为这不是原因。(我们不能轻易切换,因为 execCommand("insertText") 需要 textarea 获得焦点,而上传可能在 textarea 没有获得焦点时完成)。
上传 仍然使用我们多年来一直在使用的 set("value", ...) 方法
它在网络标准中被技术性地弃用了,但目前还没有 insertText 命令的替代方案。来自 MDN:
在许多情况下,可以使用 Clipboard API 来代替 execCommand,但 execCommand 有时仍然有用。特别是,Clipboard API 不能替代 insertText 命令,您可以使用该命令以编程方式替换光标处的文本,同时在纯 textarea 和 input 元素中保留撤销缓冲区(编辑历史记录)。
鉴于其广泛使用,浏览器在提供替代方案和弃用窗口之前放弃支持的可能性似乎微乎其微。
4 个赞
david
(David Taylor)
28
@tut 我在这里的 Meta 上添加了一些额外的调试信息,以便我们能够弄清楚发生了什么。请尝试:
- 在 Safari 中打开 Meta
- 打开开发者控制台
- 尝试上传文件
- 点击开发者控制台
- 按 Cmd + a 选择所有日志
- 右键单击 → 保存选中的内容
- 将文本文件保存在某个地方,然后在此处上传(我猜是用 Firefox)
2 个赞
tut
31
@david,这是我尝试在 Safari 中上传名为 Joss-Main.jpg 的 JPEG 图像:
Uploading: Joss-Main.jpg…
正如预期的那样,上传未能完成。
现在我已切换到 Firefox 并继续撰写相同的消息。
Console.txt (4.1 KB)
1 个赞
david
(David Taylor)
32
好的,这真是一个奇怪的问题!Safari 会将 ...(三个句点)替换为省略号字符 …。这会破坏我们稍后用真实 URL 替换占位符的尝试。
@tut 你可以打开你的系统偏好设置 → 键盘 → 文本,看看那里是否配置了任何替换。如果我添加一个 ... → … 的替换,那么我就可以在我的机器上复现 Safari 中的相同问题:
(你的可能因 macOS 版本较旧而略有不同)
所以是的,这似乎很有可能——抱歉之前否定了这个想法 @sam
。看起来 Safari 会将操作系统级别的文本替换应用于我们通过 execCommand("insertText", 添加的文本。我想知道这是 Safari 15.5 的新功能,还是它一直都是这样而我们只是没有注意到 
5 个赞
tut
33
@david,我在“键盘”偏好设置中没有设置这样的替换。但既然我知道该查找什么,我可以确认替换确实发生了。当我输入时,我实际上可以看到它发生。并且可以通过使用退格键来验证。当我退回到省略号字符时,光标会跳过输入的三个单独的句点。
同样的情况也发生在“备忘录”、“预览”、“信息”和“邮件”中,但不会发生在“日历”、“地图”、“照片”或(显然)Firefox 中。所以这似乎是一个特定于应用程序的问题,而不是系统级别的。
2 个赞