Made _getScriptLocation smarter, and added it to SingleFile.js also. This means that single file builds no longer need to contain OpenLayers.js. r=eleomine (closes #2873)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@10822 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
+1
-1
@@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
[first]
|
[first]
|
||||||
OpenLayers/SingleFile.js
|
OpenLayers/SingleFile.js
|
||||||
OpenLayers.js
|
|
||||||
OpenLayers/BaseTypes.js
|
OpenLayers/BaseTypes.js
|
||||||
OpenLayers/BaseTypes/Class.js
|
OpenLayers/BaseTypes/Class.js
|
||||||
OpenLayers/Util.js
|
OpenLayers/Util.js
|
||||||
@@ -15,4 +14,5 @@ Rico/Corner.js
|
|||||||
|
|
||||||
[exclude]
|
[exclude]
|
||||||
Firebug
|
Firebug
|
||||||
|
OpenLayers.js
|
||||||
OpenLayers/Lang
|
OpenLayers/Lang
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
[first]
|
[first]
|
||||||
OpenLayers/SingleFile.js
|
OpenLayers/SingleFile.js
|
||||||
OpenLayers.js
|
|
||||||
OpenLayers/BaseTypes.js
|
OpenLayers/BaseTypes.js
|
||||||
OpenLayers/BaseTypes/Class.js
|
OpenLayers/BaseTypes/Class.js
|
||||||
OpenLayers/Util.js
|
OpenLayers/Util.js
|
||||||
@@ -16,6 +15,7 @@ Rico/Corner.js
|
|||||||
|
|
||||||
[exclude]
|
[exclude]
|
||||||
Firebug
|
Firebug
|
||||||
|
OpenLayers.js
|
||||||
OpenLayers/Format/GeoRSS.js
|
OpenLayers/Format/GeoRSS.js
|
||||||
OpenLayers/Format/GML.js
|
OpenLayers/Format/GML.js
|
||||||
OpenLayers/Format/WKT.js
|
OpenLayers/Format/WKT.js
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
[first]
|
[first]
|
||||||
OpenLayers/SingleFile.js
|
OpenLayers/SingleFile.js
|
||||||
OpenLayers.js
|
|
||||||
OpenLayers/BaseTypes.js
|
OpenLayers/BaseTypes.js
|
||||||
OpenLayers/BaseTypes/Class.js
|
OpenLayers/BaseTypes/Class.js
|
||||||
OpenLayers/Util.js
|
OpenLayers/Util.js
|
||||||
|
|||||||
+10
-31
@@ -14,28 +14,21 @@
|
|||||||
* Before creating the OpenLayers namespace, check to see if
|
* Before creating the OpenLayers namespace, check to see if
|
||||||
* OpenLayers.singleFile is true. This occurs if the
|
* OpenLayers.singleFile is true. This occurs if the
|
||||||
* OpenLayers/SingleFile.js script is included before this one - as is the
|
* OpenLayers/SingleFile.js script is included before this one - as is the
|
||||||
* case with single file builds.
|
* case with old single file build profiles that included both
|
||||||
|
* OpenLayers.js and OpenLayers/SingleFile.js.
|
||||||
*/
|
*/
|
||||||
var singleFile = (typeof OpenLayers == "object" && OpenLayers.singleFile);
|
var singleFile = (typeof OpenLayers == "object" && OpenLayers.singleFile);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cache for the script location returned from
|
* Relative path of this script.
|
||||||
* OpenLayers._getScriptLocation
|
|
||||||
*/
|
*/
|
||||||
var scriptLocation;
|
var scriptName = (!singleFile) ? "lib/OpenLayers.js" : "OpenLayers.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Namespace: OpenLayers
|
* Namespace: OpenLayers
|
||||||
* The OpenLayers object provides a namespace for all things OpenLayers
|
* The OpenLayers object provides a namespace for all things OpenLayers
|
||||||
*/
|
*/
|
||||||
window.OpenLayers = {
|
window.OpenLayers = {
|
||||||
|
|
||||||
/**
|
|
||||||
* Property: _scriptName
|
|
||||||
* {String} Relative path of this script.
|
|
||||||
*/
|
|
||||||
_scriptName: (!singleFile) ? "lib/OpenLayers.js" : "OpenLayers.js",
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function: _getScriptLocation
|
* Function: _getScriptLocation
|
||||||
* Return the path to this script.
|
* Return the path to this script.
|
||||||
@@ -43,26 +36,12 @@
|
|||||||
* Returns:
|
* Returns:
|
||||||
* {String} Path to this script
|
* {String} Path to this script
|
||||||
*/
|
*/
|
||||||
_getScriptLocation: function () {
|
_getScriptLocation: (function() {
|
||||||
if (scriptLocation != undefined) {
|
var r = new RegExp("(^|(.*?\\/))(" + scriptName + ")(\\?|$)");
|
||||||
return scriptLocation;
|
var s = document.getElementsByTagName('script');
|
||||||
}
|
var l = s[s.length-1].getAttribute("src").match(r)[1];
|
||||||
scriptLocation = "";
|
return (function() { return l; });
|
||||||
var isOL = new RegExp("(^|(.*?\\/))(" + OpenLayers._scriptName + ")(\\?|$)");
|
})()
|
||||||
|
|
||||||
var scripts = document.getElementsByTagName('script');
|
|
||||||
for (var i=0, len=scripts.length; i<len; i++) {
|
|
||||||
var src = scripts[i].getAttribute('src');
|
|
||||||
if (src) {
|
|
||||||
var match = src.match(isOL);
|
|
||||||
if(match) {
|
|
||||||
scriptLocation = match[1];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return scriptLocation;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* OpenLayers.singleFile is a flag indicating this file is being included
|
* OpenLayers.singleFile is a flag indicating this file is being included
|
||||||
|
|||||||
@@ -4,7 +4,12 @@
|
|||||||
* full text of the license. */
|
* full text of the license. */
|
||||||
|
|
||||||
var OpenLayers = {
|
var OpenLayers = {
|
||||||
singleFile: true
|
singleFile: true,
|
||||||
|
_getScriptLocation: (function() {
|
||||||
|
var s = document.getElementsByTagName('script');
|
||||||
|
var l = s[s.length-1].getAttribute("src").match(/(^|(.*?\/))(OpenLayers\.js)(\?|$)/)[1];
|
||||||
|
return (function() { return l; });
|
||||||
|
})()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,31 +0,0 @@
|
|||||||
<html>
|
|
||||||
<head>
|
|
||||||
<script src="bogus/1/OpenLayers.js-foo"></script>
|
|
||||||
<script src="bogus/2/foo-OpenLayers.js"></script>
|
|
||||||
<script id="script" src="../lib/OpenLayers.js"></script>
|
|
||||||
<script type="text/javascript">
|
|
||||||
function test_OpenLayers(t) {
|
|
||||||
t.plan(3);
|
|
||||||
|
|
||||||
var script = document.getElementById("script");
|
|
||||||
|
|
||||||
t.eq(OpenLayers._getScriptLocation(), "../", "Script location correctly detected.");
|
|
||||||
|
|
||||||
// create a clone of OpenLayers._getScriptLocation
|
|
||||||
eval("var getScriptLocation = " + OpenLayers._getScriptLocation.toString());
|
|
||||||
var scriptLocation;
|
|
||||||
|
|
||||||
script.setAttribute("src", "../lib/OpenLayers.js?foo");
|
|
||||||
t.eq(getScriptLocation(), "../", "Script location with search string correctly detected.");
|
|
||||||
scriptLocation = null;
|
|
||||||
|
|
||||||
// now pretend we're using a built script
|
|
||||||
OpenLayers._scriptName = "OpenLayers.js";
|
|
||||||
t.eq(getScriptLocation(), "../lib/", "not fooled by bogus paths");
|
|
||||||
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="../lib/OpenLayers.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function test_OpenLayers(t) {
|
||||||
|
t.plan(1);
|
||||||
|
|
||||||
|
var script = document.getElementById("script");
|
||||||
|
|
||||||
|
t.eq(OpenLayers._getScriptLocation(), "../", "Script location correctly detected.");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="../lib/OpenLayers.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function test_OpenLayers(t) {
|
||||||
|
t.plan(1);
|
||||||
|
|
||||||
|
var script = document.getElementById("script");
|
||||||
|
|
||||||
|
t.eq(OpenLayers._getScriptLocation(), "../", "Script location correctly detected.");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="bogus/1/OpenLayers.js-foo"></script>
|
||||||
|
<script src="bogus/2/foo-OpenLayers.js"></script>
|
||||||
|
<script src="../lib/OpenLayers.js?foo"></script>
|
||||||
|
<script src="bogus/3/after-OpenLayers.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function test_OpenLayers(t) {
|
||||||
|
t.plan(1);
|
||||||
|
|
||||||
|
var script = document.getElementById("script");
|
||||||
|
|
||||||
|
t.eq(OpenLayers._getScriptLocation(), "../", "Script location with search string correctly detected, and not fooled by other scripts.");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="bogus/1/OpenLayers.js-foo"></script>
|
||||||
|
<script src="bogus/2/foo-OpenLayers.js"></script>
|
||||||
|
<script src="../lib/OpenLayers.js?foo"></script>
|
||||||
|
<script src="bogus/3/after-OpenLayers.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function test_OpenLayers(t) {
|
||||||
|
t.plan(1);
|
||||||
|
|
||||||
|
var script = document.getElementById("script");
|
||||||
|
|
||||||
|
t.eq(OpenLayers._getScriptLocation(), "../", "Script location with search string correctly detected, and not fooled by other scripts.");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script>
|
||||||
|
var OpenLayers = {singleFile: true};
|
||||||
|
</script>
|
||||||
|
<script src="../lib/OpenLayers.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function test_OpenLayers(t) {
|
||||||
|
t.plan(1);
|
||||||
|
|
||||||
|
var script = document.getElementById("script");
|
||||||
|
|
||||||
|
t.eq(OpenLayers._getScriptLocation(), "../lib/", "Script location for single file build correctly detected.");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script>
|
||||||
|
var OpenLayers = {singleFile: true};
|
||||||
|
</script>
|
||||||
|
<script src="../lib/OpenLayers.js"></script>
|
||||||
|
<script type="text/javascript">
|
||||||
|
function test_OpenLayers(t) {
|
||||||
|
t.plan(1);
|
||||||
|
|
||||||
|
var script = document.getElementById("script");
|
||||||
|
|
||||||
|
t.eq(OpenLayers._getScriptLocation(), "../lib/", "Script location for single file build correctly detected.");
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -156,7 +156,9 @@
|
|||||||
<li>Map.html</li>
|
<li>Map.html</li>
|
||||||
<li>Marker.html</li>
|
<li>Marker.html</li>
|
||||||
<li>Marker/Box.html</li>
|
<li>Marker/Box.html</li>
|
||||||
<li>OpenLayers.html</li>
|
<li>OpenLayers1.html</li>
|
||||||
|
<li>OpenLayers2.html</li>
|
||||||
|
<li>OpenLayers3.html</li>
|
||||||
<li>Popup.html</li>
|
<li>Popup.html</li>
|
||||||
<li>Popup/Anchored.html</li>
|
<li>Popup/Anchored.html</li>
|
||||||
<li>Popup/AnchoredBubble.html</li>
|
<li>Popup/AnchoredBubble.html</li>
|
||||||
|
|||||||
Reference in New Issue
Block a user