Попытка создать iframe с svg src на моем расширении Firefox

Я пытаюсь, чтобы мое расширение создало iframe, его тег src направляется в файл svg, который находится в файлах расширения. что-то вроде <iframe src="chrome://trail/content/onpagegui.svg"></iframe>

Всякий раз, когда я делаю это, я получаю следующую ошибку: Ошибка безопасности: содержимое в http://... может не загружаться или ссылаться на chrome://trail/content/onpagegui.svg. (Я думаю, что это причина той же политики происхождения)

Я испробовал все способы решения этой проблемы, среди них я пытался использовать ресурс: вместо chrome: как предложено в разделе Как расширение Firefox может вставлять локальный файл CSS в веб-страницу? но я не могу заставить его работать, потому что я пытаюсь внедрить svg вместо css или потому что я просто не получаю это... кстати, насколько я понял из MDC, ресурс: предназначен для кодов javascript и не css, я прав? это решение работоспособно?

Я также пытался собрать весь iframe и svg только с помощью javascript, которые вызывают множество других проблем...

Есть ли способ вставить этот файл.svg во вновь созданный iframe?

Большое спасибо заранее, Йонатан

2 ответа

Вы должны сделать ваше расширение доступным.

Я могу придумать два возможных решения:

  1. Используйте, например, XMLHttpRequest, чтобы прочитать ваш SVG в строку. Затем установите src для фрейма в data: URL.
  2. Зарегистрируйте компонент, который реализует nsIAboutModule. Затем установите src фрейма в свой пользовательский about: URL.

По иронии судьбы ни один из этих методов не требует оспаривания!

Другие вопросы по тегам