2014-01-10 1 views
0

Я сделал Google Chrome extension, который вставляет (по умолчанию скрытую) текстовую область в документ.Стиль контента не применяется к текстовым файлам из GitHub

Он появляется на всех страницах. Это нормально, когда страница HTML, но на других страницах это не полезно. Например, когда я открываю https://raw2.github.com/github/hubot/master/README.md, я могу видеть textarea, даже у него есть display: none !important стилизация (через класс). Он должен быть скрыт, но это не так.

Screenshot

Как предотвратить эту странную ситуацию? Может быть, проверить тип документа (это HTML)?

+0

возможно дубликат [Как определить тип пантомимы на текущей вкладке в в расширение Google Chrome?] (HTTP: //stackoverflow.com/questions/4921175/how-can-i-detect-the-current-tabs-mime-type-in-a-google-chrome-extension) –

+0

@ZDroid, ваша проблема вызвана чем-то совершенно другим из типа документа. Не могли бы вы изменить свой вопрос, чтобы задать свой реальный вопрос, а не то, что, по вашему мнению, вызвало проблему? –

+0

@RobW Получите источник и попробуйте с этой страницей GitHub Raw. Я попытаюсь решить вопрос, который написал Бенджамин. – Zlatan

ответ

2

Похоже, что стили сценария содержимого не применяются к файлам, которые подаются с типом MIME text/plain. Это, безусловно, ошибка, поэтому я сообщил об этом на отслеживании ошибок Chromium, см. issue 333234.

работы вокруг этой проблемы, чтобы вставить простой <style> элемент в документе:

document.head.appendChild(document.createElement('style')); 

Это не работы в вашем конкретном примере, так как встроенные и внешние таблицы стилей блокируются Github-х Content Security Policy (default-src 'none').
Единственная работа вокруг я могу думать о том, чтобы непосредственно применить таблицу стилей с помощью JavaScript:

textarea.style.display = 'none'; 
// Or, 
textarea.style.cssText = 'display:none;'; 
+0

Я только что спросил об этой конкретной проблеме. Кроме того, вам не нужно беспокоиться о моих мнениях. У меня есть причины для того, чтобы делать что-то в * боковых заметках *. API-интерфейс хранилища находится в реализации, я не знаю, почему вы беспокоитесь об этом. – Zlatan

+0

@ZDroid Не беспокойтесь, просто указывая на них, если вы (или другие) не знаете. Хранение данных расширения в пространстве хранения других веб-страниц часто не является идеальным. Я не буду вдаваться в подробности, потому что вы сказали, что знаете лучше. Вы хотите, чтобы я удалил последний раздел (боковые заметки, не связанные с конкретным вопросом)? –

+0

Я этого не говорил. Оо. Делай, что хочешь, нормально оставаться, но это совершенно не полезно для новых * чуваков *, которые прочтут этот вопрос. :) – Zlatan

Смежные вопросы