Сброс настроек iPhone, Apple Watch и Mac устранил проблему.
HTA работает как обычное приложение Windows.
Вы пишете HTML-код и сохраняете его как файл .hta.
Однако есть, по крайней мере, один недостаток: браузер не может открыть файл .hta; он обрабатывается как обычная программа .exe. Итак, если вы разместите ссылку на .hta на своей веб-странице, откроется диалоговое окно загрузки, в котором вас попросят открыть или сохранить файл HTA. Если для вас это не проблема, вы можете нажать «Открыть», и откроется новое окно (в котором нет панелей инструментов, поэтому нет кнопки «Назад», ни адресной строки, ни строки меню).
Мне нужно было сделать что-то очень похожее. как хотите, но вместо окон iframe
я использовал настоящий набор фреймов
.
Главная страница должна быть файлом .hta; другая должна быть обычной страницей .htm (или .php, или чем-то еще).
Вот пример страницы HTA с 2 фреймами, где на верхнем есть кнопка и текстовое поле, которое содержит URL-адрес второго фрейма; кнопка обновляет поле:
<html>
<head>
<title>HTA Example</title>
<HTA:APPLICATION id="frames" border="thin" caption="yes" icon="http://www.google.com/favicon.ico" showintaskbar="yes" singleinstance="no" sysmenu="yes" navigable="yes" contextmenu="no" innerborder="no" scroll="auto" scrollflat="yes" selection="yes" windowstate="normal"></HTA:APPLICATION>
</head>
<frameset rows="60px, *">
<frame src="topo.htm" name="topo" id="topo" application="yes" />
<frame src="http://www.google.com" name="conteudo" id="conteudo" application="yes" />
</frameset>
</html>
HTA: APPLICATION
, который устанавливает некоторые свойства для файла; это хорошо, но не обязательно. application = "yes"
в теги фреймов. Он говорит, что они тоже принадлежат программе и должны иметь доступ ко всем данным (если вы этого не сделаете, кадры все равно будут показывать ошибку, которая у вас была раньше). <html>
<head>
<title>Topo</title>
<script type="text/javascript">
function copia_url() {
campo.value = parent.conteudo.location;
}
</script>
</head>
<body style="background: lightBlue;" onload="copia_url()">
<input type="button" value="Copiar URL" onclick="copia_url()" />
<input type="text" size="120" id="campo" />
</body>
</html>
. Надеюсь, это поможет вам и другим, кто ответит на этот вопрос. Он решил мою проблему, которая выглядит такой же, как и у вас.
Вы можете найти дополнительную информацию здесь: http://www.irt.org/articles/js191/index.htm
Наслаждайтесь =]
Я провел несколько тестов в Firefox 3, сравнивая значения .src
и .documentWindow.location.href
в iframe
]. (Примечание: documentWindow
называется contentDocument
в Chrome, поэтому вместо .documentWindow.location.href
в Chrome это будет .contentDocument.location .href
.)
src
всегда является последним URL-адресом, который был загружен в iframe без вмешательства пользователя. Т.е. он содержит первое значение для URL-адреса или последнее значение, которое вы установили с помощью Javascript из содержащего окна, выполняя:
document.getElementById("myiframe").src = 'http://www.google.com/';
Если пользователь перемещается внутри iframe, вы больше не можете получить доступ к значению URL-адреса с помощью src . В предыдущем примере, если пользователь уходит с www.google.com, а вы это делаете:
alert(document.getElementById("myiframe").src);
, вы все равно получите "