Welcome to the party Hermann. :) Unfortunately the HTML isn't under my control and may change periodically. It's retrieved from a server on demand. The metadata I'm looking for isn't a link, it's a text property, and is already hidden when displaying text in a field. It would be similar to looking for a specific instance of bolded text.

This would be good for other uses though, so thanks for the idea.

On 2/20/20 3:12 PM, hh via use-livecode wrote:
As others try to optimize ("ping") I'll try an improvement too ("pong")
with using another method that requires to change your link targets ONCE:

Instead of unique targets <a name="target10"> write in your field

"<p hidden>"&numTochar(1)&"target10"&numTochar(1)&"</p>""

Handler replaceTargets below does it (slowly) but you probably don't
need it on mobile.

So assuming (unusual)

-- [1] you use the following for a link target
--     <p hidden>&#1;target10&#1;<p>
-- [2] you use the following for a local page link
--     <a href="#target10">Target10</a>
-- [3] you don't use <p hidden> elsewhere. Else add
--     an additional marker to it to differentiate.


Then script your field with the following simple handler:

on linkClicked pUrl
   put the milliseconds into m1
   lock messages; lock screen
   if pUrl begins with "#" then
     put numToChar(1)& (char 2 to -1 of pUrl) &numToChar(1) into tTarget
     put 1+offset(tTarget,me)+length(tTarget) into tOff
     select char tOff to tOff+3 of me -- see it in locked field
     -- select char tOff of me -- variant
     scrollSelectionIntoView -- optional
   end if
   put the millisecs -m1 into fld "timing1"
end linkClicked

---- helpers (optionally needed)

-- Note. LC adds also an additional "<p hidden></p>", we don't mind.
on replaceTargets -- should be optimized if used often
   put the millisecs into m1
   lock messages; lock screen
   put the htmltext of fld 1 into tHTML
   set linedel to "<a name="&quote
   set itemdel to "</a>"
   put line 1 of tHtml into tI2
   put numToChar(1) into b1
   repeat for each line L in (line 2 to -1 of tHtml)
     put "<p hidden>"&b1&char 1 to offset(quote,L)-1 of L into item 1 of L
     put offset("</a>",L) into o1
     put b1&"</p>" into char o1 to o1+3 of L
     put L after tI2
   end repeat
   set htmlText of fld 1 to tI2 -- LC translates numToChar(1) to "&#1;"
   put the millisecs-m1 into fld "timing2"
end mouseUp

on scrollSelectionIntoView
   put the selectedLoc into tSL
   put the vscroll of me into tV
   put item 2 of tSL - the top of me into tDiff
   if tDiff > 0.75*the height of me then
     set vscroll of me to tV + 0.4*the height of me
   else if tDiff < 0.25*the height of me then
     set vscroll of me to tV - 0.4*the height of me
   end if
end scrollSelectionIntoView


_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode



--
Jacqueline Landman Gay         |     jac...@hyperactivesw.com
HyperActive Software           |     http://www.hyperactivesw.com

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to