Поделиться через


Ошибка отказа в доступе при чтении свойств объекта "Местоположение HTML-приложения"

Предупреждение

Устаревшее и не поддерживаемое классическое приложение Internet Explorer 11 было окончательно отключено путем обновления Microsoft Edge в некоторых версиях Windows 10. Дополнительные сведения см. в разделе Часто задаваемые вопросы о прекращении поддержки программы для настольных компьютеров Internet Explorer 11.

В этой статье содержится множество методов для решения сообщения об ошибке "Разрешение отказано ", которое возникает при чтении свойств объекта Location, который находится внутри HTML-приложения (HTA).

Исходная версия: Internet Explorer
Исходный номер базы знаний: 816885

Симптомы

При чтении определенных свойств объекта Location, который находится внутри HTML-приложения (HTA), может появиться сообщение об ошибке "Разрешение отказано ". К соответствующим свойствам объекта Location относятся:

  • Location.href
  • Локация.имя_хоста
  • Location.reload

Примечание.

Эту ошибку можно заметить только в том случае, если вы используете скрипт автоматической настройки в параметрах локальной сети (LAN) Microsoft Internet Explorer.

Если на компьютере установлены средства отладки, может появиться следующее сообщение об ошибке:

Произошла ошибка среды выполнения. Хотите ли вы выполнить отладку? Ошибка строки 12: отклонено разрешение

Если средства отладки не установлены на компьютере, может появиться следующее сообщение об ошибке:

Произошла ошибка в скрипте на этой странице. Строка: 13 Символ: 2 Ошибка: Доступ запрещен Код: 0 URL: http://WebServer/FileName.hta Хотите продолжить выполнение скриптов на этой странице?

Примечание.

Эта проблема может возникнуть только в том случае, если скрипт автоматической настройки имеет значение DIRECT.

Решение

Чтобы устранить эту проблему, используйте любой из следующих методов:

Примечание.

Приведенные ниже методы основаны на примере, приведенном в разделе "Действия по воспроизведению поведения" этой статьи. Поэтому код и имена файлов в этих методах могут отличаться от вашего кода и имен файлов.

  • Вместо использования сценария автоматической настройки укажите прокси-сервер вручную в настройках прокси-сервера Internet Explorer, а затем нажмите клавишу F5 для обновления HTA в браузере.
  • Используйте имя узла вместо полного доменного имени (FQDN) для доступа к HTA.
  • Используйте IP-адрес для доступа к HTA.
  • Добавьте веб-сайт, к которому вы обращаетесь к доверенной зоне или к зоне с ограниченным доступом.
  • Не используйте объект Location в коде.
  • Щелкните, чтобы очистить флажок "Включить все сайты, которые обходят прокси-сервер " в параметрах безопасности Internet Explorer.

Шаги для воспроизведения поведения

  1. Запустите Internet Explorer.

  2. В меню Сервис выберите пункт Свойства обозревателя.

  3. На вкладке Подключения щелкните Настройки локальной сети.

  4. В диалоговом окне параметров локальной сети (LAN) установите флажок "Использовать скрипт автоматической настройки". Убедитесь, что ни один из других флажков не установлен.

  5. В поле "Адрес" введите путь к скрипту автоматической настройки.

  6. Используйте Блокнот для создания текстового файла с именем Default.hta.

  7. Добавьте следующий HTML-код в файл Default.hta:

    <html>
        <head>
            <title>HTA Location.href bug reproduction</title>
            <HTA:APPLICATION ID="oBugRepro" APPLICATIONNAME="BugRepro">
                <SCRIPT LANGUAGE="JavaScript">
                    function ShowFrame() {
                        var strLocation;
                        strLocation = top.fraTabs.location.href;
                    }
                </SCRIPT>
        </head>
        <frameset id="fstWorkAreaMain" name="fstWorkAreaMain" rows="40%,60%">
            <frame src="about:blank" id="fraTabs" name="fraTabs" APPLICATION="yes">
                <frame src="Main.htm" id="fraMain" NAME="fraMain" APPLICATION="yes">
        </frameset>
    </html>
    
  8. Используйте Блокнот для создания текстового файла, который называется Main.htm.

  9. Добавьте следующий HTML-код в файл Main.htm:

    <HTML>
        <BODY style="background-color:gainsboro">
            <P>Main frame</P>
            <input id="cmdButton" type="button" onclick="top.ShowFrame()"
                value="Click me to reproduce the behavior"></input>
        </BODY>
    </HTML>
    
  10. Поместите два файла Default.hta и Main.htm в виртуальный каталог, который называется HTARepro на веб-сервере.

  11. Убедитесь, что вы включили анонимный доступ к содержимому виртуального каталога HTARepro.

  12. Введите в командной строке следующую команду:

    mshta.exe http://WebServer/HTARepro/Default.hta
    

    Примечание.

    Замените WebServer на полное доменное имя (FQDN) используемого веб-сервера.

  13. В приложении HTA щелкните по кнопке, чтобы повторить действие. Вы получите одно из сообщений об ошибках, упомянутых в разделе "Симптомы" этой статьи.

Ссылки

Дополнительные сведения см. в разделе "Общие сведения о приложениях HTML(HTAs)".