- From: Andrew Fedoniouk <news@terrainformatica.com>
- Date: Tue, 10 Jul 2007 14:00:37 -0700
- To: "Maciej Stachowiak" <mjs@apple.com>
- Cc: "Doug Schepers" <doug.schepers@vectoreal.com>, <public-html@w3.org>
----- Original Message -----
From: "Maciej Stachowiak" <mjs@apple.com>
To: "Andrew Fedoniouk" <news@terrainformatica.com>
Cc: "Doug Schepers" <doug.schepers@vectoreal.com>; <public-html@w3.org>
Sent: Tuesday, July 10, 2007 12:37 PM
Subject: Re: HTML Extensibility Through Script
>
> On Jul 10, 2007, at 9:17 AM, Andrew Fedoniouk wrote:
>
>>
>>
>> ----- Original Message ----- From: "Doug Schepers"
>> <doug.schepers@vectoreal.com
>> >
>> To: <public-html@w3.org>
>> Sent: Tuesday, July 10, 2007 7:33 AM
>> Subject: HTML Extensibility Through Script
>>
>>
>>> ... The conversation then turned to how one might use this lib, given
>>> that some browsers might support MathML natively and some not. There
>>> was a suggestion (a good one, I think) that a <script> element might be
>>> made somehow conditional (through a parameter, an attribute, or through
>>> encapsulation as the fallback for an <object>, doesn't matter to me),
>>> such that if the browser supported a that feature natively, the script
>>> implementation of that feature wouldn't run.
>>>
>>
>> <script type="application/ecmascript">
>> if( featureXsupported() )
>> return;
>> // featureXemulation goes here.
>> </script>
>
> That's not exactly correct JavaScript (you can only exit a function, not
> a top-level block), but in general I agree, any features that scripts
> would want to switch on should be exposed for testing to script. That way
> you can either conditionally load whole different scripts, or change
> parts of scripts based on what is available.
Thanks for pointing this out, Maciej.
It, in fact, was just a short form of the following:
if( !featureXsupported() )
{
// featureXemulation goes here.
}
BTW: Have you seen anywhere document mandating that
script inside <script> shall be executed in global context and
not as a function code context?
>
>> It is IMO not realistic to have some universal attribute that will allow
>> to filter all possible features of UA.
>>
>> It would be nice though if UA vendors implement some
>> flag attribute like __ua_vendor/__ua_version for the root element.
>> Such an attribute may be added while parsing DOM tree.
>> So scripts and CSS can reliably use it as a selector .
>
> Scripts can already get this info from navigator.userAgent. I think the
> fact that it's not exposed to CSS is by design - if CSS were allowed to
> have UA vendor/version targeted rules I think there are better ways to do
> it than by attributes on the root element.
Agree. Something like @media screen/webcore { ... } or
@media screen/gecko { ... } blocks will definitely
simplify life of Web devolopers. I would add in CSS ability
to load scripts too through @include or @import at-rules and
the whole system would be near the perfect.
In any case originally requested feature is here already
through navigator.agent thing.
Andrew Fedoniouk.
http://terrainformatica.com
Received on Tuesday, 10 July 2007 21:00:48 UTC