1

我正在尝试将以下内容用作执行 javascript 的 URL:

javascript:var field = document.getElementsByName("actions[hide]"); + for (i = 0; i < field.length; i++)field[i].click();

但是,当我将空格添加为书签时,空格会被 URL 编码,替换为%20,这(由于我不知道的原因)导致 JS 代码无法工作。

javascript:var%20field%20=%20unescape%20document.getElementsByName("actions[hide]");%20+%20for%20(i%20=%200;%20i%20<%20field.length;%20i++)field[i].click();
4

3 回答 3

1

如果你想创建一个书签,我建议你这个网站:

http://benalman.com/code/test/jquery-run-code-bookmarklet/

据说它用于 jquery 代码,但您也可以使用此生成器转换普通的 javascript。或者您可以简化使用 jquery 并将您的代码从:

var field = document.getElementsByName("actions[hide]"); + for (i = 0; i < field.length; i++)field[i].click();

$('[name="actions[hide]"]').each(function() { $(this).click(); });

每次我创建一个新的书签时我都会使用这个脚本,我喜欢它

编辑:当你输入你的代码时,你必须粘贴它,而不是前面的“javascript:”文本。

于 2012-04-18T08:09:37.697 回答
0

我也不明白您将 javascript 用作 url 方案的目的。
无论如何,如果您将该字符串放入浏览地址栏中以在当前网页中工作,则可能不会。
您可以尝试调用匿名函数:

<a href="javascript:(function() { var field = document.getElementsByName('actions[hide]'); for (var i = 0; i < field.length; i++) { field[i].click(); } })();">Click me</a>
于 2012-04-18T08:11:59.257 回答
0

在 javascript 中编码空格:URI 不应该(根据我的经验也不应该)破坏脚本。问题很可能是您的+,它也是 URI 中的一个特殊字符(它也意味着一个空格),但浏览器不会自动转换该字符,因为该字符在 URI 中是允许的。

您需要将+字符编码为%2B(以及您在 JS 中可能具有的任何其他特殊字符)。

于 2012-04-18T08:12:51.607 回答