我写的这个bookmarklet错在哪里?

网上找的一个bookmarklet是可用的: javascript:window.location='https://AAA.com/info?url=’+encodeURIComponent(location.href);

我在此基础上改写了一个, 用的ahk来实现, 最终我得到: javascript:window.location='https://AAA.com/info?url=’+encodeURIComponent(https://BBB.com/CCC);

为什么我这个在chrome中就不行呢? 会被当作百度搜索词

javascript:window.location='https://AAA.com/info?url=’+encodeURIComponent('https://BBB.com/CCC');

小括号里边的内容是字符串,但是你没有加引号。

你给出的第1个例子,小括号里面是一个对象的属性,是不需要加引号的。

1赞

不好意思, 忘了说, 加单引号我也试了, 不行

javascript:window.location='https://AAA.com/info?url='+encodeURIComponent('https://BBB.com/CCC');

好像用错了引号,需要是英文的。

以及用 ahk 来实现是怎么个意思?

我的中文输入法都是用的英文标点, 没有机会掺入中文标点. ahk用来做几个事情, 包括取得某链接的网址即 https://bbb.com/CCC 而不是当前网页的网址

其他事情就和本问题无关了

我在 4 楼重新写的代码可以用吗?

试了. 跳转到goolge或百度去了

javascript:window.location='https://baidu.com/s?wd='+encodeURIComponent('https://BBB.com/CCC');

和 4 楼的一样,只是改了一下第一个网址,实测可用。

奇怪了, 在一个以google为默认引擎的chrome浏览器中, 在没有翻墙的情况下, 你这个网址, 粘贴并回车后, 地址栏变成了 https://www.google.com/search?q=window.location%3D'https%3A%2F%2Fbaidu.com%2Fs%3Fwd%3D'%2BencodeURIComponent('https%3A%2F%2FBBB.com%2FCCC')%3B&oq=window.location%3D'https%3A%2F%2Fbaidu.com%2Fs%3Fwd%3D'%2BencodeURIComponent('https%3A%2F%2FBBB.com%2FCCC')%3B&aqs=chrome..69i57.1350j0j7&sourceid=chrome&ie=UTF-8

……小书签并不一定是在地址栏直接运行啊

以前一些浏览器是支持这样的,但现在,绝大部分都需要通过书签才能够正确的运行。

因为浏览器的兼容性提高了,是说细节上的兼容性,当地址栏输入的内容被判断为非网址时,就当做搜索进行处理了。

1赞