Discourse 在旧版浏览器上无法加载

这个怎么样 @david

if (!String.prototype.replaceAll) {
	String.prototype.replaceAll = function(str, newStr){

		// 如果是正则表达式模式
		if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') {
			return this.replace(str, newStr);
		}

		// 如果是字符串
		return this.split(str).join(newStr);

	};
}

我更改了您分享的解决方案的字符串分支,因此它可以修复将字符串转换为正则表达式而无需转义的问题。

4 个赞

我不认为当一个函数被用作第二个参数时,它会起作用:

"my string with my example".replaceAll("my", (match) => `test${match}`)

(有关该函数的文档可以在此处找到)

5 个赞

我使用的是运行 iOS 版本 12.5.5 的 iPad Air。这款平板电脑可用的最新版 Chrome 浏览器无法加载 Sketchup 论坛。我看到了与之前几篇帖子中提到的相同的横幅消息。除了升级到新 iPad 之外,还有没有办法解决这个问题?

听起来不错 :+1:

我认为这应该可以做到:

6 个赞

嗯,虽然这解决了在 MacOS Mojave 上使用 Discourse 的问题,但似乎 iOS 12.5.5 也未能通过我们的 globalThis 检查。

我们要不要也 为其添加 polyfill

4 个赞

是的!该网站(Discourse 和 Community.Jenkins.io)似乎在旧版浏览器上又能正常工作了;我可以看到内容(在 Jenkins 和这里)并且可以发帖。

非常感谢您为解决此问题所付出的所有努力;这似乎比我预期的要复杂得多。

现在,如果我能说服 StackOverflow 撤销他们的破坏性更改(第二次),并为旧版浏览器恢复功能。他们曾经这样做过,但他们现在的态度似乎是责怪用户。

4 个赞

是的,该论坛在 iOS 12.2 上又能正常使用了,不过 https://support.last.fm/ 仍然无法访问(也许他们需要更新什么东西?)
再次感谢您花时间修复它

请记住,我们最大的重点是不要破坏旧浏览器。即使在旧式浏览器上,白屏也是完全不可接受的。只读视图是可以接受的。

这里棘手的事情是,我们有一些处于“黄昏状态”的浏览器,它们既不是完全支持,也不是完全不支持,可悲的是它们出现了白屏问题。

我们正在考虑未来更好的方法,以避免随着我们最低浏览器版本号的不断提高而经常遇到这些问题。

7 个赞

为了澄清一下,我们的一些用户在 https://support.last.fm/ 上仍然报告问题:Mobile view of this forum is broken - #6 by tutibins - Get Help - Last.fm Support Community

这个修复程序是否已部署到托管站点?

如果是这样,那将表明我们正在使用的某个主题/组件或我们的自定义 CSS 导致其损坏,但如果修复程序尚未部署,我不想去摆弄那些东西。 :slight_smile:

再次感谢您对此事的关注。

1 个赞

嗨 Jon - 此更改尚未部署到我们所有托管的网站。但我现在就开始处理这个流程 - 它应该会在大约一小时内推送到你的网站。

3 个赞

现在可以正常工作了!
谢谢!

1 个赞

太棒了,谢谢你,David。:+1:

3 个赞

将于何时部署到 forums.sketchup.com

正在部署! :slight_smile:

5 个赞

由于仍有人遇到问题,我将重新开放此问题。

计划:

  1. 删除 browser_update_user_agents,我们不再希望使用它进行功能检测。
  2. 添加 optimise_traffic_on_modern_mobile_browsers(默认为 true)- 如果用户拥有受支持的移动浏览器(现代 Chrome/Safari),我们将通过避免传输 HTML 有效负载来优化流量。
  3. 对爬虫/HTML 视图进行一些基本的设计工作 - (改进样式/填充/边距)等,由 @Designers 负责。

@Falco 你觉得怎么样?

我下周会看看是否能处理此事,如果不行,下下周会安排内部人员处理。

6 个赞

听起来不错 :+1:

在 Meta 上测试时要小心,这里的无表格设计实验让我们的爬虫视图退步了不少。

早期 iOS 12 上的用户仍然无法启动应用程序,因为他们缺少 window.globalThis。您可以在 Browserstack 上轻松重现此问题。我们需要为那些用户发布 HTML 无脚本内容。您的计划步骤 1 将解决这个问题。

5 个赞

我做了一个小的 PR,让这些视图更具可读性:

10 个赞

看起来很棒,我也在 PR 上留了评论。Google 会进行移动优先索引,因此我们必须仔细测试移动分辨率,因为这是此视图的通用消费者。

5 个赞