0

javascript: URL を使用してフォームを動的に作成することにより、POST を偽造する Safari 拡張機能を構築しています。

この URL を次のように読み込もうとすると、次のようになります。

tab.url = "javascript:" + foo;

「Safari では、この操作に JavaScript を使用できません」というメッセージが表示されます。

私は次のような簡単なことをしてみました:

tab.url = "javascript:alert('hello')";

同じエラーが発生します。

URL バーに直接 URL を貼り付けてみましたが、うまくいきました。

Safari が拡張機能に javacript: URL の読み込みを許可しない理由はありますか? または回避策はありますか?

4

1 に答える 1

0

私自身の質問に答えるために、代わりにデータ URL を使用できます。

data:text/html,<body></body><script>alert('hello');</script>

javascript: URL と同様に機能します。ただし、ブックマークレットが本文の存在に依存している場合に備えて、必ず本文を含める必要があります。

javascript: URL が Safari 拡張機能から機能する理由はまだわかりません。

于 2013-09-10T17:10:27.723 に答える