2015-11-23 3 views
0

Есть ли способ использовать cordovas InAppBrowser для ссылки на элементы на странице и определения при нажатии? Страница, на которую я ссылаюсь, имеет кнопку «Назад» и кнопку «Закрыть», и мне нужно знать, какой из них нажат, а затем закрыть inAppBrowser.cordova inappbrowser ссылочные элементы

Я предполагаю, что это будет выглядеть примерно так, но я не могу заставить его работать

var ref = window.open(url, '_blank'); 
ref.addEventListener('loadstop', function(event) { 
    ref.executeScript({ 
     code: 
     "document.getElementById('pageHeader').onclick = function() { 
      alert('button was clicked'); 
     }" 
    }); 
} 

Можно ли использовать вместо:

executeScript({ link: "https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js" }); 

А затем с помощью JQuery?

executeScript({ code: "$('#pageHeader').on('click', function() { alert('button was clicked'); }"}); 
+0

Хотя 'InAppBrowser' плагин позволяет запускать SCRI pt на отображаемой странице, как в вашем вопросе, это не сработает, если страница не принадлежит вам (т. а не часть вашего приложения), потому что вы получите ошибку разрешения. Это иронично, потому что наиболее распространенное использование плагина InAppBrowser - отображать страницы, которые не являются частью самого приложения, поэтому метод 'executeScript' практически бесполезен. –

+0

@ RacilHilan Ahh, вы знаете, есть ли способ, которым я могу ссылаться при нажатии кнопки «Назад»? вне executeScript? – DanceSC

+0

Нет, извините, иначе я бы разместил его в ответ :-). Я не думаю, что это можно сделать. В 'executeScript' есть кнопка X, чтобы закрыть его, если вам это не нравится, вы можете изменить, как он выглядит для Android. Для iOS это стандартный стиль, и я не думаю, что вы можете его изменить, но он выглядит хорошо. –

ответ

1

Я только что проверил это на прошивкой, и это работает, вы имели ошибку синтаксиса

рабочий пример, который впрыскивает JS на Бинг сайте sbBtn кнопка Значок поиска:

var ref = window.open("https://www.bing.com/?setlang=es", '_blank'); 
ref.addEventListener(
    'loadstop', 
    function(event) { 
     ref.executeScript({ 
      code: "document.getElementById('sbBtn').onclick = function() {alert('button was clicked');}" 
     }); 
    } 
); 

И JQuery подход:

var ref = window.open("https://www.bing.com/?setlang=es", '_blank'); 
ref.addEventListener('loadstop', function(event) { 
    ref.executeScript({ 
     file: "https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js" 
    }, function() { 
     ref.executeScript({ 
      code: "jQuery('#sbBtn').on('click', function() { alert('button was clicked'); });" 
     }); 
    }); 

}); 
+0

Я пробовал верхнюю часть, и я не мог заставить ее работать, хотя проблема в том, что я пытаюсь подключиться к walgreens с помощью телефонной заставки, поэтому мне нужно было метод обнаружения, если были нажаты кнопки «Назад» или «Отмена». Из-за этого, хотя я не знаю наверняка, являются ли они фактическими кнопками или ссылками, и если это повлияет на javascript .onclick, поэтому я буду тестировать его с помощью jquery, как только их серверы будут поддерживаться. – DanceSC

+0

'' 'http: // www.walgreens.com'''? Я загрузил его, и он уже использует jquery, но я не вижу кнопки отмены или возврата – jcesarmobile

+0

, потому что я использую фотопечати api, а не их обычный сайт - https://services-qa.walgreens.com/api/util/mweb5url – DanceSC