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

URLスキームとしてのJavaScriptの意味がよくわかりませんでした。
とにかく、現在の Web ページ内で機能するようにその文字列をブラウズ アドレス バーに入力しても、おそらく機能しません。
無名関数の呼び出しを試みることができます:

<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 に答える