Well, I will likely continue not getting along with javascript.

However:  DAAAAAANG, that is some right lovely, as in ooh-la-la snap my 
neck on the double-take, code.

I'm liking it, I'm using it.  Virtual hugs for sure.  Well, not everybody 
is a hugger, so out of respect for boundaries: virtual fist-bumps also 
available.


On Tuesday, October 27, 2020 at 8:20:52 PM UTC-3, Felicia Crow wrote:
>
> Hi Charlie,
>
> in general the first thing to do in such a case is to use the search 
> engine of your choice and look for a polyfill for the "offending" code, 
> which often thanks to a lot of wonderful people already exists.
>
> In your case though since you are only using this in one place for one 
> parameter - at least for the moment  - it would probably be overkill to 
> import a complete polyfill for urlsearchparams into your wiki. So I did 
> what Mark suggested and rewrote your function to get the context from 
> location.search via regex.
> Please be aware that this is neither necessarily best practice nor tested 
> beyond a general it works as I currently don't have access to my testing 
> setups to see if it works in IE11 specifically, although in theory it 
> should as everything used is supported by it.
> Also I went a bit overboard and changed how the context is checked so it 
> assumes the default context until the loop finds that the parameter is a 
> valid context and resets it. This was mostly done as to have one place to 
> add contexts/change the default context while being able to leave the rest 
> of the code alone. If you want to keep your if check because it is easier 
> for you to use I can rewrite the function to use that instead.
>
>
> exports.run = function() {
>   /* Settings */
>   const contexts = [
>     "ProductReviews",
>     "OffGridding",
>     "HydroCutting",
>     "Chromebook",
>   ];
>   const defaultContext = "ProductReviews";
>   const ctxre = /context=(\w+)/i;
>
>   let currentContext = defaultContext;
>   const queryString = window.location.search;
>   const match = queryString.match(ctxre);
>   if(match){
>     let tmpContext = match[1];
>     for(let i = 0; i < contexts.length; i++){
>       if(contexts[i] == tmpContext){
>         currentContext = tmpContext;
>         break;
>       }
>     }
>   }
>   
>   document.title = currentContext;
>   return currentContext;
> };
>
>
> Hope this helps.
> Felicia
>
>
>
> On Monday, 26 October 2020 23:47:28 UTC+1, Charlie Veniot wrote:
>>
>> G'day,
>>
>> Javascript and I have never gotten along, but once in a while I've got no 
>> choice have simply must surrender to it.
>>
>> Working on my Chromebook, when I get something working, I never think of 
>> making sure it works with other browsers.  Sure enough, I discovered today 
>> that some javascript in my TiddlyWiki doesn't work with Internet Explorer.
>>
>> Specifically, the offending bit of code: a call to URLSearchParams.
>>
>> Figuring that I want error-handling that simply/gracefully/quietly exits 
>> the code, I decided to wrap all of the code with "try" and "catch" 
>> processing (having just discovered that today).
>>
>> If anybody has any related experience and/or interesting/educative info 
>> to share: please please please ?
>>
>> Related snipit of code (from this TiddlyWiki's tiddler 
>> <https://intertwingularityslicendice.neocities.org/CJ_ProductReviews.html#%24%3A%2Fmacros%2Fcharlie%2Fgetstartupcontext.js>)
>>  
>> further below.
>>
>> Cheers !
>>
>> exports.run = function() {
>>         const queryString = window.location.search;
>> try {
>>         const urlParams = new URLSearchParams(queryString);
>>         const wikicontext = urlParams.get('context');
>>         var output = wikicontext;
>>
>>         if ( (output !== "OffGridding") && (output !== "HydroCutting")  && 
>> (output !== "Chromebook") ){
>>             output = "ProductReviews";
>>         };
>>           document.title = output;
>> }
>> catch(err) {
>>             output = "ProductReviews";
>> }
>>         return output;
>>
>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/1b5ea268-f7ef-4da4-8d25-4bdf7a33c3a6o%40googlegroups.com.

Reply via email to