我正在尝试将以下内容用作执行javascript的网址:
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();
答案 0 :(得分: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:”文本。
答案 1 :(得分: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>
答案 2 :(得分:0)
在javascript中编码空格:URI不应该(根据我的经验)破坏脚本。问题很可能是你的+
,它也是URI中的一个特殊字符(它也意味着一个空格),但是由于URI中的那个点允许使用该字符,因此不会被浏览器自动转换。
您需要将+
字符编码为%2B
(以及您在JS中可能包含的任何其他特殊字符)。