Translate metadata to field content
J. Landman Gay
jacque at hyperactivesw.com
Fri Feb 21 14:15:34 EST 2020
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>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 at 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 | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode
mailing list