[Javascript] window location hash

Flávio Gomes flavio at economisa.com.br
Fri Mar 23 09:25:10 CDT 2007


As I dont have Safari here, lets try some shots in the dark =)

 What would happen if you set the location to "location.href" + 
'#bottomPage', instead of using the location.hash?


  location.href = location.href.split('#')[0] + "bottomPage"; //Spooky 
Code :-O


Guillaume escreveu:

> Thanks all for your responses.
> I've tryed the different suggestions. All work but don't solve the 
> initial bug.
> I need the hash because I need bottom and top of page to be reached 
> with a keypress.
> Here's an example: http://www.hablablow.com/devX/hash/hash.html
> You'll see the bug when opening the url in Safari and in a tab.
> Two keypress are active *b* ( reach bottom of page ) and *u* ( reach 
> top of page ).
> Press any of these two and you'll see that Safari loops loading the 
> page ( notice the loading icon in the tab above ).
> Here's what I end with:
>
>  var hashValue = "bottomPage";
>  if (hashValue == window.location.hash)
> {
> window.location.hash = new String((new Date().getMilliseconds()));
> }
> window.location.hash = hashValue;
> }
>
> Here's a reminder of the bug description that occurs only on Safari:
>
> (...)
> - What is going on here?
> Setting location.hash to the same value twice in a row causes Safari 
> to reload the page. Tested in Safari 1.1-1.2 and equivalent OmniWeb 
> versions.
> - What can be done to workaround this bug?
> Don't set location.href to the same value twice in a row. If needed, 
> set it to an intermediate value in between.
> (...)
>
> Here's an example: http://www.hablablow.com/devX/hash/hash.html
>
> Thanks.
>
> Guillaume.
>
>
>> On 3/22/07, Glenn E. Lanier, II <glenn_lanier at netzero.net> wrote:
>>
>>> Untested, but would
>>>
>>> var hashValue = "bottomPage";
>>> if (hashValue != window.location.hash)
>>> {
>>>         window.location.hash = hashValue;
>>> }
>>
>>
>> It will avoid the bug but probably will not do what is intended by the
>> hash change in the first place. A slight modification:
>>
>> if (hashValue == window.location.hash)
>> {
>>        window.location.hash = new String((new 
>> Date().getMilliseconds()));
>> }
>> window.location.hash = hashValue;
>>
>>
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Javascript mailing list
>Javascript at LaTech.edu
>https://lists.LaTech.edu/mailman/listinfo/javascript
>  
>

-- 
Flavio Gomes
flavio at economisa.com.br




More information about the Javascript mailing list