Hi Riz

You should probably read my response here before you spend any more time 
with this: 
https://groups.google.com/d/msg/tiddlywikidev/C2JWmchpyaw/czI86aDvAAAJ

But understand, no one will *stop* you creating ids... if they are 
replicated via transclusion, DOM APIs will return a node collection. But 
the problem there is, no one *expects* ids to be duplicated and return an 
array/collection.

On Wednesday, September 18, 2019 at 9:28:31 PM UTC-5, Riz wrote:
>
> I was collecting a lot of articles in my TW. Now these HTML obviously have 
> tags with ids associated especially headings (eg: <h2 
> id="myid">Subheading</h2>). 
> I was trying to build a build a widget to navigate to these ids (I guess 
> the term is subtiddler navigation)
>
> The idea is to have a widget that takes two parameters: a title and an id. 
> It should then add the tiddler to the storylist followed by scrolling to 
> the id. 
>
> Now I was partially successful in getting what I want by tweaking 
> action-navigate widget. Below is the relevant part of widget.
>
> this.dispatchEvent({
>         type: "tm-navigate",
>         navigateTo: this.actionTo === undefined ? this.getVariable(
> "currentTiddler") : this.actionTo,
>         navigateFromTitle: this.getVariable("storyTiddler"),
>         navigateFromNode: triggeringWidget,
>         navigateFromClientRect: bounds && { top: bounds.top, left: bounds.
> left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, 
> height: bounds.height
>         },
>         navigateSuppressNavigation: true
>     });
>
>     
> if (document.getElementById(this.uniqueid) != null) {
>         document.getElementById(this.uniqueid).scrollIntoView();
> }
>
>
>
>
> As you can see, it only works if you double click the button. At first 
> click the tiddler is added to storylist, and second click scrolls the id 
> into view (Note that the navigateSuppressNavigation must be set to true for 
> this to work). 
>
> I assume it cannot find the *id* right after the navigation is beacuse 
> there is a need for a *refresh* between the two steps? 
>
> My question is: Is there a way to achieve this?
>
> PS: I tried a few other things namely
> 1. Have two calls of action-widget under the same button like:
> <$button>
> <$action-anchor $to="MyTiddler" $id="uniqueid"/>
> <$action-anchor $to="MyTiddler" $id="uniqueid"/>
> </$button>
>
>
> 2. Programmatically simulate double click on the button with 
> document.getElementsByClassName('my-unique-class')[0].dispatchEvent(new 
> MouseEvent('dblclick', {'bubbles': true})) 
>
>
>
> I mean, it is ewwww, but it shows how desperate I am to get this to work.
>
>
> Sincerely
> Riz
>

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to tiddlywikidev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywikidev/20d1c3fb-5f94-427b-a7f5-ca10c27773eb%40googlegroups.com.

Reply via email to