0

我正在构建一个 Safari 扩展,它通过使用 javascript: URL 动态创建表单来伪造 POST。

当我尝试像这样加载此 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: URLs 在 Safari 扩展中起作用。

于 2013-09-10T17:10:27.723 回答