首页 > 解决方案 > Chrome 中需要空格的书签已损坏

问题描述

不久前,我创建了一个书签来节省打开 trac 票的时间。它看起来像这样(将 URL 部分替换为 trac.example.com/example:

javascript:(function(){var nbr=prompt('ticket','number');f='https://trac.example.com/example/ticket/'+nbr;if(!isNaN(nbr)&&nbr>0&&!window.open(f)){location.href=f;}})()

这在 Chrome 和 Firefox 中运行了很长一段时间。然后他们俩都停止了工作。我发现问题是“var nbr”之间的空格。我用 %20 替换了空格,Chrome 和 Firefox 中的小书签再次起作用。

然而最近 Chrome 坚持删除 %20 并用空格替换它,并且小书签不起作用。Firefox 中的小书签继续与 %20 一起愉快地工作。

我也尝试使用 + 而不是 %20。但这也不起作用,尽管它没有变成一个空间。

可以做些什么来让小书签在 Chrome 中工作?

标签: google-chromebookmarklet

解决方案


我无法重现问题¹,Chrome 也没有修改书签。但无论如何,您都可以从书签 ² 中删除“<code>var”,因为您不必告诉 JavaScriptnbr的类型是什么。³

将您的书签地址替换为:

javascript:(function(){nbr=prompt('ticket','number');f='https://trac.example.com/example/ticket/'+nbr;if(!isNaN(nbr)&&nbr>0&&!window.open(f)){location.href=f;}})()

  1. 在 Chrome 和 Safari 上测试并进入123打开了一个新窗口并将我发送到https://trac.example.com/example/ticket/123. 什么都不输入——或者默认文本字符串number ——关闭了提示窗口,什么也没有发生。
  2. var ,包括紧随其后的空格。或var+var%20
  3. 类似地,小书签在f没有声明的情况下进行初始化var f

推荐阅读