Я пытаюсь добавить Disqus в свое приложение Ionic/Cordova. Я успешно получил виджет Disqus для отображения в шаблоне с использованием iframe, но если я нажму на виджет Disqus для входа в Disqus, чтобы добавить комментарий или посмотреть на вкладку сообщества Disqus, например, приложение переходит к прокручиваемую страницу Disqus, которая заполняет весь экран, и нет способа вернуться к приложению.Disqus in Cordova/Ionic app застрял на странице Disqus
Есть ли способ сделать страницу ее прокруткой и меньше, чем экран, чтобы пользователь мог вернуться в приложение.
код сервераDisqus на статическом сервере:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
</head>
<body>
<div id="disqus_thread"></div>
<script type="text/javascript">
\t var params;
\t var disqus_url;
\t var disqus_title;
\t var disqus_shortname;
\t var disqus_identifier;
\t
\t window.onload = function() {
\t \t var match,
\t \t \t pattern = /\+/g,
\t \t \t search = /([^&=]+)=?([^&]*)/g,
\t \t \t decode = function (s) { return decodeURIComponent(s.replace(pattern, " ")); },
\t \t \t query = window.location.search.substring(1);
\t \t params = {};
\t \t while (match = search.exec(query))
\t \t params[decode(match[1])] = decode(match[2]);
\t
\t \t if (params["shortname"] === undefined || params["url"] === undefined || params["title"] === undefined) {
\t \t \t alert("Required arguments missing");
\t \t }
\t \t else {
\t \t \t loadComments(params["shortname"], params["url"], params["title"], params["identifier"]);
\t \t }
\t };
\t
\t function loadComments(shortname, url, title, identifier) {
\t \t disqus_url = url;
\t \t disqus_title = title;
\t \t disqus_shortname = shortname;
\t \t
\t \t if (identifier !== undefined)
\t \t \t disqus_identifier = identifier;
\t \t else
\t \t \t disqus_identifier = "";
\t
\t \t (function() {
\t \t \t var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = false;
\t \t \t dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
\t \t \t (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
\t \t })();
\t }
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
</body>
</html>
В контроллере моего приложения у меня есть:
var disqus_title = "TEST";
var disqus_identifier = '/movie/' + 0;
var disqus_url = 'http://example.com/movie/' + 0;
var url = "http://example.com/disqus.html?";
$scope.disqusurl = url + "shortname=example&url=" + encodeURIComponent(disqus_url) +
"&title=" + encodeURIComponent(disqus_title) + "&identifier=" + encodeURIComponent(disqus_identifier);
$scope.disqusurl = $sce.trustAsResourceUrl($scope.disqusurl);
Соответствующая часть файла шаблона выглядит следующим образом:
<ion-content>
...
<iframe style="max-height: 40%;" src="{{disqusurl}}"></iframe>
...
</ion-content>
EDIT Проблема, кажется, что веб-ссылки в виджете Disqus запускаются приложения. Если каким-то образом ссылки могут быть сделаны для открытия во внешнем браузере, все могут работать нормально, но я не могу понять, как сделать работу с HTML-кодом таким образом.
Спасибо Глобли. (1) Каким CSS вы ссылаетесь ?, (2) Я использую метод, рекомендованный Disqus. Я не знаю о методе Ajax, который вы можете разработать? (3) Я прочитал эту статью, и в ней упоминаются проблемы, которые я имею в виду но не дает решений, (4) Я попытался ограничить высоту iframe (см. мой пример кода), но это, похоже, не работает. –
Это были только общие предложения, которые я не заглядывал глубоко в это. В этом случае я бы попробовал 4. У вас есть страница на вашем веб-сайте, где встроен exqus iframe, а затем используйте iframe на этой странице, то есть iframe внутри iframe. Следовательно, disqus будет полностраничным внутри iframe. Это немного смущает, но я думаю, что это может сработать. –
Я использую iframe на странице, но когда вы нажимаете на одну из ссылок Disqus (например, login), вы попадаете на другую страницу, которая является полной страницей, и именно там проблема заключается в том, что нет способа вернуться. –