|
Posted by Jochem Maas on 06/05/05 23:02
John Taylor-Johnston wrote:
> This works: "District of St. Francis"
>
> http://www.glquebec.org/tezt.php#District+of+St.+Francis
> <a name="District+of+St.+Francis"></a>
>
> This does not: "Montréal District #2"
>
> http://www.glquebec.org/tezt.php#Montr%E9al+District+%232
> <a name="Montr%E9al+District+%232"></a>
>
> I'm beginning to see the problem lies with the French character "é". I
> don't see it being #. In any case, I cannot change existing fields. How
> can I get this working?
read:
http://www.w3.org/TR/REC-html40/struct/links.html#h-12.2.1
http://www.w3.org/TR/REC-html40/appendix/notes.html#non-ascii-chars
http://www.w3.org/TR/xhtml1/#h-4.10
http://www.w3.org/TR/xhtml1/#C_8
[w3c - confronting us daily with the fact that they are smarter than us :-)]
in short; only strings passing this regexp:
[A-Za-z][A-Za-z0-9:_.-]*
....are ok for use in the name attribute.
you will have to either change the data you have in the DB
or transform the text so that all non-ascii chars are replaced with
their ascii equivalent (e.g. é -> e) whenever you wish to use
the text in a name attribute.
and you can totally forget using the '#' in the value of a name attribute!
I don't know what kind of data entity the string 'Montréal District #2'
belongs to but maybe it has a keyfield (numeric is easiest here!) which
can be used to set the value of the name attribute.
good luck!
rgds,
Jochem
>
> Pablo Gosse wrote:
>
>> I'm not sure, but I see two things that might be causing this. First,
>> why are spaces, which should be translated as %20, being represented
>> as a '+'?
>>
>> Second, you have a # in the actual bookmark name, which I would assume
>> is not valid since the # denotes the beginning of a bookmark. So
>> perhaps IE compensates for this, but Mozilla reads the bookmark as
>> looking for <a name="4"></a> because of the #4 at the end of the
>> bookmark name.
>
>
> I generate the link using urlencode.
>
> if ("" != $mydata->district){
> echo " - <a
> href=\"#".urlencode($mydata->district)."\">$mydata->district</a></h1>";
> }else{
> echo "</h1>";
> }
>
> The link is named:
>
> echo "<hr size=1><a
> name=\"".urlencode($mydata->district)."\"></a><h2>$mydata->district</h2>\n";
>
Navigation:
[Reply to this message]
|