1

在 Google Chrome 控制台中,这有效(它说弹出窗口被阻止,但现在不要介意)

open('http://www.bugmenot.com/view/'+(escape(location).replace(/^\w+%3a\/\//i,'').replace(/\/.*/i,'')));

弹出窗口在http://www.bugmenot.com/view/thesite.com

现在,这不能用作书签:

javascript:open('http://www.bugmenot.com/view/'+(escape(location).replace(/^\w+%3a\/\//i,'').replace(/\/.*/i,'')));

它不会打开完全相同的 URL,而是打开http://www.bugmenot.com/view/http%3A.

为什么?

4

2 回答 2

1

试试这个:

javascript:open('http://www.bugmenot.com/view/'+(escape(location).replace(/^.*?\/\/([^\/]*).*$/i, "$1")));
于 2012-07-23T22:39:42.803 回答
1

导致此问题的原因是在 URL 栏中或书签中%3a被解释为 a 。:

javascript:alert('%3a');

将被解释为

javascript:alert(':');

正则表达式上的这个值也会随之而来,相关的后果也会随之而来。

于 2012-07-23T23:43:08.237 回答