Google chrome 需要空格的Bookmarklet在Chrome中已损坏

Google chrome 需要空格的Bookmarklet在Chrome中已损坏,google-chrome,bookmarklet,Google Chrome,Bookmarklet,很久以前,我创建了一个bookmarklet,以便在打开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)){locati

很久以前,我创建了一个bookmarklet,以便在打开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中的bookmarklet再次工作

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

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


如何让bookmarklet在Chrome中工作?

我无法重现问题,Chrome也没有修改bookmarklet。但无论如何,你可以从bookmarklet中删除“
var
”,因为你不必告诉JavaScript
nbr
的类型是什么

将您的书签地址替换为:

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;}})()

  • 在Chrome和Safari上测试并输入
    123
    打开了一个新窗口并将我发送到
    https://trac.example.com/example/ticket/123
    。完全不输入任何内容–或默认文本字符串
    编号
    –关闭提示窗口,但未发生任何事情
  • var
    ,包括紧跟其后的空格。或
    var+
    var%20
  • 类似地,bookmarklet初始化
    f
    ,而不声明
    var f

  • 我无法重现问题,而且Chrome没有修改bookmarklet。但无论如何,您都可以从bookmarklet中删除“
    var
    ”,因为您不必告诉JavaScript nbr的类型是什么

    将您的书签地址替换为:

    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;}})()
    

  • 在Chrome和Safari上测试并输入
    123
    打开了一个新窗口并将我发送到
    https://trac.example.com/example/ticket/123
    。完全不输入任何内容–或默认文本字符串
    编号
    –关闭提示窗口,但未发生任何事情
  • var
    ,包括紧跟其后的空格。或
    var+
    var%20
  • 类似地,bookmarklet初始化
    f
    ,而不声明
    var f

  • 感谢您的输入。我从Firefox中删除了var%20,它仍然可以正常工作。但是,在Chrome中它仍然不能正常工作。有趣的是,很长一段时间以来,它在Chrome中工作得很好。然后我想知道Chrome还可能损坏了什么,我将地址从Firefox复制到Chrome中。现在它在Chrome中再次工作。如果这种情况持续下去,我将将此答案标记为已接受的答案。感谢您的输入。我从Firefox中删除了var%20,它仍然可以正常工作。但是,在Chrome中,它仍然不能正常工作。有趣的是,在很长一段时间内,它在Chrome中工作得很好。然后,我想知道Chrome还可能损坏了什么,于是将地址从Firefox复制到Chrome中。N如果这个问题仍然存在,我会将这个答案标记为已接受的答案。