[SWFObject] Bug in getQueryParamValue() function. Please fix ASAP.
Geoff Stearns
geoff at deconcept.com
Wed May 31 08:29:10 PDT 2006
nice catch - i like your compact version better than my fix for it,
so if you don't mind i'll roll it into the next version:
deconcept.util = {
getRequestParameter: function(param) {
var q = document.location.search || document.location.hash;
if(q) {
var pairs = q.substring(1).split("&");
for (var i=0; i < pairs.length; i++) {
if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
return pairs[i].substring((pairs[i].indexOf("=")+1));
}
}
}
return "";
}
}
i'm going to check this into the svn repository in a few mins, i have
a couple other things to test first.
On May 31, 2006, at 12:17 AM, Aran Rhee wrote:
> Geoff.
>
> I believe I have found a bug in your query params function with
> swfObject. The way you are returning values from your search means
> that it will return the value of the 1st parameter which contains
> the substring of the name passed into getQueryParamValue(), not
> necessarily the actual value you want!
>
> e.g.
>
> somepage.html?myEmailName=aaaa at aaaa.com&Email=xxxx at xxxx.com
>
> getQueryParamValue('Email');
>
> will actually return aaaa at aaaa.com, as the value as "Email" was
> found in the 1st param name string.
>
>
> I think you need to actually split the params into an array and do
> a full text match. I wrote the below as a fix for myself quickly,
> and itdesigned to be readable, not compact, but you get the idea.
>
> function getRequestParameter (key)
> {
> var q = document.location.search || document.location.hash;
> if(q)
> {
> var qArray = q.substring(1).split("&");
> var len = qArray.length;
> for (i = 0; i<len; i++)
> {
> var pair = qArray[i];
> var splitIndex = pair.indexOf("=");
> var paramName = pair.substring(0, splitIndex);
> var paramValue= pair.substring((splitIndex+1));
> if (paramName == key)
> {
> return paramValue;
> }
> }
> return "";
> }
> return "";
> }
>
>
> You could compact it like:
>
> function getRequestParameter (key) {
> var q = document.location.search || document.location.hash;
> if(q) {
> var qArray = q.substring(1).split("&");
> for (i = 0; i<qArray.length; i++) {
> if (qArray[i].substring(0, qArray[i].indexOf("=")) == key)
> return qArray[i].substring((qArray[i].indexOf("=")+1));
> }
> return "";
> }
> return "";
> }
>
>
>
>
> Cheers,
>
> Aran
> _______________________________________________
> SWFObject mailing list
> SWFObject at lists.deconcept.com
> http://lists.deconcept.com/listinfo.cgi/swfobject-deconcept.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.deconcept.com/pipermail/swfobject-deconcept.com/attachments/20060531/160a6b45/attachment-0005.htm>
More information about the Swfobject
mailing list