У меня проблема с вебом после добавления значка на главный экран. Если веб-сайт запускается с главного экрана, все ссылки открываются в новом окне в Safari (и теряют полноэкранный режим). Как я могу предотвратить это? Я не мог найти никакой помощи, только тот же вопрос без ответа.
iphone
safari
iphone-standalone-web-app
Павел Линеш
источник
источник
scope
параметр вmanifest.json
. Смотрите мой ответ для более подробной информации. Я протестировал его в iOS 11.3, и он работает.Ответы:
Я нашел решение JavaScript в рамках iWebKit :
источник
[].forEach.call(document.links, function(link) { link.addEventListener("click", function(event) { event.preventDefault(); window.location = this.href; }) });
Другие решения здесь либо не учитывают внешние ссылки (которые вы, вероятно, хотите открыть внешне в Safari), либо не учитывают относительные ссылки (без домена в них).
Проект html5 mobile-шаблон содержит ссылку на эту суть, которая хорошо обсуждает эту тему: https://gist.github.com/1042026
Вот заключительный код, который они придумали:
источник
Если вы используете jQuery, вы можете сделать:
источник
this.href
вместо приведения к объекту jQuery, но спасибо за этот ответ. Работает на iOS6.Это работает для меня на iOS 6.1 и со ссылками Bootstrap JS (т.е. выпадающие меню и т. Д.)
источник
$('a').on('click'
, function (e) {`на$('area').on('click'
, function (e) {`, но, похоже, это тоже не сработало. Любые идеи?a
с помощью которыхhref="#"
вы можете более точно указать селектор jquery, например$('a[href!="#"]')
Это старый вопрос, и многие решения здесь используют javascript. С тех пор iOS 11.3 была выпущена, и теперь вы можете использовать элемент scope . Член области - это URL-адрес, подобный тому,
"/"
где все пути в этой области не открывают новую страницу.Вот мой пример:
Вы также можете прочитать больше об этом здесь . Я также рекомендую использовать генератор, который обеспечит эту функциональность.
источник
На основании ответа Дэвидса и комментария Ричардса, вы должны выполнить проверку домена. В противном случае ссылки на другие сайты также будут открыты в вашем веб-приложении.
источник
При использовании jQuery Mobile вы увидите новое окно при использовании атрибута data-ajax = 'false'. Фактически, это будет происходить всякий раз, когда ajaxEnabled отключается, используя внешнюю ссылку, настройку $ .mobile.ajaxEnabled или имея атрибут target = ''.
Вы можете исправить это используя это:
(Спасибо Ричарду Пулу за метод live () - он не работал с bind ())
Если вы отключили ajaxEnabled глобально, вам нужно удалить [data-ajax = 'false'].
Это заняло у меня довольно много времени, чтобы понять, как я ожидал, что это будет специфическая проблема jQuery Mobile, где на самом деле это было соединение с Ajax, которое фактически запретило новое окно.
источник
Этот код работает для iOS 5 (он работал для меня):
В заголовке тега:
В ссылке, которую вы хотите открыть в том же окне:
Я получил этот код из этого комментария: метатеги веб-приложения iphone
источник
Возможно, вам следует разрешить открывать ссылки в новом окне, когда для цели явно установлено значение "_blank":
источник
Я нашел один, который является очень полным и эффективным, потому что он проверяет работу только под автономным WebApp, работает без jQuery и также прост, только что протестирован под iOS 8.2:
Оставайтесь автономными: не открывайте ссылки в автономных веб-приложениях, открывая Mobile Safari
источник
Вы также можете сделать ссылку почти нормально:
И вы можете удалить хеш-тег и HREF, все, что он делает, это влияет на внешний вид ..
источник
Вот что у меня сработало на iOS 6 (очень слабая адаптация ответа rmarscher):
источник
Это слегка адаптированная версия Шона, которая мешала вернуться назад.
});
источник
Для тех, кто с Twitter Bootstrap и Rails 3
Удалить ссылки все еще работают таким образом.
источник
Я предпочитаю открывать все ссылки в режиме автономного веб-приложения, кроме тех, которые имеют target = "_ blank". Использование jQuery, конечно.
источник
Одним из обходных путей, который я использовал для веб-приложения для iOS, было то, что я сделал все ссылки (которые были кнопками по CSS) с кнопок отправки формы. Поэтому я открыл форму, которая отправила ссылку на место назначения, а затем введите type = "submit" Не лучшим образом, но это то, что я понял до того, как нашел эту страницу.
источник
Я создал пакет для установки bower из ответа @ rmarscher, который можно найти здесь:
http://github.com/stylr/iosweblinks
Вы можете легко установить фрагмент с беседкой, используя
bower install --save iosweblinks
источник
Для тех
JQuery Mobile
, кто использует , вышеупомянутые решения ломают всплывающее диалоговое окно. Это будет держать ссылки в веб-приложении и позволит всплывающие окна.Может также сделать это:
источник
Вот что я бы использовал для всех ссылок на странице ...
Если вы используете JQuery или Zepto ...
источник
Вы можете просто удалить этот метатег.
источник