Подземелье Кода

20-ое июля 2006

Как получить вокруг «доступа отказан» в звоноке яваскрипта Window.Open ()

Сохранено вниз: HTML - 10:45 am Брайан @

Я делал 2 изменения к lister форм и поля я вывесил вчера - первоначально столб был изменен для того чтобы включить их.

На первом плане, линия к затиру в Start->Run для того чтобы установить программу в регистратуру изменялось WordPress. Хотя текст посмотрел идентичным, двойные цитаты изменялись к различному характеру. Результат было вами получил бы «ошибку инвалидного ключевого имени». Если, в DOS, вы пошли назад и заменили imposters двойной цитаты с фактическими двойными цитатами, то оно побежало бы отлично. Так я оборачивал что линия с PRE и TT маркируют в первоначально столбе и при условии командное файло в случае если любое все еще имеет проблемы.

Во-вторых, было открыно что некоторые компьютеры Windows преградят всплывающее. Были бы никакая дали ошибка, котор или любая индикация что случилось за диалоговым окном проблескивая вверх на экране и исчезая. Я отлаживал это путем добавлять бдительный (1), сигнал тревога (2)… сообщения сигнала тревога (n) после каждой линии исходного кода. Как только я сделал то, IE был добросердечен достаточно для того чтобы сказать мне что он бомбил вне должное к «доступу отказывает» ошибку вызванную от моего Window.Open (»»,» tcc_formlist»,» "); команда. Что линия работала на моем офисе, но бомбила вне на одном из моего домашнего компьютера.

Причина что Windows теперь преграждает одну окно или рамку достигая другого окна или рамку которая в различном домене (или зоне обеспеченностью я верю). Этот метод Scripting рамки звоноков перекрестный. Проблема что чего я делаю с этими инструментами точно работает через 2 кадры/окна. Удачливейше путь вокруг этого.

Имеющееся Мини-Ч.З.В. яваскрипта, здесь: http://www.dannyg.com/ref/jsminifaq.html#q15, имеет хорошее описание этого вопроса и работы вокруг:

Q. Чего делает отказывают IE «доступ» ошибку значить?
A. «Доступ отказал» ошибку в любом браузере обычно значит что сценарий в одной окне или рамке пробует достигнуть другого окна или обрамить которого домен документа отличал документ содержа сценарий. Что может показаться нечетным о этом что вы получаете эту ошибку в IE для Windows часто когда сценарий в одном окне производит новое окно (с window.open ()), и содержание для того другого окна динамически создано от такого же сценария делая отверстие. Метод фокуса () также вызывает ошибку.
Ошибка может также произойти если сценарии пробуют достигнуть предметов, свойств, или методов, то которые были зафиксированы вниз взводом обеспеченностью Майкрософта. На пример, свойство document.styleSheets.rules использовало для того чтобы быть доступно в IE 5 и IE 5.5, но нет в IE 6.

Для проблемы нового окна, бит истории связанный с проблемой и временными решениями. Например, проблема происходит часто когда сценарии бегутся от местного жёсткия диска. Вы получаете ключ о ситуации в titlebar нового окна: Оно принуждает около: пустой URL к новому окну, которое протокол: домен который отличает от где бы ни вашего сценария главного окна приходит от. Если, однако, вы одеваете в такой же документ главного окна сервер, и достигаете его через http:, проблема идете прочь.

Временное решение для местной-только проблемы: В первом параметре звонока метода window.open (), нагрузите реальный документ (даже если содержани-свободный документ HTML) в sub-window перед использованием document.write () для того чтобы произвести содержание для subwindow. `Действия нагрузки legitimizes окно как приходящ от такого же домена как ваш документ главного окна.

(Это разрешение не влияет на сценарии которые нагружают страницу от безопасного сервера в отдельно окно или рамку. Http: протокол в одном окне и https: в друг-ровной если от такого же server.domain-yield рассогласование и «доступ обеспеченностью отказали.», то Устанавливаю свойства document.domain обеих страниц могу разрешить проблему (но меня неспособны испытать ее для конечно).)
[...]

Я имею обновлено первоначально Код для того чтобы включить эту починку.
Window.Open (»»,» tcc_formlist»,» ");
теперь
Window.Open (» file:///c:/Windows/web/formlist.htm»,» tcc_formlist»,» ");

Конечный результат что команда window.open быстро раскрывает сценарий прежде чем динамически содержание показано. Эта маленькая отметка цели не заметна на моем компьютере дочей. Я не думаю что будет главным замедлением. Должно к как Код написан, не исполнено целый режима JS. Самый большой недостаток что сценарий теперь имеет справку к чему я надеюсь архив - имя, котор нужно находиться на вашем компьютере. Если вы переименуете сценарий, то вам нужно изменить ту справку в источнике. Я сомневаюсь что много людей переименуют сценарий.

То было добросердечн- ramble… То все делает чувство?

3 комментария »

  1. Высокое Брайан,

    Я делаю точно такую же вещь пока пробующ для того чтобы раскрыть архив от моего местного hdd.

    Я имею

    В моем теле, и соответствуя функции яваскрипта является следующим:

    функция OpenSpecifiedFile () {
    filename var = «file:///c:/procedure.txt»;
    window.open (filename,» abcd»,» "); //I добавило треть «» после того как я увидел этот блог
    }

    Я имею в настоящее время hardcoded filename хотя я могу очень хлынуться выбор оно вверх от filectrl.

    Моя страница хозяйничается на webserver .net значения по умолчанию упакованном с VS2005.

    :(

    Мне нужно изменить зону обеспеченностью в моем IE 6?

    Vaishali

    Комментарий Vaishali - 2:18 am 22-ое августа 2006 @

  2. HI vaishali,
    Мое требование такое же как vaishali. Я попробовал разрешение как сказано Brian.But его помощь din't.

    Комментария 5:46 am 5-ое марта 2007 мимо глубоко - @

  3. [...] http://www.thecodecave.com/article213 [...]

    Pingback доменом Креста вызывает посредством iframe - ограничения и разрешения браузера IE - iulia - 7:38 pm 5-ое апреля 2008 @

Питание RSS для комментариев на этом столбе. URL TrackBack

Выйдите комментарий

Приведено в действие WordPress