Открыть окно с существующей страницы в Firefox дает мне ошибку безопасности - PullRequest
1 голос
/ 22 октября 2009

Я разрабатываю расширение для Firefox. На стороне клиента веб-страницы я добавляю ссылку и, щелкая по ссылке, намереваюсь открыть окно, в котором пользователь сможет вводить текст. Когда я нажимаю на ссылку, она открывает окно, но не позволяет мне писать в нее.

например. ww.document.write('<div id = "textDiv">') ; здесь выдает ошибку:

Error: uncaught exception: [Exception... "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" location: "chrome://googbar/content/googbar.js Line: 272"]

и я открываю окно, используя следующее:

var ww = Components.classes[
    "@mozilla.org/embedcomp/window-watcher;1"].getService(Components.interfaces.nsIWindowWatcher);
var wm =Components.classes["@mozilla.org/appshell/window-mediator;1"]

calWindow = ww.openWindow(null,'calendarWindow',null, 'left =500, top = 190, width = 230, height = 220,titlebar = no', null); 

Открытое окно не является пустым окном, оно содержит содержимое родительского окна. например, я открываю это окно из википедии, открытое новое окно содержит вики-страницу.

Ответы [ 2 ]

0 голосов
/ 23 октября 2009

1) nsIWindowWatcher.openWindow * Второй аргумент - URL. CalendarWindow не является. Результат google от mozillazine предполагает, что передача '' волшебным образом заставляет document.write работать, я не проверял.

2) Я бы попробовал установить document.body.innerHTML вместо использования document.write(). Я думаю, document.write() - плохой API, который должен продолжать существовать только для совместимости.

3) В любом случае, в вашем случае я не понимаю, почему вам нужно открывать окно браузера целиком, чтобы поместить туда простой HTML. Создайте диалог XUL, поместите его в свое расширение и откройте его (используя window.open('chrome://....', '', 'chrome')). Это также намного быстрее открывать.

0 голосов
/ 22 октября 2009

Я не совсем понимаю, что является причиной этого, но эти две страницы на MDC предполагают, что это могло быть вызвано изменениями в Firefox 3.0, чтобы усилить некоторые проблемы безопасности.

Хотя это и не полный ответ, это может поставить вас на правильный путь решения вашей проблемы. Если нет, дайте нам более подробную информацию о том, что вы пытаетесь сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...