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>target10<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=""e 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 "" 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