You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by za...@apache.org on 2014/06/05 14:32:07 UTC
[2/9] git commit: back/forward buttons added, iframe has no border
back/forward buttons added, iframe has no border
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/commit/7b24dcb3
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/tree/7b24dcb3
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/diff/7b24dcb3
Branch: refs/heads/master
Commit: 7b24dcb3ddf86bb3dd4423ed7d0904aa786abe03
Parents: 282fdb7
Author: Piotr Zalewa <pi...@zalewa.info>
Authored: Thu Apr 24 14:14:41 2014 -0400
Committer: Piotr Zalewa <pi...@zalewa.info>
Committed: Thu Apr 24 14:14:41 2014 -0400
----------------------------------------------------------------------
src/firefoxos/InAppBrowserProxy.js | 97 ++++++++++++++++++++++++++++-----
1 file changed, 82 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugin-inappbrowser/blob/7b24dcb3/src/firefoxos/InAppBrowserProxy.js
----------------------------------------------------------------------
diff --git a/src/firefoxos/InAppBrowserProxy.js b/src/firefoxos/InAppBrowserProxy.js
index 85ea5b9..1427ea0 100644
--- a/src/firefoxos/InAppBrowserProxy.js
+++ b/src/firefoxos/InAppBrowserProxy.js
@@ -47,10 +47,35 @@ var IABExecs = {
open: function (win, lose, args) {
var strUrl = args[0],
target = args[1],
- features = args[2],
+ features_string = args[2],
+ features = {},
url,
elem;
+ var features_list = features_string.split(',');
+ features_list.forEach(function(feature) {
+ var tup = feature.split('=');
+ if (tup[1] == 'yes') {
+ tup[1] = true;
+ } else if (tup[1] == 'no') {
+ tup[1] = false;
+ } else {
+ var number = parseInt(tup[1]);
+ if (!isNaN(number)) {
+ tup[1] = number;
+ }
+ }
+ features[tup[0]] = tup[1];
+ });
+
+ function updateIframeSizeNoLocation() {
+ console.log('hey');
+ browserWrap.style.width = window.innerWidth + 'px';
+ browserWrap.style.height = window.innerHeight + 'px';
+ browserWrap.browser.style.height = (window.innerHeight - 60) + 'px';
+ browserWrap.browser.style.width = browserWrap.style.width;
+ }
+
if (target === '_system') {
origOpenFunc.apply(window, [strUrl, '_blank']);
} else if (target === '_blank') {
@@ -63,31 +88,73 @@ var IABExecs = {
document.body.removeChild(browserWrap);
}
browserWrap = document.createElement('div');
- browserWrap.classList.add('inappbrowser-wrap');
+ // assign browser element to browserWrap for future reference
+ browserWrap.browser = browserElem;
+
+ browserWrap.classList.add('inAppBrowserWrap');
browserWrap.style.position = 'absolute';
- browserWrap.style.width = window.innerWidth + 'px';
- browserWrap.style.height = window.innerHeight + 'px';
- browserWrap.style.padding = '10px,0,0,0';
browserElem.style.position = 'absolute';
+ browserElem.style.border = 0;
browserElem.style.top = '60px';
browserElem.style.left = '0px';
- browserElem.style.height = (window.innerHeight - 60) + 'px';
- browserElem.style.width = browserWrap.style.width;
+ updateIframeSizeNoLocation();
+
+ var menu = document.createElement('menu');
+ menu.setAttribute('type', 'toolbar');
+ var close = document.createElement('li');
+ var back = document.createElement('li');
+ var forward = document.createElement('li');
- browserWrap.addEventListener('click', function () {
+ close.appendChild(document.createTextNode('×'));
+ back.appendChild(document.createTextNode('<'));
+ forward.appendChild(document.createTextNode('>'));
+
+ close.classList.add('inAppBrowserClose');
+ back.classList.add('inAppBrowserBack');
+ forward.classList.add('inAppBrowserForward');
+
+ function checkForwardBackward() {
+ var backReq = browserElem.getCanGoBack();
+ backReq.onsuccess = function() {
+ if (this.result) {
+ back.classList.remove('disabled');
+ } else {
+ back.classList.add('disabled');
+ }
+ }
+ var forwardReq = browserElem.getCanGoForward();
+ forwardReq.onsuccess = function() {
+ if (this.result) {
+ forward.classList.remove('disabled');
+ } else {
+ forward.classList.add('disabled');
+ }
+ }
+ };
+
+ browserElem.addEventListener('mozbrowserloadend', checkForwardBackward);
+
+ close.addEventListener('click', function () {
setTimeout(function () {
IABExecs.close();
}, 0);
}, false);
- var p = document.createElement('p');
- p.appendChild(document.createTextNode('close'));
- // TODO: make all buttons - ← → ×
- browserWrap.appendChild(p);
+
+ back.addEventListener('click', function () {
+ browserElem.goBack();
+ }, false);
+
+ forward.addEventListener('click', function () {
+ browserElem.goForward();
+ }, false);
+
+ menu.appendChild(back);
+ menu.appendChild(forward);
+ menu.appendChild(close);
+
+ browserWrap.appendChild(menu);
browserWrap.appendChild(browserElem);
document.body.appendChild(browserWrap);
- // assign browser element to browserWrap for future
- // reference
- browserWrap.browser = browserElem;
} else {
window.location = strUrl;
}