具有 HTML 3.2 文档类型的网页上的小书签中的错误

Posted

技术标签:

【中文标题】具有 HTML 3.2 文档类型的网页上的小书签中的错误【英文标题】:Bug in bookmarklet on web page that have HTML 3.2 doctype 【发布时间】:2020-12-03 13:30:30 【问题描述】:

我有一个使用我的Scheme based lisp in javascript 和jQuery Terminal 使用Scheme 语言创建REPL 的书签。

书签并不重要,它只是创建终端,书签的链接在 GitHub 上:

https://github.com/jcubic/lips/blob/devel/examples/bookmark.js

,这在任何网站上都可以正常工作,但是当我在具有此文档类型的 Scheme SRFI page 上运行它时:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

终端无法正常工作。不同的是,当我输入“(lambda ()”并将光标移到第二个左括号、下一个右括号和下一行时。

它在任何其他网站上都可以正常工作。任何专家都可以解释正在发生的事情,以及是否有办法添加一些东西以使其发挥作用?该页面几乎没有CSS。所以没有冲突,我添加了作用域类名,所以每个通用名称在类名中都有 cmd-terminal- 前缀,以确保没有冲突。

抱歉,没有简单和最小的示例。也许您只需查看带有实际代码的开发工具即可回答。

我在 Fedora GNU/Linux 上使用最新的 Chrome 浏览器运行它。

【问题讨论】:

我不确定我做了什么,我刚刚发布了 2.18.0 版,有很多变化,书签神奇地起作用。如果您有类似的问题,您可以检查版本 2.17.6 和 2.18.0 之间的差异。如果您不知道如何,如果您发表评论,我可以尝试检查有什么区别,它自己现在不需要这个。 【参考方案1】:

预计旧的 HTML 会很奇怪。不知道你为什么关心那个旧页面,但你可能想了解一下怪癖模式 https://en.m.wikipedia.org/wiki/Quirks_mode

【讨论】:

我很关心这个页面,因为它是对 Scheme 语言的扩展,它仍在更新,新提案仍在添加。 感谢您的回答,在我发布 jQuery 终端 2.18.0 版后,这似乎神奇地得到了解决。我没有为此问题添加任何特定代码。 仍在使用 quirks 模式的代码。哇。恭喜?。我已经有十年左右没有听说过甚至没有想过怪癖模式?

以上是关于具有 HTML 3.2 文档类型的网页上的小书签中的错误的主要内容,如果未能解决你的问题,请参考以下文章

用于打开新窗口的书签将当前窗口转发到 [对象窗口]?

新建HTML5文档

javascript书签复制网页标题和链接

在 html 中为 iPhone 上的书签选项指定一个 url

提高效率的方法有很多,比如安装这个 Chrome 扩展

在HTML中怎么加链接