2013-09-10 1 views
0

Я строю расширения Safari, которые подделывают POST, динамически создавая форму, используя URL-адрес javascript:.Почему не javascript: URL-адреса работают с расширениями в Safari?

Когда я пытаюсь загрузить этот URL, как это:

tab.url = "JavaScript:" + Foo;

я получаю "Safari не может использовать JavaScript для этого действия"

Я пытался сделать что-то простое, как:

tab.url = "JavaScript: предупреждение ('привет')";

и я получаю ту же ошибку.

Я пробовал вставлять свой URL прямо в строку URL, и он отлично работает.

Есть ли причина, по которой Safari не разрешает расширениям загружать javacript: URL? ИЛИ есть ли какое-то обходное решение?

ответ

0

Чтобы ответить на мой собственный вопрос, вы можете использовать URL данных вместо:

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

Работает точно так же, как JavaScript: URL. Вы должны убедиться, что вы включили тело, однако, на всякий случай, если ваш букмарклет зависит от наличия тела.

Я все еще не знаю, почему javascript: URL-адреса работают с расширениями Safari.