You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by fi...@apache.org on 2013/05/17 04:26:57 UTC
js commit: [CB-3393] plugin_loader fix for pages in subdirectories.
Updated Branches:
refs/heads/master 757fa3c93 -> 1a148c0af
[CB-3393] plugin_loader fix for pages in subdirectories.
Project: http://git-wip-us.apache.org/repos/asf/cordova-js/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-js/commit/1a148c0a
Tree: http://git-wip-us.apache.org/repos/asf/cordova-js/tree/1a148c0a
Diff: http://git-wip-us.apache.org/repos/asf/cordova-js/diff/1a148c0a
Branch: refs/heads/master
Commit: 1a148c0af8b9e7bcc76d3096889ac1c1d4ad77e4
Parents: 757fa3c
Author: Fil Maj <ma...@gmail.com>
Authored: Thu May 16 19:26:51 2013 -0700
Committer: Fil Maj <ma...@gmail.com>
Committed: Thu May 16 19:26:51 2013 -0700
----------------------------------------------------------------------
lib/scripts/plugin_loader.js | 21 ++++++++++++++++-----
1 files changed, 16 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-js/blob/1a148c0a/lib/scripts/plugin_loader.js
----------------------------------------------------------------------
diff --git a/lib/scripts/plugin_loader.js b/lib/scripts/plugin_loader.js
index 357f8a7..892bd76 100644
--- a/lib/scripts/plugin_loader.js
+++ b/lib/scripts/plugin_loader.js
@@ -54,7 +54,7 @@
// See plugman's plugin_loader.js for the details of this object.
// This function is only called if the really is a plugins array that isn't empty.
// Otherwise the XHR response handler will just call finishPluginLoading().
- function handlePluginsObject(modules) {
+ function handlePluginsObject(modules, path) {
// First create the callback for when all plugins are loaded.
var mapper = context.cordova.require('cordova/modulemapper');
onScriptLoadingComplete = function() {
@@ -88,11 +88,21 @@
// Now inject the scripts.
for (var i = 0; i < modules.length; i++) {
- injectScript(modules[i].file);
+ injectScript(path + modules[i].file);
}
}
-
+ // Find the root of the app
+ var path = '';
+ var scripts = document.getElementsByTagName('script');
+ var term = 'cordova.js';
+ for (var n = scripts.length-1; n>-1; n--) {
+ var src = scripts[n].src;
+ if (src.indexOf(term) == (src.length - term.length)) {
+ path = src.substring(0, src.length - term.length);
+ break;
+ }
+ }
// Try to XHR the cordova_plugins.json file asynchronously.
var xhr = new XMLHttpRequest();
xhr.onload = function() {
@@ -105,7 +115,7 @@
// obj will be undefined.
}
if (Array.isArray(obj) && obj.length > 0) {
- handlePluginsObject(obj);
+ handlePluginsObject(obj, path);
} else {
finishPluginLoading();
}
@@ -113,8 +123,9 @@
xhr.onerror = function() {
finishPluginLoading();
};
+ var plugins_json = path + 'cordova_plugins.json';
try { // we commented we were going to try, so let us actually try and catch
- xhr.open('GET', 'cordova_plugins.json', true); // Async
+ xhr.open('GET', plugins_json, true); // Async
xhr.send();
} catch(err){
finishPluginLoading();