2013-06-03 2 views
0

При открытии новой вкладки в Chrome/Firefox (Ctrl + T), вид страницы "верстак" открывается по умолчанию:Открытие тривиальным букмарклет из хром/FF "верстак"

enter image description here

У меня есть очень тривиальный bookarklet с следующим адресом:

javascript:location.href="http://google.com"

Хотя она прекрасно работает при открытии любой «нормальной» страницы, нет абсолютно никакой реакции, когда я нажимаю на закладке в режиме «Workbench» (как в Chrome, так и в FF). URL-адрес браузера не изменяется вообще. (UPDATE: и даже проще javascript:alert("test") bookmarklet не дает никаких результатов в этом режиме)

Как верстальщик - это мое обычное место, из которого я открываю закладки. Мне бы очень хотелось, чтобы я мог открыть свой букмарклет оттуда.

Возможно, проблема связана с той частью определения Bookmarklet:

сценарий выполняется в контексте текущей страницы.

И верстак, вероятно, не близко к нормальной HTML-странице. Во всяком случае, я был бы рад найти обходное решение.

PS. Конечно, моя цель состоит в том, чтобы сделать более сложный букмарклет, чем это, но я хотел начать с всего, что работает и застрял в этой проблеме :-).

ответ

1

Я думаю, вы правильно проанализировали проблему и не знаете решение, о котором я знаю.

Обходной путь, который я использую как для Firefox, так и для Chrome, заключается в использовании about:blank для моей новой вкладки, которую я предпочитаю в любом случае. В Chrome это требует расширения.

Если вы хотите сохранить «верстак» для своей новой вкладки и, используйте букмарклеты с этой страницы, вам придется писать или находить расширение/аддон, хотя даже это может быть невозможно; Я никогда не смотрел в нее.

0

У вас возникла проблема на странице «Новая вкладка», потому что проверка безопасности на страницах хром: //.

Мы разрешаем URL-адреса JavaScript, введенные в омнибокс, для обхода CSP. Это отдельная проверка безопасности, которую Cris добавил в блок omnibox JavaScript URL-адреса на страницах Chrome для обеспечения безопасности.

[Source]

Чтобы исправить это, чтобы иметь букмарклет создать новую страницу и ввести в него JavaScript. Вот пример URL, который вы можете сохранить в своих записях.

data:text/html,<script>alert('This works');</script>